xref: /freebsd/contrib/llvm-project/clang/lib/Headers/vecintrin.h (revision 700637cbb5e582861067a11aaca4d053546871d2)
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 #ifndef _VECINTRIN_H
11 #define _VECINTRIN_H
12 
13 #if defined(__s390x__) && defined(__VEC__)
14 
15 #define __ATTRS_ai __attribute__((__always_inline__))
16 #define __ATTRS_o __attribute__((__overloadable__))
17 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
18 
19 #define __constant(PARM) \
20   __attribute__((__enable_if__ ((PARM) == (PARM), \
21      "argument must be a constant integer")))
22 #define __constant_range(PARM, LOW, HIGH) \
23   __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
24      "argument must be a constant integer from " #LOW " to " #HIGH)))
25 #define __constant_pow2_range(PARM, LOW, HIGH) \
26   __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
27                                 ((PARM) & ((PARM) - 1)) == 0, \
28      "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
29 
30 /*-- __lcbb -----------------------------------------------------------------*/
31 
32 extern __ATTRS_o unsigned int
33 __lcbb(const void *__ptr, unsigned short __len)
34   __constant_pow2_range(__len, 64, 4096);
35 
36 #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
37   __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
38                            ((Y) == 64 ? 0 : \
39                             (Y) == 128 ? 1 : \
40                             (Y) == 256 ? 2 : \
41                             (Y) == 512 ? 3 : \
42                             (Y) == 1024 ? 4 : \
43                             (Y) == 2048 ? 5 : \
44                             (Y) == 4096 ? 6 : 0) : 0))
45 
46 /*-- vec_extract ------------------------------------------------------------*/
47 
48 static inline __ATTRS_o_ai signed char
vec_extract(__vector signed char __vec,int __index)49 vec_extract(__vector signed char __vec, int __index) {
50   return __vec[__index & 15];
51 }
52 
53 static inline __ATTRS_o_ai unsigned char
vec_extract(__vector __bool char __vec,int __index)54 vec_extract(__vector __bool char __vec, int __index) {
55   return __vec[__index & 15];
56 }
57 
58 static inline __ATTRS_o_ai unsigned char
vec_extract(__vector unsigned char __vec,int __index)59 vec_extract(__vector unsigned char __vec, int __index) {
60   return __vec[__index & 15];
61 }
62 
63 static inline __ATTRS_o_ai signed short
vec_extract(__vector signed short __vec,int __index)64 vec_extract(__vector signed short __vec, int __index) {
65   return __vec[__index & 7];
66 }
67 
68 static inline __ATTRS_o_ai unsigned short
vec_extract(__vector __bool short __vec,int __index)69 vec_extract(__vector __bool short __vec, int __index) {
70   return __vec[__index & 7];
71 }
72 
73 static inline __ATTRS_o_ai unsigned short
vec_extract(__vector unsigned short __vec,int __index)74 vec_extract(__vector unsigned short __vec, int __index) {
75   return __vec[__index & 7];
76 }
77 
78 static inline __ATTRS_o_ai signed int
vec_extract(__vector signed int __vec,int __index)79 vec_extract(__vector signed int __vec, int __index) {
80   return __vec[__index & 3];
81 }
82 
83 static inline __ATTRS_o_ai unsigned int
vec_extract(__vector __bool int __vec,int __index)84 vec_extract(__vector __bool int __vec, int __index) {
85   return __vec[__index & 3];
86 }
87 
88 static inline __ATTRS_o_ai unsigned int
vec_extract(__vector unsigned int __vec,int __index)89 vec_extract(__vector unsigned int __vec, int __index) {
90   return __vec[__index & 3];
91 }
92 
93 static inline __ATTRS_o_ai signed long long
vec_extract(__vector signed long long __vec,int __index)94 vec_extract(__vector signed long long __vec, int __index) {
95   return __vec[__index & 1];
96 }
97 
98 static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector __bool long long __vec,int __index)99 vec_extract(__vector __bool long long __vec, int __index) {
100   return __vec[__index & 1];
101 }
102 
103 static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector unsigned long long __vec,int __index)104 vec_extract(__vector unsigned long long __vec, int __index) {
105   return __vec[__index & 1];
106 }
107 
108 #if __ARCH__ >= 12
109 static inline __ATTRS_o_ai float
vec_extract(__vector float __vec,int __index)110 vec_extract(__vector float __vec, int __index) {
111   return __vec[__index & 3];
112 }
113 #endif
114 
115 static inline __ATTRS_o_ai double
vec_extract(__vector double __vec,int __index)116 vec_extract(__vector double __vec, int __index) {
117   return __vec[__index & 1];
118 }
119 
120 /*-- vec_insert -------------------------------------------------------------*/
121 
122 static inline __ATTRS_o_ai __vector signed char
vec_insert(signed char __scalar,__vector signed char __vec,int __index)123 vec_insert(signed char __scalar, __vector signed char __vec, int __index) {
124   __vec[__index & 15] = __scalar;
125   return __vec;
126 }
127 
128 // This prototype is deprecated.
129 static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector __bool char __vec,int __index)130 vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {
131   __vector unsigned char __newvec = (__vector unsigned char)__vec;
132   __newvec[__index & 15] = (unsigned char)__scalar;
133   return __newvec;
134 }
135 
136 static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector unsigned char __vec,int __index)137 vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
138   __vec[__index & 15] = __scalar;
139   return __vec;
140 }
141 
142 static inline __ATTRS_o_ai __vector signed short
vec_insert(signed short __scalar,__vector signed short __vec,int __index)143 vec_insert(signed short __scalar, __vector signed short __vec, int __index) {
144   __vec[__index & 7] = __scalar;
145   return __vec;
146 }
147 
148 // This prototype is deprecated.
149 static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector __bool short __vec,int __index)150 vec_insert(unsigned short __scalar, __vector __bool short __vec,
151            int __index) {
152   __vector unsigned short __newvec = (__vector unsigned short)__vec;
153   __newvec[__index & 7] = (unsigned short)__scalar;
154   return __newvec;
155 }
156 
157 static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector unsigned short __vec,int __index)158 vec_insert(unsigned short __scalar, __vector unsigned short __vec,
159            int __index) {
160   __vec[__index & 7] = __scalar;
161   return __vec;
162 }
163 
164 static inline __ATTRS_o_ai __vector signed int
vec_insert(signed int __scalar,__vector signed int __vec,int __index)165 vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
166   __vec[__index & 3] = __scalar;
167   return __vec;
168 }
169 
170 // This prototype is deprecated.
171 static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector __bool int __vec,int __index)172 vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
173   __vector unsigned int __newvec = (__vector unsigned int)__vec;
174   __newvec[__index & 3] = __scalar;
175   return __newvec;
176 }
177 
178 static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector unsigned int __vec,int __index)179 vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
180   __vec[__index & 3] = __scalar;
181   return __vec;
182 }
183 
184 static inline __ATTRS_o_ai __vector signed long long
vec_insert(signed long long __scalar,__vector signed long long __vec,int __index)185 vec_insert(signed long long __scalar, __vector signed long long __vec,
186            int __index) {
187   __vec[__index & 1] = __scalar;
188   return __vec;
189 }
190 
191 // This prototype is deprecated.
192 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar,__vector __bool long long __vec,int __index)193 vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
194            int __index) {
195   __vector unsigned long long __newvec = (__vector unsigned long long)__vec;
196   __newvec[__index & 1] = __scalar;
197   return __newvec;
198 }
199 
200 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar,__vector unsigned long long __vec,int __index)201 vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
202            int __index) {
203   __vec[__index & 1] = __scalar;
204   return __vec;
205 }
206 
207 #if __ARCH__ >= 12
208 static inline __ATTRS_o_ai __vector float
vec_insert(float __scalar,__vector float __vec,int __index)209 vec_insert(float __scalar, __vector float __vec, int __index) {
210   __vec[__index & 1] = __scalar;
211   return __vec;
212 }
213 #endif
214 
215 static inline __ATTRS_o_ai __vector double
vec_insert(double __scalar,__vector double __vec,int __index)216 vec_insert(double __scalar, __vector double __vec, int __index) {
217   __vec[__index & 1] = __scalar;
218   return __vec;
219 }
220 
221 /*-- vec_promote ------------------------------------------------------------*/
222 
223 static inline __ATTRS_o_ai __vector signed char
vec_promote(signed char __scalar,int __index)224 vec_promote(signed char __scalar, int __index) {
225   const __vector signed char __zero = (__vector signed char)0;
226   __vector signed char __vec = __builtin_shufflevector(__zero, __zero,
227     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
228   __vec[__index & 15] = __scalar;
229   return __vec;
230 }
231 
232 static inline __ATTRS_o_ai __vector unsigned char
vec_promote(unsigned char __scalar,int __index)233 vec_promote(unsigned char __scalar, int __index) {
234   const __vector unsigned char __zero = (__vector unsigned char)0;
235   __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
236     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
237   __vec[__index & 15] = __scalar;
238   return __vec;
239 }
240 
241 static inline __ATTRS_o_ai __vector signed short
vec_promote(signed short __scalar,int __index)242 vec_promote(signed short __scalar, int __index) {
243   const __vector signed short __zero = (__vector signed short)0;
244   __vector signed short __vec = __builtin_shufflevector(__zero, __zero,
245                                 -1, -1, -1, -1, -1, -1, -1, -1);
246   __vec[__index & 7] = __scalar;
247   return __vec;
248 }
249 
250 static inline __ATTRS_o_ai __vector unsigned short
vec_promote(unsigned short __scalar,int __index)251 vec_promote(unsigned short __scalar, int __index) {
252   const __vector unsigned short __zero = (__vector unsigned short)0;
253   __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
254                                   -1, -1, -1, -1, -1, -1, -1, -1);
255   __vec[__index & 7] = __scalar;
256   return __vec;
257 }
258 
259 static inline __ATTRS_o_ai __vector signed int
vec_promote(signed int __scalar,int __index)260 vec_promote(signed int __scalar, int __index) {
261   const __vector signed int __zero = (__vector signed int)0;
262   __vector signed int __vec = __builtin_shufflevector(__zero, __zero,
263                                                       -1, -1, -1, -1);
264   __vec[__index & 3] = __scalar;
265   return __vec;
266 }
267 
268 static inline __ATTRS_o_ai __vector unsigned int
vec_promote(unsigned int __scalar,int __index)269 vec_promote(unsigned int __scalar, int __index) {
270   const __vector unsigned int __zero = (__vector unsigned int)0;
271   __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
272                                                         -1, -1, -1, -1);
273   __vec[__index & 3] = __scalar;
274   return __vec;
275 }
276 
277 static inline __ATTRS_o_ai __vector signed long long
vec_promote(signed long long __scalar,int __index)278 vec_promote(signed long long __scalar, int __index) {
279   const __vector signed long long __zero = (__vector signed long long)0;
280   __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
281                                                             -1, -1);
282   __vec[__index & 1] = __scalar;
283   return __vec;
284 }
285 
286 static inline __ATTRS_o_ai __vector unsigned long long
vec_promote(unsigned long long __scalar,int __index)287 vec_promote(unsigned long long __scalar, int __index) {
288   const __vector unsigned long long __zero = (__vector unsigned long long)0;
289   __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
290                                                               -1, -1);
291   __vec[__index & 1] = __scalar;
292   return __vec;
293 }
294 
295 #if __ARCH__ >= 12
296 static inline __ATTRS_o_ai __vector float
vec_promote(float __scalar,int __index)297 vec_promote(float __scalar, int __index) {
298   const __vector float __zero = (__vector float)0.0f;
299   __vector float __vec = __builtin_shufflevector(__zero, __zero,
300                                                  -1, -1, -1, -1);
301   __vec[__index & 3] = __scalar;
302   return __vec;
303 }
304 #endif
305 
306 static inline __ATTRS_o_ai __vector double
vec_promote(double __scalar,int __index)307 vec_promote(double __scalar, int __index) {
308   const __vector double __zero = (__vector double)0.0;
309   __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
310   __vec[__index & 1] = __scalar;
311   return __vec;
312 }
313 
314 /*-- vec_insert_and_zero ----------------------------------------------------*/
315 
316 static inline __ATTRS_o_ai __vector signed char
vec_insert_and_zero(const signed char * __ptr)317 vec_insert_and_zero(const signed char *__ptr) {
318   __vector signed char __vec = (__vector signed char)0;
319   __vec[7] = *__ptr;
320   return __vec;
321 }
322 
323 static inline __ATTRS_o_ai __vector unsigned char
vec_insert_and_zero(const unsigned char * __ptr)324 vec_insert_and_zero(const unsigned char *__ptr) {
325   __vector unsigned char __vec = (__vector unsigned char)0;
326   __vec[7] = *__ptr;
327   return __vec;
328 }
329 
330 static inline __ATTRS_o_ai __vector signed short
vec_insert_and_zero(const signed short * __ptr)331 vec_insert_and_zero(const signed short *__ptr) {
332   __vector signed short __vec = (__vector signed short)0;
333   __vec[3] = *__ptr;
334   return __vec;
335 }
336 
337 static inline __ATTRS_o_ai __vector unsigned short
vec_insert_and_zero(const unsigned short * __ptr)338 vec_insert_and_zero(const unsigned short *__ptr) {
339   __vector unsigned short __vec = (__vector unsigned short)0;
340   __vec[3] = *__ptr;
341   return __vec;
342 }
343 
344 static inline __ATTRS_o_ai __vector signed int
vec_insert_and_zero(const signed int * __ptr)345 vec_insert_and_zero(const signed int *__ptr) {
346   __vector signed int __vec = (__vector signed int)0;
347   __vec[1] = *__ptr;
348   return __vec;
349 }
350 
351 static inline __ATTRS_o_ai __vector unsigned int
vec_insert_and_zero(const unsigned int * __ptr)352 vec_insert_and_zero(const unsigned int *__ptr) {
353   __vector unsigned int __vec = (__vector unsigned int)0;
354   __vec[1] = *__ptr;
355   return __vec;
356 }
357 
358 static inline __ATTRS_o_ai __vector signed long long
vec_insert_and_zero(const signed long long * __ptr)359 vec_insert_and_zero(const signed long long *__ptr) {
360   __vector signed long long __vec = (__vector signed long long)0;
361   __vec[0] = *__ptr;
362   return __vec;
363 }
364 
365 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert_and_zero(const unsigned long long * __ptr)366 vec_insert_and_zero(const unsigned long long *__ptr) {
367   __vector unsigned long long __vec = (__vector unsigned long long)0;
368   __vec[0] = *__ptr;
369   return __vec;
370 }
371 
372 #if __ARCH__ >= 12
373 static inline __ATTRS_o_ai __vector float
vec_insert_and_zero(const float * __ptr)374 vec_insert_and_zero(const float *__ptr) {
375   __vector float __vec = (__vector float)0.0f;
376   __vec[1] = *__ptr;
377   return __vec;
378 }
379 #endif
380 
381 static inline __ATTRS_o_ai __vector double
vec_insert_and_zero(const double * __ptr)382 vec_insert_and_zero(const double *__ptr) {
383   __vector double __vec = (__vector double)0.0;
384   __vec[0] = *__ptr;
385   return __vec;
386 }
387 
388 /*-- vec_perm ---------------------------------------------------------------*/
389 
390 static inline __ATTRS_o_ai __vector signed char
vec_perm(__vector signed char __a,__vector signed char __b,__vector unsigned char __c)391 vec_perm(__vector signed char __a, __vector signed char __b,
392          __vector unsigned char __c) {
393   return (__vector signed char)__builtin_s390_vperm(
394            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
395 }
396 
397 static inline __ATTRS_o_ai __vector unsigned char
vec_perm(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)398 vec_perm(__vector unsigned char __a, __vector unsigned char __b,
399          __vector unsigned char __c) {
400   return (__vector unsigned char)__builtin_s390_vperm(
401            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
402 }
403 
404 static inline __ATTRS_o_ai __vector __bool char
vec_perm(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c)405 vec_perm(__vector __bool char __a, __vector __bool char __b,
406          __vector unsigned char __c) {
407   return (__vector __bool char)__builtin_s390_vperm(
408            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
409 }
410 
411 static inline __ATTRS_o_ai __vector signed short
vec_perm(__vector signed short __a,__vector signed short __b,__vector unsigned char __c)412 vec_perm(__vector signed short __a, __vector signed short __b,
413          __vector unsigned char __c) {
414   return (__vector signed short)__builtin_s390_vperm(
415            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
416 }
417 
418 static inline __ATTRS_o_ai __vector unsigned short
vec_perm(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c)419 vec_perm(__vector unsigned short __a, __vector unsigned short __b,
420          __vector unsigned char __c) {
421   return (__vector unsigned short)__builtin_s390_vperm(
422            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
423 }
424 
425 static inline __ATTRS_o_ai __vector __bool short
vec_perm(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c)426 vec_perm(__vector __bool short __a, __vector __bool short __b,
427          __vector unsigned char __c) {
428   return (__vector __bool short)__builtin_s390_vperm(
429            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
430 }
431 
432 static inline __ATTRS_o_ai __vector signed int
vec_perm(__vector signed int __a,__vector signed int __b,__vector unsigned char __c)433 vec_perm(__vector signed int __a, __vector signed int __b,
434          __vector unsigned char __c) {
435   return (__vector signed int)__builtin_s390_vperm(
436            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
437 }
438 
439 static inline __ATTRS_o_ai __vector unsigned int
vec_perm(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c)440 vec_perm(__vector unsigned int __a, __vector unsigned int __b,
441          __vector unsigned char __c) {
442   return (__vector unsigned int)__builtin_s390_vperm(
443            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
444 }
445 
446 static inline __ATTRS_o_ai __vector __bool int
vec_perm(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c)447 vec_perm(__vector __bool int __a, __vector __bool int __b,
448          __vector unsigned char __c) {
449   return (__vector __bool int)__builtin_s390_vperm(
450            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
451 }
452 
453 static inline __ATTRS_o_ai __vector signed long long
vec_perm(__vector signed long long __a,__vector signed long long __b,__vector unsigned char __c)454 vec_perm(__vector signed long long __a, __vector signed long long __b,
455          __vector unsigned char __c) {
456   return (__vector signed long long)__builtin_s390_vperm(
457            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
458 }
459 
460 static inline __ATTRS_o_ai __vector unsigned long long
vec_perm(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned char __c)461 vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
462          __vector unsigned char __c) {
463   return (__vector unsigned long long)__builtin_s390_vperm(
464            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
465 }
466 
467 static inline __ATTRS_o_ai __vector __bool long long
vec_perm(__vector __bool long long __a,__vector __bool long long __b,__vector unsigned char __c)468 vec_perm(__vector __bool long long __a, __vector __bool long long __b,
469          __vector unsigned char __c) {
470   return (__vector __bool long long)__builtin_s390_vperm(
471            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
472 }
473 
474 static inline __ATTRS_o_ai __vector signed __int128
vec_perm(__vector signed __int128 __a,__vector signed __int128 __b,__vector unsigned char __c)475 vec_perm(__vector signed __int128 __a, __vector signed __int128 __b,
476          __vector unsigned char __c) {
477   return (__vector signed __int128)__builtin_s390_vperm(
478            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
479 }
480 
481 static inline __ATTRS_o_ai __vector unsigned __int128
vec_perm(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned char __c)482 vec_perm(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
483          __vector unsigned char __c) {
484   return (__vector unsigned __int128)__builtin_s390_vperm(
485            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
486 }
487 
488 static inline __ATTRS_o_ai __vector __bool __int128
vec_perm(__vector __bool __int128 __a,__vector __bool __int128 __b,__vector unsigned char __c)489 vec_perm(__vector __bool __int128 __a, __vector __bool __int128 __b,
490          __vector unsigned char __c) {
491   return (__vector __bool __int128)__builtin_s390_vperm(
492            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
493 }
494 
495 #if __ARCH__ >= 12
496 static inline __ATTRS_o_ai __vector float
vec_perm(__vector float __a,__vector float __b,__vector unsigned char __c)497 vec_perm(__vector float __a, __vector float __b,
498          __vector unsigned char __c) {
499   return (__vector float)__builtin_s390_vperm(
500            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
501 }
502 #endif
503 
504 static inline __ATTRS_o_ai __vector double
vec_perm(__vector double __a,__vector double __b,__vector unsigned char __c)505 vec_perm(__vector double __a, __vector double __b,
506          __vector unsigned char __c) {
507   return (__vector double)__builtin_s390_vperm(
508            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
509 }
510 
511 /*-- vec_permi --------------------------------------------------------------*/
512 
513 // This prototype is deprecated.
514 extern __ATTRS_o __vector signed long long
515 vec_permi(__vector signed long long __a, __vector signed long long __b,
516           int __c)
517   __constant_range(__c, 0, 3);
518 
519 // This prototype is deprecated.
520 extern __ATTRS_o __vector unsigned long long
521 vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
522           int __c)
523   __constant_range(__c, 0, 3);
524 
525 // This prototype is deprecated.
526 extern __ATTRS_o __vector __bool long long
527 vec_permi(__vector __bool long long __a, __vector __bool long long __b,
528           int __c)
529   __constant_range(__c, 0, 3);
530 
531 // This prototype is deprecated.
532 extern __ATTRS_o __vector double
533 vec_permi(__vector double __a, __vector double __b, int __c)
534   __constant_range(__c, 0, 3);
535 
536 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
537   __builtin_s390_vpdi((__vector unsigned long long)(X), \
538                       (__vector unsigned long long)(Y), \
539                       (((Z) & 2) << 1) | ((Z) & 1)))
540 
541 /*-- vec_bperm --------------------------------------------------------------*/
542 
543 #if __ARCH__ >= 12
544 static inline __ATTRS_ai __vector unsigned long long
vec_bperm(__vector unsigned __int128 __a,__vector unsigned char __b)545 vec_bperm(__vector unsigned __int128 __a, __vector unsigned char __b) {
546   return __builtin_s390_vbperm((__vector unsigned char)__a, __b);
547 }
548 #endif
549 
550 /*-- vec_bperm_u128 ---------------------------------------------------------*/
551 
552 #if __ARCH__ >= 12
553 // This prototype is deprecated.
554 static inline __ATTRS_ai __vector unsigned long long
vec_bperm_u128(__vector unsigned char __a,__vector unsigned char __b)555 vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
556   return __builtin_s390_vbperm(__a, __b);
557 }
558 #endif
559 
560 /*-- vec_revb ---------------------------------------------------------------*/
561 
562 static inline __ATTRS_o_ai __vector signed short
vec_revb(__vector signed short __vec)563 vec_revb(__vector signed short __vec) {
564   return (__vector signed short)
565          __builtin_s390_vlbrh((__vector unsigned short)__vec);
566 }
567 
568 static inline __ATTRS_o_ai __vector unsigned short
vec_revb(__vector unsigned short __vec)569 vec_revb(__vector unsigned short __vec) {
570   return __builtin_s390_vlbrh(__vec);
571 }
572 
573 static inline __ATTRS_o_ai __vector signed int
vec_revb(__vector signed int __vec)574 vec_revb(__vector signed int __vec) {
575   return (__vector signed int)
576          __builtin_s390_vlbrf((__vector unsigned int)__vec);
577 }
578 
579 static inline __ATTRS_o_ai __vector unsigned int
vec_revb(__vector unsigned int __vec)580 vec_revb(__vector unsigned int __vec) {
581   return __builtin_s390_vlbrf(__vec);
582 }
583 
584 static inline __ATTRS_o_ai __vector signed long long
vec_revb(__vector signed long long __vec)585 vec_revb(__vector signed long long __vec) {
586   return (__vector signed long long)
587          __builtin_s390_vlbrg((__vector unsigned long long)__vec);
588 }
589 
590 static inline __ATTRS_o_ai __vector unsigned long long
vec_revb(__vector unsigned long long __vec)591 vec_revb(__vector unsigned long long __vec) {
592   return __builtin_s390_vlbrg(__vec);
593 }
594 
595 static inline __ATTRS_o_ai __vector signed __int128
vec_revb(__vector signed __int128 __vec)596 vec_revb(__vector signed __int128 __vec) {
597   return (__vector signed __int128)
598          __builtin_s390_vlbrq((unsigned __int128)__vec);
599 }
600 
601 static inline __ATTRS_o_ai __vector unsigned __int128
vec_revb(__vector unsigned __int128 __vec)602 vec_revb(__vector unsigned __int128 __vec) {
603   return (__vector unsigned __int128)
604          __builtin_s390_vlbrq((unsigned __int128)__vec);
605 }
606 
607 #if __ARCH__ >= 12
608 static inline __ATTRS_o_ai __vector float
vec_revb(__vector float __vec)609 vec_revb(__vector float __vec) {
610   return (__vector float)
611          __builtin_s390_vlbrf((__vector unsigned int)__vec);
612 }
613 #endif
614 
615 static inline __ATTRS_o_ai __vector double
vec_revb(__vector double __vec)616 vec_revb(__vector double __vec) {
617   return (__vector double)
618          __builtin_s390_vlbrg((__vector unsigned long long)__vec);
619 }
620 
621 /*-- vec_reve ---------------------------------------------------------------*/
622 
623 static inline __ATTRS_o_ai __vector signed char
vec_reve(__vector signed char __vec)624 vec_reve(__vector signed char __vec) {
625   return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
626                                   __vec[11], __vec[10], __vec[9], __vec[8],
627                                   __vec[7], __vec[6], __vec[5], __vec[4],
628                                   __vec[3], __vec[2], __vec[1], __vec[0] };
629 }
630 
631 static inline __ATTRS_o_ai __vector unsigned char
vec_reve(__vector unsigned char __vec)632 vec_reve(__vector unsigned char __vec) {
633   return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
634                                     __vec[11], __vec[10], __vec[9], __vec[8],
635                                     __vec[7], __vec[6], __vec[5], __vec[4],
636                                     __vec[3], __vec[2], __vec[1], __vec[0] };
637 }
638 
639 static inline __ATTRS_o_ai __vector __bool char
vec_reve(__vector __bool char __vec)640 vec_reve(__vector __bool char __vec) {
641   return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
642                                   __vec[11], __vec[10], __vec[9], __vec[8],
643                                   __vec[7], __vec[6], __vec[5], __vec[4],
644                                   __vec[3], __vec[2], __vec[1], __vec[0] };
645 }
646 
647 static inline __ATTRS_o_ai __vector signed short
vec_reve(__vector signed short __vec)648 vec_reve(__vector signed short __vec) {
649   return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
650                                    __vec[3], __vec[2], __vec[1], __vec[0] };
651 }
652 
653 static inline __ATTRS_o_ai __vector unsigned short
vec_reve(__vector unsigned short __vec)654 vec_reve(__vector unsigned short __vec) {
655   return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
656                                      __vec[3], __vec[2], __vec[1], __vec[0] };
657 }
658 
659 static inline __ATTRS_o_ai __vector __bool short
vec_reve(__vector __bool short __vec)660 vec_reve(__vector __bool short __vec) {
661   return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
662                                    __vec[3], __vec[2], __vec[1], __vec[0] };
663 }
664 
665 static inline __ATTRS_o_ai __vector signed int
vec_reve(__vector signed int __vec)666 vec_reve(__vector signed int __vec) {
667   return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
668 }
669 
670 static inline __ATTRS_o_ai __vector unsigned int
vec_reve(__vector unsigned int __vec)671 vec_reve(__vector unsigned int __vec) {
672   return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
673 }
674 
675 static inline __ATTRS_o_ai __vector __bool int
vec_reve(__vector __bool int __vec)676 vec_reve(__vector __bool int __vec) {
677   return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
678 }
679 
680 static inline __ATTRS_o_ai __vector signed long long
vec_reve(__vector signed long long __vec)681 vec_reve(__vector signed long long __vec) {
682   return (__vector signed long long) { __vec[1], __vec[0] };
683 }
684 
685 static inline __ATTRS_o_ai __vector unsigned long long
vec_reve(__vector unsigned long long __vec)686 vec_reve(__vector unsigned long long __vec) {
687   return (__vector unsigned long long) { __vec[1], __vec[0] };
688 }
689 
690 static inline __ATTRS_o_ai __vector __bool long long
vec_reve(__vector __bool long long __vec)691 vec_reve(__vector __bool long long __vec) {
692   return (__vector __bool long long) { __vec[1], __vec[0] };
693 }
694 
695 #if __ARCH__ >= 12
696 static inline __ATTRS_o_ai __vector float
vec_reve(__vector float __vec)697 vec_reve(__vector float __vec) {
698   return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
699 }
700 #endif
701 
702 static inline __ATTRS_o_ai __vector double
vec_reve(__vector double __vec)703 vec_reve(__vector double __vec) {
704   return (__vector double) { __vec[1], __vec[0] };
705 }
706 
707 /*-- vec_sel ----------------------------------------------------------------*/
708 
709 static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a,__vector signed char __b,__vector unsigned char __c)710 vec_sel(__vector signed char __a, __vector signed char __b,
711         __vector unsigned char __c) {
712   return (((__vector signed char)__c & __b) |
713           (~(__vector signed char)__c & __a));
714 }
715 
716 static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a,__vector signed char __b,__vector __bool char __c)717 vec_sel(__vector signed char __a, __vector signed char __b,
718         __vector __bool char __c) {
719   return (((__vector signed char)__c & __b) |
720           (~(__vector signed char)__c & __a));
721 }
722 
723 static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c)724 vec_sel(__vector __bool char __a, __vector __bool char __b,
725         __vector unsigned char __c) {
726   return (((__vector __bool char)__c & __b) |
727           (~(__vector __bool char)__c & __a));
728 }
729 
730 static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a,__vector __bool char __b,__vector __bool char __c)731 vec_sel(__vector __bool char __a, __vector __bool char __b,
732         __vector __bool char __c) {
733   return (__c & __b) | (~__c & __a);
734 }
735 
736 static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)737 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
738         __vector unsigned char __c) {
739   return (__c & __b) | (~__c & __a);
740 }
741 
742 static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a,__vector unsigned char __b,__vector __bool char __c)743 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
744         __vector __bool char __c) {
745   return (((__vector unsigned char)__c & __b) |
746           (~(__vector unsigned char)__c & __a));
747 }
748 
749 static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a,__vector signed short __b,__vector unsigned short __c)750 vec_sel(__vector signed short __a, __vector signed short __b,
751         __vector unsigned short __c) {
752   return (((__vector signed short)__c & __b) |
753           (~(__vector signed short)__c & __a));
754 }
755 
756 static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a,__vector signed short __b,__vector __bool short __c)757 vec_sel(__vector signed short __a, __vector signed short __b,
758         __vector __bool short __c) {
759   return (((__vector signed short)__c & __b) |
760           (~(__vector signed short)__c & __a));
761 }
762 
763 static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a,__vector __bool short __b,__vector unsigned short __c)764 vec_sel(__vector __bool short __a, __vector __bool short __b,
765         __vector unsigned short __c) {
766   return (((__vector __bool short)__c & __b) |
767           (~(__vector __bool short)__c & __a));
768 }
769 
770 static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a,__vector __bool short __b,__vector __bool short __c)771 vec_sel(__vector __bool short __a, __vector __bool short __b,
772         __vector __bool short __c) {
773   return (__c & __b) | (~__c & __a);
774 }
775 
776 static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)777 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
778         __vector unsigned short __c) {
779   return (__c & __b) | (~__c & __a);
780 }
781 
782 static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a,__vector unsigned short __b,__vector __bool short __c)783 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
784         __vector __bool short __c) {
785   return (((__vector unsigned short)__c & __b) |
786           (~(__vector unsigned short)__c & __a));
787 }
788 
789 static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a,__vector signed int __b,__vector unsigned int __c)790 vec_sel(__vector signed int __a, __vector signed int __b,
791         __vector unsigned int __c) {
792   return (((__vector signed int)__c & __b) |
793           (~(__vector signed int)__c & __a));
794 }
795 
796 static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a,__vector signed int __b,__vector __bool int __c)797 vec_sel(__vector signed int __a, __vector signed int __b,
798         __vector __bool int __c) {
799   return (((__vector signed int)__c & __b) |
800           (~(__vector signed int)__c & __a));
801 }
802 
803 static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a,__vector __bool int __b,__vector unsigned int __c)804 vec_sel(__vector __bool int __a, __vector __bool int __b,
805         __vector unsigned int __c) {
806   return (((__vector __bool int)__c & __b) |
807           (~(__vector __bool int)__c & __a));
808 }
809 
810 static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a,__vector __bool int __b,__vector __bool int __c)811 vec_sel(__vector __bool int __a, __vector __bool int __b,
812         __vector __bool int __c) {
813   return (__c & __b) | (~__c & __a);
814 }
815 
816 static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)817 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
818         __vector unsigned int __c) {
819   return (__c & __b) | (~__c & __a);
820 }
821 
822 static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a,__vector unsigned int __b,__vector __bool int __c)823 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
824         __vector __bool int __c) {
825   return (((__vector unsigned int)__c & __b) |
826           (~(__vector unsigned int)__c & __a));
827 }
828 
829 static inline __ATTRS_o_ai __vector signed long long
vec_sel(__vector signed long long __a,__vector signed long long __b,__vector unsigned long long __c)830 vec_sel(__vector signed long long __a, __vector signed long long __b,
831         __vector unsigned long long __c) {
832   return (((__vector signed long long)__c & __b) |
833           (~(__vector signed long long)__c & __a));
834 }
835 
836 static inline __ATTRS_o_ai __vector signed long long
vec_sel(__vector signed long long __a,__vector signed long long __b,__vector __bool long long __c)837 vec_sel(__vector signed long long __a, __vector signed long long __b,
838         __vector __bool long long __c) {
839   return (((__vector signed long long)__c & __b) |
840           (~(__vector signed long long)__c & __a));
841 }
842 
843 static inline __ATTRS_o_ai __vector __bool long long
vec_sel(__vector __bool long long __a,__vector __bool long long __b,__vector unsigned long long __c)844 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
845         __vector unsigned long long __c) {
846   return (((__vector __bool long long)__c & __b) |
847           (~(__vector __bool long long)__c & __a));
848 }
849 
850 static inline __ATTRS_o_ai __vector __bool long long
vec_sel(__vector __bool long long __a,__vector __bool long long __b,__vector __bool long long __c)851 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
852         __vector __bool long long __c) {
853   return (__c & __b) | (~__c & __a);
854 }
855 
856 static inline __ATTRS_o_ai __vector unsigned long long
vec_sel(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned long long __c)857 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
858         __vector unsigned long long __c) {
859   return (__c & __b) | (~__c & __a);
860 }
861 
862 static inline __ATTRS_o_ai __vector unsigned long long
vec_sel(__vector unsigned long long __a,__vector unsigned long long __b,__vector __bool long long __c)863 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
864         __vector __bool long long __c) {
865   return (((__vector unsigned long long)__c & __b) |
866           (~(__vector unsigned long long)__c & __a));
867 }
868 
869 static inline __ATTRS_o_ai __vector signed __int128
vec_sel(__vector signed __int128 __a,__vector signed __int128 __b,__vector unsigned __int128 __c)870 vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
871         __vector unsigned __int128 __c) {
872   return (((__vector signed __int128)__c & __b) |
873           (~(__vector signed __int128)__c & __a));
874 }
875 
876 static inline __ATTRS_o_ai __vector signed __int128
vec_sel(__vector signed __int128 __a,__vector signed __int128 __b,__vector __bool __int128 __c)877 vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
878         __vector __bool __int128 __c) {
879   return (((__vector signed __int128)__c & __b) |
880           (~(__vector signed __int128)__c & __a));
881 }
882 
883 static inline __ATTRS_o_ai __vector __bool __int128
vec_sel(__vector __bool __int128 __a,__vector __bool __int128 __b,__vector unsigned __int128 __c)884 vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
885         __vector unsigned __int128 __c) {
886   return (((__vector __bool __int128)__c & __b) |
887           (~(__vector __bool __int128)__c & __a));
888 }
889 
890 static inline __ATTRS_o_ai __vector __bool __int128
vec_sel(__vector __bool __int128 __a,__vector __bool __int128 __b,__vector __bool __int128 __c)891 vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
892         __vector __bool __int128 __c) {
893   return (__c & __b) | (~__c & __a);
894 }
895 
896 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sel(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)897 vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
898         __vector unsigned __int128 __c) {
899   return (__c & __b) | (~__c & __a);
900 }
901 
902 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sel(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector __bool __int128 __c)903 vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
904         __vector __bool __int128 __c) {
905   return (((__vector unsigned __int128)__c & __b) |
906           (~(__vector unsigned __int128)__c & __a));
907 }
908 
909 #if __ARCH__ >= 12
910 static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector unsigned int __c)911 vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
912   return (__vector float)((__c & (__vector unsigned int)__b) |
913                           (~__c & (__vector unsigned int)__a));
914 }
915 
916 static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector __bool int __c)917 vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
918   __vector unsigned int __ac = (__vector unsigned int)__a;
919   __vector unsigned int __bc = (__vector unsigned int)__b;
920   __vector unsigned int __cc = (__vector unsigned int)__c;
921   return (__vector float)((__cc & __bc) | (~__cc & __ac));
922 }
923 #endif
924 
925 static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector unsigned long long __c)926 vec_sel(__vector double __a, __vector double __b,
927         __vector unsigned long long __c) {
928   return (__vector double)((__c & (__vector unsigned long long)__b) |
929                          (~__c & (__vector unsigned long long)__a));
930 }
931 
932 static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector __bool long long __c)933 vec_sel(__vector double __a, __vector double __b,
934         __vector __bool long long __c) {
935   __vector unsigned long long __ac = (__vector unsigned long long)__a;
936   __vector unsigned long long __bc = (__vector unsigned long long)__b;
937   __vector unsigned long long __cc = (__vector unsigned long long)__c;
938   return (__vector double)((__cc & __bc) | (~__cc & __ac));
939 }
940 
941 /*-- vec_gather_element -----------------------------------------------------*/
942 
943 static inline __ATTRS_o_ai __vector signed int
vec_gather_element(__vector signed int __vec,__vector unsigned int __offset,const signed int * __ptr,int __index)944 vec_gather_element(__vector signed int __vec,
945                    __vector unsigned int __offset,
946                    const signed int *__ptr, int __index)
947   __constant_range(__index, 0, 3) {
948   __vec[__index] = *(const signed int *)(
949     (const char *)__ptr + __offset[__index]);
950   return __vec;
951 }
952 
953 static inline __ATTRS_o_ai __vector __bool int
vec_gather_element(__vector __bool int __vec,__vector unsigned int __offset,const unsigned int * __ptr,int __index)954 vec_gather_element(__vector __bool int __vec,
955                    __vector unsigned int __offset,
956                    const unsigned int *__ptr, int __index)
957   __constant_range(__index, 0, 3) {
958   __vec[__index] = *(const unsigned int *)(
959     (const char *)__ptr + __offset[__index]);
960   return __vec;
961 }
962 
963 static inline __ATTRS_o_ai __vector unsigned int
vec_gather_element(__vector unsigned int __vec,__vector unsigned int __offset,const unsigned int * __ptr,int __index)964 vec_gather_element(__vector unsigned int __vec,
965                    __vector unsigned int __offset,
966                    const unsigned int *__ptr, int __index)
967   __constant_range(__index, 0, 3) {
968   __vec[__index] = *(const unsigned int *)(
969     (const char *)__ptr + __offset[__index]);
970   return __vec;
971 }
972 
973 static inline __ATTRS_o_ai __vector signed long long
vec_gather_element(__vector signed long long __vec,__vector unsigned long long __offset,const signed long long * __ptr,int __index)974 vec_gather_element(__vector signed long long __vec,
975                    __vector unsigned long long __offset,
976                    const signed long long *__ptr, int __index)
977   __constant_range(__index, 0, 1) {
978   __vec[__index] = *(const signed long long *)(
979     (const char *)__ptr + __offset[__index]);
980   return __vec;
981 }
982 
983 static inline __ATTRS_o_ai __vector __bool long long
vec_gather_element(__vector __bool long long __vec,__vector unsigned long long __offset,const unsigned long long * __ptr,int __index)984 vec_gather_element(__vector __bool long long __vec,
985                    __vector unsigned long long __offset,
986                    const unsigned long long *__ptr, int __index)
987   __constant_range(__index, 0, 1) {
988   __vec[__index] = *(const unsigned long long *)(
989     (const char *)__ptr + __offset[__index]);
990   return __vec;
991 }
992 
993 static inline __ATTRS_o_ai __vector unsigned long long
vec_gather_element(__vector unsigned long long __vec,__vector unsigned long long __offset,const unsigned long long * __ptr,int __index)994 vec_gather_element(__vector unsigned long long __vec,
995                    __vector unsigned long long __offset,
996                    const unsigned long long *__ptr, int __index)
997   __constant_range(__index, 0, 1) {
998   __vec[__index] = *(const unsigned long long *)(
999     (const char *)__ptr + __offset[__index]);
1000   return __vec;
1001 }
1002 
1003 #if __ARCH__ >= 12
1004 static inline __ATTRS_o_ai __vector float
vec_gather_element(__vector float __vec,__vector unsigned int __offset,const float * __ptr,int __index)1005 vec_gather_element(__vector float __vec,
1006                    __vector unsigned int __offset,
1007                    const float *__ptr, int __index)
1008   __constant_range(__index, 0, 3) {
1009   __vec[__index] = *(const float *)(
1010     (const char *)__ptr + __offset[__index]);
1011   return __vec;
1012 }
1013 #endif
1014 
1015 static inline __ATTRS_o_ai __vector double
vec_gather_element(__vector double __vec,__vector unsigned long long __offset,const double * __ptr,int __index)1016 vec_gather_element(__vector double __vec,
1017                    __vector unsigned long long __offset,
1018                    const double *__ptr, int __index)
1019   __constant_range(__index, 0, 1) {
1020   __vec[__index] = *(const double *)(
1021     (const char *)__ptr + __offset[__index]);
1022   return __vec;
1023 }
1024 
1025 /*-- vec_scatter_element ----------------------------------------------------*/
1026 
1027 static inline __ATTRS_o_ai void
vec_scatter_element(__vector signed int __vec,__vector unsigned int __offset,signed int * __ptr,int __index)1028 vec_scatter_element(__vector signed int __vec,
1029                     __vector unsigned int __offset,
1030                     signed int *__ptr, int __index)
1031   __constant_range(__index, 0, 3) {
1032   *(signed int *)((char *)__ptr + __offset[__index]) =
1033     __vec[__index];
1034 }
1035 
1036 static inline __ATTRS_o_ai void
vec_scatter_element(__vector __bool int __vec,__vector unsigned int __offset,unsigned int * __ptr,int __index)1037 vec_scatter_element(__vector __bool int __vec,
1038                     __vector unsigned int __offset,
1039                     unsigned int *__ptr, int __index)
1040   __constant_range(__index, 0, 3) {
1041   *(unsigned int *)((char *)__ptr + __offset[__index]) =
1042     __vec[__index];
1043 }
1044 
1045 static inline __ATTRS_o_ai void
vec_scatter_element(__vector unsigned int __vec,__vector unsigned int __offset,unsigned int * __ptr,int __index)1046 vec_scatter_element(__vector unsigned int __vec,
1047                     __vector unsigned int __offset,
1048                     unsigned int *__ptr, int __index)
1049   __constant_range(__index, 0, 3) {
1050   *(unsigned int *)((char *)__ptr + __offset[__index]) =
1051     __vec[__index];
1052 }
1053 
1054 static inline __ATTRS_o_ai void
vec_scatter_element(__vector signed long long __vec,__vector unsigned long long __offset,signed long long * __ptr,int __index)1055 vec_scatter_element(__vector signed long long __vec,
1056                     __vector unsigned long long __offset,
1057                     signed long long *__ptr, int __index)
1058   __constant_range(__index, 0, 1) {
1059   *(signed long long *)((char *)__ptr + __offset[__index]) =
1060     __vec[__index];
1061 }
1062 
1063 static inline __ATTRS_o_ai void
vec_scatter_element(__vector __bool long long __vec,__vector unsigned long long __offset,unsigned long long * __ptr,int __index)1064 vec_scatter_element(__vector __bool long long __vec,
1065                     __vector unsigned long long __offset,
1066                     unsigned long long *__ptr, int __index)
1067   __constant_range(__index, 0, 1) {
1068   *(unsigned long long *)((char *)__ptr + __offset[__index]) =
1069     __vec[__index];
1070 }
1071 
1072 static inline __ATTRS_o_ai void
vec_scatter_element(__vector unsigned long long __vec,__vector unsigned long long __offset,unsigned long long * __ptr,int __index)1073 vec_scatter_element(__vector unsigned long long __vec,
1074                     __vector unsigned long long __offset,
1075                     unsigned long long *__ptr, int __index)
1076   __constant_range(__index, 0, 1) {
1077   *(unsigned long long *)((char *)__ptr + __offset[__index]) =
1078     __vec[__index];
1079 }
1080 
1081 #if __ARCH__ >= 12
1082 static inline __ATTRS_o_ai void
vec_scatter_element(__vector float __vec,__vector unsigned int __offset,float * __ptr,int __index)1083 vec_scatter_element(__vector float __vec,
1084                     __vector unsigned int __offset,
1085                     float *__ptr, int __index)
1086   __constant_range(__index, 0, 3) {
1087   *(float *)((char *)__ptr + __offset[__index]) =
1088     __vec[__index];
1089 }
1090 #endif
1091 
1092 static inline __ATTRS_o_ai void
vec_scatter_element(__vector double __vec,__vector unsigned long long __offset,double * __ptr,int __index)1093 vec_scatter_element(__vector double __vec,
1094                     __vector unsigned long long __offset,
1095                     double *__ptr, int __index)
1096   __constant_range(__index, 0, 1) {
1097   *(double *)((char *)__ptr + __offset[__index]) =
1098     __vec[__index];
1099 }
1100 
1101 /*-- vec_xl -----------------------------------------------------------------*/
1102 
1103 static inline __ATTRS_o_ai __vector signed char
vec_xl(long __offset,const signed char * __ptr)1104 vec_xl(long __offset, const signed char *__ptr) {
1105   __vector signed char V;
1106   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1107                    sizeof(__vector signed char));
1108   return V;
1109 }
1110 
1111 static inline __ATTRS_o_ai __vector unsigned char
vec_xl(long __offset,const unsigned char * __ptr)1112 vec_xl(long __offset, const unsigned char *__ptr) {
1113   __vector unsigned char V;
1114   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1115                    sizeof(__vector unsigned char));
1116   return V;
1117 }
1118 
1119 static inline __ATTRS_o_ai __vector signed short
vec_xl(long __offset,const signed short * __ptr)1120 vec_xl(long __offset, const signed short *__ptr) {
1121   __vector signed short V;
1122   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1123                    sizeof(__vector signed short));
1124   return V;
1125 }
1126 
1127 static inline __ATTRS_o_ai __vector unsigned short
vec_xl(long __offset,const unsigned short * __ptr)1128 vec_xl(long __offset, const unsigned short *__ptr) {
1129   __vector unsigned short V;
1130   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1131                    sizeof(__vector unsigned short));
1132   return V;
1133 }
1134 
1135 static inline __ATTRS_o_ai __vector signed int
vec_xl(long __offset,const signed int * __ptr)1136 vec_xl(long __offset, const signed int *__ptr) {
1137   __vector signed int V;
1138   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1139                    sizeof(__vector signed int));
1140   return V;
1141 }
1142 
1143 static inline __ATTRS_o_ai __vector unsigned int
vec_xl(long __offset,const unsigned int * __ptr)1144 vec_xl(long __offset, const unsigned int *__ptr) {
1145   __vector unsigned int V;
1146   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1147                    sizeof(__vector unsigned int));
1148   return V;
1149 }
1150 
1151 static inline __ATTRS_o_ai __vector signed long long
vec_xl(long __offset,const signed long long * __ptr)1152 vec_xl(long __offset, const signed long long *__ptr) {
1153   __vector signed long long V;
1154   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1155                    sizeof(__vector signed long long));
1156   return V;
1157 }
1158 
1159 static inline __ATTRS_o_ai __vector unsigned long long
vec_xl(long __offset,const unsigned long long * __ptr)1160 vec_xl(long __offset, const unsigned long long *__ptr) {
1161   __vector unsigned long long V;
1162   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1163                    sizeof(__vector unsigned long long));
1164   return V;
1165 }
1166 
1167 static inline __ATTRS_o_ai __vector signed __int128
vec_xl(long __offset,const signed __int128 * __ptr)1168 vec_xl(long __offset, const signed __int128 *__ptr) {
1169   __vector signed __int128 V;
1170   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1171                    sizeof(__vector signed __int128));
1172   return V;
1173 }
1174 
1175 static inline __ATTRS_o_ai __vector unsigned __int128
vec_xl(long __offset,const unsigned __int128 * __ptr)1176 vec_xl(long __offset, const unsigned __int128 *__ptr) {
1177   __vector unsigned __int128 V;
1178   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1179                    sizeof(__vector unsigned __int128));
1180   return V;
1181 }
1182 
1183 #if __ARCH__ >= 12
1184 static inline __ATTRS_o_ai __vector float
vec_xl(long __offset,const float * __ptr)1185 vec_xl(long __offset, const float *__ptr) {
1186   __vector float V;
1187   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1188                    sizeof(__vector float));
1189   return V;
1190 }
1191 #endif
1192 
1193 static inline __ATTRS_o_ai __vector double
vec_xl(long __offset,const double * __ptr)1194 vec_xl(long __offset, const double *__ptr) {
1195   __vector double V;
1196   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1197                    sizeof(__vector double));
1198   return V;
1199 }
1200 
1201 /*-- vec_xld2 ---------------------------------------------------------------*/
1202 
1203 // This prototype is deprecated.
1204 static inline __ATTRS_o_ai __vector signed char
vec_xld2(long __offset,const signed char * __ptr)1205 vec_xld2(long __offset, const signed char *__ptr) {
1206   __vector signed char V;
1207   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1208                    sizeof(__vector signed char));
1209   return V;
1210 }
1211 
1212 // This prototype is deprecated.
1213 static inline __ATTRS_o_ai __vector unsigned char
vec_xld2(long __offset,const unsigned char * __ptr)1214 vec_xld2(long __offset, const unsigned char *__ptr) {
1215   __vector unsigned char V;
1216   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1217                    sizeof(__vector unsigned char));
1218   return V;
1219 }
1220 
1221 // This prototype is deprecated.
1222 static inline __ATTRS_o_ai __vector signed short
vec_xld2(long __offset,const signed short * __ptr)1223 vec_xld2(long __offset, const signed short *__ptr) {
1224   __vector signed short V;
1225   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1226                    sizeof(__vector signed short));
1227   return V;
1228 }
1229 
1230 // This prototype is deprecated.
1231 static inline __ATTRS_o_ai __vector unsigned short
vec_xld2(long __offset,const unsigned short * __ptr)1232 vec_xld2(long __offset, const unsigned short *__ptr) {
1233   __vector unsigned short V;
1234   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1235                    sizeof(__vector unsigned short));
1236   return V;
1237 }
1238 
1239 // This prototype is deprecated.
1240 static inline __ATTRS_o_ai __vector signed int
vec_xld2(long __offset,const signed int * __ptr)1241 vec_xld2(long __offset, const signed int *__ptr) {
1242   __vector signed int V;
1243   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1244                    sizeof(__vector signed int));
1245   return V;
1246 }
1247 
1248 // This prototype is deprecated.
1249 static inline __ATTRS_o_ai __vector unsigned int
vec_xld2(long __offset,const unsigned int * __ptr)1250 vec_xld2(long __offset, const unsigned int *__ptr) {
1251   __vector unsigned int V;
1252   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1253                    sizeof(__vector unsigned int));
1254   return V;
1255 }
1256 
1257 // This prototype is deprecated.
1258 static inline __ATTRS_o_ai __vector signed long long
vec_xld2(long __offset,const signed long long * __ptr)1259 vec_xld2(long __offset, const signed long long *__ptr) {
1260   __vector signed long long V;
1261   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1262                    sizeof(__vector signed long long));
1263   return V;
1264 }
1265 
1266 // This prototype is deprecated.
1267 static inline __ATTRS_o_ai __vector unsigned long long
vec_xld2(long __offset,const unsigned long long * __ptr)1268 vec_xld2(long __offset, const unsigned long long *__ptr) {
1269   __vector unsigned long long V;
1270   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1271                    sizeof(__vector unsigned long long));
1272   return V;
1273 }
1274 
1275 // This prototype is deprecated.
1276 static inline __ATTRS_o_ai __vector double
vec_xld2(long __offset,const double * __ptr)1277 vec_xld2(long __offset, const double *__ptr) {
1278   __vector double V;
1279   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1280                    sizeof(__vector double));
1281   return V;
1282 }
1283 
1284 /*-- vec_xlw4 ---------------------------------------------------------------*/
1285 
1286 // This prototype is deprecated.
1287 static inline __ATTRS_o_ai __vector signed char
vec_xlw4(long __offset,const signed char * __ptr)1288 vec_xlw4(long __offset, const signed char *__ptr) {
1289   __vector signed char V;
1290   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1291                    sizeof(__vector signed char));
1292   return V;
1293 }
1294 
1295 // This prototype is deprecated.
1296 static inline __ATTRS_o_ai __vector unsigned char
vec_xlw4(long __offset,const unsigned char * __ptr)1297 vec_xlw4(long __offset, const unsigned char *__ptr) {
1298   __vector unsigned char V;
1299   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1300                    sizeof(__vector unsigned char));
1301   return V;
1302 }
1303 
1304 // This prototype is deprecated.
1305 static inline __ATTRS_o_ai __vector signed short
vec_xlw4(long __offset,const signed short * __ptr)1306 vec_xlw4(long __offset, const signed short *__ptr) {
1307   __vector signed short V;
1308   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1309                    sizeof(__vector signed short));
1310   return V;
1311 }
1312 
1313 // This prototype is deprecated.
1314 static inline __ATTRS_o_ai __vector unsigned short
vec_xlw4(long __offset,const unsigned short * __ptr)1315 vec_xlw4(long __offset, const unsigned short *__ptr) {
1316   __vector unsigned short V;
1317   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1318                    sizeof(__vector unsigned short));
1319   return V;
1320 }
1321 
1322 // This prototype is deprecated.
1323 static inline __ATTRS_o_ai __vector signed int
vec_xlw4(long __offset,const signed int * __ptr)1324 vec_xlw4(long __offset, const signed int *__ptr) {
1325   __vector signed int V;
1326   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1327                    sizeof(__vector signed int));
1328   return V;
1329 }
1330 
1331 // This prototype is deprecated.
1332 static inline __ATTRS_o_ai __vector unsigned int
vec_xlw4(long __offset,const unsigned int * __ptr)1333 vec_xlw4(long __offset, const unsigned int *__ptr) {
1334   __vector unsigned int V;
1335   __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1336                    sizeof(__vector unsigned int));
1337   return V;
1338 }
1339 
1340 /*-- vec_xst ----------------------------------------------------------------*/
1341 
1342 static inline __ATTRS_o_ai void
vec_xst(__vector signed char __vec,long __offset,signed char * __ptr)1343 vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
1344   __vector signed char V = __vec;
1345   __builtin_memcpy(((char *)__ptr + __offset), &V,
1346                    sizeof(__vector signed char));
1347 }
1348 
1349 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1350 vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1351   __vector unsigned char V = __vec;
1352   __builtin_memcpy(((char *)__ptr + __offset), &V,
1353                    sizeof(__vector unsigned char));
1354 }
1355 
1356 static inline __ATTRS_o_ai void
vec_xst(__vector signed short __vec,long __offset,signed short * __ptr)1357 vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
1358   __vector signed short V = __vec;
1359   __builtin_memcpy(((char *)__ptr + __offset), &V,
1360                    sizeof(__vector signed short));
1361 }
1362 
1363 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1364 vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1365   __vector unsigned short V = __vec;
1366   __builtin_memcpy(((char *)__ptr + __offset), &V,
1367                    sizeof(__vector unsigned short));
1368 }
1369 
1370 static inline __ATTRS_o_ai void
vec_xst(__vector signed int __vec,long __offset,signed int * __ptr)1371 vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
1372   __vector signed int V = __vec;
1373   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1374 }
1375 
1376 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1377 vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1378   __vector unsigned int V = __vec;
1379   __builtin_memcpy(((char *)__ptr + __offset), &V,
1380                    sizeof(__vector unsigned int));
1381 }
1382 
1383 static inline __ATTRS_o_ai void
vec_xst(__vector signed long long __vec,long __offset,signed long long * __ptr)1384 vec_xst(__vector signed long long __vec, long __offset,
1385         signed long long *__ptr) {
1386   __vector signed long long V = __vec;
1387   __builtin_memcpy(((char *)__ptr + __offset), &V,
1388                    sizeof(__vector signed long long));
1389 }
1390 
1391 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1392 vec_xst(__vector unsigned long long __vec, long __offset,
1393         unsigned long long *__ptr) {
1394   __vector unsigned long long V = __vec;
1395   __builtin_memcpy(((char *)__ptr + __offset), &V,
1396                    sizeof(__vector unsigned long long));
1397 }
1398 
1399 static inline __ATTRS_o_ai void
vec_xst(__vector signed __int128 __vec,long __offset,signed __int128 * __ptr)1400 vec_xst(__vector signed __int128 __vec, long __offset,
1401         signed __int128 *__ptr) {
1402   __vector signed __int128 V = __vec;
1403   __builtin_memcpy(((char *)__ptr + __offset), &V,
1404                    sizeof(__vector signed __int128));
1405 }
1406 
1407 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned __int128 __vec,long __offset,unsigned __int128 * __ptr)1408 vec_xst(__vector unsigned __int128 __vec, long __offset,
1409         unsigned __int128 *__ptr) {
1410   __vector unsigned __int128 V = __vec;
1411   __builtin_memcpy(((char *)__ptr + __offset), &V,
1412                    sizeof(__vector unsigned __int128));
1413 }
1414 
1415 #if __ARCH__ >= 12
1416 static inline __ATTRS_o_ai void
vec_xst(__vector float __vec,long __offset,float * __ptr)1417 vec_xst(__vector float __vec, long __offset, float *__ptr) {
1418   __vector float V = __vec;
1419   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));
1420 }
1421 #endif
1422 
1423 static inline __ATTRS_o_ai void
vec_xst(__vector double __vec,long __offset,double * __ptr)1424 vec_xst(__vector double __vec, long __offset, double *__ptr) {
1425   __vector double V = __vec;
1426   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1427 }
1428 
1429 /*-- vec_xstd2 --------------------------------------------------------------*/
1430 
1431 // This prototype is deprecated.
1432 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed char __vec,long __offset,signed char * __ptr)1433 vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
1434   __vector signed char V = __vec;
1435   __builtin_memcpy(((char *)__ptr + __offset), &V,
1436                    sizeof(__vector signed char));
1437 }
1438 
1439 // This prototype is deprecated.
1440 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1441 vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1442   __vector unsigned char V = __vec;
1443   __builtin_memcpy(((char *)__ptr + __offset), &V,
1444                    sizeof(__vector unsigned char));
1445 }
1446 
1447 // This prototype is deprecated.
1448 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed short __vec,long __offset,signed short * __ptr)1449 vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
1450   __vector signed short V = __vec;
1451   __builtin_memcpy(((char *)__ptr + __offset), &V,
1452                    sizeof(__vector signed short));
1453 }
1454 
1455 // This prototype is deprecated.
1456 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1457 vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1458   __vector unsigned short V = __vec;
1459   __builtin_memcpy(((char *)__ptr + __offset), &V,
1460                    sizeof(__vector unsigned short));
1461 }
1462 
1463 // This prototype is deprecated.
1464 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed int __vec,long __offset,signed int * __ptr)1465 vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
1466   __vector signed int V = __vec;
1467   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1468 }
1469 
1470 // This prototype is deprecated.
1471 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1472 vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1473   __vector unsigned int V = __vec;
1474   __builtin_memcpy(((char *)__ptr + __offset), &V,
1475                    sizeof(__vector unsigned int));
1476 }
1477 
1478 // This prototype is deprecated.
1479 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed long long __vec,long __offset,signed long long * __ptr)1480 vec_xstd2(__vector signed long long __vec, long __offset,
1481           signed long long *__ptr) {
1482   __vector signed long long V = __vec;
1483   __builtin_memcpy(((char *)__ptr + __offset), &V,
1484                    sizeof(__vector signed long long));
1485 }
1486 
1487 // This prototype is deprecated.
1488 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1489 vec_xstd2(__vector unsigned long long __vec, long __offset,
1490           unsigned long long *__ptr) {
1491   __vector unsigned long long V = __vec;
1492   __builtin_memcpy(((char *)__ptr + __offset), &V,
1493                    sizeof(__vector unsigned long long));
1494 }
1495 
1496 // This prototype is deprecated.
1497 static inline __ATTRS_o_ai void
vec_xstd2(__vector double __vec,long __offset,double * __ptr)1498 vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
1499   __vector double V = __vec;
1500   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1501 }
1502 
1503 /*-- vec_xstw4 --------------------------------------------------------------*/
1504 
1505 // This prototype is deprecated.
1506 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed char __vec,long __offset,signed char * __ptr)1507 vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
1508   __vector signed char V = __vec;
1509   __builtin_memcpy(((char *)__ptr + __offset), &V,
1510                    sizeof(__vector signed char));
1511 }
1512 
1513 // This prototype is deprecated.
1514 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1515 vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1516   __vector unsigned char V = __vec;
1517   __builtin_memcpy(((char *)__ptr + __offset), &V,
1518                    sizeof(__vector unsigned char));
1519 }
1520 
1521 // This prototype is deprecated.
1522 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed short __vec,long __offset,signed short * __ptr)1523 vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
1524   __vector signed short V = __vec;
1525   __builtin_memcpy(((char *)__ptr + __offset), &V,
1526                    sizeof(__vector signed short));
1527 }
1528 
1529 // This prototype is deprecated.
1530 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1531 vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1532   __vector unsigned short V = __vec;
1533   __builtin_memcpy(((char *)__ptr + __offset), &V,
1534                    sizeof(__vector unsigned short));
1535 }
1536 
1537 // This prototype is deprecated.
1538 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed int __vec,long __offset,signed int * __ptr)1539 vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
1540   __vector signed int V = __vec;
1541   __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1542 }
1543 
1544 // This prototype is deprecated.
1545 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1546 vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1547   __vector unsigned int V = __vec;
1548   __builtin_memcpy(((char *)__ptr + __offset), &V,
1549                    sizeof(__vector unsigned int));
1550 }
1551 
1552 /*-- vec_load_bndry ---------------------------------------------------------*/
1553 
1554 extern __ATTRS_o __vector signed char
1555 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1556   __constant_pow2_range(__len, 64, 4096);
1557 
1558 extern __ATTRS_o __vector unsigned char
1559 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1560   __constant_pow2_range(__len, 64, 4096);
1561 
1562 extern __ATTRS_o __vector signed short
1563 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1564   __constant_pow2_range(__len, 64, 4096);
1565 
1566 extern __ATTRS_o __vector unsigned short
1567 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1568   __constant_pow2_range(__len, 64, 4096);
1569 
1570 extern __ATTRS_o __vector signed int
1571 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1572   __constant_pow2_range(__len, 64, 4096);
1573 
1574 extern __ATTRS_o __vector unsigned int
1575 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1576   __constant_pow2_range(__len, 64, 4096);
1577 
1578 extern __ATTRS_o __vector signed long long
1579 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1580   __constant_pow2_range(__len, 64, 4096);
1581 
1582 extern __ATTRS_o __vector unsigned long long
1583 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1584   __constant_pow2_range(__len, 64, 4096);
1585 
1586 extern __ATTRS_o __vector signed __int128
1587 vec_load_bndry(const signed __int128 *__ptr, unsigned short __len)
1588   __constant_pow2_range(__len, 64, 4096);
1589 
1590 extern __ATTRS_o __vector unsigned __int128
1591 vec_load_bndry(const unsigned __int128 *__ptr, unsigned short __len)
1592   __constant_pow2_range(__len, 64, 4096);
1593 
1594 #if __ARCH__ >= 12
1595 extern __ATTRS_o __vector float
1596 vec_load_bndry(const float *__ptr, unsigned short __len)
1597   __constant_pow2_range(__len, 64, 4096);
1598 #endif
1599 
1600 extern __ATTRS_o __vector double
1601 vec_load_bndry(const double *__ptr, unsigned short __len)
1602   __constant_pow2_range(__len, 64, 4096);
1603 
1604 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1605   __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1606                             (Y) == 128 ? 1 : \
1607                             (Y) == 256 ? 2 : \
1608                             (Y) == 512 ? 3 : \
1609                             (Y) == 1024 ? 4 : \
1610                             (Y) == 2048 ? 5 : \
1611                             (Y) == 4096 ? 6 : -1)))
1612 
1613 /*-- vec_load_len -----------------------------------------------------------*/
1614 
1615 static inline __ATTRS_o_ai __vector signed char
vec_load_len(const signed char * __ptr,unsigned int __len)1616 vec_load_len(const signed char *__ptr, unsigned int __len) {
1617   return (__vector signed char)__builtin_s390_vll(__len, __ptr);
1618 }
1619 
1620 static inline __ATTRS_o_ai __vector unsigned char
vec_load_len(const unsigned char * __ptr,unsigned int __len)1621 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1622   return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
1623 }
1624 
1625 // This prototype is deprecated.
1626 static inline __ATTRS_o_ai __vector signed short
vec_load_len(const signed short * __ptr,unsigned int __len)1627 vec_load_len(const signed short *__ptr, unsigned int __len) {
1628   return (__vector signed short)__builtin_s390_vll(__len, __ptr);
1629 }
1630 
1631 // This prototype is deprecated.
1632 static inline __ATTRS_o_ai __vector unsigned short
vec_load_len(const unsigned short * __ptr,unsigned int __len)1633 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1634   return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
1635 }
1636 
1637 // This prototype is deprecated.
1638 static inline __ATTRS_o_ai __vector signed int
vec_load_len(const signed int * __ptr,unsigned int __len)1639 vec_load_len(const signed int *__ptr, unsigned int __len) {
1640   return (__vector signed int)__builtin_s390_vll(__len, __ptr);
1641 }
1642 
1643 // This prototype is deprecated.
1644 static inline __ATTRS_o_ai __vector unsigned int
vec_load_len(const unsigned int * __ptr,unsigned int __len)1645 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1646   return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
1647 }
1648 
1649 // This prototype is deprecated.
1650 static inline __ATTRS_o_ai __vector signed long long
vec_load_len(const signed long long * __ptr,unsigned int __len)1651 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1652   return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
1653 }
1654 
1655 // This prototype is deprecated.
1656 static inline __ATTRS_o_ai __vector unsigned long long
vec_load_len(const unsigned long long * __ptr,unsigned int __len)1657 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1658   return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1659 }
1660 
1661 #if __ARCH__ >= 12
1662 // This prototype is deprecated.
1663 static inline __ATTRS_o_ai __vector float
vec_load_len(const float * __ptr,unsigned int __len)1664 vec_load_len(const float *__ptr, unsigned int __len) {
1665   return (__vector float)__builtin_s390_vll(__len, __ptr);
1666 }
1667 #endif
1668 
1669 // This prototype is deprecated.
1670 static inline __ATTRS_o_ai __vector double
vec_load_len(const double * __ptr,unsigned int __len)1671 vec_load_len(const double *__ptr, unsigned int __len) {
1672   return (__vector double)__builtin_s390_vll(__len, __ptr);
1673 }
1674 
1675 /*-- vec_load_len_r ---------------------------------------------------------*/
1676 
1677 #if __ARCH__ >= 12
1678 static inline __ATTRS_o_ai __vector signed char
vec_load_len_r(const signed char * __ptr,unsigned int __len)1679 vec_load_len_r(const signed char *__ptr, unsigned int __len) {
1680   return (__vector signed char)__builtin_s390_vlrlr(__len, __ptr);
1681 }
1682 
1683 static inline __ATTRS_o_ai __vector unsigned char
vec_load_len_r(const unsigned char * __ptr,unsigned int __len)1684 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1685   return (__vector unsigned char)__builtin_s390_vlrlr(__len, __ptr);
1686 }
1687 #endif
1688 
1689 /*-- vec_store_len ----------------------------------------------------------*/
1690 
1691 static inline __ATTRS_o_ai void
vec_store_len(__vector signed char __vec,signed char * __ptr,unsigned int __len)1692 vec_store_len(__vector signed char __vec, signed char *__ptr,
1693               unsigned int __len) {
1694   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1695 }
1696 
1697 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1698 vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
1699               unsigned int __len) {
1700   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1701 }
1702 
1703 // This prototype is deprecated.
1704 static inline __ATTRS_o_ai void
vec_store_len(__vector signed short __vec,signed short * __ptr,unsigned int __len)1705 vec_store_len(__vector signed short __vec, signed short *__ptr,
1706               unsigned int __len) {
1707   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1708 }
1709 
1710 // This prototype is deprecated.
1711 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned short __vec,unsigned short * __ptr,unsigned int __len)1712 vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
1713               unsigned int __len) {
1714   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1715 }
1716 
1717 // This prototype is deprecated.
1718 static inline __ATTRS_o_ai void
vec_store_len(__vector signed int __vec,signed int * __ptr,unsigned int __len)1719 vec_store_len(__vector signed int __vec, signed int *__ptr,
1720               unsigned int __len) {
1721   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1722 }
1723 
1724 // This prototype is deprecated.
1725 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned int __vec,unsigned int * __ptr,unsigned int __len)1726 vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
1727               unsigned int __len) {
1728   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1729 }
1730 
1731 // This prototype is deprecated.
1732 static inline __ATTRS_o_ai void
vec_store_len(__vector signed long long __vec,signed long long * __ptr,unsigned int __len)1733 vec_store_len(__vector signed long long __vec, signed long long *__ptr,
1734               unsigned int __len) {
1735   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1736 }
1737 
1738 // This prototype is deprecated.
1739 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned long long __vec,unsigned long long * __ptr,unsigned int __len)1740 vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
1741               unsigned int __len) {
1742   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1743 }
1744 
1745 #if __ARCH__ >= 12
1746 // This prototype is deprecated.
1747 static inline __ATTRS_o_ai void
vec_store_len(__vector float __vec,float * __ptr,unsigned int __len)1748 vec_store_len(__vector float __vec, float *__ptr,
1749               unsigned int __len) {
1750   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1751 }
1752 #endif
1753 
1754 // This prototype is deprecated.
1755 static inline __ATTRS_o_ai void
vec_store_len(__vector double __vec,double * __ptr,unsigned int __len)1756 vec_store_len(__vector double __vec, double *__ptr,
1757               unsigned int __len) {
1758   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1759 }
1760 
1761 /*-- vec_store_len_r --------------------------------------------------------*/
1762 
1763 #if __ARCH__ >= 12
1764 static inline __ATTRS_o_ai void
vec_store_len_r(__vector signed char __vec,signed char * __ptr,unsigned int __len)1765 vec_store_len_r(__vector signed char __vec, signed char *__ptr,
1766                 unsigned int __len) {
1767   __builtin_s390_vstrlr(__vec, __len, __ptr);
1768 }
1769 
1770 static inline __ATTRS_o_ai void
vec_store_len_r(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1771 vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
1772                 unsigned int __len) {
1773   __builtin_s390_vstrlr((__vector signed char)__vec, __len, __ptr);
1774 }
1775 #endif
1776 
1777 /*-- vec_load_pair ----------------------------------------------------------*/
1778 
1779 static inline __ATTRS_o_ai __vector signed long long
vec_load_pair(signed long long __a,signed long long __b)1780 vec_load_pair(signed long long __a, signed long long __b) {
1781   return (__vector signed long long)(__a, __b);
1782 }
1783 
1784 static inline __ATTRS_o_ai __vector unsigned long long
vec_load_pair(unsigned long long __a,unsigned long long __b)1785 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1786   return (__vector unsigned long long)(__a, __b);
1787 }
1788 
1789 /*-- vec_genmask ------------------------------------------------------------*/
1790 
1791 static inline __ATTRS_o_ai __vector unsigned char
vec_genmask(unsigned short __mask)1792 vec_genmask(unsigned short __mask)
1793   __constant(__mask) {
1794   return (__vector unsigned char)(
1795     __mask & 0x8000 ? 0xff : 0,
1796     __mask & 0x4000 ? 0xff : 0,
1797     __mask & 0x2000 ? 0xff : 0,
1798     __mask & 0x1000 ? 0xff : 0,
1799     __mask & 0x0800 ? 0xff : 0,
1800     __mask & 0x0400 ? 0xff : 0,
1801     __mask & 0x0200 ? 0xff : 0,
1802     __mask & 0x0100 ? 0xff : 0,
1803     __mask & 0x0080 ? 0xff : 0,
1804     __mask & 0x0040 ? 0xff : 0,
1805     __mask & 0x0020 ? 0xff : 0,
1806     __mask & 0x0010 ? 0xff : 0,
1807     __mask & 0x0008 ? 0xff : 0,
1808     __mask & 0x0004 ? 0xff : 0,
1809     __mask & 0x0002 ? 0xff : 0,
1810     __mask & 0x0001 ? 0xff : 0);
1811 }
1812 
1813 /*-- vec_genmasks_* ---------------------------------------------------------*/
1814 
1815 static inline __ATTRS_o_ai __vector unsigned char
vec_genmasks_8(unsigned char __first,unsigned char __last)1816 vec_genmasks_8(unsigned char __first, unsigned char __last)
1817   __constant(__first) __constant(__last) {
1818   unsigned char __bit1 = __first & 7;
1819   unsigned char __bit2 = __last & 7;
1820   unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1821   unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1822   unsigned char __value = (__bit1 <= __bit2 ?
1823                            __mask1 & ~__mask2 :
1824                            __mask1 | ~__mask2);
1825   return (__vector unsigned char)__value;
1826 }
1827 
1828 static inline __ATTRS_o_ai __vector unsigned short
vec_genmasks_16(unsigned char __first,unsigned char __last)1829 vec_genmasks_16(unsigned char __first, unsigned char __last)
1830   __constant(__first) __constant(__last) {
1831   unsigned char __bit1 = __first & 15;
1832   unsigned char __bit2 = __last & 15;
1833   unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1834   unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1835   unsigned short __value = (__bit1 <= __bit2 ?
1836                             __mask1 & ~__mask2 :
1837                             __mask1 | ~__mask2);
1838   return (__vector unsigned short)__value;
1839 }
1840 
1841 static inline __ATTRS_o_ai __vector unsigned int
vec_genmasks_32(unsigned char __first,unsigned char __last)1842 vec_genmasks_32(unsigned char __first, unsigned char __last)
1843   __constant(__first) __constant(__last) {
1844   unsigned char __bit1 = __first & 31;
1845   unsigned char __bit2 = __last & 31;
1846   unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1847   unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1848   unsigned int __value = (__bit1 <= __bit2 ?
1849                           __mask1 & ~__mask2 :
1850                           __mask1 | ~__mask2);
1851   return (__vector unsigned int)__value;
1852 }
1853 
1854 static inline __ATTRS_o_ai __vector unsigned long long
vec_genmasks_64(unsigned char __first,unsigned char __last)1855 vec_genmasks_64(unsigned char __first, unsigned char __last)
1856   __constant(__first) __constant(__last) {
1857   unsigned char __bit1 = __first & 63;
1858   unsigned char __bit2 = __last & 63;
1859   unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1860   unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1861   unsigned long long __value = (__bit1 <= __bit2 ?
1862                                 __mask1 & ~__mask2 :
1863                                 __mask1 | ~__mask2);
1864   return (__vector unsigned long long)__value;
1865 }
1866 
1867 /*-- vec_gen_element_masks_* ------------------------------------------------*/
1868 
1869 #if __ARCH__ >= 15
1870 static inline __ATTRS_ai __vector unsigned char
vec_gen_element_masks_8(__vector unsigned short __mask)1871 vec_gen_element_masks_8(__vector unsigned short __mask) {
1872   return __builtin_s390_vgemb(__mask);
1873 }
1874 
1875 static inline __ATTRS_ai __vector unsigned short
vec_gen_element_masks_16(__vector unsigned char __mask)1876 vec_gen_element_masks_16(__vector unsigned char __mask) {
1877   return __builtin_s390_vgemh(__mask);
1878 }
1879 
1880 static inline __ATTRS_ai __vector unsigned int
vec_gen_element_masks_32(__vector unsigned char __mask)1881 vec_gen_element_masks_32(__vector unsigned char __mask) {
1882   return __builtin_s390_vgemf(__mask);
1883 }
1884 
1885 static inline __ATTRS_ai __vector unsigned long long
vec_gen_element_masks_64(__vector unsigned char __mask)1886 vec_gen_element_masks_64(__vector unsigned char __mask) {
1887   return __builtin_s390_vgemg(__mask);
1888 }
1889 
1890 static inline __ATTRS_ai __vector unsigned __int128
vec_gen_element_masks_128(__vector unsigned char __mask)1891 vec_gen_element_masks_128(__vector unsigned char __mask) {
1892   return (__vector unsigned __int128)__builtin_s390_vgemq(__mask);
1893 }
1894 #endif
1895 
1896 /*-- vec_splat --------------------------------------------------------------*/
1897 
1898 static inline __ATTRS_o_ai __vector signed char
vec_splat(__vector signed char __vec,int __index)1899 vec_splat(__vector signed char __vec, int __index)
1900   __constant_range(__index, 0, 15) {
1901   return (__vector signed char)__vec[__index];
1902 }
1903 
1904 static inline __ATTRS_o_ai __vector __bool char
vec_splat(__vector __bool char __vec,int __index)1905 vec_splat(__vector __bool char __vec, int __index)
1906   __constant_range(__index, 0, 15) {
1907   return (__vector __bool char)(__vector unsigned char)__vec[__index];
1908 }
1909 
1910 static inline __ATTRS_o_ai __vector unsigned char
vec_splat(__vector unsigned char __vec,int __index)1911 vec_splat(__vector unsigned char __vec, int __index)
1912   __constant_range(__index, 0, 15) {
1913   return (__vector unsigned char)__vec[__index];
1914 }
1915 
1916 static inline __ATTRS_o_ai __vector signed short
vec_splat(__vector signed short __vec,int __index)1917 vec_splat(__vector signed short __vec, int __index)
1918   __constant_range(__index, 0, 7) {
1919   return (__vector signed short)__vec[__index];
1920 }
1921 
1922 static inline __ATTRS_o_ai __vector __bool short
vec_splat(__vector __bool short __vec,int __index)1923 vec_splat(__vector __bool short __vec, int __index)
1924   __constant_range(__index, 0, 7) {
1925   return (__vector __bool short)(__vector unsigned short)__vec[__index];
1926 }
1927 
1928 static inline __ATTRS_o_ai __vector unsigned short
vec_splat(__vector unsigned short __vec,int __index)1929 vec_splat(__vector unsigned short __vec, int __index)
1930   __constant_range(__index, 0, 7) {
1931   return (__vector unsigned short)__vec[__index];
1932 }
1933 
1934 static inline __ATTRS_o_ai __vector signed int
vec_splat(__vector signed int __vec,int __index)1935 vec_splat(__vector signed int __vec, int __index)
1936   __constant_range(__index, 0, 3) {
1937   return (__vector signed int)__vec[__index];
1938 }
1939 
1940 static inline __ATTRS_o_ai __vector __bool int
vec_splat(__vector __bool int __vec,int __index)1941 vec_splat(__vector __bool int __vec, int __index)
1942   __constant_range(__index, 0, 3) {
1943   return (__vector __bool int)(__vector unsigned int)__vec[__index];
1944 }
1945 
1946 static inline __ATTRS_o_ai __vector unsigned int
vec_splat(__vector unsigned int __vec,int __index)1947 vec_splat(__vector unsigned int __vec, int __index)
1948   __constant_range(__index, 0, 3) {
1949   return (__vector unsigned int)__vec[__index];
1950 }
1951 
1952 static inline __ATTRS_o_ai __vector signed long long
vec_splat(__vector signed long long __vec,int __index)1953 vec_splat(__vector signed long long __vec, int __index)
1954   __constant_range(__index, 0, 1) {
1955   return (__vector signed long long)__vec[__index];
1956 }
1957 
1958 static inline __ATTRS_o_ai __vector __bool long long
vec_splat(__vector __bool long long __vec,int __index)1959 vec_splat(__vector __bool long long __vec, int __index)
1960   __constant_range(__index, 0, 1) {
1961   return ((__vector __bool long long)
1962           (__vector unsigned long long)__vec[__index]);
1963 }
1964 
1965 static inline __ATTRS_o_ai __vector unsigned long long
vec_splat(__vector unsigned long long __vec,int __index)1966 vec_splat(__vector unsigned long long __vec, int __index)
1967   __constant_range(__index, 0, 1) {
1968   return (__vector unsigned long long)__vec[__index];
1969 }
1970 
1971 #if __ARCH__ >= 12
1972 static inline __ATTRS_o_ai __vector float
vec_splat(__vector float __vec,int __index)1973 vec_splat(__vector float __vec, int __index)
1974   __constant_range(__index, 0, 3) {
1975   return (__vector float)__vec[__index];
1976 }
1977 #endif
1978 
1979 static inline __ATTRS_o_ai __vector double
vec_splat(__vector double __vec,int __index)1980 vec_splat(__vector double __vec, int __index)
1981   __constant_range(__index, 0, 1) {
1982   return (__vector double)__vec[__index];
1983 }
1984 
1985 /*-- vec_splat_s* -----------------------------------------------------------*/
1986 
1987 static inline __ATTRS_ai __vector signed char
vec_splat_s8(signed char __scalar)1988 vec_splat_s8(signed char __scalar)
1989   __constant(__scalar) {
1990   return (__vector signed char)__scalar;
1991 }
1992 
1993 static inline __ATTRS_ai __vector signed short
vec_splat_s16(signed short __scalar)1994 vec_splat_s16(signed short __scalar)
1995   __constant(__scalar) {
1996   return (__vector signed short)__scalar;
1997 }
1998 
1999 static inline __ATTRS_ai __vector signed int
vec_splat_s32(signed short __scalar)2000 vec_splat_s32(signed short __scalar)
2001   __constant(__scalar) {
2002   return (__vector signed int)(signed int)__scalar;
2003 }
2004 
2005 static inline __ATTRS_ai __vector signed long long
vec_splat_s64(signed short __scalar)2006 vec_splat_s64(signed short __scalar)
2007   __constant(__scalar) {
2008   return (__vector signed long long)(signed long)__scalar;
2009 }
2010 
2011 /*-- vec_splat_u* -----------------------------------------------------------*/
2012 
2013 static inline __ATTRS_ai __vector unsigned char
vec_splat_u8(unsigned char __scalar)2014 vec_splat_u8(unsigned char __scalar)
2015   __constant(__scalar) {
2016   return (__vector unsigned char)__scalar;
2017 }
2018 
2019 static inline __ATTRS_ai __vector unsigned short
vec_splat_u16(unsigned short __scalar)2020 vec_splat_u16(unsigned short __scalar)
2021   __constant(__scalar) {
2022   return (__vector unsigned short)__scalar;
2023 }
2024 
2025 static inline __ATTRS_ai __vector unsigned int
vec_splat_u32(signed short __scalar)2026 vec_splat_u32(signed short __scalar)
2027   __constant(__scalar) {
2028   return (__vector unsigned int)(signed int)__scalar;
2029 }
2030 
2031 static inline __ATTRS_ai __vector unsigned long long
vec_splat_u64(signed short __scalar)2032 vec_splat_u64(signed short __scalar)
2033   __constant(__scalar) {
2034   return (__vector unsigned long long)(signed long long)__scalar;
2035 }
2036 
2037 /*-- vec_splats -------------------------------------------------------------*/
2038 
2039 static inline __ATTRS_o_ai __vector signed char
vec_splats(signed char __scalar)2040 vec_splats(signed char __scalar) {
2041   return (__vector signed char)__scalar;
2042 }
2043 
2044 static inline __ATTRS_o_ai __vector unsigned char
vec_splats(unsigned char __scalar)2045 vec_splats(unsigned char __scalar) {
2046   return (__vector unsigned char)__scalar;
2047 }
2048 
2049 static inline __ATTRS_o_ai __vector signed short
vec_splats(signed short __scalar)2050 vec_splats(signed short __scalar) {
2051   return (__vector signed short)__scalar;
2052 }
2053 
2054 static inline __ATTRS_o_ai __vector unsigned short
vec_splats(unsigned short __scalar)2055 vec_splats(unsigned short __scalar) {
2056   return (__vector unsigned short)__scalar;
2057 }
2058 
2059 static inline __ATTRS_o_ai __vector signed int
vec_splats(signed int __scalar)2060 vec_splats(signed int __scalar) {
2061   return (__vector signed int)__scalar;
2062 }
2063 
2064 static inline __ATTRS_o_ai __vector unsigned int
vec_splats(unsigned int __scalar)2065 vec_splats(unsigned int __scalar) {
2066   return (__vector unsigned int)__scalar;
2067 }
2068 
2069 static inline __ATTRS_o_ai __vector signed long long
vec_splats(signed long long __scalar)2070 vec_splats(signed long long __scalar) {
2071   return (__vector signed long long)__scalar;
2072 }
2073 
2074 static inline __ATTRS_o_ai __vector unsigned long long
vec_splats(unsigned long long __scalar)2075 vec_splats(unsigned long long __scalar) {
2076   return (__vector unsigned long long)__scalar;
2077 }
2078 
2079 static inline __ATTRS_o_ai __vector signed __int128
vec_splats(signed __int128 __scalar)2080 vec_splats(signed __int128 __scalar) {
2081   return (__vector signed __int128)__scalar;
2082 }
2083 
2084 static inline __ATTRS_o_ai __vector unsigned __int128
vec_splats(unsigned __int128 __scalar)2085 vec_splats(unsigned __int128 __scalar) {
2086   return (__vector unsigned __int128)__scalar;
2087 }
2088 
2089 #if __ARCH__ >= 12
2090 static inline __ATTRS_o_ai __vector float
vec_splats(float __scalar)2091 vec_splats(float __scalar) {
2092   return (__vector float)__scalar;
2093 }
2094 #endif
2095 
2096 static inline __ATTRS_o_ai __vector double
vec_splats(double __scalar)2097 vec_splats(double __scalar) {
2098   return (__vector double)__scalar;
2099 }
2100 
2101 /*-- vec_extend_s64 ---------------------------------------------------------*/
2102 
2103 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed char __a)2104 vec_extend_s64(__vector signed char __a) {
2105   return (__vector signed long long)(__a[7], __a[15]);
2106 }
2107 
2108 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed short __a)2109 vec_extend_s64(__vector signed short __a) {
2110   return (__vector signed long long)(__a[3], __a[7]);
2111 }
2112 
2113 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed int __a)2114 vec_extend_s64(__vector signed int __a) {
2115   return (__vector signed long long)(__a[1], __a[3]);
2116 }
2117 
2118 /*-- vec_mergeh -------------------------------------------------------------*/
2119 
2120 static inline __ATTRS_o_ai __vector signed char
vec_mergeh(__vector signed char __a,__vector signed char __b)2121 vec_mergeh(__vector signed char __a, __vector signed char __b) {
2122   return (__vector signed char)(
2123     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2124     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2125 }
2126 
2127 static inline __ATTRS_o_ai __vector __bool char
vec_mergeh(__vector __bool char __a,__vector __bool char __b)2128 vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
2129   return (__vector __bool char)(
2130     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2131     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2132 }
2133 
2134 static inline __ATTRS_o_ai __vector unsigned char
vec_mergeh(__vector unsigned char __a,__vector unsigned char __b)2135 vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
2136   return (__vector unsigned char)(
2137     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2138     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2139 }
2140 
2141 static inline __ATTRS_o_ai __vector signed short
vec_mergeh(__vector signed short __a,__vector signed short __b)2142 vec_mergeh(__vector signed short __a, __vector signed short __b) {
2143   return (__vector signed short)(
2144     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2145 }
2146 
2147 static inline __ATTRS_o_ai __vector __bool short
vec_mergeh(__vector __bool short __a,__vector __bool short __b)2148 vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
2149   return (__vector __bool short)(
2150     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2151 }
2152 
2153 static inline __ATTRS_o_ai __vector unsigned short
vec_mergeh(__vector unsigned short __a,__vector unsigned short __b)2154 vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
2155   return (__vector unsigned short)(
2156     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2157 }
2158 
2159 static inline __ATTRS_o_ai __vector signed int
vec_mergeh(__vector signed int __a,__vector signed int __b)2160 vec_mergeh(__vector signed int __a, __vector signed int __b) {
2161   return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
2162 }
2163 
2164 static inline __ATTRS_o_ai __vector __bool int
vec_mergeh(__vector __bool int __a,__vector __bool int __b)2165 vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
2166   return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
2167 }
2168 
2169 static inline __ATTRS_o_ai __vector unsigned int
vec_mergeh(__vector unsigned int __a,__vector unsigned int __b)2170 vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
2171   return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
2172 }
2173 
2174 static inline __ATTRS_o_ai __vector signed long long
vec_mergeh(__vector signed long long __a,__vector signed long long __b)2175 vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
2176   return (__vector signed long long)(__a[0], __b[0]);
2177 }
2178 
2179 static inline __ATTRS_o_ai __vector __bool long long
vec_mergeh(__vector __bool long long __a,__vector __bool long long __b)2180 vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
2181   return (__vector __bool long long)(__a[0], __b[0]);
2182 }
2183 
2184 static inline __ATTRS_o_ai __vector unsigned long long
vec_mergeh(__vector unsigned long long __a,__vector unsigned long long __b)2185 vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
2186   return (__vector unsigned long long)(__a[0], __b[0]);
2187 }
2188 
2189 #if __ARCH__ >= 12
2190 static inline __ATTRS_o_ai __vector float
vec_mergeh(__vector float __a,__vector float __b)2191 vec_mergeh(__vector float __a, __vector float __b) {
2192   return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
2193 }
2194 #endif
2195 
2196 static inline __ATTRS_o_ai __vector double
vec_mergeh(__vector double __a,__vector double __b)2197 vec_mergeh(__vector double __a, __vector double __b) {
2198   return (__vector double)(__a[0], __b[0]);
2199 }
2200 
2201 /*-- vec_mergel -------------------------------------------------------------*/
2202 
2203 static inline __ATTRS_o_ai __vector signed char
vec_mergel(__vector signed char __a,__vector signed char __b)2204 vec_mergel(__vector signed char __a, __vector signed char __b) {
2205   return (__vector signed char)(
2206     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2207     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2208 }
2209 
2210 static inline __ATTRS_o_ai __vector __bool char
vec_mergel(__vector __bool char __a,__vector __bool char __b)2211 vec_mergel(__vector __bool char __a, __vector __bool char __b) {
2212   return (__vector __bool char)(
2213     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2214     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2215 }
2216 
2217 static inline __ATTRS_o_ai __vector unsigned char
vec_mergel(__vector unsigned char __a,__vector unsigned char __b)2218 vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
2219   return (__vector unsigned char)(
2220     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2221     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2222 }
2223 
2224 static inline __ATTRS_o_ai __vector signed short
vec_mergel(__vector signed short __a,__vector signed short __b)2225 vec_mergel(__vector signed short __a, __vector signed short __b) {
2226   return (__vector signed short)(
2227     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2228 }
2229 
2230 static inline __ATTRS_o_ai __vector __bool short
vec_mergel(__vector __bool short __a,__vector __bool short __b)2231 vec_mergel(__vector __bool short __a, __vector __bool short __b) {
2232   return (__vector __bool short)(
2233     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2234 }
2235 
2236 static inline __ATTRS_o_ai __vector unsigned short
vec_mergel(__vector unsigned short __a,__vector unsigned short __b)2237 vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
2238   return (__vector unsigned short)(
2239     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2240 }
2241 
2242 static inline __ATTRS_o_ai __vector signed int
vec_mergel(__vector signed int __a,__vector signed int __b)2243 vec_mergel(__vector signed int __a, __vector signed int __b) {
2244   return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
2245 }
2246 
2247 static inline __ATTRS_o_ai __vector __bool int
vec_mergel(__vector __bool int __a,__vector __bool int __b)2248 vec_mergel(__vector __bool int __a, __vector __bool int __b) {
2249   return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
2250 }
2251 
2252 static inline __ATTRS_o_ai __vector unsigned int
vec_mergel(__vector unsigned int __a,__vector unsigned int __b)2253 vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
2254   return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
2255 }
2256 
2257 static inline __ATTRS_o_ai __vector signed long long
vec_mergel(__vector signed long long __a,__vector signed long long __b)2258 vec_mergel(__vector signed long long __a, __vector signed long long __b) {
2259   return (__vector signed long long)(__a[1], __b[1]);
2260 }
2261 
2262 static inline __ATTRS_o_ai __vector __bool long long
vec_mergel(__vector __bool long long __a,__vector __bool long long __b)2263 vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
2264   return (__vector __bool long long)(__a[1], __b[1]);
2265 }
2266 
2267 static inline __ATTRS_o_ai __vector unsigned long long
vec_mergel(__vector unsigned long long __a,__vector unsigned long long __b)2268 vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
2269   return (__vector unsigned long long)(__a[1], __b[1]);
2270 }
2271 
2272 #if __ARCH__ >= 12
2273 static inline __ATTRS_o_ai __vector float
vec_mergel(__vector float __a,__vector float __b)2274 vec_mergel(__vector float __a, __vector float __b) {
2275   return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
2276 }
2277 #endif
2278 
2279 static inline __ATTRS_o_ai __vector double
vec_mergel(__vector double __a,__vector double __b)2280 vec_mergel(__vector double __a, __vector double __b) {
2281   return (__vector double)(__a[1], __b[1]);
2282 }
2283 
2284 /*-- vec_pack ---------------------------------------------------------------*/
2285 
2286 static inline __ATTRS_o_ai __vector signed char
vec_pack(__vector signed short __a,__vector signed short __b)2287 vec_pack(__vector signed short __a, __vector signed short __b) {
2288   __vector signed char __ac = (__vector signed char)__a;
2289   __vector signed char __bc = (__vector signed char)__b;
2290   return (__vector signed char)(
2291     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2292     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2293 }
2294 
2295 static inline __ATTRS_o_ai __vector __bool char
vec_pack(__vector __bool short __a,__vector __bool short __b)2296 vec_pack(__vector __bool short __a, __vector __bool short __b) {
2297   __vector __bool char __ac = (__vector __bool char)__a;
2298   __vector __bool char __bc = (__vector __bool char)__b;
2299   return (__vector __bool char)(
2300     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2301     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2302 }
2303 
2304 static inline __ATTRS_o_ai __vector unsigned char
vec_pack(__vector unsigned short __a,__vector unsigned short __b)2305 vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
2306   __vector unsigned char __ac = (__vector unsigned char)__a;
2307   __vector unsigned char __bc = (__vector unsigned char)__b;
2308   return (__vector unsigned char)(
2309     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2310     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2311 }
2312 
2313 static inline __ATTRS_o_ai __vector signed short
vec_pack(__vector signed int __a,__vector signed int __b)2314 vec_pack(__vector signed int __a, __vector signed int __b) {
2315   __vector signed short __ac = (__vector signed short)__a;
2316   __vector signed short __bc = (__vector signed short)__b;
2317   return (__vector signed short)(
2318     __ac[1], __ac[3], __ac[5], __ac[7],
2319     __bc[1], __bc[3], __bc[5], __bc[7]);
2320 }
2321 
2322 static inline __ATTRS_o_ai __vector __bool short
vec_pack(__vector __bool int __a,__vector __bool int __b)2323 vec_pack(__vector __bool int __a, __vector __bool int __b) {
2324   __vector __bool short __ac = (__vector __bool short)__a;
2325   __vector __bool short __bc = (__vector __bool short)__b;
2326   return (__vector __bool short)(
2327     __ac[1], __ac[3], __ac[5], __ac[7],
2328     __bc[1], __bc[3], __bc[5], __bc[7]);
2329 }
2330 
2331 static inline __ATTRS_o_ai __vector unsigned short
vec_pack(__vector unsigned int __a,__vector unsigned int __b)2332 vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
2333   __vector unsigned short __ac = (__vector unsigned short)__a;
2334   __vector unsigned short __bc = (__vector unsigned short)__b;
2335   return (__vector unsigned short)(
2336     __ac[1], __ac[3], __ac[5], __ac[7],
2337     __bc[1], __bc[3], __bc[5], __bc[7]);
2338 }
2339 
2340 static inline __ATTRS_o_ai __vector signed int
vec_pack(__vector signed long long __a,__vector signed long long __b)2341 vec_pack(__vector signed long long __a, __vector signed long long __b) {
2342   __vector signed int __ac = (__vector signed int)__a;
2343   __vector signed int __bc = (__vector signed int)__b;
2344   return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2345 }
2346 
2347 static inline __ATTRS_o_ai __vector __bool int
vec_pack(__vector __bool long long __a,__vector __bool long long __b)2348 vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
2349   __vector __bool int __ac = (__vector __bool int)__a;
2350   __vector __bool int __bc = (__vector __bool int)__b;
2351   return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2352 }
2353 
2354 static inline __ATTRS_o_ai __vector unsigned int
vec_pack(__vector unsigned long long __a,__vector unsigned long long __b)2355 vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
2356   __vector unsigned int __ac = (__vector unsigned int)__a;
2357   __vector unsigned int __bc = (__vector unsigned int)__b;
2358   return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2359 }
2360 
2361 static inline __ATTRS_o_ai __vector signed long long
vec_pack(__vector signed __int128 __a,__vector signed __int128 __b)2362 vec_pack(__vector signed __int128 __a, __vector signed __int128 __b) {
2363   __vector signed long long __ac = (__vector signed long long)__a;
2364   __vector signed long long __bc = (__vector signed long long)__b;
2365   return (__vector signed long long)(__ac[1], __bc[1]);
2366 }
2367 
2368 static inline __ATTRS_o_ai __vector __bool long long
vec_pack(__vector __bool __int128 __a,__vector __bool __int128 __b)2369 vec_pack(__vector __bool __int128 __a, __vector __bool __int128 __b) {
2370   __vector __bool long long __ac = (__vector __bool long long)__a;
2371   __vector __bool long long __bc = (__vector __bool long long)__b;
2372   return (__vector __bool long long)(__ac[1], __bc[1]);
2373 }
2374 
2375 static inline __ATTRS_o_ai __vector unsigned long long
vec_pack(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2376 vec_pack(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2377   __vector unsigned long long __ac = (__vector unsigned long long)__a;
2378   __vector unsigned long long __bc = (__vector unsigned long long)__b;
2379   return (__vector unsigned long long)(__ac[1], __bc[1]);
2380 }
2381 
2382 /*-- vec_packs --------------------------------------------------------------*/
2383 
2384 static inline __ATTRS_o_ai __vector signed char
vec_packs(__vector signed short __a,__vector signed short __b)2385 vec_packs(__vector signed short __a, __vector signed short __b) {
2386   return __builtin_s390_vpksh(__a, __b);
2387 }
2388 
2389 static inline __ATTRS_o_ai __vector unsigned char
vec_packs(__vector unsigned short __a,__vector unsigned short __b)2390 vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
2391   return __builtin_s390_vpklsh(__a, __b);
2392 }
2393 
2394 static inline __ATTRS_o_ai __vector signed short
vec_packs(__vector signed int __a,__vector signed int __b)2395 vec_packs(__vector signed int __a, __vector signed int __b) {
2396   return __builtin_s390_vpksf(__a, __b);
2397 }
2398 
2399 static inline __ATTRS_o_ai __vector unsigned short
vec_packs(__vector unsigned int __a,__vector unsigned int __b)2400 vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
2401   return __builtin_s390_vpklsf(__a, __b);
2402 }
2403 
2404 static inline __ATTRS_o_ai __vector signed int
vec_packs(__vector signed long long __a,__vector signed long long __b)2405 vec_packs(__vector signed long long __a, __vector signed long long __b) {
2406   return __builtin_s390_vpksg(__a, __b);
2407 }
2408 
2409 static inline __ATTRS_o_ai __vector unsigned int
vec_packs(__vector unsigned long long __a,__vector unsigned long long __b)2410 vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
2411   return __builtin_s390_vpklsg(__a, __b);
2412 }
2413 
2414 /*-- vec_packs_cc -----------------------------------------------------------*/
2415 
2416 static inline __ATTRS_o_ai __vector signed char
vec_packs_cc(__vector signed short __a,__vector signed short __b,int * __cc)2417 vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
2418   return __builtin_s390_vpkshs(__a, __b, __cc);
2419 }
2420 
2421 static inline __ATTRS_o_ai __vector unsigned char
vec_packs_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2422 vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
2423              int *__cc) {
2424   return __builtin_s390_vpklshs(__a, __b, __cc);
2425 }
2426 
2427 static inline __ATTRS_o_ai __vector signed short
vec_packs_cc(__vector signed int __a,__vector signed int __b,int * __cc)2428 vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
2429   return __builtin_s390_vpksfs(__a, __b, __cc);
2430 }
2431 
2432 static inline __ATTRS_o_ai __vector unsigned short
vec_packs_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2433 vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2434   return __builtin_s390_vpklsfs(__a, __b, __cc);
2435 }
2436 
2437 static inline __ATTRS_o_ai __vector signed int
vec_packs_cc(__vector signed long long __a,__vector signed long long __b,int * __cc)2438 vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
2439              int *__cc) {
2440   return __builtin_s390_vpksgs(__a, __b, __cc);
2441 }
2442 
2443 static inline __ATTRS_o_ai __vector unsigned int
vec_packs_cc(__vector unsigned long long __a,__vector unsigned long long __b,int * __cc)2444 vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2445              int *__cc) {
2446   return __builtin_s390_vpklsgs(__a, __b, __cc);
2447 }
2448 
2449 /*-- vec_packsu -------------------------------------------------------------*/
2450 
2451 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector signed short __a,__vector signed short __b)2452 vec_packsu(__vector signed short __a, __vector signed short __b) {
2453   const __vector signed short __zero = (__vector signed short)0;
2454   return __builtin_s390_vpklsh(
2455     (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
2456     (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
2457 }
2458 
2459 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector unsigned short __a,__vector unsigned short __b)2460 vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
2461   return __builtin_s390_vpklsh(__a, __b);
2462 }
2463 
2464 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector signed int __a,__vector signed int __b)2465 vec_packsu(__vector signed int __a, __vector signed int __b) {
2466   const __vector signed int __zero = (__vector signed int)0;
2467   return __builtin_s390_vpklsf(
2468     (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
2469     (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
2470 }
2471 
2472 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector unsigned int __a,__vector unsigned int __b)2473 vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
2474   return __builtin_s390_vpklsf(__a, __b);
2475 }
2476 
2477 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector signed long long __a,__vector signed long long __b)2478 vec_packsu(__vector signed long long __a, __vector signed long long __b) {
2479   const __vector signed long long __zero = (__vector signed long long)0;
2480   return __builtin_s390_vpklsg(
2481     (__vector unsigned long long)(__a >= __zero) &
2482     (__vector unsigned long long)__a,
2483     (__vector unsigned long long)(__b >= __zero) &
2484     (__vector unsigned long long)__b);
2485 }
2486 
2487 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector unsigned long long __a,__vector unsigned long long __b)2488 vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
2489   return __builtin_s390_vpklsg(__a, __b);
2490 }
2491 
2492 /*-- vec_packsu_cc ----------------------------------------------------------*/
2493 
2494 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2495 vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
2496               int *__cc) {
2497   return __builtin_s390_vpklshs(__a, __b, __cc);
2498 }
2499 
2500 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2501 vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2502   return __builtin_s390_vpklsfs(__a, __b, __cc);
2503 }
2504 
2505 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu_cc(__vector unsigned long long __a,__vector unsigned long long __b,int * __cc)2506 vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2507               int *__cc) {
2508   return __builtin_s390_vpklsgs(__a, __b, __cc);
2509 }
2510 
2511 /*-- vec_unpackh ------------------------------------------------------------*/
2512 
2513 static inline __ATTRS_o_ai __vector signed short
vec_unpackh(__vector signed char __a)2514 vec_unpackh(__vector signed char __a) {
2515   return __builtin_s390_vuphb(__a);
2516 }
2517 
2518 static inline __ATTRS_o_ai __vector __bool short
vec_unpackh(__vector __bool char __a)2519 vec_unpackh(__vector __bool char __a) {
2520   return ((__vector __bool short)
2521           __builtin_s390_vuphb((__vector signed char)__a));
2522 }
2523 
2524 static inline __ATTRS_o_ai __vector unsigned short
vec_unpackh(__vector unsigned char __a)2525 vec_unpackh(__vector unsigned char __a) {
2526   return __builtin_s390_vuplhb(__a);
2527 }
2528 
2529 static inline __ATTRS_o_ai __vector signed int
vec_unpackh(__vector signed short __a)2530 vec_unpackh(__vector signed short __a) {
2531   return __builtin_s390_vuphh(__a);
2532 }
2533 
2534 static inline __ATTRS_o_ai __vector __bool int
vec_unpackh(__vector __bool short __a)2535 vec_unpackh(__vector __bool short __a) {
2536   return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
2537 }
2538 
2539 static inline __ATTRS_o_ai __vector unsigned int
vec_unpackh(__vector unsigned short __a)2540 vec_unpackh(__vector unsigned short __a) {
2541   return __builtin_s390_vuplhh(__a);
2542 }
2543 
2544 static inline __ATTRS_o_ai __vector signed long long
vec_unpackh(__vector signed int __a)2545 vec_unpackh(__vector signed int __a) {
2546   return __builtin_s390_vuphf(__a);
2547 }
2548 
2549 static inline __ATTRS_o_ai __vector __bool long long
vec_unpackh(__vector __bool int __a)2550 vec_unpackh(__vector __bool int __a) {
2551   return ((__vector __bool long long)
2552           __builtin_s390_vuphf((__vector signed int)__a));
2553 }
2554 
2555 static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackh(__vector unsigned int __a)2556 vec_unpackh(__vector unsigned int __a) {
2557   return __builtin_s390_vuplhf(__a);
2558 }
2559 
2560 #if __ARCH__ >= 15
2561 static inline __ATTRS_o_ai __vector signed __int128
vec_unpackh(__vector signed long long __a)2562 vec_unpackh(__vector signed long long __a) {
2563   return (__vector signed __int128)__builtin_s390_vuphg(__a);
2564 }
2565 
2566 static inline __ATTRS_o_ai __vector __bool __int128
vec_unpackh(__vector __bool long long __a)2567 vec_unpackh(__vector __bool long long __a) {
2568   return ((__vector __bool __int128)
2569           __builtin_s390_vuphg((__vector signed long long)__a));
2570 }
2571 
2572 static inline __ATTRS_o_ai __vector unsigned __int128
vec_unpackh(__vector unsigned long long __a)2573 vec_unpackh(__vector unsigned long long __a) {
2574   return (__vector unsigned __int128)__builtin_s390_vuplhg(__a);
2575 }
2576 #endif
2577 
2578 /*-- vec_unpackl ------------------------------------------------------------*/
2579 
2580 static inline __ATTRS_o_ai __vector signed short
vec_unpackl(__vector signed char __a)2581 vec_unpackl(__vector signed char __a) {
2582   return __builtin_s390_vuplb(__a);
2583 }
2584 
2585 static inline __ATTRS_o_ai __vector __bool short
vec_unpackl(__vector __bool char __a)2586 vec_unpackl(__vector __bool char __a) {
2587   return ((__vector __bool short)
2588           __builtin_s390_vuplb((__vector signed char)__a));
2589 }
2590 
2591 static inline __ATTRS_o_ai __vector unsigned short
vec_unpackl(__vector unsigned char __a)2592 vec_unpackl(__vector unsigned char __a) {
2593   return __builtin_s390_vupllb(__a);
2594 }
2595 
2596 static inline __ATTRS_o_ai __vector signed int
vec_unpackl(__vector signed short __a)2597 vec_unpackl(__vector signed short __a) {
2598   return __builtin_s390_vuplhw(__a);
2599 }
2600 
2601 static inline __ATTRS_o_ai __vector __bool int
vec_unpackl(__vector __bool short __a)2602 vec_unpackl(__vector __bool short __a) {
2603   return ((__vector __bool int)
2604           __builtin_s390_vuplhw((__vector signed short)__a));
2605 }
2606 
2607 static inline __ATTRS_o_ai __vector unsigned int
vec_unpackl(__vector unsigned short __a)2608 vec_unpackl(__vector unsigned short __a) {
2609   return __builtin_s390_vupllh(__a);
2610 }
2611 
2612 static inline __ATTRS_o_ai __vector signed long long
vec_unpackl(__vector signed int __a)2613 vec_unpackl(__vector signed int __a) {
2614   return __builtin_s390_vuplf(__a);
2615 }
2616 
2617 static inline __ATTRS_o_ai __vector __bool long long
vec_unpackl(__vector __bool int __a)2618 vec_unpackl(__vector __bool int __a) {
2619   return ((__vector __bool long long)
2620           __builtin_s390_vuplf((__vector signed int)__a));
2621 }
2622 
2623 static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackl(__vector unsigned int __a)2624 vec_unpackl(__vector unsigned int __a) {
2625   return __builtin_s390_vupllf(__a);
2626 }
2627 
2628 #if __ARCH__ >= 15
2629 static inline __ATTRS_o_ai __vector signed __int128
vec_unpackl(__vector signed long long __a)2630 vec_unpackl(__vector signed long long __a) {
2631   return (__vector signed __int128)__builtin_s390_vuplg(__a);
2632 }
2633 
2634 static inline __ATTRS_o_ai __vector __bool __int128
vec_unpackl(__vector __bool long long __a)2635 vec_unpackl(__vector __bool long long __a) {
2636   return ((__vector __bool __int128)
2637           __builtin_s390_vuplg((__vector signed long long)__a));
2638 }
2639 
2640 static inline __ATTRS_o_ai __vector unsigned __int128
vec_unpackl(__vector unsigned long long __a)2641 vec_unpackl(__vector unsigned long long __a) {
2642   return (__vector unsigned __int128)__builtin_s390_vupllg(__a);
2643 }
2644 #endif
2645 
2646 /*-- vec_cmpeq --------------------------------------------------------------*/
2647 
2648 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector __bool char __a,__vector __bool char __b)2649 vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
2650   return (__vector __bool char)(__a == __b);
2651 }
2652 
2653 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector signed char __a,__vector signed char __b)2654 vec_cmpeq(__vector signed char __a, __vector signed char __b) {
2655   return (__vector __bool char)(__a == __b);
2656 }
2657 
2658 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector unsigned char __a,__vector unsigned char __b)2659 vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
2660   return (__vector __bool char)(__a == __b);
2661 }
2662 
2663 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector __bool short __a,__vector __bool short __b)2664 vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
2665   return (__vector __bool short)(__a == __b);
2666 }
2667 
2668 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector signed short __a,__vector signed short __b)2669 vec_cmpeq(__vector signed short __a, __vector signed short __b) {
2670   return (__vector __bool short)(__a == __b);
2671 }
2672 
2673 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector unsigned short __a,__vector unsigned short __b)2674 vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
2675   return (__vector __bool short)(__a == __b);
2676 }
2677 
2678 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector __bool int __a,__vector __bool int __b)2679 vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
2680   return (__vector __bool int)(__a == __b);
2681 }
2682 
2683 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector signed int __a,__vector signed int __b)2684 vec_cmpeq(__vector signed int __a, __vector signed int __b) {
2685   return (__vector __bool int)(__a == __b);
2686 }
2687 
2688 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector unsigned int __a,__vector unsigned int __b)2689 vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
2690   return (__vector __bool int)(__a == __b);
2691 }
2692 
2693 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector __bool long long __a,__vector __bool long long __b)2694 vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
2695   return (__vector __bool long long)(__a == __b);
2696 }
2697 
2698 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector signed long long __a,__vector signed long long __b)2699 vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
2700   return (__vector __bool long long)(__a == __b);
2701 }
2702 
2703 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector unsigned long long __a,__vector unsigned long long __b)2704 vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
2705   return (__vector __bool long long)(__a == __b);
2706 }
2707 
2708 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpeq(__vector __bool __int128 __a,__vector __bool __int128 __b)2709 vec_cmpeq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
2710   return (__vector __bool __int128)(__a == __b);
2711 }
2712 
2713 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpeq(__vector signed __int128 __a,__vector signed __int128 __b)2714 vec_cmpeq(__vector signed __int128 __a, __vector signed __int128 __b) {
2715   return (__vector __bool __int128)(__a == __b);
2716 }
2717 
2718 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpeq(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2719 vec_cmpeq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2720   return (__vector __bool __int128)(__a == __b);
2721 }
2722 
2723 #if __ARCH__ >= 12
2724 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector float __a,__vector float __b)2725 vec_cmpeq(__vector float __a, __vector float __b) {
2726   return (__vector __bool int)(__a == __b);
2727 }
2728 #endif
2729 
2730 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector double __a,__vector double __b)2731 vec_cmpeq(__vector double __a, __vector double __b) {
2732   return (__vector __bool long long)(__a == __b);
2733 }
2734 
2735 /*-- vec_cmpge --------------------------------------------------------------*/
2736 
2737 static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector signed char __a,__vector signed char __b)2738 vec_cmpge(__vector signed char __a, __vector signed char __b) {
2739   return (__vector __bool char)(__a >= __b);
2740 }
2741 
2742 static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector unsigned char __a,__vector unsigned char __b)2743 vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
2744   return (__vector __bool char)(__a >= __b);
2745 }
2746 
2747 static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector signed short __a,__vector signed short __b)2748 vec_cmpge(__vector signed short __a, __vector signed short __b) {
2749   return (__vector __bool short)(__a >= __b);
2750 }
2751 
2752 static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector unsigned short __a,__vector unsigned short __b)2753 vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
2754   return (__vector __bool short)(__a >= __b);
2755 }
2756 
2757 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector signed int __a,__vector signed int __b)2758 vec_cmpge(__vector signed int __a, __vector signed int __b) {
2759   return (__vector __bool int)(__a >= __b);
2760 }
2761 
2762 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector unsigned int __a,__vector unsigned int __b)2763 vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
2764   return (__vector __bool int)(__a >= __b);
2765 }
2766 
2767 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector signed long long __a,__vector signed long long __b)2768 vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
2769   return (__vector __bool long long)(__a >= __b);
2770 }
2771 
2772 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector unsigned long long __a,__vector unsigned long long __b)2773 vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
2774   return (__vector __bool long long)(__a >= __b);
2775 }
2776 
2777 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpge(__vector signed __int128 __a,__vector signed __int128 __b)2778 vec_cmpge(__vector signed __int128 __a, __vector signed __int128 __b) {
2779   return (__vector __bool __int128)(__a >= __b);
2780 }
2781 
2782 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpge(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2783 vec_cmpge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2784   return (__vector __bool __int128)(__a >= __b);
2785 }
2786 
2787 #if __ARCH__ >= 12
2788 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector float __a,__vector float __b)2789 vec_cmpge(__vector float __a, __vector float __b) {
2790   return (__vector __bool int)(__a >= __b);
2791 }
2792 #endif
2793 
2794 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector double __a,__vector double __b)2795 vec_cmpge(__vector double __a, __vector double __b) {
2796   return (__vector __bool long long)(__a >= __b);
2797 }
2798 
2799 /*-- vec_cmpgt --------------------------------------------------------------*/
2800 
2801 static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector signed char __a,__vector signed char __b)2802 vec_cmpgt(__vector signed char __a, __vector signed char __b) {
2803   return (__vector __bool char)(__a > __b);
2804 }
2805 
2806 static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector unsigned char __a,__vector unsigned char __b)2807 vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
2808   return (__vector __bool char)(__a > __b);
2809 }
2810 
2811 static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector signed short __a,__vector signed short __b)2812 vec_cmpgt(__vector signed short __a, __vector signed short __b) {
2813   return (__vector __bool short)(__a > __b);
2814 }
2815 
2816 static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector unsigned short __a,__vector unsigned short __b)2817 vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
2818   return (__vector __bool short)(__a > __b);
2819 }
2820 
2821 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector signed int __a,__vector signed int __b)2822 vec_cmpgt(__vector signed int __a, __vector signed int __b) {
2823   return (__vector __bool int)(__a > __b);
2824 }
2825 
2826 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector unsigned int __a,__vector unsigned int __b)2827 vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
2828   return (__vector __bool int)(__a > __b);
2829 }
2830 
2831 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector signed long long __a,__vector signed long long __b)2832 vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
2833   return (__vector __bool long long)(__a > __b);
2834 }
2835 
2836 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector unsigned long long __a,__vector unsigned long long __b)2837 vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
2838   return (__vector __bool long long)(__a > __b);
2839 }
2840 
2841 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpgt(__vector signed __int128 __a,__vector signed __int128 __b)2842 vec_cmpgt(__vector signed __int128 __a, __vector signed __int128 __b) {
2843   return (__vector __bool __int128)(__a > __b);
2844 }
2845 
2846 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpgt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2847 vec_cmpgt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2848   return (__vector __bool __int128)(__a > __b);
2849 }
2850 
2851 #if __ARCH__ >= 12
2852 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector float __a,__vector float __b)2853 vec_cmpgt(__vector float __a, __vector float __b) {
2854   return (__vector __bool int)(__a > __b);
2855 }
2856 #endif
2857 
2858 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector double __a,__vector double __b)2859 vec_cmpgt(__vector double __a, __vector double __b) {
2860   return (__vector __bool long long)(__a > __b);
2861 }
2862 
2863 /*-- vec_cmple --------------------------------------------------------------*/
2864 
2865 static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector signed char __a,__vector signed char __b)2866 vec_cmple(__vector signed char __a, __vector signed char __b) {
2867   return (__vector __bool char)(__a <= __b);
2868 }
2869 
2870 static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector unsigned char __a,__vector unsigned char __b)2871 vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
2872   return (__vector __bool char)(__a <= __b);
2873 }
2874 
2875 static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector signed short __a,__vector signed short __b)2876 vec_cmple(__vector signed short __a, __vector signed short __b) {
2877   return (__vector __bool short)(__a <= __b);
2878 }
2879 
2880 static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector unsigned short __a,__vector unsigned short __b)2881 vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
2882   return (__vector __bool short)(__a <= __b);
2883 }
2884 
2885 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector signed int __a,__vector signed int __b)2886 vec_cmple(__vector signed int __a, __vector signed int __b) {
2887   return (__vector __bool int)(__a <= __b);
2888 }
2889 
2890 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector unsigned int __a,__vector unsigned int __b)2891 vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
2892   return (__vector __bool int)(__a <= __b);
2893 }
2894 
2895 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector signed long long __a,__vector signed long long __b)2896 vec_cmple(__vector signed long long __a, __vector signed long long __b) {
2897   return (__vector __bool long long)(__a <= __b);
2898 }
2899 
2900 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector unsigned long long __a,__vector unsigned long long __b)2901 vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
2902   return (__vector __bool long long)(__a <= __b);
2903 }
2904 
2905 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmple(__vector signed __int128 __a,__vector signed __int128 __b)2906 vec_cmple(__vector signed __int128 __a, __vector signed __int128 __b) {
2907   return (__vector __bool __int128)(__a <= __b);
2908 }
2909 
2910 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmple(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2911 vec_cmple(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2912   return (__vector __bool __int128)(__a <= __b);
2913 }
2914 
2915 #if __ARCH__ >= 12
2916 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector float __a,__vector float __b)2917 vec_cmple(__vector float __a, __vector float __b) {
2918   return (__vector __bool int)(__a <= __b);
2919 }
2920 #endif
2921 
2922 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector double __a,__vector double __b)2923 vec_cmple(__vector double __a, __vector double __b) {
2924   return (__vector __bool long long)(__a <= __b);
2925 }
2926 
2927 /*-- vec_cmplt --------------------------------------------------------------*/
2928 
2929 static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector signed char __a,__vector signed char __b)2930 vec_cmplt(__vector signed char __a, __vector signed char __b) {
2931   return (__vector __bool char)(__a < __b);
2932 }
2933 
2934 static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector unsigned char __a,__vector unsigned char __b)2935 vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
2936   return (__vector __bool char)(__a < __b);
2937 }
2938 
2939 static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector signed short __a,__vector signed short __b)2940 vec_cmplt(__vector signed short __a, __vector signed short __b) {
2941   return (__vector __bool short)(__a < __b);
2942 }
2943 
2944 static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector unsigned short __a,__vector unsigned short __b)2945 vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
2946   return (__vector __bool short)(__a < __b);
2947 }
2948 
2949 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector signed int __a,__vector signed int __b)2950 vec_cmplt(__vector signed int __a, __vector signed int __b) {
2951   return (__vector __bool int)(__a < __b);
2952 }
2953 
2954 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector unsigned int __a,__vector unsigned int __b)2955 vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
2956   return (__vector __bool int)(__a < __b);
2957 }
2958 
2959 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector signed long long __a,__vector signed long long __b)2960 vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
2961   return (__vector __bool long long)(__a < __b);
2962 }
2963 
2964 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector unsigned long long __a,__vector unsigned long long __b)2965 vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
2966   return (__vector __bool long long)(__a < __b);
2967 }
2968 
2969 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmplt(__vector signed __int128 __a,__vector signed __int128 __b)2970 vec_cmplt(__vector signed __int128 __a, __vector signed __int128 __b) {
2971   return (__vector __bool __int128)(__a < __b);
2972 }
2973 
2974 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmplt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2975 vec_cmplt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2976   return (__vector __bool __int128)(__a < __b);
2977 }
2978 
2979 #if __ARCH__ >= 12
2980 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector float __a,__vector float __b)2981 vec_cmplt(__vector float __a, __vector float __b) {
2982   return (__vector __bool int)(__a < __b);
2983 }
2984 #endif
2985 
2986 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector double __a,__vector double __b)2987 vec_cmplt(__vector double __a, __vector double __b) {
2988   return (__vector __bool long long)(__a < __b);
2989 }
2990 
2991 /*-- vec_all_eq -------------------------------------------------------------*/
2992 
2993 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector signed char __b)2994 vec_all_eq(__vector signed char __a, __vector signed char __b) {
2995   int __cc;
2996   __builtin_s390_vceqbs((__vector unsigned char)__a,
2997                         (__vector unsigned char)__b, &__cc);
2998   return __cc == 0;
2999 }
3000 
3001 // This prototype is deprecated.
3002 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector __bool char __b)3003 vec_all_eq(__vector signed char __a, __vector __bool char __b) {
3004   int __cc;
3005   __builtin_s390_vceqbs((__vector unsigned char)__a,
3006                         (__vector unsigned char)__b, &__cc);
3007   return __cc == 0;
3008 }
3009 
3010 // This prototype is deprecated.
3011 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector signed char __b)3012 vec_all_eq(__vector __bool char __a, __vector signed char __b) {
3013   int __cc;
3014   __builtin_s390_vceqbs((__vector unsigned char)__a,
3015                         (__vector unsigned char)__b, &__cc);
3016   return __cc == 0;
3017 }
3018 
3019 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector unsigned char __b)3020 vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
3021   int __cc;
3022   __builtin_s390_vceqbs(__a, __b, &__cc);
3023   return __cc == 0;
3024 }
3025 
3026 // This prototype is deprecated.
3027 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector __bool char __b)3028 vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
3029   int __cc;
3030   __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
3031   return __cc == 0;
3032 }
3033 
3034 // This prototype is deprecated.
3035 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector unsigned char __b)3036 vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
3037   int __cc;
3038   __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
3039   return __cc == 0;
3040 }
3041 
3042 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector __bool char __b)3043 vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
3044   int __cc;
3045   __builtin_s390_vceqbs((__vector unsigned char)__a,
3046                         (__vector unsigned char)__b, &__cc);
3047   return __cc == 0;
3048 }
3049 
3050 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector signed short __b)3051 vec_all_eq(__vector signed short __a, __vector signed short __b) {
3052   int __cc;
3053   __builtin_s390_vceqhs((__vector unsigned short)__a,
3054                         (__vector unsigned short)__b, &__cc);
3055   return __cc == 0;
3056 }
3057 
3058 // This prototype is deprecated.
3059 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector __bool short __b)3060 vec_all_eq(__vector signed short __a, __vector __bool short __b) {
3061   int __cc;
3062   __builtin_s390_vceqhs((__vector unsigned short)__a,
3063                         (__vector unsigned short)__b, &__cc);
3064   return __cc == 0;
3065 }
3066 
3067 // This prototype is deprecated.
3068 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector signed short __b)3069 vec_all_eq(__vector __bool short __a, __vector signed short __b) {
3070   int __cc;
3071   __builtin_s390_vceqhs((__vector unsigned short)__a,
3072                         (__vector unsigned short)__b, &__cc);
3073   return __cc == 0;
3074 }
3075 
3076 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector unsigned short __b)3077 vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
3078   int __cc;
3079   __builtin_s390_vceqhs(__a, __b, &__cc);
3080   return __cc == 0;
3081 }
3082 
3083 // This prototype is deprecated.
3084 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector __bool short __b)3085 vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
3086   int __cc;
3087   __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3088   return __cc == 0;
3089 }
3090 
3091 // This prototype is deprecated.
3092 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector unsigned short __b)3093 vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
3094   int __cc;
3095   __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3096   return __cc == 0;
3097 }
3098 
3099 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector __bool short __b)3100 vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
3101   int __cc;
3102   __builtin_s390_vceqhs((__vector unsigned short)__a,
3103                         (__vector unsigned short)__b, &__cc);
3104   return __cc == 0;
3105 }
3106 
3107 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector signed int __b)3108 vec_all_eq(__vector signed int __a, __vector signed int __b) {
3109   int __cc;
3110   __builtin_s390_vceqfs((__vector unsigned int)__a,
3111                         (__vector unsigned int)__b, &__cc);
3112   return __cc == 0;
3113 }
3114 
3115 // This prototype is deprecated.
3116 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector __bool int __b)3117 vec_all_eq(__vector signed int __a, __vector __bool int __b) {
3118   int __cc;
3119   __builtin_s390_vceqfs((__vector unsigned int)__a,
3120                         (__vector unsigned int)__b, &__cc);
3121   return __cc == 0;
3122 }
3123 
3124 // This prototype is deprecated.
3125 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector signed int __b)3126 vec_all_eq(__vector __bool int __a, __vector signed int __b) {
3127   int __cc;
3128   __builtin_s390_vceqfs((__vector unsigned int)__a,
3129                         (__vector unsigned int)__b, &__cc);
3130   return __cc == 0;
3131 }
3132 
3133 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector unsigned int __b)3134 vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
3135   int __cc;
3136   __builtin_s390_vceqfs(__a, __b, &__cc);
3137   return __cc == 0;
3138 }
3139 
3140 // This prototype is deprecated.
3141 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector __bool int __b)3142 vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
3143   int __cc;
3144   __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3145   return __cc == 0;
3146 }
3147 
3148 // This prototype is deprecated.
3149 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector unsigned int __b)3150 vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
3151   int __cc;
3152   __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3153   return __cc == 0;
3154 }
3155 
3156 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector __bool int __b)3157 vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
3158   int __cc;
3159   __builtin_s390_vceqfs((__vector unsigned int)__a,
3160                         (__vector unsigned int)__b, &__cc);
3161   return __cc == 0;
3162 }
3163 
3164 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector signed long long __b)3165 vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
3166   int __cc;
3167   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3168                         (__vector unsigned long long)__b, &__cc);
3169   return __cc == 0;
3170 }
3171 
3172 // This prototype is deprecated.
3173 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector __bool long long __b)3174 vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
3175   int __cc;
3176   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3177                         (__vector unsigned long long)__b, &__cc);
3178   return __cc == 0;
3179 }
3180 
3181 // This prototype is deprecated.
3182 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector signed long long __b)3183 vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
3184   int __cc;
3185   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3186                         (__vector unsigned long long)__b, &__cc);
3187   return __cc == 0;
3188 }
3189 
3190 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector unsigned long long __b)3191 vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
3192   int __cc;
3193   __builtin_s390_vceqgs(__a, __b, &__cc);
3194   return __cc == 0;
3195 }
3196 
3197 // This prototype is deprecated.
3198 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector __bool long long __b)3199 vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
3200   int __cc;
3201   __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3202   return __cc == 0;
3203 }
3204 
3205 // This prototype is deprecated.
3206 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector unsigned long long __b)3207 vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
3208   int __cc;
3209   __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3210   return __cc == 0;
3211 }
3212 
3213 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector __bool long long __b)3214 vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
3215   int __cc;
3216   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3217                         (__vector unsigned long long)__b, &__cc);
3218   return __cc == 0;
3219 }
3220 
3221 #if __ARCH__ >= 15
3222 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed __int128 __a,__vector signed __int128 __b)3223 vec_all_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
3224   int __cc;
3225   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3226   return __cc == 0;
3227 }
3228 
3229 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned __int128 __a,__vector unsigned __int128 __b)3230 vec_all_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3231   int __cc;
3232   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3233   return __cc == 0;
3234 }
3235 
3236 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool __int128 __a,__vector __bool __int128 __b)3237 vec_all_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
3238   int __cc;
3239   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3240   return __cc == 0;
3241 }
3242 #endif
3243 
3244 #if __ARCH__ >= 12
3245 static inline __ATTRS_o_ai int
vec_all_eq(__vector float __a,__vector float __b)3246 vec_all_eq(__vector float __a, __vector float __b) {
3247   int __cc;
3248   __builtin_s390_vfcesbs(__a, __b, &__cc);
3249   return __cc == 0;
3250 }
3251 #endif
3252 
3253 static inline __ATTRS_o_ai int
vec_all_eq(__vector double __a,__vector double __b)3254 vec_all_eq(__vector double __a, __vector double __b) {
3255   int __cc;
3256   __builtin_s390_vfcedbs(__a, __b, &__cc);
3257   return __cc == 0;
3258 }
3259 
3260 /*-- vec_all_ne -------------------------------------------------------------*/
3261 
3262 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector signed char __b)3263 vec_all_ne(__vector signed char __a, __vector signed char __b) {
3264   int __cc;
3265   __builtin_s390_vceqbs((__vector unsigned char)__a,
3266                         (__vector unsigned char)__b, &__cc);
3267   return __cc == 3;
3268 }
3269 
3270 // This prototype is deprecated.
3271 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector __bool char __b)3272 vec_all_ne(__vector signed char __a, __vector __bool char __b) {
3273   int __cc;
3274   __builtin_s390_vceqbs((__vector unsigned char)__a,
3275                         (__vector unsigned char)__b, &__cc);
3276   return __cc == 3;
3277 }
3278 
3279 // This prototype is deprecated.
3280 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector signed char __b)3281 vec_all_ne(__vector __bool char __a, __vector signed char __b) {
3282   int __cc;
3283   __builtin_s390_vceqbs((__vector unsigned char)__a,
3284                         (__vector unsigned char)__b, &__cc);
3285   return __cc == 3;
3286 }
3287 
3288 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector unsigned char __b)3289 vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
3290   int __cc;
3291   __builtin_s390_vceqbs((__vector unsigned char)__a,
3292                         (__vector unsigned char)__b, &__cc);
3293   return __cc == 3;
3294 }
3295 
3296 // This prototype is deprecated.
3297 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector __bool char __b)3298 vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
3299   int __cc;
3300   __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
3301   return __cc == 3;
3302 }
3303 
3304 // This prototype is deprecated.
3305 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector unsigned char __b)3306 vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
3307   int __cc;
3308   __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
3309   return __cc == 3;
3310 }
3311 
3312 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector __bool char __b)3313 vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
3314   int __cc;
3315   __builtin_s390_vceqbs((__vector unsigned char)__a,
3316                         (__vector unsigned char)__b, &__cc);
3317   return __cc == 3;
3318 }
3319 
3320 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector signed short __b)3321 vec_all_ne(__vector signed short __a, __vector signed short __b) {
3322   int __cc;
3323   __builtin_s390_vceqhs((__vector unsigned short)__a,
3324                         (__vector unsigned short)__b, &__cc);
3325   return __cc == 3;
3326 }
3327 
3328 // This prototype is deprecated.
3329 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector __bool short __b)3330 vec_all_ne(__vector signed short __a, __vector __bool short __b) {
3331   int __cc;
3332   __builtin_s390_vceqhs((__vector unsigned short)__a,
3333                         (__vector unsigned short)__b, &__cc);
3334   return __cc == 3;
3335 }
3336 
3337 // This prototype is deprecated.
3338 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector signed short __b)3339 vec_all_ne(__vector __bool short __a, __vector signed short __b) {
3340   int __cc;
3341   __builtin_s390_vceqhs((__vector unsigned short)__a,
3342                         (__vector unsigned short)__b, &__cc);
3343   return __cc == 3;
3344 }
3345 
3346 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector unsigned short __b)3347 vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
3348   int __cc;
3349   __builtin_s390_vceqhs(__a, __b, &__cc);
3350   return __cc == 3;
3351 }
3352 
3353 // This prototype is deprecated.
3354 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector __bool short __b)3355 vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
3356   int __cc;
3357   __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3358   return __cc == 3;
3359 }
3360 
3361 // This prototype is deprecated.
3362 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector unsigned short __b)3363 vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
3364   int __cc;
3365   __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3366   return __cc == 3;
3367 }
3368 
3369 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector __bool short __b)3370 vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
3371   int __cc;
3372   __builtin_s390_vceqhs((__vector unsigned short)__a,
3373                         (__vector unsigned short)__b, &__cc);
3374   return __cc == 3;
3375 }
3376 
3377 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector signed int __b)3378 vec_all_ne(__vector signed int __a, __vector signed int __b) {
3379   int __cc;
3380   __builtin_s390_vceqfs((__vector unsigned int)__a,
3381                         (__vector unsigned int)__b, &__cc);
3382   return __cc == 3;
3383 }
3384 
3385 // This prototype is deprecated.
3386 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector __bool int __b)3387 vec_all_ne(__vector signed int __a, __vector __bool int __b) {
3388   int __cc;
3389   __builtin_s390_vceqfs((__vector unsigned int)__a,
3390                         (__vector unsigned int)__b, &__cc);
3391   return __cc == 3;
3392 }
3393 
3394 // This prototype is deprecated.
3395 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector signed int __b)3396 vec_all_ne(__vector __bool int __a, __vector signed int __b) {
3397   int __cc;
3398   __builtin_s390_vceqfs((__vector unsigned int)__a,
3399                         (__vector unsigned int)__b, &__cc);
3400   return __cc == 3;
3401 }
3402 
3403 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector unsigned int __b)3404 vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
3405   int __cc;
3406   __builtin_s390_vceqfs(__a, __b, &__cc);
3407   return __cc == 3;
3408 }
3409 
3410 // This prototype is deprecated.
3411 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector __bool int __b)3412 vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
3413   int __cc;
3414   __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3415   return __cc == 3;
3416 }
3417 
3418 // This prototype is deprecated.
3419 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector unsigned int __b)3420 vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
3421   int __cc;
3422   __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3423   return __cc == 3;
3424 }
3425 
3426 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector __bool int __b)3427 vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
3428   int __cc;
3429   __builtin_s390_vceqfs((__vector unsigned int)__a,
3430                         (__vector unsigned int)__b, &__cc);
3431   return __cc == 3;
3432 }
3433 
3434 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector signed long long __b)3435 vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
3436   int __cc;
3437   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3438                         (__vector unsigned long long)__b, &__cc);
3439   return __cc == 3;
3440 }
3441 
3442 // This prototype is deprecated.
3443 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector __bool long long __b)3444 vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
3445   int __cc;
3446   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3447                         (__vector unsigned long long)__b, &__cc);
3448   return __cc == 3;
3449 }
3450 
3451 // This prototype is deprecated.
3452 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector signed long long __b)3453 vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
3454   int __cc;
3455   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3456                         (__vector unsigned long long)__b, &__cc);
3457   return __cc == 3;
3458 }
3459 
3460 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector unsigned long long __b)3461 vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
3462   int __cc;
3463   __builtin_s390_vceqgs(__a, __b, &__cc);
3464   return __cc == 3;
3465 }
3466 
3467 // This prototype is deprecated.
3468 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector __bool long long __b)3469 vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
3470   int __cc;
3471   __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3472   return __cc == 3;
3473 }
3474 
3475 // This prototype is deprecated.
3476 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector unsigned long long __b)3477 vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
3478   int __cc;
3479   __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3480   return __cc == 3;
3481 }
3482 
3483 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector __bool long long __b)3484 vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
3485   int __cc;
3486   __builtin_s390_vceqgs((__vector unsigned long long)__a,
3487                         (__vector unsigned long long)__b, &__cc);
3488   return __cc == 3;
3489 }
3490 
3491 #if __ARCH__ >= 15
3492 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed __int128 __a,__vector signed __int128 __b)3493 vec_all_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
3494   int __cc;
3495   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3496   return __cc == 3;
3497 }
3498 
3499 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned __int128 __a,__vector unsigned __int128 __b)3500 vec_all_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3501   int __cc;
3502   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3503   return __cc == 3;
3504 }
3505 
3506 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool __int128 __a,__vector __bool __int128 __b)3507 vec_all_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
3508   int __cc;
3509   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3510   return __cc == 3;
3511 }
3512 #endif
3513 
3514 #if __ARCH__ >= 12
3515 static inline __ATTRS_o_ai int
vec_all_ne(__vector float __a,__vector float __b)3516 vec_all_ne(__vector float __a, __vector float __b) {
3517   int __cc;
3518   __builtin_s390_vfcesbs(__a, __b, &__cc);
3519   return __cc == 3;
3520 }
3521 #endif
3522 
3523 static inline __ATTRS_o_ai int
vec_all_ne(__vector double __a,__vector double __b)3524 vec_all_ne(__vector double __a, __vector double __b) {
3525   int __cc;
3526   __builtin_s390_vfcedbs(__a, __b, &__cc);
3527   return __cc == 3;
3528 }
3529 
3530 /*-- vec_all_ge -------------------------------------------------------------*/
3531 
3532 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector signed char __b)3533 vec_all_ge(__vector signed char __a, __vector signed char __b) {
3534   int __cc;
3535   __builtin_s390_vchbs(__b, __a, &__cc);
3536   return __cc == 3;
3537 }
3538 
3539 // This prototype is deprecated.
3540 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector __bool char __b)3541 vec_all_ge(__vector signed char __a, __vector __bool char __b) {
3542   int __cc;
3543   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3544   return __cc == 3;
3545 }
3546 
3547 // This prototype is deprecated.
3548 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector signed char __b)3549 vec_all_ge(__vector __bool char __a, __vector signed char __b) {
3550   int __cc;
3551   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3552   return __cc == 3;
3553 }
3554 
3555 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector unsigned char __b)3556 vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
3557   int __cc;
3558   __builtin_s390_vchlbs(__b, __a, &__cc);
3559   return __cc == 3;
3560 }
3561 
3562 // This prototype is deprecated.
3563 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector __bool char __b)3564 vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
3565   int __cc;
3566   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3567   return __cc == 3;
3568 }
3569 
3570 // This prototype is deprecated.
3571 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector unsigned char __b)3572 vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
3573   int __cc;
3574   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3575   return __cc == 3;
3576 }
3577 
3578 // This prototype is deprecated.
3579 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector __bool char __b)3580 vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
3581   int __cc;
3582   __builtin_s390_vchlbs((__vector unsigned char)__b,
3583                         (__vector unsigned char)__a, &__cc);
3584   return __cc == 3;
3585 }
3586 
3587 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector signed short __b)3588 vec_all_ge(__vector signed short __a, __vector signed short __b) {
3589   int __cc;
3590   __builtin_s390_vchhs(__b, __a, &__cc);
3591   return __cc == 3;
3592 }
3593 
3594 // This prototype is deprecated.
3595 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector __bool short __b)3596 vec_all_ge(__vector signed short __a, __vector __bool short __b) {
3597   int __cc;
3598   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3599   return __cc == 3;
3600 }
3601 
3602 // This prototype is deprecated.
3603 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector signed short __b)3604 vec_all_ge(__vector __bool short __a, __vector signed short __b) {
3605   int __cc;
3606   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3607   return __cc == 3;
3608 }
3609 
3610 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector unsigned short __b)3611 vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
3612   int __cc;
3613   __builtin_s390_vchlhs(__b, __a, &__cc);
3614   return __cc == 3;
3615 }
3616 
3617 // This prototype is deprecated.
3618 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector __bool short __b)3619 vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
3620   int __cc;
3621   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3622   return __cc == 3;
3623 }
3624 
3625 // This prototype is deprecated.
3626 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector unsigned short __b)3627 vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
3628   int __cc;
3629   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3630   return __cc == 3;
3631 }
3632 
3633 // This prototype is deprecated.
3634 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector __bool short __b)3635 vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
3636   int __cc;
3637   __builtin_s390_vchlhs((__vector unsigned short)__b,
3638                         (__vector unsigned short)__a, &__cc);
3639   return __cc == 3;
3640 }
3641 
3642 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector signed int __b)3643 vec_all_ge(__vector signed int __a, __vector signed int __b) {
3644   int __cc;
3645   __builtin_s390_vchfs(__b, __a, &__cc);
3646   return __cc == 3;
3647 }
3648 
3649 // This prototype is deprecated.
3650 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector __bool int __b)3651 vec_all_ge(__vector signed int __a, __vector __bool int __b) {
3652   int __cc;
3653   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3654   return __cc == 3;
3655 }
3656 
3657 // This prototype is deprecated.
3658 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector signed int __b)3659 vec_all_ge(__vector __bool int __a, __vector signed int __b) {
3660   int __cc;
3661   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3662   return __cc == 3;
3663 }
3664 
3665 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector unsigned int __b)3666 vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
3667   int __cc;
3668   __builtin_s390_vchlfs(__b, __a, &__cc);
3669   return __cc == 3;
3670 }
3671 
3672 // This prototype is deprecated.
3673 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector __bool int __b)3674 vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
3675   int __cc;
3676   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3677   return __cc == 3;
3678 }
3679 
3680 // This prototype is deprecated.
3681 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector unsigned int __b)3682 vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
3683   int __cc;
3684   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3685   return __cc == 3;
3686 }
3687 
3688 // This prototype is deprecated.
3689 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector __bool int __b)3690 vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
3691   int __cc;
3692   __builtin_s390_vchlfs((__vector unsigned int)__b,
3693                         (__vector unsigned int)__a, &__cc);
3694   return __cc == 3;
3695 }
3696 
3697 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector signed long long __b)3698 vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
3699   int __cc;
3700   __builtin_s390_vchgs(__b, __a, &__cc);
3701   return __cc == 3;
3702 }
3703 
3704 // This prototype is deprecated.
3705 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector __bool long long __b)3706 vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
3707   int __cc;
3708   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3709   return __cc == 3;
3710 }
3711 
3712 // This prototype is deprecated.
3713 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector signed long long __b)3714 vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
3715   int __cc;
3716   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3717   return __cc == 3;
3718 }
3719 
3720 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector unsigned long long __b)3721 vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
3722   int __cc;
3723   __builtin_s390_vchlgs(__b, __a, &__cc);
3724   return __cc == 3;
3725 }
3726 
3727 // This prototype is deprecated.
3728 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector __bool long long __b)3729 vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
3730   int __cc;
3731   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
3732   return __cc == 3;
3733 }
3734 
3735 // This prototype is deprecated.
3736 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector unsigned long long __b)3737 vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
3738   int __cc;
3739   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
3740   return __cc == 3;
3741 }
3742 
3743 // This prototype is deprecated.
3744 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector __bool long long __b)3745 vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
3746   int __cc;
3747   __builtin_s390_vchlgs((__vector unsigned long long)__b,
3748                         (__vector unsigned long long)__a, &__cc);
3749   return __cc == 3;
3750 }
3751 
3752 #if __ARCH__ >= 15
3753 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed __int128 __a,__vector signed __int128 __b)3754 vec_all_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
3755   int __cc;
3756   __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
3757   return __cc == 3;
3758 }
3759 
3760 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned __int128 __a,__vector unsigned __int128 __b)3761 vec_all_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3762   int __cc;
3763   __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
3764   return __cc == 3;
3765 }
3766 #endif
3767 
3768 #if __ARCH__ >= 12
3769 static inline __ATTRS_o_ai int
vec_all_ge(__vector float __a,__vector float __b)3770 vec_all_ge(__vector float __a, __vector float __b) {
3771   int __cc;
3772   __builtin_s390_vfchesbs(__a, __b, &__cc);
3773   return __cc == 0;
3774 }
3775 #endif
3776 
3777 static inline __ATTRS_o_ai int
vec_all_ge(__vector double __a,__vector double __b)3778 vec_all_ge(__vector double __a, __vector double __b) {
3779   int __cc;
3780   __builtin_s390_vfchedbs(__a, __b, &__cc);
3781   return __cc == 0;
3782 }
3783 
3784 /*-- vec_all_gt -------------------------------------------------------------*/
3785 
3786 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector signed char __b)3787 vec_all_gt(__vector signed char __a, __vector signed char __b) {
3788   int __cc;
3789   __builtin_s390_vchbs(__a, __b, &__cc);
3790   return __cc == 0;
3791 }
3792 
3793 // This prototype is deprecated.
3794 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector __bool char __b)3795 vec_all_gt(__vector signed char __a, __vector __bool char __b) {
3796   int __cc;
3797   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3798   return __cc == 0;
3799 }
3800 
3801 // This prototype is deprecated.
3802 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector signed char __b)3803 vec_all_gt(__vector __bool char __a, __vector signed char __b) {
3804   int __cc;
3805   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3806   return __cc == 0;
3807 }
3808 
3809 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector unsigned char __b)3810 vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
3811   int __cc;
3812   __builtin_s390_vchlbs(__a, __b, &__cc);
3813   return __cc == 0;
3814 }
3815 
3816 // This prototype is deprecated.
3817 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector __bool char __b)3818 vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
3819   int __cc;
3820   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3821   return __cc == 0;
3822 }
3823 
3824 // This prototype is deprecated.
3825 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector unsigned char __b)3826 vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
3827   int __cc;
3828   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3829   return __cc == 0;
3830 }
3831 
3832 // This prototype is deprecated.
3833 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector __bool char __b)3834 vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
3835   int __cc;
3836   __builtin_s390_vchlbs((__vector unsigned char)__a,
3837                         (__vector unsigned char)__b, &__cc);
3838   return __cc == 0;
3839 }
3840 
3841 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector signed short __b)3842 vec_all_gt(__vector signed short __a, __vector signed short __b) {
3843   int __cc;
3844   __builtin_s390_vchhs(__a, __b, &__cc);
3845   return __cc == 0;
3846 }
3847 
3848 // This prototype is deprecated.
3849 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector __bool short __b)3850 vec_all_gt(__vector signed short __a, __vector __bool short __b) {
3851   int __cc;
3852   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3853   return __cc == 0;
3854 }
3855 
3856 // This prototype is deprecated.
3857 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector signed short __b)3858 vec_all_gt(__vector __bool short __a, __vector signed short __b) {
3859   int __cc;
3860   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3861   return __cc == 0;
3862 }
3863 
3864 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector unsigned short __b)3865 vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
3866   int __cc;
3867   __builtin_s390_vchlhs(__a, __b, &__cc);
3868   return __cc == 0;
3869 }
3870 
3871 // This prototype is deprecated.
3872 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector __bool short __b)3873 vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
3874   int __cc;
3875   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3876   return __cc == 0;
3877 }
3878 
3879 // This prototype is deprecated.
3880 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector unsigned short __b)3881 vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
3882   int __cc;
3883   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3884   return __cc == 0;
3885 }
3886 
3887 // This prototype is deprecated.
3888 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector __bool short __b)3889 vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
3890   int __cc;
3891   __builtin_s390_vchlhs((__vector unsigned short)__a,
3892                         (__vector unsigned short)__b, &__cc);
3893   return __cc == 0;
3894 }
3895 
3896 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector signed int __b)3897 vec_all_gt(__vector signed int __a, __vector signed int __b) {
3898   int __cc;
3899   __builtin_s390_vchfs(__a, __b, &__cc);
3900   return __cc == 0;
3901 }
3902 
3903 // This prototype is deprecated.
3904 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector __bool int __b)3905 vec_all_gt(__vector signed int __a, __vector __bool int __b) {
3906   int __cc;
3907   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3908   return __cc == 0;
3909 }
3910 
3911 // This prototype is deprecated.
3912 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector signed int __b)3913 vec_all_gt(__vector __bool int __a, __vector signed int __b) {
3914   int __cc;
3915   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3916   return __cc == 0;
3917 }
3918 
3919 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector unsigned int __b)3920 vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
3921   int __cc;
3922   __builtin_s390_vchlfs(__a, __b, &__cc);
3923   return __cc == 0;
3924 }
3925 
3926 // This prototype is deprecated.
3927 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector __bool int __b)3928 vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
3929   int __cc;
3930   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3931   return __cc == 0;
3932 }
3933 
3934 // This prototype is deprecated.
3935 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector unsigned int __b)3936 vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
3937   int __cc;
3938   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3939   return __cc == 0;
3940 }
3941 
3942 // This prototype is deprecated.
3943 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector __bool int __b)3944 vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
3945   int __cc;
3946   __builtin_s390_vchlfs((__vector unsigned int)__a,
3947                         (__vector unsigned int)__b, &__cc);
3948   return __cc == 0;
3949 }
3950 
3951 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector signed long long __b)3952 vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
3953   int __cc;
3954   __builtin_s390_vchgs(__a, __b, &__cc);
3955   return __cc == 0;
3956 }
3957 
3958 // This prototype is deprecated.
3959 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector __bool long long __b)3960 vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
3961   int __cc;
3962   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3963   return __cc == 0;
3964 }
3965 
3966 // This prototype is deprecated.
3967 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector signed long long __b)3968 vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
3969   int __cc;
3970   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3971   return __cc == 0;
3972 }
3973 
3974 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector unsigned long long __b)3975 vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
3976   int __cc;
3977   __builtin_s390_vchlgs(__a, __b, &__cc);
3978   return __cc == 0;
3979 }
3980 
3981 // This prototype is deprecated.
3982 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector __bool long long __b)3983 vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
3984   int __cc;
3985   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3986   return __cc == 0;
3987 }
3988 
3989 // This prototype is deprecated.
3990 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector unsigned long long __b)3991 vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
3992   int __cc;
3993   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3994   return __cc == 0;
3995 }
3996 
3997 // This prototype is deprecated.
3998 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector __bool long long __b)3999 vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
4000   int __cc;
4001   __builtin_s390_vchlgs((__vector unsigned long long)__a,
4002                         (__vector unsigned long long)__b, &__cc);
4003   return __cc == 0;
4004 }
4005 
4006 #if __ARCH__ >= 15
4007 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed __int128 __a,__vector signed __int128 __b)4008 vec_all_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
4009   int __cc;
4010   __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
4011   return __cc == 0;
4012 }
4013 
4014 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)4015 vec_all_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4016   int __cc;
4017   __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4018   return __cc == 0;
4019 }
4020 #endif
4021 
4022 #if __ARCH__ >= 12
4023 static inline __ATTRS_o_ai int
vec_all_gt(__vector float __a,__vector float __b)4024 vec_all_gt(__vector float __a, __vector float __b) {
4025   int __cc;
4026   __builtin_s390_vfchsbs(__a, __b, &__cc);
4027   return __cc == 0;
4028 }
4029 #endif
4030 
4031 static inline __ATTRS_o_ai int
vec_all_gt(__vector double __a,__vector double __b)4032 vec_all_gt(__vector double __a, __vector double __b) {
4033   int __cc;
4034   __builtin_s390_vfchdbs(__a, __b, &__cc);
4035   return __cc == 0;
4036 }
4037 
4038 /*-- vec_all_le -------------------------------------------------------------*/
4039 
4040 static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector signed char __b)4041 vec_all_le(__vector signed char __a, __vector signed char __b) {
4042   int __cc;
4043   __builtin_s390_vchbs(__a, __b, &__cc);
4044   return __cc == 3;
4045 }
4046 
4047 // This prototype is deprecated.
4048 static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector __bool char __b)4049 vec_all_le(__vector signed char __a, __vector __bool char __b) {
4050   int __cc;
4051   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
4052   return __cc == 3;
4053 }
4054 
4055 // This prototype is deprecated.
4056 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector signed char __b)4057 vec_all_le(__vector __bool char __a, __vector signed char __b) {
4058   int __cc;
4059   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
4060   return __cc == 3;
4061 }
4062 
4063 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector unsigned char __b)4064 vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
4065   int __cc;
4066   __builtin_s390_vchlbs(__a, __b, &__cc);
4067   return __cc == 3;
4068 }
4069 
4070 // This prototype is deprecated.
4071 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector __bool char __b)4072 vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
4073   int __cc;
4074   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
4075   return __cc == 3;
4076 }
4077 
4078 // This prototype is deprecated.
4079 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector unsigned char __b)4080 vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
4081   int __cc;
4082   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
4083   return __cc == 3;
4084 }
4085 
4086 // This prototype is deprecated.
4087 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector __bool char __b)4088 vec_all_le(__vector __bool char __a, __vector __bool char __b) {
4089   int __cc;
4090   __builtin_s390_vchlbs((__vector unsigned char)__a,
4091                         (__vector unsigned char)__b, &__cc);
4092   return __cc == 3;
4093 }
4094 
4095 static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector signed short __b)4096 vec_all_le(__vector signed short __a, __vector signed short __b) {
4097   int __cc;
4098   __builtin_s390_vchhs(__a, __b, &__cc);
4099   return __cc == 3;
4100 }
4101 
4102 // This prototype is deprecated.
4103 static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector __bool short __b)4104 vec_all_le(__vector signed short __a, __vector __bool short __b) {
4105   int __cc;
4106   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
4107   return __cc == 3;
4108 }
4109 
4110 // This prototype is deprecated.
4111 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector signed short __b)4112 vec_all_le(__vector __bool short __a, __vector signed short __b) {
4113   int __cc;
4114   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
4115   return __cc == 3;
4116 }
4117 
4118 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector unsigned short __b)4119 vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
4120   int __cc;
4121   __builtin_s390_vchlhs(__a, __b, &__cc);
4122   return __cc == 3;
4123 }
4124 
4125 // This prototype is deprecated.
4126 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector __bool short __b)4127 vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
4128   int __cc;
4129   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
4130   return __cc == 3;
4131 }
4132 
4133 // This prototype is deprecated.
4134 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector unsigned short __b)4135 vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
4136   int __cc;
4137   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
4138   return __cc == 3;
4139 }
4140 
4141 // This prototype is deprecated.
4142 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector __bool short __b)4143 vec_all_le(__vector __bool short __a, __vector __bool short __b) {
4144   int __cc;
4145   __builtin_s390_vchlhs((__vector unsigned short)__a,
4146                         (__vector unsigned short)__b, &__cc);
4147   return __cc == 3;
4148 }
4149 
4150 static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector signed int __b)4151 vec_all_le(__vector signed int __a, __vector signed int __b) {
4152   int __cc;
4153   __builtin_s390_vchfs(__a, __b, &__cc);
4154   return __cc == 3;
4155 }
4156 
4157 // This prototype is deprecated.
4158 static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector __bool int __b)4159 vec_all_le(__vector signed int __a, __vector __bool int __b) {
4160   int __cc;
4161   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
4162   return __cc == 3;
4163 }
4164 
4165 // This prototype is deprecated.
4166 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector signed int __b)4167 vec_all_le(__vector __bool int __a, __vector signed int __b) {
4168   int __cc;
4169   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
4170   return __cc == 3;
4171 }
4172 
4173 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector unsigned int __b)4174 vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
4175   int __cc;
4176   __builtin_s390_vchlfs(__a, __b, &__cc);
4177   return __cc == 3;
4178 }
4179 
4180 // This prototype is deprecated.
4181 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector __bool int __b)4182 vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
4183   int __cc;
4184   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
4185   return __cc == 3;
4186 }
4187 
4188 // This prototype is deprecated.
4189 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector unsigned int __b)4190 vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
4191   int __cc;
4192   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
4193   return __cc == 3;
4194 }
4195 
4196 // This prototype is deprecated.
4197 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector __bool int __b)4198 vec_all_le(__vector __bool int __a, __vector __bool int __b) {
4199   int __cc;
4200   __builtin_s390_vchlfs((__vector unsigned int)__a,
4201                         (__vector unsigned int)__b, &__cc);
4202   return __cc == 3;
4203 }
4204 
4205 static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector signed long long __b)4206 vec_all_le(__vector signed long long __a, __vector signed long long __b) {
4207   int __cc;
4208   __builtin_s390_vchgs(__a, __b, &__cc);
4209   return __cc == 3;
4210 }
4211 
4212 // This prototype is deprecated.
4213 static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector __bool long long __b)4214 vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
4215   int __cc;
4216   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
4217   return __cc == 3;
4218 }
4219 
4220 // This prototype is deprecated.
4221 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector signed long long __b)4222 vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
4223   int __cc;
4224   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
4225   return __cc == 3;
4226 }
4227 
4228 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector unsigned long long __b)4229 vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
4230   int __cc;
4231   __builtin_s390_vchlgs(__a, __b, &__cc);
4232   return __cc == 3;
4233 }
4234 
4235 // This prototype is deprecated.
4236 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector __bool long long __b)4237 vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
4238   int __cc;
4239   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
4240   return __cc == 3;
4241 }
4242 
4243 // This prototype is deprecated.
4244 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector unsigned long long __b)4245 vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
4246   int __cc;
4247   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
4248   return __cc == 3;
4249 }
4250 
4251 // This prototype is deprecated.
4252 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector __bool long long __b)4253 vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
4254   int __cc;
4255   __builtin_s390_vchlgs((__vector unsigned long long)__a,
4256                         (__vector unsigned long long)__b, &__cc);
4257   return __cc == 3;
4258 }
4259 
4260 #if __ARCH__ >= 15
4261 static inline __ATTRS_o_ai int
vec_all_le(__vector signed __int128 __a,__vector signed __int128 __b)4262 vec_all_le(__vector signed __int128 __a, __vector signed __int128 __b) {
4263   int __cc;
4264   __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
4265   return __cc == 3;
4266 }
4267 
4268 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned __int128 __a,__vector unsigned __int128 __b)4269 vec_all_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4270   int __cc;
4271   __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4272   return __cc == 3;
4273 }
4274 #endif
4275 
4276 #if __ARCH__ >= 12
4277 static inline __ATTRS_o_ai int
vec_all_le(__vector float __a,__vector float __b)4278 vec_all_le(__vector float __a, __vector float __b) {
4279   int __cc;
4280   __builtin_s390_vfchesbs(__b, __a, &__cc);
4281   return __cc == 0;
4282 }
4283 #endif
4284 
4285 static inline __ATTRS_o_ai int
vec_all_le(__vector double __a,__vector double __b)4286 vec_all_le(__vector double __a, __vector double __b) {
4287   int __cc;
4288   __builtin_s390_vfchedbs(__b, __a, &__cc);
4289   return __cc == 0;
4290 }
4291 
4292 /*-- vec_all_lt -------------------------------------------------------------*/
4293 
4294 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector signed char __b)4295 vec_all_lt(__vector signed char __a, __vector signed char __b) {
4296   int __cc;
4297   __builtin_s390_vchbs(__b, __a, &__cc);
4298   return __cc == 0;
4299 }
4300 
4301 // This prototype is deprecated.
4302 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector __bool char __b)4303 vec_all_lt(__vector signed char __a, __vector __bool char __b) {
4304   int __cc;
4305   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
4306   return __cc == 0;
4307 }
4308 
4309 // This prototype is deprecated.
4310 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector signed char __b)4311 vec_all_lt(__vector __bool char __a, __vector signed char __b) {
4312   int __cc;
4313   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
4314   return __cc == 0;
4315 }
4316 
4317 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector unsigned char __b)4318 vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
4319   int __cc;
4320   __builtin_s390_vchlbs(__b, __a, &__cc);
4321   return __cc == 0;
4322 }
4323 
4324 // This prototype is deprecated.
4325 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector __bool char __b)4326 vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
4327   int __cc;
4328   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
4329   return __cc == 0;
4330 }
4331 
4332 // This prototype is deprecated.
4333 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector unsigned char __b)4334 vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
4335   int __cc;
4336   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
4337   return __cc == 0;
4338 }
4339 
4340 // This prototype is deprecated.
4341 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector __bool char __b)4342 vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
4343   int __cc;
4344   __builtin_s390_vchlbs((__vector unsigned char)__b,
4345                         (__vector unsigned char)__a, &__cc);
4346   return __cc == 0;
4347 }
4348 
4349 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector signed short __b)4350 vec_all_lt(__vector signed short __a, __vector signed short __b) {
4351   int __cc;
4352   __builtin_s390_vchhs(__b, __a, &__cc);
4353   return __cc == 0;
4354 }
4355 
4356 // This prototype is deprecated.
4357 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector __bool short __b)4358 vec_all_lt(__vector signed short __a, __vector __bool short __b) {
4359   int __cc;
4360   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
4361   return __cc == 0;
4362 }
4363 
4364 // This prototype is deprecated.
4365 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector signed short __b)4366 vec_all_lt(__vector __bool short __a, __vector signed short __b) {
4367   int __cc;
4368   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
4369   return __cc == 0;
4370 }
4371 
4372 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector unsigned short __b)4373 vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
4374   int __cc;
4375   __builtin_s390_vchlhs(__b, __a, &__cc);
4376   return __cc == 0;
4377 }
4378 
4379 // This prototype is deprecated.
4380 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector __bool short __b)4381 vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
4382   int __cc;
4383   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
4384   return __cc == 0;
4385 }
4386 
4387 // This prototype is deprecated.
4388 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector unsigned short __b)4389 vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
4390   int __cc;
4391   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
4392   return __cc == 0;
4393 }
4394 
4395 // This prototype is deprecated.
4396 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector __bool short __b)4397 vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
4398   int __cc;
4399   __builtin_s390_vchlhs((__vector unsigned short)__b,
4400                         (__vector unsigned short)__a, &__cc);
4401   return __cc == 0;
4402 }
4403 
4404 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector signed int __b)4405 vec_all_lt(__vector signed int __a, __vector signed int __b) {
4406   int __cc;
4407   __builtin_s390_vchfs(__b, __a, &__cc);
4408   return __cc == 0;
4409 }
4410 
4411 // This prototype is deprecated.
4412 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector __bool int __b)4413 vec_all_lt(__vector signed int __a, __vector __bool int __b) {
4414   int __cc;
4415   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4416   return __cc == 0;
4417 }
4418 
4419 // This prototype is deprecated.
4420 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector signed int __b)4421 vec_all_lt(__vector __bool int __a, __vector signed int __b) {
4422   int __cc;
4423   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4424   return __cc == 0;
4425 }
4426 
4427 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector unsigned int __b)4428 vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
4429   int __cc;
4430   __builtin_s390_vchlfs(__b, __a, &__cc);
4431   return __cc == 0;
4432 }
4433 
4434 // This prototype is deprecated.
4435 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector __bool int __b)4436 vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
4437   int __cc;
4438   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4439   return __cc == 0;
4440 }
4441 
4442 // This prototype is deprecated.
4443 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector unsigned int __b)4444 vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
4445   int __cc;
4446   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4447   return __cc == 0;
4448 }
4449 
4450 // This prototype is deprecated.
4451 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector __bool int __b)4452 vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
4453   int __cc;
4454   __builtin_s390_vchlfs((__vector unsigned int)__b,
4455                         (__vector unsigned int)__a, &__cc);
4456   return __cc == 0;
4457 }
4458 
4459 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector signed long long __b)4460 vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
4461   int __cc;
4462   __builtin_s390_vchgs(__b, __a, &__cc);
4463   return __cc == 0;
4464 }
4465 
4466 // This prototype is deprecated.
4467 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector __bool long long __b)4468 vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
4469   int __cc;
4470   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4471   return __cc == 0;
4472 }
4473 
4474 // This prototype is deprecated.
4475 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector signed long long __b)4476 vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
4477   int __cc;
4478   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4479   return __cc == 0;
4480 }
4481 
4482 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector unsigned long long __b)4483 vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
4484   int __cc;
4485   __builtin_s390_vchlgs(__b, __a, &__cc);
4486   return __cc == 0;
4487 }
4488 
4489 // This prototype is deprecated.
4490 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector __bool long long __b)4491 vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
4492   int __cc;
4493   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4494   return __cc == 0;
4495 }
4496 
4497 // This prototype is deprecated.
4498 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector unsigned long long __b)4499 vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
4500   int __cc;
4501   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4502   return __cc == 0;
4503 }
4504 
4505 // This prototype is deprecated.
4506 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector __bool long long __b)4507 vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
4508   int __cc;
4509   __builtin_s390_vchlgs((__vector unsigned long long)__b,
4510                         (__vector unsigned long long)__a, &__cc);
4511   return __cc == 0;
4512 }
4513 
4514 #if __ARCH__ >= 15
4515 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed __int128 __a,__vector signed __int128 __b)4516 vec_all_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
4517   int __cc;
4518   __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
4519   return __cc == 0;
4520 }
4521 
4522 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)4523 vec_all_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4524   int __cc;
4525   __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
4526   return __cc == 0;
4527 }
4528 #endif
4529 
4530 #if __ARCH__ >= 12
4531 static inline __ATTRS_o_ai int
vec_all_lt(__vector float __a,__vector float __b)4532 vec_all_lt(__vector float __a, __vector float __b) {
4533   int __cc;
4534   __builtin_s390_vfchsbs(__b, __a, &__cc);
4535   return __cc == 0;
4536 }
4537 #endif
4538 
4539 static inline __ATTRS_o_ai int
vec_all_lt(__vector double __a,__vector double __b)4540 vec_all_lt(__vector double __a, __vector double __b) {
4541   int __cc;
4542   __builtin_s390_vfchdbs(__b, __a, &__cc);
4543   return __cc == 0;
4544 }
4545 
4546 /*-- vec_all_nge ------------------------------------------------------------*/
4547 
4548 #if __ARCH__ >= 12
4549 static inline __ATTRS_o_ai int
vec_all_nge(__vector float __a,__vector float __b)4550 vec_all_nge(__vector float __a, __vector float __b) {
4551   int __cc;
4552   __builtin_s390_vfchesbs(__a, __b, &__cc);
4553   return __cc == 3;
4554 }
4555 #endif
4556 
4557 static inline __ATTRS_o_ai int
vec_all_nge(__vector double __a,__vector double __b)4558 vec_all_nge(__vector double __a, __vector double __b) {
4559   int __cc;
4560   __builtin_s390_vfchedbs(__a, __b, &__cc);
4561   return __cc == 3;
4562 }
4563 
4564 /*-- vec_all_ngt ------------------------------------------------------------*/
4565 
4566 #if __ARCH__ >= 12
4567 static inline __ATTRS_o_ai int
vec_all_ngt(__vector float __a,__vector float __b)4568 vec_all_ngt(__vector float __a, __vector float __b) {
4569   int __cc;
4570   __builtin_s390_vfchsbs(__a, __b, &__cc);
4571   return __cc == 3;
4572 }
4573 #endif
4574 
4575 static inline __ATTRS_o_ai int
vec_all_ngt(__vector double __a,__vector double __b)4576 vec_all_ngt(__vector double __a, __vector double __b) {
4577   int __cc;
4578   __builtin_s390_vfchdbs(__a, __b, &__cc);
4579   return __cc == 3;
4580 }
4581 
4582 /*-- vec_all_nle ------------------------------------------------------------*/
4583 
4584 #if __ARCH__ >= 12
4585 static inline __ATTRS_o_ai int
vec_all_nle(__vector float __a,__vector float __b)4586 vec_all_nle(__vector float __a, __vector float __b) {
4587   int __cc;
4588   __builtin_s390_vfchesbs(__b, __a, &__cc);
4589   return __cc == 3;
4590 }
4591 #endif
4592 
4593 static inline __ATTRS_o_ai int
vec_all_nle(__vector double __a,__vector double __b)4594 vec_all_nle(__vector double __a, __vector double __b) {
4595   int __cc;
4596   __builtin_s390_vfchedbs(__b, __a, &__cc);
4597   return __cc == 3;
4598 }
4599 
4600 /*-- vec_all_nlt ------------------------------------------------------------*/
4601 
4602 #if __ARCH__ >= 12
4603 static inline __ATTRS_o_ai int
vec_all_nlt(__vector float __a,__vector float __b)4604 vec_all_nlt(__vector float __a, __vector float __b) {
4605   int __cc;
4606   __builtin_s390_vfchsbs(__b, __a, &__cc);
4607   return __cc == 3;
4608 }
4609 #endif
4610 
4611 static inline __ATTRS_o_ai int
vec_all_nlt(__vector double __a,__vector double __b)4612 vec_all_nlt(__vector double __a, __vector double __b) {
4613   int __cc;
4614   __builtin_s390_vfchdbs(__b, __a, &__cc);
4615   return __cc == 3;
4616 }
4617 
4618 /*-- vec_all_nan ------------------------------------------------------------*/
4619 
4620 #if __ARCH__ >= 12
4621 static inline __ATTRS_o_ai int
vec_all_nan(__vector float __a)4622 vec_all_nan(__vector float __a) {
4623   int __cc;
4624   __builtin_s390_vftcisb(__a, 15, &__cc);
4625   return __cc == 0;
4626 }
4627 #endif
4628 
4629 static inline __ATTRS_o_ai int
vec_all_nan(__vector double __a)4630 vec_all_nan(__vector double __a) {
4631   int __cc;
4632   __builtin_s390_vftcidb(__a, 15, &__cc);
4633   return __cc == 0;
4634 }
4635 
4636 /*-- vec_all_numeric --------------------------------------------------------*/
4637 
4638 #if __ARCH__ >= 12
4639 static inline __ATTRS_o_ai int
vec_all_numeric(__vector float __a)4640 vec_all_numeric(__vector float __a) {
4641   int __cc;
4642   __builtin_s390_vftcisb(__a, 15, &__cc);
4643   return __cc == 3;
4644 }
4645 #endif
4646 
4647 static inline __ATTRS_o_ai int
vec_all_numeric(__vector double __a)4648 vec_all_numeric(__vector double __a) {
4649   int __cc;
4650   __builtin_s390_vftcidb(__a, 15, &__cc);
4651   return __cc == 3;
4652 }
4653 
4654 /*-- vec_any_eq -------------------------------------------------------------*/
4655 
4656 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector signed char __b)4657 vec_any_eq(__vector signed char __a, __vector signed char __b) {
4658   int __cc;
4659   __builtin_s390_vceqbs((__vector unsigned char)__a,
4660                         (__vector unsigned char)__b, &__cc);
4661   return __cc <= 1;
4662 }
4663 
4664 // This prototype is deprecated.
4665 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector __bool char __b)4666 vec_any_eq(__vector signed char __a, __vector __bool char __b) {
4667   int __cc;
4668   __builtin_s390_vceqbs((__vector unsigned char)__a,
4669                         (__vector unsigned char)__b, &__cc);
4670   return __cc <= 1;
4671 }
4672 
4673 // This prototype is deprecated.
4674 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector signed char __b)4675 vec_any_eq(__vector __bool char __a, __vector signed char __b) {
4676   int __cc;
4677   __builtin_s390_vceqbs((__vector unsigned char)__a,
4678                         (__vector unsigned char)__b, &__cc);
4679   return __cc <= 1;
4680 }
4681 
4682 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector unsigned char __b)4683 vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
4684   int __cc;
4685   __builtin_s390_vceqbs(__a, __b, &__cc);
4686   return __cc <= 1;
4687 }
4688 
4689 // This prototype is deprecated.
4690 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector __bool char __b)4691 vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
4692   int __cc;
4693   __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4694   return __cc <= 1;
4695 }
4696 
4697 // This prototype is deprecated.
4698 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector unsigned char __b)4699 vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
4700   int __cc;
4701   __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4702   return __cc <= 1;
4703 }
4704 
4705 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector __bool char __b)4706 vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
4707   int __cc;
4708   __builtin_s390_vceqbs((__vector unsigned char)__a,
4709                         (__vector unsigned char)__b, &__cc);
4710   return __cc <= 1;
4711 }
4712 
4713 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector signed short __b)4714 vec_any_eq(__vector signed short __a, __vector signed short __b) {
4715   int __cc;
4716   __builtin_s390_vceqhs((__vector unsigned short)__a,
4717                         (__vector unsigned short)__b, &__cc);
4718   return __cc <= 1;
4719 }
4720 
4721 // This prototype is deprecated.
4722 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector __bool short __b)4723 vec_any_eq(__vector signed short __a, __vector __bool short __b) {
4724   int __cc;
4725   __builtin_s390_vceqhs((__vector unsigned short)__a,
4726                         (__vector unsigned short)__b, &__cc);
4727   return __cc <= 1;
4728 }
4729 
4730 // This prototype is deprecated.
4731 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector signed short __b)4732 vec_any_eq(__vector __bool short __a, __vector signed short __b) {
4733   int __cc;
4734   __builtin_s390_vceqhs((__vector unsigned short)__a,
4735                         (__vector unsigned short)__b, &__cc);
4736   return __cc <= 1;
4737 }
4738 
4739 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector unsigned short __b)4740 vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
4741   int __cc;
4742   __builtin_s390_vceqhs(__a, __b, &__cc);
4743   return __cc <= 1;
4744 }
4745 
4746 // This prototype is deprecated.
4747 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector __bool short __b)4748 vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
4749   int __cc;
4750   __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
4751   return __cc <= 1;
4752 }
4753 
4754 // This prototype is deprecated.
4755 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector unsigned short __b)4756 vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
4757   int __cc;
4758   __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
4759   return __cc <= 1;
4760 }
4761 
4762 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector __bool short __b)4763 vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
4764   int __cc;
4765   __builtin_s390_vceqhs((__vector unsigned short)__a,
4766                         (__vector unsigned short)__b, &__cc);
4767   return __cc <= 1;
4768 }
4769 
4770 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector signed int __b)4771 vec_any_eq(__vector signed int __a, __vector signed int __b) {
4772   int __cc;
4773   __builtin_s390_vceqfs((__vector unsigned int)__a,
4774                         (__vector unsigned int)__b, &__cc);
4775   return __cc <= 1;
4776 }
4777 
4778 // This prototype is deprecated.
4779 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector __bool int __b)4780 vec_any_eq(__vector signed int __a, __vector __bool int __b) {
4781   int __cc;
4782   __builtin_s390_vceqfs((__vector unsigned int)__a,
4783                         (__vector unsigned int)__b, &__cc);
4784   return __cc <= 1;
4785 }
4786 
4787 // This prototype is deprecated.
4788 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector signed int __b)4789 vec_any_eq(__vector __bool int __a, __vector signed int __b) {
4790   int __cc;
4791   __builtin_s390_vceqfs((__vector unsigned int)__a,
4792                         (__vector unsigned int)__b, &__cc);
4793   return __cc <= 1;
4794 }
4795 
4796 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector unsigned int __b)4797 vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
4798   int __cc;
4799   __builtin_s390_vceqfs(__a, __b, &__cc);
4800   return __cc <= 1;
4801 }
4802 
4803 // This prototype is deprecated.
4804 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector __bool int __b)4805 vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
4806   int __cc;
4807   __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
4808   return __cc <= 1;
4809 }
4810 
4811 // This prototype is deprecated.
4812 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector unsigned int __b)4813 vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
4814   int __cc;
4815   __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
4816   return __cc <= 1;
4817 }
4818 
4819 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector __bool int __b)4820 vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
4821   int __cc;
4822   __builtin_s390_vceqfs((__vector unsigned int)__a,
4823                         (__vector unsigned int)__b, &__cc);
4824   return __cc <= 1;
4825 }
4826 
4827 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector signed long long __b)4828 vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
4829   int __cc;
4830   __builtin_s390_vceqgs((__vector unsigned long long)__a,
4831                         (__vector unsigned long long)__b, &__cc);
4832   return __cc <= 1;
4833 }
4834 
4835 // This prototype is deprecated.
4836 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector __bool long long __b)4837 vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
4838   int __cc;
4839   __builtin_s390_vceqgs((__vector unsigned long long)__a,
4840                         (__vector unsigned long long)__b, &__cc);
4841   return __cc <= 1;
4842 }
4843 
4844 // This prototype is deprecated.
4845 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector signed long long __b)4846 vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
4847   int __cc;
4848   __builtin_s390_vceqgs((__vector unsigned long long)__a,
4849                         (__vector unsigned long long)__b, &__cc);
4850   return __cc <= 1;
4851 }
4852 
4853 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector unsigned long long __b)4854 vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
4855   int __cc;
4856   __builtin_s390_vceqgs(__a, __b, &__cc);
4857   return __cc <= 1;
4858 }
4859 
4860 // This prototype is deprecated.
4861 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector __bool long long __b)4862 vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
4863   int __cc;
4864   __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
4865   return __cc <= 1;
4866 }
4867 
4868 // This prototype is deprecated.
4869 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector unsigned long long __b)4870 vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
4871   int __cc;
4872   __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
4873   return __cc <= 1;
4874 }
4875 
4876 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector __bool long long __b)4877 vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
4878   int __cc;
4879   __builtin_s390_vceqgs((__vector unsigned long long)__a,
4880                         (__vector unsigned long long)__b, &__cc);
4881   return __cc <= 1;
4882 }
4883 
4884 #if __ARCH__ >= 15
4885 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed __int128 __a,__vector signed __int128 __b)4886 vec_any_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
4887   int __cc;
4888   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4889   return __cc <= 1;
4890 }
4891 
4892 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned __int128 __a,__vector unsigned __int128 __b)4893 vec_any_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4894   int __cc;
4895   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4896   return __cc <= 1;
4897 }
4898 
4899 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool __int128 __a,__vector __bool __int128 __b)4900 vec_any_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
4901   int __cc;
4902   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4903   return __cc <= 1;
4904 }
4905 #endif
4906 
4907 #if __ARCH__ >= 12
4908 static inline __ATTRS_o_ai int
vec_any_eq(__vector float __a,__vector float __b)4909 vec_any_eq(__vector float __a, __vector float __b) {
4910   int __cc;
4911   __builtin_s390_vfcesbs(__a, __b, &__cc);
4912   return __cc <= 1;
4913 }
4914 #endif
4915 
4916 static inline __ATTRS_o_ai int
vec_any_eq(__vector double __a,__vector double __b)4917 vec_any_eq(__vector double __a, __vector double __b) {
4918   int __cc;
4919   __builtin_s390_vfcedbs(__a, __b, &__cc);
4920   return __cc <= 1;
4921 }
4922 
4923 /*-- vec_any_ne -------------------------------------------------------------*/
4924 
4925 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector signed char __b)4926 vec_any_ne(__vector signed char __a, __vector signed char __b) {
4927   int __cc;
4928   __builtin_s390_vceqbs((__vector unsigned char)__a,
4929                         (__vector unsigned char)__b, &__cc);
4930   return __cc != 0;
4931 }
4932 
4933 // This prototype is deprecated.
4934 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector __bool char __b)4935 vec_any_ne(__vector signed char __a, __vector __bool char __b) {
4936   int __cc;
4937   __builtin_s390_vceqbs((__vector unsigned char)__a,
4938                         (__vector unsigned char)__b, &__cc);
4939   return __cc != 0;
4940 }
4941 
4942 // This prototype is deprecated.
4943 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector signed char __b)4944 vec_any_ne(__vector __bool char __a, __vector signed char __b) {
4945   int __cc;
4946   __builtin_s390_vceqbs((__vector unsigned char)__a,
4947                         (__vector unsigned char)__b, &__cc);
4948   return __cc != 0;
4949 }
4950 
4951 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector unsigned char __b)4952 vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
4953   int __cc;
4954   __builtin_s390_vceqbs(__a, __b, &__cc);
4955   return __cc != 0;
4956 }
4957 
4958 // This prototype is deprecated.
4959 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector __bool char __b)4960 vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
4961   int __cc;
4962   __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4963   return __cc != 0;
4964 }
4965 
4966 // This prototype is deprecated.
4967 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector unsigned char __b)4968 vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
4969   int __cc;
4970   __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4971   return __cc != 0;
4972 }
4973 
4974 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector __bool char __b)4975 vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
4976   int __cc;
4977   __builtin_s390_vceqbs((__vector unsigned char)__a,
4978                         (__vector unsigned char)__b, &__cc);
4979   return __cc != 0;
4980 }
4981 
4982 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector signed short __b)4983 vec_any_ne(__vector signed short __a, __vector signed short __b) {
4984   int __cc;
4985   __builtin_s390_vceqhs((__vector unsigned short)__a,
4986                         (__vector unsigned short)__b, &__cc);
4987   return __cc != 0;
4988 }
4989 
4990 // This prototype is deprecated.
4991 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector __bool short __b)4992 vec_any_ne(__vector signed short __a, __vector __bool short __b) {
4993   int __cc;
4994   __builtin_s390_vceqhs((__vector unsigned short)__a,
4995                         (__vector unsigned short)__b, &__cc);
4996   return __cc != 0;
4997 }
4998 
4999 // This prototype is deprecated.
5000 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector signed short __b)5001 vec_any_ne(__vector __bool short __a, __vector signed short __b) {
5002   int __cc;
5003   __builtin_s390_vceqhs((__vector unsigned short)__a,
5004                         (__vector unsigned short)__b, &__cc);
5005   return __cc != 0;
5006 }
5007 
5008 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector unsigned short __b)5009 vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
5010   int __cc;
5011   __builtin_s390_vceqhs(__a, __b, &__cc);
5012   return __cc != 0;
5013 }
5014 
5015 // This prototype is deprecated.
5016 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector __bool short __b)5017 vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
5018   int __cc;
5019   __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
5020   return __cc != 0;
5021 }
5022 
5023 // This prototype is deprecated.
5024 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector unsigned short __b)5025 vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
5026   int __cc;
5027   __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
5028   return __cc != 0;
5029 }
5030 
5031 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector __bool short __b)5032 vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
5033   int __cc;
5034   __builtin_s390_vceqhs((__vector unsigned short)__a,
5035                         (__vector unsigned short)__b, &__cc);
5036   return __cc != 0;
5037 }
5038 
5039 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector signed int __b)5040 vec_any_ne(__vector signed int __a, __vector signed int __b) {
5041   int __cc;
5042   __builtin_s390_vceqfs((__vector unsigned int)__a,
5043                         (__vector unsigned int)__b, &__cc);
5044   return __cc != 0;
5045 }
5046 
5047 // This prototype is deprecated.
5048 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector __bool int __b)5049 vec_any_ne(__vector signed int __a, __vector __bool int __b) {
5050   int __cc;
5051   __builtin_s390_vceqfs((__vector unsigned int)__a,
5052                         (__vector unsigned int)__b, &__cc);
5053   return __cc != 0;
5054 }
5055 
5056 // This prototype is deprecated.
5057 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector signed int __b)5058 vec_any_ne(__vector __bool int __a, __vector signed int __b) {
5059   int __cc;
5060   __builtin_s390_vceqfs((__vector unsigned int)__a,
5061                         (__vector unsigned int)__b, &__cc);
5062   return __cc != 0;
5063 }
5064 
5065 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector unsigned int __b)5066 vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
5067   int __cc;
5068   __builtin_s390_vceqfs(__a, __b, &__cc);
5069   return __cc != 0;
5070 }
5071 
5072 // This prototype is deprecated.
5073 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector __bool int __b)5074 vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
5075   int __cc;
5076   __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
5077   return __cc != 0;
5078 }
5079 
5080 // This prototype is deprecated.
5081 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector unsigned int __b)5082 vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
5083   int __cc;
5084   __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
5085   return __cc != 0;
5086 }
5087 
5088 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector __bool int __b)5089 vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
5090   int __cc;
5091   __builtin_s390_vceqfs((__vector unsigned int)__a,
5092                         (__vector unsigned int)__b, &__cc);
5093   return __cc != 0;
5094 }
5095 
5096 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector signed long long __b)5097 vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
5098   int __cc;
5099   __builtin_s390_vceqgs((__vector unsigned long long)__a,
5100                         (__vector unsigned long long)__b, &__cc);
5101   return __cc != 0;
5102 }
5103 
5104 // This prototype is deprecated.
5105 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector __bool long long __b)5106 vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
5107   int __cc;
5108   __builtin_s390_vceqgs((__vector unsigned long long)__a,
5109                         (__vector unsigned long long)__b, &__cc);
5110   return __cc != 0;
5111 }
5112 
5113 // This prototype is deprecated.
5114 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector signed long long __b)5115 vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
5116   int __cc;
5117   __builtin_s390_vceqgs((__vector unsigned long long)__a,
5118                         (__vector unsigned long long)__b, &__cc);
5119   return __cc != 0;
5120 }
5121 
5122 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector unsigned long long __b)5123 vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
5124   int __cc;
5125   __builtin_s390_vceqgs(__a, __b, &__cc);
5126   return __cc != 0;
5127 }
5128 
5129 // This prototype is deprecated.
5130 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector __bool long long __b)5131 vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
5132   int __cc;
5133   __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
5134   return __cc != 0;
5135 }
5136 
5137 // This prototype is deprecated.
5138 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector unsigned long long __b)5139 vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
5140   int __cc;
5141   __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
5142   return __cc != 0;
5143 }
5144 
5145 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector __bool long long __b)5146 vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
5147   int __cc;
5148   __builtin_s390_vceqgs((__vector unsigned long long)__a,
5149                         (__vector unsigned long long)__b, &__cc);
5150   return __cc != 0;
5151 }
5152 
5153 #if __ARCH__ >= 15
5154 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed __int128 __a,__vector signed __int128 __b)5155 vec_any_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
5156   int __cc;
5157   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5158   return __cc != 0;
5159 }
5160 
5161 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned __int128 __a,__vector unsigned __int128 __b)5162 vec_any_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5163   int __cc;
5164   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5165   return __cc != 0;
5166 }
5167 
5168 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool __int128 __a,__vector __bool __int128 __b)5169 vec_any_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
5170   int __cc;
5171   __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5172   return __cc != 0;
5173 }
5174 #endif
5175 
5176 #if __ARCH__ >= 12
5177 static inline __ATTRS_o_ai int
vec_any_ne(__vector float __a,__vector float __b)5178 vec_any_ne(__vector float __a, __vector float __b) {
5179   int __cc;
5180   __builtin_s390_vfcesbs(__a, __b, &__cc);
5181   return __cc != 0;
5182 }
5183 #endif
5184 
5185 static inline __ATTRS_o_ai int
vec_any_ne(__vector double __a,__vector double __b)5186 vec_any_ne(__vector double __a, __vector double __b) {
5187   int __cc;
5188   __builtin_s390_vfcedbs(__a, __b, &__cc);
5189   return __cc != 0;
5190 }
5191 
5192 /*-- vec_any_ge -------------------------------------------------------------*/
5193 
5194 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector signed char __b)5195 vec_any_ge(__vector signed char __a, __vector signed char __b) {
5196   int __cc;
5197   __builtin_s390_vchbs(__b, __a, &__cc);
5198   return __cc != 0;
5199 }
5200 
5201 // This prototype is deprecated.
5202 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector __bool char __b)5203 vec_any_ge(__vector signed char __a, __vector __bool char __b) {
5204   int __cc;
5205   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5206   return __cc != 0;
5207 }
5208 
5209 // This prototype is deprecated.
5210 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector signed char __b)5211 vec_any_ge(__vector __bool char __a, __vector signed char __b) {
5212   int __cc;
5213   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5214   return __cc != 0;
5215 }
5216 
5217 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector unsigned char __b)5218 vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
5219   int __cc;
5220   __builtin_s390_vchlbs(__b, __a, &__cc);
5221   return __cc != 0;
5222 }
5223 
5224 // This prototype is deprecated.
5225 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector __bool char __b)5226 vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
5227   int __cc;
5228   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5229   return __cc != 0;
5230 }
5231 
5232 // This prototype is deprecated.
5233 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector unsigned char __b)5234 vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
5235   int __cc;
5236   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5237   return __cc != 0;
5238 }
5239 
5240 // This prototype is deprecated.
5241 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector __bool char __b)5242 vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
5243   int __cc;
5244   __builtin_s390_vchlbs((__vector unsigned char)__b,
5245                         (__vector unsigned char)__a, &__cc);
5246   return __cc != 0;
5247 }
5248 
5249 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector signed short __b)5250 vec_any_ge(__vector signed short __a, __vector signed short __b) {
5251   int __cc;
5252   __builtin_s390_vchhs(__b, __a, &__cc);
5253   return __cc != 0;
5254 }
5255 
5256 // This prototype is deprecated.
5257 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector __bool short __b)5258 vec_any_ge(__vector signed short __a, __vector __bool short __b) {
5259   int __cc;
5260   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
5261   return __cc != 0;
5262 }
5263 
5264 // This prototype is deprecated.
5265 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector signed short __b)5266 vec_any_ge(__vector __bool short __a, __vector signed short __b) {
5267   int __cc;
5268   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
5269   return __cc != 0;
5270 }
5271 
5272 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector unsigned short __b)5273 vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
5274   int __cc;
5275   __builtin_s390_vchlhs(__b, __a, &__cc);
5276   return __cc != 0;
5277 }
5278 
5279 // This prototype is deprecated.
5280 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector __bool short __b)5281 vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
5282   int __cc;
5283   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
5284   return __cc != 0;
5285 }
5286 
5287 // This prototype is deprecated.
5288 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector unsigned short __b)5289 vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
5290   int __cc;
5291   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
5292   return __cc != 0;
5293 }
5294 
5295 // This prototype is deprecated.
5296 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector __bool short __b)5297 vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
5298   int __cc;
5299   __builtin_s390_vchlhs((__vector unsigned short)__b,
5300                         (__vector unsigned short)__a, &__cc);
5301   return __cc != 0;
5302 }
5303 
5304 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector signed int __b)5305 vec_any_ge(__vector signed int __a, __vector signed int __b) {
5306   int __cc;
5307   __builtin_s390_vchfs(__b, __a, &__cc);
5308   return __cc != 0;
5309 }
5310 
5311 // This prototype is deprecated.
5312 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector __bool int __b)5313 vec_any_ge(__vector signed int __a, __vector __bool int __b) {
5314   int __cc;
5315   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
5316   return __cc != 0;
5317 }
5318 
5319 // This prototype is deprecated.
5320 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector signed int __b)5321 vec_any_ge(__vector __bool int __a, __vector signed int __b) {
5322   int __cc;
5323   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
5324   return __cc != 0;
5325 }
5326 
5327 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector unsigned int __b)5328 vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
5329   int __cc;
5330   __builtin_s390_vchlfs(__b, __a, &__cc);
5331   return __cc != 0;
5332 }
5333 
5334 // This prototype is deprecated.
5335 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector __bool int __b)5336 vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
5337   int __cc;
5338   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
5339   return __cc != 0;
5340 }
5341 
5342 // This prototype is deprecated.
5343 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector unsigned int __b)5344 vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
5345   int __cc;
5346   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
5347   return __cc != 0;
5348 }
5349 
5350 // This prototype is deprecated.
5351 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector __bool int __b)5352 vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
5353   int __cc;
5354   __builtin_s390_vchlfs((__vector unsigned int)__b,
5355                         (__vector unsigned int)__a, &__cc);
5356   return __cc != 0;
5357 }
5358 
5359 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector signed long long __b)5360 vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
5361   int __cc;
5362   __builtin_s390_vchgs(__b, __a, &__cc);
5363   return __cc != 0;
5364 }
5365 
5366 // This prototype is deprecated.
5367 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector __bool long long __b)5368 vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
5369   int __cc;
5370   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
5371   return __cc != 0;
5372 }
5373 
5374 // This prototype is deprecated.
5375 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector signed long long __b)5376 vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
5377   int __cc;
5378   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
5379   return __cc != 0;
5380 }
5381 
5382 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector unsigned long long __b)5383 vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
5384   int __cc;
5385   __builtin_s390_vchlgs(__b, __a, &__cc);
5386   return __cc != 0;
5387 }
5388 
5389 // This prototype is deprecated.
5390 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector __bool long long __b)5391 vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
5392   int __cc;
5393   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
5394   return __cc != 0;
5395 }
5396 
5397 // This prototype is deprecated.
5398 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector unsigned long long __b)5399 vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
5400   int __cc;
5401   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
5402   return __cc != 0;
5403 }
5404 
5405 // This prototype is deprecated.
5406 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector __bool long long __b)5407 vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
5408   int __cc;
5409   __builtin_s390_vchlgs((__vector unsigned long long)__b,
5410                         (__vector unsigned long long)__a, &__cc);
5411   return __cc != 0;
5412 }
5413 
5414 #if __ARCH__ >= 15
5415 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed __int128 __a,__vector signed __int128 __b)5416 vec_any_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
5417   int __cc;
5418   __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
5419   return __cc != 0;
5420 }
5421 
5422 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned __int128 __a,__vector unsigned __int128 __b)5423 vec_any_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5424   int __cc;
5425   __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
5426   return __cc != 0;
5427 }
5428 #endif
5429 
5430 #if __ARCH__ >= 12
5431 static inline __ATTRS_o_ai int
vec_any_ge(__vector float __a,__vector float __b)5432 vec_any_ge(__vector float __a, __vector float __b) {
5433   int __cc;
5434   __builtin_s390_vfchesbs(__a, __b, &__cc);
5435   return __cc <= 1;
5436 }
5437 #endif
5438 
5439 static inline __ATTRS_o_ai int
vec_any_ge(__vector double __a,__vector double __b)5440 vec_any_ge(__vector double __a, __vector double __b) {
5441   int __cc;
5442   __builtin_s390_vfchedbs(__a, __b, &__cc);
5443   return __cc <= 1;
5444 }
5445 
5446 /*-- vec_any_gt -------------------------------------------------------------*/
5447 
5448 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector signed char __b)5449 vec_any_gt(__vector signed char __a, __vector signed char __b) {
5450   int __cc;
5451   __builtin_s390_vchbs(__a, __b, &__cc);
5452   return __cc <= 1;
5453 }
5454 
5455 // This prototype is deprecated.
5456 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector __bool char __b)5457 vec_any_gt(__vector signed char __a, __vector __bool char __b) {
5458   int __cc;
5459   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5460   return __cc <= 1;
5461 }
5462 
5463 // This prototype is deprecated.
5464 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector signed char __b)5465 vec_any_gt(__vector __bool char __a, __vector signed char __b) {
5466   int __cc;
5467   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5468   return __cc <= 1;
5469 }
5470 
5471 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector unsigned char __b)5472 vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
5473   int __cc;
5474   __builtin_s390_vchlbs(__a, __b, &__cc);
5475   return __cc <= 1;
5476 }
5477 
5478 // This prototype is deprecated.
5479 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector __bool char __b)5480 vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
5481   int __cc;
5482   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5483   return __cc <= 1;
5484 }
5485 
5486 // This prototype is deprecated.
5487 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector unsigned char __b)5488 vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
5489   int __cc;
5490   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5491   return __cc <= 1;
5492 }
5493 
5494 // This prototype is deprecated.
5495 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector __bool char __b)5496 vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
5497   int __cc;
5498   __builtin_s390_vchlbs((__vector unsigned char)__a,
5499                         (__vector unsigned char)__b, &__cc);
5500   return __cc <= 1;
5501 }
5502 
5503 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector signed short __b)5504 vec_any_gt(__vector signed short __a, __vector signed short __b) {
5505   int __cc;
5506   __builtin_s390_vchhs(__a, __b, &__cc);
5507   return __cc <= 1;
5508 }
5509 
5510 // This prototype is deprecated.
5511 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector __bool short __b)5512 vec_any_gt(__vector signed short __a, __vector __bool short __b) {
5513   int __cc;
5514   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5515   return __cc <= 1;
5516 }
5517 
5518 // This prototype is deprecated.
5519 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector signed short __b)5520 vec_any_gt(__vector __bool short __a, __vector signed short __b) {
5521   int __cc;
5522   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5523   return __cc <= 1;
5524 }
5525 
5526 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector unsigned short __b)5527 vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
5528   int __cc;
5529   __builtin_s390_vchlhs(__a, __b, &__cc);
5530   return __cc <= 1;
5531 }
5532 
5533 // This prototype is deprecated.
5534 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector __bool short __b)5535 vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
5536   int __cc;
5537   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5538   return __cc <= 1;
5539 }
5540 
5541 // This prototype is deprecated.
5542 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector unsigned short __b)5543 vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
5544   int __cc;
5545   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5546   return __cc <= 1;
5547 }
5548 
5549 // This prototype is deprecated.
5550 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector __bool short __b)5551 vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
5552   int __cc;
5553   __builtin_s390_vchlhs((__vector unsigned short)__a,
5554                         (__vector unsigned short)__b, &__cc);
5555   return __cc <= 1;
5556 }
5557 
5558 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector signed int __b)5559 vec_any_gt(__vector signed int __a, __vector signed int __b) {
5560   int __cc;
5561   __builtin_s390_vchfs(__a, __b, &__cc);
5562   return __cc <= 1;
5563 }
5564 
5565 // This prototype is deprecated.
5566 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector __bool int __b)5567 vec_any_gt(__vector signed int __a, __vector __bool int __b) {
5568   int __cc;
5569   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5570   return __cc <= 1;
5571 }
5572 
5573 // This prototype is deprecated.
5574 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector signed int __b)5575 vec_any_gt(__vector __bool int __a, __vector signed int __b) {
5576   int __cc;
5577   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5578   return __cc <= 1;
5579 }
5580 
5581 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector unsigned int __b)5582 vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
5583   int __cc;
5584   __builtin_s390_vchlfs(__a, __b, &__cc);
5585   return __cc <= 1;
5586 }
5587 
5588 // This prototype is deprecated.
5589 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector __bool int __b)5590 vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
5591   int __cc;
5592   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5593   return __cc <= 1;
5594 }
5595 
5596 // This prototype is deprecated.
5597 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector unsigned int __b)5598 vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
5599   int __cc;
5600   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5601   return __cc <= 1;
5602 }
5603 
5604 // This prototype is deprecated.
5605 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector __bool int __b)5606 vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
5607   int __cc;
5608   __builtin_s390_vchlfs((__vector unsigned int)__a,
5609                         (__vector unsigned int)__b, &__cc);
5610   return __cc <= 1;
5611 }
5612 
5613 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector signed long long __b)5614 vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
5615   int __cc;
5616   __builtin_s390_vchgs(__a, __b, &__cc);
5617   return __cc <= 1;
5618 }
5619 
5620 // This prototype is deprecated.
5621 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector __bool long long __b)5622 vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
5623   int __cc;
5624   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5625   return __cc <= 1;
5626 }
5627 
5628 // This prototype is deprecated.
5629 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector signed long long __b)5630 vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
5631   int __cc;
5632   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5633   return __cc <= 1;
5634 }
5635 
5636 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector unsigned long long __b)5637 vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
5638   int __cc;
5639   __builtin_s390_vchlgs(__a, __b, &__cc);
5640   return __cc <= 1;
5641 }
5642 
5643 // This prototype is deprecated.
5644 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector __bool long long __b)5645 vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
5646   int __cc;
5647   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5648   return __cc <= 1;
5649 }
5650 
5651 // This prototype is deprecated.
5652 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector unsigned long long __b)5653 vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
5654   int __cc;
5655   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5656   return __cc <= 1;
5657 }
5658 
5659 // This prototype is deprecated.
5660 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector __bool long long __b)5661 vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
5662   int __cc;
5663   __builtin_s390_vchlgs((__vector unsigned long long)__a,
5664                         (__vector unsigned long long)__b, &__cc);
5665   return __cc <= 1;
5666 }
5667 
5668 #if __ARCH__ >= 15
5669 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed __int128 __a,__vector signed __int128 __b)5670 vec_any_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
5671   int __cc;
5672   __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
5673   return __cc <= 1;
5674 }
5675 
5676 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)5677 vec_any_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5678   int __cc;
5679   __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5680   return __cc <= 1;
5681 }
5682 #endif
5683 
5684 #if __ARCH__ >= 12
5685 static inline __ATTRS_o_ai int
vec_any_gt(__vector float __a,__vector float __b)5686 vec_any_gt(__vector float __a, __vector float __b) {
5687   int __cc;
5688   __builtin_s390_vfchsbs(__a, __b, &__cc);
5689   return __cc <= 1;
5690 }
5691 #endif
5692 
5693 static inline __ATTRS_o_ai int
vec_any_gt(__vector double __a,__vector double __b)5694 vec_any_gt(__vector double __a, __vector double __b) {
5695   int __cc;
5696   __builtin_s390_vfchdbs(__a, __b, &__cc);
5697   return __cc <= 1;
5698 }
5699 
5700 /*-- vec_any_le -------------------------------------------------------------*/
5701 
5702 static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector signed char __b)5703 vec_any_le(__vector signed char __a, __vector signed char __b) {
5704   int __cc;
5705   __builtin_s390_vchbs(__a, __b, &__cc);
5706   return __cc != 0;
5707 }
5708 
5709 // This prototype is deprecated.
5710 static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector __bool char __b)5711 vec_any_le(__vector signed char __a, __vector __bool char __b) {
5712   int __cc;
5713   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5714   return __cc != 0;
5715 }
5716 
5717 // This prototype is deprecated.
5718 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector signed char __b)5719 vec_any_le(__vector __bool char __a, __vector signed char __b) {
5720   int __cc;
5721   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5722   return __cc != 0;
5723 }
5724 
5725 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector unsigned char __b)5726 vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
5727   int __cc;
5728   __builtin_s390_vchlbs(__a, __b, &__cc);
5729   return __cc != 0;
5730 }
5731 
5732 // This prototype is deprecated.
5733 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector __bool char __b)5734 vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
5735   int __cc;
5736   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5737   return __cc != 0;
5738 }
5739 
5740 // This prototype is deprecated.
5741 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector unsigned char __b)5742 vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
5743   int __cc;
5744   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5745   return __cc != 0;
5746 }
5747 
5748 // This prototype is deprecated.
5749 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector __bool char __b)5750 vec_any_le(__vector __bool char __a, __vector __bool char __b) {
5751   int __cc;
5752   __builtin_s390_vchlbs((__vector unsigned char)__a,
5753                         (__vector unsigned char)__b, &__cc);
5754   return __cc != 0;
5755 }
5756 
5757 static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector signed short __b)5758 vec_any_le(__vector signed short __a, __vector signed short __b) {
5759   int __cc;
5760   __builtin_s390_vchhs(__a, __b, &__cc);
5761   return __cc != 0;
5762 }
5763 
5764 // This prototype is deprecated.
5765 static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector __bool short __b)5766 vec_any_le(__vector signed short __a, __vector __bool short __b) {
5767   int __cc;
5768   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5769   return __cc != 0;
5770 }
5771 
5772 // This prototype is deprecated.
5773 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector signed short __b)5774 vec_any_le(__vector __bool short __a, __vector signed short __b) {
5775   int __cc;
5776   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5777   return __cc != 0;
5778 }
5779 
5780 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector unsigned short __b)5781 vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
5782   int __cc;
5783   __builtin_s390_vchlhs(__a, __b, &__cc);
5784   return __cc != 0;
5785 }
5786 
5787 // This prototype is deprecated.
5788 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector __bool short __b)5789 vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
5790   int __cc;
5791   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5792   return __cc != 0;
5793 }
5794 
5795 // This prototype is deprecated.
5796 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector unsigned short __b)5797 vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
5798   int __cc;
5799   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5800   return __cc != 0;
5801 }
5802 
5803 // This prototype is deprecated.
5804 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector __bool short __b)5805 vec_any_le(__vector __bool short __a, __vector __bool short __b) {
5806   int __cc;
5807   __builtin_s390_vchlhs((__vector unsigned short)__a,
5808                         (__vector unsigned short)__b, &__cc);
5809   return __cc != 0;
5810 }
5811 
5812 static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector signed int __b)5813 vec_any_le(__vector signed int __a, __vector signed int __b) {
5814   int __cc;
5815   __builtin_s390_vchfs(__a, __b, &__cc);
5816   return __cc != 0;
5817 }
5818 
5819 // This prototype is deprecated.
5820 static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector __bool int __b)5821 vec_any_le(__vector signed int __a, __vector __bool int __b) {
5822   int __cc;
5823   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5824   return __cc != 0;
5825 }
5826 
5827 // This prototype is deprecated.
5828 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector signed int __b)5829 vec_any_le(__vector __bool int __a, __vector signed int __b) {
5830   int __cc;
5831   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5832   return __cc != 0;
5833 }
5834 
5835 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector unsigned int __b)5836 vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
5837   int __cc;
5838   __builtin_s390_vchlfs(__a, __b, &__cc);
5839   return __cc != 0;
5840 }
5841 
5842 // This prototype is deprecated.
5843 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector __bool int __b)5844 vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
5845   int __cc;
5846   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5847   return __cc != 0;
5848 }
5849 
5850 // This prototype is deprecated.
5851 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector unsigned int __b)5852 vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
5853   int __cc;
5854   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5855   return __cc != 0;
5856 }
5857 
5858 // This prototype is deprecated.
5859 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector __bool int __b)5860 vec_any_le(__vector __bool int __a, __vector __bool int __b) {
5861   int __cc;
5862   __builtin_s390_vchlfs((__vector unsigned int)__a,
5863                         (__vector unsigned int)__b, &__cc);
5864   return __cc != 0;
5865 }
5866 
5867 static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector signed long long __b)5868 vec_any_le(__vector signed long long __a, __vector signed long long __b) {
5869   int __cc;
5870   __builtin_s390_vchgs(__a, __b, &__cc);
5871   return __cc != 0;
5872 }
5873 
5874 // This prototype is deprecated.
5875 static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector __bool long long __b)5876 vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
5877   int __cc;
5878   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5879   return __cc != 0;
5880 }
5881 
5882 // This prototype is deprecated.
5883 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector signed long long __b)5884 vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
5885   int __cc;
5886   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5887   return __cc != 0;
5888 }
5889 
5890 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector unsigned long long __b)5891 vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
5892   int __cc;
5893   __builtin_s390_vchlgs(__a, __b, &__cc);
5894   return __cc != 0;
5895 }
5896 
5897 // This prototype is deprecated.
5898 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector __bool long long __b)5899 vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
5900   int __cc;
5901   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5902   return __cc != 0;
5903 }
5904 
5905 // This prototype is deprecated.
5906 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector unsigned long long __b)5907 vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
5908   int __cc;
5909   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5910   return __cc != 0;
5911 }
5912 
5913 // This prototype is deprecated.
5914 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector __bool long long __b)5915 vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
5916   int __cc;
5917   __builtin_s390_vchlgs((__vector unsigned long long)__a,
5918                         (__vector unsigned long long)__b, &__cc);
5919   return __cc != 0;
5920 }
5921 
5922 #if __ARCH__ >= 15
5923 static inline __ATTRS_o_ai int
vec_any_le(__vector signed __int128 __a,__vector signed __int128 __b)5924 vec_any_le(__vector signed __int128 __a, __vector signed __int128 __b) {
5925   int __cc;
5926   __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
5927   return __cc != 0;
5928 }
5929 
5930 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned __int128 __a,__vector unsigned __int128 __b)5931 vec_any_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5932   int __cc;
5933   __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5934   return __cc != 0;
5935 }
5936 #endif
5937 
5938 #if __ARCH__ >= 12
5939 static inline __ATTRS_o_ai int
vec_any_le(__vector float __a,__vector float __b)5940 vec_any_le(__vector float __a, __vector float __b) {
5941   int __cc;
5942   __builtin_s390_vfchesbs(__b, __a, &__cc);
5943   return __cc <= 1;
5944 }
5945 #endif
5946 
5947 static inline __ATTRS_o_ai int
vec_any_le(__vector double __a,__vector double __b)5948 vec_any_le(__vector double __a, __vector double __b) {
5949   int __cc;
5950   __builtin_s390_vfchedbs(__b, __a, &__cc);
5951   return __cc <= 1;
5952 }
5953 
5954 /*-- vec_any_lt -------------------------------------------------------------*/
5955 
5956 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector signed char __b)5957 vec_any_lt(__vector signed char __a, __vector signed char __b) {
5958   int __cc;
5959   __builtin_s390_vchbs(__b, __a, &__cc);
5960   return __cc <= 1;
5961 }
5962 
5963 // This prototype is deprecated.
5964 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector __bool char __b)5965 vec_any_lt(__vector signed char __a, __vector __bool char __b) {
5966   int __cc;
5967   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5968   return __cc <= 1;
5969 }
5970 
5971 // This prototype is deprecated.
5972 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector signed char __b)5973 vec_any_lt(__vector __bool char __a, __vector signed char __b) {
5974   int __cc;
5975   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5976   return __cc <= 1;
5977 }
5978 
5979 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector unsigned char __b)5980 vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
5981   int __cc;
5982   __builtin_s390_vchlbs(__b, __a, &__cc);
5983   return __cc <= 1;
5984 }
5985 
5986 // This prototype is deprecated.
5987 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector __bool char __b)5988 vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
5989   int __cc;
5990   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5991   return __cc <= 1;
5992 }
5993 
5994 // This prototype is deprecated.
5995 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector unsigned char __b)5996 vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
5997   int __cc;
5998   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5999   return __cc <= 1;
6000 }
6001 
6002 // This prototype is deprecated.
6003 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector __bool char __b)6004 vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
6005   int __cc;
6006   __builtin_s390_vchlbs((__vector unsigned char)__b,
6007                         (__vector unsigned char)__a, &__cc);
6008   return __cc <= 1;
6009 }
6010 
6011 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector signed short __b)6012 vec_any_lt(__vector signed short __a, __vector signed short __b) {
6013   int __cc;
6014   __builtin_s390_vchhs(__b, __a, &__cc);
6015   return __cc <= 1;
6016 }
6017 
6018 // This prototype is deprecated.
6019 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector __bool short __b)6020 vec_any_lt(__vector signed short __a, __vector __bool short __b) {
6021   int __cc;
6022   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
6023   return __cc <= 1;
6024 }
6025 
6026 // This prototype is deprecated.
6027 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector signed short __b)6028 vec_any_lt(__vector __bool short __a, __vector signed short __b) {
6029   int __cc;
6030   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
6031   return __cc <= 1;
6032 }
6033 
6034 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector unsigned short __b)6035 vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
6036   int __cc;
6037   __builtin_s390_vchlhs(__b, __a, &__cc);
6038   return __cc <= 1;
6039 }
6040 
6041 // This prototype is deprecated.
6042 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector __bool short __b)6043 vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
6044   int __cc;
6045   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
6046   return __cc <= 1;
6047 }
6048 
6049 // This prototype is deprecated.
6050 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector unsigned short __b)6051 vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
6052   int __cc;
6053   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
6054   return __cc <= 1;
6055 }
6056 
6057 // This prototype is deprecated.
6058 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector __bool short __b)6059 vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
6060   int __cc;
6061   __builtin_s390_vchlhs((__vector unsigned short)__b,
6062                         (__vector unsigned short)__a, &__cc);
6063   return __cc <= 1;
6064 }
6065 
6066 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector signed int __b)6067 vec_any_lt(__vector signed int __a, __vector signed int __b) {
6068   int __cc;
6069   __builtin_s390_vchfs(__b, __a, &__cc);
6070   return __cc <= 1;
6071 }
6072 
6073 // This prototype is deprecated.
6074 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector __bool int __b)6075 vec_any_lt(__vector signed int __a, __vector __bool int __b) {
6076   int __cc;
6077   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
6078   return __cc <= 1;
6079 }
6080 
6081 // This prototype is deprecated.
6082 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector signed int __b)6083 vec_any_lt(__vector __bool int __a, __vector signed int __b) {
6084   int __cc;
6085   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
6086   return __cc <= 1;
6087 }
6088 
6089 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector unsigned int __b)6090 vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
6091   int __cc;
6092   __builtin_s390_vchlfs(__b, __a, &__cc);
6093   return __cc <= 1;
6094 }
6095 
6096 // This prototype is deprecated.
6097 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector __bool int __b)6098 vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
6099   int __cc;
6100   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
6101   return __cc <= 1;
6102 }
6103 
6104 // This prototype is deprecated.
6105 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector unsigned int __b)6106 vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
6107   int __cc;
6108   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
6109   return __cc <= 1;
6110 }
6111 
6112 // This prototype is deprecated.
6113 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector __bool int __b)6114 vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
6115   int __cc;
6116   __builtin_s390_vchlfs((__vector unsigned int)__b,
6117                         (__vector unsigned int)__a, &__cc);
6118   return __cc <= 1;
6119 }
6120 
6121 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector signed long long __b)6122 vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
6123   int __cc;
6124   __builtin_s390_vchgs(__b, __a, &__cc);
6125   return __cc <= 1;
6126 }
6127 
6128 // This prototype is deprecated.
6129 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector __bool long long __b)6130 vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
6131   int __cc;
6132   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
6133   return __cc <= 1;
6134 }
6135 
6136 // This prototype is deprecated.
6137 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector signed long long __b)6138 vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
6139   int __cc;
6140   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
6141   return __cc <= 1;
6142 }
6143 
6144 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector unsigned long long __b)6145 vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
6146   int __cc;
6147   __builtin_s390_vchlgs(__b, __a, &__cc);
6148   return __cc <= 1;
6149 }
6150 
6151 // This prototype is deprecated.
6152 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector __bool long long __b)6153 vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
6154   int __cc;
6155   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
6156   return __cc <= 1;
6157 }
6158 
6159 // This prototype is deprecated.
6160 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector unsigned long long __b)6161 vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
6162   int __cc;
6163   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
6164   return __cc <= 1;
6165 }
6166 
6167 // This prototype is deprecated.
6168 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector __bool long long __b)6169 vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
6170   int __cc;
6171   __builtin_s390_vchlgs((__vector unsigned long long)__b,
6172                         (__vector unsigned long long)__a, &__cc);
6173   return __cc <= 1;
6174 }
6175 
6176 #if __ARCH__ >= 15
6177 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed __int128 __a,__vector signed __int128 __b)6178 vec_any_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
6179   int __cc;
6180   __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
6181   return __cc <= 1;
6182 }
6183 
6184 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)6185 vec_any_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6186   int __cc;
6187   __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
6188   return __cc <= 1;
6189 }
6190 #endif
6191 
6192 #if __ARCH__ >= 12
6193 static inline __ATTRS_o_ai int
vec_any_lt(__vector float __a,__vector float __b)6194 vec_any_lt(__vector float __a, __vector float __b) {
6195   int __cc;
6196   __builtin_s390_vfchsbs(__b, __a, &__cc);
6197   return __cc <= 1;
6198 }
6199 #endif
6200 
6201 static inline __ATTRS_o_ai int
vec_any_lt(__vector double __a,__vector double __b)6202 vec_any_lt(__vector double __a, __vector double __b) {
6203   int __cc;
6204   __builtin_s390_vfchdbs(__b, __a, &__cc);
6205   return __cc <= 1;
6206 }
6207 
6208 /*-- vec_any_nge ------------------------------------------------------------*/
6209 
6210 #if __ARCH__ >= 12
6211 static inline __ATTRS_o_ai int
vec_any_nge(__vector float __a,__vector float __b)6212 vec_any_nge(__vector float __a, __vector float __b) {
6213   int __cc;
6214   __builtin_s390_vfchesbs(__a, __b, &__cc);
6215   return __cc != 0;
6216 }
6217 #endif
6218 
6219 static inline __ATTRS_o_ai int
vec_any_nge(__vector double __a,__vector double __b)6220 vec_any_nge(__vector double __a, __vector double __b) {
6221   int __cc;
6222   __builtin_s390_vfchedbs(__a, __b, &__cc);
6223   return __cc != 0;
6224 }
6225 
6226 /*-- vec_any_ngt ------------------------------------------------------------*/
6227 
6228 #if __ARCH__ >= 12
6229 static inline __ATTRS_o_ai int
vec_any_ngt(__vector float __a,__vector float __b)6230 vec_any_ngt(__vector float __a, __vector float __b) {
6231   int __cc;
6232   __builtin_s390_vfchsbs(__a, __b, &__cc);
6233   return __cc != 0;
6234 }
6235 #endif
6236 
6237 static inline __ATTRS_o_ai int
vec_any_ngt(__vector double __a,__vector double __b)6238 vec_any_ngt(__vector double __a, __vector double __b) {
6239   int __cc;
6240   __builtin_s390_vfchdbs(__a, __b, &__cc);
6241   return __cc != 0;
6242 }
6243 
6244 /*-- vec_any_nle ------------------------------------------------------------*/
6245 
6246 #if __ARCH__ >= 12
6247 static inline __ATTRS_o_ai int
vec_any_nle(__vector float __a,__vector float __b)6248 vec_any_nle(__vector float __a, __vector float __b) {
6249   int __cc;
6250   __builtin_s390_vfchesbs(__b, __a, &__cc);
6251   return __cc != 0;
6252 }
6253 #endif
6254 
6255 static inline __ATTRS_o_ai int
vec_any_nle(__vector double __a,__vector double __b)6256 vec_any_nle(__vector double __a, __vector double __b) {
6257   int __cc;
6258   __builtin_s390_vfchedbs(__b, __a, &__cc);
6259   return __cc != 0;
6260 }
6261 
6262 /*-- vec_any_nlt ------------------------------------------------------------*/
6263 
6264 #if __ARCH__ >= 12
6265 static inline __ATTRS_o_ai int
vec_any_nlt(__vector float __a,__vector float __b)6266 vec_any_nlt(__vector float __a, __vector float __b) {
6267   int __cc;
6268   __builtin_s390_vfchsbs(__b, __a, &__cc);
6269   return __cc != 0;
6270 }
6271 #endif
6272 
6273 static inline __ATTRS_o_ai int
vec_any_nlt(__vector double __a,__vector double __b)6274 vec_any_nlt(__vector double __a, __vector double __b) {
6275   int __cc;
6276   __builtin_s390_vfchdbs(__b, __a, &__cc);
6277   return __cc != 0;
6278 }
6279 
6280 /*-- vec_any_nan ------------------------------------------------------------*/
6281 
6282 #if __ARCH__ >= 12
6283 static inline __ATTRS_o_ai int
vec_any_nan(__vector float __a)6284 vec_any_nan(__vector float __a) {
6285   int __cc;
6286   __builtin_s390_vftcisb(__a, 15, &__cc);
6287   return __cc != 3;
6288 }
6289 #endif
6290 
6291 static inline __ATTRS_o_ai int
vec_any_nan(__vector double __a)6292 vec_any_nan(__vector double __a) {
6293   int __cc;
6294   __builtin_s390_vftcidb(__a, 15, &__cc);
6295   return __cc != 3;
6296 }
6297 
6298 /*-- vec_any_numeric --------------------------------------------------------*/
6299 
6300 #if __ARCH__ >= 12
6301 static inline __ATTRS_o_ai int
vec_any_numeric(__vector float __a)6302 vec_any_numeric(__vector float __a) {
6303   int __cc;
6304   __builtin_s390_vftcisb(__a, 15, &__cc);
6305   return __cc != 0;
6306 }
6307 #endif
6308 
6309 static inline __ATTRS_o_ai int
vec_any_numeric(__vector double __a)6310 vec_any_numeric(__vector double __a) {
6311   int __cc;
6312   __builtin_s390_vftcidb(__a, 15, &__cc);
6313   return __cc != 0;
6314 }
6315 
6316 /*-- vec_blend --------------------------------------------------------------*/
6317 
6318 #if __ARCH__ >= 15
6319 static inline __ATTRS_o_ai __vector signed char
vec_blend(__vector signed char __a,__vector signed char __b,__vector signed char __c)6320 vec_blend(__vector signed char __a, __vector signed char __b,
6321           __vector signed char __c) {
6322   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6323 }
6324 
6325 static inline __ATTRS_o_ai __vector __bool char
vec_blend(__vector __bool char __a,__vector __bool char __b,__vector signed char __c)6326 vec_blend(__vector __bool char __a, __vector __bool char __b,
6327           __vector signed char __c) {
6328   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6329 }
6330 
6331 static inline __ATTRS_o_ai __vector unsigned char
vec_blend(__vector unsigned char __a,__vector unsigned char __b,__vector signed char __c)6332 vec_blend(__vector unsigned char __a, __vector unsigned char __b,
6333           __vector signed char __c) {
6334   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6335 }
6336 
6337 static inline __ATTRS_o_ai __vector signed short
vec_blend(__vector signed short __a,__vector signed short __b,__vector signed short __c)6338 vec_blend(__vector signed short __a, __vector signed short __b,
6339           __vector signed short __c) {
6340   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6341 }
6342 
6343 static inline __ATTRS_o_ai __vector __bool short
vec_blend(__vector __bool short __a,__vector __bool short __b,__vector signed short __c)6344 vec_blend(__vector __bool short __a, __vector __bool short __b,
6345           __vector signed short __c) {
6346   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6347 }
6348 
6349 static inline __ATTRS_o_ai __vector unsigned short
vec_blend(__vector unsigned short __a,__vector unsigned short __b,__vector signed short __c)6350 vec_blend(__vector unsigned short __a, __vector unsigned short __b,
6351           __vector signed short __c) {
6352   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6353 }
6354 
6355 static inline __ATTRS_o_ai __vector signed int
vec_blend(__vector signed int __a,__vector signed int __b,__vector signed int __c)6356 vec_blend(__vector signed int __a, __vector signed int __b,
6357           __vector signed int __c) {
6358   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6359 }
6360 
6361 static inline __ATTRS_o_ai __vector __bool int
vec_blend(__vector __bool int __a,__vector __bool int __b,__vector signed int __c)6362 vec_blend(__vector __bool int __a, __vector __bool int __b,
6363           __vector signed int __c) {
6364   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6365 }
6366 
6367 static inline __ATTRS_o_ai __vector unsigned int
vec_blend(__vector unsigned int __a,__vector unsigned int __b,__vector signed int __c)6368 vec_blend(__vector unsigned int __a, __vector unsigned int __b,
6369           __vector signed int __c) {
6370   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6371 }
6372 
6373 static inline __ATTRS_o_ai __vector signed long long
vec_blend(__vector signed long long __a,__vector signed long long __b,__vector signed long long __c)6374 vec_blend(__vector signed long long __a, __vector signed long long __b,
6375           __vector signed long long __c) {
6376   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6377 }
6378 
6379 static inline __ATTRS_o_ai __vector __bool long long
vec_blend(__vector __bool long long __a,__vector __bool long long __b,__vector signed long long __c)6380 vec_blend(__vector __bool long long __a, __vector __bool long long __b,
6381           __vector signed long long __c) {
6382   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6383 }
6384 
6385 static inline __ATTRS_o_ai __vector unsigned long long
vec_blend(__vector unsigned long long __a,__vector unsigned long long __b,__vector signed long long __c)6386 vec_blend(__vector unsigned long long __a, __vector unsigned long long __b,
6387           __vector signed long long __c) {
6388   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6389 }
6390 
6391 static inline __ATTRS_o_ai __vector signed __int128
vec_blend(__vector signed __int128 __a,__vector signed __int128 __b,__vector signed __int128 __c)6392 vec_blend(__vector signed __int128 __a, __vector signed __int128 __b,
6393           __vector signed __int128 __c) {
6394   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6395 }
6396 
6397 static inline __ATTRS_o_ai __vector __bool __int128
vec_blend(__vector __bool __int128 __a,__vector __bool __int128 __b,__vector signed __int128 __c)6398 vec_blend(__vector __bool __int128 __a, __vector __bool __int128 __b,
6399           __vector signed __int128 __c) {
6400   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6401 }
6402 
6403 static inline __ATTRS_o_ai __vector unsigned __int128
vec_blend(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector signed __int128 __c)6404 vec_blend(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
6405           __vector signed __int128 __c) {
6406   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6407 }
6408 
6409 static inline __ATTRS_o_ai __vector float
vec_blend(__vector float __a,__vector float __b,__vector signed int __c)6410 vec_blend(__vector float __a, __vector float __b,
6411           __vector signed int __c) {
6412   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6413 }
6414 
6415 static inline __ATTRS_o_ai __vector double
vec_blend(__vector double __a,__vector double __b,__vector signed long long __c)6416 vec_blend(__vector double __a, __vector double __b,
6417           __vector signed long long __c) {
6418   return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6419 }
6420 #endif
6421 
6422 /*-- vec_and ---------------------------------------------------------------*/
6423 
6424 static inline __ATTRS_o_ai __vector __bool char
vec_and(__vector __bool char __a,__vector __bool char __b)6425 vec_and(__vector __bool char __a, __vector __bool char __b) {
6426   return __a & __b;
6427 }
6428 
6429 static inline __ATTRS_o_ai __vector signed char
vec_and(__vector signed char __a,__vector signed char __b)6430 vec_and(__vector signed char __a, __vector signed char __b) {
6431   return __a & __b;
6432 }
6433 
6434 static inline __ATTRS_o_ai __vector unsigned char
vec_and(__vector unsigned char __a,__vector unsigned char __b)6435 vec_and(__vector unsigned char __a, __vector unsigned char __b) {
6436   return __a & __b;
6437 }
6438 
6439 static inline __ATTRS_o_ai __vector __bool short
vec_and(__vector __bool short __a,__vector __bool short __b)6440 vec_and(__vector __bool short __a, __vector __bool short __b) {
6441   return __a & __b;
6442 }
6443 
6444 static inline __ATTRS_o_ai __vector signed short
vec_and(__vector signed short __a,__vector signed short __b)6445 vec_and(__vector signed short __a, __vector signed short __b) {
6446   return __a & __b;
6447 }
6448 
6449 static inline __ATTRS_o_ai __vector unsigned short
vec_and(__vector unsigned short __a,__vector unsigned short __b)6450 vec_and(__vector unsigned short __a, __vector unsigned short __b) {
6451   return __a & __b;
6452 }
6453 
6454 static inline __ATTRS_o_ai __vector __bool int
vec_and(__vector __bool int __a,__vector __bool int __b)6455 vec_and(__vector __bool int __a, __vector __bool int __b) {
6456   return __a & __b;
6457 }
6458 
6459 static inline __ATTRS_o_ai __vector signed int
vec_and(__vector signed int __a,__vector signed int __b)6460 vec_and(__vector signed int __a, __vector signed int __b) {
6461   return __a & __b;
6462 }
6463 
6464 static inline __ATTRS_o_ai __vector unsigned int
vec_and(__vector unsigned int __a,__vector unsigned int __b)6465 vec_and(__vector unsigned int __a, __vector unsigned int __b) {
6466   return __a & __b;
6467 }
6468 
6469 static inline __ATTRS_o_ai __vector __bool long long
vec_and(__vector __bool long long __a,__vector __bool long long __b)6470 vec_and(__vector __bool long long __a, __vector __bool long long __b) {
6471   return __a & __b;
6472 }
6473 
6474 static inline __ATTRS_o_ai __vector signed long long
vec_and(__vector signed long long __a,__vector signed long long __b)6475 vec_and(__vector signed long long __a, __vector signed long long __b) {
6476   return __a & __b;
6477 }
6478 
6479 static inline __ATTRS_o_ai __vector unsigned long long
vec_and(__vector unsigned long long __a,__vector unsigned long long __b)6480 vec_and(__vector unsigned long long __a, __vector unsigned long long __b) {
6481   return __a & __b;
6482 }
6483 
6484 static inline __ATTRS_o_ai __vector __bool __int128
vec_and(__vector __bool __int128 __a,__vector __bool __int128 __b)6485 vec_and(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6486   return __a & __b;
6487 }
6488 
6489 static inline __ATTRS_o_ai __vector signed __int128
vec_and(__vector signed __int128 __a,__vector signed __int128 __b)6490 vec_and(__vector signed __int128 __a, __vector signed __int128 __b) {
6491   return __a & __b;
6492 }
6493 
6494 static inline __ATTRS_o_ai __vector unsigned __int128
vec_and(__vector unsigned __int128 __a,__vector unsigned __int128 __b)6495 vec_and(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6496   return __a & __b;
6497 }
6498 
6499 #if __ARCH__ >= 12
6500 static inline __ATTRS_o_ai __vector float
vec_and(__vector float __a,__vector float __b)6501 vec_and(__vector float __a, __vector float __b) {
6502   return (__vector float)((__vector unsigned int)__a &
6503                           (__vector unsigned int)__b);
6504 }
6505 #endif
6506 
6507 static inline __ATTRS_o_ai __vector double
vec_and(__vector double __a,__vector double __b)6508 vec_and(__vector double __a, __vector double __b) {
6509   return (__vector double)((__vector unsigned long long)__a &
6510                            (__vector unsigned long long)__b);
6511 }
6512 
6513 /*-- vec_or ----------------------------------------------------------------*/
6514 
6515 static inline __ATTRS_o_ai __vector __bool char
vec_or(__vector __bool char __a,__vector __bool char __b)6516 vec_or(__vector __bool char __a, __vector __bool char __b) {
6517   return __a | __b;
6518 }
6519 
6520 static inline __ATTRS_o_ai __vector signed char
vec_or(__vector signed char __a,__vector signed char __b)6521 vec_or(__vector signed char __a, __vector signed char __b) {
6522   return __a | __b;
6523 }
6524 
6525 static inline __ATTRS_o_ai __vector unsigned char
vec_or(__vector unsigned char __a,__vector unsigned char __b)6526 vec_or(__vector unsigned char __a, __vector unsigned char __b) {
6527   return __a | __b;
6528 }
6529 
6530 static inline __ATTRS_o_ai __vector __bool short
vec_or(__vector __bool short __a,__vector __bool short __b)6531 vec_or(__vector __bool short __a, __vector __bool short __b) {
6532   return __a | __b;
6533 }
6534 
6535 static inline __ATTRS_o_ai __vector signed short
vec_or(__vector signed short __a,__vector signed short __b)6536 vec_or(__vector signed short __a, __vector signed short __b) {
6537   return __a | __b;
6538 }
6539 
6540 static inline __ATTRS_o_ai __vector unsigned short
vec_or(__vector unsigned short __a,__vector unsigned short __b)6541 vec_or(__vector unsigned short __a, __vector unsigned short __b) {
6542   return __a | __b;
6543 }
6544 
6545 static inline __ATTRS_o_ai __vector __bool int
vec_or(__vector __bool int __a,__vector __bool int __b)6546 vec_or(__vector __bool int __a, __vector __bool int __b) {
6547   return __a | __b;
6548 }
6549 
6550 static inline __ATTRS_o_ai __vector signed int
vec_or(__vector signed int __a,__vector signed int __b)6551 vec_or(__vector signed int __a, __vector signed int __b) {
6552   return __a | __b;
6553 }
6554 
6555 static inline __ATTRS_o_ai __vector unsigned int
vec_or(__vector unsigned int __a,__vector unsigned int __b)6556 vec_or(__vector unsigned int __a, __vector unsigned int __b) {
6557   return __a | __b;
6558 }
6559 
6560 static inline __ATTRS_o_ai __vector __bool long long
vec_or(__vector __bool long long __a,__vector __bool long long __b)6561 vec_or(__vector __bool long long __a, __vector __bool long long __b) {
6562   return __a | __b;
6563 }
6564 
6565 static inline __ATTRS_o_ai __vector signed long long
vec_or(__vector signed long long __a,__vector signed long long __b)6566 vec_or(__vector signed long long __a, __vector signed long long __b) {
6567   return __a | __b;
6568 }
6569 
6570 static inline __ATTRS_o_ai __vector unsigned long long
vec_or(__vector unsigned long long __a,__vector unsigned long long __b)6571 vec_or(__vector unsigned long long __a, __vector unsigned long long __b) {
6572   return __a | __b;
6573 }
6574 
6575 static inline __ATTRS_o_ai __vector __bool __int128
vec_or(__vector __bool __int128 __a,__vector __bool __int128 __b)6576 vec_or(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6577   return __a | __b;
6578 }
6579 
6580 static inline __ATTRS_o_ai __vector signed __int128
vec_or(__vector signed __int128 __a,__vector signed __int128 __b)6581 vec_or(__vector signed __int128 __a, __vector signed __int128 __b) {
6582   return __a | __b;
6583 }
6584 
6585 static inline __ATTRS_o_ai __vector unsigned __int128
vec_or(__vector unsigned __int128 __a,__vector unsigned __int128 __b)6586 vec_or(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6587   return __a | __b;
6588 }
6589 
6590 #if __ARCH__ >= 12
6591 static inline __ATTRS_o_ai __vector float
vec_or(__vector float __a,__vector float __b)6592 vec_or(__vector float __a, __vector float __b) {
6593   return (__vector float)((__vector unsigned int)__a |
6594                           (__vector unsigned int)__b);
6595 }
6596 #endif
6597 
6598 static inline __ATTRS_o_ai __vector double
vec_or(__vector double __a,__vector double __b)6599 vec_or(__vector double __a, __vector double __b) {
6600   return (__vector double)((__vector unsigned long long)__a |
6601                            (__vector unsigned long long)__b);
6602 }
6603 
6604 /*-- vec_xor ----------------------------------------------------------------*/
6605 
6606 static inline __ATTRS_o_ai __vector __bool char
vec_xor(__vector __bool char __a,__vector __bool char __b)6607 vec_xor(__vector __bool char __a, __vector __bool char __b) {
6608   return __a ^ __b;
6609 }
6610 
6611 static inline __ATTRS_o_ai __vector signed char
vec_xor(__vector signed char __a,__vector signed char __b)6612 vec_xor(__vector signed char __a, __vector signed char __b) {
6613   return __a ^ __b;
6614 }
6615 
6616 static inline __ATTRS_o_ai __vector unsigned char
vec_xor(__vector unsigned char __a,__vector unsigned char __b)6617 vec_xor(__vector unsigned char __a, __vector unsigned char __b) {
6618   return __a ^ __b;
6619 }
6620 
6621 static inline __ATTRS_o_ai __vector __bool short
vec_xor(__vector __bool short __a,__vector __bool short __b)6622 vec_xor(__vector __bool short __a, __vector __bool short __b) {
6623   return __a ^ __b;
6624 }
6625 
6626 static inline __ATTRS_o_ai __vector signed short
vec_xor(__vector signed short __a,__vector signed short __b)6627 vec_xor(__vector signed short __a, __vector signed short __b) {
6628   return __a ^ __b;
6629 }
6630 
6631 static inline __ATTRS_o_ai __vector unsigned short
vec_xor(__vector unsigned short __a,__vector unsigned short __b)6632 vec_xor(__vector unsigned short __a, __vector unsigned short __b) {
6633   return __a ^ __b;
6634 }
6635 
6636 static inline __ATTRS_o_ai __vector __bool int
vec_xor(__vector __bool int __a,__vector __bool int __b)6637 vec_xor(__vector __bool int __a, __vector __bool int __b) {
6638   return __a ^ __b;
6639 }
6640 
6641 static inline __ATTRS_o_ai __vector signed int
vec_xor(__vector signed int __a,__vector signed int __b)6642 vec_xor(__vector signed int __a, __vector signed int __b) {
6643   return __a ^ __b;
6644 }
6645 
6646 static inline __ATTRS_o_ai __vector unsigned int
vec_xor(__vector unsigned int __a,__vector unsigned int __b)6647 vec_xor(__vector unsigned int __a, __vector unsigned int __b) {
6648   return __a ^ __b;
6649 }
6650 
6651 static inline __ATTRS_o_ai __vector __bool long long
vec_xor(__vector __bool long long __a,__vector __bool long long __b)6652 vec_xor(__vector __bool long long __a, __vector __bool long long __b) {
6653   return __a ^ __b;
6654 }
6655 
6656 static inline __ATTRS_o_ai __vector signed long long
vec_xor(__vector signed long long __a,__vector signed long long __b)6657 vec_xor(__vector signed long long __a, __vector signed long long __b) {
6658   return __a ^ __b;
6659 }
6660 
6661 static inline __ATTRS_o_ai __vector unsigned long long
vec_xor(__vector unsigned long long __a,__vector unsigned long long __b)6662 vec_xor(__vector unsigned long long __a, __vector unsigned long long __b) {
6663   return __a ^ __b;
6664 }
6665 
6666 static inline __ATTRS_o_ai __vector __bool __int128
vec_xor(__vector __bool __int128 __a,__vector __bool __int128 __b)6667 vec_xor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6668   return __a ^ __b;
6669 }
6670 
6671 static inline __ATTRS_o_ai __vector signed __int128
vec_xor(__vector signed __int128 __a,__vector signed __int128 __b)6672 vec_xor(__vector signed __int128 __a, __vector signed __int128 __b) {
6673   return __a ^ __b;
6674 }
6675 
6676 static inline __ATTRS_o_ai __vector unsigned __int128
vec_xor(__vector unsigned __int128 __a,__vector unsigned __int128 __b)6677 vec_xor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6678   return __a ^ __b;
6679 }
6680 
6681 #if __ARCH__ >= 12
6682 static inline __ATTRS_o_ai __vector float
vec_xor(__vector float __a,__vector float __b)6683 vec_xor(__vector float __a, __vector float __b) {
6684   return (__vector float)((__vector unsigned int)__a ^
6685                           (__vector unsigned int)__b);
6686 }
6687 #endif
6688 
6689 static inline __ATTRS_o_ai __vector double
vec_xor(__vector double __a,__vector double __b)6690 vec_xor(__vector double __a, __vector double __b) {
6691   return (__vector double)((__vector unsigned long long)__a ^
6692                            (__vector unsigned long long)__b);
6693 }
6694 
6695 /*-- vec_andc ---------------------------------------------------------------*/
6696 
6697 static inline __ATTRS_o_ai __vector __bool char
vec_andc(__vector __bool char __a,__vector __bool char __b)6698 vec_andc(__vector __bool char __a, __vector __bool char __b) {
6699   return __a & ~__b;
6700 }
6701 
6702 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector signed char __b)6703 vec_andc(__vector signed char __a, __vector signed char __b) {
6704   return __a & ~__b;
6705 }
6706 
6707 // This prototype is deprecated.
6708 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector __bool char __a,__vector signed char __b)6709 vec_andc(__vector __bool char __a, __vector signed char __b) {
6710   return __a & ~__b;
6711 }
6712 
6713 // This prototype is deprecated.
6714 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector __bool char __b)6715 vec_andc(__vector signed char __a, __vector __bool char __b) {
6716   return __a & ~__b;
6717 }
6718 
6719 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector unsigned char __b)6720 vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
6721   return __a & ~__b;
6722 }
6723 
6724 // This prototype is deprecated.
6725 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector __bool char __a,__vector unsigned char __b)6726 vec_andc(__vector __bool char __a, __vector unsigned char __b) {
6727   return __a & ~__b;
6728 }
6729 
6730 // This prototype is deprecated.
6731 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector __bool char __b)6732 vec_andc(__vector unsigned char __a, __vector __bool char __b) {
6733   return __a & ~__b;
6734 }
6735 
6736 static inline __ATTRS_o_ai __vector __bool short
vec_andc(__vector __bool short __a,__vector __bool short __b)6737 vec_andc(__vector __bool short __a, __vector __bool short __b) {
6738   return __a & ~__b;
6739 }
6740 
6741 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector signed short __b)6742 vec_andc(__vector signed short __a, __vector signed short __b) {
6743   return __a & ~__b;
6744 }
6745 
6746 // This prototype is deprecated.
6747 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector __bool short __a,__vector signed short __b)6748 vec_andc(__vector __bool short __a, __vector signed short __b) {
6749   return __a & ~__b;
6750 }
6751 
6752 // This prototype is deprecated.
6753 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector __bool short __b)6754 vec_andc(__vector signed short __a, __vector __bool short __b) {
6755   return __a & ~__b;
6756 }
6757 
6758 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector unsigned short __b)6759 vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
6760   return __a & ~__b;
6761 }
6762 
6763 // This prototype is deprecated.
6764 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector __bool short __a,__vector unsigned short __b)6765 vec_andc(__vector __bool short __a, __vector unsigned short __b) {
6766   return __a & ~__b;
6767 }
6768 
6769 // This prototype is deprecated.
6770 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector __bool short __b)6771 vec_andc(__vector unsigned short __a, __vector __bool short __b) {
6772   return __a & ~__b;
6773 }
6774 
6775 static inline __ATTRS_o_ai __vector __bool int
vec_andc(__vector __bool int __a,__vector __bool int __b)6776 vec_andc(__vector __bool int __a, __vector __bool int __b) {
6777   return __a & ~__b;
6778 }
6779 
6780 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector signed int __b)6781 vec_andc(__vector signed int __a, __vector signed int __b) {
6782   return __a & ~__b;
6783 }
6784 
6785 // This prototype is deprecated.
6786 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector __bool int __a,__vector signed int __b)6787 vec_andc(__vector __bool int __a, __vector signed int __b) {
6788   return __a & ~__b;
6789 }
6790 
6791 // This prototype is deprecated.
6792 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector __bool int __b)6793 vec_andc(__vector signed int __a, __vector __bool int __b) {
6794   return __a & ~__b;
6795 }
6796 
6797 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector unsigned int __b)6798 vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
6799   return __a & ~__b;
6800 }
6801 
6802 // This prototype is deprecated.
6803 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector __bool int __a,__vector unsigned int __b)6804 vec_andc(__vector __bool int __a, __vector unsigned int __b) {
6805   return __a & ~__b;
6806 }
6807 
6808 // This prototype is deprecated.
6809 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector __bool int __b)6810 vec_andc(__vector unsigned int __a, __vector __bool int __b) {
6811   return __a & ~__b;
6812 }
6813 
6814 static inline __ATTRS_o_ai __vector __bool long long
vec_andc(__vector __bool long long __a,__vector __bool long long __b)6815 vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
6816   return __a & ~__b;
6817 }
6818 
6819 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector signed long long __b)6820 vec_andc(__vector signed long long __a, __vector signed long long __b) {
6821   return __a & ~__b;
6822 }
6823 
6824 // This prototype is deprecated.
6825 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector __bool long long __a,__vector signed long long __b)6826 vec_andc(__vector __bool long long __a, __vector signed long long __b) {
6827   return __a & ~__b;
6828 }
6829 
6830 // This prototype is deprecated.
6831 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector __bool long long __b)6832 vec_andc(__vector signed long long __a, __vector __bool long long __b) {
6833   return __a & ~__b;
6834 }
6835 
6836 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector unsigned long long __b)6837 vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
6838   return __a & ~__b;
6839 }
6840 
6841 // This prototype is deprecated.
6842 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector __bool long long __a,__vector unsigned long long __b)6843 vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
6844   return __a & ~__b;
6845 }
6846 
6847 // This prototype is deprecated.
6848 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector __bool long long __b)6849 vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
6850   return __a & ~__b;
6851 }
6852 
6853 static inline __ATTRS_o_ai __vector __bool __int128
vec_andc(__vector __bool __int128 __a,__vector __bool __int128 __b)6854 vec_andc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6855   return __a & ~__b;
6856 }
6857 
6858 static inline __ATTRS_o_ai __vector signed __int128
vec_andc(__vector signed __int128 __a,__vector signed __int128 __b)6859 vec_andc(__vector signed __int128 __a, __vector signed __int128 __b) {
6860   return __a & ~__b;
6861 }
6862 
6863 static inline __ATTRS_o_ai __vector unsigned __int128
vec_andc(__vector unsigned __int128 __a,__vector unsigned __int128 __b)6864 vec_andc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6865   return __a & ~__b;
6866 }
6867 
6868 #if __ARCH__ >= 12
6869 static inline __ATTRS_o_ai __vector float
vec_andc(__vector float __a,__vector float __b)6870 vec_andc(__vector float __a, __vector float __b) {
6871   return (__vector float)((__vector unsigned int)__a &
6872                          ~(__vector unsigned int)__b);
6873 }
6874 #endif
6875 
6876 static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector double __b)6877 vec_andc(__vector double __a, __vector double __b) {
6878   return (__vector double)((__vector unsigned long long)__a &
6879                          ~(__vector unsigned long long)__b);
6880 }
6881 
6882 // This prototype is deprecated.
6883 static inline __ATTRS_o_ai __vector double
vec_andc(__vector __bool long long __a,__vector double __b)6884 vec_andc(__vector __bool long long __a, __vector double __b) {
6885   return (__vector double)((__vector unsigned long long)__a &
6886                          ~(__vector unsigned long long)__b);
6887 }
6888 
6889 // This prototype is deprecated.
6890 static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector __bool long long __b)6891 vec_andc(__vector double __a, __vector __bool long long __b) {
6892   return (__vector double)((__vector unsigned long long)__a &
6893                          ~(__vector unsigned long long)__b);
6894 }
6895 
6896 /*-- vec_nor ----------------------------------------------------------------*/
6897 
6898 static inline __ATTRS_o_ai __vector __bool char
vec_nor(__vector __bool char __a,__vector __bool char __b)6899 vec_nor(__vector __bool char __a, __vector __bool char __b) {
6900   return ~(__a | __b);
6901 }
6902 
6903 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector signed char __b)6904 vec_nor(__vector signed char __a, __vector signed char __b) {
6905   return ~(__a | __b);
6906 }
6907 
6908 // This prototype is deprecated.
6909 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector __bool char __a,__vector signed char __b)6910 vec_nor(__vector __bool char __a, __vector signed char __b) {
6911   return ~(__a | __b);
6912 }
6913 
6914 // This prototype is deprecated.
6915 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector __bool char __b)6916 vec_nor(__vector signed char __a, __vector __bool char __b) {
6917   return ~(__a | __b);
6918 }
6919 
6920 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector unsigned char __b)6921 vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
6922   return ~(__a | __b);
6923 }
6924 
6925 // This prototype is deprecated.
6926 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector __bool char __a,__vector unsigned char __b)6927 vec_nor(__vector __bool char __a, __vector unsigned char __b) {
6928   return ~(__a | __b);
6929 }
6930 
6931 // This prototype is deprecated.
6932 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector __bool char __b)6933 vec_nor(__vector unsigned char __a, __vector __bool char __b) {
6934   return ~(__a | __b);
6935 }
6936 
6937 static inline __ATTRS_o_ai __vector __bool short
vec_nor(__vector __bool short __a,__vector __bool short __b)6938 vec_nor(__vector __bool short __a, __vector __bool short __b) {
6939   return ~(__a | __b);
6940 }
6941 
6942 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector signed short __b)6943 vec_nor(__vector signed short __a, __vector signed short __b) {
6944   return ~(__a | __b);
6945 }
6946 
6947 // This prototype is deprecated.
6948 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector __bool short __a,__vector signed short __b)6949 vec_nor(__vector __bool short __a, __vector signed short __b) {
6950   return ~(__a | __b);
6951 }
6952 
6953 // This prototype is deprecated.
6954 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector __bool short __b)6955 vec_nor(__vector signed short __a, __vector __bool short __b) {
6956   return ~(__a | __b);
6957 }
6958 
6959 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector unsigned short __b)6960 vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
6961   return ~(__a | __b);
6962 }
6963 
6964 // This prototype is deprecated.
6965 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector __bool short __a,__vector unsigned short __b)6966 vec_nor(__vector __bool short __a, __vector unsigned short __b) {
6967   return ~(__a | __b);
6968 }
6969 
6970 // This prototype is deprecated.
6971 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector __bool short __b)6972 vec_nor(__vector unsigned short __a, __vector __bool short __b) {
6973   return ~(__a | __b);
6974 }
6975 
6976 static inline __ATTRS_o_ai __vector __bool int
vec_nor(__vector __bool int __a,__vector __bool int __b)6977 vec_nor(__vector __bool int __a, __vector __bool int __b) {
6978   return ~(__a | __b);
6979 }
6980 
6981 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector signed int __b)6982 vec_nor(__vector signed int __a, __vector signed int __b) {
6983   return ~(__a | __b);
6984 }
6985 
6986 // This prototype is deprecated.
6987 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector __bool int __a,__vector signed int __b)6988 vec_nor(__vector __bool int __a, __vector signed int __b) {
6989   return ~(__a | __b);
6990 }
6991 
6992 // This prototype is deprecated.
6993 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector __bool int __b)6994 vec_nor(__vector signed int __a, __vector __bool int __b) {
6995   return ~(__a | __b);
6996 }
6997 
6998 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector unsigned int __b)6999 vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
7000   return ~(__a | __b);
7001 }
7002 
7003 // This prototype is deprecated.
7004 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector __bool int __a,__vector unsigned int __b)7005 vec_nor(__vector __bool int __a, __vector unsigned int __b) {
7006   return ~(__a | __b);
7007 }
7008 
7009 // This prototype is deprecated.
7010 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector __bool int __b)7011 vec_nor(__vector unsigned int __a, __vector __bool int __b) {
7012   return ~(__a | __b);
7013 }
7014 
7015 static inline __ATTRS_o_ai __vector __bool long long
vec_nor(__vector __bool long long __a,__vector __bool long long __b)7016 vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
7017   return ~(__a | __b);
7018 }
7019 
7020 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector signed long long __b)7021 vec_nor(__vector signed long long __a, __vector signed long long __b) {
7022   return ~(__a | __b);
7023 }
7024 
7025 // This prototype is deprecated.
7026 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector __bool long long __a,__vector signed long long __b)7027 vec_nor(__vector __bool long long __a, __vector signed long long __b) {
7028   return ~(__a | __b);
7029 }
7030 
7031 // This prototype is deprecated.
7032 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector __bool long long __b)7033 vec_nor(__vector signed long long __a, __vector __bool long long __b) {
7034   return ~(__a | __b);
7035 }
7036 
7037 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector unsigned long long __b)7038 vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
7039   return ~(__a | __b);
7040 }
7041 
7042 // This prototype is deprecated.
7043 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector __bool long long __a,__vector unsigned long long __b)7044 vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
7045   return ~(__a | __b);
7046 }
7047 
7048 // This prototype is deprecated.
7049 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector __bool long long __b)7050 vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
7051   return ~(__a | __b);
7052 }
7053 
7054 static inline __ATTRS_o_ai __vector __bool __int128
vec_nor(__vector __bool __int128 __a,__vector __bool __int128 __b)7055 vec_nor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7056   return ~(__a | __b);
7057 }
7058 
7059 static inline __ATTRS_o_ai __vector signed __int128
vec_nor(__vector signed __int128 __a,__vector signed __int128 __b)7060 vec_nor(__vector signed __int128 __a, __vector signed __int128 __b) {
7061   return ~(__a | __b);
7062 }
7063 
7064 static inline __ATTRS_o_ai __vector unsigned __int128
vec_nor(__vector unsigned __int128 __a,__vector unsigned __int128 __b)7065 vec_nor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7066   return ~(__a | __b);
7067 }
7068 
7069 #if __ARCH__ >= 12
7070 static inline __ATTRS_o_ai __vector float
vec_nor(__vector float __a,__vector float __b)7071 vec_nor(__vector float __a, __vector float __b) {
7072   return (__vector float)~((__vector unsigned int)__a |
7073                          (__vector unsigned int)__b);
7074 }
7075 #endif
7076 
7077 static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector double __b)7078 vec_nor(__vector double __a, __vector double __b) {
7079   return (__vector double)~((__vector unsigned long long)__a |
7080                           (__vector unsigned long long)__b);
7081 }
7082 
7083 // This prototype is deprecated.
7084 static inline __ATTRS_o_ai __vector double
vec_nor(__vector __bool long long __a,__vector double __b)7085 vec_nor(__vector __bool long long __a, __vector double __b) {
7086   return (__vector double)~((__vector unsigned long long)__a |
7087                           (__vector unsigned long long)__b);
7088 }
7089 
7090 // This prototype is deprecated.
7091 static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector __bool long long __b)7092 vec_nor(__vector double __a, __vector __bool long long __b) {
7093   return (__vector double)~((__vector unsigned long long)__a |
7094                           (__vector unsigned long long)__b);
7095 }
7096 
7097 /*-- vec_orc ----------------------------------------------------------------*/
7098 
7099 #if __ARCH__ >= 12
7100 static inline __ATTRS_o_ai __vector __bool char
vec_orc(__vector __bool char __a,__vector __bool char __b)7101 vec_orc(__vector __bool char __a, __vector __bool char __b) {
7102   return __a | ~__b;
7103 }
7104 
7105 static inline __ATTRS_o_ai __vector signed char
vec_orc(__vector signed char __a,__vector signed char __b)7106 vec_orc(__vector signed char __a, __vector signed char __b) {
7107   return __a | ~__b;
7108 }
7109 
7110 static inline __ATTRS_o_ai __vector unsigned char
vec_orc(__vector unsigned char __a,__vector unsigned char __b)7111 vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
7112   return __a | ~__b;
7113 }
7114 
7115 static inline __ATTRS_o_ai __vector __bool short
vec_orc(__vector __bool short __a,__vector __bool short __b)7116 vec_orc(__vector __bool short __a, __vector __bool short __b) {
7117   return __a | ~__b;
7118 }
7119 
7120 static inline __ATTRS_o_ai __vector signed short
vec_orc(__vector signed short __a,__vector signed short __b)7121 vec_orc(__vector signed short __a, __vector signed short __b) {
7122   return __a | ~__b;
7123 }
7124 
7125 static inline __ATTRS_o_ai __vector unsigned short
vec_orc(__vector unsigned short __a,__vector unsigned short __b)7126 vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
7127   return __a | ~__b;
7128 }
7129 
7130 static inline __ATTRS_o_ai __vector __bool int
vec_orc(__vector __bool int __a,__vector __bool int __b)7131 vec_orc(__vector __bool int __a, __vector __bool int __b) {
7132   return __a | ~__b;
7133 }
7134 
7135 static inline __ATTRS_o_ai __vector signed int
vec_orc(__vector signed int __a,__vector signed int __b)7136 vec_orc(__vector signed int __a, __vector signed int __b) {
7137   return __a | ~__b;
7138 }
7139 
7140 static inline __ATTRS_o_ai __vector unsigned int
vec_orc(__vector unsigned int __a,__vector unsigned int __b)7141 vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
7142   return __a | ~__b;
7143 }
7144 
7145 static inline __ATTRS_o_ai __vector __bool long long
vec_orc(__vector __bool long long __a,__vector __bool long long __b)7146 vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
7147   return __a | ~__b;
7148 }
7149 
7150 static inline __ATTRS_o_ai __vector signed long long
vec_orc(__vector signed long long __a,__vector signed long long __b)7151 vec_orc(__vector signed long long __a, __vector signed long long __b) {
7152   return __a | ~__b;
7153 }
7154 
7155 static inline __ATTRS_o_ai __vector unsigned long long
vec_orc(__vector unsigned long long __a,__vector unsigned long long __b)7156 vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
7157   return __a | ~__b;
7158 }
7159 
7160 static inline __ATTRS_o_ai __vector __bool __int128
vec_orc(__vector __bool __int128 __a,__vector __bool __int128 __b)7161 vec_orc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7162   return __a | ~__b;
7163 }
7164 
7165 static inline __ATTRS_o_ai __vector signed __int128
vec_orc(__vector signed __int128 __a,__vector signed __int128 __b)7166 vec_orc(__vector signed __int128 __a, __vector signed __int128 __b) {
7167   return __a | ~__b;
7168 }
7169 
7170 static inline __ATTRS_o_ai __vector unsigned __int128
vec_orc(__vector unsigned __int128 __a,__vector unsigned __int128 __b)7171 vec_orc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7172   return __a | ~__b;
7173 }
7174 
7175 static inline __ATTRS_o_ai __vector float
vec_orc(__vector float __a,__vector float __b)7176 vec_orc(__vector float __a, __vector float __b) {
7177   return (__vector float)((__vector unsigned int)__a |
7178                         ~(__vector unsigned int)__b);
7179 }
7180 
7181 static inline __ATTRS_o_ai __vector double
vec_orc(__vector double __a,__vector double __b)7182 vec_orc(__vector double __a, __vector double __b) {
7183   return (__vector double)((__vector unsigned long long)__a |
7184                          ~(__vector unsigned long long)__b);
7185 }
7186 #endif
7187 
7188 /*-- vec_nand ---------------------------------------------------------------*/
7189 
7190 #if __ARCH__ >= 12
7191 static inline __ATTRS_o_ai __vector __bool char
vec_nand(__vector __bool char __a,__vector __bool char __b)7192 vec_nand(__vector __bool char __a, __vector __bool char __b) {
7193   return ~(__a & __b);
7194 }
7195 
7196 static inline __ATTRS_o_ai __vector signed char
vec_nand(__vector signed char __a,__vector signed char __b)7197 vec_nand(__vector signed char __a, __vector signed char __b) {
7198   return ~(__a & __b);
7199 }
7200 
7201 static inline __ATTRS_o_ai __vector unsigned char
vec_nand(__vector unsigned char __a,__vector unsigned char __b)7202 vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
7203   return ~(__a & __b);
7204 }
7205 
7206 static inline __ATTRS_o_ai __vector __bool short
vec_nand(__vector __bool short __a,__vector __bool short __b)7207 vec_nand(__vector __bool short __a, __vector __bool short __b) {
7208   return ~(__a & __b);
7209 }
7210 
7211 static inline __ATTRS_o_ai __vector signed short
vec_nand(__vector signed short __a,__vector signed short __b)7212 vec_nand(__vector signed short __a, __vector signed short __b) {
7213   return ~(__a & __b);
7214 }
7215 
7216 static inline __ATTRS_o_ai __vector unsigned short
vec_nand(__vector unsigned short __a,__vector unsigned short __b)7217 vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
7218   return ~(__a & __b);
7219 }
7220 
7221 static inline __ATTRS_o_ai __vector __bool int
vec_nand(__vector __bool int __a,__vector __bool int __b)7222 vec_nand(__vector __bool int __a, __vector __bool int __b) {
7223   return ~(__a & __b);
7224 }
7225 
7226 static inline __ATTRS_o_ai __vector signed int
vec_nand(__vector signed int __a,__vector signed int __b)7227 vec_nand(__vector signed int __a, __vector signed int __b) {
7228   return ~(__a & __b);
7229 }
7230 
7231 static inline __ATTRS_o_ai __vector unsigned int
vec_nand(__vector unsigned int __a,__vector unsigned int __b)7232 vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
7233   return ~(__a & __b);
7234 }
7235 
7236 static inline __ATTRS_o_ai __vector __bool long long
vec_nand(__vector __bool long long __a,__vector __bool long long __b)7237 vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
7238   return ~(__a & __b);
7239 }
7240 
7241 static inline __ATTRS_o_ai __vector signed long long
vec_nand(__vector signed long long __a,__vector signed long long __b)7242 vec_nand(__vector signed long long __a, __vector signed long long __b) {
7243   return ~(__a & __b);
7244 }
7245 
7246 static inline __ATTRS_o_ai __vector unsigned long long
vec_nand(__vector unsigned long long __a,__vector unsigned long long __b)7247 vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
7248   return ~(__a & __b);
7249 }
7250 
7251 static inline __ATTRS_o_ai __vector __bool __int128
vec_nand(__vector __bool __int128 __a,__vector __bool __int128 __b)7252 vec_nand(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7253   return ~(__a & __b);
7254 }
7255 
7256 static inline __ATTRS_o_ai __vector signed __int128
vec_nand(__vector signed __int128 __a,__vector signed __int128 __b)7257 vec_nand(__vector signed __int128 __a, __vector signed __int128 __b) {
7258   return ~(__a & __b);
7259 }
7260 
7261 static inline __ATTRS_o_ai __vector unsigned __int128
vec_nand(__vector unsigned __int128 __a,__vector unsigned __int128 __b)7262 vec_nand(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7263   return ~(__a & __b);
7264 }
7265 
7266 static inline __ATTRS_o_ai __vector float
vec_nand(__vector float __a,__vector float __b)7267 vec_nand(__vector float __a, __vector float __b) {
7268   return (__vector float)~((__vector unsigned int)__a &
7269                          (__vector unsigned int)__b);
7270 }
7271 
7272 static inline __ATTRS_o_ai __vector double
vec_nand(__vector double __a,__vector double __b)7273 vec_nand(__vector double __a, __vector double __b) {
7274   return (__vector double)~((__vector unsigned long long)__a &
7275                           (__vector unsigned long long)__b);
7276 }
7277 #endif
7278 
7279 /*-- vec_eqv ----------------------------------------------------------------*/
7280 
7281 #if __ARCH__ >= 12
7282 static inline __ATTRS_o_ai __vector __bool char
vec_eqv(__vector __bool char __a,__vector __bool char __b)7283 vec_eqv(__vector __bool char __a, __vector __bool char __b) {
7284   return ~(__a ^ __b);
7285 }
7286 
7287 static inline __ATTRS_o_ai __vector signed char
vec_eqv(__vector signed char __a,__vector signed char __b)7288 vec_eqv(__vector signed char __a, __vector signed char __b) {
7289   return ~(__a ^ __b);
7290 }
7291 
7292 static inline __ATTRS_o_ai __vector unsigned char
vec_eqv(__vector unsigned char __a,__vector unsigned char __b)7293 vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
7294   return ~(__a ^ __b);
7295 }
7296 
7297 static inline __ATTRS_o_ai __vector __bool short
vec_eqv(__vector __bool short __a,__vector __bool short __b)7298 vec_eqv(__vector __bool short __a, __vector __bool short __b) {
7299   return ~(__a ^ __b);
7300 }
7301 
7302 static inline __ATTRS_o_ai __vector signed short
vec_eqv(__vector signed short __a,__vector signed short __b)7303 vec_eqv(__vector signed short __a, __vector signed short __b) {
7304   return ~(__a ^ __b);
7305 }
7306 
7307 static inline __ATTRS_o_ai __vector unsigned short
vec_eqv(__vector unsigned short __a,__vector unsigned short __b)7308 vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
7309   return ~(__a ^ __b);
7310 }
7311 
7312 static inline __ATTRS_o_ai __vector __bool int
vec_eqv(__vector __bool int __a,__vector __bool int __b)7313 vec_eqv(__vector __bool int __a, __vector __bool int __b) {
7314   return ~(__a ^ __b);
7315 }
7316 
7317 static inline __ATTRS_o_ai __vector signed int
vec_eqv(__vector signed int __a,__vector signed int __b)7318 vec_eqv(__vector signed int __a, __vector signed int __b) {
7319   return ~(__a ^ __b);
7320 }
7321 
7322 static inline __ATTRS_o_ai __vector unsigned int
vec_eqv(__vector unsigned int __a,__vector unsigned int __b)7323 vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
7324   return ~(__a ^ __b);
7325 }
7326 
7327 static inline __ATTRS_o_ai __vector __bool long long
vec_eqv(__vector __bool long long __a,__vector __bool long long __b)7328 vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
7329   return ~(__a ^ __b);
7330 }
7331 
7332 static inline __ATTRS_o_ai __vector signed long long
vec_eqv(__vector signed long long __a,__vector signed long long __b)7333 vec_eqv(__vector signed long long __a, __vector signed long long __b) {
7334   return ~(__a ^ __b);
7335 }
7336 
7337 static inline __ATTRS_o_ai __vector unsigned long long
vec_eqv(__vector unsigned long long __a,__vector unsigned long long __b)7338 vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
7339   return ~(__a ^ __b);
7340 }
7341 
7342 static inline __ATTRS_o_ai __vector __bool __int128
vec_eqv(__vector __bool __int128 __a,__vector __bool __int128 __b)7343 vec_eqv(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7344   return ~(__a ^ __b);
7345 }
7346 
7347 static inline __ATTRS_o_ai __vector signed __int128
vec_eqv(__vector signed __int128 __a,__vector signed __int128 __b)7348 vec_eqv(__vector signed __int128 __a, __vector signed __int128 __b) {
7349   return ~(__a ^ __b);
7350 }
7351 
7352 static inline __ATTRS_o_ai __vector unsigned __int128
vec_eqv(__vector unsigned __int128 __a,__vector unsigned __int128 __b)7353 vec_eqv(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7354   return ~(__a ^ __b);
7355 }
7356 
7357 static inline __ATTRS_o_ai __vector float
vec_eqv(__vector float __a,__vector float __b)7358 vec_eqv(__vector float __a, __vector float __b) {
7359   return (__vector float)~((__vector unsigned int)__a ^
7360                          (__vector unsigned int)__b);
7361 }
7362 
7363 static inline __ATTRS_o_ai __vector double
vec_eqv(__vector double __a,__vector double __b)7364 vec_eqv(__vector double __a, __vector double __b) {
7365   return (__vector double)~((__vector unsigned long long)__a ^
7366                           (__vector unsigned long long)__b);
7367 }
7368 #endif
7369 
7370 /*-- vec_evaluate -----------------------------------------------------------*/
7371 
7372 #if __ARCH__ >= 15
7373 extern __ATTRS_o __vector signed char
7374 vec_evaluate(__vector signed char __a, __vector signed char __b,
7375              __vector signed char __c, unsigned char __d)
7376   __constant(__d);
7377 
7378 extern __ATTRS_o __vector unsigned char
7379 vec_evaluate(__vector unsigned char __a, __vector unsigned char __b,
7380              __vector unsigned char __c, unsigned char __d)
7381   __constant(__d);
7382 
7383 extern __ATTRS_o __vector __bool char
7384 vec_evaluate(__vector __bool char __a, __vector __bool char __b,
7385              __vector __bool char __c, unsigned char __d)
7386   __constant(__d);
7387 
7388 extern __ATTRS_o __vector signed short
7389 vec_evaluate(__vector signed short __a, __vector signed short __b,
7390              __vector signed short __c, unsigned char __d)
7391   __constant(__d);
7392 
7393 extern __ATTRS_o __vector unsigned short
7394 vec_evaluate(__vector unsigned short __a, __vector unsigned short __b,
7395              __vector unsigned short __c, unsigned char __d)
7396   __constant(__d);
7397 
7398 extern __ATTRS_o __vector __bool short
7399 vec_evaluate(__vector __bool short __a, __vector __bool short __b,
7400              __vector __bool short __c, unsigned char __d)
7401   __constant(__d);
7402 
7403 extern __ATTRS_o __vector signed int
7404 vec_evaluate(__vector signed int __a, __vector signed int __b,
7405              __vector signed int __c, unsigned char __d)
7406   __constant(__d);
7407 
7408 extern __ATTRS_o __vector unsigned int
7409 vec_evaluate(__vector unsigned int __a, __vector unsigned int __b,
7410              __vector unsigned int __c, unsigned char __d)
7411   __constant(__d);
7412 
7413 extern __ATTRS_o __vector __bool int
7414 vec_evaluate(__vector __bool int __a, __vector __bool int __b,
7415              __vector __bool int __c, unsigned char __d)
7416   __constant(__d);
7417 
7418 extern __ATTRS_o __vector signed long long
7419 vec_evaluate(__vector signed long long __a, __vector signed long long __b,
7420              __vector signed long long __c, unsigned char __d)
7421   __constant(__d);
7422 
7423 extern __ATTRS_o __vector unsigned long long
7424 vec_evaluate(__vector unsigned long long __a, __vector unsigned long long __b,
7425              __vector unsigned long long __c, unsigned char __d)
7426   __constant(__d);
7427 
7428 extern __ATTRS_o __vector __bool long long
7429 vec_evaluate(__vector __bool long long __a, __vector __bool long long __b,
7430              __vector __bool long long __c, unsigned char __d)
7431   __constant(__d);
7432 
7433 extern __ATTRS_o __vector signed __int128
7434 vec_evaluate(__vector signed __int128 __a, __vector signed __int128 __b,
7435              __vector signed __int128 __c, unsigned char __d)
7436   __constant(__d);
7437 
7438 extern __ATTRS_o __vector unsigned __int128
7439 vec_evaluate(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
7440              __vector unsigned __int128 __c, unsigned char __d)
7441   __constant(__d);
7442 
7443 extern __ATTRS_o __vector __bool __int128
7444 vec_evaluate(__vector __bool __int128 __a, __vector __bool __int128 __b,
7445              __vector __bool __int128 __c, unsigned char __d)
7446   __constant(__d);
7447 
7448 #define vec_evaluate(A, B, C, D) \
7449   ((__typeof__((vec_evaluate)((A), (B), (C), (D)))) \
7450   __builtin_s390_veval((__vector unsigned char)(A), \
7451                        (__vector unsigned char)(B), \
7452                        (__vector unsigned char)(C), (D)))
7453 #endif
7454 
7455 /*-- vec_cntlz --------------------------------------------------------------*/
7456 
7457 static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector signed char __a)7458 vec_cntlz(__vector signed char __a) {
7459   return __builtin_s390_vclzb((__vector unsigned char)__a);
7460 }
7461 
7462 static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector unsigned char __a)7463 vec_cntlz(__vector unsigned char __a) {
7464   return __builtin_s390_vclzb(__a);
7465 }
7466 
7467 static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector signed short __a)7468 vec_cntlz(__vector signed short __a) {
7469   return __builtin_s390_vclzh((__vector unsigned short)__a);
7470 }
7471 
7472 static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector unsigned short __a)7473 vec_cntlz(__vector unsigned short __a) {
7474   return __builtin_s390_vclzh(__a);
7475 }
7476 
7477 static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector signed int __a)7478 vec_cntlz(__vector signed int __a) {
7479   return __builtin_s390_vclzf((__vector unsigned int)__a);
7480 }
7481 
7482 static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector unsigned int __a)7483 vec_cntlz(__vector unsigned int __a) {
7484   return __builtin_s390_vclzf(__a);
7485 }
7486 
7487 static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector signed long long __a)7488 vec_cntlz(__vector signed long long __a) {
7489   return __builtin_s390_vclzg((__vector unsigned long long)__a);
7490 }
7491 
7492 static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector unsigned long long __a)7493 vec_cntlz(__vector unsigned long long __a) {
7494   return __builtin_s390_vclzg(__a);
7495 }
7496 
7497 #if __ARCH__ >= 15
7498 static inline __ATTRS_o_ai __vector unsigned __int128
vec_cntlz(__vector signed __int128 __a)7499 vec_cntlz(__vector signed __int128 __a) {
7500   return (__vector unsigned __int128)
7501          __builtin_s390_vclzq((unsigned __int128)__a);
7502 }
7503 
7504 static inline __ATTRS_o_ai __vector unsigned __int128
vec_cntlz(__vector unsigned __int128 __a)7505 vec_cntlz(__vector unsigned __int128 __a) {
7506   return (__vector unsigned __int128)
7507          __builtin_s390_vclzq((unsigned __int128)__a);
7508 }
7509 #endif
7510 
7511 /*-- vec_cnttz --------------------------------------------------------------*/
7512 
7513 static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector signed char __a)7514 vec_cnttz(__vector signed char __a) {
7515   return __builtin_s390_vctzb((__vector unsigned char)__a);
7516 }
7517 
7518 static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector unsigned char __a)7519 vec_cnttz(__vector unsigned char __a) {
7520   return __builtin_s390_vctzb(__a);
7521 }
7522 
7523 static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector signed short __a)7524 vec_cnttz(__vector signed short __a) {
7525   return __builtin_s390_vctzh((__vector unsigned short)__a);
7526 }
7527 
7528 static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector unsigned short __a)7529 vec_cnttz(__vector unsigned short __a) {
7530   return __builtin_s390_vctzh(__a);
7531 }
7532 
7533 static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector signed int __a)7534 vec_cnttz(__vector signed int __a) {
7535   return __builtin_s390_vctzf((__vector unsigned int)__a);
7536 }
7537 
7538 static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector unsigned int __a)7539 vec_cnttz(__vector unsigned int __a) {
7540   return __builtin_s390_vctzf(__a);
7541 }
7542 
7543 static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector signed long long __a)7544 vec_cnttz(__vector signed long long __a) {
7545   return __builtin_s390_vctzg((__vector unsigned long long)__a);
7546 }
7547 
7548 static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector unsigned long long __a)7549 vec_cnttz(__vector unsigned long long __a) {
7550   return __builtin_s390_vctzg(__a);
7551 }
7552 
7553 #if __ARCH__ >= 15
7554 static inline __ATTRS_o_ai __vector unsigned __int128
vec_cnttz(__vector signed __int128 __a)7555 vec_cnttz(__vector signed __int128 __a) {
7556   return (__vector unsigned __int128)
7557          __builtin_s390_vctzq((unsigned __int128)__a);
7558 }
7559 
7560 static inline __ATTRS_o_ai __vector unsigned __int128
vec_cnttz(__vector unsigned __int128 __a)7561 vec_cnttz(__vector unsigned __int128 __a) {
7562   return (__vector unsigned __int128)
7563          __builtin_s390_vctzq((unsigned __int128)__a);
7564 }
7565 #endif
7566 
7567 /*-- vec_popcnt -------------------------------------------------------------*/
7568 
7569 static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector signed char __a)7570 vec_popcnt(__vector signed char __a) {
7571   return __builtin_elementwise_popcount((__vector unsigned char)__a);
7572 }
7573 
7574 static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector unsigned char __a)7575 vec_popcnt(__vector unsigned char __a) {
7576   return __builtin_elementwise_popcount(__a);
7577 }
7578 
7579 static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector signed short __a)7580 vec_popcnt(__vector signed short __a) {
7581   return __builtin_elementwise_popcount((__vector unsigned short)__a);
7582 }
7583 
7584 static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector unsigned short __a)7585 vec_popcnt(__vector unsigned short __a) {
7586   return __builtin_elementwise_popcount(__a);
7587 }
7588 
7589 static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector signed int __a)7590 vec_popcnt(__vector signed int __a) {
7591   return __builtin_elementwise_popcount((__vector unsigned int)__a);
7592 }
7593 
7594 static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector unsigned int __a)7595 vec_popcnt(__vector unsigned int __a) {
7596   return __builtin_elementwise_popcount(__a);
7597 }
7598 
7599 static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector signed long long __a)7600 vec_popcnt(__vector signed long long __a) {
7601   return __builtin_elementwise_popcount((__vector unsigned long long)__a);
7602 }
7603 
7604 static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector unsigned long long __a)7605 vec_popcnt(__vector unsigned long long __a) {
7606   return __builtin_elementwise_popcount(__a);
7607 }
7608 
7609 /*-- vec_rl -----------------------------------------------------------------*/
7610 
7611 static inline __ATTRS_o_ai __vector signed char
vec_rl(__vector signed char __a,__vector unsigned char __b)7612 vec_rl(__vector signed char __a, __vector unsigned char __b) {
7613   return (__vector signed char)__builtin_s390_verllvb(
7614     (__vector unsigned char)__a, __b);
7615 }
7616 
7617 static inline __ATTRS_o_ai __vector unsigned char
vec_rl(__vector unsigned char __a,__vector unsigned char __b)7618 vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
7619   return __builtin_s390_verllvb(__a, __b);
7620 }
7621 
7622 static inline __ATTRS_o_ai __vector signed short
vec_rl(__vector signed short __a,__vector unsigned short __b)7623 vec_rl(__vector signed short __a, __vector unsigned short __b) {
7624   return (__vector signed short)__builtin_s390_verllvh(
7625     (__vector unsigned short)__a, __b);
7626 }
7627 
7628 static inline __ATTRS_o_ai __vector unsigned short
vec_rl(__vector unsigned short __a,__vector unsigned short __b)7629 vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
7630   return __builtin_s390_verllvh(__a, __b);
7631 }
7632 
7633 static inline __ATTRS_o_ai __vector signed int
vec_rl(__vector signed int __a,__vector unsigned int __b)7634 vec_rl(__vector signed int __a, __vector unsigned int __b) {
7635   return (__vector signed int)__builtin_s390_verllvf(
7636     (__vector unsigned int)__a, __b);
7637 }
7638 
7639 static inline __ATTRS_o_ai __vector unsigned int
vec_rl(__vector unsigned int __a,__vector unsigned int __b)7640 vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
7641   return __builtin_s390_verllvf(__a, __b);
7642 }
7643 
7644 static inline __ATTRS_o_ai __vector signed long long
vec_rl(__vector signed long long __a,__vector unsigned long long __b)7645 vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
7646   return (__vector signed long long)__builtin_s390_verllvg(
7647     (__vector unsigned long long)__a, __b);
7648 }
7649 
7650 static inline __ATTRS_o_ai __vector unsigned long long
vec_rl(__vector unsigned long long __a,__vector unsigned long long __b)7651 vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
7652   return __builtin_s390_verllvg(__a, __b);
7653 }
7654 
7655 /*-- vec_rli ----------------------------------------------------------------*/
7656 
7657 static inline __ATTRS_o_ai __vector signed char
vec_rli(__vector signed char __a,unsigned long __b)7658 vec_rli(__vector signed char __a, unsigned long __b) {
7659   return (__vector signed char)__builtin_s390_verllb(
7660     (__vector unsigned char)__a, (unsigned char)__b);
7661 }
7662 
7663 static inline __ATTRS_o_ai __vector unsigned char
vec_rli(__vector unsigned char __a,unsigned long __b)7664 vec_rli(__vector unsigned char __a, unsigned long __b) {
7665   return __builtin_s390_verllb(__a, (unsigned char)__b);
7666 }
7667 
7668 static inline __ATTRS_o_ai __vector signed short
vec_rli(__vector signed short __a,unsigned long __b)7669 vec_rli(__vector signed short __a, unsigned long __b) {
7670   return (__vector signed short)__builtin_s390_verllh(
7671     (__vector unsigned short)__a, (unsigned char)__b);
7672 }
7673 
7674 static inline __ATTRS_o_ai __vector unsigned short
vec_rli(__vector unsigned short __a,unsigned long __b)7675 vec_rli(__vector unsigned short __a, unsigned long __b) {
7676   return __builtin_s390_verllh(__a, (unsigned char)__b);
7677 }
7678 
7679 static inline __ATTRS_o_ai __vector signed int
vec_rli(__vector signed int __a,unsigned long __b)7680 vec_rli(__vector signed int __a, unsigned long __b) {
7681   return (__vector signed int)__builtin_s390_verllf(
7682     (__vector unsigned int)__a, (unsigned char)__b);
7683 }
7684 
7685 static inline __ATTRS_o_ai __vector unsigned int
vec_rli(__vector unsigned int __a,unsigned long __b)7686 vec_rli(__vector unsigned int __a, unsigned long __b) {
7687   return __builtin_s390_verllf(__a, (unsigned char)__b);
7688 }
7689 
7690 static inline __ATTRS_o_ai __vector signed long long
vec_rli(__vector signed long long __a,unsigned long __b)7691 vec_rli(__vector signed long long __a, unsigned long __b) {
7692   return (__vector signed long long)__builtin_s390_verllg(
7693     (__vector unsigned long long)__a, (unsigned char)__b);
7694 }
7695 
7696 static inline __ATTRS_o_ai __vector unsigned long long
vec_rli(__vector unsigned long long __a,unsigned long __b)7697 vec_rli(__vector unsigned long long __a, unsigned long __b) {
7698   return __builtin_s390_verllg(__a, (unsigned char)__b);
7699 }
7700 
7701 /*-- vec_rl_mask ------------------------------------------------------------*/
7702 
7703 extern __ATTRS_o __vector signed char
7704 vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
7705             unsigned char __c) __constant(__c);
7706 
7707 extern __ATTRS_o __vector unsigned char
7708 vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
7709             unsigned char __c) __constant(__c);
7710 
7711 extern __ATTRS_o __vector signed short
7712 vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
7713             unsigned char __c) __constant(__c);
7714 
7715 extern __ATTRS_o __vector unsigned short
7716 vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
7717             unsigned char __c) __constant(__c);
7718 
7719 extern __ATTRS_o __vector signed int
7720 vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
7721             unsigned char __c) __constant(__c);
7722 
7723 extern __ATTRS_o __vector unsigned int
7724 vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
7725             unsigned char __c) __constant(__c);
7726 
7727 extern __ATTRS_o __vector signed long long
7728 vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
7729             unsigned char __c) __constant(__c);
7730 
7731 extern __ATTRS_o __vector unsigned long long
7732 vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
7733             unsigned char __c) __constant(__c);
7734 
7735 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
7736   __extension__ ({ \
7737     __vector unsigned char __res; \
7738     __vector unsigned char __x = (__vector unsigned char)(X); \
7739     __vector unsigned char __y = (__vector unsigned char)(Y); \
7740     switch (sizeof ((X)[0])) { \
7741     case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
7742              (__vector unsigned char)__x, (__vector unsigned char)__x, \
7743              (__vector unsigned char)__y, (Z)); break; \
7744     case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
7745              (__vector unsigned short)__x, (__vector unsigned short)__x, \
7746              (__vector unsigned short)__y, (Z)); break; \
7747     case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
7748              (__vector unsigned int)__x, (__vector unsigned int)__x, \
7749              (__vector unsigned int)__y, (Z)); break; \
7750     default: __res = (__vector unsigned char) __builtin_s390_verimg( \
7751              (__vector unsigned long long)__x, (__vector unsigned long long)__x, \
7752              (__vector unsigned long long)__y, (Z)); break; \
7753     } __res; }))
7754 
7755 /*-- vec_sll ----------------------------------------------------------------*/
7756 
7757 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned char __b)7758 vec_sll(__vector signed char __a, __vector unsigned char __b) {
7759   return (__vector signed char)__builtin_s390_vsl(
7760     (__vector unsigned char)__a, __b);
7761 }
7762 
7763 // This prototype is deprecated.
7764 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned short __b)7765 vec_sll(__vector signed char __a, __vector unsigned short __b) {
7766   return (__vector signed char)__builtin_s390_vsl(
7767     (__vector unsigned char)__a, (__vector unsigned char)__b);
7768 }
7769 
7770 // This prototype is deprecated.
7771 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned int __b)7772 vec_sll(__vector signed char __a, __vector unsigned int __b) {
7773   return (__vector signed char)__builtin_s390_vsl(
7774     (__vector unsigned char)__a, (__vector unsigned char)__b);
7775 }
7776 
7777 // This prototype is deprecated.
7778 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned char __b)7779 vec_sll(__vector __bool char __a, __vector unsigned char __b) {
7780   return (__vector __bool char)__builtin_s390_vsl(
7781     (__vector unsigned char)__a, __b);
7782 }
7783 
7784 // This prototype is deprecated.
7785 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned short __b)7786 vec_sll(__vector __bool char __a, __vector unsigned short __b) {
7787   return (__vector __bool char)__builtin_s390_vsl(
7788     (__vector unsigned char)__a, (__vector unsigned char)__b);
7789 }
7790 
7791 // This prototype is deprecated.
7792 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned int __b)7793 vec_sll(__vector __bool char __a, __vector unsigned int __b) {
7794   return (__vector __bool char)__builtin_s390_vsl(
7795     (__vector unsigned char)__a, (__vector unsigned char)__b);
7796 }
7797 
7798 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned char __b)7799 vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
7800   return __builtin_s390_vsl(__a, __b);
7801 }
7802 
7803 // This prototype is deprecated.
7804 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned short __b)7805 vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
7806   return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
7807 }
7808 
7809 // This prototype is deprecated.
7810 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned int __b)7811 vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
7812   return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
7813 }
7814 
7815 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned char __b)7816 vec_sll(__vector signed short __a, __vector unsigned char __b) {
7817   return (__vector signed short)__builtin_s390_vsl(
7818     (__vector unsigned char)__a, __b);
7819 }
7820 
7821 // This prototype is deprecated.
7822 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned short __b)7823 vec_sll(__vector signed short __a, __vector unsigned short __b) {
7824   return (__vector signed short)__builtin_s390_vsl(
7825     (__vector unsigned char)__a, (__vector unsigned char)__b);
7826 }
7827 
7828 // This prototype is deprecated.
7829 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned int __b)7830 vec_sll(__vector signed short __a, __vector unsigned int __b) {
7831   return (__vector signed short)__builtin_s390_vsl(
7832     (__vector unsigned char)__a, (__vector unsigned char)__b);
7833 }
7834 
7835 // This prototype is deprecated.
7836 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned char __b)7837 vec_sll(__vector __bool short __a, __vector unsigned char __b) {
7838   return (__vector __bool short)__builtin_s390_vsl(
7839     (__vector unsigned char)__a, __b);
7840 }
7841 
7842 // This prototype is deprecated.
7843 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned short __b)7844 vec_sll(__vector __bool short __a, __vector unsigned short __b) {
7845   return (__vector __bool short)__builtin_s390_vsl(
7846     (__vector unsigned char)__a, (__vector unsigned char)__b);
7847 }
7848 
7849 // This prototype is deprecated.
7850 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned int __b)7851 vec_sll(__vector __bool short __a, __vector unsigned int __b) {
7852   return (__vector __bool short)__builtin_s390_vsl(
7853     (__vector unsigned char)__a, (__vector unsigned char)__b);
7854 }
7855 
7856 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned char __b)7857 vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
7858   return (__vector unsigned short)__builtin_s390_vsl(
7859     (__vector unsigned char)__a, __b);
7860 }
7861 
7862 // This prototype is deprecated.
7863 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned short __b)7864 vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
7865   return (__vector unsigned short)__builtin_s390_vsl(
7866     (__vector unsigned char)__a, (__vector unsigned char)__b);
7867 }
7868 
7869 // This prototype is deprecated.
7870 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned int __b)7871 vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
7872   return (__vector unsigned short)__builtin_s390_vsl(
7873     (__vector unsigned char)__a, (__vector unsigned char)__b);
7874 }
7875 
7876 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned char __b)7877 vec_sll(__vector signed int __a, __vector unsigned char __b) {
7878   return (__vector signed int)__builtin_s390_vsl(
7879     (__vector unsigned char)__a, __b);
7880 }
7881 
7882 // This prototype is deprecated.
7883 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned short __b)7884 vec_sll(__vector signed int __a, __vector unsigned short __b) {
7885   return (__vector signed int)__builtin_s390_vsl(
7886     (__vector unsigned char)__a, (__vector unsigned char)__b);
7887 }
7888 
7889 // This prototype is deprecated.
7890 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned int __b)7891 vec_sll(__vector signed int __a, __vector unsigned int __b) {
7892   return (__vector signed int)__builtin_s390_vsl(
7893     (__vector unsigned char)__a, (__vector unsigned char)__b);
7894 }
7895 
7896 // This prototype is deprecated.
7897 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned char __b)7898 vec_sll(__vector __bool int __a, __vector unsigned char __b) {
7899   return (__vector __bool int)__builtin_s390_vsl(
7900     (__vector unsigned char)__a, __b);
7901 }
7902 
7903 // This prototype is deprecated.
7904 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned short __b)7905 vec_sll(__vector __bool int __a, __vector unsigned short __b) {
7906   return (__vector __bool int)__builtin_s390_vsl(
7907     (__vector unsigned char)__a, (__vector unsigned char)__b);
7908 }
7909 
7910 // This prototype is deprecated.
7911 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned int __b)7912 vec_sll(__vector __bool int __a, __vector unsigned int __b) {
7913   return (__vector __bool int)__builtin_s390_vsl(
7914     (__vector unsigned char)__a, (__vector unsigned char)__b);
7915 }
7916 
7917 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned char __b)7918 vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
7919   return (__vector unsigned int)__builtin_s390_vsl(
7920     (__vector unsigned char)__a, __b);
7921 }
7922 
7923 // This prototype is deprecated.
7924 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned short __b)7925 vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
7926   return (__vector unsigned int)__builtin_s390_vsl(
7927     (__vector unsigned char)__a, (__vector unsigned char)__b);
7928 }
7929 
7930 // This prototype is deprecated.
7931 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned int __b)7932 vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
7933   return (__vector unsigned int)__builtin_s390_vsl(
7934     (__vector unsigned char)__a, (__vector unsigned char)__b);
7935 }
7936 
7937 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned char __b)7938 vec_sll(__vector signed long long __a, __vector unsigned char __b) {
7939   return (__vector signed long long)__builtin_s390_vsl(
7940     (__vector unsigned char)__a, __b);
7941 }
7942 
7943 // This prototype is deprecated.
7944 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned short __b)7945 vec_sll(__vector signed long long __a, __vector unsigned short __b) {
7946   return (__vector signed long long)__builtin_s390_vsl(
7947     (__vector unsigned char)__a, (__vector unsigned char)__b);
7948 }
7949 
7950 // This prototype is deprecated.
7951 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned int __b)7952 vec_sll(__vector signed long long __a, __vector unsigned int __b) {
7953   return (__vector signed long long)__builtin_s390_vsl(
7954     (__vector unsigned char)__a, (__vector unsigned char)__b);
7955 }
7956 
7957 // This prototype is deprecated.
7958 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned char __b)7959 vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
7960   return (__vector __bool long long)__builtin_s390_vsl(
7961     (__vector unsigned char)__a, __b);
7962 }
7963 
7964 // This prototype is deprecated.
7965 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned short __b)7966 vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
7967   return (__vector __bool long long)__builtin_s390_vsl(
7968     (__vector unsigned char)__a, (__vector unsigned char)__b);
7969 }
7970 
7971 // This prototype is deprecated.
7972 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned int __b)7973 vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
7974   return (__vector __bool long long)__builtin_s390_vsl(
7975     (__vector unsigned char)__a, (__vector unsigned char)__b);
7976 }
7977 
7978 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned char __b)7979 vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
7980   return (__vector unsigned long long)__builtin_s390_vsl(
7981     (__vector unsigned char)__a, __b);
7982 }
7983 
7984 // This prototype is deprecated.
7985 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned short __b)7986 vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
7987   return (__vector unsigned long long)__builtin_s390_vsl(
7988     (__vector unsigned char)__a, (__vector unsigned char)__b);
7989 }
7990 
7991 // This prototype is deprecated.
7992 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned int __b)7993 vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
7994   return (__vector unsigned long long)__builtin_s390_vsl(
7995     (__vector unsigned char)__a, (__vector unsigned char)__b);
7996 }
7997 
7998 static inline __ATTRS_o_ai __vector signed __int128
vec_sll(__vector signed __int128 __a,__vector unsigned char __b)7999 vec_sll(__vector signed __int128 __a, __vector unsigned char __b) {
8000   return (__vector signed __int128)__builtin_s390_vsl(
8001     (__vector unsigned char)__a, __b);
8002 }
8003 
8004 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sll(__vector unsigned __int128 __a,__vector unsigned char __b)8005 vec_sll(__vector unsigned __int128 __a, __vector unsigned char __b) {
8006   return (__vector unsigned __int128)__builtin_s390_vsl(
8007     (__vector unsigned char)__a, __b);
8008 }
8009 
8010 /*-- vec_slb ----------------------------------------------------------------*/
8011 
8012 // This prototype is deprecated.
8013 static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector signed char __b)8014 vec_slb(__vector signed char __a, __vector signed char __b) {
8015   return (__vector signed char)__builtin_s390_vslb(
8016     (__vector unsigned char)__a, (__vector unsigned char)__b);
8017 }
8018 
8019 static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector unsigned char __b)8020 vec_slb(__vector signed char __a, __vector unsigned char __b) {
8021   return (__vector signed char)__builtin_s390_vslb(
8022     (__vector unsigned char)__a, __b);
8023 }
8024 
8025 // This prototype is deprecated.
8026 static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector signed char __b)8027 vec_slb(__vector unsigned char __a, __vector signed char __b) {
8028   return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
8029 }
8030 
8031 static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector unsigned char __b)8032 vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
8033   return __builtin_s390_vslb(__a, __b);
8034 }
8035 
8036 // This prototype is deprecated.
8037 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector signed short __b)8038 vec_slb(__vector signed short __a, __vector signed short __b) {
8039   return (__vector signed short)__builtin_s390_vslb(
8040     (__vector unsigned char)__a, (__vector unsigned char)__b);
8041 }
8042 
8043 // This prototype is deprecated.
8044 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector unsigned short __b)8045 vec_slb(__vector signed short __a, __vector unsigned short __b) {
8046   return (__vector signed short)__builtin_s390_vslb(
8047     (__vector unsigned char)__a, (__vector unsigned char)__b);
8048 }
8049 
8050 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector unsigned char __b)8051 vec_slb(__vector signed short __a, __vector unsigned char __b) {
8052   return (__vector signed short)__builtin_s390_vslb(
8053     (__vector unsigned char)__a, __b);
8054 }
8055 
8056 // This prototype is deprecated.
8057 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector signed short __b)8058 vec_slb(__vector unsigned short __a, __vector signed short __b) {
8059   return (__vector unsigned short)__builtin_s390_vslb(
8060     (__vector unsigned char)__a, (__vector unsigned char)__b);
8061 }
8062 
8063 // This prototype is deprecated.
8064 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector unsigned short __b)8065 vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
8066   return (__vector unsigned short)__builtin_s390_vslb(
8067     (__vector unsigned char)__a, (__vector unsigned char)__b);
8068 }
8069 
8070 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector unsigned char __b)8071 vec_slb(__vector unsigned short __a, __vector unsigned char __b) {
8072   return (__vector unsigned short)__builtin_s390_vslb(
8073     (__vector unsigned char)__a, __b);
8074 }
8075 
8076 // This prototype is deprecated.
8077 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector signed int __b)8078 vec_slb(__vector signed int __a, __vector signed int __b) {
8079   return (__vector signed int)__builtin_s390_vslb(
8080     (__vector unsigned char)__a, (__vector unsigned char)__b);
8081 }
8082 
8083 // This prototype is deprecated.
8084 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector unsigned int __b)8085 vec_slb(__vector signed int __a, __vector unsigned int __b) {
8086   return (__vector signed int)__builtin_s390_vslb(
8087     (__vector unsigned char)__a, (__vector unsigned char)__b);
8088 }
8089 
8090 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector unsigned char __b)8091 vec_slb(__vector signed int __a, __vector unsigned char __b) {
8092   return (__vector signed int)__builtin_s390_vslb(
8093     (__vector unsigned char)__a, __b);
8094 }
8095 
8096 // This prototype is deprecated.
8097 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector signed int __b)8098 vec_slb(__vector unsigned int __a, __vector signed int __b) {
8099   return (__vector unsigned int)__builtin_s390_vslb(
8100     (__vector unsigned char)__a, (__vector unsigned char)__b);
8101 }
8102 
8103 // This prototype is deprecated.
8104 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector unsigned int __b)8105 vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
8106   return (__vector unsigned int)__builtin_s390_vslb(
8107     (__vector unsigned char)__a, (__vector unsigned char)__b);
8108 }
8109 
8110 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector unsigned char __b)8111 vec_slb(__vector unsigned int __a, __vector unsigned char __b) {
8112   return (__vector unsigned int)__builtin_s390_vslb(
8113     (__vector unsigned char)__a, __b);
8114 }
8115 
8116 // This prototype is deprecated.
8117 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector signed long long __b)8118 vec_slb(__vector signed long long __a, __vector signed long long __b) {
8119   return (__vector signed long long)__builtin_s390_vslb(
8120     (__vector unsigned char)__a, (__vector unsigned char)__b);
8121 }
8122 
8123 // This prototype is deprecated.
8124 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector unsigned long long __b)8125 vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
8126   return (__vector signed long long)__builtin_s390_vslb(
8127     (__vector unsigned char)__a, (__vector unsigned char)__b);
8128 }
8129 
8130 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector unsigned char __b)8131 vec_slb(__vector signed long long __a, __vector unsigned char __b) {
8132   return (__vector signed long long)__builtin_s390_vslb(
8133     (__vector unsigned char)__a, __b);
8134 }
8135 
8136 // This prototype is deprecated.
8137 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector signed long long __b)8138 vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
8139   return (__vector unsigned long long)__builtin_s390_vslb(
8140     (__vector unsigned char)__a, (__vector unsigned char)__b);
8141 }
8142 
8143 // This prototype is deprecated.
8144 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector unsigned long long __b)8145 vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
8146   return (__vector unsigned long long)__builtin_s390_vslb(
8147     (__vector unsigned char)__a, (__vector unsigned char)__b);
8148 }
8149 
8150 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector unsigned char __b)8151 vec_slb(__vector unsigned long long __a, __vector unsigned char __b) {
8152   return (__vector unsigned long long)__builtin_s390_vslb(
8153     (__vector unsigned char)__a, __b);
8154 }
8155 
8156 static inline __ATTRS_o_ai __vector signed __int128
vec_slb(__vector signed __int128 __a,__vector unsigned char __b)8157 vec_slb(__vector signed __int128 __a, __vector unsigned char __b) {
8158   return (__vector signed __int128)__builtin_s390_vslb(
8159     (__vector unsigned char)__a, __b);
8160 }
8161 
8162 static inline __ATTRS_o_ai __vector unsigned __int128
vec_slb(__vector unsigned __int128 __a,__vector unsigned char __b)8163 vec_slb(__vector unsigned __int128 __a, __vector unsigned char __b) {
8164   return (__vector unsigned __int128)__builtin_s390_vslb(
8165     (__vector unsigned char)__a, __b);
8166 }
8167 
8168 #if __ARCH__ >= 12
8169 // This prototype is deprecated.
8170 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector signed int __b)8171 vec_slb(__vector float __a, __vector signed int __b) {
8172   return (__vector float)__builtin_s390_vslb(
8173     (__vector unsigned char)__a, (__vector unsigned char)__b);
8174 }
8175 
8176 // This prototype is deprecated.
8177 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector unsigned int __b)8178 vec_slb(__vector float __a, __vector unsigned int __b) {
8179   return (__vector float)__builtin_s390_vslb(
8180     (__vector unsigned char)__a, (__vector unsigned char)__b);
8181 }
8182 
8183 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector unsigned char __b)8184 vec_slb(__vector float __a, __vector unsigned char __b) {
8185   return (__vector float)__builtin_s390_vslb(
8186     (__vector unsigned char)__a, __b);
8187 }
8188 #endif
8189 
8190 // This prototype is deprecated.
8191 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector signed long long __b)8192 vec_slb(__vector double __a, __vector signed long long __b) {
8193   return (__vector double)__builtin_s390_vslb(
8194     (__vector unsigned char)__a, (__vector unsigned char)__b);
8195 }
8196 
8197 // This prototype is deprecated.
8198 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector unsigned long long __b)8199 vec_slb(__vector double __a, __vector unsigned long long __b) {
8200   return (__vector double)__builtin_s390_vslb(
8201     (__vector unsigned char)__a, (__vector unsigned char)__b);
8202 }
8203 
8204 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector unsigned char __b)8205 vec_slb(__vector double __a, __vector unsigned char __b) {
8206   return (__vector double)__builtin_s390_vslb(
8207     (__vector unsigned char)__a, __b);
8208 }
8209 
8210 /*-- vec_sld ----------------------------------------------------------------*/
8211 
8212 extern __ATTRS_o __vector signed char
8213 vec_sld(__vector signed char __a, __vector signed char __b, int __c)
8214   __constant_range(__c, 0, 15);
8215 
8216 // This prototype is deprecated.
8217 extern __ATTRS_o __vector __bool char
8218 vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
8219   __constant_range(__c, 0, 15);
8220 
8221 extern __ATTRS_o __vector unsigned char
8222 vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
8223   __constant_range(__c, 0, 15);
8224 
8225 extern __ATTRS_o __vector signed short
8226 vec_sld(__vector signed short __a, __vector signed short __b, int __c)
8227   __constant_range(__c, 0, 15);
8228 
8229 // This prototype is deprecated.
8230 extern __ATTRS_o __vector __bool short
8231 vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
8232   __constant_range(__c, 0, 15);
8233 
8234 extern __ATTRS_o __vector unsigned short
8235 vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
8236   __constant_range(__c, 0, 15);
8237 
8238 extern __ATTRS_o __vector signed int
8239 vec_sld(__vector signed int __a, __vector signed int __b, int __c)
8240   __constant_range(__c, 0, 15);
8241 
8242 // This prototype is deprecated.
8243 extern __ATTRS_o __vector __bool int
8244 vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
8245   __constant_range(__c, 0, 15);
8246 
8247 extern __ATTRS_o __vector unsigned int
8248 vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
8249   __constant_range(__c, 0, 15);
8250 
8251 extern __ATTRS_o __vector signed long long
8252 vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
8253   __constant_range(__c, 0, 15);
8254 
8255 // This prototype is deprecated.
8256 extern __ATTRS_o __vector __bool long long
8257 vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
8258   __constant_range(__c, 0, 15);
8259 
8260 extern __ATTRS_o __vector unsigned long long
8261 vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
8262         int __c)
8263   __constant_range(__c, 0, 15);
8264 
8265 extern __ATTRS_o __vector signed __int128
8266 vec_sld(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8267   __constant_range(__c, 0, 15);
8268 
8269 extern __ATTRS_o __vector unsigned __int128
8270 vec_sld(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8271         int __c)
8272   __constant_range(__c, 0, 15);
8273 
8274 #if __ARCH__ >= 12
8275 extern __ATTRS_o __vector float
8276 vec_sld(__vector float __a, __vector float __b, int __c)
8277   __constant_range(__c, 0, 15);
8278 #endif
8279 
8280 extern __ATTRS_o __vector double
8281 vec_sld(__vector double __a, __vector double __b, int __c)
8282   __constant_range(__c, 0, 15);
8283 
8284 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
8285   __builtin_s390_vsldb((__vector unsigned char)(X), \
8286                        (__vector unsigned char)(Y), (Z)))
8287 
8288 /*-- vec_sldw ---------------------------------------------------------------*/
8289 
8290 extern __ATTRS_o __vector signed char
8291 vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
8292   __constant_range(__c, 0, 3);
8293 
8294 extern __ATTRS_o __vector unsigned char
8295 vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
8296   __constant_range(__c, 0, 3);
8297 
8298 extern __ATTRS_o __vector signed short
8299 vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
8300   __constant_range(__c, 0, 3);
8301 
8302 extern __ATTRS_o __vector unsigned short
8303 vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
8304   __constant_range(__c, 0, 3);
8305 
8306 extern __ATTRS_o __vector signed int
8307 vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
8308   __constant_range(__c, 0, 3);
8309 
8310 extern __ATTRS_o __vector unsigned int
8311 vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
8312   __constant_range(__c, 0, 3);
8313 
8314 extern __ATTRS_o __vector signed long long
8315 vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
8316   __constant_range(__c, 0, 3);
8317 
8318 extern __ATTRS_o __vector unsigned long long
8319 vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
8320          int __c)
8321   __constant_range(__c, 0, 3);
8322 
8323 extern __ATTRS_o __vector signed __int128
8324 vec_sldw(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8325   __constant_range(__c, 0, 3);
8326 
8327 extern __ATTRS_o __vector unsigned __int128
8328 vec_sldw(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8329          int __c)
8330   __constant_range(__c, 0, 3);
8331 
8332 // This prototype is deprecated.
8333 extern __ATTRS_o __vector double
8334 vec_sldw(__vector double __a, __vector double __b, int __c)
8335   __constant_range(__c, 0, 3);
8336 
8337 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
8338   __builtin_s390_vsldb((__vector unsigned char)(X), \
8339                        (__vector unsigned char)(Y), (Z) * 4))
8340 
8341 /*-- vec_sldb ---------------------------------------------------------------*/
8342 
8343 #if __ARCH__ >= 13
8344 
8345 extern __ATTRS_o __vector signed char
8346 vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
8347   __constant_range(__c, 0, 7);
8348 
8349 extern __ATTRS_o __vector unsigned char
8350 vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
8351   __constant_range(__c, 0, 7);
8352 
8353 extern __ATTRS_o __vector signed short
8354 vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
8355   __constant_range(__c, 0, 7);
8356 
8357 extern __ATTRS_o __vector unsigned short
8358 vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
8359   __constant_range(__c, 0, 7);
8360 
8361 extern __ATTRS_o __vector signed int
8362 vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
8363   __constant_range(__c, 0, 7);
8364 
8365 extern __ATTRS_o __vector unsigned int
8366 vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
8367   __constant_range(__c, 0, 7);
8368 
8369 extern __ATTRS_o __vector signed long long
8370 vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
8371   __constant_range(__c, 0, 7);
8372 
8373 extern __ATTRS_o __vector unsigned long long
8374 vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
8375          int __c)
8376   __constant_range(__c, 0, 7);
8377 
8378 extern __ATTRS_o __vector signed __int128
8379 vec_sldb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8380   __constant_range(__c, 0, 7);
8381 
8382 extern __ATTRS_o __vector unsigned __int128
8383 vec_sldb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8384          int __c)
8385   __constant_range(__c, 0, 7);
8386 
8387 extern __ATTRS_o __vector float
8388 vec_sldb(__vector float __a, __vector float __b, int __c)
8389   __constant_range(__c, 0, 7);
8390 
8391 extern __ATTRS_o __vector double
8392 vec_sldb(__vector double __a, __vector double __b, int __c)
8393   __constant_range(__c, 0, 7);
8394 
8395 #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
8396   __builtin_s390_vsld((__vector unsigned char)(X), \
8397                       (__vector unsigned char)(Y), (Z)))
8398 
8399 #endif
8400 
8401 /*-- vec_sral ---------------------------------------------------------------*/
8402 
8403 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned char __b)8404 vec_sral(__vector signed char __a, __vector unsigned char __b) {
8405   return (__vector signed char)__builtin_s390_vsra(
8406     (__vector unsigned char)__a, __b);
8407 }
8408 
8409 // This prototype is deprecated.
8410 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned short __b)8411 vec_sral(__vector signed char __a, __vector unsigned short __b) {
8412   return (__vector signed char)__builtin_s390_vsra(
8413     (__vector unsigned char)__a, (__vector unsigned char)__b);
8414 }
8415 
8416 // This prototype is deprecated.
8417 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned int __b)8418 vec_sral(__vector signed char __a, __vector unsigned int __b) {
8419   return (__vector signed char)__builtin_s390_vsra(
8420     (__vector unsigned char)__a, (__vector unsigned char)__b);
8421 }
8422 
8423 // This prototype is deprecated.
8424 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned char __b)8425 vec_sral(__vector __bool char __a, __vector unsigned char __b) {
8426   return (__vector __bool char)__builtin_s390_vsra(
8427     (__vector unsigned char)__a, __b);
8428 }
8429 
8430 // This prototype is deprecated.
8431 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned short __b)8432 vec_sral(__vector __bool char __a, __vector unsigned short __b) {
8433   return (__vector __bool char)__builtin_s390_vsra(
8434     (__vector unsigned char)__a, (__vector unsigned char)__b);
8435 }
8436 
8437 // This prototype is deprecated.
8438 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned int __b)8439 vec_sral(__vector __bool char __a, __vector unsigned int __b) {
8440   return (__vector __bool char)__builtin_s390_vsra(
8441     (__vector unsigned char)__a, (__vector unsigned char)__b);
8442 }
8443 
8444 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned char __b)8445 vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
8446   return __builtin_s390_vsra(__a, __b);
8447 }
8448 
8449 // This prototype is deprecated.
8450 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned short __b)8451 vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
8452   return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
8453 }
8454 
8455 // This prototype is deprecated.
8456 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned int __b)8457 vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
8458   return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
8459 }
8460 
8461 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned char __b)8462 vec_sral(__vector signed short __a, __vector unsigned char __b) {
8463   return (__vector signed short)__builtin_s390_vsra(
8464     (__vector unsigned char)__a, __b);
8465 }
8466 
8467 // This prototype is deprecated.
8468 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned short __b)8469 vec_sral(__vector signed short __a, __vector unsigned short __b) {
8470   return (__vector signed short)__builtin_s390_vsra(
8471     (__vector unsigned char)__a, (__vector unsigned char)__b);
8472 }
8473 
8474 // This prototype is deprecated.
8475 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned int __b)8476 vec_sral(__vector signed short __a, __vector unsigned int __b) {
8477   return (__vector signed short)__builtin_s390_vsra(
8478     (__vector unsigned char)__a, (__vector unsigned char)__b);
8479 }
8480 
8481 // This prototype is deprecated.
8482 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned char __b)8483 vec_sral(__vector __bool short __a, __vector unsigned char __b) {
8484   return (__vector __bool short)__builtin_s390_vsra(
8485     (__vector unsigned char)__a, __b);
8486 }
8487 
8488 // This prototype is deprecated.
8489 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned short __b)8490 vec_sral(__vector __bool short __a, __vector unsigned short __b) {
8491   return (__vector __bool short)__builtin_s390_vsra(
8492     (__vector unsigned char)__a, (__vector unsigned char)__b);
8493 }
8494 
8495 // This prototype is deprecated.
8496 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned int __b)8497 vec_sral(__vector __bool short __a, __vector unsigned int __b) {
8498   return (__vector __bool short)__builtin_s390_vsra(
8499     (__vector unsigned char)__a, (__vector unsigned char)__b);
8500 }
8501 
8502 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned char __b)8503 vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
8504   return (__vector unsigned short)__builtin_s390_vsra(
8505     (__vector unsigned char)__a, __b);
8506 }
8507 
8508 // This prototype is deprecated.
8509 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned short __b)8510 vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
8511   return (__vector unsigned short)__builtin_s390_vsra(
8512     (__vector unsigned char)__a, (__vector unsigned char)__b);
8513 }
8514 
8515 // This prototype is deprecated.
8516 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned int __b)8517 vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
8518   return (__vector unsigned short)__builtin_s390_vsra(
8519     (__vector unsigned char)__a, (__vector unsigned char)__b);
8520 }
8521 
8522 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned char __b)8523 vec_sral(__vector signed int __a, __vector unsigned char __b) {
8524   return (__vector signed int)__builtin_s390_vsra(
8525     (__vector unsigned char)__a, __b);
8526 }
8527 
8528 // This prototype is deprecated.
8529 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned short __b)8530 vec_sral(__vector signed int __a, __vector unsigned short __b) {
8531   return (__vector signed int)__builtin_s390_vsra(
8532     (__vector unsigned char)__a, (__vector unsigned char)__b);
8533 }
8534 
8535 // This prototype is deprecated.
8536 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned int __b)8537 vec_sral(__vector signed int __a, __vector unsigned int __b) {
8538   return (__vector signed int)__builtin_s390_vsra(
8539     (__vector unsigned char)__a, (__vector unsigned char)__b);
8540 }
8541 
8542 // This prototype is deprecated.
8543 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned char __b)8544 vec_sral(__vector __bool int __a, __vector unsigned char __b) {
8545   return (__vector __bool int)__builtin_s390_vsra(
8546     (__vector unsigned char)__a, __b);
8547 }
8548 
8549 // This prototype is deprecated.
8550 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned short __b)8551 vec_sral(__vector __bool int __a, __vector unsigned short __b) {
8552   return (__vector __bool int)__builtin_s390_vsra(
8553     (__vector unsigned char)__a, (__vector unsigned char)__b);
8554 }
8555 
8556 // This prototype is deprecated.
8557 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned int __b)8558 vec_sral(__vector __bool int __a, __vector unsigned int __b) {
8559   return (__vector __bool int)__builtin_s390_vsra(
8560     (__vector unsigned char)__a, (__vector unsigned char)__b);
8561 }
8562 
8563 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned char __b)8564 vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
8565   return (__vector unsigned int)__builtin_s390_vsra(
8566     (__vector unsigned char)__a, __b);
8567 }
8568 
8569 // This prototype is deprecated.
8570 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned short __b)8571 vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
8572   return (__vector unsigned int)__builtin_s390_vsra(
8573     (__vector unsigned char)__a, (__vector unsigned char)__b);
8574 }
8575 
8576 // This prototype is deprecated.
8577 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned int __b)8578 vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
8579   return (__vector unsigned int)__builtin_s390_vsra(
8580     (__vector unsigned char)__a, (__vector unsigned char)__b);
8581 }
8582 
8583 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned char __b)8584 vec_sral(__vector signed long long __a, __vector unsigned char __b) {
8585   return (__vector signed long long)__builtin_s390_vsra(
8586     (__vector unsigned char)__a, __b);
8587 }
8588 
8589 // This prototype is deprecated.
8590 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned short __b)8591 vec_sral(__vector signed long long __a, __vector unsigned short __b) {
8592   return (__vector signed long long)__builtin_s390_vsra(
8593     (__vector unsigned char)__a, (__vector unsigned char)__b);
8594 }
8595 
8596 // This prototype is deprecated.
8597 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned int __b)8598 vec_sral(__vector signed long long __a, __vector unsigned int __b) {
8599   return (__vector signed long long)__builtin_s390_vsra(
8600     (__vector unsigned char)__a, (__vector unsigned char)__b);
8601 }
8602 
8603 // This prototype is deprecated.
8604 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned char __b)8605 vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
8606   return (__vector __bool long long)__builtin_s390_vsra(
8607     (__vector unsigned char)__a, __b);
8608 }
8609 
8610 // This prototype is deprecated.
8611 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned short __b)8612 vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
8613   return (__vector __bool long long)__builtin_s390_vsra(
8614     (__vector unsigned char)__a, (__vector unsigned char)__b);
8615 }
8616 
8617 // This prototype is deprecated.
8618 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned int __b)8619 vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
8620   return (__vector __bool long long)__builtin_s390_vsra(
8621     (__vector unsigned char)__a, (__vector unsigned char)__b);
8622 }
8623 
8624 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned char __b)8625 vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
8626   return (__vector unsigned long long)__builtin_s390_vsra(
8627     (__vector unsigned char)__a, __b);
8628 }
8629 
8630 // This prototype is deprecated.
8631 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned short __b)8632 vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
8633   return (__vector unsigned long long)__builtin_s390_vsra(
8634     (__vector unsigned char)__a, (__vector unsigned char)__b);
8635 }
8636 
8637 // This prototype is deprecated.
8638 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned int __b)8639 vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
8640   return (__vector unsigned long long)__builtin_s390_vsra(
8641     (__vector unsigned char)__a, (__vector unsigned char)__b);
8642 }
8643 
8644 static inline __ATTRS_o_ai __vector signed __int128
vec_sral(__vector signed __int128 __a,__vector unsigned char __b)8645 vec_sral(__vector signed __int128 __a, __vector unsigned char __b) {
8646   return (__vector signed __int128)__builtin_s390_vsra(
8647     (__vector unsigned char)__a, __b);
8648 }
8649 
8650 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sral(__vector unsigned __int128 __a,__vector unsigned char __b)8651 vec_sral(__vector unsigned __int128 __a, __vector unsigned char __b) {
8652   return (__vector unsigned __int128)__builtin_s390_vsra(
8653     (__vector unsigned char)__a, __b);
8654 }
8655 
8656 /*-- vec_srab ---------------------------------------------------------------*/
8657 
8658 // This prototype is deprecated.
8659 static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector signed char __b)8660 vec_srab(__vector signed char __a, __vector signed char __b) {
8661   return (__vector signed char)__builtin_s390_vsrab(
8662     (__vector unsigned char)__a, (__vector unsigned char)__b);
8663 }
8664 
8665 static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector unsigned char __b)8666 vec_srab(__vector signed char __a, __vector unsigned char __b) {
8667   return (__vector signed char)__builtin_s390_vsrab(
8668     (__vector unsigned char)__a, __b);
8669 }
8670 
8671 // This prototype is deprecated.
8672 static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector signed char __b)8673 vec_srab(__vector unsigned char __a, __vector signed char __b) {
8674   return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
8675 }
8676 
8677 static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector unsigned char __b)8678 vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
8679   return __builtin_s390_vsrab(__a, __b);
8680 }
8681 
8682 // This prototype is deprecated.
8683 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector signed short __b)8684 vec_srab(__vector signed short __a, __vector signed short __b) {
8685   return (__vector signed short)__builtin_s390_vsrab(
8686     (__vector unsigned char)__a, (__vector unsigned char)__b);
8687 }
8688 
8689 // This prototype is deprecated.
8690 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector unsigned short __b)8691 vec_srab(__vector signed short __a, __vector unsigned short __b) {
8692   return (__vector signed short)__builtin_s390_vsrab(
8693     (__vector unsigned char)__a, (__vector unsigned char)__b);
8694 }
8695 
8696 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector unsigned char __b)8697 vec_srab(__vector signed short __a, __vector unsigned char __b) {
8698   return (__vector signed short)__builtin_s390_vsrab(
8699     (__vector unsigned char)__a, __b);
8700 }
8701 
8702 // This prototype is deprecated.
8703 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector signed short __b)8704 vec_srab(__vector unsigned short __a, __vector signed short __b) {
8705   return (__vector unsigned short)__builtin_s390_vsrab(
8706     (__vector unsigned char)__a, (__vector unsigned char)__b);
8707 }
8708 
8709 // This prototype is deprecated.
8710 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector unsigned short __b)8711 vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
8712   return (__vector unsigned short)__builtin_s390_vsrab(
8713     (__vector unsigned char)__a, (__vector unsigned char)__b);
8714 }
8715 
8716 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector unsigned char __b)8717 vec_srab(__vector unsigned short __a, __vector unsigned char __b) {
8718   return (__vector unsigned short)__builtin_s390_vsrab(
8719     (__vector unsigned char)__a, __b);
8720 }
8721 
8722 // This prototype is deprecated.
8723 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector signed int __b)8724 vec_srab(__vector signed int __a, __vector signed int __b) {
8725   return (__vector signed int)__builtin_s390_vsrab(
8726     (__vector unsigned char)__a, (__vector unsigned char)__b);
8727 }
8728 
8729 // This prototype is deprecated.
8730 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector unsigned int __b)8731 vec_srab(__vector signed int __a, __vector unsigned int __b) {
8732   return (__vector signed int)__builtin_s390_vsrab(
8733     (__vector unsigned char)__a, (__vector unsigned char)__b);
8734 }
8735 
8736 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector unsigned char __b)8737 vec_srab(__vector signed int __a, __vector unsigned char __b) {
8738   return (__vector signed int)__builtin_s390_vsrab(
8739     (__vector unsigned char)__a, __b);
8740 }
8741 
8742 // This prototype is deprecated.
8743 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector signed int __b)8744 vec_srab(__vector unsigned int __a, __vector signed int __b) {
8745   return (__vector unsigned int)__builtin_s390_vsrab(
8746     (__vector unsigned char)__a, (__vector unsigned char)__b);
8747 }
8748 
8749 // This prototype is deprecated.
8750 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector unsigned int __b)8751 vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
8752   return (__vector unsigned int)__builtin_s390_vsrab(
8753     (__vector unsigned char)__a, (__vector unsigned char)__b);
8754 }
8755 
8756 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector unsigned char __b)8757 vec_srab(__vector unsigned int __a, __vector unsigned char __b) {
8758   return (__vector unsigned int)__builtin_s390_vsrab(
8759     (__vector unsigned char)__a, __b);
8760 }
8761 
8762 // This prototype is deprecated.
8763 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector signed long long __b)8764 vec_srab(__vector signed long long __a, __vector signed long long __b) {
8765   return (__vector signed long long)__builtin_s390_vsrab(
8766     (__vector unsigned char)__a, (__vector unsigned char)__b);
8767 }
8768 
8769 // This prototype is deprecated.
8770 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector unsigned long long __b)8771 vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
8772   return (__vector signed long long)__builtin_s390_vsrab(
8773     (__vector unsigned char)__a, (__vector unsigned char)__b);
8774 }
8775 
8776 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector unsigned char __b)8777 vec_srab(__vector signed long long __a, __vector unsigned char __b) {
8778   return (__vector signed long long)__builtin_s390_vsrab(
8779     (__vector unsigned char)__a, __b);
8780 }
8781 
8782 // This prototype is deprecated.
8783 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector signed long long __b)8784 vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
8785   return (__vector unsigned long long)__builtin_s390_vsrab(
8786     (__vector unsigned char)__a, (__vector unsigned char)__b);
8787 }
8788 
8789 // This prototype is deprecated.
8790 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector unsigned long long __b)8791 vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
8792   return (__vector unsigned long long)__builtin_s390_vsrab(
8793     (__vector unsigned char)__a, (__vector unsigned char)__b);
8794 }
8795 
8796 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector unsigned char __b)8797 vec_srab(__vector unsigned long long __a, __vector unsigned char __b) {
8798   return (__vector unsigned long long)__builtin_s390_vsrab(
8799     (__vector unsigned char)__a, __b);
8800 }
8801 
8802 static inline __ATTRS_o_ai __vector signed __int128
vec_srab(__vector signed __int128 __a,__vector unsigned char __b)8803 vec_srab(__vector signed __int128 __a, __vector unsigned char __b) {
8804   return (__vector signed __int128)__builtin_s390_vsrab(
8805     (__vector unsigned char)__a, __b);
8806 }
8807 
8808 static inline __ATTRS_o_ai __vector unsigned __int128
vec_srab(__vector unsigned __int128 __a,__vector unsigned char __b)8809 vec_srab(__vector unsigned __int128 __a, __vector unsigned char __b) {
8810   return (__vector unsigned __int128)__builtin_s390_vsrab(
8811     (__vector unsigned char)__a, __b);
8812 }
8813 
8814 #if __ARCH__ >= 12
8815 // This prototype is deprecated.
8816 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector signed int __b)8817 vec_srab(__vector float __a, __vector signed int __b) {
8818   return (__vector float)__builtin_s390_vsrab(
8819     (__vector unsigned char)__a, (__vector unsigned char)__b);
8820 }
8821 
8822 // This prototype is deprecated.
8823 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector unsigned int __b)8824 vec_srab(__vector float __a, __vector unsigned int __b) {
8825   return (__vector float)__builtin_s390_vsrab(
8826     (__vector unsigned char)__a, (__vector unsigned char)__b);
8827 }
8828 
8829 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector unsigned char __b)8830 vec_srab(__vector float __a, __vector unsigned char __b) {
8831   return (__vector float)__builtin_s390_vsrab(
8832     (__vector unsigned char)__a, __b);
8833 }
8834 #endif
8835 
8836 // This prototype is deprecated.
8837 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector signed long long __b)8838 vec_srab(__vector double __a, __vector signed long long __b) {
8839   return (__vector double)__builtin_s390_vsrab(
8840     (__vector unsigned char)__a, (__vector unsigned char)__b);
8841 }
8842 
8843 // This prototype is deprecated.
8844 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector unsigned long long __b)8845 vec_srab(__vector double __a, __vector unsigned long long __b) {
8846   return (__vector double)__builtin_s390_vsrab(
8847     (__vector unsigned char)__a, (__vector unsigned char)__b);
8848 }
8849 
8850 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector unsigned char __b)8851 vec_srab(__vector double __a, __vector unsigned char __b) {
8852   return (__vector double)__builtin_s390_vsrab(
8853     (__vector unsigned char)__a, __b);
8854 }
8855 
8856 /*-- vec_srl ----------------------------------------------------------------*/
8857 
8858 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned char __b)8859 vec_srl(__vector signed char __a, __vector unsigned char __b) {
8860   return (__vector signed char)__builtin_s390_vsrl(
8861     (__vector unsigned char)__a, __b);
8862 }
8863 
8864 // This prototype is deprecated.
8865 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned short __b)8866 vec_srl(__vector signed char __a, __vector unsigned short __b) {
8867   return (__vector signed char)__builtin_s390_vsrl(
8868     (__vector unsigned char)__a, (__vector unsigned char)__b);
8869 }
8870 
8871 // This prototype is deprecated.
8872 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned int __b)8873 vec_srl(__vector signed char __a, __vector unsigned int __b) {
8874   return (__vector signed char)__builtin_s390_vsrl(
8875     (__vector unsigned char)__a, (__vector unsigned char)__b);
8876 }
8877 
8878 // This prototype is deprecated.
8879 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned char __b)8880 vec_srl(__vector __bool char __a, __vector unsigned char __b) {
8881   return (__vector __bool char)__builtin_s390_vsrl(
8882     (__vector unsigned char)__a, __b);
8883 }
8884 
8885 // This prototype is deprecated.
8886 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned short __b)8887 vec_srl(__vector __bool char __a, __vector unsigned short __b) {
8888   return (__vector __bool char)__builtin_s390_vsrl(
8889     (__vector unsigned char)__a, (__vector unsigned char)__b);
8890 }
8891 
8892 // This prototype is deprecated.
8893 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned int __b)8894 vec_srl(__vector __bool char __a, __vector unsigned int __b) {
8895   return (__vector __bool char)__builtin_s390_vsrl(
8896     (__vector unsigned char)__a, (__vector unsigned char)__b);
8897 }
8898 
8899 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned char __b)8900 vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
8901   return __builtin_s390_vsrl(__a, __b);
8902 }
8903 
8904 // This prototype is deprecated.
8905 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned short __b)8906 vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
8907   return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
8908 }
8909 
8910 // This prototype is deprecated.
8911 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned int __b)8912 vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
8913   return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
8914 }
8915 
8916 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned char __b)8917 vec_srl(__vector signed short __a, __vector unsigned char __b) {
8918   return (__vector signed short)__builtin_s390_vsrl(
8919     (__vector unsigned char)__a, __b);
8920 }
8921 
8922 // This prototype is deprecated.
8923 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned short __b)8924 vec_srl(__vector signed short __a, __vector unsigned short __b) {
8925   return (__vector signed short)__builtin_s390_vsrl(
8926     (__vector unsigned char)__a, (__vector unsigned char)__b);
8927 }
8928 
8929 // This prototype is deprecated.
8930 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned int __b)8931 vec_srl(__vector signed short __a, __vector unsigned int __b) {
8932   return (__vector signed short)__builtin_s390_vsrl(
8933     (__vector unsigned char)__a, (__vector unsigned char)__b);
8934 }
8935 
8936 // This prototype is deprecated.
8937 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned char __b)8938 vec_srl(__vector __bool short __a, __vector unsigned char __b) {
8939   return (__vector __bool short)__builtin_s390_vsrl(
8940     (__vector unsigned char)__a, __b);
8941 }
8942 
8943 // This prototype is deprecated.
8944 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned short __b)8945 vec_srl(__vector __bool short __a, __vector unsigned short __b) {
8946   return (__vector __bool short)__builtin_s390_vsrl(
8947     (__vector unsigned char)__a, (__vector unsigned char)__b);
8948 }
8949 
8950 // This prototype is deprecated.
8951 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned int __b)8952 vec_srl(__vector __bool short __a, __vector unsigned int __b) {
8953   return (__vector __bool short)__builtin_s390_vsrl(
8954     (__vector unsigned char)__a, (__vector unsigned char)__b);
8955 }
8956 
8957 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned char __b)8958 vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
8959   return (__vector unsigned short)__builtin_s390_vsrl(
8960     (__vector unsigned char)__a, __b);
8961 }
8962 
8963 // This prototype is deprecated.
8964 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned short __b)8965 vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
8966   return (__vector unsigned short)__builtin_s390_vsrl(
8967     (__vector unsigned char)__a, (__vector unsigned char)__b);
8968 }
8969 
8970 // This prototype is deprecated.
8971 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned int __b)8972 vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
8973   return (__vector unsigned short)__builtin_s390_vsrl(
8974     (__vector unsigned char)__a, (__vector unsigned char)__b);
8975 }
8976 
8977 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned char __b)8978 vec_srl(__vector signed int __a, __vector unsigned char __b) {
8979   return (__vector signed int)__builtin_s390_vsrl(
8980     (__vector unsigned char)__a, __b);
8981 }
8982 
8983 // This prototype is deprecated.
8984 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned short __b)8985 vec_srl(__vector signed int __a, __vector unsigned short __b) {
8986   return (__vector signed int)__builtin_s390_vsrl(
8987     (__vector unsigned char)__a, (__vector unsigned char)__b);
8988 }
8989 
8990 // This prototype is deprecated.
8991 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned int __b)8992 vec_srl(__vector signed int __a, __vector unsigned int __b) {
8993   return (__vector signed int)__builtin_s390_vsrl(
8994     (__vector unsigned char)__a, (__vector unsigned char)__b);
8995 }
8996 
8997 // This prototype is deprecated.
8998 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned char __b)8999 vec_srl(__vector __bool int __a, __vector unsigned char __b) {
9000   return (__vector __bool int)__builtin_s390_vsrl(
9001     (__vector unsigned char)__a, __b);
9002 }
9003 
9004 // This prototype is deprecated.
9005 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned short __b)9006 vec_srl(__vector __bool int __a, __vector unsigned short __b) {
9007   return (__vector __bool int)__builtin_s390_vsrl(
9008     (__vector unsigned char)__a, (__vector unsigned char)__b);
9009 }
9010 
9011 // This prototype is deprecated.
9012 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned int __b)9013 vec_srl(__vector __bool int __a, __vector unsigned int __b) {
9014   return (__vector __bool int)__builtin_s390_vsrl(
9015     (__vector unsigned char)__a, (__vector unsigned char)__b);
9016 }
9017 
9018 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned char __b)9019 vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
9020   return (__vector unsigned int)__builtin_s390_vsrl(
9021     (__vector unsigned char)__a, __b);
9022 }
9023 
9024 // This prototype is deprecated.
9025 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned short __b)9026 vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
9027   return (__vector unsigned int)__builtin_s390_vsrl(
9028     (__vector unsigned char)__a, (__vector unsigned char)__b);
9029 }
9030 
9031 // This prototype is deprecated.
9032 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned int __b)9033 vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
9034   return (__vector unsigned int)__builtin_s390_vsrl(
9035     (__vector unsigned char)__a, (__vector unsigned char)__b);
9036 }
9037 
9038 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned char __b)9039 vec_srl(__vector signed long long __a, __vector unsigned char __b) {
9040   return (__vector signed long long)__builtin_s390_vsrl(
9041     (__vector unsigned char)__a, __b);
9042 }
9043 
9044 // This prototype is deprecated.
9045 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned short __b)9046 vec_srl(__vector signed long long __a, __vector unsigned short __b) {
9047   return (__vector signed long long)__builtin_s390_vsrl(
9048     (__vector unsigned char)__a, (__vector unsigned char)__b);
9049 }
9050 
9051 // This prototype is deprecated.
9052 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned int __b)9053 vec_srl(__vector signed long long __a, __vector unsigned int __b) {
9054   return (__vector signed long long)__builtin_s390_vsrl(
9055     (__vector unsigned char)__a, (__vector unsigned char)__b);
9056 }
9057 
9058 // This prototype is deprecated.
9059 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned char __b)9060 vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
9061   return (__vector __bool long long)__builtin_s390_vsrl(
9062     (__vector unsigned char)__a, __b);
9063 }
9064 
9065 // This prototype is deprecated.
9066 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned short __b)9067 vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
9068   return (__vector __bool long long)__builtin_s390_vsrl(
9069     (__vector unsigned char)__a, (__vector unsigned char)__b);
9070 }
9071 
9072 // This prototype is deprecated.
9073 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned int __b)9074 vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
9075   return (__vector __bool long long)__builtin_s390_vsrl(
9076     (__vector unsigned char)__a, (__vector unsigned char)__b);
9077 }
9078 
9079 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned char __b)9080 vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
9081   return (__vector unsigned long long)__builtin_s390_vsrl(
9082     (__vector unsigned char)__a, __b);
9083 }
9084 
9085 // This prototype is deprecated.
9086 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned short __b)9087 vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
9088   return (__vector unsigned long long)__builtin_s390_vsrl(
9089     (__vector unsigned char)__a, (__vector unsigned char)__b);
9090 }
9091 
9092 // This prototype is deprecated.
9093 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned int __b)9094 vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
9095   return (__vector unsigned long long)__builtin_s390_vsrl(
9096     (__vector unsigned char)__a, (__vector unsigned char)__b);
9097 }
9098 
9099 static inline __ATTRS_o_ai __vector signed __int128
vec_srl(__vector signed __int128 __a,__vector unsigned char __b)9100 vec_srl(__vector signed __int128 __a, __vector unsigned char __b) {
9101   return (__vector signed __int128)__builtin_s390_vsrl(
9102     (__vector unsigned char)__a, __b);
9103 }
9104 
9105 static inline __ATTRS_o_ai __vector unsigned __int128
vec_srl(__vector unsigned __int128 __a,__vector unsigned char __b)9106 vec_srl(__vector unsigned __int128 __a, __vector unsigned char __b) {
9107   return (__vector unsigned __int128)__builtin_s390_vsrl(
9108     (__vector unsigned char)__a, __b);
9109 }
9110 
9111 /*-- vec_srb ----------------------------------------------------------------*/
9112 
9113 // This prototype is deprecated.
9114 static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector signed char __b)9115 vec_srb(__vector signed char __a, __vector signed char __b) {
9116   return (__vector signed char)__builtin_s390_vsrlb(
9117     (__vector unsigned char)__a, (__vector unsigned char)__b);
9118 }
9119 
9120 static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector unsigned char __b)9121 vec_srb(__vector signed char __a, __vector unsigned char __b) {
9122   return (__vector signed char)__builtin_s390_vsrlb(
9123     (__vector unsigned char)__a, __b);
9124 }
9125 
9126 // This prototype is deprecated.
9127 static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector signed char __b)9128 vec_srb(__vector unsigned char __a, __vector signed char __b) {
9129   return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
9130 }
9131 
9132 static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector unsigned char __b)9133 vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
9134   return __builtin_s390_vsrlb(__a, __b);
9135 }
9136 
9137 // This prototype is deprecated.
9138 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector signed short __b)9139 vec_srb(__vector signed short __a, __vector signed short __b) {
9140   return (__vector signed short)__builtin_s390_vsrlb(
9141     (__vector unsigned char)__a, (__vector unsigned char)__b);
9142 }
9143 
9144 // This prototype is deprecated.
9145 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector unsigned short __b)9146 vec_srb(__vector signed short __a, __vector unsigned short __b) {
9147   return (__vector signed short)__builtin_s390_vsrlb(
9148     (__vector unsigned char)__a, (__vector unsigned char)__b);
9149 }
9150 
9151 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector unsigned char __b)9152 vec_srb(__vector signed short __a, __vector unsigned char __b) {
9153   return (__vector signed short)__builtin_s390_vsrlb(
9154     (__vector unsigned char)__a, __b);
9155 }
9156 
9157 // This prototype is deprecated.
9158 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector signed short __b)9159 vec_srb(__vector unsigned short __a, __vector signed short __b) {
9160   return (__vector unsigned short)__builtin_s390_vsrlb(
9161     (__vector unsigned char)__a, (__vector unsigned char)__b);
9162 }
9163 
9164 // This prototype is deprecated.
9165 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector unsigned short __b)9166 vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
9167   return (__vector unsigned short)__builtin_s390_vsrlb(
9168     (__vector unsigned char)__a, (__vector unsigned char)__b);
9169 }
9170 
9171 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector unsigned char __b)9172 vec_srb(__vector unsigned short __a, __vector unsigned char __b) {
9173   return (__vector unsigned short)__builtin_s390_vsrlb(
9174     (__vector unsigned char)__a, __b);
9175 }
9176 
9177 // This prototype is deprecated.
9178 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector signed int __b)9179 vec_srb(__vector signed int __a, __vector signed int __b) {
9180   return (__vector signed int)__builtin_s390_vsrlb(
9181     (__vector unsigned char)__a, (__vector unsigned char)__b);
9182 }
9183 
9184 // This prototype is deprecated.
9185 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector unsigned int __b)9186 vec_srb(__vector signed int __a, __vector unsigned int __b) {
9187   return (__vector signed int)__builtin_s390_vsrlb(
9188     (__vector unsigned char)__a, (__vector unsigned char)__b);
9189 }
9190 
9191 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector unsigned char __b)9192 vec_srb(__vector signed int __a, __vector unsigned char __b) {
9193   return (__vector signed int)__builtin_s390_vsrlb(
9194     (__vector unsigned char)__a, __b);
9195 }
9196 
9197 // This prototype is deprecated.
9198 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector signed int __b)9199 vec_srb(__vector unsigned int __a, __vector signed int __b) {
9200   return (__vector unsigned int)__builtin_s390_vsrlb(
9201     (__vector unsigned char)__a, (__vector unsigned char)__b);
9202 }
9203 
9204 // This prototype is deprecated.
9205 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector unsigned int __b)9206 vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
9207   return (__vector unsigned int)__builtin_s390_vsrlb(
9208     (__vector unsigned char)__a, (__vector unsigned char)__b);
9209 }
9210 
9211 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector unsigned char __b)9212 vec_srb(__vector unsigned int __a, __vector unsigned char __b) {
9213   return (__vector unsigned int)__builtin_s390_vsrlb(
9214     (__vector unsigned char)__a, __b);
9215 }
9216 
9217 // This prototype is deprecated.
9218 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector signed long long __b)9219 vec_srb(__vector signed long long __a, __vector signed long long __b) {
9220   return (__vector signed long long)__builtin_s390_vsrlb(
9221     (__vector unsigned char)__a, (__vector unsigned char)__b);
9222 }
9223 
9224 // This prototype is deprecated.
9225 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector unsigned long long __b)9226 vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
9227   return (__vector signed long long)__builtin_s390_vsrlb(
9228     (__vector unsigned char)__a, (__vector unsigned char)__b);
9229 }
9230 
9231 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector unsigned char __b)9232 vec_srb(__vector signed long long __a, __vector unsigned char __b) {
9233   return (__vector signed long long)__builtin_s390_vsrlb(
9234     (__vector unsigned char)__a, __b);
9235 }
9236 
9237 // This prototype is deprecated.
9238 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector signed long long __b)9239 vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
9240   return (__vector unsigned long long)__builtin_s390_vsrlb(
9241     (__vector unsigned char)__a, (__vector unsigned char)__b);
9242 }
9243 
9244 // This prototype is deprecated.
9245 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector unsigned long long __b)9246 vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
9247   return (__vector unsigned long long)__builtin_s390_vsrlb(
9248     (__vector unsigned char)__a, (__vector unsigned char)__b);
9249 }
9250 
9251 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector unsigned char __b)9252 vec_srb(__vector unsigned long long __a, __vector unsigned char __b) {
9253   return (__vector unsigned long long)__builtin_s390_vsrlb(
9254     (__vector unsigned char)__a, __b);
9255 }
9256 
9257 static inline __ATTRS_o_ai __vector signed __int128
vec_srb(__vector signed __int128 __a,__vector unsigned char __b)9258 vec_srb(__vector signed __int128 __a, __vector unsigned char __b) {
9259   return (__vector signed __int128)__builtin_s390_vsrlb(
9260     (__vector unsigned char)__a, __b);
9261 }
9262 
9263 static inline __ATTRS_o_ai __vector unsigned __int128
vec_srb(__vector unsigned __int128 __a,__vector unsigned char __b)9264 vec_srb(__vector unsigned __int128 __a, __vector unsigned char __b) {
9265   return (__vector unsigned __int128)__builtin_s390_vsrlb(
9266     (__vector unsigned char)__a, __b);
9267 }
9268 
9269 #if __ARCH__ >= 12
9270 // This prototype is deprecated.
9271 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector signed int __b)9272 vec_srb(__vector float __a, __vector signed int __b) {
9273   return (__vector float)__builtin_s390_vsrlb(
9274     (__vector unsigned char)__a, (__vector unsigned char)__b);
9275 }
9276 
9277 // This prototype is deprecated.
9278 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector unsigned int __b)9279 vec_srb(__vector float __a, __vector unsigned int __b) {
9280   return (__vector float)__builtin_s390_vsrlb(
9281     (__vector unsigned char)__a, (__vector unsigned char)__b);
9282 }
9283 
9284 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector unsigned char __b)9285 vec_srb(__vector float __a, __vector unsigned char __b) {
9286   return (__vector float)__builtin_s390_vsrlb(
9287     (__vector unsigned char)__a, __b);
9288 }
9289 #endif
9290 
9291 // This prototype is deprecated.
9292 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector signed long long __b)9293 vec_srb(__vector double __a, __vector signed long long __b) {
9294   return (__vector double)__builtin_s390_vsrlb(
9295     (__vector unsigned char)__a, (__vector unsigned char)__b);
9296 }
9297 
9298 // This prototype is deprecated.
9299 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector unsigned long long __b)9300 vec_srb(__vector double __a, __vector unsigned long long __b) {
9301   return (__vector double)__builtin_s390_vsrlb(
9302     (__vector unsigned char)__a, (__vector unsigned char)__b);
9303 }
9304 
9305 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector unsigned char __b)9306 vec_srb(__vector double __a, __vector unsigned char __b) {
9307   return (__vector double)__builtin_s390_vsrlb(
9308     (__vector unsigned char)__a, __b);
9309 }
9310 
9311 /*-- vec_srdb ---------------------------------------------------------------*/
9312 
9313 #if __ARCH__ >= 13
9314 
9315 extern __ATTRS_o __vector signed char
9316 vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
9317   __constant_range(__c, 0, 7);
9318 
9319 extern __ATTRS_o __vector unsigned char
9320 vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
9321   __constant_range(__c, 0, 7);
9322 
9323 extern __ATTRS_o __vector signed short
9324 vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
9325   __constant_range(__c, 0, 7);
9326 
9327 extern __ATTRS_o __vector unsigned short
9328 vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
9329   __constant_range(__c, 0, 7);
9330 
9331 extern __ATTRS_o __vector signed int
9332 vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
9333   __constant_range(__c, 0, 7);
9334 
9335 extern __ATTRS_o __vector unsigned int
9336 vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
9337   __constant_range(__c, 0, 7);
9338 
9339 extern __ATTRS_o __vector signed long long
9340 vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
9341   __constant_range(__c, 0, 7);
9342 
9343 extern __ATTRS_o __vector unsigned long long
9344 vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
9345          int __c)
9346   __constant_range(__c, 0, 7);
9347 
9348 extern __ATTRS_o __vector signed __int128
9349 vec_srdb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
9350   __constant_range(__c, 0, 7);
9351 
9352 extern __ATTRS_o __vector unsigned __int128
9353 vec_srdb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9354          int __c)
9355   __constant_range(__c, 0, 7);
9356 
9357 extern __ATTRS_o __vector float
9358 vec_srdb(__vector float __a, __vector float __b, int __c)
9359   __constant_range(__c, 0, 7);
9360 
9361 extern __ATTRS_o __vector double
9362 vec_srdb(__vector double __a, __vector double __b, int __c)
9363   __constant_range(__c, 0, 7);
9364 
9365 #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
9366   __builtin_s390_vsrd((__vector unsigned char)(X), \
9367                       (__vector unsigned char)(Y), (Z)))
9368 
9369 #endif
9370 
9371 /*-- vec_abs ----------------------------------------------------------------*/
9372 
9373 static inline __ATTRS_o_ai __vector signed char
vec_abs(__vector signed char __a)9374 vec_abs(__vector signed char __a) {
9375   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
9376 }
9377 
9378 static inline __ATTRS_o_ai __vector signed short
vec_abs(__vector signed short __a)9379 vec_abs(__vector signed short __a) {
9380   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
9381 }
9382 
9383 static inline __ATTRS_o_ai __vector signed int
vec_abs(__vector signed int __a)9384 vec_abs(__vector signed int __a) {
9385   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
9386 }
9387 
9388 static inline __ATTRS_o_ai __vector signed long long
vec_abs(__vector signed long long __a)9389 vec_abs(__vector signed long long __a) {
9390   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
9391 }
9392 
9393 static inline __ATTRS_o_ai __vector signed __int128
vec_abs(__vector signed __int128 __a)9394 vec_abs(__vector signed __int128 __a) {
9395   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed __int128)0));
9396 }
9397 
9398 #if __ARCH__ >= 12
9399 static inline __ATTRS_o_ai __vector float
vec_abs(__vector float __a)9400 vec_abs(__vector float __a) {
9401   return __builtin_s390_vflpsb(__a);
9402 }
9403 #endif
9404 
9405 static inline __ATTRS_o_ai __vector double
vec_abs(__vector double __a)9406 vec_abs(__vector double __a) {
9407   return __builtin_s390_vflpdb(__a);
9408 }
9409 
9410 /*-- vec_nabs ---------------------------------------------------------------*/
9411 
9412 #if __ARCH__ >= 12
9413 static inline __ATTRS_o_ai __vector float
vec_nabs(__vector float __a)9414 vec_nabs(__vector float __a) {
9415   return __builtin_s390_vflnsb(__a);
9416 }
9417 #endif
9418 
9419 static inline __ATTRS_o_ai __vector double
vec_nabs(__vector double __a)9420 vec_nabs(__vector double __a) {
9421   return __builtin_s390_vflndb(__a);
9422 }
9423 
9424 /*-- vec_max ----------------------------------------------------------------*/
9425 
9426 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector signed char __b)9427 vec_max(__vector signed char __a, __vector signed char __b) {
9428   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9429 }
9430 
9431 // This prototype is deprecated.
9432 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector __bool char __b)9433 vec_max(__vector signed char __a, __vector __bool char __b) {
9434   __vector signed char __bc = (__vector signed char)__b;
9435   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9436 }
9437 
9438 // This prototype is deprecated.
9439 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector __bool char __a,__vector signed char __b)9440 vec_max(__vector __bool char __a, __vector signed char __b) {
9441   __vector signed char __ac = (__vector signed char)__a;
9442   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9443 }
9444 
9445 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector unsigned char __b)9446 vec_max(__vector unsigned char __a, __vector unsigned char __b) {
9447   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9448 }
9449 
9450 // This prototype is deprecated.
9451 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector __bool char __b)9452 vec_max(__vector unsigned char __a, __vector __bool char __b) {
9453   __vector unsigned char __bc = (__vector unsigned char)__b;
9454   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9455 }
9456 
9457 // This prototype is deprecated.
9458 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector __bool char __a,__vector unsigned char __b)9459 vec_max(__vector __bool char __a, __vector unsigned char __b) {
9460   __vector unsigned char __ac = (__vector unsigned char)__a;
9461   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9462 }
9463 
9464 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector signed short __b)9465 vec_max(__vector signed short __a, __vector signed short __b) {
9466   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9467 }
9468 
9469 // This prototype is deprecated.
9470 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector __bool short __b)9471 vec_max(__vector signed short __a, __vector __bool short __b) {
9472   __vector signed short __bc = (__vector signed short)__b;
9473   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9474 }
9475 
9476 // This prototype is deprecated.
9477 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector __bool short __a,__vector signed short __b)9478 vec_max(__vector __bool short __a, __vector signed short __b) {
9479   __vector signed short __ac = (__vector signed short)__a;
9480   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9481 }
9482 
9483 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector unsigned short __b)9484 vec_max(__vector unsigned short __a, __vector unsigned short __b) {
9485   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9486 }
9487 
9488 // This prototype is deprecated.
9489 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector __bool short __b)9490 vec_max(__vector unsigned short __a, __vector __bool short __b) {
9491   __vector unsigned short __bc = (__vector unsigned short)__b;
9492   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9493 }
9494 
9495 // This prototype is deprecated.
9496 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector __bool short __a,__vector unsigned short __b)9497 vec_max(__vector __bool short __a, __vector unsigned short __b) {
9498   __vector unsigned short __ac = (__vector unsigned short)__a;
9499   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9500 }
9501 
9502 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector signed int __b)9503 vec_max(__vector signed int __a, __vector signed int __b) {
9504   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9505 }
9506 
9507 // This prototype is deprecated.
9508 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector __bool int __b)9509 vec_max(__vector signed int __a, __vector __bool int __b) {
9510   __vector signed int __bc = (__vector signed int)__b;
9511   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9512 }
9513 
9514 // This prototype is deprecated.
9515 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector __bool int __a,__vector signed int __b)9516 vec_max(__vector __bool int __a, __vector signed int __b) {
9517   __vector signed int __ac = (__vector signed int)__a;
9518   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9519 }
9520 
9521 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector unsigned int __b)9522 vec_max(__vector unsigned int __a, __vector unsigned int __b) {
9523   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9524 }
9525 
9526 // This prototype is deprecated.
9527 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector __bool int __b)9528 vec_max(__vector unsigned int __a, __vector __bool int __b) {
9529   __vector unsigned int __bc = (__vector unsigned int)__b;
9530   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9531 }
9532 
9533 // This prototype is deprecated.
9534 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector __bool int __a,__vector unsigned int __b)9535 vec_max(__vector __bool int __a, __vector unsigned int __b) {
9536   __vector unsigned int __ac = (__vector unsigned int)__a;
9537   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9538 }
9539 
9540 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector signed long long __b)9541 vec_max(__vector signed long long __a, __vector signed long long __b) {
9542   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9543 }
9544 
9545 // This prototype is deprecated.
9546 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector __bool long long __b)9547 vec_max(__vector signed long long __a, __vector __bool long long __b) {
9548   __vector signed long long __bc = (__vector signed long long)__b;
9549   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9550 }
9551 
9552 // This prototype is deprecated.
9553 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector __bool long long __a,__vector signed long long __b)9554 vec_max(__vector __bool long long __a, __vector signed long long __b) {
9555   __vector signed long long __ac = (__vector signed long long)__a;
9556   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9557 }
9558 
9559 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector unsigned long long __b)9560 vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
9561   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9562 }
9563 
9564 // This prototype is deprecated.
9565 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector __bool long long __b)9566 vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
9567   __vector unsigned long long __bc = (__vector unsigned long long)__b;
9568   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9569 }
9570 
9571 // This prototype is deprecated.
9572 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector __bool long long __a,__vector unsigned long long __b)9573 vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
9574   __vector unsigned long long __ac = (__vector unsigned long long)__a;
9575   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9576 }
9577 
9578 static inline __ATTRS_o_ai __vector signed __int128
vec_max(__vector signed __int128 __a,__vector signed __int128 __b)9579 vec_max(__vector signed __int128 __a, __vector signed __int128 __b) {
9580   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9581 }
9582 
9583 static inline __ATTRS_o_ai __vector unsigned __int128
vec_max(__vector unsigned __int128 __a,__vector unsigned __int128 __b)9584 vec_max(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9585   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9586 }
9587 
9588 #if __ARCH__ >= 12
9589 static inline __ATTRS_o_ai __vector float
vec_max(__vector float __a,__vector float __b)9590 vec_max(__vector float __a, __vector float __b) {
9591   return __builtin_s390_vfmaxsb(__a, __b, 0);
9592 }
9593 #endif
9594 
9595 static inline __ATTRS_o_ai __vector double
vec_max(__vector double __a,__vector double __b)9596 vec_max(__vector double __a, __vector double __b) {
9597 #if __ARCH__ >= 12
9598   return __builtin_s390_vfmaxdb(__a, __b, 0);
9599 #else
9600   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9601 #endif
9602 }
9603 
9604 /*-- vec_min ----------------------------------------------------------------*/
9605 
9606 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector signed char __b)9607 vec_min(__vector signed char __a, __vector signed char __b) {
9608   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9609 }
9610 
9611 // This prototype is deprecated.
9612 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector __bool char __b)9613 vec_min(__vector signed char __a, __vector __bool char __b) {
9614   __vector signed char __bc = (__vector signed char)__b;
9615   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9616 }
9617 
9618 // This prototype is deprecated.
9619 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector __bool char __a,__vector signed char __b)9620 vec_min(__vector __bool char __a, __vector signed char __b) {
9621   __vector signed char __ac = (__vector signed char)__a;
9622   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9623 }
9624 
9625 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector unsigned char __b)9626 vec_min(__vector unsigned char __a, __vector unsigned char __b) {
9627   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9628 }
9629 
9630 // This prototype is deprecated.
9631 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector __bool char __b)9632 vec_min(__vector unsigned char __a, __vector __bool char __b) {
9633   __vector unsigned char __bc = (__vector unsigned char)__b;
9634   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9635 }
9636 
9637 // This prototype is deprecated.
9638 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector __bool char __a,__vector unsigned char __b)9639 vec_min(__vector __bool char __a, __vector unsigned char __b) {
9640   __vector unsigned char __ac = (__vector unsigned char)__a;
9641   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9642 }
9643 
9644 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector signed short __b)9645 vec_min(__vector signed short __a, __vector signed short __b) {
9646   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9647 }
9648 
9649 // This prototype is deprecated.
9650 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector __bool short __b)9651 vec_min(__vector signed short __a, __vector __bool short __b) {
9652   __vector signed short __bc = (__vector signed short)__b;
9653   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9654 }
9655 
9656 // This prototype is deprecated.
9657 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector __bool short __a,__vector signed short __b)9658 vec_min(__vector __bool short __a, __vector signed short __b) {
9659   __vector signed short __ac = (__vector signed short)__a;
9660   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9661 }
9662 
9663 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector unsigned short __b)9664 vec_min(__vector unsigned short __a, __vector unsigned short __b) {
9665   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9666 }
9667 
9668 // This prototype is deprecated.
9669 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector __bool short __b)9670 vec_min(__vector unsigned short __a, __vector __bool short __b) {
9671   __vector unsigned short __bc = (__vector unsigned short)__b;
9672   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9673 }
9674 
9675 // This prototype is deprecated.
9676 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector __bool short __a,__vector unsigned short __b)9677 vec_min(__vector __bool short __a, __vector unsigned short __b) {
9678   __vector unsigned short __ac = (__vector unsigned short)__a;
9679   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9680 }
9681 
9682 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector signed int __b)9683 vec_min(__vector signed int __a, __vector signed int __b) {
9684   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9685 }
9686 
9687 // This prototype is deprecated.
9688 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector __bool int __b)9689 vec_min(__vector signed int __a, __vector __bool int __b) {
9690   __vector signed int __bc = (__vector signed int)__b;
9691   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9692 }
9693 
9694 // This prototype is deprecated.
9695 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector __bool int __a,__vector signed int __b)9696 vec_min(__vector __bool int __a, __vector signed int __b) {
9697   __vector signed int __ac = (__vector signed int)__a;
9698   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9699 }
9700 
9701 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector unsigned int __b)9702 vec_min(__vector unsigned int __a, __vector unsigned int __b) {
9703   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9704 }
9705 
9706 // This prototype is deprecated.
9707 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector __bool int __b)9708 vec_min(__vector unsigned int __a, __vector __bool int __b) {
9709   __vector unsigned int __bc = (__vector unsigned int)__b;
9710   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9711 }
9712 
9713 // This prototype is deprecated.
9714 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector __bool int __a,__vector unsigned int __b)9715 vec_min(__vector __bool int __a, __vector unsigned int __b) {
9716   __vector unsigned int __ac = (__vector unsigned int)__a;
9717   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9718 }
9719 
9720 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector signed long long __b)9721 vec_min(__vector signed long long __a, __vector signed long long __b) {
9722   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9723 }
9724 
9725 // This prototype is deprecated.
9726 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector __bool long long __b)9727 vec_min(__vector signed long long __a, __vector __bool long long __b) {
9728   __vector signed long long __bc = (__vector signed long long)__b;
9729   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9730 }
9731 
9732 // This prototype is deprecated.
9733 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector __bool long long __a,__vector signed long long __b)9734 vec_min(__vector __bool long long __a, __vector signed long long __b) {
9735   __vector signed long long __ac = (__vector signed long long)__a;
9736   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9737 }
9738 
9739 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector unsigned long long __b)9740 vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
9741   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9742 }
9743 
9744 // This prototype is deprecated.
9745 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector __bool long long __b)9746 vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
9747   __vector unsigned long long __bc = (__vector unsigned long long)__b;
9748   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9749 }
9750 
9751 // This prototype is deprecated.
9752 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector __bool long long __a,__vector unsigned long long __b)9753 vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
9754   __vector unsigned long long __ac = (__vector unsigned long long)__a;
9755   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9756 }
9757 
9758 static inline __ATTRS_o_ai __vector signed __int128
vec_min(__vector signed __int128 __a,__vector signed __int128 __b)9759 vec_min(__vector signed __int128 __a, __vector signed __int128 __b) {
9760   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9761 }
9762 
9763 static inline __ATTRS_o_ai __vector unsigned __int128
vec_min(__vector unsigned __int128 __a,__vector unsigned __int128 __b)9764 vec_min(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9765   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9766 }
9767 
9768 #if __ARCH__ >= 12
9769 static inline __ATTRS_o_ai __vector float
vec_min(__vector float __a,__vector float __b)9770 vec_min(__vector float __a, __vector float __b) {
9771   return __builtin_s390_vfminsb(__a, __b, 0);
9772 }
9773 #endif
9774 
9775 static inline __ATTRS_o_ai __vector double
vec_min(__vector double __a,__vector double __b)9776 vec_min(__vector double __a, __vector double __b) {
9777 #if __ARCH__ >= 12
9778   return __builtin_s390_vfmindb(__a, __b, 0);
9779 #else
9780   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9781 #endif
9782 }
9783 
9784 /*-- vec_add_u128 -----------------------------------------------------------*/
9785 
9786 // This prototype is deprecated.
9787 static inline __ATTRS_ai __vector unsigned char
vec_add_u128(__vector unsigned char __a,__vector unsigned char __b)9788 vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
9789   return (__vector unsigned char)(__vector unsigned __int128)
9790          ((__int128)__a + (__int128)__b);
9791 }
9792 
9793 /*-- vec_addc ---------------------------------------------------------------*/
9794 
9795 static inline __ATTRS_o_ai __vector unsigned char
vec_addc(__vector unsigned char __a,__vector unsigned char __b)9796 vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
9797   return __builtin_s390_vaccb(__a, __b);
9798 }
9799 
9800 static inline __ATTRS_o_ai __vector unsigned short
vec_addc(__vector unsigned short __a,__vector unsigned short __b)9801 vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
9802   return __builtin_s390_vacch(__a, __b);
9803 }
9804 
9805 static inline __ATTRS_o_ai __vector unsigned int
vec_addc(__vector unsigned int __a,__vector unsigned int __b)9806 vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
9807   return __builtin_s390_vaccf(__a, __b);
9808 }
9809 
9810 static inline __ATTRS_o_ai __vector unsigned long long
vec_addc(__vector unsigned long long __a,__vector unsigned long long __b)9811 vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
9812   return __builtin_s390_vaccg(__a, __b);
9813 }
9814 
9815 static inline __ATTRS_o_ai __vector unsigned __int128
vec_addc(__vector unsigned __int128 __a,__vector unsigned __int128 __b)9816 vec_addc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9817   return (__vector unsigned __int128)
9818          __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
9819 }
9820 
9821 /*-- vec_addc_u128 ----------------------------------------------------------*/
9822 
9823 // This prototype is deprecated.
9824 static inline __ATTRS_ai __vector unsigned char
vec_addc_u128(__vector unsigned char __a,__vector unsigned char __b)9825 vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
9826   return (__vector unsigned char)(__vector unsigned __int128)
9827          __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
9828 }
9829 
9830 /*-- vec_adde ---------------------------------------------------------------*/
9831 
9832 static inline __ATTRS_ai __vector unsigned __int128
vec_adde(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)9833 vec_adde(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9834          __vector unsigned __int128 __c) {
9835   return (__vector unsigned __int128)
9836          __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
9837                              (unsigned __int128)__c);
9838 }
9839 
9840 /*-- vec_adde_u128 ----------------------------------------------------------*/
9841 
9842 // This prototype is deprecated.
9843 static inline __ATTRS_ai __vector unsigned char
vec_adde_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9844 vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
9845               __vector unsigned char __c) {
9846   return (__vector unsigned char)(__vector unsigned __int128)
9847          __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
9848                              (unsigned __int128)__c);
9849 }
9850 
9851 /*-- vec_addec --------------------------------------------------------------*/
9852 
9853 static inline __ATTRS_ai __vector unsigned __int128
vec_addec(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)9854 vec_addec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9855           __vector unsigned __int128 __c) {
9856   return (__vector unsigned __int128)
9857          __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
9858                                (unsigned __int128)__c);
9859 }
9860 
9861 /*-- vec_addec_u128 ---------------------------------------------------------*/
9862 
9863 // This prototype is deprecated.
9864 static inline __ATTRS_ai __vector unsigned char
vec_addec_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9865 vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
9866                __vector unsigned char __c) {
9867   return (__vector unsigned char)(__vector unsigned __int128)
9868          __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
9869                                (unsigned __int128)__c);
9870 }
9871 
9872 /*-- vec_avg ----------------------------------------------------------------*/
9873 
9874 static inline __ATTRS_o_ai __vector signed char
vec_avg(__vector signed char __a,__vector signed char __b)9875 vec_avg(__vector signed char __a, __vector signed char __b) {
9876   return __builtin_s390_vavgb(__a, __b);
9877 }
9878 
9879 static inline __ATTRS_o_ai __vector signed short
vec_avg(__vector signed short __a,__vector signed short __b)9880 vec_avg(__vector signed short __a, __vector signed short __b) {
9881   return __builtin_s390_vavgh(__a, __b);
9882 }
9883 
9884 static inline __ATTRS_o_ai __vector signed int
vec_avg(__vector signed int __a,__vector signed int __b)9885 vec_avg(__vector signed int __a, __vector signed int __b) {
9886   return __builtin_s390_vavgf(__a, __b);
9887 }
9888 
9889 static inline __ATTRS_o_ai __vector signed long long
vec_avg(__vector signed long long __a,__vector signed long long __b)9890 vec_avg(__vector signed long long __a, __vector signed long long __b) {
9891   return __builtin_s390_vavgg(__a, __b);
9892 }
9893 
9894 #if __ARCH__ >= 15
9895 static inline __ATTRS_o_ai __vector signed __int128
vec_avg(__vector signed __int128 __a,__vector signed __int128 __b)9896 vec_avg(__vector signed __int128 __a, __vector signed __int128 __b) {
9897   return (__vector signed __int128)
9898          __builtin_s390_vavgq((signed __int128)__a, (signed __int128)__b);
9899 }
9900 #endif
9901 
9902 static inline __ATTRS_o_ai __vector unsigned char
vec_avg(__vector unsigned char __a,__vector unsigned char __b)9903 vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
9904   return __builtin_s390_vavglb(__a, __b);
9905 }
9906 
9907 static inline __ATTRS_o_ai __vector unsigned short
vec_avg(__vector unsigned short __a,__vector unsigned short __b)9908 vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
9909   return __builtin_s390_vavglh(__a, __b);
9910 }
9911 
9912 static inline __ATTRS_o_ai __vector unsigned int
vec_avg(__vector unsigned int __a,__vector unsigned int __b)9913 vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
9914   return __builtin_s390_vavglf(__a, __b);
9915 }
9916 
9917 static inline __ATTRS_o_ai __vector unsigned long long
vec_avg(__vector unsigned long long __a,__vector unsigned long long __b)9918 vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
9919   return __builtin_s390_vavglg(__a, __b);
9920 }
9921 
9922 #if __ARCH__ >= 15
9923 static inline __ATTRS_o_ai __vector unsigned __int128
vec_avg(__vector unsigned __int128 __a,__vector unsigned __int128 __b)9924 vec_avg(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9925   return (__vector unsigned __int128)
9926          __builtin_s390_vavglq((unsigned __int128)__a, (unsigned __int128)__b);
9927 }
9928 #endif
9929 
9930 /*-- vec_checksum -----------------------------------------------------------*/
9931 
9932 static inline __ATTRS_ai __vector unsigned int
vec_checksum(__vector unsigned int __a,__vector unsigned int __b)9933 vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
9934   return __builtin_s390_vcksm(__a, __b);
9935 }
9936 
9937 /*-- vec_gfmsum -------------------------------------------------------------*/
9938 
9939 static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum(__vector unsigned char __a,__vector unsigned char __b)9940 vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
9941   return __builtin_s390_vgfmb(__a, __b);
9942 }
9943 
9944 static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum(__vector unsigned short __a,__vector unsigned short __b)9945 vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
9946   return __builtin_s390_vgfmh(__a, __b);
9947 }
9948 
9949 static inline __ATTRS_o_ai __vector unsigned long long
vec_gfmsum(__vector unsigned int __a,__vector unsigned int __b)9950 vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
9951   return __builtin_s390_vgfmf(__a, __b);
9952 }
9953 
9954 static inline __ATTRS_o_ai __vector unsigned __int128
vec_gfmsum(__vector unsigned long long __a,__vector unsigned long long __b)9955 vec_gfmsum(__vector unsigned long long __a, __vector unsigned long long __b) {
9956   return (__vector unsigned __int128)__builtin_s390_vgfmg(__a, __b);
9957 }
9958 
9959 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
9960 
9961 // This prototype is deprecated.
9962 static inline __ATTRS_o_ai __vector unsigned char
vec_gfmsum_128(__vector unsigned long long __a,__vector unsigned long long __b)9963 vec_gfmsum_128(__vector unsigned long long __a,
9964                __vector unsigned long long __b) {
9965   return (__vector unsigned char)(__vector unsigned __int128)
9966          __builtin_s390_vgfmg(__a, __b);
9967 }
9968 
9969 /*-- vec_gfmsum_accum -------------------------------------------------------*/
9970 
9971 static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum_accum(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)9972 vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
9973                  __vector unsigned short __c) {
9974   return __builtin_s390_vgfmab(__a, __b, __c);
9975 }
9976 
9977 static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum_accum(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)9978 vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
9979                  __vector unsigned int __c) {
9980   return __builtin_s390_vgfmah(__a, __b, __c);
9981 }
9982 
9983 static inline __ATTRS_o_ai __vector unsigned long long
vec_gfmsum_accum(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)9984 vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
9985                  __vector unsigned long long __c) {
9986   return __builtin_s390_vgfmaf(__a, __b, __c);
9987 }
9988 
9989 static inline __ATTRS_o_ai __vector unsigned __int128
vec_gfmsum_accum(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned __int128 __c)9990 vec_gfmsum_accum(__vector unsigned long long __a, __vector unsigned long long __b,
9991                  __vector unsigned __int128 __c) {
9992   return (__vector unsigned __int128)
9993          __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
9994 }
9995 
9996 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
9997 
9998 // This prototype is deprecated.
9999 static inline __ATTRS_o_ai __vector unsigned char
vec_gfmsum_accum_128(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned char __c)10000 vec_gfmsum_accum_128(__vector unsigned long long __a,
10001                      __vector unsigned long long __b,
10002                      __vector unsigned char __c) {
10003   return (__vector unsigned char)(__vector unsigned __int128)
10004          __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
10005 }
10006 
10007 /*-- vec_mladd --------------------------------------------------------------*/
10008 
10009 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a,__vector signed char __b,__vector signed char __c)10010 vec_mladd(__vector signed char __a, __vector signed char __b,
10011           __vector signed char __c) {
10012   return __a * __b + __c;
10013 }
10014 
10015 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector unsigned char __a,__vector signed char __b,__vector signed char __c)10016 vec_mladd(__vector unsigned char __a, __vector signed char __b,
10017           __vector signed char __c) {
10018   return (__vector signed char)__a * __b + __c;
10019 }
10020 
10021 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a,__vector unsigned char __b,__vector unsigned char __c)10022 vec_mladd(__vector signed char __a, __vector unsigned char __b,
10023           __vector unsigned char __c) {
10024   return __a * (__vector signed char)__b + (__vector signed char)__c;
10025 }
10026 
10027 static inline __ATTRS_o_ai __vector unsigned char
vec_mladd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10028 vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
10029           __vector unsigned char __c) {
10030   return __a * __b + __c;
10031 }
10032 
10033 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a,__vector signed short __b,__vector signed short __c)10034 vec_mladd(__vector signed short __a, __vector signed short __b,
10035           __vector signed short __c) {
10036   return __a * __b + __c;
10037 }
10038 
10039 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector unsigned short __a,__vector signed short __b,__vector signed short __c)10040 vec_mladd(__vector unsigned short __a, __vector signed short __b,
10041           __vector signed short __c) {
10042   return (__vector signed short)__a * __b + __c;
10043 }
10044 
10045 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a,__vector unsigned short __b,__vector unsigned short __c)10046 vec_mladd(__vector signed short __a, __vector unsigned short __b,
10047           __vector unsigned short __c) {
10048   return __a * (__vector signed short)__b + (__vector signed short)__c;
10049 }
10050 
10051 static inline __ATTRS_o_ai __vector unsigned short
vec_mladd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)10052 vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
10053           __vector unsigned short __c) {
10054   return __a * __b + __c;
10055 }
10056 
10057 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a,__vector signed int __b,__vector signed int __c)10058 vec_mladd(__vector signed int __a, __vector signed int __b,
10059           __vector signed int __c) {
10060   return __a * __b + __c;
10061 }
10062 
10063 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector unsigned int __a,__vector signed int __b,__vector signed int __c)10064 vec_mladd(__vector unsigned int __a, __vector signed int __b,
10065           __vector signed int __c) {
10066   return (__vector signed int)__a * __b + __c;
10067 }
10068 
10069 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a,__vector unsigned int __b,__vector unsigned int __c)10070 vec_mladd(__vector signed int __a, __vector unsigned int __b,
10071           __vector unsigned int __c) {
10072   return __a * (__vector signed int)__b + (__vector signed int)__c;
10073 }
10074 
10075 static inline __ATTRS_o_ai __vector unsigned int
vec_mladd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)10076 vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
10077           __vector unsigned int __c) {
10078   return __a * __b + __c;
10079 }
10080 
10081 #if __ARCH__ >= 15
10082 static inline __ATTRS_o_ai __vector signed long long
vec_mladd(__vector signed long long __a,__vector signed long long __b,__vector signed long long __c)10083 vec_mladd(__vector signed long long __a, __vector signed long long __b,
10084           __vector signed long long __c) {
10085   return __a * __b + __c;
10086 }
10087 
10088 static inline __ATTRS_o_ai __vector signed long long
vec_mladd(__vector unsigned long long __a,__vector signed long long __b,__vector signed long long __c)10089 vec_mladd(__vector unsigned long long __a, __vector signed long long __b,
10090           __vector signed long long __c) {
10091   return (__vector signed long long)__a * __b + __c;
10092 }
10093 
10094 static inline __ATTRS_o_ai __vector signed long long
vec_mladd(__vector signed long long __a,__vector unsigned long long __b,__vector unsigned long long __c)10095 vec_mladd(__vector signed long long __a, __vector unsigned long long __b,
10096           __vector unsigned long long __c) {
10097   return __a * (__vector signed long long)__b + (__vector signed long long)__c;
10098 }
10099 
10100 static inline __ATTRS_o_ai __vector unsigned long long
vec_mladd(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned long long __c)10101 vec_mladd(__vector unsigned long long __a, __vector unsigned long long __b,
10102           __vector unsigned long long __c) {
10103   return __a * __b + __c;
10104 }
10105 
10106 static inline __ATTRS_o_ai __vector signed __int128
vec_mladd(__vector signed __int128 __a,__vector signed __int128 __b,__vector signed __int128 __c)10107 vec_mladd(__vector signed __int128 __a, __vector signed __int128 __b,
10108           __vector signed __int128 __c) {
10109   return __a * __b + __c;
10110 }
10111 
10112 static inline __ATTRS_o_ai __vector signed __int128
vec_mladd(__vector unsigned __int128 __a,__vector signed __int128 __b,__vector signed __int128 __c)10113 vec_mladd(__vector unsigned __int128 __a, __vector signed __int128 __b,
10114           __vector signed __int128 __c) {
10115   return (__vector signed __int128)__a * __b + __c;
10116 }
10117 
10118 static inline __ATTRS_o_ai __vector signed __int128
vec_mladd(__vector signed __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)10119 vec_mladd(__vector signed __int128 __a, __vector unsigned __int128 __b,
10120           __vector unsigned __int128 __c) {
10121   return __a * (__vector signed __int128)__b + (__vector signed __int128)__c;
10122 }
10123 
10124 static inline __ATTRS_o_ai __vector unsigned __int128
vec_mladd(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)10125 vec_mladd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10126           __vector unsigned __int128 __c) {
10127   return __a * __b + __c;
10128 }
10129 #endif
10130 
10131 /*-- vec_mhadd --------------------------------------------------------------*/
10132 
10133 static inline __ATTRS_o_ai __vector signed char
vec_mhadd(__vector signed char __a,__vector signed char __b,__vector signed char __c)10134 vec_mhadd(__vector signed char __a, __vector signed char __b,
10135           __vector signed char __c) {
10136   return __builtin_s390_vmahb(__a, __b, __c);
10137 }
10138 
10139 static inline __ATTRS_o_ai __vector unsigned char
vec_mhadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10140 vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
10141           __vector unsigned char __c) {
10142   return __builtin_s390_vmalhb(__a, __b, __c);
10143 }
10144 
10145 static inline __ATTRS_o_ai __vector signed short
vec_mhadd(__vector signed short __a,__vector signed short __b,__vector signed short __c)10146 vec_mhadd(__vector signed short __a, __vector signed short __b,
10147           __vector signed short __c) {
10148   return __builtin_s390_vmahh(__a, __b, __c);
10149 }
10150 
10151 static inline __ATTRS_o_ai __vector unsigned short
vec_mhadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)10152 vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
10153           __vector unsigned short __c) {
10154   return __builtin_s390_vmalhh(__a, __b, __c);
10155 }
10156 
10157 static inline __ATTRS_o_ai __vector signed int
vec_mhadd(__vector signed int __a,__vector signed int __b,__vector signed int __c)10158 vec_mhadd(__vector signed int __a, __vector signed int __b,
10159           __vector signed int __c) {
10160   return __builtin_s390_vmahf(__a, __b, __c);
10161 }
10162 
10163 static inline __ATTRS_o_ai __vector unsigned int
vec_mhadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)10164 vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
10165           __vector unsigned int __c) {
10166   return __builtin_s390_vmalhf(__a, __b, __c);
10167 }
10168 
10169 #if __ARCH__ >= 15
10170 static inline __ATTRS_o_ai __vector signed long long
vec_mhadd(__vector signed long long __a,__vector signed long long __b,__vector signed long long __c)10171 vec_mhadd(__vector signed long long __a, __vector signed long long __b,
10172           __vector signed long long __c) {
10173   return __builtin_s390_vmahg(__a, __b, __c);
10174 }
10175 
10176 static inline __ATTRS_o_ai __vector unsigned long long
vec_mhadd(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned long long __c)10177 vec_mhadd(__vector unsigned long long __a, __vector unsigned long long __b,
10178           __vector unsigned long long __c) {
10179   return __builtin_s390_vmalhg(__a, __b, __c);
10180 }
10181 
10182 static inline __ATTRS_o_ai __vector signed __int128
vec_mhadd(__vector signed __int128 __a,__vector signed __int128 __b,__vector signed __int128 __c)10183 vec_mhadd(__vector signed __int128 __a, __vector signed __int128 __b,
10184           __vector signed __int128 __c) {
10185   return (__vector signed __int128)
10186          __builtin_s390_vmahq((signed __int128)__a, (signed __int128)__b, (signed __int128)__c);
10187 }
10188 
10189 static inline __ATTRS_o_ai __vector unsigned __int128
vec_mhadd(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)10190 vec_mhadd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10191           __vector unsigned __int128 __c) {
10192   return (__vector unsigned __int128)
10193          __builtin_s390_vmalhq((unsigned __int128)__a, (unsigned __int128)__b, (unsigned __int128)__c);
10194 }
10195 #endif
10196 
10197 /*-- vec_meadd --------------------------------------------------------------*/
10198 
10199 static inline __ATTRS_o_ai __vector signed short
vec_meadd(__vector signed char __a,__vector signed char __b,__vector signed short __c)10200 vec_meadd(__vector signed char __a, __vector signed char __b,
10201           __vector signed short __c) {
10202   return __builtin_s390_vmaeb(__a, __b, __c);
10203 }
10204 
10205 static inline __ATTRS_o_ai __vector unsigned short
vec_meadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)10206 vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
10207           __vector unsigned short __c) {
10208   return __builtin_s390_vmaleb(__a, __b, __c);
10209 }
10210 
10211 static inline __ATTRS_o_ai __vector signed int
vec_meadd(__vector signed short __a,__vector signed short __b,__vector signed int __c)10212 vec_meadd(__vector signed short __a, __vector signed short __b,
10213           __vector signed int __c) {
10214   return __builtin_s390_vmaeh(__a, __b, __c);
10215 }
10216 
10217 static inline __ATTRS_o_ai __vector unsigned int
vec_meadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)10218 vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
10219           __vector unsigned int __c) {
10220   return __builtin_s390_vmaleh(__a, __b, __c);
10221 }
10222 
10223 static inline __ATTRS_o_ai __vector signed long long
vec_meadd(__vector signed int __a,__vector signed int __b,__vector signed long long __c)10224 vec_meadd(__vector signed int __a, __vector signed int __b,
10225           __vector signed long long __c) {
10226   return __builtin_s390_vmaef(__a, __b, __c);
10227 }
10228 
10229 static inline __ATTRS_o_ai __vector unsigned long long
vec_meadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)10230 vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
10231           __vector unsigned long long __c) {
10232   return __builtin_s390_vmalef(__a, __b, __c);
10233 }
10234 
10235 #if __ARCH__ >= 15
10236 static inline __ATTRS_o_ai __vector signed __int128
vec_meadd(__vector signed long long __a,__vector signed long long __b,__vector signed __int128 __c)10237 vec_meadd(__vector signed long long __a, __vector signed long long __b,
10238           __vector signed __int128 __c) {
10239   return (__vector signed __int128)
10240          __builtin_s390_vmaeg(__a, __b, (signed __int128)__c);
10241 }
10242 
10243 static inline __ATTRS_o_ai __vector unsigned __int128
vec_meadd(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned __int128 __c)10244 vec_meadd(__vector unsigned long long __a, __vector unsigned long long __b,
10245           __vector unsigned __int128 __c) {
10246   return (__vector unsigned __int128)
10247          __builtin_s390_vmaleg(__a, __b, (unsigned __int128)__c);
10248 }
10249 #endif
10250 
10251 /*-- vec_moadd --------------------------------------------------------------*/
10252 
10253 static inline __ATTRS_o_ai __vector signed short
vec_moadd(__vector signed char __a,__vector signed char __b,__vector signed short __c)10254 vec_moadd(__vector signed char __a, __vector signed char __b,
10255           __vector signed short __c) {
10256   return __builtin_s390_vmaob(__a, __b, __c);
10257 }
10258 
10259 static inline __ATTRS_o_ai __vector unsigned short
vec_moadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)10260 vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
10261           __vector unsigned short __c) {
10262   return __builtin_s390_vmalob(__a, __b, __c);
10263 }
10264 
10265 static inline __ATTRS_o_ai __vector signed int
vec_moadd(__vector signed short __a,__vector signed short __b,__vector signed int __c)10266 vec_moadd(__vector signed short __a, __vector signed short __b,
10267           __vector signed int __c) {
10268   return __builtin_s390_vmaoh(__a, __b, __c);
10269 }
10270 
10271 static inline __ATTRS_o_ai __vector unsigned int
vec_moadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)10272 vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
10273           __vector unsigned int __c) {
10274   return __builtin_s390_vmaloh(__a, __b, __c);
10275 }
10276 
10277 static inline __ATTRS_o_ai __vector signed long long
vec_moadd(__vector signed int __a,__vector signed int __b,__vector signed long long __c)10278 vec_moadd(__vector signed int __a, __vector signed int __b,
10279           __vector signed long long __c) {
10280   return __builtin_s390_vmaof(__a, __b, __c);
10281 }
10282 
10283 static inline __ATTRS_o_ai __vector unsigned long long
vec_moadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)10284 vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
10285           __vector unsigned long long __c) {
10286   return __builtin_s390_vmalof(__a, __b, __c);
10287 }
10288 
10289 #if __ARCH__ >= 15
10290 static inline __ATTRS_o_ai __vector signed __int128
vec_moadd(__vector signed long long __a,__vector signed long long __b,__vector signed __int128 __c)10291 vec_moadd(__vector signed long long __a, __vector signed long long __b,
10292           __vector signed __int128 __c) {
10293   return (__vector signed __int128)
10294          __builtin_s390_vmaog(__a, __b, (signed __int128)__c);
10295 }
10296 
10297 static inline __ATTRS_o_ai __vector unsigned __int128
vec_moadd(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned __int128 __c)10298 vec_moadd(__vector unsigned long long __a, __vector unsigned long long __b,
10299           __vector unsigned __int128 __c) {
10300   return (__vector unsigned __int128)
10301          __builtin_s390_vmalog(__a, __b, (unsigned __int128)__c);
10302 }
10303 #endif
10304 
10305 /*-- vec_mulh ---------------------------------------------------------------*/
10306 
10307 static inline __ATTRS_o_ai __vector signed char
vec_mulh(__vector signed char __a,__vector signed char __b)10308 vec_mulh(__vector signed char __a, __vector signed char __b) {
10309   return __builtin_s390_vmhb(__a, __b);
10310 }
10311 
10312 static inline __ATTRS_o_ai __vector unsigned char
vec_mulh(__vector unsigned char __a,__vector unsigned char __b)10313 vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
10314   return __builtin_s390_vmlhb(__a, __b);
10315 }
10316 
10317 static inline __ATTRS_o_ai __vector signed short
vec_mulh(__vector signed short __a,__vector signed short __b)10318 vec_mulh(__vector signed short __a, __vector signed short __b) {
10319   return __builtin_s390_vmhh(__a, __b);
10320 }
10321 
10322 static inline __ATTRS_o_ai __vector unsigned short
vec_mulh(__vector unsigned short __a,__vector unsigned short __b)10323 vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
10324   return __builtin_s390_vmlhh(__a, __b);
10325 }
10326 
10327 static inline __ATTRS_o_ai __vector signed int
vec_mulh(__vector signed int __a,__vector signed int __b)10328 vec_mulh(__vector signed int __a, __vector signed int __b) {
10329   return __builtin_s390_vmhf(__a, __b);
10330 }
10331 
10332 static inline __ATTRS_o_ai __vector unsigned int
vec_mulh(__vector unsigned int __a,__vector unsigned int __b)10333 vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
10334   return __builtin_s390_vmlhf(__a, __b);
10335 }
10336 
10337 #if __ARCH__ >= 15
10338 static inline __ATTRS_o_ai __vector signed long long
vec_mulh(__vector signed long long __a,__vector signed long long __b)10339 vec_mulh(__vector signed long long __a, __vector signed long long __b) {
10340   return __builtin_s390_vmhg(__a, __b);
10341 }
10342 
10343 static inline __ATTRS_o_ai __vector unsigned long long
vec_mulh(__vector unsigned long long __a,__vector unsigned long long __b)10344 vec_mulh(__vector unsigned long long __a, __vector unsigned long long __b) {
10345   return __builtin_s390_vmlhg(__a, __b);
10346 }
10347 
10348 static inline __ATTRS_o_ai __vector signed __int128
vec_mulh(__vector signed __int128 __a,__vector signed __int128 __b)10349 vec_mulh(__vector signed __int128 __a, __vector signed __int128 __b) {
10350   return (__vector signed __int128)
10351          __builtin_s390_vmhq((signed __int128)__a, (signed __int128)__b);
10352 }
10353 
10354 static inline __ATTRS_o_ai __vector unsigned __int128
vec_mulh(__vector unsigned __int128 __a,__vector unsigned __int128 __b)10355 vec_mulh(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
10356   return (__vector unsigned __int128)
10357          __builtin_s390_vmlhq((unsigned __int128)__a, (unsigned __int128)__b);
10358 }
10359 #endif
10360 
10361 /*-- vec_mule ---------------------------------------------------------------*/
10362 
10363 static inline __ATTRS_o_ai __vector signed short
vec_mule(__vector signed char __a,__vector signed char __b)10364 vec_mule(__vector signed char __a, __vector signed char __b) {
10365   return __builtin_s390_vmeb(__a, __b);
10366 }
10367 
10368 static inline __ATTRS_o_ai __vector unsigned short
vec_mule(__vector unsigned char __a,__vector unsigned char __b)10369 vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
10370   return __builtin_s390_vmleb(__a, __b);
10371 }
10372 
10373 static inline __ATTRS_o_ai __vector signed int
vec_mule(__vector signed short __a,__vector signed short __b)10374 vec_mule(__vector signed short __a, __vector signed short __b) {
10375   return __builtin_s390_vmeh(__a, __b);
10376 }
10377 
10378 static inline __ATTRS_o_ai __vector unsigned int
vec_mule(__vector unsigned short __a,__vector unsigned short __b)10379 vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
10380   return __builtin_s390_vmleh(__a, __b);
10381 }
10382 
10383 static inline __ATTRS_o_ai __vector signed long long
vec_mule(__vector signed int __a,__vector signed int __b)10384 vec_mule(__vector signed int __a, __vector signed int __b) {
10385   return __builtin_s390_vmef(__a, __b);
10386 }
10387 
10388 static inline __ATTRS_o_ai __vector unsigned long long
vec_mule(__vector unsigned int __a,__vector unsigned int __b)10389 vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
10390   return __builtin_s390_vmlef(__a, __b);
10391 }
10392 
10393 #if __ARCH__ >= 15
10394 static inline __ATTRS_o_ai __vector signed __int128
vec_mule(__vector signed long long __a,__vector signed long long __b)10395 vec_mule(__vector signed long long __a, __vector signed long long __b) {
10396   return (__vector signed __int128)__builtin_s390_vmeg(__a, __b);
10397 }
10398 
10399 static inline __ATTRS_o_ai __vector unsigned __int128
vec_mule(__vector unsigned long long __a,__vector unsigned long long __b)10400 vec_mule(__vector unsigned long long __a, __vector unsigned long long __b) {
10401   return (__vector unsigned __int128)__builtin_s390_vmleg(__a, __b);
10402 }
10403 #endif
10404 
10405 /*-- vec_mulo ---------------------------------------------------------------*/
10406 
10407 static inline __ATTRS_o_ai __vector signed short
vec_mulo(__vector signed char __a,__vector signed char __b)10408 vec_mulo(__vector signed char __a, __vector signed char __b) {
10409   return __builtin_s390_vmob(__a, __b);
10410 }
10411 
10412 static inline __ATTRS_o_ai __vector unsigned short
vec_mulo(__vector unsigned char __a,__vector unsigned char __b)10413 vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
10414   return __builtin_s390_vmlob(__a, __b);
10415 }
10416 
10417 static inline __ATTRS_o_ai __vector signed int
vec_mulo(__vector signed short __a,__vector signed short __b)10418 vec_mulo(__vector signed short __a, __vector signed short __b) {
10419   return __builtin_s390_vmoh(__a, __b);
10420 }
10421 
10422 static inline __ATTRS_o_ai __vector unsigned int
vec_mulo(__vector unsigned short __a,__vector unsigned short __b)10423 vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
10424   return __builtin_s390_vmloh(__a, __b);
10425 }
10426 
10427 static inline __ATTRS_o_ai __vector signed long long
vec_mulo(__vector signed int __a,__vector signed int __b)10428 vec_mulo(__vector signed int __a, __vector signed int __b) {
10429   return __builtin_s390_vmof(__a, __b);
10430 }
10431 
10432 static inline __ATTRS_o_ai __vector unsigned long long
vec_mulo(__vector unsigned int __a,__vector unsigned int __b)10433 vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
10434   return __builtin_s390_vmlof(__a, __b);
10435 }
10436 
10437 #if __ARCH__ >= 15
10438 static inline __ATTRS_o_ai __vector signed __int128
vec_mulo(__vector signed long long __a,__vector signed long long __b)10439 vec_mulo(__vector signed long long __a, __vector signed long long __b) {
10440   return (__vector signed __int128)__builtin_s390_vmog(__a, __b);
10441 }
10442 
10443 static inline __ATTRS_o_ai __vector unsigned __int128
vec_mulo(__vector unsigned long long __a,__vector unsigned long long __b)10444 vec_mulo(__vector unsigned long long __a, __vector unsigned long long __b) {
10445   return (__vector unsigned __int128)__builtin_s390_vmlog(__a, __b);
10446 }
10447 #endif
10448 
10449 /*-- vec_msum ---------------------------------------------------------------*/
10450 
10451 #if __ARCH__ >= 12
10452 extern __ATTRS_o __vector unsigned __int128
10453 vec_msum(__vector unsigned long long __a, __vector unsigned long long __b,
10454          __vector unsigned __int128 __c, int __d)
10455   __constant_range(__d, 0, 15);
10456 
10457 #define vec_msum(X, Y, Z, W) \
10458   ((__typeof__((vec_msum)((X), (Y), (Z), (W)))) \
10459    __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
10460 #endif
10461 
10462 /*-- vec_msum_u128 ----------------------------------------------------------*/
10463 
10464 #if __ARCH__ >= 12
10465 // This prototype is deprecated.
10466 extern __ATTRS_o __vector unsigned char
10467 vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b,
10468               __vector unsigned char __c, int __d)
10469   __constant_range(__d, 0, 15);
10470 
10471 #define vec_msum_u128(X, Y, Z, W) \
10472   ((__typeof__((vec_msum_u128)((X), (Y), (Z), (W)))) \
10473    (__vector unsigned __int128) \
10474    __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
10475 #endif
10476 
10477 /*-- vec_sub_u128 -----------------------------------------------------------*/
10478 
10479 // This prototype is deprecated.
10480 static inline __ATTRS_ai __vector unsigned char
vec_sub_u128(__vector unsigned char __a,__vector unsigned char __b)10481 vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
10482   return (__vector unsigned char)(__vector unsigned __int128)
10483          ((__int128)__a - (__int128)__b);
10484 }
10485 
10486 /*-- vec_subc ---------------------------------------------------------------*/
10487 
10488 static inline __ATTRS_o_ai __vector unsigned char
vec_subc(__vector unsigned char __a,__vector unsigned char __b)10489 vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
10490   return __builtin_s390_vscbib(__a, __b);
10491 }
10492 
10493 static inline __ATTRS_o_ai __vector unsigned short
vec_subc(__vector unsigned short __a,__vector unsigned short __b)10494 vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
10495   return __builtin_s390_vscbih(__a, __b);
10496 }
10497 
10498 static inline __ATTRS_o_ai __vector unsigned int
vec_subc(__vector unsigned int __a,__vector unsigned int __b)10499 vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
10500   return __builtin_s390_vscbif(__a, __b);
10501 }
10502 
10503 static inline __ATTRS_o_ai __vector unsigned long long
vec_subc(__vector unsigned long long __a,__vector unsigned long long __b)10504 vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
10505   return __builtin_s390_vscbig(__a, __b);
10506 }
10507 
10508 static inline __ATTRS_o_ai __vector unsigned __int128
vec_subc(__vector unsigned __int128 __a,__vector unsigned __int128 __b)10509 vec_subc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
10510   return (__vector unsigned __int128)
10511          __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
10512 }
10513 
10514 /*-- vec_subc_u128 ----------------------------------------------------------*/
10515 
10516 // This prototype is deprecated.
10517 static inline __ATTRS_ai __vector unsigned char
vec_subc_u128(__vector unsigned char __a,__vector unsigned char __b)10518 vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
10519   return (__vector unsigned char)(__vector unsigned __int128)
10520          __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
10521 }
10522 
10523 /*-- vec_sube ---------------------------------------------------------------*/
10524 
10525 static inline __ATTRS_ai __vector unsigned __int128
vec_sube(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)10526 vec_sube(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10527          __vector unsigned __int128 __c) {
10528   return (__vector unsigned __int128)
10529          __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
10530                               (unsigned __int128)__c);
10531 }
10532 
10533 /*-- vec_sube_u128 ----------------------------------------------------------*/
10534 
10535 // This prototype is deprecated.
10536 static inline __ATTRS_ai __vector unsigned char
vec_sube_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10537 vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
10538               __vector unsigned char __c) {
10539   return (__vector unsigned char)(__vector unsigned __int128)
10540          __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
10541                               (unsigned __int128)__c);
10542 }
10543 
10544 /*-- vec_subec --------------------------------------------------------------*/
10545 
10546 static inline __ATTRS_ai __vector unsigned __int128
vec_subec(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)10547 vec_subec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10548           __vector unsigned __int128 __c) {
10549   return (__vector unsigned __int128)
10550          __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
10551                                 (unsigned __int128)__c);
10552 }
10553 
10554 /*-- vec_subec_u128 ---------------------------------------------------------*/
10555 
10556 // This prototype is deprecated.
10557 static inline __ATTRS_ai __vector unsigned char
vec_subec_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10558 vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
10559                __vector unsigned char __c) {
10560   return (__vector unsigned char)(__vector unsigned __int128)
10561          __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
10562                                 (unsigned __int128)__c);
10563 }
10564 
10565 /*-- vec_sum2 ---------------------------------------------------------------*/
10566 
10567 static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned short __a,__vector unsigned short __b)10568 vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
10569   return __builtin_s390_vsumgh(__a, __b);
10570 }
10571 
10572 static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned int __a,__vector unsigned int __b)10573 vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
10574   return __builtin_s390_vsumgf(__a, __b);
10575 }
10576 
10577 /*-- vec_sum ----------------------------------------------------------------*/
10578 
10579 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sum(__vector unsigned int __a,__vector unsigned int __b)10580 vec_sum(__vector unsigned int __a, __vector unsigned int __b) {
10581   return (__vector unsigned __int128)__builtin_s390_vsumqf(__a, __b);
10582 }
10583 
10584 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sum(__vector unsigned long long __a,__vector unsigned long long __b)10585 vec_sum(__vector unsigned long long __a, __vector unsigned long long __b) {
10586   return (__vector unsigned __int128)__builtin_s390_vsumqg(__a, __b);
10587 }
10588 
10589 /*-- vec_sum_u128 -----------------------------------------------------------*/
10590 
10591 // This prototype is deprecated.
10592 static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned int __a,__vector unsigned int __b)10593 vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
10594   return (__vector unsigned char)(__vector unsigned __int128)
10595          __builtin_s390_vsumqf(__a, __b);
10596 }
10597 
10598 // This prototype is deprecated.
10599 static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned long long __a,__vector unsigned long long __b)10600 vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
10601   return (__vector unsigned char)(__vector unsigned __int128)
10602          __builtin_s390_vsumqg(__a, __b);
10603 }
10604 
10605 /*-- vec_sum4 ---------------------------------------------------------------*/
10606 
10607 static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned char __a,__vector unsigned char __b)10608 vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
10609   return __builtin_s390_vsumb(__a, __b);
10610 }
10611 
10612 static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned short __a,__vector unsigned short __b)10613 vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
10614   return __builtin_s390_vsumh(__a, __b);
10615 }
10616 
10617 /*-- vec_test_mask ----------------------------------------------------------*/
10618 
10619 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed char __a,__vector unsigned char __b)10620 vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
10621   return __builtin_s390_vtm((__vector unsigned char)__a,
10622                             (__vector unsigned char)__b);
10623 }
10624 
10625 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned char __a,__vector unsigned char __b)10626 vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
10627   return __builtin_s390_vtm(__a, __b);
10628 }
10629 
10630 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed short __a,__vector unsigned short __b)10631 vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
10632   return __builtin_s390_vtm((__vector unsigned char)__a,
10633                             (__vector unsigned char)__b);
10634 }
10635 
10636 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned short __a,__vector unsigned short __b)10637 vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
10638   return __builtin_s390_vtm((__vector unsigned char)__a,
10639                             (__vector unsigned char)__b);
10640 }
10641 
10642 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed int __a,__vector unsigned int __b)10643 vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
10644   return __builtin_s390_vtm((__vector unsigned char)__a,
10645                             (__vector unsigned char)__b);
10646 }
10647 
10648 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned int __a,__vector unsigned int __b)10649 vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
10650   return __builtin_s390_vtm((__vector unsigned char)__a,
10651                             (__vector unsigned char)__b);
10652 }
10653 
10654 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed long long __a,__vector unsigned long long __b)10655 vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
10656   return __builtin_s390_vtm((__vector unsigned char)__a,
10657                             (__vector unsigned char)__b);
10658 }
10659 
10660 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned long long __a,__vector unsigned long long __b)10661 vec_test_mask(__vector unsigned long long __a,
10662               __vector unsigned long long __b) {
10663   return __builtin_s390_vtm((__vector unsigned char)__a,
10664                             (__vector unsigned char)__b);
10665 }
10666 
10667 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed __int128 __a,__vector unsigned __int128 __b)10668 vec_test_mask(__vector signed __int128 __a, __vector unsigned __int128 __b) {
10669   return __builtin_s390_vtm((__vector unsigned char)__a,
10670                             (__vector unsigned char)__b);
10671 }
10672 
10673 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned __int128 __a,__vector unsigned __int128 __b)10674 vec_test_mask(__vector unsigned __int128 __a,
10675               __vector unsigned __int128 __b) {
10676   return __builtin_s390_vtm((__vector unsigned char)__a,
10677                             (__vector unsigned char)__b);
10678 }
10679 
10680 #if __ARCH__ >= 12
10681 static inline __ATTRS_o_ai int
vec_test_mask(__vector float __a,__vector unsigned int __b)10682 vec_test_mask(__vector float __a, __vector unsigned int __b) {
10683   return __builtin_s390_vtm((__vector unsigned char)__a,
10684                             (__vector unsigned char)__b);
10685 }
10686 #endif
10687 
10688 static inline __ATTRS_o_ai int
vec_test_mask(__vector double __a,__vector unsigned long long __b)10689 vec_test_mask(__vector double __a, __vector unsigned long long __b) {
10690   return __builtin_s390_vtm((__vector unsigned char)__a,
10691                             (__vector unsigned char)__b);
10692 }
10693 
10694 /*-- vec_madd ---------------------------------------------------------------*/
10695 
10696 #if __ARCH__ >= 12
10697 static inline __ATTRS_o_ai __vector float
vec_madd(__vector float __a,__vector float __b,__vector float __c)10698 vec_madd(__vector float __a, __vector float __b, __vector float __c) {
10699   return __builtin_s390_vfmasb(__a, __b, __c);
10700 }
10701 #endif
10702 
10703 static inline __ATTRS_o_ai __vector double
vec_madd(__vector double __a,__vector double __b,__vector double __c)10704 vec_madd(__vector double __a, __vector double __b, __vector double __c) {
10705   return __builtin_s390_vfmadb(__a, __b, __c);
10706 }
10707 
10708 /*-- vec_msub ---------------------------------------------------------------*/
10709 
10710 #if __ARCH__ >= 12
10711 static inline __ATTRS_o_ai __vector float
vec_msub(__vector float __a,__vector float __b,__vector float __c)10712 vec_msub(__vector float __a, __vector float __b, __vector float __c) {
10713   return __builtin_s390_vfmssb(__a, __b, __c);
10714 }
10715 #endif
10716 
10717 static inline __ATTRS_o_ai __vector double
vec_msub(__vector double __a,__vector double __b,__vector double __c)10718 vec_msub(__vector double __a, __vector double __b, __vector double __c) {
10719   return __builtin_s390_vfmsdb(__a, __b, __c);
10720 }
10721 
10722 /*-- vec_nmadd ---------------------------------------------------------------*/
10723 
10724 #if __ARCH__ >= 12
10725 static inline __ATTRS_o_ai __vector float
vec_nmadd(__vector float __a,__vector float __b,__vector float __c)10726 vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
10727   return __builtin_s390_vfnmasb(__a, __b, __c);
10728 }
10729 
10730 static inline __ATTRS_o_ai __vector double
vec_nmadd(__vector double __a,__vector double __b,__vector double __c)10731 vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
10732   return __builtin_s390_vfnmadb(__a, __b, __c);
10733 }
10734 #endif
10735 
10736 /*-- vec_nmsub ---------------------------------------------------------------*/
10737 
10738 #if __ARCH__ >= 12
10739 static inline __ATTRS_o_ai __vector float
vec_nmsub(__vector float __a,__vector float __b,__vector float __c)10740 vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
10741   return __builtin_s390_vfnmssb(__a, __b, __c);
10742 }
10743 
10744 static inline __ATTRS_o_ai __vector double
vec_nmsub(__vector double __a,__vector double __b,__vector double __c)10745 vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
10746   return __builtin_s390_vfnmsdb(__a, __b, __c);
10747 }
10748 #endif
10749 
10750 /*-- vec_sqrt ---------------------------------------------------------------*/
10751 
10752 #if __ARCH__ >= 12
10753 static inline __ATTRS_o_ai __vector float
vec_sqrt(__vector float __a)10754 vec_sqrt(__vector float __a) {
10755   return __builtin_s390_vfsqsb(__a);
10756 }
10757 #endif
10758 
10759 static inline __ATTRS_o_ai __vector double
vec_sqrt(__vector double __a)10760 vec_sqrt(__vector double __a) {
10761   return __builtin_s390_vfsqdb(__a);
10762 }
10763 
10764 /*-- vec_ld2f ---------------------------------------------------------------*/
10765 
10766 // This prototype is deprecated.
10767 static inline __ATTRS_ai __vector double
vec_ld2f(const float * __ptr)10768 vec_ld2f(const float *__ptr) {
10769   typedef float __v2f32 __attribute__((__vector_size__(8)));
10770   return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
10771 }
10772 
10773 /*-- vec_st2f ---------------------------------------------------------------*/
10774 
10775 // This prototype is deprecated.
10776 static inline __ATTRS_ai void
vec_st2f(__vector double __a,float * __ptr)10777 vec_st2f(__vector double __a, float *__ptr) {
10778   typedef float __v2f32 __attribute__((__vector_size__(8)));
10779   *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
10780 }
10781 
10782 /*-- vec_ctd ----------------------------------------------------------------*/
10783 
10784 // This prototype is deprecated.
10785 static inline __ATTRS_o_ai __vector double
vec_ctd(__vector signed long long __a,int __b)10786 vec_ctd(__vector signed long long __a, int __b)
10787   __constant_range(__b, 0, 31) {
10788   __vector double __conv = __builtin_convertvector(__a, __vector double);
10789   __conv *= ((__vector double)(__vector unsigned long long)
10790              ((0x3ffULL - __b) << 52));
10791   return __conv;
10792 }
10793 
10794 // This prototype is deprecated.
10795 static inline __ATTRS_o_ai __vector double
vec_ctd(__vector unsigned long long __a,int __b)10796 vec_ctd(__vector unsigned long long __a, int __b)
10797   __constant_range(__b, 0, 31) {
10798   __vector double __conv = __builtin_convertvector(__a, __vector double);
10799   __conv *= ((__vector double)(__vector unsigned long long)
10800              ((0x3ffULL - __b) << 52));
10801   return __conv;
10802 }
10803 
10804 /*-- vec_ctsl ---------------------------------------------------------------*/
10805 
10806 // This prototype is deprecated.
10807 static inline __ATTRS_o_ai __vector signed long long
vec_ctsl(__vector double __a,int __b)10808 vec_ctsl(__vector double __a, int __b)
10809   __constant_range(__b, 0, 31) {
10810   __a *= ((__vector double)(__vector unsigned long long)
10811           ((0x3ffULL + __b) << 52));
10812   return __builtin_convertvector(__a, __vector signed long long);
10813 }
10814 
10815 /*-- vec_ctul ---------------------------------------------------------------*/
10816 
10817 // This prototype is deprecated.
10818 static inline __ATTRS_o_ai __vector unsigned long long
vec_ctul(__vector double __a,int __b)10819 vec_ctul(__vector double __a, int __b)
10820   __constant_range(__b, 0, 31) {
10821   __a *= ((__vector double)(__vector unsigned long long)
10822           ((0x3ffULL + __b) << 52));
10823   return __builtin_convertvector(__a, __vector unsigned long long);
10824 }
10825 
10826 /*-- vec_doublee ------------------------------------------------------------*/
10827 
10828 #if __ARCH__ >= 12
10829 static inline __ATTRS_ai __vector double
vec_doublee(__vector float __a)10830 vec_doublee(__vector float __a) {
10831   typedef float __v2f32 __attribute__((__vector_size__(8)));
10832   __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
10833   return __builtin_convertvector(__pack, __vector double);
10834 }
10835 #endif
10836 
10837 /*-- vec_floate -------------------------------------------------------------*/
10838 
10839 #if __ARCH__ >= 12
10840 static inline __ATTRS_ai __vector float
vec_floate(__vector double __a)10841 vec_floate(__vector double __a) {
10842   typedef float __v2f32 __attribute__((__vector_size__(8)));
10843   __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
10844   return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
10845 }
10846 #endif
10847 
10848 /*-- vec_double -------------------------------------------------------------*/
10849 
10850 static inline __ATTRS_o_ai __vector double
vec_double(__vector signed long long __a)10851 vec_double(__vector signed long long __a) {
10852   return __builtin_convertvector(__a, __vector double);
10853 }
10854 
10855 static inline __ATTRS_o_ai __vector double
vec_double(__vector unsigned long long __a)10856 vec_double(__vector unsigned long long __a) {
10857   return __builtin_convertvector(__a, __vector double);
10858 }
10859 
10860 /*-- vec_float --------------------------------------------------------------*/
10861 
10862 #if __ARCH__ >= 13
10863 
10864 static inline __ATTRS_o_ai __vector float
vec_float(__vector signed int __a)10865 vec_float(__vector signed int __a) {
10866   return __builtin_convertvector(__a, __vector float);
10867 }
10868 
10869 static inline __ATTRS_o_ai __vector float
vec_float(__vector unsigned int __a)10870 vec_float(__vector unsigned int __a) {
10871   return __builtin_convertvector(__a, __vector float);
10872 }
10873 
10874 #endif
10875 
10876 /*-- vec_signed -------------------------------------------------------------*/
10877 
10878 static inline __ATTRS_o_ai __vector signed long long
vec_signed(__vector double __a)10879 vec_signed(__vector double __a) {
10880   return __builtin_convertvector(__a, __vector signed long long);
10881 }
10882 
10883 #if __ARCH__ >= 13
10884 static inline __ATTRS_o_ai __vector signed int
vec_signed(__vector float __a)10885 vec_signed(__vector float __a) {
10886   return __builtin_convertvector(__a, __vector signed int);
10887 }
10888 #endif
10889 
10890 /*-- vec_unsigned -----------------------------------------------------------*/
10891 
10892 static inline __ATTRS_o_ai __vector unsigned long long
vec_unsigned(__vector double __a)10893 vec_unsigned(__vector double __a) {
10894   return __builtin_convertvector(__a, __vector unsigned long long);
10895 }
10896 
10897 #if __ARCH__ >= 13
10898 static inline __ATTRS_o_ai __vector unsigned int
vec_unsigned(__vector float __a)10899 vec_unsigned(__vector float __a) {
10900   return __builtin_convertvector(__a, __vector unsigned int);
10901 }
10902 #endif
10903 
10904 /*-- vec_roundp -------------------------------------------------------------*/
10905 
10906 #if __ARCH__ >= 12
10907 static inline __ATTRS_o_ai __vector float
vec_roundp(__vector float __a)10908 vec_roundp(__vector float __a) {
10909   return __builtin_s390_vfisb(__a, 4, 6);
10910 }
10911 #endif
10912 
10913 static inline __ATTRS_o_ai __vector double
vec_roundp(__vector double __a)10914 vec_roundp(__vector double __a) {
10915   return __builtin_s390_vfidb(__a, 4, 6);
10916 }
10917 
10918 /*-- vec_ceil ---------------------------------------------------------------*/
10919 
10920 #if __ARCH__ >= 12
10921 static inline __ATTRS_o_ai __vector float
vec_ceil(__vector float __a)10922 vec_ceil(__vector float __a) {
10923   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
10924   return __builtin_s390_vfisb(__a, 4, 6);
10925 }
10926 #endif
10927 
10928 static inline __ATTRS_o_ai __vector double
vec_ceil(__vector double __a)10929 vec_ceil(__vector double __a) {
10930   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
10931   return __builtin_s390_vfidb(__a, 4, 6);
10932 }
10933 
10934 /*-- vec_roundm -------------------------------------------------------------*/
10935 
10936 #if __ARCH__ >= 12
10937 static inline __ATTRS_o_ai __vector float
vec_roundm(__vector float __a)10938 vec_roundm(__vector float __a) {
10939   return __builtin_s390_vfisb(__a, 4, 7);
10940 }
10941 #endif
10942 
10943 static inline __ATTRS_o_ai __vector double
vec_roundm(__vector double __a)10944 vec_roundm(__vector double __a) {
10945   return __builtin_s390_vfidb(__a, 4, 7);
10946 }
10947 
10948 /*-- vec_floor --------------------------------------------------------------*/
10949 
10950 #if __ARCH__ >= 12
10951 static inline __ATTRS_o_ai __vector float
vec_floor(__vector float __a)10952 vec_floor(__vector float __a) {
10953   // On this platform, vec_floor never triggers the IEEE-inexact exception.
10954   return __builtin_s390_vfisb(__a, 4, 7);
10955 }
10956 #endif
10957 
10958 static inline __ATTRS_o_ai __vector double
vec_floor(__vector double __a)10959 vec_floor(__vector double __a) {
10960   // On this platform, vec_floor never triggers the IEEE-inexact exception.
10961   return __builtin_s390_vfidb(__a, 4, 7);
10962 }
10963 
10964 /*-- vec_roundz -------------------------------------------------------------*/
10965 
10966 #if __ARCH__ >= 12
10967 static inline __ATTRS_o_ai __vector float
vec_roundz(__vector float __a)10968 vec_roundz(__vector float __a) {
10969   return __builtin_s390_vfisb(__a, 4, 5);
10970 }
10971 #endif
10972 
10973 static inline __ATTRS_o_ai __vector double
vec_roundz(__vector double __a)10974 vec_roundz(__vector double __a) {
10975   return __builtin_s390_vfidb(__a, 4, 5);
10976 }
10977 
10978 /*-- vec_trunc --------------------------------------------------------------*/
10979 
10980 #if __ARCH__ >= 12
10981 static inline __ATTRS_o_ai __vector float
vec_trunc(__vector float __a)10982 vec_trunc(__vector float __a) {
10983   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
10984   return __builtin_s390_vfisb(__a, 4, 5);
10985 }
10986 #endif
10987 
10988 static inline __ATTRS_o_ai __vector double
vec_trunc(__vector double __a)10989 vec_trunc(__vector double __a) {
10990   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
10991   return __builtin_s390_vfidb(__a, 4, 5);
10992 }
10993 
10994 /*-- vec_roundc -------------------------------------------------------------*/
10995 
10996 #if __ARCH__ >= 12
10997 static inline __ATTRS_o_ai __vector float
vec_roundc(__vector float __a)10998 vec_roundc(__vector float __a) {
10999   return __builtin_s390_vfisb(__a, 4, 0);
11000 }
11001 #endif
11002 
11003 static inline __ATTRS_o_ai __vector double
vec_roundc(__vector double __a)11004 vec_roundc(__vector double __a) {
11005   return __builtin_s390_vfidb(__a, 4, 0);
11006 }
11007 
11008 /*-- vec_rint ---------------------------------------------------------------*/
11009 
11010 #if __ARCH__ >= 12
11011 static inline __ATTRS_o_ai __vector float
vec_rint(__vector float __a)11012 vec_rint(__vector float __a) {
11013   // vec_rint may trigger the IEEE-inexact exception.
11014   return __builtin_s390_vfisb(__a, 0, 0);
11015 }
11016 #endif
11017 
11018 static inline __ATTRS_o_ai __vector double
vec_rint(__vector double __a)11019 vec_rint(__vector double __a) {
11020   // vec_rint may trigger the IEEE-inexact exception.
11021   return __builtin_s390_vfidb(__a, 0, 0);
11022 }
11023 
11024 /*-- vec_round --------------------------------------------------------------*/
11025 
11026 #if __ARCH__ >= 12
11027 static inline __ATTRS_o_ai __vector float
vec_round(__vector float __a)11028 vec_round(__vector float __a) {
11029   return __builtin_s390_vfisb(__a, 4, 4);
11030 }
11031 #endif
11032 
11033 static inline __ATTRS_o_ai __vector double
vec_round(__vector double __a)11034 vec_round(__vector double __a) {
11035   return __builtin_s390_vfidb(__a, 4, 4);
11036 }
11037 
11038 /*-- vec_fp_test_data_class -------------------------------------------------*/
11039 
11040 #if __ARCH__ >= 12
11041 extern __ATTRS_o __vector __bool int
11042 vec_fp_test_data_class(__vector float __a, int __b, int *__c)
11043   __constant_range(__b, 0, 4095);
11044 
11045 extern __ATTRS_o __vector __bool long long
11046 vec_fp_test_data_class(__vector double __a, int __b, int *__c)
11047   __constant_range(__b, 0, 4095);
11048 
11049 #define vec_fp_test_data_class(X, Y, Z) \
11050   ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
11051    __extension__ ({ \
11052      __vector unsigned char __res; \
11053      __vector unsigned char __x = (__vector unsigned char)(X); \
11054      int *__z = (Z); \
11055      switch (sizeof ((X)[0])) { \
11056      case 4:  __res = (__vector unsigned char) \
11057                       __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
11058               break; \
11059      default: __res = (__vector unsigned char) \
11060                       __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
11061               break; \
11062      } __res; }))
11063 #else
11064 #define vec_fp_test_data_class(X, Y, Z) \
11065   ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
11066 #endif
11067 
11068 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
11069 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
11070 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
11071 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
11072 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
11073 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
11074                                __VEC_CLASS_FP_NORMAL_N)
11075 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
11076 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
11077 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
11078                                   __VEC_CLASS_FP_SUBNORMAL_N)
11079 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
11080 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
11081 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
11082                                  __VEC_CLASS_FP_INFINITY_N)
11083 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
11084 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
11085 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
11086 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
11087 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
11088 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
11089 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
11090 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
11091                                    __VEC_CLASS_FP_SUBNORMAL | \
11092                                    __VEC_CLASS_FP_ZERO | \
11093                                    __VEC_CLASS_FP_INFINITY)
11094 
11095 /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
11096 
11097 #if __ARCH__ >= 14
11098 #define vec_extend_to_fp32_hi(X, W) \
11099   ((__vector float)__builtin_s390_vclfnhs((X), (W)));
11100 #endif
11101 
11102 /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
11103 
11104 #if __ARCH__ >= 14
11105 #define vec_extend_to_fp32_lo(X, W) \
11106   ((__vector float)__builtin_s390_vclfnls((X), (W)));
11107 #endif
11108 
11109 /*-- vec_round_from_fp32 ----------------------------------------------------*/
11110 
11111 #if __ARCH__ >= 14
11112 #define vec_round_from_fp32(X, Y, W) \
11113   ((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W)));
11114 #endif
11115 
11116 /*-- vec_convert_to_fp16 ----------------------------------------------------*/
11117 
11118 #if __ARCH__ >= 14
11119 #define vec_convert_to_fp16(X, W) \
11120   ((__vector unsigned short)__builtin_s390_vcfn((X), (W)));
11121 #endif
11122 
11123 /*-- vec_convert_from_fp16 --------------------------------------------------*/
11124 
11125 #if __ARCH__ >= 14
11126 #define vec_convert_from_fp16(X, W) \
11127   ((__vector unsigned short)__builtin_s390_vcnf((X), (W)));
11128 #endif
11129 
11130 /*-- vec_cp_until_zero ------------------------------------------------------*/
11131 
11132 static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero(__vector signed char __a)11133 vec_cp_until_zero(__vector signed char __a) {
11134   return ((__vector signed char)
11135           __builtin_s390_vistrb((__vector unsigned char)__a));
11136 }
11137 
11138 static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero(__vector __bool char __a)11139 vec_cp_until_zero(__vector __bool char __a) {
11140   return ((__vector __bool char)
11141           __builtin_s390_vistrb((__vector unsigned char)__a));
11142 }
11143 
11144 static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero(__vector unsigned char __a)11145 vec_cp_until_zero(__vector unsigned char __a) {
11146   return __builtin_s390_vistrb(__a);
11147 }
11148 
11149 static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero(__vector signed short __a)11150 vec_cp_until_zero(__vector signed short __a) {
11151   return ((__vector signed short)
11152           __builtin_s390_vistrh((__vector unsigned short)__a));
11153 }
11154 
11155 static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero(__vector __bool short __a)11156 vec_cp_until_zero(__vector __bool short __a) {
11157   return ((__vector __bool short)
11158           __builtin_s390_vistrh((__vector unsigned short)__a));
11159 }
11160 
11161 static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero(__vector unsigned short __a)11162 vec_cp_until_zero(__vector unsigned short __a) {
11163   return __builtin_s390_vistrh(__a);
11164 }
11165 
11166 static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero(__vector signed int __a)11167 vec_cp_until_zero(__vector signed int __a) {
11168   return ((__vector signed int)
11169           __builtin_s390_vistrf((__vector unsigned int)__a));
11170 }
11171 
11172 static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero(__vector __bool int __a)11173 vec_cp_until_zero(__vector __bool int __a) {
11174   return ((__vector __bool int)
11175           __builtin_s390_vistrf((__vector unsigned int)__a));
11176 }
11177 
11178 static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero(__vector unsigned int __a)11179 vec_cp_until_zero(__vector unsigned int __a) {
11180   return __builtin_s390_vistrf(__a);
11181 }
11182 
11183 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
11184 
11185 static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero_cc(__vector signed char __a,int * __cc)11186 vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
11187   return (__vector signed char)
11188     __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
11189 }
11190 
11191 static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero_cc(__vector __bool char __a,int * __cc)11192 vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
11193   return (__vector __bool char)
11194     __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
11195 }
11196 
11197 static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero_cc(__vector unsigned char __a,int * __cc)11198 vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
11199   return __builtin_s390_vistrbs(__a, __cc);
11200 }
11201 
11202 static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero_cc(__vector signed short __a,int * __cc)11203 vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
11204   return (__vector signed short)
11205     __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
11206 }
11207 
11208 static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero_cc(__vector __bool short __a,int * __cc)11209 vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
11210   return (__vector __bool short)
11211     __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
11212 }
11213 
11214 static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero_cc(__vector unsigned short __a,int * __cc)11215 vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
11216   return __builtin_s390_vistrhs(__a, __cc);
11217 }
11218 
11219 static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero_cc(__vector signed int __a,int * __cc)11220 vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
11221   return (__vector signed int)
11222     __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
11223 }
11224 
11225 static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero_cc(__vector __bool int __a,int * __cc)11226 vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
11227   return (__vector __bool int)
11228     __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
11229 }
11230 
11231 static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero_cc(__vector unsigned int __a,int * __cc)11232 vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
11233   return __builtin_s390_vistrfs(__a, __cc);
11234 }
11235 
11236 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
11237 
11238 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx(__vector signed char __a,__vector signed char __b)11239 vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
11240   return (__vector signed char)
11241     __builtin_s390_vfeeb((__vector unsigned char)__a,
11242                          (__vector unsigned char)__b);
11243 }
11244 
11245 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector __bool char __a,__vector __bool char __b)11246 vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
11247   return __builtin_s390_vfeeb((__vector unsigned char)__a,
11248                               (__vector unsigned char)__b);
11249 }
11250 
11251 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector unsigned char __a,__vector unsigned char __b)11252 vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
11253   return __builtin_s390_vfeeb(__a, __b);
11254 }
11255 
11256 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx(__vector signed short __a,__vector signed short __b)11257 vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
11258   return (__vector signed short)
11259     __builtin_s390_vfeeh((__vector unsigned short)__a,
11260                          (__vector unsigned short)__b);
11261 }
11262 
11263 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector __bool short __a,__vector __bool short __b)11264 vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
11265   return __builtin_s390_vfeeh((__vector unsigned short)__a,
11266                               (__vector unsigned short)__b);
11267 }
11268 
11269 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector unsigned short __a,__vector unsigned short __b)11270 vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
11271   return __builtin_s390_vfeeh(__a, __b);
11272 }
11273 
11274 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx(__vector signed int __a,__vector signed int __b)11275 vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
11276   return (__vector signed int)
11277     __builtin_s390_vfeef((__vector unsigned int)__a,
11278                          (__vector unsigned int)__b);
11279 }
11280 
11281 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector __bool int __a,__vector __bool int __b)11282 vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
11283   return __builtin_s390_vfeef((__vector unsigned int)__a,
11284                               (__vector unsigned int)__b);
11285 }
11286 
11287 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector unsigned int __a,__vector unsigned int __b)11288 vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
11289   return __builtin_s390_vfeef(__a, __b);
11290 }
11291 
11292 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
11293 
11294 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)11295 vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
11296   return (__vector signed char)
11297     __builtin_s390_vfeebs((__vector unsigned char)__a,
11298                           (__vector unsigned char)__b, __cc);
11299 }
11300 
11301 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)11302 vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
11303   return __builtin_s390_vfeebs((__vector unsigned char)__a,
11304                                (__vector unsigned char)__b, __cc);
11305 }
11306 
11307 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)11308 vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11309                  int *__cc) {
11310   return __builtin_s390_vfeebs(__a, __b, __cc);
11311 }
11312 
11313 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)11314 vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
11315                  int *__cc) {
11316   return (__vector signed short)
11317     __builtin_s390_vfeehs((__vector unsigned short)__a,
11318                           (__vector unsigned short)__b, __cc);
11319 }
11320 
11321 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)11322 vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
11323   return __builtin_s390_vfeehs((__vector unsigned short)__a,
11324                                (__vector unsigned short)__b, __cc);
11325 }
11326 
11327 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)11328 vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11329                  int *__cc) {
11330   return __builtin_s390_vfeehs(__a, __b, __cc);
11331 }
11332 
11333 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)11334 vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
11335   return (__vector signed int)
11336     __builtin_s390_vfeefs((__vector unsigned int)__a,
11337                           (__vector unsigned int)__b, __cc);
11338 }
11339 
11340 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)11341 vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
11342   return __builtin_s390_vfeefs((__vector unsigned int)__a,
11343                                (__vector unsigned int)__b, __cc);
11344 }
11345 
11346 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)11347 vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11348                  int *__cc) {
11349   return __builtin_s390_vfeefs(__a, __b, __cc);
11350 }
11351 
11352 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
11353 
11354 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx(__vector signed char __a,__vector signed char __b)11355 vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
11356   return (__vector signed char)
11357     __builtin_s390_vfeezb((__vector unsigned char)__a,
11358                           (__vector unsigned char)__b);
11359 }
11360 
11361 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector __bool char __a,__vector __bool char __b)11362 vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
11363   return __builtin_s390_vfeezb((__vector unsigned char)__a,
11364                                (__vector unsigned char)__b);
11365 }
11366 
11367 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)11368 vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
11369   return __builtin_s390_vfeezb(__a, __b);
11370 }
11371 
11372 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx(__vector signed short __a,__vector signed short __b)11373 vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
11374   return (__vector signed short)
11375     __builtin_s390_vfeezh((__vector unsigned short)__a,
11376                           (__vector unsigned short)__b);
11377 }
11378 
11379 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector __bool short __a,__vector __bool short __b)11380 vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
11381   return __builtin_s390_vfeezh((__vector unsigned short)__a,
11382                                (__vector unsigned short)__b);
11383 }
11384 
11385 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)11386 vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
11387   return __builtin_s390_vfeezh(__a, __b);
11388 }
11389 
11390 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx(__vector signed int __a,__vector signed int __b)11391 vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
11392   return (__vector signed int)
11393     __builtin_s390_vfeezf((__vector unsigned int)__a,
11394                           (__vector unsigned int)__b);
11395 }
11396 
11397 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector __bool int __a,__vector __bool int __b)11398 vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
11399   return __builtin_s390_vfeezf((__vector unsigned int)__a,
11400                                (__vector unsigned int)__b);
11401 }
11402 
11403 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)11404 vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
11405   return __builtin_s390_vfeezf(__a, __b);
11406 }
11407 
11408 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
11409 
11410 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)11411 vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
11412                       int *__cc) {
11413   return (__vector signed char)
11414     __builtin_s390_vfeezbs((__vector unsigned char)__a,
11415                            (__vector unsigned char)__b, __cc);
11416 }
11417 
11418 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)11419 vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
11420                       int *__cc) {
11421   return __builtin_s390_vfeezbs((__vector unsigned char)__a,
11422                                 (__vector unsigned char)__b, __cc);
11423 }
11424 
11425 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)11426 vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11427                       int *__cc) {
11428   return __builtin_s390_vfeezbs(__a, __b, __cc);
11429 }
11430 
11431 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)11432 vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
11433                       int *__cc) {
11434   return (__vector signed short)
11435     __builtin_s390_vfeezhs((__vector unsigned short)__a,
11436                            (__vector unsigned short)__b, __cc);
11437 }
11438 
11439 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)11440 vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
11441                       int *__cc) {
11442   return __builtin_s390_vfeezhs((__vector unsigned short)__a,
11443                                 (__vector unsigned short)__b, __cc);
11444 }
11445 
11446 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)11447 vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11448                       int *__cc) {
11449   return __builtin_s390_vfeezhs(__a, __b, __cc);
11450 }
11451 
11452 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)11453 vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
11454                       int *__cc) {
11455   return (__vector signed int)
11456     __builtin_s390_vfeezfs((__vector unsigned int)__a,
11457                            (__vector unsigned int)__b, __cc);
11458 }
11459 
11460 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)11461 vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
11462                       int *__cc) {
11463   return __builtin_s390_vfeezfs((__vector unsigned int)__a,
11464                                 (__vector unsigned int)__b, __cc);
11465 }
11466 
11467 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)11468 vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11469                       int *__cc) {
11470   return __builtin_s390_vfeezfs(__a, __b, __cc);
11471 }
11472 
11473 /*-- vec_cmpne_idx ----------------------------------------------------------*/
11474 
11475 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx(__vector signed char __a,__vector signed char __b)11476 vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
11477   return (__vector signed char)
11478     __builtin_s390_vfeneb((__vector unsigned char)__a,
11479                           (__vector unsigned char)__b);
11480 }
11481 
11482 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector __bool char __a,__vector __bool char __b)11483 vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
11484   return __builtin_s390_vfeneb((__vector unsigned char)__a,
11485                                (__vector unsigned char)__b);
11486 }
11487 
11488 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector unsigned char __a,__vector unsigned char __b)11489 vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
11490   return __builtin_s390_vfeneb(__a, __b);
11491 }
11492 
11493 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx(__vector signed short __a,__vector signed short __b)11494 vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
11495   return (__vector signed short)
11496     __builtin_s390_vfeneh((__vector unsigned short)__a,
11497                           (__vector unsigned short)__b);
11498 }
11499 
11500 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector __bool short __a,__vector __bool short __b)11501 vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
11502   return __builtin_s390_vfeneh((__vector unsigned short)__a,
11503                                (__vector unsigned short)__b);
11504 }
11505 
11506 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector unsigned short __a,__vector unsigned short __b)11507 vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
11508   return __builtin_s390_vfeneh(__a, __b);
11509 }
11510 
11511 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx(__vector signed int __a,__vector signed int __b)11512 vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
11513   return (__vector signed int)
11514     __builtin_s390_vfenef((__vector unsigned int)__a,
11515                           (__vector unsigned int)__b);
11516 }
11517 
11518 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector __bool int __a,__vector __bool int __b)11519 vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
11520   return __builtin_s390_vfenef((__vector unsigned int)__a,
11521                                (__vector unsigned int)__b);
11522 }
11523 
11524 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector unsigned int __a,__vector unsigned int __b)11525 vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
11526   return __builtin_s390_vfenef(__a, __b);
11527 }
11528 
11529 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
11530 
11531 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)11532 vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
11533   return (__vector signed char)
11534     __builtin_s390_vfenebs((__vector unsigned char)__a,
11535                            (__vector unsigned char)__b, __cc);
11536 }
11537 
11538 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)11539 vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
11540   return __builtin_s390_vfenebs((__vector unsigned char)__a,
11541                                 (__vector unsigned char)__b, __cc);
11542 }
11543 
11544 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)11545 vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11546                  int *__cc) {
11547   return __builtin_s390_vfenebs(__a, __b, __cc);
11548 }
11549 
11550 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)11551 vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
11552                  int *__cc) {
11553   return (__vector signed short)
11554     __builtin_s390_vfenehs((__vector unsigned short)__a,
11555                            (__vector unsigned short)__b, __cc);
11556 }
11557 
11558 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)11559 vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
11560                  int *__cc) {
11561   return __builtin_s390_vfenehs((__vector unsigned short)__a,
11562                                 (__vector unsigned short)__b, __cc);
11563 }
11564 
11565 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)11566 vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11567                  int *__cc) {
11568   return __builtin_s390_vfenehs(__a, __b, __cc);
11569 }
11570 
11571 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)11572 vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
11573   return (__vector signed int)
11574     __builtin_s390_vfenefs((__vector unsigned int)__a,
11575                            (__vector unsigned int)__b, __cc);
11576 }
11577 
11578 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)11579 vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
11580   return __builtin_s390_vfenefs((__vector unsigned int)__a,
11581                                 (__vector unsigned int)__b, __cc);
11582 }
11583 
11584 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)11585 vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11586                  int *__cc) {
11587   return __builtin_s390_vfenefs(__a, __b, __cc);
11588 }
11589 
11590 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
11591 
11592 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx(__vector signed char __a,__vector signed char __b)11593 vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
11594   return (__vector signed char)
11595     __builtin_s390_vfenezb((__vector unsigned char)__a,
11596                            (__vector unsigned char)__b);
11597 }
11598 
11599 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector __bool char __a,__vector __bool char __b)11600 vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
11601   return __builtin_s390_vfenezb((__vector unsigned char)__a,
11602                                 (__vector unsigned char)__b);
11603 }
11604 
11605 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)11606 vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
11607   return __builtin_s390_vfenezb(__a, __b);
11608 }
11609 
11610 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx(__vector signed short __a,__vector signed short __b)11611 vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
11612   return (__vector signed short)
11613     __builtin_s390_vfenezh((__vector unsigned short)__a,
11614                            (__vector unsigned short)__b);
11615 }
11616 
11617 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector __bool short __a,__vector __bool short __b)11618 vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
11619   return __builtin_s390_vfenezh((__vector unsigned short)__a,
11620                                 (__vector unsigned short)__b);
11621 }
11622 
11623 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)11624 vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
11625   return __builtin_s390_vfenezh(__a, __b);
11626 }
11627 
11628 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx(__vector signed int __a,__vector signed int __b)11629 vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
11630   return (__vector signed int)
11631     __builtin_s390_vfenezf((__vector unsigned int)__a,
11632                            (__vector unsigned int)__b);
11633 }
11634 
11635 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector __bool int __a,__vector __bool int __b)11636 vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
11637   return __builtin_s390_vfenezf((__vector unsigned int)__a,
11638                                 (__vector unsigned int)__b);
11639 }
11640 
11641 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)11642 vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
11643   return __builtin_s390_vfenezf(__a, __b);
11644 }
11645 
11646 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
11647 
11648 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)11649 vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
11650                       int *__cc) {
11651   return (__vector signed char)
11652     __builtin_s390_vfenezbs((__vector unsigned char)__a,
11653                             (__vector unsigned char)__b, __cc);
11654 }
11655 
11656 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)11657 vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
11658                       int *__cc) {
11659   return __builtin_s390_vfenezbs((__vector unsigned char)__a,
11660                                  (__vector unsigned char)__b, __cc);
11661 }
11662 
11663 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)11664 vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11665                       int *__cc) {
11666   return __builtin_s390_vfenezbs(__a, __b, __cc);
11667 }
11668 
11669 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)11670 vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
11671                       int *__cc) {
11672   return (__vector signed short)
11673     __builtin_s390_vfenezhs((__vector unsigned short)__a,
11674                             (__vector unsigned short)__b, __cc);
11675 }
11676 
11677 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)11678 vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
11679                       int *__cc) {
11680   return __builtin_s390_vfenezhs((__vector unsigned short)__a,
11681                                  (__vector unsigned short)__b, __cc);
11682 }
11683 
11684 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)11685 vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11686                       int *__cc) {
11687   return __builtin_s390_vfenezhs(__a, __b, __cc);
11688 }
11689 
11690 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)11691 vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
11692                       int *__cc) {
11693   return (__vector signed int)
11694     __builtin_s390_vfenezfs((__vector unsigned int)__a,
11695                             (__vector unsigned int)__b, __cc);
11696 }
11697 
11698 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)11699 vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
11700                       int *__cc) {
11701   return __builtin_s390_vfenezfs((__vector unsigned int)__a,
11702                                  (__vector unsigned int)__b, __cc);
11703 }
11704 
11705 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)11706 vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11707                       int *__cc) {
11708   return __builtin_s390_vfenezfs(__a, __b, __cc);
11709 }
11710 
11711 /*-- vec_cmprg --------------------------------------------------------------*/
11712 
11713 static inline __ATTRS_o_ai __vector __bool char
vec_cmprg(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)11714 vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
11715           __vector unsigned char __c) {
11716   return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
11717 }
11718 
11719 static inline __ATTRS_o_ai __vector __bool short
vec_cmprg(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)11720 vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
11721           __vector unsigned short __c) {
11722   return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
11723 }
11724 
11725 static inline __ATTRS_o_ai __vector __bool int
vec_cmprg(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)11726 vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
11727           __vector unsigned int __c) {
11728   return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
11729 }
11730 
11731 /*-- vec_cmprg_cc -----------------------------------------------------------*/
11732 
11733 static inline __ATTRS_o_ai __vector __bool char
vec_cmprg_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)11734 vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
11735              __vector unsigned char __c, int *__cc) {
11736   return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
11737 }
11738 
11739 static inline __ATTRS_o_ai __vector __bool short
vec_cmprg_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)11740 vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
11741              __vector unsigned short __c, int *__cc) {
11742   return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
11743 }
11744 
11745 static inline __ATTRS_o_ai __vector __bool int
vec_cmprg_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)11746 vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
11747              __vector unsigned int __c, int *__cc) {
11748   return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
11749 }
11750 
11751 /*-- vec_cmprg_idx ----------------------------------------------------------*/
11752 
11753 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)11754 vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
11755               __vector unsigned char __c) {
11756   return __builtin_s390_vstrcb(__a, __b, __c, 0);
11757 }
11758 
11759 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)11760 vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
11761               __vector unsigned short __c) {
11762   return __builtin_s390_vstrch(__a, __b, __c, 0);
11763 }
11764 
11765 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)11766 vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
11767               __vector unsigned int __c) {
11768   return __builtin_s390_vstrcf(__a, __b, __c, 0);
11769 }
11770 
11771 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
11772 
11773 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_idx_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)11774 vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11775                  __vector unsigned char __c, int *__cc) {
11776   return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
11777 }
11778 
11779 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_idx_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)11780 vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11781                  __vector unsigned short __c, int *__cc) {
11782   return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
11783 }
11784 
11785 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_idx_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)11786 vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11787                  __vector unsigned int __c, int *__cc) {
11788   return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
11789 }
11790 
11791 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
11792 
11793 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_or_0_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)11794 vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
11795                    __vector unsigned char __c) {
11796   return __builtin_s390_vstrczb(__a, __b, __c, 0);
11797 }
11798 
11799 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_or_0_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)11800 vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
11801                    __vector unsigned short __c) {
11802   return __builtin_s390_vstrczh(__a, __b, __c, 0);
11803 }
11804 
11805 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_or_0_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)11806 vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
11807                    __vector unsigned int __c) {
11808   return __builtin_s390_vstrczf(__a, __b, __c, 0);
11809 }
11810 
11811 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
11812 
11813 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)11814 vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11815                       __vector unsigned char __c, int *__cc) {
11816   return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
11817 }
11818 
11819 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)11820 vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11821                       __vector unsigned short __c, int *__cc) {
11822   return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
11823 }
11824 
11825 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)11826 vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11827                       __vector unsigned int __c, int *__cc) {
11828   return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
11829 }
11830 
11831 /*-- vec_cmpnrg -------------------------------------------------------------*/
11832 
11833 static inline __ATTRS_o_ai __vector __bool char
vec_cmpnrg(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)11834 vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
11835            __vector unsigned char __c) {
11836   return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
11837 }
11838 
11839 static inline __ATTRS_o_ai __vector __bool short
vec_cmpnrg(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)11840 vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
11841            __vector unsigned short __c) {
11842   return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
11843 }
11844 
11845 static inline __ATTRS_o_ai __vector __bool int
vec_cmpnrg(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)11846 vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
11847            __vector unsigned int __c) {
11848   return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
11849 }
11850 
11851 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
11852 
11853 static inline __ATTRS_o_ai __vector __bool char
vec_cmpnrg_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)11854 vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
11855               __vector unsigned char __c, int *__cc) {
11856   return (__vector __bool char)
11857     __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
11858 }
11859 
11860 static inline __ATTRS_o_ai __vector __bool short
vec_cmpnrg_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)11861 vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
11862               __vector unsigned short __c, int *__cc) {
11863   return (__vector __bool short)
11864     __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
11865 }
11866 
11867 static inline __ATTRS_o_ai __vector __bool int
vec_cmpnrg_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)11868 vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
11869               __vector unsigned int __c, int *__cc) {
11870   return (__vector __bool int)
11871     __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
11872 }
11873 
11874 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
11875 
11876 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)11877 vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
11878                __vector unsigned char __c) {
11879   return __builtin_s390_vstrcb(__a, __b, __c, 8);
11880 }
11881 
11882 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)11883 vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
11884                __vector unsigned short __c) {
11885   return __builtin_s390_vstrch(__a, __b, __c, 8);
11886 }
11887 
11888 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)11889 vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
11890                __vector unsigned int __c) {
11891   return __builtin_s390_vstrcf(__a, __b, __c, 8);
11892 }
11893 
11894 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
11895 
11896 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_idx_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)11897 vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11898                   __vector unsigned char __c, int *__cc) {
11899   return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
11900 }
11901 
11902 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_idx_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)11903 vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11904                   __vector unsigned short __c, int *__cc) {
11905   return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
11906 }
11907 
11908 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_idx_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)11909 vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11910                   __vector unsigned int __c, int *__cc) {
11911   return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
11912 }
11913 
11914 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
11915 
11916 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_or_0_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)11917 vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
11918                     __vector unsigned char __c) {
11919   return __builtin_s390_vstrczb(__a, __b, __c, 8);
11920 }
11921 
11922 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_or_0_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)11923 vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
11924                     __vector unsigned short __c) {
11925   return __builtin_s390_vstrczh(__a, __b, __c, 8);
11926 }
11927 
11928 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_or_0_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)11929 vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
11930                     __vector unsigned int __c) {
11931   return __builtin_s390_vstrczf(__a, __b, __c, 8);
11932 }
11933 
11934 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
11935 
11936 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)11937 vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
11938                        __vector unsigned char __b,
11939                        __vector unsigned char __c, int *__cc) {
11940   return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
11941 }
11942 
11943 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)11944 vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
11945                        __vector unsigned short __b,
11946                        __vector unsigned short __c, int *__cc) {
11947   return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
11948 }
11949 
11950 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)11951 vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
11952                        __vector unsigned int __b,
11953                        __vector unsigned int __c, int *__cc) {
11954   return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
11955 }
11956 
11957 /*-- vec_find_any_eq --------------------------------------------------------*/
11958 
11959 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector signed char __a,__vector signed char __b)11960 vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
11961   return (__vector __bool char)
11962     __builtin_s390_vfaeb((__vector unsigned char)__a,
11963                          (__vector unsigned char)__b, 4);
11964 }
11965 
11966 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector __bool char __a,__vector __bool char __b)11967 vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
11968   return (__vector __bool char)
11969     __builtin_s390_vfaeb((__vector unsigned char)__a,
11970                          (__vector unsigned char)__b, 4);
11971 }
11972 
11973 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector unsigned char __a,__vector unsigned char __b)11974 vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
11975   return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
11976 }
11977 
11978 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector signed short __a,__vector signed short __b)11979 vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
11980   return (__vector __bool short)
11981     __builtin_s390_vfaeh((__vector unsigned short)__a,
11982                          (__vector unsigned short)__b, 4);
11983 }
11984 
11985 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector __bool short __a,__vector __bool short __b)11986 vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
11987   return (__vector __bool short)
11988     __builtin_s390_vfaeh((__vector unsigned short)__a,
11989                          (__vector unsigned short)__b, 4);
11990 }
11991 
11992 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector unsigned short __a,__vector unsigned short __b)11993 vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
11994   return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
11995 }
11996 
11997 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector signed int __a,__vector signed int __b)11998 vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
11999   return (__vector __bool int)
12000     __builtin_s390_vfaef((__vector unsigned int)__a,
12001                          (__vector unsigned int)__b, 4);
12002 }
12003 
12004 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector __bool int __a,__vector __bool int __b)12005 vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
12006   return (__vector __bool int)
12007     __builtin_s390_vfaef((__vector unsigned int)__a,
12008                          (__vector unsigned int)__b, 4);
12009 }
12010 
12011 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector unsigned int __a,__vector unsigned int __b)12012 vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
12013   return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
12014 }
12015 
12016 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
12017 
12018 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector signed char __a,__vector signed char __b,int * __cc)12019 vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
12020                    int *__cc) {
12021   return (__vector __bool char)
12022     __builtin_s390_vfaebs((__vector unsigned char)__a,
12023                           (__vector unsigned char)__b, 4, __cc);
12024 }
12025 
12026 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)12027 vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
12028                    int *__cc) {
12029   return (__vector __bool char)
12030     __builtin_s390_vfaebs((__vector unsigned char)__a,
12031                           (__vector unsigned char)__b, 4, __cc);
12032 }
12033 
12034 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)12035 vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
12036                    int *__cc) {
12037   return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
12038 }
12039 
12040 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector signed short __a,__vector signed short __b,int * __cc)12041 vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
12042                    int *__cc) {
12043   return (__vector __bool short)
12044     __builtin_s390_vfaehs((__vector unsigned short)__a,
12045                           (__vector unsigned short)__b, 4, __cc);
12046 }
12047 
12048 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)12049 vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
12050                    int *__cc) {
12051   return (__vector __bool short)
12052     __builtin_s390_vfaehs((__vector unsigned short)__a,
12053                           (__vector unsigned short)__b, 4, __cc);
12054 }
12055 
12056 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)12057 vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
12058                    int *__cc) {
12059   return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
12060 }
12061 
12062 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector signed int __a,__vector signed int __b,int * __cc)12063 vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
12064                    int *__cc) {
12065   return (__vector __bool int)
12066     __builtin_s390_vfaefs((__vector unsigned int)__a,
12067                           (__vector unsigned int)__b, 4, __cc);
12068 }
12069 
12070 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)12071 vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
12072                    int *__cc) {
12073   return (__vector __bool int)
12074     __builtin_s390_vfaefs((__vector unsigned int)__a,
12075                           (__vector unsigned int)__b, 4, __cc);
12076 }
12077 
12078 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)12079 vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
12080                    int *__cc) {
12081   return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
12082 }
12083 
12084 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
12085 
12086 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx(__vector signed char __a,__vector signed char __b)12087 vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
12088   return (__vector signed char)
12089     __builtin_s390_vfaeb((__vector unsigned char)__a,
12090                          (__vector unsigned char)__b, 0);
12091 }
12092 
12093 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector __bool char __a,__vector __bool char __b)12094 vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
12095   return __builtin_s390_vfaeb((__vector unsigned char)__a,
12096                               (__vector unsigned char)__b, 0);
12097 }
12098 
12099 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector unsigned char __a,__vector unsigned char __b)12100 vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
12101   return __builtin_s390_vfaeb(__a, __b, 0);
12102 }
12103 
12104 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx(__vector signed short __a,__vector signed short __b)12105 vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
12106   return (__vector signed short)
12107     __builtin_s390_vfaeh((__vector unsigned short)__a,
12108                          (__vector unsigned short)__b, 0);
12109 }
12110 
12111 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector __bool short __a,__vector __bool short __b)12112 vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
12113   return __builtin_s390_vfaeh((__vector unsigned short)__a,
12114                               (__vector unsigned short)__b, 0);
12115 }
12116 
12117 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector unsigned short __a,__vector unsigned short __b)12118 vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
12119   return __builtin_s390_vfaeh(__a, __b, 0);
12120 }
12121 
12122 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx(__vector signed int __a,__vector signed int __b)12123 vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
12124   return (__vector signed int)
12125     __builtin_s390_vfaef((__vector unsigned int)__a,
12126                          (__vector unsigned int)__b, 0);
12127 }
12128 
12129 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector __bool int __a,__vector __bool int __b)12130 vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
12131   return __builtin_s390_vfaef((__vector unsigned int)__a,
12132                               (__vector unsigned int)__b, 0);
12133 }
12134 
12135 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector unsigned int __a,__vector unsigned int __b)12136 vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
12137   return __builtin_s390_vfaef(__a, __b, 0);
12138 }
12139 
12140 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
12141 
12142 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)12143 vec_find_any_eq_idx_cc(__vector signed char __a,
12144                        __vector signed char __b, int *__cc) {
12145   return (__vector signed char)
12146     __builtin_s390_vfaebs((__vector unsigned char)__a,
12147                           (__vector unsigned char)__b, 0, __cc);
12148 }
12149 
12150 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)12151 vec_find_any_eq_idx_cc(__vector __bool char __a,
12152                        __vector __bool char __b, int *__cc) {
12153   return __builtin_s390_vfaebs((__vector unsigned char)__a,
12154                                (__vector unsigned char)__b, 0, __cc);
12155 }
12156 
12157 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)12158 vec_find_any_eq_idx_cc(__vector unsigned char __a,
12159                        __vector unsigned char __b, int *__cc) {
12160   return __builtin_s390_vfaebs(__a, __b, 0, __cc);
12161 }
12162 
12163 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)12164 vec_find_any_eq_idx_cc(__vector signed short __a,
12165                        __vector signed short __b, int *__cc) {
12166   return (__vector signed short)
12167     __builtin_s390_vfaehs((__vector unsigned short)__a,
12168                           (__vector unsigned short)__b, 0, __cc);
12169 }
12170 
12171 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)12172 vec_find_any_eq_idx_cc(__vector __bool short __a,
12173                        __vector __bool short __b, int *__cc) {
12174   return __builtin_s390_vfaehs((__vector unsigned short)__a,
12175                                (__vector unsigned short)__b, 0, __cc);
12176 }
12177 
12178 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)12179 vec_find_any_eq_idx_cc(__vector unsigned short __a,
12180                        __vector unsigned short __b, int *__cc) {
12181   return __builtin_s390_vfaehs(__a, __b, 0, __cc);
12182 }
12183 
12184 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)12185 vec_find_any_eq_idx_cc(__vector signed int __a,
12186                        __vector signed int __b, int *__cc) {
12187   return (__vector signed int)
12188     __builtin_s390_vfaefs((__vector unsigned int)__a,
12189                           (__vector unsigned int)__b, 0, __cc);
12190 }
12191 
12192 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)12193 vec_find_any_eq_idx_cc(__vector __bool int __a,
12194                        __vector __bool int __b, int *__cc) {
12195   return __builtin_s390_vfaefs((__vector unsigned int)__a,
12196                                (__vector unsigned int)__b, 0, __cc);
12197 }
12198 
12199 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)12200 vec_find_any_eq_idx_cc(__vector unsigned int __a,
12201                        __vector unsigned int __b, int *__cc) {
12202   return __builtin_s390_vfaefs(__a, __b, 0, __cc);
12203 }
12204 
12205 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
12206 
12207 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_or_0_idx(__vector signed char __a,__vector signed char __b)12208 vec_find_any_eq_or_0_idx(__vector signed char __a,
12209                          __vector signed char __b) {
12210   return (__vector signed char)
12211     __builtin_s390_vfaezb((__vector unsigned char)__a,
12212                           (__vector unsigned char)__b, 0);
12213 }
12214 
12215 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector __bool char __a,__vector __bool char __b)12216 vec_find_any_eq_or_0_idx(__vector __bool char __a,
12217                          __vector __bool char __b) {
12218   return __builtin_s390_vfaezb((__vector unsigned char)__a,
12219                                (__vector unsigned char)__b, 0);
12220 }
12221 
12222 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)12223 vec_find_any_eq_or_0_idx(__vector unsigned char __a,
12224                          __vector unsigned char __b) {
12225   return __builtin_s390_vfaezb(__a, __b, 0);
12226 }
12227 
12228 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_or_0_idx(__vector signed short __a,__vector signed short __b)12229 vec_find_any_eq_or_0_idx(__vector signed short __a,
12230                          __vector signed short __b) {
12231   return (__vector signed short)
12232     __builtin_s390_vfaezh((__vector unsigned short)__a,
12233                           (__vector unsigned short)__b, 0);
12234 }
12235 
12236 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector __bool short __a,__vector __bool short __b)12237 vec_find_any_eq_or_0_idx(__vector __bool short __a,
12238                          __vector __bool short __b) {
12239   return __builtin_s390_vfaezh((__vector unsigned short)__a,
12240                                (__vector unsigned short)__b, 0);
12241 }
12242 
12243 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)12244 vec_find_any_eq_or_0_idx(__vector unsigned short __a,
12245                          __vector unsigned short __b) {
12246   return __builtin_s390_vfaezh(__a, __b, 0);
12247 }
12248 
12249 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_or_0_idx(__vector signed int __a,__vector signed int __b)12250 vec_find_any_eq_or_0_idx(__vector signed int __a,
12251                          __vector signed int __b) {
12252   return (__vector signed int)
12253     __builtin_s390_vfaezf((__vector unsigned int)__a,
12254                           (__vector unsigned int)__b, 0);
12255 }
12256 
12257 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector __bool int __a,__vector __bool int __b)12258 vec_find_any_eq_or_0_idx(__vector __bool int __a,
12259                          __vector __bool int __b) {
12260   return __builtin_s390_vfaezf((__vector unsigned int)__a,
12261                                (__vector unsigned int)__b, 0);
12262 }
12263 
12264 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)12265 vec_find_any_eq_or_0_idx(__vector unsigned int __a,
12266                          __vector unsigned int __b) {
12267   return __builtin_s390_vfaezf(__a, __b, 0);
12268 }
12269 
12270 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
12271 
12272 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)12273 vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
12274                             __vector signed char __b, int *__cc) {
12275   return (__vector signed char)
12276     __builtin_s390_vfaezbs((__vector unsigned char)__a,
12277                            (__vector unsigned char)__b, 0, __cc);
12278 }
12279 
12280 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)12281 vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
12282                             __vector __bool char __b, int *__cc) {
12283   return __builtin_s390_vfaezbs((__vector unsigned char)__a,
12284                                 (__vector unsigned char)__b, 0, __cc);
12285 }
12286 
12287 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)12288 vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
12289                             __vector unsigned char __b, int *__cc) {
12290   return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
12291 }
12292 
12293 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)12294 vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
12295                             __vector signed short __b, int *__cc) {
12296   return (__vector signed short)
12297     __builtin_s390_vfaezhs((__vector unsigned short)__a,
12298                            (__vector unsigned short)__b, 0, __cc);
12299 }
12300 
12301 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)12302 vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
12303                             __vector __bool short __b, int *__cc) {
12304   return __builtin_s390_vfaezhs((__vector unsigned short)__a,
12305                                 (__vector unsigned short)__b, 0, __cc);
12306 }
12307 
12308 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)12309 vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
12310                             __vector unsigned short __b, int *__cc) {
12311   return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
12312 }
12313 
12314 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)12315 vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
12316                             __vector signed int __b, int *__cc) {
12317   return (__vector signed int)
12318     __builtin_s390_vfaezfs((__vector unsigned int)__a,
12319                            (__vector unsigned int)__b, 0, __cc);
12320 }
12321 
12322 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)12323 vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
12324                             __vector __bool int __b, int *__cc) {
12325   return __builtin_s390_vfaezfs((__vector unsigned int)__a,
12326                                 (__vector unsigned int)__b, 0, __cc);
12327 }
12328 
12329 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)12330 vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
12331                             __vector unsigned int __b, int *__cc) {
12332   return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
12333 }
12334 
12335 /*-- vec_find_any_ne --------------------------------------------------------*/
12336 
12337 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector signed char __a,__vector signed char __b)12338 vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
12339   return (__vector __bool char)
12340     __builtin_s390_vfaeb((__vector unsigned char)__a,
12341                          (__vector unsigned char)__b, 12);
12342 }
12343 
12344 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector __bool char __a,__vector __bool char __b)12345 vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
12346   return (__vector __bool char)
12347     __builtin_s390_vfaeb((__vector unsigned char)__a,
12348                          (__vector unsigned char)__b, 12);
12349 }
12350 
12351 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector unsigned char __a,__vector unsigned char __b)12352 vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
12353   return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
12354 }
12355 
12356 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector signed short __a,__vector signed short __b)12357 vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
12358   return (__vector __bool short)
12359     __builtin_s390_vfaeh((__vector unsigned short)__a,
12360                          (__vector unsigned short)__b, 12);
12361 }
12362 
12363 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector __bool short __a,__vector __bool short __b)12364 vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
12365   return (__vector __bool short)
12366     __builtin_s390_vfaeh((__vector unsigned short)__a,
12367                          (__vector unsigned short)__b, 12);
12368 }
12369 
12370 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector unsigned short __a,__vector unsigned short __b)12371 vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
12372   return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
12373 }
12374 
12375 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector signed int __a,__vector signed int __b)12376 vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
12377   return (__vector __bool int)
12378     __builtin_s390_vfaef((__vector unsigned int)__a,
12379                          (__vector unsigned int)__b, 12);
12380 }
12381 
12382 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector __bool int __a,__vector __bool int __b)12383 vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
12384   return (__vector __bool int)
12385     __builtin_s390_vfaef((__vector unsigned int)__a,
12386                          (__vector unsigned int)__b, 12);
12387 }
12388 
12389 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector unsigned int __a,__vector unsigned int __b)12390 vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
12391   return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
12392 }
12393 
12394 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
12395 
12396 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector signed char __a,__vector signed char __b,int * __cc)12397 vec_find_any_ne_cc(__vector signed char __a,
12398                    __vector signed char __b, int *__cc) {
12399   return (__vector __bool char)
12400     __builtin_s390_vfaebs((__vector unsigned char)__a,
12401                           (__vector unsigned char)__b, 12, __cc);
12402 }
12403 
12404 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)12405 vec_find_any_ne_cc(__vector __bool char __a,
12406                    __vector __bool char __b, int *__cc) {
12407   return (__vector __bool char)
12408     __builtin_s390_vfaebs((__vector unsigned char)__a,
12409                           (__vector unsigned char)__b, 12, __cc);
12410 }
12411 
12412 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)12413 vec_find_any_ne_cc(__vector unsigned char __a,
12414                    __vector unsigned char __b, int *__cc) {
12415   return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
12416 }
12417 
12418 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector signed short __a,__vector signed short __b,int * __cc)12419 vec_find_any_ne_cc(__vector signed short __a,
12420                    __vector signed short __b, int *__cc) {
12421   return (__vector __bool short)
12422     __builtin_s390_vfaehs((__vector unsigned short)__a,
12423                           (__vector unsigned short)__b, 12, __cc);
12424 }
12425 
12426 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)12427 vec_find_any_ne_cc(__vector __bool short __a,
12428                    __vector __bool short __b, int *__cc) {
12429   return (__vector __bool short)
12430     __builtin_s390_vfaehs((__vector unsigned short)__a,
12431                           (__vector unsigned short)__b, 12, __cc);
12432 }
12433 
12434 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)12435 vec_find_any_ne_cc(__vector unsigned short __a,
12436                    __vector unsigned short __b, int *__cc) {
12437   return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
12438 }
12439 
12440 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector signed int __a,__vector signed int __b,int * __cc)12441 vec_find_any_ne_cc(__vector signed int __a,
12442                    __vector signed int __b, int *__cc) {
12443   return (__vector __bool int)
12444     __builtin_s390_vfaefs((__vector unsigned int)__a,
12445                           (__vector unsigned int)__b, 12, __cc);
12446 }
12447 
12448 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)12449 vec_find_any_ne_cc(__vector __bool int __a,
12450                    __vector __bool int __b, int *__cc) {
12451   return (__vector __bool int)
12452     __builtin_s390_vfaefs((__vector unsigned int)__a,
12453                           (__vector unsigned int)__b, 12, __cc);
12454 }
12455 
12456 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)12457 vec_find_any_ne_cc(__vector unsigned int __a,
12458                    __vector unsigned int __b, int *__cc) {
12459   return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
12460 }
12461 
12462 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
12463 
12464 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx(__vector signed char __a,__vector signed char __b)12465 vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
12466   return (__vector signed char)
12467     __builtin_s390_vfaeb((__vector unsigned char)__a,
12468                          (__vector unsigned char)__b, 8);
12469 }
12470 
12471 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector __bool char __a,__vector __bool char __b)12472 vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
12473   return __builtin_s390_vfaeb((__vector unsigned char)__a,
12474                               (__vector unsigned char)__b, 8);
12475 }
12476 
12477 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector unsigned char __a,__vector unsigned char __b)12478 vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
12479   return __builtin_s390_vfaeb(__a, __b, 8);
12480 }
12481 
12482 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx(__vector signed short __a,__vector signed short __b)12483 vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
12484   return (__vector signed short)
12485     __builtin_s390_vfaeh((__vector unsigned short)__a,
12486                          (__vector unsigned short)__b, 8);
12487 }
12488 
12489 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector __bool short __a,__vector __bool short __b)12490 vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
12491   return __builtin_s390_vfaeh((__vector unsigned short)__a,
12492                               (__vector unsigned short)__b, 8);
12493 }
12494 
12495 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector unsigned short __a,__vector unsigned short __b)12496 vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
12497   return __builtin_s390_vfaeh(__a, __b, 8);
12498 }
12499 
12500 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx(__vector signed int __a,__vector signed int __b)12501 vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
12502   return (__vector signed int)
12503     __builtin_s390_vfaef((__vector unsigned int)__a,
12504                          (__vector unsigned int)__b, 8);
12505 }
12506 
12507 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector __bool int __a,__vector __bool int __b)12508 vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
12509   return __builtin_s390_vfaef((__vector unsigned int)__a,
12510                               (__vector unsigned int)__b, 8);
12511 }
12512 
12513 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector unsigned int __a,__vector unsigned int __b)12514 vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
12515   return __builtin_s390_vfaef(__a, __b, 8);
12516 }
12517 
12518 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
12519 
12520 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)12521 vec_find_any_ne_idx_cc(__vector signed char __a,
12522                        __vector signed char __b, int *__cc) {
12523   return (__vector signed char)
12524     __builtin_s390_vfaebs((__vector unsigned char)__a,
12525                           (__vector unsigned char)__b, 8, __cc);
12526 }
12527 
12528 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)12529 vec_find_any_ne_idx_cc(__vector __bool char __a,
12530                        __vector __bool char __b, int *__cc) {
12531   return __builtin_s390_vfaebs((__vector unsigned char)__a,
12532                                (__vector unsigned char)__b, 8, __cc);
12533 }
12534 
12535 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)12536 vec_find_any_ne_idx_cc(__vector unsigned char __a,
12537                        __vector unsigned char __b,
12538                        int *__cc) {
12539   return __builtin_s390_vfaebs(__a, __b, 8, __cc);
12540 }
12541 
12542 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)12543 vec_find_any_ne_idx_cc(__vector signed short __a,
12544                        __vector signed short __b, int *__cc) {
12545   return (__vector signed short)
12546     __builtin_s390_vfaehs((__vector unsigned short)__a,
12547                           (__vector unsigned short)__b, 8, __cc);
12548 }
12549 
12550 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)12551 vec_find_any_ne_idx_cc(__vector __bool short __a,
12552                        __vector __bool short __b, int *__cc) {
12553   return __builtin_s390_vfaehs((__vector unsigned short)__a,
12554                                (__vector unsigned short)__b, 8, __cc);
12555 }
12556 
12557 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)12558 vec_find_any_ne_idx_cc(__vector unsigned short __a,
12559                        __vector unsigned short __b, int *__cc) {
12560   return __builtin_s390_vfaehs(__a, __b, 8, __cc);
12561 }
12562 
12563 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)12564 vec_find_any_ne_idx_cc(__vector signed int __a,
12565                        __vector signed int __b, int *__cc) {
12566   return (__vector signed int)
12567     __builtin_s390_vfaefs((__vector unsigned int)__a,
12568                           (__vector unsigned int)__b, 8, __cc);
12569 }
12570 
12571 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)12572 vec_find_any_ne_idx_cc(__vector __bool int __a,
12573                        __vector __bool int __b, int *__cc) {
12574   return __builtin_s390_vfaefs((__vector unsigned int)__a,
12575                                (__vector unsigned int)__b, 8, __cc);
12576 }
12577 
12578 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)12579 vec_find_any_ne_idx_cc(__vector unsigned int __a,
12580                        __vector unsigned int __b, int *__cc) {
12581   return __builtin_s390_vfaefs(__a, __b, 8, __cc);
12582 }
12583 
12584 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
12585 
12586 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_or_0_idx(__vector signed char __a,__vector signed char __b)12587 vec_find_any_ne_or_0_idx(__vector signed char __a,
12588                          __vector signed char __b) {
12589   return (__vector signed char)
12590     __builtin_s390_vfaezb((__vector unsigned char)__a,
12591                           (__vector unsigned char)__b, 8);
12592 }
12593 
12594 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector __bool char __a,__vector __bool char __b)12595 vec_find_any_ne_or_0_idx(__vector __bool char __a,
12596                          __vector __bool char __b) {
12597   return __builtin_s390_vfaezb((__vector unsigned char)__a,
12598                                (__vector unsigned char)__b, 8);
12599 }
12600 
12601 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)12602 vec_find_any_ne_or_0_idx(__vector unsigned char __a,
12603                          __vector unsigned char __b) {
12604   return __builtin_s390_vfaezb(__a, __b, 8);
12605 }
12606 
12607 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_or_0_idx(__vector signed short __a,__vector signed short __b)12608 vec_find_any_ne_or_0_idx(__vector signed short __a,
12609                          __vector signed short __b) {
12610   return (__vector signed short)
12611     __builtin_s390_vfaezh((__vector unsigned short)__a,
12612                           (__vector unsigned short)__b, 8);
12613 }
12614 
12615 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector __bool short __a,__vector __bool short __b)12616 vec_find_any_ne_or_0_idx(__vector __bool short __a,
12617                          __vector __bool short __b) {
12618   return __builtin_s390_vfaezh((__vector unsigned short)__a,
12619                                (__vector unsigned short)__b, 8);
12620 }
12621 
12622 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)12623 vec_find_any_ne_or_0_idx(__vector unsigned short __a,
12624                          __vector unsigned short __b) {
12625   return __builtin_s390_vfaezh(__a, __b, 8);
12626 }
12627 
12628 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_or_0_idx(__vector signed int __a,__vector signed int __b)12629 vec_find_any_ne_or_0_idx(__vector signed int __a,
12630                          __vector signed int __b) {
12631   return (__vector signed int)
12632     __builtin_s390_vfaezf((__vector unsigned int)__a,
12633                           (__vector unsigned int)__b, 8);
12634 }
12635 
12636 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector __bool int __a,__vector __bool int __b)12637 vec_find_any_ne_or_0_idx(__vector __bool int __a,
12638                          __vector __bool int __b) {
12639   return __builtin_s390_vfaezf((__vector unsigned int)__a,
12640                                (__vector unsigned int)__b, 8);
12641 }
12642 
12643 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)12644 vec_find_any_ne_or_0_idx(__vector unsigned int __a,
12645                          __vector unsigned int __b) {
12646   return __builtin_s390_vfaezf(__a, __b, 8);
12647 }
12648 
12649 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
12650 
12651 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)12652 vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
12653                             __vector signed char __b, int *__cc) {
12654   return (__vector signed char)
12655     __builtin_s390_vfaezbs((__vector unsigned char)__a,
12656                            (__vector unsigned char)__b, 8, __cc);
12657 }
12658 
12659 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)12660 vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
12661                             __vector __bool char __b, int *__cc) {
12662   return __builtin_s390_vfaezbs((__vector unsigned char)__a,
12663                                 (__vector unsigned char)__b, 8, __cc);
12664 }
12665 
12666 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)12667 vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
12668                             __vector unsigned char __b, int *__cc) {
12669   return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
12670 }
12671 
12672 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)12673 vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
12674                             __vector signed short __b, int *__cc) {
12675   return (__vector signed short)
12676     __builtin_s390_vfaezhs((__vector unsigned short)__a,
12677                            (__vector unsigned short)__b, 8, __cc);
12678 }
12679 
12680 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)12681 vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
12682                             __vector __bool short __b, int *__cc) {
12683   return __builtin_s390_vfaezhs((__vector unsigned short)__a,
12684                                 (__vector unsigned short)__b, 8, __cc);
12685 }
12686 
12687 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)12688 vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
12689                             __vector unsigned short __b, int *__cc) {
12690   return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
12691 }
12692 
12693 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)12694 vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
12695                             __vector signed int __b, int *__cc) {
12696   return (__vector signed int)
12697     __builtin_s390_vfaezfs((__vector unsigned int)__a,
12698                            (__vector unsigned int)__b, 8, __cc);
12699 }
12700 
12701 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)12702 vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
12703                             __vector __bool int __b, int *__cc) {
12704   return __builtin_s390_vfaezfs((__vector unsigned int)__a,
12705                                 (__vector unsigned int)__b, 8, __cc);
12706 }
12707 
12708 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)12709 vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
12710                             __vector unsigned int __b, int *__cc) {
12711   return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
12712 }
12713 
12714 /*-- vec_search_string_cc ---------------------------------------------------*/
12715 
12716 #if __ARCH__ >= 13
12717 
12718 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed char __a,__vector signed char __b,__vector unsigned char __c,int * __cc)12719 vec_search_string_cc(__vector signed char __a, __vector signed char __b,
12720                      __vector unsigned char __c, int *__cc) {
12721   return __builtin_s390_vstrsb((__vector unsigned char)__a,
12722                                (__vector unsigned char)__b, __c, __cc);
12723 }
12724 
12725 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c,int * __cc)12726 vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
12727                      __vector unsigned char __c, int *__cc) {
12728   return __builtin_s390_vstrsb((__vector unsigned char)__a,
12729                                (__vector unsigned char)__b, __c, __cc);
12730 }
12731 
12732 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)12733 vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
12734                      __vector unsigned char __c, int *__cc) {
12735   return __builtin_s390_vstrsb(__a, __b, __c, __cc);
12736 }
12737 
12738 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed short __a,__vector signed short __b,__vector unsigned char __c,int * __cc)12739 vec_search_string_cc(__vector signed short __a, __vector signed short __b,
12740                      __vector unsigned char __c, int *__cc) {
12741   return __builtin_s390_vstrsh((__vector unsigned short)__a,
12742                                (__vector unsigned short)__b, __c, __cc);
12743 }
12744 
12745 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c,int * __cc)12746 vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
12747                      __vector unsigned char __c, int *__cc) {
12748   return __builtin_s390_vstrsh((__vector unsigned short)__a,
12749                                (__vector unsigned short)__b, __c, __cc);
12750 }
12751 
12752 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c,int * __cc)12753 vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
12754                      __vector unsigned char __c, int *__cc) {
12755   return __builtin_s390_vstrsh(__a, __b, __c, __cc);
12756 }
12757 
12758 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed int __a,__vector signed int __b,__vector unsigned char __c,int * __cc)12759 vec_search_string_cc(__vector signed int __a, __vector signed int __b,
12760                      __vector unsigned char __c, int *__cc) {
12761   return __builtin_s390_vstrsf((__vector unsigned int)__a,
12762                                (__vector unsigned int)__b, __c, __cc);
12763 }
12764 
12765 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c,int * __cc)12766 vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
12767                      __vector unsigned char __c, int *__cc) {
12768   return __builtin_s390_vstrsf((__vector unsigned int)__a,
12769                                (__vector unsigned int)__b, __c, __cc);
12770 }
12771 
12772 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c,int * __cc)12773 vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
12774                      __vector unsigned char __c, int *__cc) {
12775   return __builtin_s390_vstrsf(__a, __b, __c, __cc);
12776 }
12777 
12778 #endif
12779 
12780 /*-- vec_search_string_until_zero_cc ----------------------------------------*/
12781 
12782 #if __ARCH__ >= 13
12783 
12784 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed char __a,__vector signed char __b,__vector unsigned char __c,int * __cc)12785 vec_search_string_until_zero_cc(__vector signed char __a,
12786                                 __vector signed char __b,
12787                                 __vector unsigned char __c, int *__cc) {
12788   return __builtin_s390_vstrszb((__vector unsigned char)__a,
12789                                 (__vector unsigned char)__b, __c, __cc);
12790 }
12791 
12792 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c,int * __cc)12793 vec_search_string_until_zero_cc(__vector __bool char __a,
12794                                 __vector __bool char __b,
12795                                 __vector unsigned char __c, int *__cc) {
12796   return __builtin_s390_vstrszb((__vector unsigned char)__a,
12797                                 (__vector unsigned char)__b, __c, __cc);
12798 }
12799 
12800 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)12801 vec_search_string_until_zero_cc(__vector unsigned char __a,
12802                                 __vector unsigned char __b,
12803                                 __vector unsigned char __c, int *__cc) {
12804   return __builtin_s390_vstrszb(__a, __b, __c, __cc);
12805 }
12806 
12807 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed short __a,__vector signed short __b,__vector unsigned char __c,int * __cc)12808 vec_search_string_until_zero_cc(__vector signed short __a,
12809                                 __vector signed short __b,
12810                                 __vector unsigned char __c, int *__cc) {
12811   return __builtin_s390_vstrszh((__vector unsigned short)__a,
12812                                 (__vector unsigned short)__b, __c, __cc);
12813 }
12814 
12815 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c,int * __cc)12816 vec_search_string_until_zero_cc(__vector __bool short __a,
12817                                 __vector __bool short __b,
12818                                 __vector unsigned char __c, int *__cc) {
12819   return __builtin_s390_vstrszh((__vector unsigned short)__a,
12820                                 (__vector unsigned short)__b, __c, __cc);
12821 }
12822 
12823 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c,int * __cc)12824 vec_search_string_until_zero_cc(__vector unsigned short __a,
12825                                 __vector unsigned short __b,
12826                                 __vector unsigned char __c, int *__cc) {
12827   return __builtin_s390_vstrszh(__a, __b, __c, __cc);
12828 }
12829 
12830 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed int __a,__vector signed int __b,__vector unsigned char __c,int * __cc)12831 vec_search_string_until_zero_cc(__vector signed int __a,
12832                                 __vector signed int __b,
12833                                 __vector unsigned char __c, int *__cc) {
12834   return __builtin_s390_vstrszf((__vector unsigned int)__a,
12835                                 (__vector unsigned int)__b, __c, __cc);
12836 }
12837 
12838 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c,int * __cc)12839 vec_search_string_until_zero_cc(__vector __bool int __a,
12840                                 __vector __bool int __b,
12841                                 __vector unsigned char __c, int *__cc) {
12842   return __builtin_s390_vstrszf((__vector unsigned int)__a,
12843                                 (__vector unsigned int)__b, __c, __cc);
12844 }
12845 
12846 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c,int * __cc)12847 vec_search_string_until_zero_cc(__vector unsigned int __a,
12848                                 __vector unsigned int __b,
12849                                 __vector unsigned char __c, int *__cc) {
12850   return __builtin_s390_vstrszf(__a, __b, __c, __cc);
12851 }
12852 
12853 #endif
12854 
12855 #undef __constant_pow2_range
12856 #undef __constant_range
12857 #undef __constant
12858 #undef __ATTRS_o
12859 #undef __ATTRS_o_ai
12860 #undef __ATTRS_ai
12861 
12862 #else
12863 
12864 #error "Use -fzvector to enable vector extensions"
12865 
12866 #endif
12867 
12868 #endif /* _VECINTRIN_H */
12869