1 /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2  *
3  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4  * See https://llvm.org/LICENSE.txt for license information.
5  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6  *
7  *===-----------------------------------------------------------------------===
8  */
9 
10 #if defined(__s390x__) && defined(__VEC__)
11 
12 #define __ATTRS_ai __attribute__((__always_inline__))
13 #define __ATTRS_o __attribute__((__overloadable__))
14 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
15 
16 #define __constant(PARM) \
17   __attribute__((__enable_if__ ((PARM) == (PARM), \
18      "argument must be a constant integer")))
19 #define __constant_range(PARM, LOW, HIGH) \
20   __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
21      "argument must be a constant integer from " #LOW " to " #HIGH)))
22 #define __constant_pow2_range(PARM, LOW, HIGH) \
23   __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
24                                 ((PARM) & ((PARM) - 1)) == 0, \
25      "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
26 
27 /*-- __lcbb -----------------------------------------------------------------*/
28 
29 extern __ATTRS_o unsigned int
30 __lcbb(const void *__ptr, unsigned short __len)
31   __constant_pow2_range(__len, 64, 4096);
32 
33 #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
34   __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
35                            ((Y) == 64 ? 0 : \
36                             (Y) == 128 ? 1 : \
37                             (Y) == 256 ? 2 : \
38                             (Y) == 512 ? 3 : \
39                             (Y) == 1024 ? 4 : \
40                             (Y) == 2048 ? 5 : \
41                             (Y) == 4096 ? 6 : 0) : 0))
42 
43 /*-- vec_extract ------------------------------------------------------------*/
44 
45 static inline __ATTRS_o_ai signed char
vec_extract(__vector signed char __vec,int __index)46 vec_extract(__vector signed char __vec, int __index) {
47   return __vec[__index & 15];
48 }
49 
50 static inline __ATTRS_o_ai unsigned char
vec_extract(__vector __bool char __vec,int __index)51 vec_extract(__vector __bool char __vec, int __index) {
52   return __vec[__index & 15];
53 }
54 
55 static inline __ATTRS_o_ai unsigned char
vec_extract(__vector unsigned char __vec,int __index)56 vec_extract(__vector unsigned char __vec, int __index) {
57   return __vec[__index & 15];
58 }
59 
60 static inline __ATTRS_o_ai signed short
vec_extract(__vector signed short __vec,int __index)61 vec_extract(__vector signed short __vec, int __index) {
62   return __vec[__index & 7];
63 }
64 
65 static inline __ATTRS_o_ai unsigned short
vec_extract(__vector __bool short __vec,int __index)66 vec_extract(__vector __bool short __vec, int __index) {
67   return __vec[__index & 7];
68 }
69 
70 static inline __ATTRS_o_ai unsigned short
vec_extract(__vector unsigned short __vec,int __index)71 vec_extract(__vector unsigned short __vec, int __index) {
72   return __vec[__index & 7];
73 }
74 
75 static inline __ATTRS_o_ai signed int
vec_extract(__vector signed int __vec,int __index)76 vec_extract(__vector signed int __vec, int __index) {
77   return __vec[__index & 3];
78 }
79 
80 static inline __ATTRS_o_ai unsigned int
vec_extract(__vector __bool int __vec,int __index)81 vec_extract(__vector __bool int __vec, int __index) {
82   return __vec[__index & 3];
83 }
84 
85 static inline __ATTRS_o_ai unsigned int
vec_extract(__vector unsigned int __vec,int __index)86 vec_extract(__vector unsigned int __vec, int __index) {
87   return __vec[__index & 3];
88 }
89 
90 static inline __ATTRS_o_ai signed long long
vec_extract(__vector signed long long __vec,int __index)91 vec_extract(__vector signed long long __vec, int __index) {
92   return __vec[__index & 1];
93 }
94 
95 static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector __bool long long __vec,int __index)96 vec_extract(__vector __bool long long __vec, int __index) {
97   return __vec[__index & 1];
98 }
99 
100 static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector unsigned long long __vec,int __index)101 vec_extract(__vector unsigned long long __vec, int __index) {
102   return __vec[__index & 1];
103 }
104 
105 #if __ARCH__ >= 12
106 static inline __ATTRS_o_ai float
vec_extract(__vector float __vec,int __index)107 vec_extract(__vector float __vec, int __index) {
108   return __vec[__index & 3];
109 }
110 #endif
111 
112 static inline __ATTRS_o_ai double
vec_extract(__vector double __vec,int __index)113 vec_extract(__vector double __vec, int __index) {
114   return __vec[__index & 1];
115 }
116 
117 /*-- vec_insert -------------------------------------------------------------*/
118 
119 static inline __ATTRS_o_ai __vector signed char
vec_insert(signed char __scalar,__vector signed char __vec,int __index)120 vec_insert(signed char __scalar, __vector signed char __vec, int __index) {
121   __vec[__index & 15] = __scalar;
122   return __vec;
123 }
124 
125 // This prototype is deprecated.
126 static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector __bool char __vec,int __index)127 vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {
128   __vector unsigned char __newvec = (__vector unsigned char)__vec;
129   __newvec[__index & 15] = (unsigned char)__scalar;
130   return __newvec;
131 }
132 
133 static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector unsigned char __vec,int __index)134 vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
135   __vec[__index & 15] = __scalar;
136   return __vec;
137 }
138 
139 static inline __ATTRS_o_ai __vector signed short
vec_insert(signed short __scalar,__vector signed short __vec,int __index)140 vec_insert(signed short __scalar, __vector signed short __vec, int __index) {
141   __vec[__index & 7] = __scalar;
142   return __vec;
143 }
144 
145 // This prototype is deprecated.
146 static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector __bool short __vec,int __index)147 vec_insert(unsigned short __scalar, __vector __bool short __vec,
148            int __index) {
149   __vector unsigned short __newvec = (__vector unsigned short)__vec;
150   __newvec[__index & 7] = (unsigned short)__scalar;
151   return __newvec;
152 }
153 
154 static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector unsigned short __vec,int __index)155 vec_insert(unsigned short __scalar, __vector unsigned short __vec,
156            int __index) {
157   __vec[__index & 7] = __scalar;
158   return __vec;
159 }
160 
161 static inline __ATTRS_o_ai __vector signed int
vec_insert(signed int __scalar,__vector signed int __vec,int __index)162 vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
163   __vec[__index & 3] = __scalar;
164   return __vec;
165 }
166 
167 // This prototype is deprecated.
168 static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector __bool int __vec,int __index)169 vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
170   __vector unsigned int __newvec = (__vector unsigned int)__vec;
171   __newvec[__index & 3] = __scalar;
172   return __newvec;
173 }
174 
175 static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector unsigned int __vec,int __index)176 vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
177   __vec[__index & 3] = __scalar;
178   return __vec;
179 }
180 
181 static inline __ATTRS_o_ai __vector signed long long
vec_insert(signed long long __scalar,__vector signed long long __vec,int __index)182 vec_insert(signed long long __scalar, __vector signed long long __vec,
183            int __index) {
184   __vec[__index & 1] = __scalar;
185   return __vec;
186 }
187 
188 // This prototype is deprecated.
189 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar,__vector __bool long long __vec,int __index)190 vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
191            int __index) {
192   __vector unsigned long long __newvec = (__vector unsigned long long)__vec;
193   __newvec[__index & 1] = __scalar;
194   return __newvec;
195 }
196 
197 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar,__vector unsigned long long __vec,int __index)198 vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
199            int __index) {
200   __vec[__index & 1] = __scalar;
201   return __vec;
202 }
203 
204 #if __ARCH__ >= 12
205 static inline __ATTRS_o_ai __vector float
vec_insert(float __scalar,__vector float __vec,int __index)206 vec_insert(float __scalar, __vector float __vec, int __index) {
207   __vec[__index & 1] = __scalar;
208   return __vec;
209 }
210 #endif
211 
212 static inline __ATTRS_o_ai __vector double
vec_insert(double __scalar,__vector double __vec,int __index)213 vec_insert(double __scalar, __vector double __vec, int __index) {
214   __vec[__index & 1] = __scalar;
215   return __vec;
216 }
217 
218 /*-- vec_promote ------------------------------------------------------------*/
219 
220 static inline __ATTRS_o_ai __vector signed char
vec_promote(signed char __scalar,int __index)221 vec_promote(signed char __scalar, int __index) {
222   const __vector signed char __zero = (__vector signed char)0;
223   __vector signed char __vec = __builtin_shufflevector(__zero, __zero,
224     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
225   __vec[__index & 15] = __scalar;
226   return __vec;
227 }
228 
229 static inline __ATTRS_o_ai __vector unsigned char
vec_promote(unsigned char __scalar,int __index)230 vec_promote(unsigned char __scalar, int __index) {
231   const __vector unsigned char __zero = (__vector unsigned char)0;
232   __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
233     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
234   __vec[__index & 15] = __scalar;
235   return __vec;
236 }
237 
238 static inline __ATTRS_o_ai __vector signed short
vec_promote(signed short __scalar,int __index)239 vec_promote(signed short __scalar, int __index) {
240   const __vector signed short __zero = (__vector signed short)0;
241   __vector signed short __vec = __builtin_shufflevector(__zero, __zero,
242                                 -1, -1, -1, -1, -1, -1, -1, -1);
243   __vec[__index & 7] = __scalar;
244   return __vec;
245 }
246 
247 static inline __ATTRS_o_ai __vector unsigned short
vec_promote(unsigned short __scalar,int __index)248 vec_promote(unsigned short __scalar, int __index) {
249   const __vector unsigned short __zero = (__vector unsigned short)0;
250   __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
251                                   -1, -1, -1, -1, -1, -1, -1, -1);
252   __vec[__index & 7] = __scalar;
253   return __vec;
254 }
255 
256 static inline __ATTRS_o_ai __vector signed int
vec_promote(signed int __scalar,int __index)257 vec_promote(signed int __scalar, int __index) {
258   const __vector signed int __zero = (__vector signed int)0;
259   __vector signed int __vec = __builtin_shufflevector(__zero, __zero,
260                                                       -1, -1, -1, -1);
261   __vec[__index & 3] = __scalar;
262   return __vec;
263 }
264 
265 static inline __ATTRS_o_ai __vector unsigned int
vec_promote(unsigned int __scalar,int __index)266 vec_promote(unsigned int __scalar, int __index) {
267   const __vector unsigned int __zero = (__vector unsigned int)0;
268   __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
269                                                         -1, -1, -1, -1);
270   __vec[__index & 3] = __scalar;
271   return __vec;
272 }
273 
274 static inline __ATTRS_o_ai __vector signed long long
vec_promote(signed long long __scalar,int __index)275 vec_promote(signed long long __scalar, int __index) {
276   const __vector signed long long __zero = (__vector signed long long)0;
277   __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
278                                                             -1, -1);
279   __vec[__index & 1] = __scalar;
280   return __vec;
281 }
282 
283 static inline __ATTRS_o_ai __vector unsigned long long
vec_promote(unsigned long long __scalar,int __index)284 vec_promote(unsigned long long __scalar, int __index) {
285   const __vector unsigned long long __zero = (__vector unsigned long long)0;
286   __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
287                                                               -1, -1);
288   __vec[__index & 1] = __scalar;
289   return __vec;
290 }
291 
292 #if __ARCH__ >= 12
293 static inline __ATTRS_o_ai __vector float
vec_promote(float __scalar,int __index)294 vec_promote(float __scalar, int __index) {
295   const __vector float __zero = (__vector float)0.0f;
296   __vector float __vec = __builtin_shufflevector(__zero, __zero,
297                                                  -1, -1, -1, -1);
298   __vec[__index & 3] = __scalar;
299   return __vec;
300 }
301 #endif
302 
303 static inline __ATTRS_o_ai __vector double
vec_promote(double __scalar,int __index)304 vec_promote(double __scalar, int __index) {
305   const __vector double __zero = (__vector double)0.0;
306   __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
307   __vec[__index & 1] = __scalar;
308   return __vec;
309 }
310 
311 /*-- vec_insert_and_zero ----------------------------------------------------*/
312 
313 static inline __ATTRS_o_ai __vector signed char
vec_insert_and_zero(const signed char * __ptr)314 vec_insert_and_zero(const signed char *__ptr) {
315   __vector signed char __vec = (__vector signed char)0;
316   __vec[7] = *__ptr;
317   return __vec;
318 }
319 
320 static inline __ATTRS_o_ai __vector unsigned char
vec_insert_and_zero(const unsigned char * __ptr)321 vec_insert_and_zero(const unsigned char *__ptr) {
322   __vector unsigned char __vec = (__vector unsigned char)0;
323   __vec[7] = *__ptr;
324   return __vec;
325 }
326 
327 static inline __ATTRS_o_ai __vector signed short
vec_insert_and_zero(const signed short * __ptr)328 vec_insert_and_zero(const signed short *__ptr) {
329   __vector signed short __vec = (__vector signed short)0;
330   __vec[3] = *__ptr;
331   return __vec;
332 }
333 
334 static inline __ATTRS_o_ai __vector unsigned short
vec_insert_and_zero(const unsigned short * __ptr)335 vec_insert_and_zero(const unsigned short *__ptr) {
336   __vector unsigned short __vec = (__vector unsigned short)0;
337   __vec[3] = *__ptr;
338   return __vec;
339 }
340 
341 static inline __ATTRS_o_ai __vector signed int
vec_insert_and_zero(const signed int * __ptr)342 vec_insert_and_zero(const signed int *__ptr) {
343   __vector signed int __vec = (__vector signed int)0;
344   __vec[1] = *__ptr;
345   return __vec;
346 }
347 
348 static inline __ATTRS_o_ai __vector unsigned int
vec_insert_and_zero(const unsigned int * __ptr)349 vec_insert_and_zero(const unsigned int *__ptr) {
350   __vector unsigned int __vec = (__vector unsigned int)0;
351   __vec[1] = *__ptr;
352   return __vec;
353 }
354 
355 static inline __ATTRS_o_ai __vector signed long long
vec_insert_and_zero(const signed long long * __ptr)356 vec_insert_and_zero(const signed long long *__ptr) {
357   __vector signed long long __vec = (__vector signed long long)0;
358   __vec[0] = *__ptr;
359   return __vec;
360 }
361 
362 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert_and_zero(const unsigned long long * __ptr)363 vec_insert_and_zero(const unsigned long long *__ptr) {
364   __vector unsigned long long __vec = (__vector unsigned long long)0;
365   __vec[0] = *__ptr;
366   return __vec;
367 }
368 
369 #if __ARCH__ >= 12
370 static inline __ATTRS_o_ai __vector float
vec_insert_and_zero(const float * __ptr)371 vec_insert_and_zero(const float *__ptr) {
372   __vector float __vec = (__vector float)0.0f;
373   __vec[1] = *__ptr;
374   return __vec;
375 }
376 #endif
377 
378 static inline __ATTRS_o_ai __vector double
vec_insert_and_zero(const double * __ptr)379 vec_insert_and_zero(const double *__ptr) {
380   __vector double __vec = (__vector double)0.0;
381   __vec[0] = *__ptr;
382   return __vec;
383 }
384 
385 /*-- vec_perm ---------------------------------------------------------------*/
386 
387 static inline __ATTRS_o_ai __vector signed char
vec_perm(__vector signed char __a,__vector signed char __b,__vector unsigned char __c)388 vec_perm(__vector signed char __a, __vector signed char __b,
389          __vector unsigned char __c) {
390   return (__vector signed char)__builtin_s390_vperm(
391            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
392 }
393 
394 static inline __ATTRS_o_ai __vector unsigned char
vec_perm(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)395 vec_perm(__vector unsigned char __a, __vector unsigned char __b,
396          __vector unsigned char __c) {
397   return (__vector unsigned char)__builtin_s390_vperm(
398            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
399 }
400 
401 static inline __ATTRS_o_ai __vector __bool char
vec_perm(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c)402 vec_perm(__vector __bool char __a, __vector __bool char __b,
403          __vector unsigned char __c) {
404   return (__vector __bool char)__builtin_s390_vperm(
405            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
406 }
407 
408 static inline __ATTRS_o_ai __vector signed short
vec_perm(__vector signed short __a,__vector signed short __b,__vector unsigned char __c)409 vec_perm(__vector signed short __a, __vector signed short __b,
410          __vector unsigned char __c) {
411   return (__vector signed short)__builtin_s390_vperm(
412            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
413 }
414 
415 static inline __ATTRS_o_ai __vector unsigned short
vec_perm(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c)416 vec_perm(__vector unsigned short __a, __vector unsigned short __b,
417          __vector unsigned char __c) {
418   return (__vector unsigned short)__builtin_s390_vperm(
419            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
420 }
421 
422 static inline __ATTRS_o_ai __vector __bool short
vec_perm(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c)423 vec_perm(__vector __bool short __a, __vector __bool short __b,
424          __vector unsigned char __c) {
425   return (__vector __bool short)__builtin_s390_vperm(
426            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
427 }
428 
429 static inline __ATTRS_o_ai __vector signed int
vec_perm(__vector signed int __a,__vector signed int __b,__vector unsigned char __c)430 vec_perm(__vector signed int __a, __vector signed int __b,
431          __vector unsigned char __c) {
432   return (__vector signed int)__builtin_s390_vperm(
433            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
434 }
435 
436 static inline __ATTRS_o_ai __vector unsigned int
vec_perm(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c)437 vec_perm(__vector unsigned int __a, __vector unsigned int __b,
438          __vector unsigned char __c) {
439   return (__vector unsigned int)__builtin_s390_vperm(
440            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
441 }
442 
443 static inline __ATTRS_o_ai __vector __bool int
vec_perm(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c)444 vec_perm(__vector __bool int __a, __vector __bool int __b,
445          __vector unsigned char __c) {
446   return (__vector __bool int)__builtin_s390_vperm(
447            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
448 }
449 
450 static inline __ATTRS_o_ai __vector signed long long
vec_perm(__vector signed long long __a,__vector signed long long __b,__vector unsigned char __c)451 vec_perm(__vector signed long long __a, __vector signed long long __b,
452          __vector unsigned char __c) {
453   return (__vector signed long long)__builtin_s390_vperm(
454            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
455 }
456 
457 static inline __ATTRS_o_ai __vector unsigned long long
vec_perm(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned char __c)458 vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
459          __vector unsigned char __c) {
460   return (__vector unsigned long long)__builtin_s390_vperm(
461            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
462 }
463 
464 static inline __ATTRS_o_ai __vector __bool long long
vec_perm(__vector __bool long long __a,__vector __bool long long __b,__vector unsigned char __c)465 vec_perm(__vector __bool long long __a, __vector __bool long long __b,
466          __vector unsigned char __c) {
467   return (__vector __bool long long)__builtin_s390_vperm(
468            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
469 }
470 
471 #if __ARCH__ >= 12
472 static inline __ATTRS_o_ai __vector float
vec_perm(__vector float __a,__vector float __b,__vector unsigned char __c)473 vec_perm(__vector float __a, __vector float __b,
474          __vector unsigned char __c) {
475   return (__vector float)__builtin_s390_vperm(
476            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
477 }
478 #endif
479 
480 static inline __ATTRS_o_ai __vector double
vec_perm(__vector double __a,__vector double __b,__vector unsigned char __c)481 vec_perm(__vector double __a, __vector double __b,
482          __vector unsigned char __c) {
483   return (__vector double)__builtin_s390_vperm(
484            (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
485 }
486 
487 /*-- vec_permi --------------------------------------------------------------*/
488 
489 // This prototype is deprecated.
490 extern __ATTRS_o __vector signed long long
491 vec_permi(__vector signed long long __a, __vector signed long long __b,
492           int __c)
493   __constant_range(__c, 0, 3);
494 
495 // This prototype is deprecated.
496 extern __ATTRS_o __vector unsigned long long
497 vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
498           int __c)
499   __constant_range(__c, 0, 3);
500 
501 // This prototype is deprecated.
502 extern __ATTRS_o __vector __bool long long
503 vec_permi(__vector __bool long long __a, __vector __bool long long __b,
504           int __c)
505   __constant_range(__c, 0, 3);
506 
507 // This prototype is deprecated.
508 extern __ATTRS_o __vector double
509 vec_permi(__vector double __a, __vector double __b, int __c)
510   __constant_range(__c, 0, 3);
511 
512 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
513   __builtin_s390_vpdi((__vector unsigned long long)(X), \
514                       (__vector unsigned long long)(Y), \
515                       (((Z) & 2) << 1) | ((Z) & 1)))
516 
517 /*-- vec_bperm_u128 ---------------------------------------------------------*/
518 
519 #if __ARCH__ >= 12
520 static inline __ATTRS_ai __vector unsigned long long
vec_bperm_u128(__vector unsigned char __a,__vector unsigned char __b)521 vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
522   return __builtin_s390_vbperm(__a, __b);
523 }
524 #endif
525 
526 /*-- vec_revb ---------------------------------------------------------------*/
527 
528 static inline __ATTRS_o_ai __vector signed short
vec_revb(__vector signed short __vec)529 vec_revb(__vector signed short __vec) {
530   return (__vector signed short)
531          __builtin_s390_vlbrh((__vector unsigned short)__vec);
532 }
533 
534 static inline __ATTRS_o_ai __vector unsigned short
vec_revb(__vector unsigned short __vec)535 vec_revb(__vector unsigned short __vec) {
536   return __builtin_s390_vlbrh(__vec);
537 }
538 
539 static inline __ATTRS_o_ai __vector signed int
vec_revb(__vector signed int __vec)540 vec_revb(__vector signed int __vec) {
541   return (__vector signed int)
542          __builtin_s390_vlbrf((__vector unsigned int)__vec);
543 }
544 
545 static inline __ATTRS_o_ai __vector unsigned int
vec_revb(__vector unsigned int __vec)546 vec_revb(__vector unsigned int __vec) {
547   return __builtin_s390_vlbrf(__vec);
548 }
549 
550 static inline __ATTRS_o_ai __vector signed long long
vec_revb(__vector signed long long __vec)551 vec_revb(__vector signed long long __vec) {
552   return (__vector signed long long)
553          __builtin_s390_vlbrg((__vector unsigned long long)__vec);
554 }
555 
556 static inline __ATTRS_o_ai __vector unsigned long long
vec_revb(__vector unsigned long long __vec)557 vec_revb(__vector unsigned long long __vec) {
558   return __builtin_s390_vlbrg(__vec);
559 }
560 
561 #if __ARCH__ >= 12
562 static inline __ATTRS_o_ai __vector float
vec_revb(__vector float __vec)563 vec_revb(__vector float __vec) {
564   return (__vector float)
565          __builtin_s390_vlbrf((__vector unsigned int)__vec);
566 }
567 #endif
568 
569 static inline __ATTRS_o_ai __vector double
vec_revb(__vector double __vec)570 vec_revb(__vector double __vec) {
571   return (__vector double)
572          __builtin_s390_vlbrg((__vector unsigned long long)__vec);
573 }
574 
575 /*-- vec_reve ---------------------------------------------------------------*/
576 
577 static inline __ATTRS_o_ai __vector signed char
vec_reve(__vector signed char __vec)578 vec_reve(__vector signed char __vec) {
579   return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
580                                   __vec[11], __vec[10], __vec[9], __vec[8],
581                                   __vec[7], __vec[6], __vec[5], __vec[4],
582                                   __vec[3], __vec[2], __vec[1], __vec[0] };
583 }
584 
585 static inline __ATTRS_o_ai __vector unsigned char
vec_reve(__vector unsigned char __vec)586 vec_reve(__vector unsigned char __vec) {
587   return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
588                                     __vec[11], __vec[10], __vec[9], __vec[8],
589                                     __vec[7], __vec[6], __vec[5], __vec[4],
590                                     __vec[3], __vec[2], __vec[1], __vec[0] };
591 }
592 
593 static inline __ATTRS_o_ai __vector __bool char
vec_reve(__vector __bool char __vec)594 vec_reve(__vector __bool char __vec) {
595   return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
596                                   __vec[11], __vec[10], __vec[9], __vec[8],
597                                   __vec[7], __vec[6], __vec[5], __vec[4],
598                                   __vec[3], __vec[2], __vec[1], __vec[0] };
599 }
600 
601 static inline __ATTRS_o_ai __vector signed short
vec_reve(__vector signed short __vec)602 vec_reve(__vector signed short __vec) {
603   return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
604                                    __vec[3], __vec[2], __vec[1], __vec[0] };
605 }
606 
607 static inline __ATTRS_o_ai __vector unsigned short
vec_reve(__vector unsigned short __vec)608 vec_reve(__vector unsigned short __vec) {
609   return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
610                                      __vec[3], __vec[2], __vec[1], __vec[0] };
611 }
612 
613 static inline __ATTRS_o_ai __vector __bool short
vec_reve(__vector __bool short __vec)614 vec_reve(__vector __bool short __vec) {
615   return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
616                                    __vec[3], __vec[2], __vec[1], __vec[0] };
617 }
618 
619 static inline __ATTRS_o_ai __vector signed int
vec_reve(__vector signed int __vec)620 vec_reve(__vector signed int __vec) {
621   return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
622 }
623 
624 static inline __ATTRS_o_ai __vector unsigned int
vec_reve(__vector unsigned int __vec)625 vec_reve(__vector unsigned int __vec) {
626   return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
627 }
628 
629 static inline __ATTRS_o_ai __vector __bool int
vec_reve(__vector __bool int __vec)630 vec_reve(__vector __bool int __vec) {
631   return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
632 }
633 
634 static inline __ATTRS_o_ai __vector signed long long
vec_reve(__vector signed long long __vec)635 vec_reve(__vector signed long long __vec) {
636   return (__vector signed long long) { __vec[1], __vec[0] };
637 }
638 
639 static inline __ATTRS_o_ai __vector unsigned long long
vec_reve(__vector unsigned long long __vec)640 vec_reve(__vector unsigned long long __vec) {
641   return (__vector unsigned long long) { __vec[1], __vec[0] };
642 }
643 
644 static inline __ATTRS_o_ai __vector __bool long long
vec_reve(__vector __bool long long __vec)645 vec_reve(__vector __bool long long __vec) {
646   return (__vector __bool long long) { __vec[1], __vec[0] };
647 }
648 
649 #if __ARCH__ >= 12
650 static inline __ATTRS_o_ai __vector float
vec_reve(__vector float __vec)651 vec_reve(__vector float __vec) {
652   return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
653 }
654 #endif
655 
656 static inline __ATTRS_o_ai __vector double
vec_reve(__vector double __vec)657 vec_reve(__vector double __vec) {
658   return (__vector double) { __vec[1], __vec[0] };
659 }
660 
661 /*-- vec_sel ----------------------------------------------------------------*/
662 
663 static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a,__vector signed char __b,__vector unsigned char __c)664 vec_sel(__vector signed char __a, __vector signed char __b,
665         __vector unsigned char __c) {
666   return (((__vector signed char)__c & __b) |
667           (~(__vector signed char)__c & __a));
668 }
669 
670 static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a,__vector signed char __b,__vector __bool char __c)671 vec_sel(__vector signed char __a, __vector signed char __b,
672         __vector __bool char __c) {
673   return (((__vector signed char)__c & __b) |
674           (~(__vector signed char)__c & __a));
675 }
676 
677 static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c)678 vec_sel(__vector __bool char __a, __vector __bool char __b,
679         __vector unsigned char __c) {
680   return (((__vector __bool char)__c & __b) |
681           (~(__vector __bool char)__c & __a));
682 }
683 
684 static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a,__vector __bool char __b,__vector __bool char __c)685 vec_sel(__vector __bool char __a, __vector __bool char __b,
686         __vector __bool char __c) {
687   return (__c & __b) | (~__c & __a);
688 }
689 
690 static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)691 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
692         __vector unsigned char __c) {
693   return (__c & __b) | (~__c & __a);
694 }
695 
696 static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a,__vector unsigned char __b,__vector __bool char __c)697 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
698         __vector __bool char __c) {
699   return (((__vector unsigned char)__c & __b) |
700           (~(__vector unsigned char)__c & __a));
701 }
702 
703 static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a,__vector signed short __b,__vector unsigned short __c)704 vec_sel(__vector signed short __a, __vector signed short __b,
705         __vector unsigned short __c) {
706   return (((__vector signed short)__c & __b) |
707           (~(__vector signed short)__c & __a));
708 }
709 
710 static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a,__vector signed short __b,__vector __bool short __c)711 vec_sel(__vector signed short __a, __vector signed short __b,
712         __vector __bool short __c) {
713   return (((__vector signed short)__c & __b) |
714           (~(__vector signed short)__c & __a));
715 }
716 
717 static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a,__vector __bool short __b,__vector unsigned short __c)718 vec_sel(__vector __bool short __a, __vector __bool short __b,
719         __vector unsigned short __c) {
720   return (((__vector __bool short)__c & __b) |
721           (~(__vector __bool short)__c & __a));
722 }
723 
724 static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a,__vector __bool short __b,__vector __bool short __c)725 vec_sel(__vector __bool short __a, __vector __bool short __b,
726         __vector __bool short __c) {
727   return (__c & __b) | (~__c & __a);
728 }
729 
730 static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)731 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
732         __vector unsigned short __c) {
733   return (__c & __b) | (~__c & __a);
734 }
735 
736 static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a,__vector unsigned short __b,__vector __bool short __c)737 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
738         __vector __bool short __c) {
739   return (((__vector unsigned short)__c & __b) |
740           (~(__vector unsigned short)__c & __a));
741 }
742 
743 static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a,__vector signed int __b,__vector unsigned int __c)744 vec_sel(__vector signed int __a, __vector signed int __b,
745         __vector unsigned int __c) {
746   return (((__vector signed int)__c & __b) |
747           (~(__vector signed int)__c & __a));
748 }
749 
750 static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a,__vector signed int __b,__vector __bool int __c)751 vec_sel(__vector signed int __a, __vector signed int __b,
752         __vector __bool int __c) {
753   return (((__vector signed int)__c & __b) |
754           (~(__vector signed int)__c & __a));
755 }
756 
757 static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a,__vector __bool int __b,__vector unsigned int __c)758 vec_sel(__vector __bool int __a, __vector __bool int __b,
759         __vector unsigned int __c) {
760   return (((__vector __bool int)__c & __b) |
761           (~(__vector __bool int)__c & __a));
762 }
763 
764 static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a,__vector __bool int __b,__vector __bool int __c)765 vec_sel(__vector __bool int __a, __vector __bool int __b,
766         __vector __bool int __c) {
767   return (__c & __b) | (~__c & __a);
768 }
769 
770 static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)771 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
772         __vector unsigned int __c) {
773   return (__c & __b) | (~__c & __a);
774 }
775 
776 static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a,__vector unsigned int __b,__vector __bool int __c)777 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
778         __vector __bool int __c) {
779   return (((__vector unsigned int)__c & __b) |
780           (~(__vector unsigned int)__c & __a));
781 }
782 
783 static inline __ATTRS_o_ai __vector signed long long
vec_sel(__vector signed long long __a,__vector signed long long __b,__vector unsigned long long __c)784 vec_sel(__vector signed long long __a, __vector signed long long __b,
785         __vector unsigned long long __c) {
786   return (((__vector signed long long)__c & __b) |
787           (~(__vector signed long long)__c & __a));
788 }
789 
790 static inline __ATTRS_o_ai __vector signed long long
vec_sel(__vector signed long long __a,__vector signed long long __b,__vector __bool long long __c)791 vec_sel(__vector signed long long __a, __vector signed long long __b,
792         __vector __bool long long __c) {
793   return (((__vector signed long long)__c & __b) |
794           (~(__vector signed long long)__c & __a));
795 }
796 
797 static inline __ATTRS_o_ai __vector __bool long long
vec_sel(__vector __bool long long __a,__vector __bool long long __b,__vector unsigned long long __c)798 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
799         __vector unsigned long long __c) {
800   return (((__vector __bool long long)__c & __b) |
801           (~(__vector __bool long long)__c & __a));
802 }
803 
804 static inline __ATTRS_o_ai __vector __bool long long
vec_sel(__vector __bool long long __a,__vector __bool long long __b,__vector __bool long long __c)805 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
806         __vector __bool long long __c) {
807   return (__c & __b) | (~__c & __a);
808 }
809 
810 static inline __ATTRS_o_ai __vector unsigned long long
vec_sel(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned long long __c)811 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
812         __vector unsigned long long __c) {
813   return (__c & __b) | (~__c & __a);
814 }
815 
816 static inline __ATTRS_o_ai __vector unsigned long long
vec_sel(__vector unsigned long long __a,__vector unsigned long long __b,__vector __bool long long __c)817 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
818         __vector __bool long long __c) {
819   return (((__vector unsigned long long)__c & __b) |
820           (~(__vector unsigned long long)__c & __a));
821 }
822 
823 #if __ARCH__ >= 12
824 static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector unsigned int __c)825 vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
826   return (__vector float)((__c & (__vector unsigned int)__b) |
827                           (~__c & (__vector unsigned int)__a));
828 }
829 
830 static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector __bool int __c)831 vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
832   __vector unsigned int __ac = (__vector unsigned int)__a;
833   __vector unsigned int __bc = (__vector unsigned int)__b;
834   __vector unsigned int __cc = (__vector unsigned int)__c;
835   return (__vector float)((__cc & __bc) | (~__cc & __ac));
836 }
837 #endif
838 
839 static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector unsigned long long __c)840 vec_sel(__vector double __a, __vector double __b,
841         __vector unsigned long long __c) {
842   return (__vector double)((__c & (__vector unsigned long long)__b) |
843                          (~__c & (__vector unsigned long long)__a));
844 }
845 
846 static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector __bool long long __c)847 vec_sel(__vector double __a, __vector double __b,
848         __vector __bool long long __c) {
849   __vector unsigned long long __ac = (__vector unsigned long long)__a;
850   __vector unsigned long long __bc = (__vector unsigned long long)__b;
851   __vector unsigned long long __cc = (__vector unsigned long long)__c;
852   return (__vector double)((__cc & __bc) | (~__cc & __ac));
853 }
854 
855 /*-- vec_gather_element -----------------------------------------------------*/
856 
857 static inline __ATTRS_o_ai __vector signed int
vec_gather_element(__vector signed int __vec,__vector unsigned int __offset,const signed int * __ptr,int __index)858 vec_gather_element(__vector signed int __vec,
859                    __vector unsigned int __offset,
860                    const signed int *__ptr, int __index)
861   __constant_range(__index, 0, 3) {
862   __vec[__index] = *(const signed int *)(
863     (const char *)__ptr + __offset[__index]);
864   return __vec;
865 }
866 
867 static inline __ATTRS_o_ai __vector __bool int
vec_gather_element(__vector __bool int __vec,__vector unsigned int __offset,const unsigned int * __ptr,int __index)868 vec_gather_element(__vector __bool int __vec,
869                    __vector unsigned int __offset,
870                    const unsigned int *__ptr, int __index)
871   __constant_range(__index, 0, 3) {
872   __vec[__index] = *(const unsigned int *)(
873     (const char *)__ptr + __offset[__index]);
874   return __vec;
875 }
876 
877 static inline __ATTRS_o_ai __vector unsigned int
vec_gather_element(__vector unsigned int __vec,__vector unsigned int __offset,const unsigned int * __ptr,int __index)878 vec_gather_element(__vector unsigned int __vec,
879                    __vector unsigned int __offset,
880                    const unsigned int *__ptr, int __index)
881   __constant_range(__index, 0, 3) {
882   __vec[__index] = *(const unsigned int *)(
883     (const char *)__ptr + __offset[__index]);
884   return __vec;
885 }
886 
887 static inline __ATTRS_o_ai __vector signed long long
vec_gather_element(__vector signed long long __vec,__vector unsigned long long __offset,const signed long long * __ptr,int __index)888 vec_gather_element(__vector signed long long __vec,
889                    __vector unsigned long long __offset,
890                    const signed long long *__ptr, int __index)
891   __constant_range(__index, 0, 1) {
892   __vec[__index] = *(const signed long long *)(
893     (const char *)__ptr + __offset[__index]);
894   return __vec;
895 }
896 
897 static inline __ATTRS_o_ai __vector __bool long long
vec_gather_element(__vector __bool long long __vec,__vector unsigned long long __offset,const unsigned long long * __ptr,int __index)898 vec_gather_element(__vector __bool long long __vec,
899                    __vector unsigned long long __offset,
900                    const unsigned long long *__ptr, int __index)
901   __constant_range(__index, 0, 1) {
902   __vec[__index] = *(const unsigned long long *)(
903     (const char *)__ptr + __offset[__index]);
904   return __vec;
905 }
906 
907 static inline __ATTRS_o_ai __vector unsigned long long
vec_gather_element(__vector unsigned long long __vec,__vector unsigned long long __offset,const unsigned long long * __ptr,int __index)908 vec_gather_element(__vector unsigned long long __vec,
909                    __vector unsigned long long __offset,
910                    const unsigned long long *__ptr, int __index)
911   __constant_range(__index, 0, 1) {
912   __vec[__index] = *(const unsigned long long *)(
913     (const char *)__ptr + __offset[__index]);
914   return __vec;
915 }
916 
917 #if __ARCH__ >= 12
918 static inline __ATTRS_o_ai __vector float
vec_gather_element(__vector float __vec,__vector unsigned int __offset,const float * __ptr,int __index)919 vec_gather_element(__vector float __vec,
920                    __vector unsigned int __offset,
921                    const float *__ptr, int __index)
922   __constant_range(__index, 0, 3) {
923   __vec[__index] = *(const float *)(
924     (const char *)__ptr + __offset[__index]);
925   return __vec;
926 }
927 #endif
928 
929 static inline __ATTRS_o_ai __vector double
vec_gather_element(__vector double __vec,__vector unsigned long long __offset,const double * __ptr,int __index)930 vec_gather_element(__vector double __vec,
931                    __vector unsigned long long __offset,
932                    const double *__ptr, int __index)
933   __constant_range(__index, 0, 1) {
934   __vec[__index] = *(const double *)(
935     (const char *)__ptr + __offset[__index]);
936   return __vec;
937 }
938 
939 /*-- vec_scatter_element ----------------------------------------------------*/
940 
941 static inline __ATTRS_o_ai void
vec_scatter_element(__vector signed int __vec,__vector unsigned int __offset,signed int * __ptr,int __index)942 vec_scatter_element(__vector signed int __vec,
943                     __vector unsigned int __offset,
944                     signed int *__ptr, int __index)
945   __constant_range(__index, 0, 3) {
946   *(signed int *)((char *)__ptr + __offset[__index]) =
947     __vec[__index];
948 }
949 
950 static inline __ATTRS_o_ai void
vec_scatter_element(__vector __bool int __vec,__vector unsigned int __offset,unsigned int * __ptr,int __index)951 vec_scatter_element(__vector __bool int __vec,
952                     __vector unsigned int __offset,
953                     unsigned int *__ptr, int __index)
954   __constant_range(__index, 0, 3) {
955   *(unsigned int *)((char *)__ptr + __offset[__index]) =
956     __vec[__index];
957 }
958 
959 static inline __ATTRS_o_ai void
vec_scatter_element(__vector unsigned int __vec,__vector unsigned int __offset,unsigned int * __ptr,int __index)960 vec_scatter_element(__vector unsigned int __vec,
961                     __vector unsigned int __offset,
962                     unsigned int *__ptr, int __index)
963   __constant_range(__index, 0, 3) {
964   *(unsigned int *)((char *)__ptr + __offset[__index]) =
965     __vec[__index];
966 }
967 
968 static inline __ATTRS_o_ai void
vec_scatter_element(__vector signed long long __vec,__vector unsigned long long __offset,signed long long * __ptr,int __index)969 vec_scatter_element(__vector signed long long __vec,
970                     __vector unsigned long long __offset,
971                     signed long long *__ptr, int __index)
972   __constant_range(__index, 0, 1) {
973   *(signed long long *)((char *)__ptr + __offset[__index]) =
974     __vec[__index];
975 }
976 
977 static inline __ATTRS_o_ai void
vec_scatter_element(__vector __bool long long __vec,__vector unsigned long long __offset,unsigned long long * __ptr,int __index)978 vec_scatter_element(__vector __bool long long __vec,
979                     __vector unsigned long long __offset,
980                     unsigned long long *__ptr, int __index)
981   __constant_range(__index, 0, 1) {
982   *(unsigned long long *)((char *)__ptr + __offset[__index]) =
983     __vec[__index];
984 }
985 
986 static inline __ATTRS_o_ai void
vec_scatter_element(__vector unsigned long long __vec,__vector unsigned long long __offset,unsigned long long * __ptr,int __index)987 vec_scatter_element(__vector unsigned long long __vec,
988                     __vector unsigned long long __offset,
989                     unsigned long long *__ptr, int __index)
990   __constant_range(__index, 0, 1) {
991   *(unsigned long long *)((char *)__ptr + __offset[__index]) =
992     __vec[__index];
993 }
994 
995 #if __ARCH__ >= 12
996 static inline __ATTRS_o_ai void
vec_scatter_element(__vector float __vec,__vector unsigned int __offset,float * __ptr,int __index)997 vec_scatter_element(__vector float __vec,
998                     __vector unsigned int __offset,
999                     float *__ptr, int __index)
1000   __constant_range(__index, 0, 3) {
1001   *(float *)((char *)__ptr + __offset[__index]) =
1002     __vec[__index];
1003 }
1004 #endif
1005 
1006 static inline __ATTRS_o_ai void
vec_scatter_element(__vector double __vec,__vector unsigned long long __offset,double * __ptr,int __index)1007 vec_scatter_element(__vector double __vec,
1008                     __vector unsigned long long __offset,
1009                     double *__ptr, int __index)
1010   __constant_range(__index, 0, 1) {
1011   *(double *)((char *)__ptr + __offset[__index]) =
1012     __vec[__index];
1013 }
1014 
1015 /*-- vec_xl -----------------------------------------------------------------*/
1016 
1017 static inline __ATTRS_o_ai __vector signed char
vec_xl(long __offset,const signed char * __ptr)1018 vec_xl(long __offset, const signed char *__ptr) {
1019   return *(const __vector signed char *)
1020           ((const char *)__ptr + __offset);
1021 }
1022 
1023 static inline __ATTRS_o_ai __vector unsigned char
vec_xl(long __offset,const unsigned char * __ptr)1024 vec_xl(long __offset, const unsigned char *__ptr) {
1025   return *(const __vector unsigned char *)
1026           ((const char *)__ptr + __offset);
1027 }
1028 
1029 static inline __ATTRS_o_ai __vector signed short
vec_xl(long __offset,const signed short * __ptr)1030 vec_xl(long __offset, const signed short *__ptr) {
1031   return *(const __vector signed short *)
1032           ((const char *)__ptr + __offset);
1033 }
1034 
1035 static inline __ATTRS_o_ai __vector unsigned short
vec_xl(long __offset,const unsigned short * __ptr)1036 vec_xl(long __offset, const unsigned short *__ptr) {
1037   return *(const __vector unsigned short *)
1038           ((const char *)__ptr + __offset);
1039 }
1040 
1041 static inline __ATTRS_o_ai __vector signed int
vec_xl(long __offset,const signed int * __ptr)1042 vec_xl(long __offset, const signed int *__ptr) {
1043   return *(const __vector signed int *)
1044           ((const char *)__ptr + __offset);
1045 }
1046 
1047 static inline __ATTRS_o_ai __vector unsigned int
vec_xl(long __offset,const unsigned int * __ptr)1048 vec_xl(long __offset, const unsigned int *__ptr) {
1049   return *(const __vector unsigned int *)
1050           ((const char *)__ptr + __offset);
1051 }
1052 
1053 static inline __ATTRS_o_ai __vector signed long long
vec_xl(long __offset,const signed long long * __ptr)1054 vec_xl(long __offset, const signed long long *__ptr) {
1055   return *(const __vector signed long long *)
1056           ((const char *)__ptr + __offset);
1057 }
1058 
1059 static inline __ATTRS_o_ai __vector unsigned long long
vec_xl(long __offset,const unsigned long long * __ptr)1060 vec_xl(long __offset, const unsigned long long *__ptr) {
1061   return *(const __vector unsigned long long *)
1062           ((const char *)__ptr + __offset);
1063 }
1064 
1065 #if __ARCH__ >= 12
1066 static inline __ATTRS_o_ai __vector float
vec_xl(long __offset,const float * __ptr)1067 vec_xl(long __offset, const float *__ptr) {
1068   return *(const __vector float *)
1069           ((const char *)__ptr + __offset);
1070 }
1071 #endif
1072 
1073 static inline __ATTRS_o_ai __vector double
vec_xl(long __offset,const double * __ptr)1074 vec_xl(long __offset, const double *__ptr) {
1075   return *(const __vector double *)
1076           ((const char *)__ptr + __offset);
1077 }
1078 
1079 /*-- vec_xld2 ---------------------------------------------------------------*/
1080 
1081 // This prototype is deprecated.
1082 static inline __ATTRS_o_ai __vector signed char
vec_xld2(long __offset,const signed char * __ptr)1083 vec_xld2(long __offset, const signed char *__ptr) {
1084   return *(const __vector signed char *)
1085           ((const char *)__ptr + __offset);
1086 }
1087 
1088 // This prototype is deprecated.
1089 static inline __ATTRS_o_ai __vector unsigned char
vec_xld2(long __offset,const unsigned char * __ptr)1090 vec_xld2(long __offset, const unsigned char *__ptr) {
1091   return *(const __vector unsigned char *)
1092           ((const char *)__ptr + __offset);
1093 }
1094 
1095 // This prototype is deprecated.
1096 static inline __ATTRS_o_ai __vector signed short
vec_xld2(long __offset,const signed short * __ptr)1097 vec_xld2(long __offset, const signed short *__ptr) {
1098   return *(const __vector signed short *)
1099           ((const char *)__ptr + __offset);
1100 }
1101 
1102 // This prototype is deprecated.
1103 static inline __ATTRS_o_ai __vector unsigned short
vec_xld2(long __offset,const unsigned short * __ptr)1104 vec_xld2(long __offset, const unsigned short *__ptr) {
1105   return *(const __vector unsigned short *)
1106           ((const char *)__ptr + __offset);
1107 }
1108 
1109 // This prototype is deprecated.
1110 static inline __ATTRS_o_ai __vector signed int
vec_xld2(long __offset,const signed int * __ptr)1111 vec_xld2(long __offset, const signed int *__ptr) {
1112   return *(const __vector signed int *)
1113           ((const char *)__ptr + __offset);
1114 }
1115 
1116 // This prototype is deprecated.
1117 static inline __ATTRS_o_ai __vector unsigned int
vec_xld2(long __offset,const unsigned int * __ptr)1118 vec_xld2(long __offset, const unsigned int *__ptr) {
1119   return *(const __vector unsigned int *)
1120           ((const char *)__ptr + __offset);
1121 }
1122 
1123 // This prototype is deprecated.
1124 static inline __ATTRS_o_ai __vector signed long long
vec_xld2(long __offset,const signed long long * __ptr)1125 vec_xld2(long __offset, const signed long long *__ptr) {
1126   return *(const __vector signed long long *)
1127           ((const char *)__ptr + __offset);
1128 }
1129 
1130 // This prototype is deprecated.
1131 static inline __ATTRS_o_ai __vector unsigned long long
vec_xld2(long __offset,const unsigned long long * __ptr)1132 vec_xld2(long __offset, const unsigned long long *__ptr) {
1133   return *(const __vector unsigned long long *)
1134           ((const char *)__ptr + __offset);
1135 }
1136 
1137 // This prototype is deprecated.
1138 static inline __ATTRS_o_ai __vector double
vec_xld2(long __offset,const double * __ptr)1139 vec_xld2(long __offset, const double *__ptr) {
1140   return *(const __vector double *)
1141           ((const char *)__ptr + __offset);
1142 }
1143 
1144 /*-- vec_xlw4 ---------------------------------------------------------------*/
1145 
1146 // This prototype is deprecated.
1147 static inline __ATTRS_o_ai __vector signed char
vec_xlw4(long __offset,const signed char * __ptr)1148 vec_xlw4(long __offset, const signed char *__ptr) {
1149   return *(const __vector signed char *)
1150           ((const char *)__ptr + __offset);
1151 }
1152 
1153 // This prototype is deprecated.
1154 static inline __ATTRS_o_ai __vector unsigned char
vec_xlw4(long __offset,const unsigned char * __ptr)1155 vec_xlw4(long __offset, const unsigned char *__ptr) {
1156   return *(const __vector unsigned char *)
1157           ((const char *)__ptr + __offset);
1158 }
1159 
1160 // This prototype is deprecated.
1161 static inline __ATTRS_o_ai __vector signed short
vec_xlw4(long __offset,const signed short * __ptr)1162 vec_xlw4(long __offset, const signed short *__ptr) {
1163   return *(const __vector signed short *)
1164           ((const char *)__ptr + __offset);
1165 }
1166 
1167 // This prototype is deprecated.
1168 static inline __ATTRS_o_ai __vector unsigned short
vec_xlw4(long __offset,const unsigned short * __ptr)1169 vec_xlw4(long __offset, const unsigned short *__ptr) {
1170   return *(const __vector unsigned short *)
1171           ((const char *)__ptr + __offset);
1172 }
1173 
1174 // This prototype is deprecated.
1175 static inline __ATTRS_o_ai __vector signed int
vec_xlw4(long __offset,const signed int * __ptr)1176 vec_xlw4(long __offset, const signed int *__ptr) {
1177   return *(const __vector signed int *)
1178           ((const char *)__ptr + __offset);
1179 }
1180 
1181 // This prototype is deprecated.
1182 static inline __ATTRS_o_ai __vector unsigned int
vec_xlw4(long __offset,const unsigned int * __ptr)1183 vec_xlw4(long __offset, const unsigned int *__ptr) {
1184   return *(const __vector unsigned int *)
1185           ((const char *)__ptr + __offset);
1186 }
1187 
1188 /*-- vec_xst ----------------------------------------------------------------*/
1189 
1190 static inline __ATTRS_o_ai void
vec_xst(__vector signed char __vec,long __offset,signed char * __ptr)1191 vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
1192   *(__vector signed char *)((char *)__ptr + __offset) = __vec;
1193 }
1194 
1195 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1196 vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1197   *(__vector unsigned char *)((char *)__ptr + __offset) = __vec;
1198 }
1199 
1200 static inline __ATTRS_o_ai void
vec_xst(__vector signed short __vec,long __offset,signed short * __ptr)1201 vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
1202   *(__vector signed short *)((char *)__ptr + __offset) = __vec;
1203 }
1204 
1205 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1206 vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1207   *(__vector unsigned short *)((char *)__ptr + __offset) = __vec;
1208 }
1209 
1210 static inline __ATTRS_o_ai void
vec_xst(__vector signed int __vec,long __offset,signed int * __ptr)1211 vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
1212   *(__vector signed int *)((char *)__ptr + __offset) = __vec;
1213 }
1214 
1215 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1216 vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1217   *(__vector unsigned int *)((char *)__ptr + __offset) = __vec;
1218 }
1219 
1220 static inline __ATTRS_o_ai void
vec_xst(__vector signed long long __vec,long __offset,signed long long * __ptr)1221 vec_xst(__vector signed long long __vec, long __offset,
1222           signed long long *__ptr) {
1223   *(__vector signed long long *)((char *)__ptr + __offset) = __vec;
1224 }
1225 
1226 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1227 vec_xst(__vector unsigned long long __vec, long __offset,
1228           unsigned long long *__ptr) {
1229   *(__vector unsigned long long *)((char *)__ptr + __offset) = __vec;
1230 }
1231 
1232 #if __ARCH__ >= 12
1233 static inline __ATTRS_o_ai void
vec_xst(__vector float __vec,long __offset,float * __ptr)1234 vec_xst(__vector float __vec, long __offset, float *__ptr) {
1235   *(__vector float *)((char *)__ptr + __offset) = __vec;
1236 }
1237 #endif
1238 
1239 static inline __ATTRS_o_ai void
vec_xst(__vector double __vec,long __offset,double * __ptr)1240 vec_xst(__vector double __vec, long __offset, double *__ptr) {
1241   *(__vector double *)((char *)__ptr + __offset) = __vec;
1242 }
1243 
1244 /*-- vec_xstd2 --------------------------------------------------------------*/
1245 
1246 // This prototype is deprecated.
1247 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed char __vec,long __offset,signed char * __ptr)1248 vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
1249   *(__vector signed char *)((char *)__ptr + __offset) = __vec;
1250 }
1251 
1252 // This prototype is deprecated.
1253 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1254 vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1255   *(__vector unsigned char *)((char *)__ptr + __offset) = __vec;
1256 }
1257 
1258 // This prototype is deprecated.
1259 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed short __vec,long __offset,signed short * __ptr)1260 vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
1261   *(__vector signed short *)((char *)__ptr + __offset) = __vec;
1262 }
1263 
1264 // This prototype is deprecated.
1265 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1266 vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1267   *(__vector unsigned short *)((char *)__ptr + __offset) = __vec;
1268 }
1269 
1270 // This prototype is deprecated.
1271 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed int __vec,long __offset,signed int * __ptr)1272 vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
1273   *(__vector signed int *)((char *)__ptr + __offset) = __vec;
1274 }
1275 
1276 // This prototype is deprecated.
1277 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1278 vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1279   *(__vector unsigned int *)((char *)__ptr + __offset) = __vec;
1280 }
1281 
1282 // This prototype is deprecated.
1283 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed long long __vec,long __offset,signed long long * __ptr)1284 vec_xstd2(__vector signed long long __vec, long __offset,
1285           signed long long *__ptr) {
1286   *(__vector signed long long *)((char *)__ptr + __offset) = __vec;
1287 }
1288 
1289 // This prototype is deprecated.
1290 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1291 vec_xstd2(__vector unsigned long long __vec, long __offset,
1292           unsigned long long *__ptr) {
1293   *(__vector unsigned long long *)((char *)__ptr + __offset) = __vec;
1294 }
1295 
1296 // This prototype is deprecated.
1297 static inline __ATTRS_o_ai void
vec_xstd2(__vector double __vec,long __offset,double * __ptr)1298 vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
1299   *(__vector double *)((char *)__ptr + __offset) = __vec;
1300 }
1301 
1302 /*-- vec_xstw4 --------------------------------------------------------------*/
1303 
1304 // This prototype is deprecated.
1305 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed char __vec,long __offset,signed char * __ptr)1306 vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
1307   *(__vector signed char *)((char *)__ptr + __offset) = __vec;
1308 }
1309 
1310 // This prototype is deprecated.
1311 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1312 vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1313   *(__vector unsigned char *)((char *)__ptr + __offset) = __vec;
1314 }
1315 
1316 // This prototype is deprecated.
1317 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed short __vec,long __offset,signed short * __ptr)1318 vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
1319   *(__vector signed short *)((char *)__ptr + __offset) = __vec;
1320 }
1321 
1322 // This prototype is deprecated.
1323 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1324 vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1325   *(__vector unsigned short *)((char *)__ptr + __offset) = __vec;
1326 }
1327 
1328 // This prototype is deprecated.
1329 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed int __vec,long __offset,signed int * __ptr)1330 vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
1331   *(__vector signed int *)((char *)__ptr + __offset) = __vec;
1332 }
1333 
1334 // This prototype is deprecated.
1335 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1336 vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1337   *(__vector unsigned int *)((char *)__ptr + __offset) = __vec;
1338 }
1339 
1340 /*-- vec_load_bndry ---------------------------------------------------------*/
1341 
1342 extern __ATTRS_o __vector signed char
1343 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1344   __constant_pow2_range(__len, 64, 4096);
1345 
1346 extern __ATTRS_o __vector unsigned char
1347 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1348   __constant_pow2_range(__len, 64, 4096);
1349 
1350 extern __ATTRS_o __vector signed short
1351 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1352   __constant_pow2_range(__len, 64, 4096);
1353 
1354 extern __ATTRS_o __vector unsigned short
1355 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1356   __constant_pow2_range(__len, 64, 4096);
1357 
1358 extern __ATTRS_o __vector signed int
1359 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1360   __constant_pow2_range(__len, 64, 4096);
1361 
1362 extern __ATTRS_o __vector unsigned int
1363 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1364   __constant_pow2_range(__len, 64, 4096);
1365 
1366 extern __ATTRS_o __vector signed long long
1367 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1368   __constant_pow2_range(__len, 64, 4096);
1369 
1370 extern __ATTRS_o __vector unsigned long long
1371 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1372   __constant_pow2_range(__len, 64, 4096);
1373 
1374 #if __ARCH__ >= 12
1375 extern __ATTRS_o __vector float
1376 vec_load_bndry(const float *__ptr, unsigned short __len)
1377   __constant_pow2_range(__len, 64, 4096);
1378 #endif
1379 
1380 extern __ATTRS_o __vector double
1381 vec_load_bndry(const double *__ptr, unsigned short __len)
1382   __constant_pow2_range(__len, 64, 4096);
1383 
1384 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1385   __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1386                             (Y) == 128 ? 1 : \
1387                             (Y) == 256 ? 2 : \
1388                             (Y) == 512 ? 3 : \
1389                             (Y) == 1024 ? 4 : \
1390                             (Y) == 2048 ? 5 : \
1391                             (Y) == 4096 ? 6 : -1)))
1392 
1393 /*-- vec_load_len -----------------------------------------------------------*/
1394 
1395 static inline __ATTRS_o_ai __vector signed char
vec_load_len(const signed char * __ptr,unsigned int __len)1396 vec_load_len(const signed char *__ptr, unsigned int __len) {
1397   return (__vector signed char)__builtin_s390_vll(__len, __ptr);
1398 }
1399 
1400 static inline __ATTRS_o_ai __vector unsigned char
vec_load_len(const unsigned char * __ptr,unsigned int __len)1401 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1402   return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
1403 }
1404 
1405 static inline __ATTRS_o_ai __vector signed short
vec_load_len(const signed short * __ptr,unsigned int __len)1406 vec_load_len(const signed short *__ptr, unsigned int __len) {
1407   return (__vector signed short)__builtin_s390_vll(__len, __ptr);
1408 }
1409 
1410 static inline __ATTRS_o_ai __vector unsigned short
vec_load_len(const unsigned short * __ptr,unsigned int __len)1411 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1412   return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
1413 }
1414 
1415 static inline __ATTRS_o_ai __vector signed int
vec_load_len(const signed int * __ptr,unsigned int __len)1416 vec_load_len(const signed int *__ptr, unsigned int __len) {
1417   return (__vector signed int)__builtin_s390_vll(__len, __ptr);
1418 }
1419 
1420 static inline __ATTRS_o_ai __vector unsigned int
vec_load_len(const unsigned int * __ptr,unsigned int __len)1421 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1422   return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
1423 }
1424 
1425 static inline __ATTRS_o_ai __vector signed long long
vec_load_len(const signed long long * __ptr,unsigned int __len)1426 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1427   return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
1428 }
1429 
1430 static inline __ATTRS_o_ai __vector unsigned long long
vec_load_len(const unsigned long long * __ptr,unsigned int __len)1431 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1432   return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1433 }
1434 
1435 #if __ARCH__ >= 12
1436 static inline __ATTRS_o_ai __vector float
vec_load_len(const float * __ptr,unsigned int __len)1437 vec_load_len(const float *__ptr, unsigned int __len) {
1438   return (__vector float)__builtin_s390_vll(__len, __ptr);
1439 }
1440 #endif
1441 
1442 static inline __ATTRS_o_ai __vector double
vec_load_len(const double * __ptr,unsigned int __len)1443 vec_load_len(const double *__ptr, unsigned int __len) {
1444   return (__vector double)__builtin_s390_vll(__len, __ptr);
1445 }
1446 
1447 /*-- vec_load_len_r ---------------------------------------------------------*/
1448 
1449 #if __ARCH__ >= 12
1450 static inline __ATTRS_ai __vector unsigned char
vec_load_len_r(const unsigned char * __ptr,unsigned int __len)1451 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1452   return (__vector unsigned char)__builtin_s390_vlrl(__len, __ptr);
1453 }
1454 #endif
1455 
1456 /*-- vec_store_len ----------------------------------------------------------*/
1457 
1458 static inline __ATTRS_o_ai void
vec_store_len(__vector signed char __vec,signed char * __ptr,unsigned int __len)1459 vec_store_len(__vector signed char __vec, signed char *__ptr,
1460               unsigned int __len) {
1461   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1462 }
1463 
1464 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1465 vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
1466               unsigned int __len) {
1467   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1468 }
1469 
1470 static inline __ATTRS_o_ai void
vec_store_len(__vector signed short __vec,signed short * __ptr,unsigned int __len)1471 vec_store_len(__vector signed short __vec, signed short *__ptr,
1472               unsigned int __len) {
1473   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1474 }
1475 
1476 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned short __vec,unsigned short * __ptr,unsigned int __len)1477 vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
1478               unsigned int __len) {
1479   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1480 }
1481 
1482 static inline __ATTRS_o_ai void
vec_store_len(__vector signed int __vec,signed int * __ptr,unsigned int __len)1483 vec_store_len(__vector signed int __vec, signed int *__ptr,
1484               unsigned int __len) {
1485   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1486 }
1487 
1488 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned int __vec,unsigned int * __ptr,unsigned int __len)1489 vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
1490               unsigned int __len) {
1491   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1492 }
1493 
1494 static inline __ATTRS_o_ai void
vec_store_len(__vector signed long long __vec,signed long long * __ptr,unsigned int __len)1495 vec_store_len(__vector signed long long __vec, signed long long *__ptr,
1496               unsigned int __len) {
1497   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1498 }
1499 
1500 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned long long __vec,unsigned long long * __ptr,unsigned int __len)1501 vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
1502               unsigned int __len) {
1503   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1504 }
1505 
1506 #if __ARCH__ >= 12
1507 static inline __ATTRS_o_ai void
vec_store_len(__vector float __vec,float * __ptr,unsigned int __len)1508 vec_store_len(__vector float __vec, float *__ptr,
1509               unsigned int __len) {
1510   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1511 }
1512 #endif
1513 
1514 static inline __ATTRS_o_ai void
vec_store_len(__vector double __vec,double * __ptr,unsigned int __len)1515 vec_store_len(__vector double __vec, double *__ptr,
1516               unsigned int __len) {
1517   __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1518 }
1519 
1520 /*-- vec_store_len_r --------------------------------------------------------*/
1521 
1522 #if __ARCH__ >= 12
1523 static inline __ATTRS_ai void
vec_store_len_r(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1524 vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
1525                 unsigned int __len) {
1526   __builtin_s390_vstrl((__vector signed char)__vec, __len, __ptr);
1527 }
1528 #endif
1529 
1530 /*-- vec_load_pair ----------------------------------------------------------*/
1531 
1532 static inline __ATTRS_o_ai __vector signed long long
vec_load_pair(signed long long __a,signed long long __b)1533 vec_load_pair(signed long long __a, signed long long __b) {
1534   return (__vector signed long long)(__a, __b);
1535 }
1536 
1537 static inline __ATTRS_o_ai __vector unsigned long long
vec_load_pair(unsigned long long __a,unsigned long long __b)1538 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1539   return (__vector unsigned long long)(__a, __b);
1540 }
1541 
1542 /*-- vec_genmask ------------------------------------------------------------*/
1543 
1544 static inline __ATTRS_o_ai __vector unsigned char
vec_genmask(unsigned short __mask)1545 vec_genmask(unsigned short __mask)
1546   __constant(__mask) {
1547   return (__vector unsigned char)(
1548     __mask & 0x8000 ? 0xff : 0,
1549     __mask & 0x4000 ? 0xff : 0,
1550     __mask & 0x2000 ? 0xff : 0,
1551     __mask & 0x1000 ? 0xff : 0,
1552     __mask & 0x0800 ? 0xff : 0,
1553     __mask & 0x0400 ? 0xff : 0,
1554     __mask & 0x0200 ? 0xff : 0,
1555     __mask & 0x0100 ? 0xff : 0,
1556     __mask & 0x0080 ? 0xff : 0,
1557     __mask & 0x0040 ? 0xff : 0,
1558     __mask & 0x0020 ? 0xff : 0,
1559     __mask & 0x0010 ? 0xff : 0,
1560     __mask & 0x0008 ? 0xff : 0,
1561     __mask & 0x0004 ? 0xff : 0,
1562     __mask & 0x0002 ? 0xff : 0,
1563     __mask & 0x0001 ? 0xff : 0);
1564 }
1565 
1566 /*-- vec_genmasks_* ---------------------------------------------------------*/
1567 
1568 static inline __ATTRS_o_ai __vector unsigned char
vec_genmasks_8(unsigned char __first,unsigned char __last)1569 vec_genmasks_8(unsigned char __first, unsigned char __last)
1570   __constant(__first) __constant(__last) {
1571   unsigned char __bit1 = __first & 7;
1572   unsigned char __bit2 = __last & 7;
1573   unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1574   unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1575   unsigned char __value = (__bit1 <= __bit2 ?
1576                            __mask1 & ~__mask2 :
1577                            __mask1 | ~__mask2);
1578   return (__vector unsigned char)__value;
1579 }
1580 
1581 static inline __ATTRS_o_ai __vector unsigned short
vec_genmasks_16(unsigned char __first,unsigned char __last)1582 vec_genmasks_16(unsigned char __first, unsigned char __last)
1583   __constant(__first) __constant(__last) {
1584   unsigned char __bit1 = __first & 15;
1585   unsigned char __bit2 = __last & 15;
1586   unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1587   unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1588   unsigned short __value = (__bit1 <= __bit2 ?
1589                             __mask1 & ~__mask2 :
1590                             __mask1 | ~__mask2);
1591   return (__vector unsigned short)__value;
1592 }
1593 
1594 static inline __ATTRS_o_ai __vector unsigned int
vec_genmasks_32(unsigned char __first,unsigned char __last)1595 vec_genmasks_32(unsigned char __first, unsigned char __last)
1596   __constant(__first) __constant(__last) {
1597   unsigned char __bit1 = __first & 31;
1598   unsigned char __bit2 = __last & 31;
1599   unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1600   unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1601   unsigned int __value = (__bit1 <= __bit2 ?
1602                           __mask1 & ~__mask2 :
1603                           __mask1 | ~__mask2);
1604   return (__vector unsigned int)__value;
1605 }
1606 
1607 static inline __ATTRS_o_ai __vector unsigned long long
vec_genmasks_64(unsigned char __first,unsigned char __last)1608 vec_genmasks_64(unsigned char __first, unsigned char __last)
1609   __constant(__first) __constant(__last) {
1610   unsigned char __bit1 = __first & 63;
1611   unsigned char __bit2 = __last & 63;
1612   unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1613   unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1614   unsigned long long __value = (__bit1 <= __bit2 ?
1615                                 __mask1 & ~__mask2 :
1616                                 __mask1 | ~__mask2);
1617   return (__vector unsigned long long)__value;
1618 }
1619 
1620 /*-- vec_splat --------------------------------------------------------------*/
1621 
1622 static inline __ATTRS_o_ai __vector signed char
vec_splat(__vector signed char __vec,int __index)1623 vec_splat(__vector signed char __vec, int __index)
1624   __constant_range(__index, 0, 15) {
1625   return (__vector signed char)__vec[__index];
1626 }
1627 
1628 static inline __ATTRS_o_ai __vector __bool char
vec_splat(__vector __bool char __vec,int __index)1629 vec_splat(__vector __bool char __vec, int __index)
1630   __constant_range(__index, 0, 15) {
1631   return (__vector __bool char)(__vector unsigned char)__vec[__index];
1632 }
1633 
1634 static inline __ATTRS_o_ai __vector unsigned char
vec_splat(__vector unsigned char __vec,int __index)1635 vec_splat(__vector unsigned char __vec, int __index)
1636   __constant_range(__index, 0, 15) {
1637   return (__vector unsigned char)__vec[__index];
1638 }
1639 
1640 static inline __ATTRS_o_ai __vector signed short
vec_splat(__vector signed short __vec,int __index)1641 vec_splat(__vector signed short __vec, int __index)
1642   __constant_range(__index, 0, 7) {
1643   return (__vector signed short)__vec[__index];
1644 }
1645 
1646 static inline __ATTRS_o_ai __vector __bool short
vec_splat(__vector __bool short __vec,int __index)1647 vec_splat(__vector __bool short __vec, int __index)
1648   __constant_range(__index, 0, 7) {
1649   return (__vector __bool short)(__vector unsigned short)__vec[__index];
1650 }
1651 
1652 static inline __ATTRS_o_ai __vector unsigned short
vec_splat(__vector unsigned short __vec,int __index)1653 vec_splat(__vector unsigned short __vec, int __index)
1654   __constant_range(__index, 0, 7) {
1655   return (__vector unsigned short)__vec[__index];
1656 }
1657 
1658 static inline __ATTRS_o_ai __vector signed int
vec_splat(__vector signed int __vec,int __index)1659 vec_splat(__vector signed int __vec, int __index)
1660   __constant_range(__index, 0, 3) {
1661   return (__vector signed int)__vec[__index];
1662 }
1663 
1664 static inline __ATTRS_o_ai __vector __bool int
vec_splat(__vector __bool int __vec,int __index)1665 vec_splat(__vector __bool int __vec, int __index)
1666   __constant_range(__index, 0, 3) {
1667   return (__vector __bool int)(__vector unsigned int)__vec[__index];
1668 }
1669 
1670 static inline __ATTRS_o_ai __vector unsigned int
vec_splat(__vector unsigned int __vec,int __index)1671 vec_splat(__vector unsigned int __vec, int __index)
1672   __constant_range(__index, 0, 3) {
1673   return (__vector unsigned int)__vec[__index];
1674 }
1675 
1676 static inline __ATTRS_o_ai __vector signed long long
vec_splat(__vector signed long long __vec,int __index)1677 vec_splat(__vector signed long long __vec, int __index)
1678   __constant_range(__index, 0, 1) {
1679   return (__vector signed long long)__vec[__index];
1680 }
1681 
1682 static inline __ATTRS_o_ai __vector __bool long long
vec_splat(__vector __bool long long __vec,int __index)1683 vec_splat(__vector __bool long long __vec, int __index)
1684   __constant_range(__index, 0, 1) {
1685   return ((__vector __bool long long)
1686           (__vector unsigned long long)__vec[__index]);
1687 }
1688 
1689 static inline __ATTRS_o_ai __vector unsigned long long
vec_splat(__vector unsigned long long __vec,int __index)1690 vec_splat(__vector unsigned long long __vec, int __index)
1691   __constant_range(__index, 0, 1) {
1692   return (__vector unsigned long long)__vec[__index];
1693 }
1694 
1695 #if __ARCH__ >= 12
1696 static inline __ATTRS_o_ai __vector float
vec_splat(__vector float __vec,int __index)1697 vec_splat(__vector float __vec, int __index)
1698   __constant_range(__index, 0, 3) {
1699   return (__vector float)__vec[__index];
1700 }
1701 #endif
1702 
1703 static inline __ATTRS_o_ai __vector double
vec_splat(__vector double __vec,int __index)1704 vec_splat(__vector double __vec, int __index)
1705   __constant_range(__index, 0, 1) {
1706   return (__vector double)__vec[__index];
1707 }
1708 
1709 /*-- vec_splat_s* -----------------------------------------------------------*/
1710 
1711 static inline __ATTRS_ai __vector signed char
vec_splat_s8(signed char __scalar)1712 vec_splat_s8(signed char __scalar)
1713   __constant(__scalar) {
1714   return (__vector signed char)__scalar;
1715 }
1716 
1717 static inline __ATTRS_ai __vector signed short
vec_splat_s16(signed short __scalar)1718 vec_splat_s16(signed short __scalar)
1719   __constant(__scalar) {
1720   return (__vector signed short)__scalar;
1721 }
1722 
1723 static inline __ATTRS_ai __vector signed int
vec_splat_s32(signed short __scalar)1724 vec_splat_s32(signed short __scalar)
1725   __constant(__scalar) {
1726   return (__vector signed int)(signed int)__scalar;
1727 }
1728 
1729 static inline __ATTRS_ai __vector signed long long
vec_splat_s64(signed short __scalar)1730 vec_splat_s64(signed short __scalar)
1731   __constant(__scalar) {
1732   return (__vector signed long long)(signed long)__scalar;
1733 }
1734 
1735 /*-- vec_splat_u* -----------------------------------------------------------*/
1736 
1737 static inline __ATTRS_ai __vector unsigned char
vec_splat_u8(unsigned char __scalar)1738 vec_splat_u8(unsigned char __scalar)
1739   __constant(__scalar) {
1740   return (__vector unsigned char)__scalar;
1741 }
1742 
1743 static inline __ATTRS_ai __vector unsigned short
vec_splat_u16(unsigned short __scalar)1744 vec_splat_u16(unsigned short __scalar)
1745   __constant(__scalar) {
1746   return (__vector unsigned short)__scalar;
1747 }
1748 
1749 static inline __ATTRS_ai __vector unsigned int
vec_splat_u32(signed short __scalar)1750 vec_splat_u32(signed short __scalar)
1751   __constant(__scalar) {
1752   return (__vector unsigned int)(signed int)__scalar;
1753 }
1754 
1755 static inline __ATTRS_ai __vector unsigned long long
vec_splat_u64(signed short __scalar)1756 vec_splat_u64(signed short __scalar)
1757   __constant(__scalar) {
1758   return (__vector unsigned long long)(signed long long)__scalar;
1759 }
1760 
1761 /*-- vec_splats -------------------------------------------------------------*/
1762 
1763 static inline __ATTRS_o_ai __vector signed char
vec_splats(signed char __scalar)1764 vec_splats(signed char __scalar) {
1765   return (__vector signed char)__scalar;
1766 }
1767 
1768 static inline __ATTRS_o_ai __vector unsigned char
vec_splats(unsigned char __scalar)1769 vec_splats(unsigned char __scalar) {
1770   return (__vector unsigned char)__scalar;
1771 }
1772 
1773 static inline __ATTRS_o_ai __vector signed short
vec_splats(signed short __scalar)1774 vec_splats(signed short __scalar) {
1775   return (__vector signed short)__scalar;
1776 }
1777 
1778 static inline __ATTRS_o_ai __vector unsigned short
vec_splats(unsigned short __scalar)1779 vec_splats(unsigned short __scalar) {
1780   return (__vector unsigned short)__scalar;
1781 }
1782 
1783 static inline __ATTRS_o_ai __vector signed int
vec_splats(signed int __scalar)1784 vec_splats(signed int __scalar) {
1785   return (__vector signed int)__scalar;
1786 }
1787 
1788 static inline __ATTRS_o_ai __vector unsigned int
vec_splats(unsigned int __scalar)1789 vec_splats(unsigned int __scalar) {
1790   return (__vector unsigned int)__scalar;
1791 }
1792 
1793 static inline __ATTRS_o_ai __vector signed long long
vec_splats(signed long long __scalar)1794 vec_splats(signed long long __scalar) {
1795   return (__vector signed long long)__scalar;
1796 }
1797 
1798 static inline __ATTRS_o_ai __vector unsigned long long
vec_splats(unsigned long long __scalar)1799 vec_splats(unsigned long long __scalar) {
1800   return (__vector unsigned long long)__scalar;
1801 }
1802 
1803 #if __ARCH__ >= 12
1804 static inline __ATTRS_o_ai __vector float
vec_splats(float __scalar)1805 vec_splats(float __scalar) {
1806   return (__vector float)__scalar;
1807 }
1808 #endif
1809 
1810 static inline __ATTRS_o_ai __vector double
vec_splats(double __scalar)1811 vec_splats(double __scalar) {
1812   return (__vector double)__scalar;
1813 }
1814 
1815 /*-- vec_extend_s64 ---------------------------------------------------------*/
1816 
1817 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed char __a)1818 vec_extend_s64(__vector signed char __a) {
1819   return (__vector signed long long)(__a[7], __a[15]);
1820 }
1821 
1822 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed short __a)1823 vec_extend_s64(__vector signed short __a) {
1824   return (__vector signed long long)(__a[3], __a[7]);
1825 }
1826 
1827 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed int __a)1828 vec_extend_s64(__vector signed int __a) {
1829   return (__vector signed long long)(__a[1], __a[3]);
1830 }
1831 
1832 /*-- vec_mergeh -------------------------------------------------------------*/
1833 
1834 static inline __ATTRS_o_ai __vector signed char
vec_mergeh(__vector signed char __a,__vector signed char __b)1835 vec_mergeh(__vector signed char __a, __vector signed char __b) {
1836   return (__vector signed char)(
1837     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1838     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1839 }
1840 
1841 static inline __ATTRS_o_ai __vector __bool char
vec_mergeh(__vector __bool char __a,__vector __bool char __b)1842 vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
1843   return (__vector __bool char)(
1844     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1845     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1846 }
1847 
1848 static inline __ATTRS_o_ai __vector unsigned char
vec_mergeh(__vector unsigned char __a,__vector unsigned char __b)1849 vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
1850   return (__vector unsigned char)(
1851     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1852     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1853 }
1854 
1855 static inline __ATTRS_o_ai __vector signed short
vec_mergeh(__vector signed short __a,__vector signed short __b)1856 vec_mergeh(__vector signed short __a, __vector signed short __b) {
1857   return (__vector signed short)(
1858     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1859 }
1860 
1861 static inline __ATTRS_o_ai __vector __bool short
vec_mergeh(__vector __bool short __a,__vector __bool short __b)1862 vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
1863   return (__vector __bool short)(
1864     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1865 }
1866 
1867 static inline __ATTRS_o_ai __vector unsigned short
vec_mergeh(__vector unsigned short __a,__vector unsigned short __b)1868 vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
1869   return (__vector unsigned short)(
1870     __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1871 }
1872 
1873 static inline __ATTRS_o_ai __vector signed int
vec_mergeh(__vector signed int __a,__vector signed int __b)1874 vec_mergeh(__vector signed int __a, __vector signed int __b) {
1875   return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1876 }
1877 
1878 static inline __ATTRS_o_ai __vector __bool int
vec_mergeh(__vector __bool int __a,__vector __bool int __b)1879 vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
1880   return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
1881 }
1882 
1883 static inline __ATTRS_o_ai __vector unsigned int
vec_mergeh(__vector unsigned int __a,__vector unsigned int __b)1884 vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
1885   return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1886 }
1887 
1888 static inline __ATTRS_o_ai __vector signed long long
vec_mergeh(__vector signed long long __a,__vector signed long long __b)1889 vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
1890   return (__vector signed long long)(__a[0], __b[0]);
1891 }
1892 
1893 static inline __ATTRS_o_ai __vector __bool long long
vec_mergeh(__vector __bool long long __a,__vector __bool long long __b)1894 vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
1895   return (__vector __bool long long)(__a[0], __b[0]);
1896 }
1897 
1898 static inline __ATTRS_o_ai __vector unsigned long long
vec_mergeh(__vector unsigned long long __a,__vector unsigned long long __b)1899 vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
1900   return (__vector unsigned long long)(__a[0], __b[0]);
1901 }
1902 
1903 #if __ARCH__ >= 12
1904 static inline __ATTRS_o_ai __vector float
vec_mergeh(__vector float __a,__vector float __b)1905 vec_mergeh(__vector float __a, __vector float __b) {
1906   return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
1907 }
1908 #endif
1909 
1910 static inline __ATTRS_o_ai __vector double
vec_mergeh(__vector double __a,__vector double __b)1911 vec_mergeh(__vector double __a, __vector double __b) {
1912   return (__vector double)(__a[0], __b[0]);
1913 }
1914 
1915 /*-- vec_mergel -------------------------------------------------------------*/
1916 
1917 static inline __ATTRS_o_ai __vector signed char
vec_mergel(__vector signed char __a,__vector signed char __b)1918 vec_mergel(__vector signed char __a, __vector signed char __b) {
1919   return (__vector signed char)(
1920     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1921     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1922 }
1923 
1924 static inline __ATTRS_o_ai __vector __bool char
vec_mergel(__vector __bool char __a,__vector __bool char __b)1925 vec_mergel(__vector __bool char __a, __vector __bool char __b) {
1926   return (__vector __bool char)(
1927     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1928     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1929 }
1930 
1931 static inline __ATTRS_o_ai __vector unsigned char
vec_mergel(__vector unsigned char __a,__vector unsigned char __b)1932 vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
1933   return (__vector unsigned char)(
1934     __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1935     __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1936 }
1937 
1938 static inline __ATTRS_o_ai __vector signed short
vec_mergel(__vector signed short __a,__vector signed short __b)1939 vec_mergel(__vector signed short __a, __vector signed short __b) {
1940   return (__vector signed short)(
1941     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1942 }
1943 
1944 static inline __ATTRS_o_ai __vector __bool short
vec_mergel(__vector __bool short __a,__vector __bool short __b)1945 vec_mergel(__vector __bool short __a, __vector __bool short __b) {
1946   return (__vector __bool short)(
1947     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1948 }
1949 
1950 static inline __ATTRS_o_ai __vector unsigned short
vec_mergel(__vector unsigned short __a,__vector unsigned short __b)1951 vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
1952   return (__vector unsigned short)(
1953     __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1954 }
1955 
1956 static inline __ATTRS_o_ai __vector signed int
vec_mergel(__vector signed int __a,__vector signed int __b)1957 vec_mergel(__vector signed int __a, __vector signed int __b) {
1958   return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1959 }
1960 
1961 static inline __ATTRS_o_ai __vector __bool int
vec_mergel(__vector __bool int __a,__vector __bool int __b)1962 vec_mergel(__vector __bool int __a, __vector __bool int __b) {
1963   return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
1964 }
1965 
1966 static inline __ATTRS_o_ai __vector unsigned int
vec_mergel(__vector unsigned int __a,__vector unsigned int __b)1967 vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
1968   return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1969 }
1970 
1971 static inline __ATTRS_o_ai __vector signed long long
vec_mergel(__vector signed long long __a,__vector signed long long __b)1972 vec_mergel(__vector signed long long __a, __vector signed long long __b) {
1973   return (__vector signed long long)(__a[1], __b[1]);
1974 }
1975 
1976 static inline __ATTRS_o_ai __vector __bool long long
vec_mergel(__vector __bool long long __a,__vector __bool long long __b)1977 vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
1978   return (__vector __bool long long)(__a[1], __b[1]);
1979 }
1980 
1981 static inline __ATTRS_o_ai __vector unsigned long long
vec_mergel(__vector unsigned long long __a,__vector unsigned long long __b)1982 vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
1983   return (__vector unsigned long long)(__a[1], __b[1]);
1984 }
1985 
1986 #if __ARCH__ >= 12
1987 static inline __ATTRS_o_ai __vector float
vec_mergel(__vector float __a,__vector float __b)1988 vec_mergel(__vector float __a, __vector float __b) {
1989   return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
1990 }
1991 #endif
1992 
1993 static inline __ATTRS_o_ai __vector double
vec_mergel(__vector double __a,__vector double __b)1994 vec_mergel(__vector double __a, __vector double __b) {
1995   return (__vector double)(__a[1], __b[1]);
1996 }
1997 
1998 /*-- vec_pack ---------------------------------------------------------------*/
1999 
2000 static inline __ATTRS_o_ai __vector signed char
vec_pack(__vector signed short __a,__vector signed short __b)2001 vec_pack(__vector signed short __a, __vector signed short __b) {
2002   __vector signed char __ac = (__vector signed char)__a;
2003   __vector signed char __bc = (__vector signed char)__b;
2004   return (__vector signed char)(
2005     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2006     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2007 }
2008 
2009 static inline __ATTRS_o_ai __vector __bool char
vec_pack(__vector __bool short __a,__vector __bool short __b)2010 vec_pack(__vector __bool short __a, __vector __bool short __b) {
2011   __vector __bool char __ac = (__vector __bool char)__a;
2012   __vector __bool char __bc = (__vector __bool char)__b;
2013   return (__vector __bool char)(
2014     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2015     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2016 }
2017 
2018 static inline __ATTRS_o_ai __vector unsigned char
vec_pack(__vector unsigned short __a,__vector unsigned short __b)2019 vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
2020   __vector unsigned char __ac = (__vector unsigned char)__a;
2021   __vector unsigned char __bc = (__vector unsigned char)__b;
2022   return (__vector unsigned char)(
2023     __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2024     __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2025 }
2026 
2027 static inline __ATTRS_o_ai __vector signed short
vec_pack(__vector signed int __a,__vector signed int __b)2028 vec_pack(__vector signed int __a, __vector signed int __b) {
2029   __vector signed short __ac = (__vector signed short)__a;
2030   __vector signed short __bc = (__vector signed short)__b;
2031   return (__vector signed short)(
2032     __ac[1], __ac[3], __ac[5], __ac[7],
2033     __bc[1], __bc[3], __bc[5], __bc[7]);
2034 }
2035 
2036 static inline __ATTRS_o_ai __vector __bool short
vec_pack(__vector __bool int __a,__vector __bool int __b)2037 vec_pack(__vector __bool int __a, __vector __bool int __b) {
2038   __vector __bool short __ac = (__vector __bool short)__a;
2039   __vector __bool short __bc = (__vector __bool short)__b;
2040   return (__vector __bool short)(
2041     __ac[1], __ac[3], __ac[5], __ac[7],
2042     __bc[1], __bc[3], __bc[5], __bc[7]);
2043 }
2044 
2045 static inline __ATTRS_o_ai __vector unsigned short
vec_pack(__vector unsigned int __a,__vector unsigned int __b)2046 vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
2047   __vector unsigned short __ac = (__vector unsigned short)__a;
2048   __vector unsigned short __bc = (__vector unsigned short)__b;
2049   return (__vector unsigned short)(
2050     __ac[1], __ac[3], __ac[5], __ac[7],
2051     __bc[1], __bc[3], __bc[5], __bc[7]);
2052 }
2053 
2054 static inline __ATTRS_o_ai __vector signed int
vec_pack(__vector signed long long __a,__vector signed long long __b)2055 vec_pack(__vector signed long long __a, __vector signed long long __b) {
2056   __vector signed int __ac = (__vector signed int)__a;
2057   __vector signed int __bc = (__vector signed int)__b;
2058   return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2059 }
2060 
2061 static inline __ATTRS_o_ai __vector __bool int
vec_pack(__vector __bool long long __a,__vector __bool long long __b)2062 vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
2063   __vector __bool int __ac = (__vector __bool int)__a;
2064   __vector __bool int __bc = (__vector __bool int)__b;
2065   return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2066 }
2067 
2068 static inline __ATTRS_o_ai __vector unsigned int
vec_pack(__vector unsigned long long __a,__vector unsigned long long __b)2069 vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
2070   __vector unsigned int __ac = (__vector unsigned int)__a;
2071   __vector unsigned int __bc = (__vector unsigned int)__b;
2072   return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2073 }
2074 
2075 /*-- vec_packs --------------------------------------------------------------*/
2076 
2077 static inline __ATTRS_o_ai __vector signed char
vec_packs(__vector signed short __a,__vector signed short __b)2078 vec_packs(__vector signed short __a, __vector signed short __b) {
2079   return __builtin_s390_vpksh(__a, __b);
2080 }
2081 
2082 static inline __ATTRS_o_ai __vector unsigned char
vec_packs(__vector unsigned short __a,__vector unsigned short __b)2083 vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
2084   return __builtin_s390_vpklsh(__a, __b);
2085 }
2086 
2087 static inline __ATTRS_o_ai __vector signed short
vec_packs(__vector signed int __a,__vector signed int __b)2088 vec_packs(__vector signed int __a, __vector signed int __b) {
2089   return __builtin_s390_vpksf(__a, __b);
2090 }
2091 
2092 static inline __ATTRS_o_ai __vector unsigned short
vec_packs(__vector unsigned int __a,__vector unsigned int __b)2093 vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
2094   return __builtin_s390_vpklsf(__a, __b);
2095 }
2096 
2097 static inline __ATTRS_o_ai __vector signed int
vec_packs(__vector signed long long __a,__vector signed long long __b)2098 vec_packs(__vector signed long long __a, __vector signed long long __b) {
2099   return __builtin_s390_vpksg(__a, __b);
2100 }
2101 
2102 static inline __ATTRS_o_ai __vector unsigned int
vec_packs(__vector unsigned long long __a,__vector unsigned long long __b)2103 vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
2104   return __builtin_s390_vpklsg(__a, __b);
2105 }
2106 
2107 /*-- vec_packs_cc -----------------------------------------------------------*/
2108 
2109 static inline __ATTRS_o_ai __vector signed char
vec_packs_cc(__vector signed short __a,__vector signed short __b,int * __cc)2110 vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
2111   return __builtin_s390_vpkshs(__a, __b, __cc);
2112 }
2113 
2114 static inline __ATTRS_o_ai __vector unsigned char
vec_packs_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2115 vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
2116              int *__cc) {
2117   return __builtin_s390_vpklshs(__a, __b, __cc);
2118 }
2119 
2120 static inline __ATTRS_o_ai __vector signed short
vec_packs_cc(__vector signed int __a,__vector signed int __b,int * __cc)2121 vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
2122   return __builtin_s390_vpksfs(__a, __b, __cc);
2123 }
2124 
2125 static inline __ATTRS_o_ai __vector unsigned short
vec_packs_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2126 vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2127   return __builtin_s390_vpklsfs(__a, __b, __cc);
2128 }
2129 
2130 static inline __ATTRS_o_ai __vector signed int
vec_packs_cc(__vector signed long long __a,__vector signed long long __b,int * __cc)2131 vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
2132              int *__cc) {
2133   return __builtin_s390_vpksgs(__a, __b, __cc);
2134 }
2135 
2136 static inline __ATTRS_o_ai __vector unsigned int
vec_packs_cc(__vector unsigned long long __a,__vector unsigned long long __b,int * __cc)2137 vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2138              int *__cc) {
2139   return __builtin_s390_vpklsgs(__a, __b, __cc);
2140 }
2141 
2142 /*-- vec_packsu -------------------------------------------------------------*/
2143 
2144 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector signed short __a,__vector signed short __b)2145 vec_packsu(__vector signed short __a, __vector signed short __b) {
2146   const __vector signed short __zero = (__vector signed short)0;
2147   return __builtin_s390_vpklsh(
2148     (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
2149     (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
2150 }
2151 
2152 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector unsigned short __a,__vector unsigned short __b)2153 vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
2154   return __builtin_s390_vpklsh(__a, __b);
2155 }
2156 
2157 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector signed int __a,__vector signed int __b)2158 vec_packsu(__vector signed int __a, __vector signed int __b) {
2159   const __vector signed int __zero = (__vector signed int)0;
2160   return __builtin_s390_vpklsf(
2161     (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
2162     (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
2163 }
2164 
2165 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector unsigned int __a,__vector unsigned int __b)2166 vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
2167   return __builtin_s390_vpklsf(__a, __b);
2168 }
2169 
2170 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector signed long long __a,__vector signed long long __b)2171 vec_packsu(__vector signed long long __a, __vector signed long long __b) {
2172   const __vector signed long long __zero = (__vector signed long long)0;
2173   return __builtin_s390_vpklsg(
2174     (__vector unsigned long long)(__a >= __zero) &
2175     (__vector unsigned long long)__a,
2176     (__vector unsigned long long)(__b >= __zero) &
2177     (__vector unsigned long long)__b);
2178 }
2179 
2180 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector unsigned long long __a,__vector unsigned long long __b)2181 vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
2182   return __builtin_s390_vpklsg(__a, __b);
2183 }
2184 
2185 /*-- vec_packsu_cc ----------------------------------------------------------*/
2186 
2187 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2188 vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
2189               int *__cc) {
2190   return __builtin_s390_vpklshs(__a, __b, __cc);
2191 }
2192 
2193 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2194 vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2195   return __builtin_s390_vpklsfs(__a, __b, __cc);
2196 }
2197 
2198 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu_cc(__vector unsigned long long __a,__vector unsigned long long __b,int * __cc)2199 vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2200               int *__cc) {
2201   return __builtin_s390_vpklsgs(__a, __b, __cc);
2202 }
2203 
2204 /*-- vec_unpackh ------------------------------------------------------------*/
2205 
2206 static inline __ATTRS_o_ai __vector signed short
vec_unpackh(__vector signed char __a)2207 vec_unpackh(__vector signed char __a) {
2208   return __builtin_s390_vuphb(__a);
2209 }
2210 
2211 static inline __ATTRS_o_ai __vector __bool short
vec_unpackh(__vector __bool char __a)2212 vec_unpackh(__vector __bool char __a) {
2213   return ((__vector __bool short)
2214           __builtin_s390_vuphb((__vector signed char)__a));
2215 }
2216 
2217 static inline __ATTRS_o_ai __vector unsigned short
vec_unpackh(__vector unsigned char __a)2218 vec_unpackh(__vector unsigned char __a) {
2219   return __builtin_s390_vuplhb(__a);
2220 }
2221 
2222 static inline __ATTRS_o_ai __vector signed int
vec_unpackh(__vector signed short __a)2223 vec_unpackh(__vector signed short __a) {
2224   return __builtin_s390_vuphh(__a);
2225 }
2226 
2227 static inline __ATTRS_o_ai __vector __bool int
vec_unpackh(__vector __bool short __a)2228 vec_unpackh(__vector __bool short __a) {
2229   return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
2230 }
2231 
2232 static inline __ATTRS_o_ai __vector unsigned int
vec_unpackh(__vector unsigned short __a)2233 vec_unpackh(__vector unsigned short __a) {
2234   return __builtin_s390_vuplhh(__a);
2235 }
2236 
2237 static inline __ATTRS_o_ai __vector signed long long
vec_unpackh(__vector signed int __a)2238 vec_unpackh(__vector signed int __a) {
2239   return __builtin_s390_vuphf(__a);
2240 }
2241 
2242 static inline __ATTRS_o_ai __vector __bool long long
vec_unpackh(__vector __bool int __a)2243 vec_unpackh(__vector __bool int __a) {
2244   return ((__vector __bool long long)
2245           __builtin_s390_vuphf((__vector signed int)__a));
2246 }
2247 
2248 static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackh(__vector unsigned int __a)2249 vec_unpackh(__vector unsigned int __a) {
2250   return __builtin_s390_vuplhf(__a);
2251 }
2252 
2253 /*-- vec_unpackl ------------------------------------------------------------*/
2254 
2255 static inline __ATTRS_o_ai __vector signed short
vec_unpackl(__vector signed char __a)2256 vec_unpackl(__vector signed char __a) {
2257   return __builtin_s390_vuplb(__a);
2258 }
2259 
2260 static inline __ATTRS_o_ai __vector __bool short
vec_unpackl(__vector __bool char __a)2261 vec_unpackl(__vector __bool char __a) {
2262   return ((__vector __bool short)
2263           __builtin_s390_vuplb((__vector signed char)__a));
2264 }
2265 
2266 static inline __ATTRS_o_ai __vector unsigned short
vec_unpackl(__vector unsigned char __a)2267 vec_unpackl(__vector unsigned char __a) {
2268   return __builtin_s390_vupllb(__a);
2269 }
2270 
2271 static inline __ATTRS_o_ai __vector signed int
vec_unpackl(__vector signed short __a)2272 vec_unpackl(__vector signed short __a) {
2273   return __builtin_s390_vuplhw(__a);
2274 }
2275 
2276 static inline __ATTRS_o_ai __vector __bool int
vec_unpackl(__vector __bool short __a)2277 vec_unpackl(__vector __bool short __a) {
2278   return ((__vector __bool int)
2279           __builtin_s390_vuplhw((__vector signed short)__a));
2280 }
2281 
2282 static inline __ATTRS_o_ai __vector unsigned int
vec_unpackl(__vector unsigned short __a)2283 vec_unpackl(__vector unsigned short __a) {
2284   return __builtin_s390_vupllh(__a);
2285 }
2286 
2287 static inline __ATTRS_o_ai __vector signed long long
vec_unpackl(__vector signed int __a)2288 vec_unpackl(__vector signed int __a) {
2289   return __builtin_s390_vuplf(__a);
2290 }
2291 
2292 static inline __ATTRS_o_ai __vector __bool long long
vec_unpackl(__vector __bool int __a)2293 vec_unpackl(__vector __bool int __a) {
2294   return ((__vector __bool long long)
2295           __builtin_s390_vuplf((__vector signed int)__a));
2296 }
2297 
2298 static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackl(__vector unsigned int __a)2299 vec_unpackl(__vector unsigned int __a) {
2300   return __builtin_s390_vupllf(__a);
2301 }
2302 
2303 /*-- vec_cmpeq --------------------------------------------------------------*/
2304 
2305 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector __bool char __a,__vector __bool char __b)2306 vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
2307   return (__vector __bool char)(__a == __b);
2308 }
2309 
2310 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector signed char __a,__vector signed char __b)2311 vec_cmpeq(__vector signed char __a, __vector signed char __b) {
2312   return (__vector __bool char)(__a == __b);
2313 }
2314 
2315 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector unsigned char __a,__vector unsigned char __b)2316 vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
2317   return (__vector __bool char)(__a == __b);
2318 }
2319 
2320 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector __bool short __a,__vector __bool short __b)2321 vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
2322   return (__vector __bool short)(__a == __b);
2323 }
2324 
2325 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector signed short __a,__vector signed short __b)2326 vec_cmpeq(__vector signed short __a, __vector signed short __b) {
2327   return (__vector __bool short)(__a == __b);
2328 }
2329 
2330 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector unsigned short __a,__vector unsigned short __b)2331 vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
2332   return (__vector __bool short)(__a == __b);
2333 }
2334 
2335 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector __bool int __a,__vector __bool int __b)2336 vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
2337   return (__vector __bool int)(__a == __b);
2338 }
2339 
2340 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector signed int __a,__vector signed int __b)2341 vec_cmpeq(__vector signed int __a, __vector signed int __b) {
2342   return (__vector __bool int)(__a == __b);
2343 }
2344 
2345 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector unsigned int __a,__vector unsigned int __b)2346 vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
2347   return (__vector __bool int)(__a == __b);
2348 }
2349 
2350 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector __bool long long __a,__vector __bool long long __b)2351 vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
2352   return (__vector __bool long long)(__a == __b);
2353 }
2354 
2355 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector signed long long __a,__vector signed long long __b)2356 vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
2357   return (__vector __bool long long)(__a == __b);
2358 }
2359 
2360 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector unsigned long long __a,__vector unsigned long long __b)2361 vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
2362   return (__vector __bool long long)(__a == __b);
2363 }
2364 
2365 #if __ARCH__ >= 12
2366 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector float __a,__vector float __b)2367 vec_cmpeq(__vector float __a, __vector float __b) {
2368   return (__vector __bool int)(__a == __b);
2369 }
2370 #endif
2371 
2372 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector double __a,__vector double __b)2373 vec_cmpeq(__vector double __a, __vector double __b) {
2374   return (__vector __bool long long)(__a == __b);
2375 }
2376 
2377 /*-- vec_cmpge --------------------------------------------------------------*/
2378 
2379 static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector signed char __a,__vector signed char __b)2380 vec_cmpge(__vector signed char __a, __vector signed char __b) {
2381   return (__vector __bool char)(__a >= __b);
2382 }
2383 
2384 static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector unsigned char __a,__vector unsigned char __b)2385 vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
2386   return (__vector __bool char)(__a >= __b);
2387 }
2388 
2389 static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector signed short __a,__vector signed short __b)2390 vec_cmpge(__vector signed short __a, __vector signed short __b) {
2391   return (__vector __bool short)(__a >= __b);
2392 }
2393 
2394 static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector unsigned short __a,__vector unsigned short __b)2395 vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
2396   return (__vector __bool short)(__a >= __b);
2397 }
2398 
2399 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector signed int __a,__vector signed int __b)2400 vec_cmpge(__vector signed int __a, __vector signed int __b) {
2401   return (__vector __bool int)(__a >= __b);
2402 }
2403 
2404 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector unsigned int __a,__vector unsigned int __b)2405 vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
2406   return (__vector __bool int)(__a >= __b);
2407 }
2408 
2409 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector signed long long __a,__vector signed long long __b)2410 vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
2411   return (__vector __bool long long)(__a >= __b);
2412 }
2413 
2414 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector unsigned long long __a,__vector unsigned long long __b)2415 vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
2416   return (__vector __bool long long)(__a >= __b);
2417 }
2418 
2419 #if __ARCH__ >= 12
2420 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector float __a,__vector float __b)2421 vec_cmpge(__vector float __a, __vector float __b) {
2422   return (__vector __bool int)(__a >= __b);
2423 }
2424 #endif
2425 
2426 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector double __a,__vector double __b)2427 vec_cmpge(__vector double __a, __vector double __b) {
2428   return (__vector __bool long long)(__a >= __b);
2429 }
2430 
2431 /*-- vec_cmpgt --------------------------------------------------------------*/
2432 
2433 static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector signed char __a,__vector signed char __b)2434 vec_cmpgt(__vector signed char __a, __vector signed char __b) {
2435   return (__vector __bool char)(__a > __b);
2436 }
2437 
2438 static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector unsigned char __a,__vector unsigned char __b)2439 vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
2440   return (__vector __bool char)(__a > __b);
2441 }
2442 
2443 static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector signed short __a,__vector signed short __b)2444 vec_cmpgt(__vector signed short __a, __vector signed short __b) {
2445   return (__vector __bool short)(__a > __b);
2446 }
2447 
2448 static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector unsigned short __a,__vector unsigned short __b)2449 vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
2450   return (__vector __bool short)(__a > __b);
2451 }
2452 
2453 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector signed int __a,__vector signed int __b)2454 vec_cmpgt(__vector signed int __a, __vector signed int __b) {
2455   return (__vector __bool int)(__a > __b);
2456 }
2457 
2458 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector unsigned int __a,__vector unsigned int __b)2459 vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
2460   return (__vector __bool int)(__a > __b);
2461 }
2462 
2463 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector signed long long __a,__vector signed long long __b)2464 vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
2465   return (__vector __bool long long)(__a > __b);
2466 }
2467 
2468 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector unsigned long long __a,__vector unsigned long long __b)2469 vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
2470   return (__vector __bool long long)(__a > __b);
2471 }
2472 
2473 #if __ARCH__ >= 12
2474 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector float __a,__vector float __b)2475 vec_cmpgt(__vector float __a, __vector float __b) {
2476   return (__vector __bool int)(__a > __b);
2477 }
2478 #endif
2479 
2480 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector double __a,__vector double __b)2481 vec_cmpgt(__vector double __a, __vector double __b) {
2482   return (__vector __bool long long)(__a > __b);
2483 }
2484 
2485 /*-- vec_cmple --------------------------------------------------------------*/
2486 
2487 static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector signed char __a,__vector signed char __b)2488 vec_cmple(__vector signed char __a, __vector signed char __b) {
2489   return (__vector __bool char)(__a <= __b);
2490 }
2491 
2492 static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector unsigned char __a,__vector unsigned char __b)2493 vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
2494   return (__vector __bool char)(__a <= __b);
2495 }
2496 
2497 static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector signed short __a,__vector signed short __b)2498 vec_cmple(__vector signed short __a, __vector signed short __b) {
2499   return (__vector __bool short)(__a <= __b);
2500 }
2501 
2502 static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector unsigned short __a,__vector unsigned short __b)2503 vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
2504   return (__vector __bool short)(__a <= __b);
2505 }
2506 
2507 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector signed int __a,__vector signed int __b)2508 vec_cmple(__vector signed int __a, __vector signed int __b) {
2509   return (__vector __bool int)(__a <= __b);
2510 }
2511 
2512 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector unsigned int __a,__vector unsigned int __b)2513 vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
2514   return (__vector __bool int)(__a <= __b);
2515 }
2516 
2517 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector signed long long __a,__vector signed long long __b)2518 vec_cmple(__vector signed long long __a, __vector signed long long __b) {
2519   return (__vector __bool long long)(__a <= __b);
2520 }
2521 
2522 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector unsigned long long __a,__vector unsigned long long __b)2523 vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
2524   return (__vector __bool long long)(__a <= __b);
2525 }
2526 
2527 #if __ARCH__ >= 12
2528 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector float __a,__vector float __b)2529 vec_cmple(__vector float __a, __vector float __b) {
2530   return (__vector __bool int)(__a <= __b);
2531 }
2532 #endif
2533 
2534 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector double __a,__vector double __b)2535 vec_cmple(__vector double __a, __vector double __b) {
2536   return (__vector __bool long long)(__a <= __b);
2537 }
2538 
2539 /*-- vec_cmplt --------------------------------------------------------------*/
2540 
2541 static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector signed char __a,__vector signed char __b)2542 vec_cmplt(__vector signed char __a, __vector signed char __b) {
2543   return (__vector __bool char)(__a < __b);
2544 }
2545 
2546 static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector unsigned char __a,__vector unsigned char __b)2547 vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
2548   return (__vector __bool char)(__a < __b);
2549 }
2550 
2551 static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector signed short __a,__vector signed short __b)2552 vec_cmplt(__vector signed short __a, __vector signed short __b) {
2553   return (__vector __bool short)(__a < __b);
2554 }
2555 
2556 static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector unsigned short __a,__vector unsigned short __b)2557 vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
2558   return (__vector __bool short)(__a < __b);
2559 }
2560 
2561 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector signed int __a,__vector signed int __b)2562 vec_cmplt(__vector signed int __a, __vector signed int __b) {
2563   return (__vector __bool int)(__a < __b);
2564 }
2565 
2566 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector unsigned int __a,__vector unsigned int __b)2567 vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
2568   return (__vector __bool int)(__a < __b);
2569 }
2570 
2571 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector signed long long __a,__vector signed long long __b)2572 vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
2573   return (__vector __bool long long)(__a < __b);
2574 }
2575 
2576 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector unsigned long long __a,__vector unsigned long long __b)2577 vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
2578   return (__vector __bool long long)(__a < __b);
2579 }
2580 
2581 #if __ARCH__ >= 12
2582 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector float __a,__vector float __b)2583 vec_cmplt(__vector float __a, __vector float __b) {
2584   return (__vector __bool int)(__a < __b);
2585 }
2586 #endif
2587 
2588 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector double __a,__vector double __b)2589 vec_cmplt(__vector double __a, __vector double __b) {
2590   return (__vector __bool long long)(__a < __b);
2591 }
2592 
2593 /*-- vec_all_eq -------------------------------------------------------------*/
2594 
2595 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector signed char __b)2596 vec_all_eq(__vector signed char __a, __vector signed char __b) {
2597   int __cc;
2598   __builtin_s390_vceqbs(__a, __b, &__cc);
2599   return __cc == 0;
2600 }
2601 
2602 // This prototype is deprecated.
2603 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector __bool char __b)2604 vec_all_eq(__vector signed char __a, __vector __bool char __b) {
2605   int __cc;
2606   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
2607   return __cc == 0;
2608 }
2609 
2610 // This prototype is deprecated.
2611 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector signed char __b)2612 vec_all_eq(__vector __bool char __a, __vector signed char __b) {
2613   int __cc;
2614   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
2615   return __cc == 0;
2616 }
2617 
2618 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector unsigned char __b)2619 vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
2620   int __cc;
2621   __builtin_s390_vceqbs((__vector signed char)__a,
2622                         (__vector signed char)__b, &__cc);
2623   return __cc == 0;
2624 }
2625 
2626 // This prototype is deprecated.
2627 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector __bool char __b)2628 vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
2629   int __cc;
2630   __builtin_s390_vceqbs((__vector signed char)__a,
2631                         (__vector signed char)__b, &__cc);
2632   return __cc == 0;
2633 }
2634 
2635 // This prototype is deprecated.
2636 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector unsigned char __b)2637 vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
2638   int __cc;
2639   __builtin_s390_vceqbs((__vector signed char)__a,
2640                         (__vector signed char)__b, &__cc);
2641   return __cc == 0;
2642 }
2643 
2644 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector __bool char __b)2645 vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
2646   int __cc;
2647   __builtin_s390_vceqbs((__vector signed char)__a,
2648                         (__vector signed char)__b, &__cc);
2649   return __cc == 0;
2650 }
2651 
2652 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector signed short __b)2653 vec_all_eq(__vector signed short __a, __vector signed short __b) {
2654   int __cc;
2655   __builtin_s390_vceqhs(__a, __b, &__cc);
2656   return __cc == 0;
2657 }
2658 
2659 // This prototype is deprecated.
2660 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector __bool short __b)2661 vec_all_eq(__vector signed short __a, __vector __bool short __b) {
2662   int __cc;
2663   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
2664   return __cc == 0;
2665 }
2666 
2667 // This prototype is deprecated.
2668 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector signed short __b)2669 vec_all_eq(__vector __bool short __a, __vector signed short __b) {
2670   int __cc;
2671   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
2672   return __cc == 0;
2673 }
2674 
2675 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector unsigned short __b)2676 vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
2677   int __cc;
2678   __builtin_s390_vceqhs((__vector signed short)__a,
2679                         (__vector signed short)__b, &__cc);
2680   return __cc == 0;
2681 }
2682 
2683 // This prototype is deprecated.
2684 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector __bool short __b)2685 vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
2686   int __cc;
2687   __builtin_s390_vceqhs((__vector signed short)__a,
2688                         (__vector signed short)__b, &__cc);
2689   return __cc == 0;
2690 }
2691 
2692 // This prototype is deprecated.
2693 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector unsigned short __b)2694 vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
2695   int __cc;
2696   __builtin_s390_vceqhs((__vector signed short)__a,
2697                         (__vector signed short)__b, &__cc);
2698   return __cc == 0;
2699 }
2700 
2701 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector __bool short __b)2702 vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
2703   int __cc;
2704   __builtin_s390_vceqhs((__vector signed short)__a,
2705                         (__vector signed short)__b, &__cc);
2706   return __cc == 0;
2707 }
2708 
2709 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector signed int __b)2710 vec_all_eq(__vector signed int __a, __vector signed int __b) {
2711   int __cc;
2712   __builtin_s390_vceqfs(__a, __b, &__cc);
2713   return __cc == 0;
2714 }
2715 
2716 // This prototype is deprecated.
2717 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector __bool int __b)2718 vec_all_eq(__vector signed int __a, __vector __bool int __b) {
2719   int __cc;
2720   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
2721   return __cc == 0;
2722 }
2723 
2724 // This prototype is deprecated.
2725 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector signed int __b)2726 vec_all_eq(__vector __bool int __a, __vector signed int __b) {
2727   int __cc;
2728   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
2729   return __cc == 0;
2730 }
2731 
2732 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector unsigned int __b)2733 vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
2734   int __cc;
2735   __builtin_s390_vceqfs((__vector signed int)__a,
2736                         (__vector signed int)__b, &__cc);
2737   return __cc == 0;
2738 }
2739 
2740 // This prototype is deprecated.
2741 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector __bool int __b)2742 vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
2743   int __cc;
2744   __builtin_s390_vceqfs((__vector signed int)__a,
2745                         (__vector signed int)__b, &__cc);
2746   return __cc == 0;
2747 }
2748 
2749 // This prototype is deprecated.
2750 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector unsigned int __b)2751 vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
2752   int __cc;
2753   __builtin_s390_vceqfs((__vector signed int)__a,
2754                         (__vector signed int)__b, &__cc);
2755   return __cc == 0;
2756 }
2757 
2758 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector __bool int __b)2759 vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
2760   int __cc;
2761   __builtin_s390_vceqfs((__vector signed int)__a,
2762                         (__vector signed int)__b, &__cc);
2763   return __cc == 0;
2764 }
2765 
2766 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector signed long long __b)2767 vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
2768   int __cc;
2769   __builtin_s390_vceqgs(__a, __b, &__cc);
2770   return __cc == 0;
2771 }
2772 
2773 // This prototype is deprecated.
2774 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector __bool long long __b)2775 vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
2776   int __cc;
2777   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
2778   return __cc == 0;
2779 }
2780 
2781 // This prototype is deprecated.
2782 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector signed long long __b)2783 vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
2784   int __cc;
2785   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
2786   return __cc == 0;
2787 }
2788 
2789 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector unsigned long long __b)2790 vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
2791   int __cc;
2792   __builtin_s390_vceqgs((__vector signed long long)__a,
2793                         (__vector signed long long)__b, &__cc);
2794   return __cc == 0;
2795 }
2796 
2797 // This prototype is deprecated.
2798 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector __bool long long __b)2799 vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
2800   int __cc;
2801   __builtin_s390_vceqgs((__vector signed long long)__a,
2802                         (__vector signed long long)__b, &__cc);
2803   return __cc == 0;
2804 }
2805 
2806 // This prototype is deprecated.
2807 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector unsigned long long __b)2808 vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
2809   int __cc;
2810   __builtin_s390_vceqgs((__vector signed long long)__a,
2811                         (__vector signed long long)__b, &__cc);
2812   return __cc == 0;
2813 }
2814 
2815 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector __bool long long __b)2816 vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
2817   int __cc;
2818   __builtin_s390_vceqgs((__vector signed long long)__a,
2819                         (__vector signed long long)__b, &__cc);
2820   return __cc == 0;
2821 }
2822 
2823 #if __ARCH__ >= 12
2824 static inline __ATTRS_o_ai int
vec_all_eq(__vector float __a,__vector float __b)2825 vec_all_eq(__vector float __a, __vector float __b) {
2826   int __cc;
2827   __builtin_s390_vfcesbs(__a, __b, &__cc);
2828   return __cc == 0;
2829 }
2830 #endif
2831 
2832 static inline __ATTRS_o_ai int
vec_all_eq(__vector double __a,__vector double __b)2833 vec_all_eq(__vector double __a, __vector double __b) {
2834   int __cc;
2835   __builtin_s390_vfcedbs(__a, __b, &__cc);
2836   return __cc == 0;
2837 }
2838 
2839 /*-- vec_all_ne -------------------------------------------------------------*/
2840 
2841 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector signed char __b)2842 vec_all_ne(__vector signed char __a, __vector signed char __b) {
2843   int __cc;
2844   __builtin_s390_vceqbs(__a, __b, &__cc);
2845   return __cc == 3;
2846 }
2847 
2848 // This prototype is deprecated.
2849 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector __bool char __b)2850 vec_all_ne(__vector signed char __a, __vector __bool char __b) {
2851   int __cc;
2852   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
2853   return __cc == 3;
2854 }
2855 
2856 // This prototype is deprecated.
2857 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector signed char __b)2858 vec_all_ne(__vector __bool char __a, __vector signed char __b) {
2859   int __cc;
2860   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
2861   return __cc == 3;
2862 }
2863 
2864 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector unsigned char __b)2865 vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
2866   int __cc;
2867   __builtin_s390_vceqbs((__vector signed char)__a,
2868                         (__vector signed char)__b, &__cc);
2869   return __cc == 3;
2870 }
2871 
2872 // This prototype is deprecated.
2873 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector __bool char __b)2874 vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
2875   int __cc;
2876   __builtin_s390_vceqbs((__vector signed char)__a,
2877                         (__vector signed char)__b, &__cc);
2878   return __cc == 3;
2879 }
2880 
2881 // This prototype is deprecated.
2882 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector unsigned char __b)2883 vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
2884   int __cc;
2885   __builtin_s390_vceqbs((__vector signed char)__a,
2886                         (__vector signed char)__b, &__cc);
2887   return __cc == 3;
2888 }
2889 
2890 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector __bool char __b)2891 vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
2892   int __cc;
2893   __builtin_s390_vceqbs((__vector signed char)__a,
2894                         (__vector signed char)__b, &__cc);
2895   return __cc == 3;
2896 }
2897 
2898 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector signed short __b)2899 vec_all_ne(__vector signed short __a, __vector signed short __b) {
2900   int __cc;
2901   __builtin_s390_vceqhs(__a, __b, &__cc);
2902   return __cc == 3;
2903 }
2904 
2905 // This prototype is deprecated.
2906 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector __bool short __b)2907 vec_all_ne(__vector signed short __a, __vector __bool short __b) {
2908   int __cc;
2909   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
2910   return __cc == 3;
2911 }
2912 
2913 // This prototype is deprecated.
2914 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector signed short __b)2915 vec_all_ne(__vector __bool short __a, __vector signed short __b) {
2916   int __cc;
2917   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
2918   return __cc == 3;
2919 }
2920 
2921 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector unsigned short __b)2922 vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
2923   int __cc;
2924   __builtin_s390_vceqhs((__vector signed short)__a,
2925                         (__vector signed short)__b, &__cc);
2926   return __cc == 3;
2927 }
2928 
2929 // This prototype is deprecated.
2930 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector __bool short __b)2931 vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
2932   int __cc;
2933   __builtin_s390_vceqhs((__vector signed short)__a,
2934                         (__vector signed short)__b, &__cc);
2935   return __cc == 3;
2936 }
2937 
2938 // This prototype is deprecated.
2939 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector unsigned short __b)2940 vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
2941   int __cc;
2942   __builtin_s390_vceqhs((__vector signed short)__a,
2943                         (__vector signed short)__b, &__cc);
2944   return __cc == 3;
2945 }
2946 
2947 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector __bool short __b)2948 vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
2949   int __cc;
2950   __builtin_s390_vceqhs((__vector signed short)__a,
2951                         (__vector signed short)__b, &__cc);
2952   return __cc == 3;
2953 }
2954 
2955 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector signed int __b)2956 vec_all_ne(__vector signed int __a, __vector signed int __b) {
2957   int __cc;
2958   __builtin_s390_vceqfs(__a, __b, &__cc);
2959   return __cc == 3;
2960 }
2961 
2962 // This prototype is deprecated.
2963 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector __bool int __b)2964 vec_all_ne(__vector signed int __a, __vector __bool int __b) {
2965   int __cc;
2966   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
2967   return __cc == 3;
2968 }
2969 
2970 // This prototype is deprecated.
2971 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector signed int __b)2972 vec_all_ne(__vector __bool int __a, __vector signed int __b) {
2973   int __cc;
2974   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
2975   return __cc == 3;
2976 }
2977 
2978 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector unsigned int __b)2979 vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
2980   int __cc;
2981   __builtin_s390_vceqfs((__vector signed int)__a,
2982                         (__vector signed int)__b, &__cc);
2983   return __cc == 3;
2984 }
2985 
2986 // This prototype is deprecated.
2987 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector __bool int __b)2988 vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
2989   int __cc;
2990   __builtin_s390_vceqfs((__vector signed int)__a,
2991                         (__vector signed int)__b, &__cc);
2992   return __cc == 3;
2993 }
2994 
2995 // This prototype is deprecated.
2996 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector unsigned int __b)2997 vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
2998   int __cc;
2999   __builtin_s390_vceqfs((__vector signed int)__a,
3000                         (__vector signed int)__b, &__cc);
3001   return __cc == 3;
3002 }
3003 
3004 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector __bool int __b)3005 vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
3006   int __cc;
3007   __builtin_s390_vceqfs((__vector signed int)__a,
3008                         (__vector signed int)__b, &__cc);
3009   return __cc == 3;
3010 }
3011 
3012 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector signed long long __b)3013 vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
3014   int __cc;
3015   __builtin_s390_vceqgs(__a, __b, &__cc);
3016   return __cc == 3;
3017 }
3018 
3019 // This prototype is deprecated.
3020 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector __bool long long __b)3021 vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
3022   int __cc;
3023   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
3024   return __cc == 3;
3025 }
3026 
3027 // This prototype is deprecated.
3028 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector signed long long __b)3029 vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
3030   int __cc;
3031   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
3032   return __cc == 3;
3033 }
3034 
3035 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector unsigned long long __b)3036 vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
3037   int __cc;
3038   __builtin_s390_vceqgs((__vector signed long long)__a,
3039                         (__vector signed long long)__b, &__cc);
3040   return __cc == 3;
3041 }
3042 
3043 // This prototype is deprecated.
3044 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector __bool long long __b)3045 vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
3046   int __cc;
3047   __builtin_s390_vceqgs((__vector signed long long)__a,
3048                         (__vector signed long long)__b, &__cc);
3049   return __cc == 3;
3050 }
3051 
3052 // This prototype is deprecated.
3053 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector unsigned long long __b)3054 vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
3055   int __cc;
3056   __builtin_s390_vceqgs((__vector signed long long)__a,
3057                         (__vector signed long long)__b, &__cc);
3058   return __cc == 3;
3059 }
3060 
3061 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector __bool long long __b)3062 vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
3063   int __cc;
3064   __builtin_s390_vceqgs((__vector signed long long)__a,
3065                         (__vector signed long long)__b, &__cc);
3066   return __cc == 3;
3067 }
3068 
3069 #if __ARCH__ >= 12
3070 static inline __ATTRS_o_ai int
vec_all_ne(__vector float __a,__vector float __b)3071 vec_all_ne(__vector float __a, __vector float __b) {
3072   int __cc;
3073   __builtin_s390_vfcesbs(__a, __b, &__cc);
3074   return __cc == 3;
3075 }
3076 #endif
3077 
3078 static inline __ATTRS_o_ai int
vec_all_ne(__vector double __a,__vector double __b)3079 vec_all_ne(__vector double __a, __vector double __b) {
3080   int __cc;
3081   __builtin_s390_vfcedbs(__a, __b, &__cc);
3082   return __cc == 3;
3083 }
3084 
3085 /*-- vec_all_ge -------------------------------------------------------------*/
3086 
3087 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector signed char __b)3088 vec_all_ge(__vector signed char __a, __vector signed char __b) {
3089   int __cc;
3090   __builtin_s390_vchbs(__b, __a, &__cc);
3091   return __cc == 3;
3092 }
3093 
3094 // This prototype is deprecated.
3095 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector __bool char __b)3096 vec_all_ge(__vector signed char __a, __vector __bool char __b) {
3097   int __cc;
3098   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3099   return __cc == 3;
3100 }
3101 
3102 // This prototype is deprecated.
3103 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector signed char __b)3104 vec_all_ge(__vector __bool char __a, __vector signed char __b) {
3105   int __cc;
3106   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3107   return __cc == 3;
3108 }
3109 
3110 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector unsigned char __b)3111 vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
3112   int __cc;
3113   __builtin_s390_vchlbs(__b, __a, &__cc);
3114   return __cc == 3;
3115 }
3116 
3117 // This prototype is deprecated.
3118 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector __bool char __b)3119 vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
3120   int __cc;
3121   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3122   return __cc == 3;
3123 }
3124 
3125 // This prototype is deprecated.
3126 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector unsigned char __b)3127 vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
3128   int __cc;
3129   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3130   return __cc == 3;
3131 }
3132 
3133 // This prototype is deprecated.
3134 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector __bool char __b)3135 vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
3136   int __cc;
3137   __builtin_s390_vchlbs((__vector unsigned char)__b,
3138                         (__vector unsigned char)__a, &__cc);
3139   return __cc == 3;
3140 }
3141 
3142 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector signed short __b)3143 vec_all_ge(__vector signed short __a, __vector signed short __b) {
3144   int __cc;
3145   __builtin_s390_vchhs(__b, __a, &__cc);
3146   return __cc == 3;
3147 }
3148 
3149 // This prototype is deprecated.
3150 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector __bool short __b)3151 vec_all_ge(__vector signed short __a, __vector __bool short __b) {
3152   int __cc;
3153   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3154   return __cc == 3;
3155 }
3156 
3157 // This prototype is deprecated.
3158 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector signed short __b)3159 vec_all_ge(__vector __bool short __a, __vector signed short __b) {
3160   int __cc;
3161   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3162   return __cc == 3;
3163 }
3164 
3165 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector unsigned short __b)3166 vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
3167   int __cc;
3168   __builtin_s390_vchlhs(__b, __a, &__cc);
3169   return __cc == 3;
3170 }
3171 
3172 // This prototype is deprecated.
3173 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector __bool short __b)3174 vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
3175   int __cc;
3176   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3177   return __cc == 3;
3178 }
3179 
3180 // This prototype is deprecated.
3181 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector unsigned short __b)3182 vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
3183   int __cc;
3184   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3185   return __cc == 3;
3186 }
3187 
3188 // This prototype is deprecated.
3189 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector __bool short __b)3190 vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
3191   int __cc;
3192   __builtin_s390_vchlhs((__vector unsigned short)__b,
3193                         (__vector unsigned short)__a, &__cc);
3194   return __cc == 3;
3195 }
3196 
3197 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector signed int __b)3198 vec_all_ge(__vector signed int __a, __vector signed int __b) {
3199   int __cc;
3200   __builtin_s390_vchfs(__b, __a, &__cc);
3201   return __cc == 3;
3202 }
3203 
3204 // This prototype is deprecated.
3205 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector __bool int __b)3206 vec_all_ge(__vector signed int __a, __vector __bool int __b) {
3207   int __cc;
3208   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3209   return __cc == 3;
3210 }
3211 
3212 // This prototype is deprecated.
3213 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector signed int __b)3214 vec_all_ge(__vector __bool int __a, __vector signed int __b) {
3215   int __cc;
3216   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3217   return __cc == 3;
3218 }
3219 
3220 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector unsigned int __b)3221 vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
3222   int __cc;
3223   __builtin_s390_vchlfs(__b, __a, &__cc);
3224   return __cc == 3;
3225 }
3226 
3227 // This prototype is deprecated.
3228 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector __bool int __b)3229 vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
3230   int __cc;
3231   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3232   return __cc == 3;
3233 }
3234 
3235 // This prototype is deprecated.
3236 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector unsigned int __b)3237 vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
3238   int __cc;
3239   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3240   return __cc == 3;
3241 }
3242 
3243 // This prototype is deprecated.
3244 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector __bool int __b)3245 vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
3246   int __cc;
3247   __builtin_s390_vchlfs((__vector unsigned int)__b,
3248                         (__vector unsigned int)__a, &__cc);
3249   return __cc == 3;
3250 }
3251 
3252 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector signed long long __b)3253 vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
3254   int __cc;
3255   __builtin_s390_vchgs(__b, __a, &__cc);
3256   return __cc == 3;
3257 }
3258 
3259 // This prototype is deprecated.
3260 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector __bool long long __b)3261 vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
3262   int __cc;
3263   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3264   return __cc == 3;
3265 }
3266 
3267 // This prototype is deprecated.
3268 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector signed long long __b)3269 vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
3270   int __cc;
3271   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3272   return __cc == 3;
3273 }
3274 
3275 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector unsigned long long __b)3276 vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
3277   int __cc;
3278   __builtin_s390_vchlgs(__b, __a, &__cc);
3279   return __cc == 3;
3280 }
3281 
3282 // This prototype is deprecated.
3283 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector __bool long long __b)3284 vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
3285   int __cc;
3286   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
3287   return __cc == 3;
3288 }
3289 
3290 // This prototype is deprecated.
3291 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector unsigned long long __b)3292 vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
3293   int __cc;
3294   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
3295   return __cc == 3;
3296 }
3297 
3298 // This prototype is deprecated.
3299 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector __bool long long __b)3300 vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
3301   int __cc;
3302   __builtin_s390_vchlgs((__vector unsigned long long)__b,
3303                         (__vector unsigned long long)__a, &__cc);
3304   return __cc == 3;
3305 }
3306 
3307 #if __ARCH__ >= 12
3308 static inline __ATTRS_o_ai int
vec_all_ge(__vector float __a,__vector float __b)3309 vec_all_ge(__vector float __a, __vector float __b) {
3310   int __cc;
3311   __builtin_s390_vfchesbs(__a, __b, &__cc);
3312   return __cc == 0;
3313 }
3314 #endif
3315 
3316 static inline __ATTRS_o_ai int
vec_all_ge(__vector double __a,__vector double __b)3317 vec_all_ge(__vector double __a, __vector double __b) {
3318   int __cc;
3319   __builtin_s390_vfchedbs(__a, __b, &__cc);
3320   return __cc == 0;
3321 }
3322 
3323 /*-- vec_all_gt -------------------------------------------------------------*/
3324 
3325 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector signed char __b)3326 vec_all_gt(__vector signed char __a, __vector signed char __b) {
3327   int __cc;
3328   __builtin_s390_vchbs(__a, __b, &__cc);
3329   return __cc == 0;
3330 }
3331 
3332 // This prototype is deprecated.
3333 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector __bool char __b)3334 vec_all_gt(__vector signed char __a, __vector __bool char __b) {
3335   int __cc;
3336   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3337   return __cc == 0;
3338 }
3339 
3340 // This prototype is deprecated.
3341 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector signed char __b)3342 vec_all_gt(__vector __bool char __a, __vector signed char __b) {
3343   int __cc;
3344   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3345   return __cc == 0;
3346 }
3347 
3348 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector unsigned char __b)3349 vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
3350   int __cc;
3351   __builtin_s390_vchlbs(__a, __b, &__cc);
3352   return __cc == 0;
3353 }
3354 
3355 // This prototype is deprecated.
3356 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector __bool char __b)3357 vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
3358   int __cc;
3359   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3360   return __cc == 0;
3361 }
3362 
3363 // This prototype is deprecated.
3364 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector unsigned char __b)3365 vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
3366   int __cc;
3367   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3368   return __cc == 0;
3369 }
3370 
3371 // This prototype is deprecated.
3372 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector __bool char __b)3373 vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
3374   int __cc;
3375   __builtin_s390_vchlbs((__vector unsigned char)__a,
3376                         (__vector unsigned char)__b, &__cc);
3377   return __cc == 0;
3378 }
3379 
3380 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector signed short __b)3381 vec_all_gt(__vector signed short __a, __vector signed short __b) {
3382   int __cc;
3383   __builtin_s390_vchhs(__a, __b, &__cc);
3384   return __cc == 0;
3385 }
3386 
3387 // This prototype is deprecated.
3388 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector __bool short __b)3389 vec_all_gt(__vector signed short __a, __vector __bool short __b) {
3390   int __cc;
3391   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3392   return __cc == 0;
3393 }
3394 
3395 // This prototype is deprecated.
3396 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector signed short __b)3397 vec_all_gt(__vector __bool short __a, __vector signed short __b) {
3398   int __cc;
3399   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3400   return __cc == 0;
3401 }
3402 
3403 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector unsigned short __b)3404 vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
3405   int __cc;
3406   __builtin_s390_vchlhs(__a, __b, &__cc);
3407   return __cc == 0;
3408 }
3409 
3410 // This prototype is deprecated.
3411 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector __bool short __b)3412 vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
3413   int __cc;
3414   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3415   return __cc == 0;
3416 }
3417 
3418 // This prototype is deprecated.
3419 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector unsigned short __b)3420 vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
3421   int __cc;
3422   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3423   return __cc == 0;
3424 }
3425 
3426 // This prototype is deprecated.
3427 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector __bool short __b)3428 vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
3429   int __cc;
3430   __builtin_s390_vchlhs((__vector unsigned short)__a,
3431                         (__vector unsigned short)__b, &__cc);
3432   return __cc == 0;
3433 }
3434 
3435 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector signed int __b)3436 vec_all_gt(__vector signed int __a, __vector signed int __b) {
3437   int __cc;
3438   __builtin_s390_vchfs(__a, __b, &__cc);
3439   return __cc == 0;
3440 }
3441 
3442 // This prototype is deprecated.
3443 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector __bool int __b)3444 vec_all_gt(__vector signed int __a, __vector __bool int __b) {
3445   int __cc;
3446   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3447   return __cc == 0;
3448 }
3449 
3450 // This prototype is deprecated.
3451 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector signed int __b)3452 vec_all_gt(__vector __bool int __a, __vector signed int __b) {
3453   int __cc;
3454   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3455   return __cc == 0;
3456 }
3457 
3458 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector unsigned int __b)3459 vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
3460   int __cc;
3461   __builtin_s390_vchlfs(__a, __b, &__cc);
3462   return __cc == 0;
3463 }
3464 
3465 // This prototype is deprecated.
3466 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector __bool int __b)3467 vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
3468   int __cc;
3469   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3470   return __cc == 0;
3471 }
3472 
3473 // This prototype is deprecated.
3474 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector unsigned int __b)3475 vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
3476   int __cc;
3477   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3478   return __cc == 0;
3479 }
3480 
3481 // This prototype is deprecated.
3482 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector __bool int __b)3483 vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
3484   int __cc;
3485   __builtin_s390_vchlfs((__vector unsigned int)__a,
3486                         (__vector unsigned int)__b, &__cc);
3487   return __cc == 0;
3488 }
3489 
3490 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector signed long long __b)3491 vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
3492   int __cc;
3493   __builtin_s390_vchgs(__a, __b, &__cc);
3494   return __cc == 0;
3495 }
3496 
3497 // This prototype is deprecated.
3498 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector __bool long long __b)3499 vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
3500   int __cc;
3501   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3502   return __cc == 0;
3503 }
3504 
3505 // This prototype is deprecated.
3506 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector signed long long __b)3507 vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
3508   int __cc;
3509   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3510   return __cc == 0;
3511 }
3512 
3513 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector unsigned long long __b)3514 vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
3515   int __cc;
3516   __builtin_s390_vchlgs(__a, __b, &__cc);
3517   return __cc == 0;
3518 }
3519 
3520 // This prototype is deprecated.
3521 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector __bool long long __b)3522 vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
3523   int __cc;
3524   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3525   return __cc == 0;
3526 }
3527 
3528 // This prototype is deprecated.
3529 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector unsigned long long __b)3530 vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
3531   int __cc;
3532   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3533   return __cc == 0;
3534 }
3535 
3536 // This prototype is deprecated.
3537 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector __bool long long __b)3538 vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
3539   int __cc;
3540   __builtin_s390_vchlgs((__vector unsigned long long)__a,
3541                         (__vector unsigned long long)__b, &__cc);
3542   return __cc == 0;
3543 }
3544 
3545 #if __ARCH__ >= 12
3546 static inline __ATTRS_o_ai int
vec_all_gt(__vector float __a,__vector float __b)3547 vec_all_gt(__vector float __a, __vector float __b) {
3548   int __cc;
3549   __builtin_s390_vfchsbs(__a, __b, &__cc);
3550   return __cc == 0;
3551 }
3552 #endif
3553 
3554 static inline __ATTRS_o_ai int
vec_all_gt(__vector double __a,__vector double __b)3555 vec_all_gt(__vector double __a, __vector double __b) {
3556   int __cc;
3557   __builtin_s390_vfchdbs(__a, __b, &__cc);
3558   return __cc == 0;
3559 }
3560 
3561 /*-- vec_all_le -------------------------------------------------------------*/
3562 
3563 static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector signed char __b)3564 vec_all_le(__vector signed char __a, __vector signed char __b) {
3565   int __cc;
3566   __builtin_s390_vchbs(__a, __b, &__cc);
3567   return __cc == 3;
3568 }
3569 
3570 // This prototype is deprecated.
3571 static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector __bool char __b)3572 vec_all_le(__vector signed char __a, __vector __bool char __b) {
3573   int __cc;
3574   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3575   return __cc == 3;
3576 }
3577 
3578 // This prototype is deprecated.
3579 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector signed char __b)3580 vec_all_le(__vector __bool char __a, __vector signed char __b) {
3581   int __cc;
3582   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3583   return __cc == 3;
3584 }
3585 
3586 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector unsigned char __b)3587 vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
3588   int __cc;
3589   __builtin_s390_vchlbs(__a, __b, &__cc);
3590   return __cc == 3;
3591 }
3592 
3593 // This prototype is deprecated.
3594 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector __bool char __b)3595 vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
3596   int __cc;
3597   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3598   return __cc == 3;
3599 }
3600 
3601 // This prototype is deprecated.
3602 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector unsigned char __b)3603 vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
3604   int __cc;
3605   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3606   return __cc == 3;
3607 }
3608 
3609 // This prototype is deprecated.
3610 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector __bool char __b)3611 vec_all_le(__vector __bool char __a, __vector __bool char __b) {
3612   int __cc;
3613   __builtin_s390_vchlbs((__vector unsigned char)__a,
3614                         (__vector unsigned char)__b, &__cc);
3615   return __cc == 3;
3616 }
3617 
3618 static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector signed short __b)3619 vec_all_le(__vector signed short __a, __vector signed short __b) {
3620   int __cc;
3621   __builtin_s390_vchhs(__a, __b, &__cc);
3622   return __cc == 3;
3623 }
3624 
3625 // This prototype is deprecated.
3626 static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector __bool short __b)3627 vec_all_le(__vector signed short __a, __vector __bool short __b) {
3628   int __cc;
3629   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3630   return __cc == 3;
3631 }
3632 
3633 // This prototype is deprecated.
3634 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector signed short __b)3635 vec_all_le(__vector __bool short __a, __vector signed short __b) {
3636   int __cc;
3637   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3638   return __cc == 3;
3639 }
3640 
3641 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector unsigned short __b)3642 vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
3643   int __cc;
3644   __builtin_s390_vchlhs(__a, __b, &__cc);
3645   return __cc == 3;
3646 }
3647 
3648 // This prototype is deprecated.
3649 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector __bool short __b)3650 vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
3651   int __cc;
3652   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3653   return __cc == 3;
3654 }
3655 
3656 // This prototype is deprecated.
3657 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector unsigned short __b)3658 vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
3659   int __cc;
3660   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3661   return __cc == 3;
3662 }
3663 
3664 // This prototype is deprecated.
3665 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector __bool short __b)3666 vec_all_le(__vector __bool short __a, __vector __bool short __b) {
3667   int __cc;
3668   __builtin_s390_vchlhs((__vector unsigned short)__a,
3669                         (__vector unsigned short)__b, &__cc);
3670   return __cc == 3;
3671 }
3672 
3673 static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector signed int __b)3674 vec_all_le(__vector signed int __a, __vector signed int __b) {
3675   int __cc;
3676   __builtin_s390_vchfs(__a, __b, &__cc);
3677   return __cc == 3;
3678 }
3679 
3680 // This prototype is deprecated.
3681 static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector __bool int __b)3682 vec_all_le(__vector signed int __a, __vector __bool int __b) {
3683   int __cc;
3684   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3685   return __cc == 3;
3686 }
3687 
3688 // This prototype is deprecated.
3689 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector signed int __b)3690 vec_all_le(__vector __bool int __a, __vector signed int __b) {
3691   int __cc;
3692   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3693   return __cc == 3;
3694 }
3695 
3696 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector unsigned int __b)3697 vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
3698   int __cc;
3699   __builtin_s390_vchlfs(__a, __b, &__cc);
3700   return __cc == 3;
3701 }
3702 
3703 // This prototype is deprecated.
3704 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector __bool int __b)3705 vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
3706   int __cc;
3707   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3708   return __cc == 3;
3709 }
3710 
3711 // This prototype is deprecated.
3712 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector unsigned int __b)3713 vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
3714   int __cc;
3715   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3716   return __cc == 3;
3717 }
3718 
3719 // This prototype is deprecated.
3720 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector __bool int __b)3721 vec_all_le(__vector __bool int __a, __vector __bool int __b) {
3722   int __cc;
3723   __builtin_s390_vchlfs((__vector unsigned int)__a,
3724                         (__vector unsigned int)__b, &__cc);
3725   return __cc == 3;
3726 }
3727 
3728 static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector signed long long __b)3729 vec_all_le(__vector signed long long __a, __vector signed long long __b) {
3730   int __cc;
3731   __builtin_s390_vchgs(__a, __b, &__cc);
3732   return __cc == 3;
3733 }
3734 
3735 // This prototype is deprecated.
3736 static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector __bool long long __b)3737 vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
3738   int __cc;
3739   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3740   return __cc == 3;
3741 }
3742 
3743 // This prototype is deprecated.
3744 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector signed long long __b)3745 vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
3746   int __cc;
3747   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3748   return __cc == 3;
3749 }
3750 
3751 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector unsigned long long __b)3752 vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
3753   int __cc;
3754   __builtin_s390_vchlgs(__a, __b, &__cc);
3755   return __cc == 3;
3756 }
3757 
3758 // This prototype is deprecated.
3759 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector __bool long long __b)3760 vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
3761   int __cc;
3762   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3763   return __cc == 3;
3764 }
3765 
3766 // This prototype is deprecated.
3767 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector unsigned long long __b)3768 vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
3769   int __cc;
3770   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3771   return __cc == 3;
3772 }
3773 
3774 // This prototype is deprecated.
3775 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector __bool long long __b)3776 vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
3777   int __cc;
3778   __builtin_s390_vchlgs((__vector unsigned long long)__a,
3779                         (__vector unsigned long long)__b, &__cc);
3780   return __cc == 3;
3781 }
3782 
3783 #if __ARCH__ >= 12
3784 static inline __ATTRS_o_ai int
vec_all_le(__vector float __a,__vector float __b)3785 vec_all_le(__vector float __a, __vector float __b) {
3786   int __cc;
3787   __builtin_s390_vfchesbs(__b, __a, &__cc);
3788   return __cc == 0;
3789 }
3790 #endif
3791 
3792 static inline __ATTRS_o_ai int
vec_all_le(__vector double __a,__vector double __b)3793 vec_all_le(__vector double __a, __vector double __b) {
3794   int __cc;
3795   __builtin_s390_vfchedbs(__b, __a, &__cc);
3796   return __cc == 0;
3797 }
3798 
3799 /*-- vec_all_lt -------------------------------------------------------------*/
3800 
3801 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector signed char __b)3802 vec_all_lt(__vector signed char __a, __vector signed char __b) {
3803   int __cc;
3804   __builtin_s390_vchbs(__b, __a, &__cc);
3805   return __cc == 0;
3806 }
3807 
3808 // This prototype is deprecated.
3809 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector __bool char __b)3810 vec_all_lt(__vector signed char __a, __vector __bool char __b) {
3811   int __cc;
3812   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3813   return __cc == 0;
3814 }
3815 
3816 // This prototype is deprecated.
3817 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector signed char __b)3818 vec_all_lt(__vector __bool char __a, __vector signed char __b) {
3819   int __cc;
3820   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3821   return __cc == 0;
3822 }
3823 
3824 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector unsigned char __b)3825 vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
3826   int __cc;
3827   __builtin_s390_vchlbs(__b, __a, &__cc);
3828   return __cc == 0;
3829 }
3830 
3831 // This prototype is deprecated.
3832 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector __bool char __b)3833 vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
3834   int __cc;
3835   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3836   return __cc == 0;
3837 }
3838 
3839 // This prototype is deprecated.
3840 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector unsigned char __b)3841 vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
3842   int __cc;
3843   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3844   return __cc == 0;
3845 }
3846 
3847 // This prototype is deprecated.
3848 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector __bool char __b)3849 vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
3850   int __cc;
3851   __builtin_s390_vchlbs((__vector unsigned char)__b,
3852                         (__vector unsigned char)__a, &__cc);
3853   return __cc == 0;
3854 }
3855 
3856 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector signed short __b)3857 vec_all_lt(__vector signed short __a, __vector signed short __b) {
3858   int __cc;
3859   __builtin_s390_vchhs(__b, __a, &__cc);
3860   return __cc == 0;
3861 }
3862 
3863 // This prototype is deprecated.
3864 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector __bool short __b)3865 vec_all_lt(__vector signed short __a, __vector __bool short __b) {
3866   int __cc;
3867   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3868   return __cc == 0;
3869 }
3870 
3871 // This prototype is deprecated.
3872 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector signed short __b)3873 vec_all_lt(__vector __bool short __a, __vector signed short __b) {
3874   int __cc;
3875   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3876   return __cc == 0;
3877 }
3878 
3879 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector unsigned short __b)3880 vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
3881   int __cc;
3882   __builtin_s390_vchlhs(__b, __a, &__cc);
3883   return __cc == 0;
3884 }
3885 
3886 // This prototype is deprecated.
3887 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector __bool short __b)3888 vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
3889   int __cc;
3890   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3891   return __cc == 0;
3892 }
3893 
3894 // This prototype is deprecated.
3895 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector unsigned short __b)3896 vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
3897   int __cc;
3898   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3899   return __cc == 0;
3900 }
3901 
3902 // This prototype is deprecated.
3903 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector __bool short __b)3904 vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
3905   int __cc;
3906   __builtin_s390_vchlhs((__vector unsigned short)__b,
3907                         (__vector unsigned short)__a, &__cc);
3908   return __cc == 0;
3909 }
3910 
3911 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector signed int __b)3912 vec_all_lt(__vector signed int __a, __vector signed int __b) {
3913   int __cc;
3914   __builtin_s390_vchfs(__b, __a, &__cc);
3915   return __cc == 0;
3916 }
3917 
3918 // This prototype is deprecated.
3919 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector __bool int __b)3920 vec_all_lt(__vector signed int __a, __vector __bool int __b) {
3921   int __cc;
3922   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3923   return __cc == 0;
3924 }
3925 
3926 // This prototype is deprecated.
3927 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector signed int __b)3928 vec_all_lt(__vector __bool int __a, __vector signed int __b) {
3929   int __cc;
3930   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3931   return __cc == 0;
3932 }
3933 
3934 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector unsigned int __b)3935 vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
3936   int __cc;
3937   __builtin_s390_vchlfs(__b, __a, &__cc);
3938   return __cc == 0;
3939 }
3940 
3941 // This prototype is deprecated.
3942 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector __bool int __b)3943 vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
3944   int __cc;
3945   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3946   return __cc == 0;
3947 }
3948 
3949 // This prototype is deprecated.
3950 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector unsigned int __b)3951 vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
3952   int __cc;
3953   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3954   return __cc == 0;
3955 }
3956 
3957 // This prototype is deprecated.
3958 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector __bool int __b)3959 vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
3960   int __cc;
3961   __builtin_s390_vchlfs((__vector unsigned int)__b,
3962                         (__vector unsigned int)__a, &__cc);
3963   return __cc == 0;
3964 }
3965 
3966 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector signed long long __b)3967 vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
3968   int __cc;
3969   __builtin_s390_vchgs(__b, __a, &__cc);
3970   return __cc == 0;
3971 }
3972 
3973 // This prototype is deprecated.
3974 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector __bool long long __b)3975 vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
3976   int __cc;
3977   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3978   return __cc == 0;
3979 }
3980 
3981 // This prototype is deprecated.
3982 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector signed long long __b)3983 vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
3984   int __cc;
3985   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3986   return __cc == 0;
3987 }
3988 
3989 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector unsigned long long __b)3990 vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
3991   int __cc;
3992   __builtin_s390_vchlgs(__b, __a, &__cc);
3993   return __cc == 0;
3994 }
3995 
3996 // This prototype is deprecated.
3997 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector __bool long long __b)3998 vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
3999   int __cc;
4000   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4001   return __cc == 0;
4002 }
4003 
4004 // This prototype is deprecated.
4005 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector unsigned long long __b)4006 vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
4007   int __cc;
4008   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4009   return __cc == 0;
4010 }
4011 
4012 // This prototype is deprecated.
4013 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector __bool long long __b)4014 vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
4015   int __cc;
4016   __builtin_s390_vchlgs((__vector unsigned long long)__b,
4017                         (__vector unsigned long long)__a, &__cc);
4018   return __cc == 0;
4019 }
4020 
4021 #if __ARCH__ >= 12
4022 static inline __ATTRS_o_ai int
vec_all_lt(__vector float __a,__vector float __b)4023 vec_all_lt(__vector float __a, __vector float __b) {
4024   int __cc;
4025   __builtin_s390_vfchsbs(__b, __a, &__cc);
4026   return __cc == 0;
4027 }
4028 #endif
4029 
4030 static inline __ATTRS_o_ai int
vec_all_lt(__vector double __a,__vector double __b)4031 vec_all_lt(__vector double __a, __vector double __b) {
4032   int __cc;
4033   __builtin_s390_vfchdbs(__b, __a, &__cc);
4034   return __cc == 0;
4035 }
4036 
4037 /*-- vec_all_nge ------------------------------------------------------------*/
4038 
4039 #if __ARCH__ >= 12
4040 static inline __ATTRS_o_ai int
vec_all_nge(__vector float __a,__vector float __b)4041 vec_all_nge(__vector float __a, __vector float __b) {
4042   int __cc;
4043   __builtin_s390_vfchesbs(__a, __b, &__cc);
4044   return __cc == 3;
4045 }
4046 #endif
4047 
4048 static inline __ATTRS_o_ai int
vec_all_nge(__vector double __a,__vector double __b)4049 vec_all_nge(__vector double __a, __vector double __b) {
4050   int __cc;
4051   __builtin_s390_vfchedbs(__a, __b, &__cc);
4052   return __cc == 3;
4053 }
4054 
4055 /*-- vec_all_ngt ------------------------------------------------------------*/
4056 
4057 #if __ARCH__ >= 12
4058 static inline __ATTRS_o_ai int
vec_all_ngt(__vector float __a,__vector float __b)4059 vec_all_ngt(__vector float __a, __vector float __b) {
4060   int __cc;
4061   __builtin_s390_vfchsbs(__a, __b, &__cc);
4062   return __cc == 3;
4063 }
4064 #endif
4065 
4066 static inline __ATTRS_o_ai int
vec_all_ngt(__vector double __a,__vector double __b)4067 vec_all_ngt(__vector double __a, __vector double __b) {
4068   int __cc;
4069   __builtin_s390_vfchdbs(__a, __b, &__cc);
4070   return __cc == 3;
4071 }
4072 
4073 /*-- vec_all_nle ------------------------------------------------------------*/
4074 
4075 #if __ARCH__ >= 12
4076 static inline __ATTRS_o_ai int
vec_all_nle(__vector float __a,__vector float __b)4077 vec_all_nle(__vector float __a, __vector float __b) {
4078   int __cc;
4079   __builtin_s390_vfchesbs(__b, __a, &__cc);
4080   return __cc == 3;
4081 }
4082 #endif
4083 
4084 static inline __ATTRS_o_ai int
vec_all_nle(__vector double __a,__vector double __b)4085 vec_all_nle(__vector double __a, __vector double __b) {
4086   int __cc;
4087   __builtin_s390_vfchedbs(__b, __a, &__cc);
4088   return __cc == 3;
4089 }
4090 
4091 /*-- vec_all_nlt ------------------------------------------------------------*/
4092 
4093 #if __ARCH__ >= 12
4094 static inline __ATTRS_o_ai int
vec_all_nlt(__vector float __a,__vector float __b)4095 vec_all_nlt(__vector float __a, __vector float __b) {
4096   int __cc;
4097   __builtin_s390_vfchsbs(__b, __a, &__cc);
4098   return __cc == 3;
4099 }
4100 #endif
4101 
4102 static inline __ATTRS_o_ai int
vec_all_nlt(__vector double __a,__vector double __b)4103 vec_all_nlt(__vector double __a, __vector double __b) {
4104   int __cc;
4105   __builtin_s390_vfchdbs(__b, __a, &__cc);
4106   return __cc == 3;
4107 }
4108 
4109 /*-- vec_all_nan ------------------------------------------------------------*/
4110 
4111 #if __ARCH__ >= 12
4112 static inline __ATTRS_o_ai int
vec_all_nan(__vector float __a)4113 vec_all_nan(__vector float __a) {
4114   int __cc;
4115   __builtin_s390_vftcisb(__a, 15, &__cc);
4116   return __cc == 0;
4117 }
4118 #endif
4119 
4120 static inline __ATTRS_o_ai int
vec_all_nan(__vector double __a)4121 vec_all_nan(__vector double __a) {
4122   int __cc;
4123   __builtin_s390_vftcidb(__a, 15, &__cc);
4124   return __cc == 0;
4125 }
4126 
4127 /*-- vec_all_numeric --------------------------------------------------------*/
4128 
4129 #if __ARCH__ >= 12
4130 static inline __ATTRS_o_ai int
vec_all_numeric(__vector float __a)4131 vec_all_numeric(__vector float __a) {
4132   int __cc;
4133   __builtin_s390_vftcisb(__a, 15, &__cc);
4134   return __cc == 3;
4135 }
4136 #endif
4137 
4138 static inline __ATTRS_o_ai int
vec_all_numeric(__vector double __a)4139 vec_all_numeric(__vector double __a) {
4140   int __cc;
4141   __builtin_s390_vftcidb(__a, 15, &__cc);
4142   return __cc == 3;
4143 }
4144 
4145 /*-- vec_any_eq -------------------------------------------------------------*/
4146 
4147 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector signed char __b)4148 vec_any_eq(__vector signed char __a, __vector signed char __b) {
4149   int __cc;
4150   __builtin_s390_vceqbs(__a, __b, &__cc);
4151   return __cc <= 1;
4152 }
4153 
4154 // This prototype is deprecated.
4155 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector __bool char __b)4156 vec_any_eq(__vector signed char __a, __vector __bool char __b) {
4157   int __cc;
4158   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
4159   return __cc <= 1;
4160 }
4161 
4162 // This prototype is deprecated.
4163 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector signed char __b)4164 vec_any_eq(__vector __bool char __a, __vector signed char __b) {
4165   int __cc;
4166   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
4167   return __cc <= 1;
4168 }
4169 
4170 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector unsigned char __b)4171 vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
4172   int __cc;
4173   __builtin_s390_vceqbs((__vector signed char)__a,
4174                         (__vector signed char)__b, &__cc);
4175   return __cc <= 1;
4176 }
4177 
4178 // This prototype is deprecated.
4179 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector __bool char __b)4180 vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
4181   int __cc;
4182   __builtin_s390_vceqbs((__vector signed char)__a,
4183                         (__vector signed char)__b, &__cc);
4184   return __cc <= 1;
4185 }
4186 
4187 // This prototype is deprecated.
4188 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector unsigned char __b)4189 vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
4190   int __cc;
4191   __builtin_s390_vceqbs((__vector signed char)__a,
4192                         (__vector signed char)__b, &__cc);
4193   return __cc <= 1;
4194 }
4195 
4196 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector __bool char __b)4197 vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
4198   int __cc;
4199   __builtin_s390_vceqbs((__vector signed char)__a,
4200                         (__vector signed char)__b, &__cc);
4201   return __cc <= 1;
4202 }
4203 
4204 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector signed short __b)4205 vec_any_eq(__vector signed short __a, __vector signed short __b) {
4206   int __cc;
4207   __builtin_s390_vceqhs(__a, __b, &__cc);
4208   return __cc <= 1;
4209 }
4210 
4211 // This prototype is deprecated.
4212 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector __bool short __b)4213 vec_any_eq(__vector signed short __a, __vector __bool short __b) {
4214   int __cc;
4215   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
4216   return __cc <= 1;
4217 }
4218 
4219 // This prototype is deprecated.
4220 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector signed short __b)4221 vec_any_eq(__vector __bool short __a, __vector signed short __b) {
4222   int __cc;
4223   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
4224   return __cc <= 1;
4225 }
4226 
4227 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector unsigned short __b)4228 vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
4229   int __cc;
4230   __builtin_s390_vceqhs((__vector signed short)__a,
4231                         (__vector signed short)__b, &__cc);
4232   return __cc <= 1;
4233 }
4234 
4235 // This prototype is deprecated.
4236 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector __bool short __b)4237 vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
4238   int __cc;
4239   __builtin_s390_vceqhs((__vector signed short)__a,
4240                         (__vector signed short)__b, &__cc);
4241   return __cc <= 1;
4242 }
4243 
4244 // This prototype is deprecated.
4245 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector unsigned short __b)4246 vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
4247   int __cc;
4248   __builtin_s390_vceqhs((__vector signed short)__a,
4249                         (__vector signed short)__b, &__cc);
4250   return __cc <= 1;
4251 }
4252 
4253 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector __bool short __b)4254 vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
4255   int __cc;
4256   __builtin_s390_vceqhs((__vector signed short)__a,
4257                         (__vector signed short)__b, &__cc);
4258   return __cc <= 1;
4259 }
4260 
4261 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector signed int __b)4262 vec_any_eq(__vector signed int __a, __vector signed int __b) {
4263   int __cc;
4264   __builtin_s390_vceqfs(__a, __b, &__cc);
4265   return __cc <= 1;
4266 }
4267 
4268 // This prototype is deprecated.
4269 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector __bool int __b)4270 vec_any_eq(__vector signed int __a, __vector __bool int __b) {
4271   int __cc;
4272   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
4273   return __cc <= 1;
4274 }
4275 
4276 // This prototype is deprecated.
4277 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector signed int __b)4278 vec_any_eq(__vector __bool int __a, __vector signed int __b) {
4279   int __cc;
4280   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
4281   return __cc <= 1;
4282 }
4283 
4284 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector unsigned int __b)4285 vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
4286   int __cc;
4287   __builtin_s390_vceqfs((__vector signed int)__a,
4288                         (__vector signed int)__b, &__cc);
4289   return __cc <= 1;
4290 }
4291 
4292 // This prototype is deprecated.
4293 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector __bool int __b)4294 vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
4295   int __cc;
4296   __builtin_s390_vceqfs((__vector signed int)__a,
4297                         (__vector signed int)__b, &__cc);
4298   return __cc <= 1;
4299 }
4300 
4301 // This prototype is deprecated.
4302 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector unsigned int __b)4303 vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
4304   int __cc;
4305   __builtin_s390_vceqfs((__vector signed int)__a,
4306                         (__vector signed int)__b, &__cc);
4307   return __cc <= 1;
4308 }
4309 
4310 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector __bool int __b)4311 vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
4312   int __cc;
4313   __builtin_s390_vceqfs((__vector signed int)__a,
4314                         (__vector signed int)__b, &__cc);
4315   return __cc <= 1;
4316 }
4317 
4318 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector signed long long __b)4319 vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
4320   int __cc;
4321   __builtin_s390_vceqgs(__a, __b, &__cc);
4322   return __cc <= 1;
4323 }
4324 
4325 // This prototype is deprecated.
4326 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector __bool long long __b)4327 vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
4328   int __cc;
4329   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
4330   return __cc <= 1;
4331 }
4332 
4333 // This prototype is deprecated.
4334 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector signed long long __b)4335 vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
4336   int __cc;
4337   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
4338   return __cc <= 1;
4339 }
4340 
4341 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector unsigned long long __b)4342 vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
4343   int __cc;
4344   __builtin_s390_vceqgs((__vector signed long long)__a,
4345                         (__vector signed long long)__b, &__cc);
4346   return __cc <= 1;
4347 }
4348 
4349 // This prototype is deprecated.
4350 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector __bool long long __b)4351 vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
4352   int __cc;
4353   __builtin_s390_vceqgs((__vector signed long long)__a,
4354                         (__vector signed long long)__b, &__cc);
4355   return __cc <= 1;
4356 }
4357 
4358 // This prototype is deprecated.
4359 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector unsigned long long __b)4360 vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
4361   int __cc;
4362   __builtin_s390_vceqgs((__vector signed long long)__a,
4363                         (__vector signed long long)__b, &__cc);
4364   return __cc <= 1;
4365 }
4366 
4367 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector __bool long long __b)4368 vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
4369   int __cc;
4370   __builtin_s390_vceqgs((__vector signed long long)__a,
4371                         (__vector signed long long)__b, &__cc);
4372   return __cc <= 1;
4373 }
4374 
4375 #if __ARCH__ >= 12
4376 static inline __ATTRS_o_ai int
vec_any_eq(__vector float __a,__vector float __b)4377 vec_any_eq(__vector float __a, __vector float __b) {
4378   int __cc;
4379   __builtin_s390_vfcesbs(__a, __b, &__cc);
4380   return __cc <= 1;
4381 }
4382 #endif
4383 
4384 static inline __ATTRS_o_ai int
vec_any_eq(__vector double __a,__vector double __b)4385 vec_any_eq(__vector double __a, __vector double __b) {
4386   int __cc;
4387   __builtin_s390_vfcedbs(__a, __b, &__cc);
4388   return __cc <= 1;
4389 }
4390 
4391 /*-- vec_any_ne -------------------------------------------------------------*/
4392 
4393 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector signed char __b)4394 vec_any_ne(__vector signed char __a, __vector signed char __b) {
4395   int __cc;
4396   __builtin_s390_vceqbs(__a, __b, &__cc);
4397   return __cc != 0;
4398 }
4399 
4400 // This prototype is deprecated.
4401 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector __bool char __b)4402 vec_any_ne(__vector signed char __a, __vector __bool char __b) {
4403   int __cc;
4404   __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
4405   return __cc != 0;
4406 }
4407 
4408 // This prototype is deprecated.
4409 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector signed char __b)4410 vec_any_ne(__vector __bool char __a, __vector signed char __b) {
4411   int __cc;
4412   __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
4413   return __cc != 0;
4414 }
4415 
4416 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector unsigned char __b)4417 vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
4418   int __cc;
4419   __builtin_s390_vceqbs((__vector signed char)__a,
4420                         (__vector signed char)__b, &__cc);
4421   return __cc != 0;
4422 }
4423 
4424 // This prototype is deprecated.
4425 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector __bool char __b)4426 vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
4427   int __cc;
4428   __builtin_s390_vceqbs((__vector signed char)__a,
4429                         (__vector signed char)__b, &__cc);
4430   return __cc != 0;
4431 }
4432 
4433 // This prototype is deprecated.
4434 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector unsigned char __b)4435 vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
4436   int __cc;
4437   __builtin_s390_vceqbs((__vector signed char)__a,
4438                         (__vector signed char)__b, &__cc);
4439   return __cc != 0;
4440 }
4441 
4442 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector __bool char __b)4443 vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
4444   int __cc;
4445   __builtin_s390_vceqbs((__vector signed char)__a,
4446                         (__vector signed char)__b, &__cc);
4447   return __cc != 0;
4448 }
4449 
4450 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector signed short __b)4451 vec_any_ne(__vector signed short __a, __vector signed short __b) {
4452   int __cc;
4453   __builtin_s390_vceqhs(__a, __b, &__cc);
4454   return __cc != 0;
4455 }
4456 
4457 // This prototype is deprecated.
4458 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector __bool short __b)4459 vec_any_ne(__vector signed short __a, __vector __bool short __b) {
4460   int __cc;
4461   __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
4462   return __cc != 0;
4463 }
4464 
4465 // This prototype is deprecated.
4466 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector signed short __b)4467 vec_any_ne(__vector __bool short __a, __vector signed short __b) {
4468   int __cc;
4469   __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
4470   return __cc != 0;
4471 }
4472 
4473 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector unsigned short __b)4474 vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
4475   int __cc;
4476   __builtin_s390_vceqhs((__vector signed short)__a,
4477                         (__vector signed short)__b, &__cc);
4478   return __cc != 0;
4479 }
4480 
4481 // This prototype is deprecated.
4482 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector __bool short __b)4483 vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
4484   int __cc;
4485   __builtin_s390_vceqhs((__vector signed short)__a,
4486                         (__vector signed short)__b, &__cc);
4487   return __cc != 0;
4488 }
4489 
4490 // This prototype is deprecated.
4491 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector unsigned short __b)4492 vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
4493   int __cc;
4494   __builtin_s390_vceqhs((__vector signed short)__a,
4495                         (__vector signed short)__b, &__cc);
4496   return __cc != 0;
4497 }
4498 
4499 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector __bool short __b)4500 vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
4501   int __cc;
4502   __builtin_s390_vceqhs((__vector signed short)__a,
4503                         (__vector signed short)__b, &__cc);
4504   return __cc != 0;
4505 }
4506 
4507 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector signed int __b)4508 vec_any_ne(__vector signed int __a, __vector signed int __b) {
4509   int __cc;
4510   __builtin_s390_vceqfs(__a, __b, &__cc);
4511   return __cc != 0;
4512 }
4513 
4514 // This prototype is deprecated.
4515 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector __bool int __b)4516 vec_any_ne(__vector signed int __a, __vector __bool int __b) {
4517   int __cc;
4518   __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
4519   return __cc != 0;
4520 }
4521 
4522 // This prototype is deprecated.
4523 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector signed int __b)4524 vec_any_ne(__vector __bool int __a, __vector signed int __b) {
4525   int __cc;
4526   __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
4527   return __cc != 0;
4528 }
4529 
4530 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector unsigned int __b)4531 vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
4532   int __cc;
4533   __builtin_s390_vceqfs((__vector signed int)__a,
4534                         (__vector signed int)__b, &__cc);
4535   return __cc != 0;
4536 }
4537 
4538 // This prototype is deprecated.
4539 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector __bool int __b)4540 vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
4541   int __cc;
4542   __builtin_s390_vceqfs((__vector signed int)__a,
4543                         (__vector signed int)__b, &__cc);
4544   return __cc != 0;
4545 }
4546 
4547 // This prototype is deprecated.
4548 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector unsigned int __b)4549 vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
4550   int __cc;
4551   __builtin_s390_vceqfs((__vector signed int)__a,
4552                         (__vector signed int)__b, &__cc);
4553   return __cc != 0;
4554 }
4555 
4556 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector __bool int __b)4557 vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
4558   int __cc;
4559   __builtin_s390_vceqfs((__vector signed int)__a,
4560                         (__vector signed int)__b, &__cc);
4561   return __cc != 0;
4562 }
4563 
4564 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector signed long long __b)4565 vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
4566   int __cc;
4567   __builtin_s390_vceqgs(__a, __b, &__cc);
4568   return __cc != 0;
4569 }
4570 
4571 // This prototype is deprecated.
4572 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector __bool long long __b)4573 vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
4574   int __cc;
4575   __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
4576   return __cc != 0;
4577 }
4578 
4579 // This prototype is deprecated.
4580 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector signed long long __b)4581 vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
4582   int __cc;
4583   __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
4584   return __cc != 0;
4585 }
4586 
4587 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector unsigned long long __b)4588 vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
4589   int __cc;
4590   __builtin_s390_vceqgs((__vector signed long long)__a,
4591                         (__vector signed long long)__b, &__cc);
4592   return __cc != 0;
4593 }
4594 
4595 // This prototype is deprecated.
4596 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector __bool long long __b)4597 vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
4598   int __cc;
4599   __builtin_s390_vceqgs((__vector signed long long)__a,
4600                         (__vector signed long long)__b, &__cc);
4601   return __cc != 0;
4602 }
4603 
4604 // This prototype is deprecated.
4605 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector unsigned long long __b)4606 vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
4607   int __cc;
4608   __builtin_s390_vceqgs((__vector signed long long)__a,
4609                         (__vector signed long long)__b, &__cc);
4610   return __cc != 0;
4611 }
4612 
4613 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector __bool long long __b)4614 vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
4615   int __cc;
4616   __builtin_s390_vceqgs((__vector signed long long)__a,
4617                         (__vector signed long long)__b, &__cc);
4618   return __cc != 0;
4619 }
4620 
4621 #if __ARCH__ >= 12
4622 static inline __ATTRS_o_ai int
vec_any_ne(__vector float __a,__vector float __b)4623 vec_any_ne(__vector float __a, __vector float __b) {
4624   int __cc;
4625   __builtin_s390_vfcesbs(__a, __b, &__cc);
4626   return __cc != 0;
4627 }
4628 #endif
4629 
4630 static inline __ATTRS_o_ai int
vec_any_ne(__vector double __a,__vector double __b)4631 vec_any_ne(__vector double __a, __vector double __b) {
4632   int __cc;
4633   __builtin_s390_vfcedbs(__a, __b, &__cc);
4634   return __cc != 0;
4635 }
4636 
4637 /*-- vec_any_ge -------------------------------------------------------------*/
4638 
4639 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector signed char __b)4640 vec_any_ge(__vector signed char __a, __vector signed char __b) {
4641   int __cc;
4642   __builtin_s390_vchbs(__b, __a, &__cc);
4643   return __cc != 0;
4644 }
4645 
4646 // This prototype is deprecated.
4647 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector __bool char __b)4648 vec_any_ge(__vector signed char __a, __vector __bool char __b) {
4649   int __cc;
4650   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
4651   return __cc != 0;
4652 }
4653 
4654 // This prototype is deprecated.
4655 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector signed char __b)4656 vec_any_ge(__vector __bool char __a, __vector signed char __b) {
4657   int __cc;
4658   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
4659   return __cc != 0;
4660 }
4661 
4662 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector unsigned char __b)4663 vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
4664   int __cc;
4665   __builtin_s390_vchlbs(__b, __a, &__cc);
4666   return __cc != 0;
4667 }
4668 
4669 // This prototype is deprecated.
4670 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector __bool char __b)4671 vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
4672   int __cc;
4673   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
4674   return __cc != 0;
4675 }
4676 
4677 // This prototype is deprecated.
4678 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector unsigned char __b)4679 vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
4680   int __cc;
4681   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
4682   return __cc != 0;
4683 }
4684 
4685 // This prototype is deprecated.
4686 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector __bool char __b)4687 vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
4688   int __cc;
4689   __builtin_s390_vchlbs((__vector unsigned char)__b,
4690                         (__vector unsigned char)__a, &__cc);
4691   return __cc != 0;
4692 }
4693 
4694 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector signed short __b)4695 vec_any_ge(__vector signed short __a, __vector signed short __b) {
4696   int __cc;
4697   __builtin_s390_vchhs(__b, __a, &__cc);
4698   return __cc != 0;
4699 }
4700 
4701 // This prototype is deprecated.
4702 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector __bool short __b)4703 vec_any_ge(__vector signed short __a, __vector __bool short __b) {
4704   int __cc;
4705   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
4706   return __cc != 0;
4707 }
4708 
4709 // This prototype is deprecated.
4710 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector signed short __b)4711 vec_any_ge(__vector __bool short __a, __vector signed short __b) {
4712   int __cc;
4713   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
4714   return __cc != 0;
4715 }
4716 
4717 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector unsigned short __b)4718 vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
4719   int __cc;
4720   __builtin_s390_vchlhs(__b, __a, &__cc);
4721   return __cc != 0;
4722 }
4723 
4724 // This prototype is deprecated.
4725 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector __bool short __b)4726 vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
4727   int __cc;
4728   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
4729   return __cc != 0;
4730 }
4731 
4732 // This prototype is deprecated.
4733 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector unsigned short __b)4734 vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
4735   int __cc;
4736   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
4737   return __cc != 0;
4738 }
4739 
4740 // This prototype is deprecated.
4741 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector __bool short __b)4742 vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
4743   int __cc;
4744   __builtin_s390_vchlhs((__vector unsigned short)__b,
4745                         (__vector unsigned short)__a, &__cc);
4746   return __cc != 0;
4747 }
4748 
4749 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector signed int __b)4750 vec_any_ge(__vector signed int __a, __vector signed int __b) {
4751   int __cc;
4752   __builtin_s390_vchfs(__b, __a, &__cc);
4753   return __cc != 0;
4754 }
4755 
4756 // This prototype is deprecated.
4757 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector __bool int __b)4758 vec_any_ge(__vector signed int __a, __vector __bool int __b) {
4759   int __cc;
4760   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4761   return __cc != 0;
4762 }
4763 
4764 // This prototype is deprecated.
4765 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector signed int __b)4766 vec_any_ge(__vector __bool int __a, __vector signed int __b) {
4767   int __cc;
4768   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4769   return __cc != 0;
4770 }
4771 
4772 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector unsigned int __b)4773 vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
4774   int __cc;
4775   __builtin_s390_vchlfs(__b, __a, &__cc);
4776   return __cc != 0;
4777 }
4778 
4779 // This prototype is deprecated.
4780 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector __bool int __b)4781 vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
4782   int __cc;
4783   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4784   return __cc != 0;
4785 }
4786 
4787 // This prototype is deprecated.
4788 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector unsigned int __b)4789 vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
4790   int __cc;
4791   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4792   return __cc != 0;
4793 }
4794 
4795 // This prototype is deprecated.
4796 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector __bool int __b)4797 vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
4798   int __cc;
4799   __builtin_s390_vchlfs((__vector unsigned int)__b,
4800                         (__vector unsigned int)__a, &__cc);
4801   return __cc != 0;
4802 }
4803 
4804 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector signed long long __b)4805 vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
4806   int __cc;
4807   __builtin_s390_vchgs(__b, __a, &__cc);
4808   return __cc != 0;
4809 }
4810 
4811 // This prototype is deprecated.
4812 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector __bool long long __b)4813 vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
4814   int __cc;
4815   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4816   return __cc != 0;
4817 }
4818 
4819 // This prototype is deprecated.
4820 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector signed long long __b)4821 vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
4822   int __cc;
4823   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4824   return __cc != 0;
4825 }
4826 
4827 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector unsigned long long __b)4828 vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
4829   int __cc;
4830   __builtin_s390_vchlgs(__b, __a, &__cc);
4831   return __cc != 0;
4832 }
4833 
4834 // This prototype is deprecated.
4835 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector __bool long long __b)4836 vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
4837   int __cc;
4838   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4839   return __cc != 0;
4840 }
4841 
4842 // This prototype is deprecated.
4843 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector unsigned long long __b)4844 vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
4845   int __cc;
4846   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4847   return __cc != 0;
4848 }
4849 
4850 // This prototype is deprecated.
4851 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector __bool long long __b)4852 vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
4853   int __cc;
4854   __builtin_s390_vchlgs((__vector unsigned long long)__b,
4855                         (__vector unsigned long long)__a, &__cc);
4856   return __cc != 0;
4857 }
4858 
4859 #if __ARCH__ >= 12
4860 static inline __ATTRS_o_ai int
vec_any_ge(__vector float __a,__vector float __b)4861 vec_any_ge(__vector float __a, __vector float __b) {
4862   int __cc;
4863   __builtin_s390_vfchesbs(__a, __b, &__cc);
4864   return __cc <= 1;
4865 }
4866 #endif
4867 
4868 static inline __ATTRS_o_ai int
vec_any_ge(__vector double __a,__vector double __b)4869 vec_any_ge(__vector double __a, __vector double __b) {
4870   int __cc;
4871   __builtin_s390_vfchedbs(__a, __b, &__cc);
4872   return __cc <= 1;
4873 }
4874 
4875 /*-- vec_any_gt -------------------------------------------------------------*/
4876 
4877 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector signed char __b)4878 vec_any_gt(__vector signed char __a, __vector signed char __b) {
4879   int __cc;
4880   __builtin_s390_vchbs(__a, __b, &__cc);
4881   return __cc <= 1;
4882 }
4883 
4884 // This prototype is deprecated.
4885 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector __bool char __b)4886 vec_any_gt(__vector signed char __a, __vector __bool char __b) {
4887   int __cc;
4888   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
4889   return __cc <= 1;
4890 }
4891 
4892 // This prototype is deprecated.
4893 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector signed char __b)4894 vec_any_gt(__vector __bool char __a, __vector signed char __b) {
4895   int __cc;
4896   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
4897   return __cc <= 1;
4898 }
4899 
4900 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector unsigned char __b)4901 vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
4902   int __cc;
4903   __builtin_s390_vchlbs(__a, __b, &__cc);
4904   return __cc <= 1;
4905 }
4906 
4907 // This prototype is deprecated.
4908 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector __bool char __b)4909 vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
4910   int __cc;
4911   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
4912   return __cc <= 1;
4913 }
4914 
4915 // This prototype is deprecated.
4916 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector unsigned char __b)4917 vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
4918   int __cc;
4919   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
4920   return __cc <= 1;
4921 }
4922 
4923 // This prototype is deprecated.
4924 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector __bool char __b)4925 vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
4926   int __cc;
4927   __builtin_s390_vchlbs((__vector unsigned char)__a,
4928                         (__vector unsigned char)__b, &__cc);
4929   return __cc <= 1;
4930 }
4931 
4932 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector signed short __b)4933 vec_any_gt(__vector signed short __a, __vector signed short __b) {
4934   int __cc;
4935   __builtin_s390_vchhs(__a, __b, &__cc);
4936   return __cc <= 1;
4937 }
4938 
4939 // This prototype is deprecated.
4940 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector __bool short __b)4941 vec_any_gt(__vector signed short __a, __vector __bool short __b) {
4942   int __cc;
4943   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
4944   return __cc <= 1;
4945 }
4946 
4947 // This prototype is deprecated.
4948 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector signed short __b)4949 vec_any_gt(__vector __bool short __a, __vector signed short __b) {
4950   int __cc;
4951   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
4952   return __cc <= 1;
4953 }
4954 
4955 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector unsigned short __b)4956 vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
4957   int __cc;
4958   __builtin_s390_vchlhs(__a, __b, &__cc);
4959   return __cc <= 1;
4960 }
4961 
4962 // This prototype is deprecated.
4963 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector __bool short __b)4964 vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
4965   int __cc;
4966   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
4967   return __cc <= 1;
4968 }
4969 
4970 // This prototype is deprecated.
4971 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector unsigned short __b)4972 vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
4973   int __cc;
4974   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
4975   return __cc <= 1;
4976 }
4977 
4978 // This prototype is deprecated.
4979 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector __bool short __b)4980 vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
4981   int __cc;
4982   __builtin_s390_vchlhs((__vector unsigned short)__a,
4983                         (__vector unsigned short)__b, &__cc);
4984   return __cc <= 1;
4985 }
4986 
4987 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector signed int __b)4988 vec_any_gt(__vector signed int __a, __vector signed int __b) {
4989   int __cc;
4990   __builtin_s390_vchfs(__a, __b, &__cc);
4991   return __cc <= 1;
4992 }
4993 
4994 // This prototype is deprecated.
4995 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector __bool int __b)4996 vec_any_gt(__vector signed int __a, __vector __bool int __b) {
4997   int __cc;
4998   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
4999   return __cc <= 1;
5000 }
5001 
5002 // This prototype is deprecated.
5003 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector signed int __b)5004 vec_any_gt(__vector __bool int __a, __vector signed int __b) {
5005   int __cc;
5006   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5007   return __cc <= 1;
5008 }
5009 
5010 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector unsigned int __b)5011 vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
5012   int __cc;
5013   __builtin_s390_vchlfs(__a, __b, &__cc);
5014   return __cc <= 1;
5015 }
5016 
5017 // This prototype is deprecated.
5018 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector __bool int __b)5019 vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
5020   int __cc;
5021   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5022   return __cc <= 1;
5023 }
5024 
5025 // This prototype is deprecated.
5026 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector unsigned int __b)5027 vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
5028   int __cc;
5029   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5030   return __cc <= 1;
5031 }
5032 
5033 // This prototype is deprecated.
5034 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector __bool int __b)5035 vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
5036   int __cc;
5037   __builtin_s390_vchlfs((__vector unsigned int)__a,
5038                         (__vector unsigned int)__b, &__cc);
5039   return __cc <= 1;
5040 }
5041 
5042 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector signed long long __b)5043 vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
5044   int __cc;
5045   __builtin_s390_vchgs(__a, __b, &__cc);
5046   return __cc <= 1;
5047 }
5048 
5049 // This prototype is deprecated.
5050 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector __bool long long __b)5051 vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
5052   int __cc;
5053   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5054   return __cc <= 1;
5055 }
5056 
5057 // This prototype is deprecated.
5058 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector signed long long __b)5059 vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
5060   int __cc;
5061   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5062   return __cc <= 1;
5063 }
5064 
5065 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector unsigned long long __b)5066 vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
5067   int __cc;
5068   __builtin_s390_vchlgs(__a, __b, &__cc);
5069   return __cc <= 1;
5070 }
5071 
5072 // This prototype is deprecated.
5073 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector __bool long long __b)5074 vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
5075   int __cc;
5076   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5077   return __cc <= 1;
5078 }
5079 
5080 // This prototype is deprecated.
5081 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector unsigned long long __b)5082 vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
5083   int __cc;
5084   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5085   return __cc <= 1;
5086 }
5087 
5088 // This prototype is deprecated.
5089 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector __bool long long __b)5090 vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
5091   int __cc;
5092   __builtin_s390_vchlgs((__vector unsigned long long)__a,
5093                         (__vector unsigned long long)__b, &__cc);
5094   return __cc <= 1;
5095 }
5096 
5097 #if __ARCH__ >= 12
5098 static inline __ATTRS_o_ai int
vec_any_gt(__vector float __a,__vector float __b)5099 vec_any_gt(__vector float __a, __vector float __b) {
5100   int __cc;
5101   __builtin_s390_vfchsbs(__a, __b, &__cc);
5102   return __cc <= 1;
5103 }
5104 #endif
5105 
5106 static inline __ATTRS_o_ai int
vec_any_gt(__vector double __a,__vector double __b)5107 vec_any_gt(__vector double __a, __vector double __b) {
5108   int __cc;
5109   __builtin_s390_vfchdbs(__a, __b, &__cc);
5110   return __cc <= 1;
5111 }
5112 
5113 /*-- vec_any_le -------------------------------------------------------------*/
5114 
5115 static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector signed char __b)5116 vec_any_le(__vector signed char __a, __vector signed char __b) {
5117   int __cc;
5118   __builtin_s390_vchbs(__a, __b, &__cc);
5119   return __cc != 0;
5120 }
5121 
5122 // This prototype is deprecated.
5123 static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector __bool char __b)5124 vec_any_le(__vector signed char __a, __vector __bool char __b) {
5125   int __cc;
5126   __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5127   return __cc != 0;
5128 }
5129 
5130 // This prototype is deprecated.
5131 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector signed char __b)5132 vec_any_le(__vector __bool char __a, __vector signed char __b) {
5133   int __cc;
5134   __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5135   return __cc != 0;
5136 }
5137 
5138 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector unsigned char __b)5139 vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
5140   int __cc;
5141   __builtin_s390_vchlbs(__a, __b, &__cc);
5142   return __cc != 0;
5143 }
5144 
5145 // This prototype is deprecated.
5146 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector __bool char __b)5147 vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
5148   int __cc;
5149   __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5150   return __cc != 0;
5151 }
5152 
5153 // This prototype is deprecated.
5154 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector unsigned char __b)5155 vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
5156   int __cc;
5157   __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5158   return __cc != 0;
5159 }
5160 
5161 // This prototype is deprecated.
5162 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector __bool char __b)5163 vec_any_le(__vector __bool char __a, __vector __bool char __b) {
5164   int __cc;
5165   __builtin_s390_vchlbs((__vector unsigned char)__a,
5166                         (__vector unsigned char)__b, &__cc);
5167   return __cc != 0;
5168 }
5169 
5170 static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector signed short __b)5171 vec_any_le(__vector signed short __a, __vector signed short __b) {
5172   int __cc;
5173   __builtin_s390_vchhs(__a, __b, &__cc);
5174   return __cc != 0;
5175 }
5176 
5177 // This prototype is deprecated.
5178 static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector __bool short __b)5179 vec_any_le(__vector signed short __a, __vector __bool short __b) {
5180   int __cc;
5181   __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5182   return __cc != 0;
5183 }
5184 
5185 // This prototype is deprecated.
5186 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector signed short __b)5187 vec_any_le(__vector __bool short __a, __vector signed short __b) {
5188   int __cc;
5189   __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5190   return __cc != 0;
5191 }
5192 
5193 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector unsigned short __b)5194 vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
5195   int __cc;
5196   __builtin_s390_vchlhs(__a, __b, &__cc);
5197   return __cc != 0;
5198 }
5199 
5200 // This prototype is deprecated.
5201 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector __bool short __b)5202 vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
5203   int __cc;
5204   __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5205   return __cc != 0;
5206 }
5207 
5208 // This prototype is deprecated.
5209 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector unsigned short __b)5210 vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
5211   int __cc;
5212   __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5213   return __cc != 0;
5214 }
5215 
5216 // This prototype is deprecated.
5217 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector __bool short __b)5218 vec_any_le(__vector __bool short __a, __vector __bool short __b) {
5219   int __cc;
5220   __builtin_s390_vchlhs((__vector unsigned short)__a,
5221                         (__vector unsigned short)__b, &__cc);
5222   return __cc != 0;
5223 }
5224 
5225 static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector signed int __b)5226 vec_any_le(__vector signed int __a, __vector signed int __b) {
5227   int __cc;
5228   __builtin_s390_vchfs(__a, __b, &__cc);
5229   return __cc != 0;
5230 }
5231 
5232 // This prototype is deprecated.
5233 static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector __bool int __b)5234 vec_any_le(__vector signed int __a, __vector __bool int __b) {
5235   int __cc;
5236   __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5237   return __cc != 0;
5238 }
5239 
5240 // This prototype is deprecated.
5241 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector signed int __b)5242 vec_any_le(__vector __bool int __a, __vector signed int __b) {
5243   int __cc;
5244   __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5245   return __cc != 0;
5246 }
5247 
5248 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector unsigned int __b)5249 vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
5250   int __cc;
5251   __builtin_s390_vchlfs(__a, __b, &__cc);
5252   return __cc != 0;
5253 }
5254 
5255 // This prototype is deprecated.
5256 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector __bool int __b)5257 vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
5258   int __cc;
5259   __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5260   return __cc != 0;
5261 }
5262 
5263 // This prototype is deprecated.
5264 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector unsigned int __b)5265 vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
5266   int __cc;
5267   __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5268   return __cc != 0;
5269 }
5270 
5271 // This prototype is deprecated.
5272 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector __bool int __b)5273 vec_any_le(__vector __bool int __a, __vector __bool int __b) {
5274   int __cc;
5275   __builtin_s390_vchlfs((__vector unsigned int)__a,
5276                         (__vector unsigned int)__b, &__cc);
5277   return __cc != 0;
5278 }
5279 
5280 static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector signed long long __b)5281 vec_any_le(__vector signed long long __a, __vector signed long long __b) {
5282   int __cc;
5283   __builtin_s390_vchgs(__a, __b, &__cc);
5284   return __cc != 0;
5285 }
5286 
5287 // This prototype is deprecated.
5288 static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector __bool long long __b)5289 vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
5290   int __cc;
5291   __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5292   return __cc != 0;
5293 }
5294 
5295 // This prototype is deprecated.
5296 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector signed long long __b)5297 vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
5298   int __cc;
5299   __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5300   return __cc != 0;
5301 }
5302 
5303 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector unsigned long long __b)5304 vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
5305   int __cc;
5306   __builtin_s390_vchlgs(__a, __b, &__cc);
5307   return __cc != 0;
5308 }
5309 
5310 // This prototype is deprecated.
5311 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector __bool long long __b)5312 vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
5313   int __cc;
5314   __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5315   return __cc != 0;
5316 }
5317 
5318 // This prototype is deprecated.
5319 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector unsigned long long __b)5320 vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
5321   int __cc;
5322   __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5323   return __cc != 0;
5324 }
5325 
5326 // This prototype is deprecated.
5327 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector __bool long long __b)5328 vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
5329   int __cc;
5330   __builtin_s390_vchlgs((__vector unsigned long long)__a,
5331                         (__vector unsigned long long)__b, &__cc);
5332   return __cc != 0;
5333 }
5334 
5335 #if __ARCH__ >= 12
5336 static inline __ATTRS_o_ai int
vec_any_le(__vector float __a,__vector float __b)5337 vec_any_le(__vector float __a, __vector float __b) {
5338   int __cc;
5339   __builtin_s390_vfchesbs(__b, __a, &__cc);
5340   return __cc <= 1;
5341 }
5342 #endif
5343 
5344 static inline __ATTRS_o_ai int
vec_any_le(__vector double __a,__vector double __b)5345 vec_any_le(__vector double __a, __vector double __b) {
5346   int __cc;
5347   __builtin_s390_vfchedbs(__b, __a, &__cc);
5348   return __cc <= 1;
5349 }
5350 
5351 /*-- vec_any_lt -------------------------------------------------------------*/
5352 
5353 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector signed char __b)5354 vec_any_lt(__vector signed char __a, __vector signed char __b) {
5355   int __cc;
5356   __builtin_s390_vchbs(__b, __a, &__cc);
5357   return __cc <= 1;
5358 }
5359 
5360 // This prototype is deprecated.
5361 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector __bool char __b)5362 vec_any_lt(__vector signed char __a, __vector __bool char __b) {
5363   int __cc;
5364   __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5365   return __cc <= 1;
5366 }
5367 
5368 // This prototype is deprecated.
5369 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector signed char __b)5370 vec_any_lt(__vector __bool char __a, __vector signed char __b) {
5371   int __cc;
5372   __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5373   return __cc <= 1;
5374 }
5375 
5376 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector unsigned char __b)5377 vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
5378   int __cc;
5379   __builtin_s390_vchlbs(__b, __a, &__cc);
5380   return __cc <= 1;
5381 }
5382 
5383 // This prototype is deprecated.
5384 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector __bool char __b)5385 vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
5386   int __cc;
5387   __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5388   return __cc <= 1;
5389 }
5390 
5391 // This prototype is deprecated.
5392 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector unsigned char __b)5393 vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
5394   int __cc;
5395   __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5396   return __cc <= 1;
5397 }
5398 
5399 // This prototype is deprecated.
5400 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector __bool char __b)5401 vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
5402   int __cc;
5403   __builtin_s390_vchlbs((__vector unsigned char)__b,
5404                         (__vector unsigned char)__a, &__cc);
5405   return __cc <= 1;
5406 }
5407 
5408 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector signed short __b)5409 vec_any_lt(__vector signed short __a, __vector signed short __b) {
5410   int __cc;
5411   __builtin_s390_vchhs(__b, __a, &__cc);
5412   return __cc <= 1;
5413 }
5414 
5415 // This prototype is deprecated.
5416 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector __bool short __b)5417 vec_any_lt(__vector signed short __a, __vector __bool short __b) {
5418   int __cc;
5419   __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
5420   return __cc <= 1;
5421 }
5422 
5423 // This prototype is deprecated.
5424 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector signed short __b)5425 vec_any_lt(__vector __bool short __a, __vector signed short __b) {
5426   int __cc;
5427   __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
5428   return __cc <= 1;
5429 }
5430 
5431 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector unsigned short __b)5432 vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
5433   int __cc;
5434   __builtin_s390_vchlhs(__b, __a, &__cc);
5435   return __cc <= 1;
5436 }
5437 
5438 // This prototype is deprecated.
5439 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector __bool short __b)5440 vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
5441   int __cc;
5442   __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
5443   return __cc <= 1;
5444 }
5445 
5446 // This prototype is deprecated.
5447 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector unsigned short __b)5448 vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
5449   int __cc;
5450   __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
5451   return __cc <= 1;
5452 }
5453 
5454 // This prototype is deprecated.
5455 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector __bool short __b)5456 vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
5457   int __cc;
5458   __builtin_s390_vchlhs((__vector unsigned short)__b,
5459                         (__vector unsigned short)__a, &__cc);
5460   return __cc <= 1;
5461 }
5462 
5463 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector signed int __b)5464 vec_any_lt(__vector signed int __a, __vector signed int __b) {
5465   int __cc;
5466   __builtin_s390_vchfs(__b, __a, &__cc);
5467   return __cc <= 1;
5468 }
5469 
5470 // This prototype is deprecated.
5471 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector __bool int __b)5472 vec_any_lt(__vector signed int __a, __vector __bool int __b) {
5473   int __cc;
5474   __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
5475   return __cc <= 1;
5476 }
5477 
5478 // This prototype is deprecated.
5479 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector signed int __b)5480 vec_any_lt(__vector __bool int __a, __vector signed int __b) {
5481   int __cc;
5482   __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
5483   return __cc <= 1;
5484 }
5485 
5486 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector unsigned int __b)5487 vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
5488   int __cc;
5489   __builtin_s390_vchlfs(__b, __a, &__cc);
5490   return __cc <= 1;
5491 }
5492 
5493 // This prototype is deprecated.
5494 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector __bool int __b)5495 vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
5496   int __cc;
5497   __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
5498   return __cc <= 1;
5499 }
5500 
5501 // This prototype is deprecated.
5502 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector unsigned int __b)5503 vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
5504   int __cc;
5505   __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
5506   return __cc <= 1;
5507 }
5508 
5509 // This prototype is deprecated.
5510 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector __bool int __b)5511 vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
5512   int __cc;
5513   __builtin_s390_vchlfs((__vector unsigned int)__b,
5514                         (__vector unsigned int)__a, &__cc);
5515   return __cc <= 1;
5516 }
5517 
5518 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector signed long long __b)5519 vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
5520   int __cc;
5521   __builtin_s390_vchgs(__b, __a, &__cc);
5522   return __cc <= 1;
5523 }
5524 
5525 // This prototype is deprecated.
5526 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector __bool long long __b)5527 vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
5528   int __cc;
5529   __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
5530   return __cc <= 1;
5531 }
5532 
5533 // This prototype is deprecated.
5534 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector signed long long __b)5535 vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
5536   int __cc;
5537   __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
5538   return __cc <= 1;
5539 }
5540 
5541 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector unsigned long long __b)5542 vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
5543   int __cc;
5544   __builtin_s390_vchlgs(__b, __a, &__cc);
5545   return __cc <= 1;
5546 }
5547 
5548 // This prototype is deprecated.
5549 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector __bool long long __b)5550 vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
5551   int __cc;
5552   __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
5553   return __cc <= 1;
5554 }
5555 
5556 // This prototype is deprecated.
5557 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector unsigned long long __b)5558 vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
5559   int __cc;
5560   __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
5561   return __cc <= 1;
5562 }
5563 
5564 // This prototype is deprecated.
5565 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector __bool long long __b)5566 vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
5567   int __cc;
5568   __builtin_s390_vchlgs((__vector unsigned long long)__b,
5569                         (__vector unsigned long long)__a, &__cc);
5570   return __cc <= 1;
5571 }
5572 
5573 #if __ARCH__ >= 12
5574 static inline __ATTRS_o_ai int
vec_any_lt(__vector float __a,__vector float __b)5575 vec_any_lt(__vector float __a, __vector float __b) {
5576   int __cc;
5577   __builtin_s390_vfchsbs(__b, __a, &__cc);
5578   return __cc <= 1;
5579 }
5580 #endif
5581 
5582 static inline __ATTRS_o_ai int
vec_any_lt(__vector double __a,__vector double __b)5583 vec_any_lt(__vector double __a, __vector double __b) {
5584   int __cc;
5585   __builtin_s390_vfchdbs(__b, __a, &__cc);
5586   return __cc <= 1;
5587 }
5588 
5589 /*-- vec_any_nge ------------------------------------------------------------*/
5590 
5591 #if __ARCH__ >= 12
5592 static inline __ATTRS_o_ai int
vec_any_nge(__vector float __a,__vector float __b)5593 vec_any_nge(__vector float __a, __vector float __b) {
5594   int __cc;
5595   __builtin_s390_vfchesbs(__a, __b, &__cc);
5596   return __cc != 0;
5597 }
5598 #endif
5599 
5600 static inline __ATTRS_o_ai int
vec_any_nge(__vector double __a,__vector double __b)5601 vec_any_nge(__vector double __a, __vector double __b) {
5602   int __cc;
5603   __builtin_s390_vfchedbs(__a, __b, &__cc);
5604   return __cc != 0;
5605 }
5606 
5607 /*-- vec_any_ngt ------------------------------------------------------------*/
5608 
5609 #if __ARCH__ >= 12
5610 static inline __ATTRS_o_ai int
vec_any_ngt(__vector float __a,__vector float __b)5611 vec_any_ngt(__vector float __a, __vector float __b) {
5612   int __cc;
5613   __builtin_s390_vfchsbs(__a, __b, &__cc);
5614   return __cc != 0;
5615 }
5616 #endif
5617 
5618 static inline __ATTRS_o_ai int
vec_any_ngt(__vector double __a,__vector double __b)5619 vec_any_ngt(__vector double __a, __vector double __b) {
5620   int __cc;
5621   __builtin_s390_vfchdbs(__a, __b, &__cc);
5622   return __cc != 0;
5623 }
5624 
5625 /*-- vec_any_nle ------------------------------------------------------------*/
5626 
5627 #if __ARCH__ >= 12
5628 static inline __ATTRS_o_ai int
vec_any_nle(__vector float __a,__vector float __b)5629 vec_any_nle(__vector float __a, __vector float __b) {
5630   int __cc;
5631   __builtin_s390_vfchesbs(__b, __a, &__cc);
5632   return __cc != 0;
5633 }
5634 #endif
5635 
5636 static inline __ATTRS_o_ai int
vec_any_nle(__vector double __a,__vector double __b)5637 vec_any_nle(__vector double __a, __vector double __b) {
5638   int __cc;
5639   __builtin_s390_vfchedbs(__b, __a, &__cc);
5640   return __cc != 0;
5641 }
5642 
5643 /*-- vec_any_nlt ------------------------------------------------------------*/
5644 
5645 #if __ARCH__ >= 12
5646 static inline __ATTRS_o_ai int
vec_any_nlt(__vector float __a,__vector float __b)5647 vec_any_nlt(__vector float __a, __vector float __b) {
5648   int __cc;
5649   __builtin_s390_vfchsbs(__b, __a, &__cc);
5650   return __cc != 0;
5651 }
5652 #endif
5653 
5654 static inline __ATTRS_o_ai int
vec_any_nlt(__vector double __a,__vector double __b)5655 vec_any_nlt(__vector double __a, __vector double __b) {
5656   int __cc;
5657   __builtin_s390_vfchdbs(__b, __a, &__cc);
5658   return __cc != 0;
5659 }
5660 
5661 /*-- vec_any_nan ------------------------------------------------------------*/
5662 
5663 #if __ARCH__ >= 12
5664 static inline __ATTRS_o_ai int
vec_any_nan(__vector float __a)5665 vec_any_nan(__vector float __a) {
5666   int __cc;
5667   __builtin_s390_vftcisb(__a, 15, &__cc);
5668   return __cc != 3;
5669 }
5670 #endif
5671 
5672 static inline __ATTRS_o_ai int
vec_any_nan(__vector double __a)5673 vec_any_nan(__vector double __a) {
5674   int __cc;
5675   __builtin_s390_vftcidb(__a, 15, &__cc);
5676   return __cc != 3;
5677 }
5678 
5679 /*-- vec_any_numeric --------------------------------------------------------*/
5680 
5681 #if __ARCH__ >= 12
5682 static inline __ATTRS_o_ai int
vec_any_numeric(__vector float __a)5683 vec_any_numeric(__vector float __a) {
5684   int __cc;
5685   __builtin_s390_vftcisb(__a, 15, &__cc);
5686   return __cc != 0;
5687 }
5688 #endif
5689 
5690 static inline __ATTRS_o_ai int
vec_any_numeric(__vector double __a)5691 vec_any_numeric(__vector double __a) {
5692   int __cc;
5693   __builtin_s390_vftcidb(__a, 15, &__cc);
5694   return __cc != 0;
5695 }
5696 
5697 /*-- vec_andc ---------------------------------------------------------------*/
5698 
5699 static inline __ATTRS_o_ai __vector __bool char
vec_andc(__vector __bool char __a,__vector __bool char __b)5700 vec_andc(__vector __bool char __a, __vector __bool char __b) {
5701   return __a & ~__b;
5702 }
5703 
5704 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector signed char __b)5705 vec_andc(__vector signed char __a, __vector signed char __b) {
5706   return __a & ~__b;
5707 }
5708 
5709 // This prototype is deprecated.
5710 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector __bool char __a,__vector signed char __b)5711 vec_andc(__vector __bool char __a, __vector signed char __b) {
5712   return __a & ~__b;
5713 }
5714 
5715 // This prototype is deprecated.
5716 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector __bool char __b)5717 vec_andc(__vector signed char __a, __vector __bool char __b) {
5718   return __a & ~__b;
5719 }
5720 
5721 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector unsigned char __b)5722 vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
5723   return __a & ~__b;
5724 }
5725 
5726 // This prototype is deprecated.
5727 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector __bool char __a,__vector unsigned char __b)5728 vec_andc(__vector __bool char __a, __vector unsigned char __b) {
5729   return __a & ~__b;
5730 }
5731 
5732 // This prototype is deprecated.
5733 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector __bool char __b)5734 vec_andc(__vector unsigned char __a, __vector __bool char __b) {
5735   return __a & ~__b;
5736 }
5737 
5738 static inline __ATTRS_o_ai __vector __bool short
vec_andc(__vector __bool short __a,__vector __bool short __b)5739 vec_andc(__vector __bool short __a, __vector __bool short __b) {
5740   return __a & ~__b;
5741 }
5742 
5743 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector signed short __b)5744 vec_andc(__vector signed short __a, __vector signed short __b) {
5745   return __a & ~__b;
5746 }
5747 
5748 // This prototype is deprecated.
5749 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector __bool short __a,__vector signed short __b)5750 vec_andc(__vector __bool short __a, __vector signed short __b) {
5751   return __a & ~__b;
5752 }
5753 
5754 // This prototype is deprecated.
5755 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector __bool short __b)5756 vec_andc(__vector signed short __a, __vector __bool short __b) {
5757   return __a & ~__b;
5758 }
5759 
5760 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector unsigned short __b)5761 vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
5762   return __a & ~__b;
5763 }
5764 
5765 // This prototype is deprecated.
5766 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector __bool short __a,__vector unsigned short __b)5767 vec_andc(__vector __bool short __a, __vector unsigned short __b) {
5768   return __a & ~__b;
5769 }
5770 
5771 // This prototype is deprecated.
5772 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector __bool short __b)5773 vec_andc(__vector unsigned short __a, __vector __bool short __b) {
5774   return __a & ~__b;
5775 }
5776 
5777 static inline __ATTRS_o_ai __vector __bool int
vec_andc(__vector __bool int __a,__vector __bool int __b)5778 vec_andc(__vector __bool int __a, __vector __bool int __b) {
5779   return __a & ~__b;
5780 }
5781 
5782 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector signed int __b)5783 vec_andc(__vector signed int __a, __vector signed int __b) {
5784   return __a & ~__b;
5785 }
5786 
5787 // This prototype is deprecated.
5788 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector __bool int __a,__vector signed int __b)5789 vec_andc(__vector __bool int __a, __vector signed int __b) {
5790   return __a & ~__b;
5791 }
5792 
5793 // This prototype is deprecated.
5794 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector __bool int __b)5795 vec_andc(__vector signed int __a, __vector __bool int __b) {
5796   return __a & ~__b;
5797 }
5798 
5799 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector unsigned int __b)5800 vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
5801   return __a & ~__b;
5802 }
5803 
5804 // This prototype is deprecated.
5805 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector __bool int __a,__vector unsigned int __b)5806 vec_andc(__vector __bool int __a, __vector unsigned int __b) {
5807   return __a & ~__b;
5808 }
5809 
5810 // This prototype is deprecated.
5811 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector __bool int __b)5812 vec_andc(__vector unsigned int __a, __vector __bool int __b) {
5813   return __a & ~__b;
5814 }
5815 
5816 static inline __ATTRS_o_ai __vector __bool long long
vec_andc(__vector __bool long long __a,__vector __bool long long __b)5817 vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
5818   return __a & ~__b;
5819 }
5820 
5821 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector signed long long __b)5822 vec_andc(__vector signed long long __a, __vector signed long long __b) {
5823   return __a & ~__b;
5824 }
5825 
5826 // This prototype is deprecated.
5827 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector __bool long long __a,__vector signed long long __b)5828 vec_andc(__vector __bool long long __a, __vector signed long long __b) {
5829   return __a & ~__b;
5830 }
5831 
5832 // This prototype is deprecated.
5833 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector __bool long long __b)5834 vec_andc(__vector signed long long __a, __vector __bool long long __b) {
5835   return __a & ~__b;
5836 }
5837 
5838 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector unsigned long long __b)5839 vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
5840   return __a & ~__b;
5841 }
5842 
5843 // This prototype is deprecated.
5844 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector __bool long long __a,__vector unsigned long long __b)5845 vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
5846   return __a & ~__b;
5847 }
5848 
5849 // This prototype is deprecated.
5850 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector __bool long long __b)5851 vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
5852   return __a & ~__b;
5853 }
5854 
5855 #if __ARCH__ >= 12
5856 static inline __ATTRS_o_ai __vector float
vec_andc(__vector float __a,__vector float __b)5857 vec_andc(__vector float __a, __vector float __b) {
5858   return (__vector float)((__vector unsigned int)__a &
5859                          ~(__vector unsigned int)__b);
5860 }
5861 #endif
5862 
5863 static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector double __b)5864 vec_andc(__vector double __a, __vector double __b) {
5865   return (__vector double)((__vector unsigned long long)__a &
5866                          ~(__vector unsigned long long)__b);
5867 }
5868 
5869 // This prototype is deprecated.
5870 static inline __ATTRS_o_ai __vector double
vec_andc(__vector __bool long long __a,__vector double __b)5871 vec_andc(__vector __bool long long __a, __vector double __b) {
5872   return (__vector double)((__vector unsigned long long)__a &
5873                          ~(__vector unsigned long long)__b);
5874 }
5875 
5876 // This prototype is deprecated.
5877 static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector __bool long long __b)5878 vec_andc(__vector double __a, __vector __bool long long __b) {
5879   return (__vector double)((__vector unsigned long long)__a &
5880                          ~(__vector unsigned long long)__b);
5881 }
5882 
5883 /*-- vec_nor ----------------------------------------------------------------*/
5884 
5885 static inline __ATTRS_o_ai __vector __bool char
vec_nor(__vector __bool char __a,__vector __bool char __b)5886 vec_nor(__vector __bool char __a, __vector __bool char __b) {
5887   return ~(__a | __b);
5888 }
5889 
5890 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector signed char __b)5891 vec_nor(__vector signed char __a, __vector signed char __b) {
5892   return ~(__a | __b);
5893 }
5894 
5895 // This prototype is deprecated.
5896 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector __bool char __a,__vector signed char __b)5897 vec_nor(__vector __bool char __a, __vector signed char __b) {
5898   return ~(__a | __b);
5899 }
5900 
5901 // This prototype is deprecated.
5902 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector __bool char __b)5903 vec_nor(__vector signed char __a, __vector __bool char __b) {
5904   return ~(__a | __b);
5905 }
5906 
5907 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector unsigned char __b)5908 vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
5909   return ~(__a | __b);
5910 }
5911 
5912 // This prototype is deprecated.
5913 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector __bool char __a,__vector unsigned char __b)5914 vec_nor(__vector __bool char __a, __vector unsigned char __b) {
5915   return ~(__a | __b);
5916 }
5917 
5918 // This prototype is deprecated.
5919 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector __bool char __b)5920 vec_nor(__vector unsigned char __a, __vector __bool char __b) {
5921   return ~(__a | __b);
5922 }
5923 
5924 static inline __ATTRS_o_ai __vector __bool short
vec_nor(__vector __bool short __a,__vector __bool short __b)5925 vec_nor(__vector __bool short __a, __vector __bool short __b) {
5926   return ~(__a | __b);
5927 }
5928 
5929 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector signed short __b)5930 vec_nor(__vector signed short __a, __vector signed short __b) {
5931   return ~(__a | __b);
5932 }
5933 
5934 // This prototype is deprecated.
5935 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector __bool short __a,__vector signed short __b)5936 vec_nor(__vector __bool short __a, __vector signed short __b) {
5937   return ~(__a | __b);
5938 }
5939 
5940 // This prototype is deprecated.
5941 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector __bool short __b)5942 vec_nor(__vector signed short __a, __vector __bool short __b) {
5943   return ~(__a | __b);
5944 }
5945 
5946 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector unsigned short __b)5947 vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
5948   return ~(__a | __b);
5949 }
5950 
5951 // This prototype is deprecated.
5952 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector __bool short __a,__vector unsigned short __b)5953 vec_nor(__vector __bool short __a, __vector unsigned short __b) {
5954   return ~(__a | __b);
5955 }
5956 
5957 // This prototype is deprecated.
5958 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector __bool short __b)5959 vec_nor(__vector unsigned short __a, __vector __bool short __b) {
5960   return ~(__a | __b);
5961 }
5962 
5963 static inline __ATTRS_o_ai __vector __bool int
vec_nor(__vector __bool int __a,__vector __bool int __b)5964 vec_nor(__vector __bool int __a, __vector __bool int __b) {
5965   return ~(__a | __b);
5966 }
5967 
5968 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector signed int __b)5969 vec_nor(__vector signed int __a, __vector signed int __b) {
5970   return ~(__a | __b);
5971 }
5972 
5973 // This prototype is deprecated.
5974 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector __bool int __a,__vector signed int __b)5975 vec_nor(__vector __bool int __a, __vector signed int __b) {
5976   return ~(__a | __b);
5977 }
5978 
5979 // This prototype is deprecated.
5980 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector __bool int __b)5981 vec_nor(__vector signed int __a, __vector __bool int __b) {
5982   return ~(__a | __b);
5983 }
5984 
5985 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector unsigned int __b)5986 vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
5987   return ~(__a | __b);
5988 }
5989 
5990 // This prototype is deprecated.
5991 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector __bool int __a,__vector unsigned int __b)5992 vec_nor(__vector __bool int __a, __vector unsigned int __b) {
5993   return ~(__a | __b);
5994 }
5995 
5996 // This prototype is deprecated.
5997 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector __bool int __b)5998 vec_nor(__vector unsigned int __a, __vector __bool int __b) {
5999   return ~(__a | __b);
6000 }
6001 
6002 static inline __ATTRS_o_ai __vector __bool long long
vec_nor(__vector __bool long long __a,__vector __bool long long __b)6003 vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
6004   return ~(__a | __b);
6005 }
6006 
6007 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector signed long long __b)6008 vec_nor(__vector signed long long __a, __vector signed long long __b) {
6009   return ~(__a | __b);
6010 }
6011 
6012 // This prototype is deprecated.
6013 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector __bool long long __a,__vector signed long long __b)6014 vec_nor(__vector __bool long long __a, __vector signed long long __b) {
6015   return ~(__a | __b);
6016 }
6017 
6018 // This prototype is deprecated.
6019 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector __bool long long __b)6020 vec_nor(__vector signed long long __a, __vector __bool long long __b) {
6021   return ~(__a | __b);
6022 }
6023 
6024 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector unsigned long long __b)6025 vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
6026   return ~(__a | __b);
6027 }
6028 
6029 // This prototype is deprecated.
6030 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector __bool long long __a,__vector unsigned long long __b)6031 vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
6032   return ~(__a | __b);
6033 }
6034 
6035 // This prototype is deprecated.
6036 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector __bool long long __b)6037 vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
6038   return ~(__a | __b);
6039 }
6040 
6041 #if __ARCH__ >= 12
6042 static inline __ATTRS_o_ai __vector float
vec_nor(__vector float __a,__vector float __b)6043 vec_nor(__vector float __a, __vector float __b) {
6044   return (__vector float)~((__vector unsigned int)__a |
6045                          (__vector unsigned int)__b);
6046 }
6047 #endif
6048 
6049 static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector double __b)6050 vec_nor(__vector double __a, __vector double __b) {
6051   return (__vector double)~((__vector unsigned long long)__a |
6052                           (__vector unsigned long long)__b);
6053 }
6054 
6055 // This prototype is deprecated.
6056 static inline __ATTRS_o_ai __vector double
vec_nor(__vector __bool long long __a,__vector double __b)6057 vec_nor(__vector __bool long long __a, __vector double __b) {
6058   return (__vector double)~((__vector unsigned long long)__a |
6059                           (__vector unsigned long long)__b);
6060 }
6061 
6062 // This prototype is deprecated.
6063 static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector __bool long long __b)6064 vec_nor(__vector double __a, __vector __bool long long __b) {
6065   return (__vector double)~((__vector unsigned long long)__a |
6066                           (__vector unsigned long long)__b);
6067 }
6068 
6069 /*-- vec_orc ----------------------------------------------------------------*/
6070 
6071 #if __ARCH__ >= 12
6072 static inline __ATTRS_o_ai __vector __bool char
vec_orc(__vector __bool char __a,__vector __bool char __b)6073 vec_orc(__vector __bool char __a, __vector __bool char __b) {
6074   return __a | ~__b;
6075 }
6076 
6077 static inline __ATTRS_o_ai __vector signed char
vec_orc(__vector signed char __a,__vector signed char __b)6078 vec_orc(__vector signed char __a, __vector signed char __b) {
6079   return __a | ~__b;
6080 }
6081 
6082 static inline __ATTRS_o_ai __vector unsigned char
vec_orc(__vector unsigned char __a,__vector unsigned char __b)6083 vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
6084   return __a | ~__b;
6085 }
6086 
6087 static inline __ATTRS_o_ai __vector __bool short
vec_orc(__vector __bool short __a,__vector __bool short __b)6088 vec_orc(__vector __bool short __a, __vector __bool short __b) {
6089   return __a | ~__b;
6090 }
6091 
6092 static inline __ATTRS_o_ai __vector signed short
vec_orc(__vector signed short __a,__vector signed short __b)6093 vec_orc(__vector signed short __a, __vector signed short __b) {
6094   return __a | ~__b;
6095 }
6096 
6097 static inline __ATTRS_o_ai __vector unsigned short
vec_orc(__vector unsigned short __a,__vector unsigned short __b)6098 vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
6099   return __a | ~__b;
6100 }
6101 
6102 static inline __ATTRS_o_ai __vector __bool int
vec_orc(__vector __bool int __a,__vector __bool int __b)6103 vec_orc(__vector __bool int __a, __vector __bool int __b) {
6104   return __a | ~__b;
6105 }
6106 
6107 static inline __ATTRS_o_ai __vector signed int
vec_orc(__vector signed int __a,__vector signed int __b)6108 vec_orc(__vector signed int __a, __vector signed int __b) {
6109   return __a | ~__b;
6110 }
6111 
6112 static inline __ATTRS_o_ai __vector unsigned int
vec_orc(__vector unsigned int __a,__vector unsigned int __b)6113 vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
6114   return __a | ~__b;
6115 }
6116 
6117 static inline __ATTRS_o_ai __vector __bool long long
vec_orc(__vector __bool long long __a,__vector __bool long long __b)6118 vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
6119   return __a | ~__b;
6120 }
6121 
6122 static inline __ATTRS_o_ai __vector signed long long
vec_orc(__vector signed long long __a,__vector signed long long __b)6123 vec_orc(__vector signed long long __a, __vector signed long long __b) {
6124   return __a | ~__b;
6125 }
6126 
6127 static inline __ATTRS_o_ai __vector unsigned long long
vec_orc(__vector unsigned long long __a,__vector unsigned long long __b)6128 vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
6129   return __a | ~__b;
6130 }
6131 
6132 static inline __ATTRS_o_ai __vector float
vec_orc(__vector float __a,__vector float __b)6133 vec_orc(__vector float __a, __vector float __b) {
6134   return (__vector float)((__vector unsigned int)__a |
6135                         ~(__vector unsigned int)__b);
6136 }
6137 
6138 static inline __ATTRS_o_ai __vector double
vec_orc(__vector double __a,__vector double __b)6139 vec_orc(__vector double __a, __vector double __b) {
6140   return (__vector double)((__vector unsigned long long)__a |
6141                          ~(__vector unsigned long long)__b);
6142 }
6143 #endif
6144 
6145 /*-- vec_nand ---------------------------------------------------------------*/
6146 
6147 #if __ARCH__ >= 12
6148 static inline __ATTRS_o_ai __vector __bool char
vec_nand(__vector __bool char __a,__vector __bool char __b)6149 vec_nand(__vector __bool char __a, __vector __bool char __b) {
6150   return ~(__a & __b);
6151 }
6152 
6153 static inline __ATTRS_o_ai __vector signed char
vec_nand(__vector signed char __a,__vector signed char __b)6154 vec_nand(__vector signed char __a, __vector signed char __b) {
6155   return ~(__a & __b);
6156 }
6157 
6158 static inline __ATTRS_o_ai __vector unsigned char
vec_nand(__vector unsigned char __a,__vector unsigned char __b)6159 vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
6160   return ~(__a & __b);
6161 }
6162 
6163 static inline __ATTRS_o_ai __vector __bool short
vec_nand(__vector __bool short __a,__vector __bool short __b)6164 vec_nand(__vector __bool short __a, __vector __bool short __b) {
6165   return ~(__a & __b);
6166 }
6167 
6168 static inline __ATTRS_o_ai __vector signed short
vec_nand(__vector signed short __a,__vector signed short __b)6169 vec_nand(__vector signed short __a, __vector signed short __b) {
6170   return ~(__a & __b);
6171 }
6172 
6173 static inline __ATTRS_o_ai __vector unsigned short
vec_nand(__vector unsigned short __a,__vector unsigned short __b)6174 vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
6175   return ~(__a & __b);
6176 }
6177 
6178 static inline __ATTRS_o_ai __vector __bool int
vec_nand(__vector __bool int __a,__vector __bool int __b)6179 vec_nand(__vector __bool int __a, __vector __bool int __b) {
6180   return ~(__a & __b);
6181 }
6182 
6183 static inline __ATTRS_o_ai __vector signed int
vec_nand(__vector signed int __a,__vector signed int __b)6184 vec_nand(__vector signed int __a, __vector signed int __b) {
6185   return ~(__a & __b);
6186 }
6187 
6188 static inline __ATTRS_o_ai __vector unsigned int
vec_nand(__vector unsigned int __a,__vector unsigned int __b)6189 vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
6190   return ~(__a & __b);
6191 }
6192 
6193 static inline __ATTRS_o_ai __vector __bool long long
vec_nand(__vector __bool long long __a,__vector __bool long long __b)6194 vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
6195   return ~(__a & __b);
6196 }
6197 
6198 static inline __ATTRS_o_ai __vector signed long long
vec_nand(__vector signed long long __a,__vector signed long long __b)6199 vec_nand(__vector signed long long __a, __vector signed long long __b) {
6200   return ~(__a & __b);
6201 }
6202 
6203 static inline __ATTRS_o_ai __vector unsigned long long
vec_nand(__vector unsigned long long __a,__vector unsigned long long __b)6204 vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
6205   return ~(__a & __b);
6206 }
6207 
6208 static inline __ATTRS_o_ai __vector float
vec_nand(__vector float __a,__vector float __b)6209 vec_nand(__vector float __a, __vector float __b) {
6210   return (__vector float)~((__vector unsigned int)__a &
6211                          (__vector unsigned int)__b);
6212 }
6213 
6214 static inline __ATTRS_o_ai __vector double
vec_nand(__vector double __a,__vector double __b)6215 vec_nand(__vector double __a, __vector double __b) {
6216   return (__vector double)~((__vector unsigned long long)__a &
6217                           (__vector unsigned long long)__b);
6218 }
6219 #endif
6220 
6221 /*-- vec_eqv ----------------------------------------------------------------*/
6222 
6223 #if __ARCH__ >= 12
6224 static inline __ATTRS_o_ai __vector __bool char
vec_eqv(__vector __bool char __a,__vector __bool char __b)6225 vec_eqv(__vector __bool char __a, __vector __bool char __b) {
6226   return ~(__a ^ __b);
6227 }
6228 
6229 static inline __ATTRS_o_ai __vector signed char
vec_eqv(__vector signed char __a,__vector signed char __b)6230 vec_eqv(__vector signed char __a, __vector signed char __b) {
6231   return ~(__a ^ __b);
6232 }
6233 
6234 static inline __ATTRS_o_ai __vector unsigned char
vec_eqv(__vector unsigned char __a,__vector unsigned char __b)6235 vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
6236   return ~(__a ^ __b);
6237 }
6238 
6239 static inline __ATTRS_o_ai __vector __bool short
vec_eqv(__vector __bool short __a,__vector __bool short __b)6240 vec_eqv(__vector __bool short __a, __vector __bool short __b) {
6241   return ~(__a ^ __b);
6242 }
6243 
6244 static inline __ATTRS_o_ai __vector signed short
vec_eqv(__vector signed short __a,__vector signed short __b)6245 vec_eqv(__vector signed short __a, __vector signed short __b) {
6246   return ~(__a ^ __b);
6247 }
6248 
6249 static inline __ATTRS_o_ai __vector unsigned short
vec_eqv(__vector unsigned short __a,__vector unsigned short __b)6250 vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
6251   return ~(__a ^ __b);
6252 }
6253 
6254 static inline __ATTRS_o_ai __vector __bool int
vec_eqv(__vector __bool int __a,__vector __bool int __b)6255 vec_eqv(__vector __bool int __a, __vector __bool int __b) {
6256   return ~(__a ^ __b);
6257 }
6258 
6259 static inline __ATTRS_o_ai __vector signed int
vec_eqv(__vector signed int __a,__vector signed int __b)6260 vec_eqv(__vector signed int __a, __vector signed int __b) {
6261   return ~(__a ^ __b);
6262 }
6263 
6264 static inline __ATTRS_o_ai __vector unsigned int
vec_eqv(__vector unsigned int __a,__vector unsigned int __b)6265 vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
6266   return ~(__a ^ __b);
6267 }
6268 
6269 static inline __ATTRS_o_ai __vector __bool long long
vec_eqv(__vector __bool long long __a,__vector __bool long long __b)6270 vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
6271   return ~(__a ^ __b);
6272 }
6273 
6274 static inline __ATTRS_o_ai __vector signed long long
vec_eqv(__vector signed long long __a,__vector signed long long __b)6275 vec_eqv(__vector signed long long __a, __vector signed long long __b) {
6276   return ~(__a ^ __b);
6277 }
6278 
6279 static inline __ATTRS_o_ai __vector unsigned long long
vec_eqv(__vector unsigned long long __a,__vector unsigned long long __b)6280 vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
6281   return ~(__a ^ __b);
6282 }
6283 
6284 static inline __ATTRS_o_ai __vector float
vec_eqv(__vector float __a,__vector float __b)6285 vec_eqv(__vector float __a, __vector float __b) {
6286   return (__vector float)~((__vector unsigned int)__a ^
6287                          (__vector unsigned int)__b);
6288 }
6289 
6290 static inline __ATTRS_o_ai __vector double
vec_eqv(__vector double __a,__vector double __b)6291 vec_eqv(__vector double __a, __vector double __b) {
6292   return (__vector double)~((__vector unsigned long long)__a ^
6293                           (__vector unsigned long long)__b);
6294 }
6295 #endif
6296 
6297 /*-- vec_cntlz --------------------------------------------------------------*/
6298 
6299 static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector signed char __a)6300 vec_cntlz(__vector signed char __a) {
6301   return __builtin_s390_vclzb((__vector unsigned char)__a);
6302 }
6303 
6304 static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector unsigned char __a)6305 vec_cntlz(__vector unsigned char __a) {
6306   return __builtin_s390_vclzb(__a);
6307 }
6308 
6309 static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector signed short __a)6310 vec_cntlz(__vector signed short __a) {
6311   return __builtin_s390_vclzh((__vector unsigned short)__a);
6312 }
6313 
6314 static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector unsigned short __a)6315 vec_cntlz(__vector unsigned short __a) {
6316   return __builtin_s390_vclzh(__a);
6317 }
6318 
6319 static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector signed int __a)6320 vec_cntlz(__vector signed int __a) {
6321   return __builtin_s390_vclzf((__vector unsigned int)__a);
6322 }
6323 
6324 static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector unsigned int __a)6325 vec_cntlz(__vector unsigned int __a) {
6326   return __builtin_s390_vclzf(__a);
6327 }
6328 
6329 static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector signed long long __a)6330 vec_cntlz(__vector signed long long __a) {
6331   return __builtin_s390_vclzg((__vector unsigned long long)__a);
6332 }
6333 
6334 static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector unsigned long long __a)6335 vec_cntlz(__vector unsigned long long __a) {
6336   return __builtin_s390_vclzg(__a);
6337 }
6338 
6339 /*-- vec_cnttz --------------------------------------------------------------*/
6340 
6341 static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector signed char __a)6342 vec_cnttz(__vector signed char __a) {
6343   return __builtin_s390_vctzb((__vector unsigned char)__a);
6344 }
6345 
6346 static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector unsigned char __a)6347 vec_cnttz(__vector unsigned char __a) {
6348   return __builtin_s390_vctzb(__a);
6349 }
6350 
6351 static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector signed short __a)6352 vec_cnttz(__vector signed short __a) {
6353   return __builtin_s390_vctzh((__vector unsigned short)__a);
6354 }
6355 
6356 static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector unsigned short __a)6357 vec_cnttz(__vector unsigned short __a) {
6358   return __builtin_s390_vctzh(__a);
6359 }
6360 
6361 static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector signed int __a)6362 vec_cnttz(__vector signed int __a) {
6363   return __builtin_s390_vctzf((__vector unsigned int)__a);
6364 }
6365 
6366 static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector unsigned int __a)6367 vec_cnttz(__vector unsigned int __a) {
6368   return __builtin_s390_vctzf(__a);
6369 }
6370 
6371 static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector signed long long __a)6372 vec_cnttz(__vector signed long long __a) {
6373   return __builtin_s390_vctzg((__vector unsigned long long)__a);
6374 }
6375 
6376 static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector unsigned long long __a)6377 vec_cnttz(__vector unsigned long long __a) {
6378   return __builtin_s390_vctzg(__a);
6379 }
6380 
6381 /*-- vec_popcnt -------------------------------------------------------------*/
6382 
6383 static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector signed char __a)6384 vec_popcnt(__vector signed char __a) {
6385   return __builtin_s390_vpopctb((__vector unsigned char)__a);
6386 }
6387 
6388 static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector unsigned char __a)6389 vec_popcnt(__vector unsigned char __a) {
6390   return __builtin_s390_vpopctb(__a);
6391 }
6392 
6393 static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector signed short __a)6394 vec_popcnt(__vector signed short __a) {
6395   return __builtin_s390_vpopcth((__vector unsigned short)__a);
6396 }
6397 
6398 static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector unsigned short __a)6399 vec_popcnt(__vector unsigned short __a) {
6400   return __builtin_s390_vpopcth(__a);
6401 }
6402 
6403 static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector signed int __a)6404 vec_popcnt(__vector signed int __a) {
6405   return __builtin_s390_vpopctf((__vector unsigned int)__a);
6406 }
6407 
6408 static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector unsigned int __a)6409 vec_popcnt(__vector unsigned int __a) {
6410   return __builtin_s390_vpopctf(__a);
6411 }
6412 
6413 static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector signed long long __a)6414 vec_popcnt(__vector signed long long __a) {
6415   return __builtin_s390_vpopctg((__vector unsigned long long)__a);
6416 }
6417 
6418 static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector unsigned long long __a)6419 vec_popcnt(__vector unsigned long long __a) {
6420   return __builtin_s390_vpopctg(__a);
6421 }
6422 
6423 /*-- vec_rl -----------------------------------------------------------------*/
6424 
6425 static inline __ATTRS_o_ai __vector signed char
vec_rl(__vector signed char __a,__vector unsigned char __b)6426 vec_rl(__vector signed char __a, __vector unsigned char __b) {
6427   return (__vector signed char)__builtin_s390_verllvb(
6428     (__vector unsigned char)__a, __b);
6429 }
6430 
6431 static inline __ATTRS_o_ai __vector unsigned char
vec_rl(__vector unsigned char __a,__vector unsigned char __b)6432 vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
6433   return __builtin_s390_verllvb(__a, __b);
6434 }
6435 
6436 static inline __ATTRS_o_ai __vector signed short
vec_rl(__vector signed short __a,__vector unsigned short __b)6437 vec_rl(__vector signed short __a, __vector unsigned short __b) {
6438   return (__vector signed short)__builtin_s390_verllvh(
6439     (__vector unsigned short)__a, __b);
6440 }
6441 
6442 static inline __ATTRS_o_ai __vector unsigned short
vec_rl(__vector unsigned short __a,__vector unsigned short __b)6443 vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
6444   return __builtin_s390_verllvh(__a, __b);
6445 }
6446 
6447 static inline __ATTRS_o_ai __vector signed int
vec_rl(__vector signed int __a,__vector unsigned int __b)6448 vec_rl(__vector signed int __a, __vector unsigned int __b) {
6449   return (__vector signed int)__builtin_s390_verllvf(
6450     (__vector unsigned int)__a, __b);
6451 }
6452 
6453 static inline __ATTRS_o_ai __vector unsigned int
vec_rl(__vector unsigned int __a,__vector unsigned int __b)6454 vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
6455   return __builtin_s390_verllvf(__a, __b);
6456 }
6457 
6458 static inline __ATTRS_o_ai __vector signed long long
vec_rl(__vector signed long long __a,__vector unsigned long long __b)6459 vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
6460   return (__vector signed long long)__builtin_s390_verllvg(
6461     (__vector unsigned long long)__a, __b);
6462 }
6463 
6464 static inline __ATTRS_o_ai __vector unsigned long long
vec_rl(__vector unsigned long long __a,__vector unsigned long long __b)6465 vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
6466   return __builtin_s390_verllvg(__a, __b);
6467 }
6468 
6469 /*-- vec_rli ----------------------------------------------------------------*/
6470 
6471 static inline __ATTRS_o_ai __vector signed char
vec_rli(__vector signed char __a,unsigned long __b)6472 vec_rli(__vector signed char __a, unsigned long __b) {
6473   return (__vector signed char)__builtin_s390_verllb(
6474     (__vector unsigned char)__a, (int)__b);
6475 }
6476 
6477 static inline __ATTRS_o_ai __vector unsigned char
vec_rli(__vector unsigned char __a,unsigned long __b)6478 vec_rli(__vector unsigned char __a, unsigned long __b) {
6479   return __builtin_s390_verllb(__a, (int)__b);
6480 }
6481 
6482 static inline __ATTRS_o_ai __vector signed short
vec_rli(__vector signed short __a,unsigned long __b)6483 vec_rli(__vector signed short __a, unsigned long __b) {
6484   return (__vector signed short)__builtin_s390_verllh(
6485     (__vector unsigned short)__a, (int)__b);
6486 }
6487 
6488 static inline __ATTRS_o_ai __vector unsigned short
vec_rli(__vector unsigned short __a,unsigned long __b)6489 vec_rli(__vector unsigned short __a, unsigned long __b) {
6490   return __builtin_s390_verllh(__a, (int)__b);
6491 }
6492 
6493 static inline __ATTRS_o_ai __vector signed int
vec_rli(__vector signed int __a,unsigned long __b)6494 vec_rli(__vector signed int __a, unsigned long __b) {
6495   return (__vector signed int)__builtin_s390_verllf(
6496     (__vector unsigned int)__a, (int)__b);
6497 }
6498 
6499 static inline __ATTRS_o_ai __vector unsigned int
vec_rli(__vector unsigned int __a,unsigned long __b)6500 vec_rli(__vector unsigned int __a, unsigned long __b) {
6501   return __builtin_s390_verllf(__a, (int)__b);
6502 }
6503 
6504 static inline __ATTRS_o_ai __vector signed long long
vec_rli(__vector signed long long __a,unsigned long __b)6505 vec_rli(__vector signed long long __a, unsigned long __b) {
6506   return (__vector signed long long)__builtin_s390_verllg(
6507     (__vector unsigned long long)__a, (int)__b);
6508 }
6509 
6510 static inline __ATTRS_o_ai __vector unsigned long long
vec_rli(__vector unsigned long long __a,unsigned long __b)6511 vec_rli(__vector unsigned long long __a, unsigned long __b) {
6512   return __builtin_s390_verllg(__a, (int)__b);
6513 }
6514 
6515 /*-- vec_rl_mask ------------------------------------------------------------*/
6516 
6517 extern __ATTRS_o __vector signed char
6518 vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
6519             unsigned char __c) __constant(__c);
6520 
6521 extern __ATTRS_o __vector unsigned char
6522 vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
6523             unsigned char __c) __constant(__c);
6524 
6525 extern __ATTRS_o __vector signed short
6526 vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
6527             unsigned char __c) __constant(__c);
6528 
6529 extern __ATTRS_o __vector unsigned short
6530 vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
6531             unsigned char __c) __constant(__c);
6532 
6533 extern __ATTRS_o __vector signed int
6534 vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
6535             unsigned char __c) __constant(__c);
6536 
6537 extern __ATTRS_o __vector unsigned int
6538 vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
6539             unsigned char __c) __constant(__c);
6540 
6541 extern __ATTRS_o __vector signed long long
6542 vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
6543             unsigned char __c) __constant(__c);
6544 
6545 extern __ATTRS_o __vector unsigned long long
6546 vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
6547             unsigned char __c) __constant(__c);
6548 
6549 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
6550   __extension__ ({ \
6551     __vector unsigned char __res; \
6552     __vector unsigned char __x = (__vector unsigned char)(X); \
6553     __vector unsigned char __y = (__vector unsigned char)(Y); \
6554     switch (sizeof ((X)[0])) { \
6555     case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
6556              (__vector unsigned char)__x, (__vector unsigned char)__x, \
6557              (__vector unsigned char)__y, (Z)); break; \
6558     case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
6559              (__vector unsigned short)__x, (__vector unsigned short)__x, \
6560              (__vector unsigned short)__y, (Z)); break; \
6561     case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
6562              (__vector unsigned int)__x, (__vector unsigned int)__x, \
6563              (__vector unsigned int)__y, (Z)); break; \
6564     default: __res = (__vector unsigned char) __builtin_s390_verimg( \
6565              (__vector unsigned long long)__x, (__vector unsigned long long)__x, \
6566              (__vector unsigned long long)__y, (Z)); break; \
6567     } __res; }))
6568 
6569 /*-- vec_sll ----------------------------------------------------------------*/
6570 
6571 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned char __b)6572 vec_sll(__vector signed char __a, __vector unsigned char __b) {
6573   return (__vector signed char)__builtin_s390_vsl(
6574     (__vector unsigned char)__a, __b);
6575 }
6576 
6577 // This prototype is deprecated.
6578 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned short __b)6579 vec_sll(__vector signed char __a, __vector unsigned short __b) {
6580   return (__vector signed char)__builtin_s390_vsl(
6581     (__vector unsigned char)__a, (__vector unsigned char)__b);
6582 }
6583 
6584 // This prototype is deprecated.
6585 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned int __b)6586 vec_sll(__vector signed char __a, __vector unsigned int __b) {
6587   return (__vector signed char)__builtin_s390_vsl(
6588     (__vector unsigned char)__a, (__vector unsigned char)__b);
6589 }
6590 
6591 // This prototype is deprecated.
6592 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned char __b)6593 vec_sll(__vector __bool char __a, __vector unsigned char __b) {
6594   return (__vector __bool char)__builtin_s390_vsl(
6595     (__vector unsigned char)__a, __b);
6596 }
6597 
6598 // This prototype is deprecated.
6599 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned short __b)6600 vec_sll(__vector __bool char __a, __vector unsigned short __b) {
6601   return (__vector __bool char)__builtin_s390_vsl(
6602     (__vector unsigned char)__a, (__vector unsigned char)__b);
6603 }
6604 
6605 // This prototype is deprecated.
6606 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned int __b)6607 vec_sll(__vector __bool char __a, __vector unsigned int __b) {
6608   return (__vector __bool char)__builtin_s390_vsl(
6609     (__vector unsigned char)__a, (__vector unsigned char)__b);
6610 }
6611 
6612 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned char __b)6613 vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
6614   return __builtin_s390_vsl(__a, __b);
6615 }
6616 
6617 // This prototype is deprecated.
6618 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned short __b)6619 vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
6620   return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
6621 }
6622 
6623 // This prototype is deprecated.
6624 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned int __b)6625 vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
6626   return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
6627 }
6628 
6629 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned char __b)6630 vec_sll(__vector signed short __a, __vector unsigned char __b) {
6631   return (__vector signed short)__builtin_s390_vsl(
6632     (__vector unsigned char)__a, __b);
6633 }
6634 
6635 // This prototype is deprecated.
6636 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned short __b)6637 vec_sll(__vector signed short __a, __vector unsigned short __b) {
6638   return (__vector signed short)__builtin_s390_vsl(
6639     (__vector unsigned char)__a, (__vector unsigned char)__b);
6640 }
6641 
6642 // This prototype is deprecated.
6643 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned int __b)6644 vec_sll(__vector signed short __a, __vector unsigned int __b) {
6645   return (__vector signed short)__builtin_s390_vsl(
6646     (__vector unsigned char)__a, (__vector unsigned char)__b);
6647 }
6648 
6649 // This prototype is deprecated.
6650 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned char __b)6651 vec_sll(__vector __bool short __a, __vector unsigned char __b) {
6652   return (__vector __bool short)__builtin_s390_vsl(
6653     (__vector unsigned char)__a, __b);
6654 }
6655 
6656 // This prototype is deprecated.
6657 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned short __b)6658 vec_sll(__vector __bool short __a, __vector unsigned short __b) {
6659   return (__vector __bool short)__builtin_s390_vsl(
6660     (__vector unsigned char)__a, (__vector unsigned char)__b);
6661 }
6662 
6663 // This prototype is deprecated.
6664 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned int __b)6665 vec_sll(__vector __bool short __a, __vector unsigned int __b) {
6666   return (__vector __bool short)__builtin_s390_vsl(
6667     (__vector unsigned char)__a, (__vector unsigned char)__b);
6668 }
6669 
6670 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned char __b)6671 vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
6672   return (__vector unsigned short)__builtin_s390_vsl(
6673     (__vector unsigned char)__a, __b);
6674 }
6675 
6676 // This prototype is deprecated.
6677 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned short __b)6678 vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
6679   return (__vector unsigned short)__builtin_s390_vsl(
6680     (__vector unsigned char)__a, (__vector unsigned char)__b);
6681 }
6682 
6683 // This prototype is deprecated.
6684 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned int __b)6685 vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
6686   return (__vector unsigned short)__builtin_s390_vsl(
6687     (__vector unsigned char)__a, (__vector unsigned char)__b);
6688 }
6689 
6690 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned char __b)6691 vec_sll(__vector signed int __a, __vector unsigned char __b) {
6692   return (__vector signed int)__builtin_s390_vsl(
6693     (__vector unsigned char)__a, __b);
6694 }
6695 
6696 // This prototype is deprecated.
6697 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned short __b)6698 vec_sll(__vector signed int __a, __vector unsigned short __b) {
6699   return (__vector signed int)__builtin_s390_vsl(
6700     (__vector unsigned char)__a, (__vector unsigned char)__b);
6701 }
6702 
6703 // This prototype is deprecated.
6704 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned int __b)6705 vec_sll(__vector signed int __a, __vector unsigned int __b) {
6706   return (__vector signed int)__builtin_s390_vsl(
6707     (__vector unsigned char)__a, (__vector unsigned char)__b);
6708 }
6709 
6710 // This prototype is deprecated.
6711 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned char __b)6712 vec_sll(__vector __bool int __a, __vector unsigned char __b) {
6713   return (__vector __bool int)__builtin_s390_vsl(
6714     (__vector unsigned char)__a, __b);
6715 }
6716 
6717 // This prototype is deprecated.
6718 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned short __b)6719 vec_sll(__vector __bool int __a, __vector unsigned short __b) {
6720   return (__vector __bool int)__builtin_s390_vsl(
6721     (__vector unsigned char)__a, (__vector unsigned char)__b);
6722 }
6723 
6724 // This prototype is deprecated.
6725 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned int __b)6726 vec_sll(__vector __bool int __a, __vector unsigned int __b) {
6727   return (__vector __bool int)__builtin_s390_vsl(
6728     (__vector unsigned char)__a, (__vector unsigned char)__b);
6729 }
6730 
6731 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned char __b)6732 vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
6733   return (__vector unsigned int)__builtin_s390_vsl(
6734     (__vector unsigned char)__a, __b);
6735 }
6736 
6737 // This prototype is deprecated.
6738 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned short __b)6739 vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
6740   return (__vector unsigned int)__builtin_s390_vsl(
6741     (__vector unsigned char)__a, (__vector unsigned char)__b);
6742 }
6743 
6744 // This prototype is deprecated.
6745 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned int __b)6746 vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
6747   return (__vector unsigned int)__builtin_s390_vsl(
6748     (__vector unsigned char)__a, (__vector unsigned char)__b);
6749 }
6750 
6751 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned char __b)6752 vec_sll(__vector signed long long __a, __vector unsigned char __b) {
6753   return (__vector signed long long)__builtin_s390_vsl(
6754     (__vector unsigned char)__a, __b);
6755 }
6756 
6757 // This prototype is deprecated.
6758 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned short __b)6759 vec_sll(__vector signed long long __a, __vector unsigned short __b) {
6760   return (__vector signed long long)__builtin_s390_vsl(
6761     (__vector unsigned char)__a, (__vector unsigned char)__b);
6762 }
6763 
6764 // This prototype is deprecated.
6765 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned int __b)6766 vec_sll(__vector signed long long __a, __vector unsigned int __b) {
6767   return (__vector signed long long)__builtin_s390_vsl(
6768     (__vector unsigned char)__a, (__vector unsigned char)__b);
6769 }
6770 
6771 // This prototype is deprecated.
6772 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned char __b)6773 vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
6774   return (__vector __bool long long)__builtin_s390_vsl(
6775     (__vector unsigned char)__a, __b);
6776 }
6777 
6778 // This prototype is deprecated.
6779 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned short __b)6780 vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
6781   return (__vector __bool long long)__builtin_s390_vsl(
6782     (__vector unsigned char)__a, (__vector unsigned char)__b);
6783 }
6784 
6785 // This prototype is deprecated.
6786 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned int __b)6787 vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
6788   return (__vector __bool long long)__builtin_s390_vsl(
6789     (__vector unsigned char)__a, (__vector unsigned char)__b);
6790 }
6791 
6792 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned char __b)6793 vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
6794   return (__vector unsigned long long)__builtin_s390_vsl(
6795     (__vector unsigned char)__a, __b);
6796 }
6797 
6798 // This prototype is deprecated.
6799 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned short __b)6800 vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
6801   return (__vector unsigned long long)__builtin_s390_vsl(
6802     (__vector unsigned char)__a, (__vector unsigned char)__b);
6803 }
6804 
6805 // This prototype is deprecated.
6806 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned int __b)6807 vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
6808   return (__vector unsigned long long)__builtin_s390_vsl(
6809     (__vector unsigned char)__a, (__vector unsigned char)__b);
6810 }
6811 
6812 /*-- vec_slb ----------------------------------------------------------------*/
6813 
6814 static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector signed char __b)6815 vec_slb(__vector signed char __a, __vector signed char __b) {
6816   return (__vector signed char)__builtin_s390_vslb(
6817     (__vector unsigned char)__a, (__vector unsigned char)__b);
6818 }
6819 
6820 static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector unsigned char __b)6821 vec_slb(__vector signed char __a, __vector unsigned char __b) {
6822   return (__vector signed char)__builtin_s390_vslb(
6823     (__vector unsigned char)__a, __b);
6824 }
6825 
6826 static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector signed char __b)6827 vec_slb(__vector unsigned char __a, __vector signed char __b) {
6828   return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
6829 }
6830 
6831 static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector unsigned char __b)6832 vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
6833   return __builtin_s390_vslb(__a, __b);
6834 }
6835 
6836 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector signed short __b)6837 vec_slb(__vector signed short __a, __vector signed short __b) {
6838   return (__vector signed short)__builtin_s390_vslb(
6839     (__vector unsigned char)__a, (__vector unsigned char)__b);
6840 }
6841 
6842 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector unsigned short __b)6843 vec_slb(__vector signed short __a, __vector unsigned short __b) {
6844   return (__vector signed short)__builtin_s390_vslb(
6845     (__vector unsigned char)__a, (__vector unsigned char)__b);
6846 }
6847 
6848 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector signed short __b)6849 vec_slb(__vector unsigned short __a, __vector signed short __b) {
6850   return (__vector unsigned short)__builtin_s390_vslb(
6851     (__vector unsigned char)__a, (__vector unsigned char)__b);
6852 }
6853 
6854 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector unsigned short __b)6855 vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
6856   return (__vector unsigned short)__builtin_s390_vslb(
6857     (__vector unsigned char)__a, (__vector unsigned char)__b);
6858 }
6859 
6860 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector signed int __b)6861 vec_slb(__vector signed int __a, __vector signed int __b) {
6862   return (__vector signed int)__builtin_s390_vslb(
6863     (__vector unsigned char)__a, (__vector unsigned char)__b);
6864 }
6865 
6866 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector unsigned int __b)6867 vec_slb(__vector signed int __a, __vector unsigned int __b) {
6868   return (__vector signed int)__builtin_s390_vslb(
6869     (__vector unsigned char)__a, (__vector unsigned char)__b);
6870 }
6871 
6872 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector signed int __b)6873 vec_slb(__vector unsigned int __a, __vector signed int __b) {
6874   return (__vector unsigned int)__builtin_s390_vslb(
6875     (__vector unsigned char)__a, (__vector unsigned char)__b);
6876 }
6877 
6878 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector unsigned int __b)6879 vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
6880   return (__vector unsigned int)__builtin_s390_vslb(
6881     (__vector unsigned char)__a, (__vector unsigned char)__b);
6882 }
6883 
6884 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector signed long long __b)6885 vec_slb(__vector signed long long __a, __vector signed long long __b) {
6886   return (__vector signed long long)__builtin_s390_vslb(
6887     (__vector unsigned char)__a, (__vector unsigned char)__b);
6888 }
6889 
6890 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector unsigned long long __b)6891 vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
6892   return (__vector signed long long)__builtin_s390_vslb(
6893     (__vector unsigned char)__a, (__vector unsigned char)__b);
6894 }
6895 
6896 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector signed long long __b)6897 vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
6898   return (__vector unsigned long long)__builtin_s390_vslb(
6899     (__vector unsigned char)__a, (__vector unsigned char)__b);
6900 }
6901 
6902 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector unsigned long long __b)6903 vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
6904   return (__vector unsigned long long)__builtin_s390_vslb(
6905     (__vector unsigned char)__a, (__vector unsigned char)__b);
6906 }
6907 
6908 #if __ARCH__ >= 12
6909 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector signed int __b)6910 vec_slb(__vector float __a, __vector signed int __b) {
6911   return (__vector float)__builtin_s390_vslb(
6912     (__vector unsigned char)__a, (__vector unsigned char)__b);
6913 }
6914 
6915 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector unsigned int __b)6916 vec_slb(__vector float __a, __vector unsigned int __b) {
6917   return (__vector float)__builtin_s390_vslb(
6918     (__vector unsigned char)__a, (__vector unsigned char)__b);
6919 }
6920 #endif
6921 
6922 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector signed long long __b)6923 vec_slb(__vector double __a, __vector signed long long __b) {
6924   return (__vector double)__builtin_s390_vslb(
6925     (__vector unsigned char)__a, (__vector unsigned char)__b);
6926 }
6927 
6928 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector unsigned long long __b)6929 vec_slb(__vector double __a, __vector unsigned long long __b) {
6930   return (__vector double)__builtin_s390_vslb(
6931     (__vector unsigned char)__a, (__vector unsigned char)__b);
6932 }
6933 
6934 /*-- vec_sld ----------------------------------------------------------------*/
6935 
6936 extern __ATTRS_o __vector signed char
6937 vec_sld(__vector signed char __a, __vector signed char __b, int __c)
6938   __constant_range(__c, 0, 15);
6939 
6940 extern __ATTRS_o __vector __bool char
6941 vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
6942   __constant_range(__c, 0, 15);
6943 
6944 extern __ATTRS_o __vector unsigned char
6945 vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
6946   __constant_range(__c, 0, 15);
6947 
6948 extern __ATTRS_o __vector signed short
6949 vec_sld(__vector signed short __a, __vector signed short __b, int __c)
6950   __constant_range(__c, 0, 15);
6951 
6952 extern __ATTRS_o __vector __bool short
6953 vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
6954   __constant_range(__c, 0, 15);
6955 
6956 extern __ATTRS_o __vector unsigned short
6957 vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
6958   __constant_range(__c, 0, 15);
6959 
6960 extern __ATTRS_o __vector signed int
6961 vec_sld(__vector signed int __a, __vector signed int __b, int __c)
6962   __constant_range(__c, 0, 15);
6963 
6964 extern __ATTRS_o __vector __bool int
6965 vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
6966   __constant_range(__c, 0, 15);
6967 
6968 extern __ATTRS_o __vector unsigned int
6969 vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
6970   __constant_range(__c, 0, 15);
6971 
6972 extern __ATTRS_o __vector signed long long
6973 vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
6974   __constant_range(__c, 0, 15);
6975 
6976 extern __ATTRS_o __vector __bool long long
6977 vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
6978   __constant_range(__c, 0, 15);
6979 
6980 extern __ATTRS_o __vector unsigned long long
6981 vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
6982         int __c)
6983   __constant_range(__c, 0, 15);
6984 
6985 #if __ARCH__ >= 12
6986 extern __ATTRS_o __vector float
6987 vec_sld(__vector float __a, __vector float __b, int __c)
6988   __constant_range(__c, 0, 15);
6989 #endif
6990 
6991 extern __ATTRS_o __vector double
6992 vec_sld(__vector double __a, __vector double __b, int __c)
6993   __constant_range(__c, 0, 15);
6994 
6995 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
6996   __builtin_s390_vsldb((__vector unsigned char)(X), \
6997                        (__vector unsigned char)(Y), (Z)))
6998 
6999 /*-- vec_sldw ---------------------------------------------------------------*/
7000 
7001 extern __ATTRS_o __vector signed char
7002 vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
7003   __constant_range(__c, 0, 3);
7004 
7005 extern __ATTRS_o __vector unsigned char
7006 vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
7007   __constant_range(__c, 0, 3);
7008 
7009 extern __ATTRS_o __vector signed short
7010 vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
7011   __constant_range(__c, 0, 3);
7012 
7013 extern __ATTRS_o __vector unsigned short
7014 vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
7015   __constant_range(__c, 0, 3);
7016 
7017 extern __ATTRS_o __vector signed int
7018 vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
7019   __constant_range(__c, 0, 3);
7020 
7021 extern __ATTRS_o __vector unsigned int
7022 vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
7023   __constant_range(__c, 0, 3);
7024 
7025 extern __ATTRS_o __vector signed long long
7026 vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
7027   __constant_range(__c, 0, 3);
7028 
7029 extern __ATTRS_o __vector unsigned long long
7030 vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
7031          int __c)
7032   __constant_range(__c, 0, 3);
7033 
7034 // This prototype is deprecated.
7035 extern __ATTRS_o __vector double
7036 vec_sldw(__vector double __a, __vector double __b, int __c)
7037   __constant_range(__c, 0, 3);
7038 
7039 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
7040   __builtin_s390_vsldb((__vector unsigned char)(X), \
7041                        (__vector unsigned char)(Y), (Z) * 4))
7042 
7043 /*-- vec_sldb ---------------------------------------------------------------*/
7044 
7045 #if __ARCH__ >= 13
7046 
7047 extern __ATTRS_o __vector signed char
7048 vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
7049   __constant_range(__c, 0, 7);
7050 
7051 extern __ATTRS_o __vector unsigned char
7052 vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
7053   __constant_range(__c, 0, 7);
7054 
7055 extern __ATTRS_o __vector signed short
7056 vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
7057   __constant_range(__c, 0, 7);
7058 
7059 extern __ATTRS_o __vector unsigned short
7060 vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
7061   __constant_range(__c, 0, 7);
7062 
7063 extern __ATTRS_o __vector signed int
7064 vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
7065   __constant_range(__c, 0, 7);
7066 
7067 extern __ATTRS_o __vector unsigned int
7068 vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
7069   __constant_range(__c, 0, 7);
7070 
7071 extern __ATTRS_o __vector signed long long
7072 vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
7073   __constant_range(__c, 0, 7);
7074 
7075 extern __ATTRS_o __vector unsigned long long
7076 vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
7077          int __c)
7078   __constant_range(__c, 0, 7);
7079 
7080 extern __ATTRS_o __vector float
7081 vec_sldb(__vector float __a, __vector float __b, int __c)
7082   __constant_range(__c, 0, 7);
7083 
7084 extern __ATTRS_o __vector double
7085 vec_sldb(__vector double __a, __vector double __b, int __c)
7086   __constant_range(__c, 0, 7);
7087 
7088 #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
7089   __builtin_s390_vsld((__vector unsigned char)(X), \
7090                       (__vector unsigned char)(Y), (Z)))
7091 
7092 #endif
7093 
7094 /*-- vec_sral ---------------------------------------------------------------*/
7095 
7096 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned char __b)7097 vec_sral(__vector signed char __a, __vector unsigned char __b) {
7098   return (__vector signed char)__builtin_s390_vsra(
7099     (__vector unsigned char)__a, __b);
7100 }
7101 
7102 // This prototype is deprecated.
7103 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned short __b)7104 vec_sral(__vector signed char __a, __vector unsigned short __b) {
7105   return (__vector signed char)__builtin_s390_vsra(
7106     (__vector unsigned char)__a, (__vector unsigned char)__b);
7107 }
7108 
7109 // This prototype is deprecated.
7110 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned int __b)7111 vec_sral(__vector signed char __a, __vector unsigned int __b) {
7112   return (__vector signed char)__builtin_s390_vsra(
7113     (__vector unsigned char)__a, (__vector unsigned char)__b);
7114 }
7115 
7116 // This prototype is deprecated.
7117 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned char __b)7118 vec_sral(__vector __bool char __a, __vector unsigned char __b) {
7119   return (__vector __bool char)__builtin_s390_vsra(
7120     (__vector unsigned char)__a, __b);
7121 }
7122 
7123 // This prototype is deprecated.
7124 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned short __b)7125 vec_sral(__vector __bool char __a, __vector unsigned short __b) {
7126   return (__vector __bool char)__builtin_s390_vsra(
7127     (__vector unsigned char)__a, (__vector unsigned char)__b);
7128 }
7129 
7130 // This prototype is deprecated.
7131 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned int __b)7132 vec_sral(__vector __bool char __a, __vector unsigned int __b) {
7133   return (__vector __bool char)__builtin_s390_vsra(
7134     (__vector unsigned char)__a, (__vector unsigned char)__b);
7135 }
7136 
7137 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned char __b)7138 vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
7139   return __builtin_s390_vsra(__a, __b);
7140 }
7141 
7142 // This prototype is deprecated.
7143 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned short __b)7144 vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
7145   return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
7146 }
7147 
7148 // This prototype is deprecated.
7149 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned int __b)7150 vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
7151   return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
7152 }
7153 
7154 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned char __b)7155 vec_sral(__vector signed short __a, __vector unsigned char __b) {
7156   return (__vector signed short)__builtin_s390_vsra(
7157     (__vector unsigned char)__a, __b);
7158 }
7159 
7160 // This prototype is deprecated.
7161 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned short __b)7162 vec_sral(__vector signed short __a, __vector unsigned short __b) {
7163   return (__vector signed short)__builtin_s390_vsra(
7164     (__vector unsigned char)__a, (__vector unsigned char)__b);
7165 }
7166 
7167 // This prototype is deprecated.
7168 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned int __b)7169 vec_sral(__vector signed short __a, __vector unsigned int __b) {
7170   return (__vector signed short)__builtin_s390_vsra(
7171     (__vector unsigned char)__a, (__vector unsigned char)__b);
7172 }
7173 
7174 // This prototype is deprecated.
7175 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned char __b)7176 vec_sral(__vector __bool short __a, __vector unsigned char __b) {
7177   return (__vector __bool short)__builtin_s390_vsra(
7178     (__vector unsigned char)__a, __b);
7179 }
7180 
7181 // This prototype is deprecated.
7182 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned short __b)7183 vec_sral(__vector __bool short __a, __vector unsigned short __b) {
7184   return (__vector __bool short)__builtin_s390_vsra(
7185     (__vector unsigned char)__a, (__vector unsigned char)__b);
7186 }
7187 
7188 // This prototype is deprecated.
7189 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned int __b)7190 vec_sral(__vector __bool short __a, __vector unsigned int __b) {
7191   return (__vector __bool short)__builtin_s390_vsra(
7192     (__vector unsigned char)__a, (__vector unsigned char)__b);
7193 }
7194 
7195 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned char __b)7196 vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
7197   return (__vector unsigned short)__builtin_s390_vsra(
7198     (__vector unsigned char)__a, __b);
7199 }
7200 
7201 // This prototype is deprecated.
7202 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned short __b)7203 vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
7204   return (__vector unsigned short)__builtin_s390_vsra(
7205     (__vector unsigned char)__a, (__vector unsigned char)__b);
7206 }
7207 
7208 // This prototype is deprecated.
7209 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned int __b)7210 vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
7211   return (__vector unsigned short)__builtin_s390_vsra(
7212     (__vector unsigned char)__a, (__vector unsigned char)__b);
7213 }
7214 
7215 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned char __b)7216 vec_sral(__vector signed int __a, __vector unsigned char __b) {
7217   return (__vector signed int)__builtin_s390_vsra(
7218     (__vector unsigned char)__a, __b);
7219 }
7220 
7221 // This prototype is deprecated.
7222 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned short __b)7223 vec_sral(__vector signed int __a, __vector unsigned short __b) {
7224   return (__vector signed int)__builtin_s390_vsra(
7225     (__vector unsigned char)__a, (__vector unsigned char)__b);
7226 }
7227 
7228 // This prototype is deprecated.
7229 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned int __b)7230 vec_sral(__vector signed int __a, __vector unsigned int __b) {
7231   return (__vector signed int)__builtin_s390_vsra(
7232     (__vector unsigned char)__a, (__vector unsigned char)__b);
7233 }
7234 
7235 // This prototype is deprecated.
7236 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned char __b)7237 vec_sral(__vector __bool int __a, __vector unsigned char __b) {
7238   return (__vector __bool int)__builtin_s390_vsra(
7239     (__vector unsigned char)__a, __b);
7240 }
7241 
7242 // This prototype is deprecated.
7243 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned short __b)7244 vec_sral(__vector __bool int __a, __vector unsigned short __b) {
7245   return (__vector __bool int)__builtin_s390_vsra(
7246     (__vector unsigned char)__a, (__vector unsigned char)__b);
7247 }
7248 
7249 // This prototype is deprecated.
7250 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned int __b)7251 vec_sral(__vector __bool int __a, __vector unsigned int __b) {
7252   return (__vector __bool int)__builtin_s390_vsra(
7253     (__vector unsigned char)__a, (__vector unsigned char)__b);
7254 }
7255 
7256 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned char __b)7257 vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
7258   return (__vector unsigned int)__builtin_s390_vsra(
7259     (__vector unsigned char)__a, __b);
7260 }
7261 
7262 // This prototype is deprecated.
7263 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned short __b)7264 vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
7265   return (__vector unsigned int)__builtin_s390_vsra(
7266     (__vector unsigned char)__a, (__vector unsigned char)__b);
7267 }
7268 
7269 // This prototype is deprecated.
7270 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned int __b)7271 vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
7272   return (__vector unsigned int)__builtin_s390_vsra(
7273     (__vector unsigned char)__a, (__vector unsigned char)__b);
7274 }
7275 
7276 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned char __b)7277 vec_sral(__vector signed long long __a, __vector unsigned char __b) {
7278   return (__vector signed long long)__builtin_s390_vsra(
7279     (__vector unsigned char)__a, __b);
7280 }
7281 
7282 // This prototype is deprecated.
7283 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned short __b)7284 vec_sral(__vector signed long long __a, __vector unsigned short __b) {
7285   return (__vector signed long long)__builtin_s390_vsra(
7286     (__vector unsigned char)__a, (__vector unsigned char)__b);
7287 }
7288 
7289 // This prototype is deprecated.
7290 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned int __b)7291 vec_sral(__vector signed long long __a, __vector unsigned int __b) {
7292   return (__vector signed long long)__builtin_s390_vsra(
7293     (__vector unsigned char)__a, (__vector unsigned char)__b);
7294 }
7295 
7296 // This prototype is deprecated.
7297 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned char __b)7298 vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
7299   return (__vector __bool long long)__builtin_s390_vsra(
7300     (__vector unsigned char)__a, __b);
7301 }
7302 
7303 // This prototype is deprecated.
7304 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned short __b)7305 vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
7306   return (__vector __bool long long)__builtin_s390_vsra(
7307     (__vector unsigned char)__a, (__vector unsigned char)__b);
7308 }
7309 
7310 // This prototype is deprecated.
7311 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned int __b)7312 vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
7313   return (__vector __bool long long)__builtin_s390_vsra(
7314     (__vector unsigned char)__a, (__vector unsigned char)__b);
7315 }
7316 
7317 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned char __b)7318 vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
7319   return (__vector unsigned long long)__builtin_s390_vsra(
7320     (__vector unsigned char)__a, __b);
7321 }
7322 
7323 // This prototype is deprecated.
7324 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned short __b)7325 vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
7326   return (__vector unsigned long long)__builtin_s390_vsra(
7327     (__vector unsigned char)__a, (__vector unsigned char)__b);
7328 }
7329 
7330 // This prototype is deprecated.
7331 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned int __b)7332 vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
7333   return (__vector unsigned long long)__builtin_s390_vsra(
7334     (__vector unsigned char)__a, (__vector unsigned char)__b);
7335 }
7336 
7337 /*-- vec_srab ---------------------------------------------------------------*/
7338 
7339 static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector signed char __b)7340 vec_srab(__vector signed char __a, __vector signed char __b) {
7341   return (__vector signed char)__builtin_s390_vsrab(
7342     (__vector unsigned char)__a, (__vector unsigned char)__b);
7343 }
7344 
7345 static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector unsigned char __b)7346 vec_srab(__vector signed char __a, __vector unsigned char __b) {
7347   return (__vector signed char)__builtin_s390_vsrab(
7348     (__vector unsigned char)__a, __b);
7349 }
7350 
7351 static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector signed char __b)7352 vec_srab(__vector unsigned char __a, __vector signed char __b) {
7353   return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
7354 }
7355 
7356 static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector unsigned char __b)7357 vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
7358   return __builtin_s390_vsrab(__a, __b);
7359 }
7360 
7361 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector signed short __b)7362 vec_srab(__vector signed short __a, __vector signed short __b) {
7363   return (__vector signed short)__builtin_s390_vsrab(
7364     (__vector unsigned char)__a, (__vector unsigned char)__b);
7365 }
7366 
7367 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector unsigned short __b)7368 vec_srab(__vector signed short __a, __vector unsigned short __b) {
7369   return (__vector signed short)__builtin_s390_vsrab(
7370     (__vector unsigned char)__a, (__vector unsigned char)__b);
7371 }
7372 
7373 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector signed short __b)7374 vec_srab(__vector unsigned short __a, __vector signed short __b) {
7375   return (__vector unsigned short)__builtin_s390_vsrab(
7376     (__vector unsigned char)__a, (__vector unsigned char)__b);
7377 }
7378 
7379 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector unsigned short __b)7380 vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
7381   return (__vector unsigned short)__builtin_s390_vsrab(
7382     (__vector unsigned char)__a, (__vector unsigned char)__b);
7383 }
7384 
7385 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector signed int __b)7386 vec_srab(__vector signed int __a, __vector signed int __b) {
7387   return (__vector signed int)__builtin_s390_vsrab(
7388     (__vector unsigned char)__a, (__vector unsigned char)__b);
7389 }
7390 
7391 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector unsigned int __b)7392 vec_srab(__vector signed int __a, __vector unsigned int __b) {
7393   return (__vector signed int)__builtin_s390_vsrab(
7394     (__vector unsigned char)__a, (__vector unsigned char)__b);
7395 }
7396 
7397 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector signed int __b)7398 vec_srab(__vector unsigned int __a, __vector signed int __b) {
7399   return (__vector unsigned int)__builtin_s390_vsrab(
7400     (__vector unsigned char)__a, (__vector unsigned char)__b);
7401 }
7402 
7403 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector unsigned int __b)7404 vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
7405   return (__vector unsigned int)__builtin_s390_vsrab(
7406     (__vector unsigned char)__a, (__vector unsigned char)__b);
7407 }
7408 
7409 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector signed long long __b)7410 vec_srab(__vector signed long long __a, __vector signed long long __b) {
7411   return (__vector signed long long)__builtin_s390_vsrab(
7412     (__vector unsigned char)__a, (__vector unsigned char)__b);
7413 }
7414 
7415 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector unsigned long long __b)7416 vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
7417   return (__vector signed long long)__builtin_s390_vsrab(
7418     (__vector unsigned char)__a, (__vector unsigned char)__b);
7419 }
7420 
7421 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector signed long long __b)7422 vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
7423   return (__vector unsigned long long)__builtin_s390_vsrab(
7424     (__vector unsigned char)__a, (__vector unsigned char)__b);
7425 }
7426 
7427 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector unsigned long long __b)7428 vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
7429   return (__vector unsigned long long)__builtin_s390_vsrab(
7430     (__vector unsigned char)__a, (__vector unsigned char)__b);
7431 }
7432 
7433 #if __ARCH__ >= 12
7434 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector signed int __b)7435 vec_srab(__vector float __a, __vector signed int __b) {
7436   return (__vector float)__builtin_s390_vsrab(
7437     (__vector unsigned char)__a, (__vector unsigned char)__b);
7438 }
7439 
7440 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector unsigned int __b)7441 vec_srab(__vector float __a, __vector unsigned int __b) {
7442   return (__vector float)__builtin_s390_vsrab(
7443     (__vector unsigned char)__a, (__vector unsigned char)__b);
7444 }
7445 #endif
7446 
7447 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector signed long long __b)7448 vec_srab(__vector double __a, __vector signed long long __b) {
7449   return (__vector double)__builtin_s390_vsrab(
7450     (__vector unsigned char)__a, (__vector unsigned char)__b);
7451 }
7452 
7453 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector unsigned long long __b)7454 vec_srab(__vector double __a, __vector unsigned long long __b) {
7455   return (__vector double)__builtin_s390_vsrab(
7456     (__vector unsigned char)__a, (__vector unsigned char)__b);
7457 }
7458 
7459 /*-- vec_srl ----------------------------------------------------------------*/
7460 
7461 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned char __b)7462 vec_srl(__vector signed char __a, __vector unsigned char __b) {
7463   return (__vector signed char)__builtin_s390_vsrl(
7464     (__vector unsigned char)__a, __b);
7465 }
7466 
7467 // This prototype is deprecated.
7468 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned short __b)7469 vec_srl(__vector signed char __a, __vector unsigned short __b) {
7470   return (__vector signed char)__builtin_s390_vsrl(
7471     (__vector unsigned char)__a, (__vector unsigned char)__b);
7472 }
7473 
7474 // This prototype is deprecated.
7475 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned int __b)7476 vec_srl(__vector signed char __a, __vector unsigned int __b) {
7477   return (__vector signed char)__builtin_s390_vsrl(
7478     (__vector unsigned char)__a, (__vector unsigned char)__b);
7479 }
7480 
7481 // This prototype is deprecated.
7482 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned char __b)7483 vec_srl(__vector __bool char __a, __vector unsigned char __b) {
7484   return (__vector __bool char)__builtin_s390_vsrl(
7485     (__vector unsigned char)__a, __b);
7486 }
7487 
7488 // This prototype is deprecated.
7489 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned short __b)7490 vec_srl(__vector __bool char __a, __vector unsigned short __b) {
7491   return (__vector __bool char)__builtin_s390_vsrl(
7492     (__vector unsigned char)__a, (__vector unsigned char)__b);
7493 }
7494 
7495 // This prototype is deprecated.
7496 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned int __b)7497 vec_srl(__vector __bool char __a, __vector unsigned int __b) {
7498   return (__vector __bool char)__builtin_s390_vsrl(
7499     (__vector unsigned char)__a, (__vector unsigned char)__b);
7500 }
7501 
7502 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned char __b)7503 vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
7504   return __builtin_s390_vsrl(__a, __b);
7505 }
7506 
7507 // This prototype is deprecated.
7508 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned short __b)7509 vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
7510   return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
7511 }
7512 
7513 // This prototype is deprecated.
7514 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned int __b)7515 vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
7516   return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
7517 }
7518 
7519 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned char __b)7520 vec_srl(__vector signed short __a, __vector unsigned char __b) {
7521   return (__vector signed short)__builtin_s390_vsrl(
7522     (__vector unsigned char)__a, __b);
7523 }
7524 
7525 // This prototype is deprecated.
7526 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned short __b)7527 vec_srl(__vector signed short __a, __vector unsigned short __b) {
7528   return (__vector signed short)__builtin_s390_vsrl(
7529     (__vector unsigned char)__a, (__vector unsigned char)__b);
7530 }
7531 
7532 // This prototype is deprecated.
7533 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned int __b)7534 vec_srl(__vector signed short __a, __vector unsigned int __b) {
7535   return (__vector signed short)__builtin_s390_vsrl(
7536     (__vector unsigned char)__a, (__vector unsigned char)__b);
7537 }
7538 
7539 // This prototype is deprecated.
7540 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned char __b)7541 vec_srl(__vector __bool short __a, __vector unsigned char __b) {
7542   return (__vector __bool short)__builtin_s390_vsrl(
7543     (__vector unsigned char)__a, __b);
7544 }
7545 
7546 // This prototype is deprecated.
7547 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned short __b)7548 vec_srl(__vector __bool short __a, __vector unsigned short __b) {
7549   return (__vector __bool short)__builtin_s390_vsrl(
7550     (__vector unsigned char)__a, (__vector unsigned char)__b);
7551 }
7552 
7553 // This prototype is deprecated.
7554 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned int __b)7555 vec_srl(__vector __bool short __a, __vector unsigned int __b) {
7556   return (__vector __bool short)__builtin_s390_vsrl(
7557     (__vector unsigned char)__a, (__vector unsigned char)__b);
7558 }
7559 
7560 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned char __b)7561 vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
7562   return (__vector unsigned short)__builtin_s390_vsrl(
7563     (__vector unsigned char)__a, __b);
7564 }
7565 
7566 // This prototype is deprecated.
7567 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned short __b)7568 vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
7569   return (__vector unsigned short)__builtin_s390_vsrl(
7570     (__vector unsigned char)__a, (__vector unsigned char)__b);
7571 }
7572 
7573 // This prototype is deprecated.
7574 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned int __b)7575 vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
7576   return (__vector unsigned short)__builtin_s390_vsrl(
7577     (__vector unsigned char)__a, (__vector unsigned char)__b);
7578 }
7579 
7580 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned char __b)7581 vec_srl(__vector signed int __a, __vector unsigned char __b) {
7582   return (__vector signed int)__builtin_s390_vsrl(
7583     (__vector unsigned char)__a, __b);
7584 }
7585 
7586 // This prototype is deprecated.
7587 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned short __b)7588 vec_srl(__vector signed int __a, __vector unsigned short __b) {
7589   return (__vector signed int)__builtin_s390_vsrl(
7590     (__vector unsigned char)__a, (__vector unsigned char)__b);
7591 }
7592 
7593 // This prototype is deprecated.
7594 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned int __b)7595 vec_srl(__vector signed int __a, __vector unsigned int __b) {
7596   return (__vector signed int)__builtin_s390_vsrl(
7597     (__vector unsigned char)__a, (__vector unsigned char)__b);
7598 }
7599 
7600 // This prototype is deprecated.
7601 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned char __b)7602 vec_srl(__vector __bool int __a, __vector unsigned char __b) {
7603   return (__vector __bool int)__builtin_s390_vsrl(
7604     (__vector unsigned char)__a, __b);
7605 }
7606 
7607 // This prototype is deprecated.
7608 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned short __b)7609 vec_srl(__vector __bool int __a, __vector unsigned short __b) {
7610   return (__vector __bool int)__builtin_s390_vsrl(
7611     (__vector unsigned char)__a, (__vector unsigned char)__b);
7612 }
7613 
7614 // This prototype is deprecated.
7615 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned int __b)7616 vec_srl(__vector __bool int __a, __vector unsigned int __b) {
7617   return (__vector __bool int)__builtin_s390_vsrl(
7618     (__vector unsigned char)__a, (__vector unsigned char)__b);
7619 }
7620 
7621 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned char __b)7622 vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
7623   return (__vector unsigned int)__builtin_s390_vsrl(
7624     (__vector unsigned char)__a, __b);
7625 }
7626 
7627 // This prototype is deprecated.
7628 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned short __b)7629 vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
7630   return (__vector unsigned int)__builtin_s390_vsrl(
7631     (__vector unsigned char)__a, (__vector unsigned char)__b);
7632 }
7633 
7634 // This prototype is deprecated.
7635 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned int __b)7636 vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
7637   return (__vector unsigned int)__builtin_s390_vsrl(
7638     (__vector unsigned char)__a, (__vector unsigned char)__b);
7639 }
7640 
7641 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned char __b)7642 vec_srl(__vector signed long long __a, __vector unsigned char __b) {
7643   return (__vector signed long long)__builtin_s390_vsrl(
7644     (__vector unsigned char)__a, __b);
7645 }
7646 
7647 // This prototype is deprecated.
7648 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned short __b)7649 vec_srl(__vector signed long long __a, __vector unsigned short __b) {
7650   return (__vector signed long long)__builtin_s390_vsrl(
7651     (__vector unsigned char)__a, (__vector unsigned char)__b);
7652 }
7653 
7654 // This prototype is deprecated.
7655 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned int __b)7656 vec_srl(__vector signed long long __a, __vector unsigned int __b) {
7657   return (__vector signed long long)__builtin_s390_vsrl(
7658     (__vector unsigned char)__a, (__vector unsigned char)__b);
7659 }
7660 
7661 // This prototype is deprecated.
7662 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned char __b)7663 vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
7664   return (__vector __bool long long)__builtin_s390_vsrl(
7665     (__vector unsigned char)__a, __b);
7666 }
7667 
7668 // This prototype is deprecated.
7669 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned short __b)7670 vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
7671   return (__vector __bool long long)__builtin_s390_vsrl(
7672     (__vector unsigned char)__a, (__vector unsigned char)__b);
7673 }
7674 
7675 // This prototype is deprecated.
7676 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned int __b)7677 vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
7678   return (__vector __bool long long)__builtin_s390_vsrl(
7679     (__vector unsigned char)__a, (__vector unsigned char)__b);
7680 }
7681 
7682 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned char __b)7683 vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
7684   return (__vector unsigned long long)__builtin_s390_vsrl(
7685     (__vector unsigned char)__a, __b);
7686 }
7687 
7688 // This prototype is deprecated.
7689 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned short __b)7690 vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
7691   return (__vector unsigned long long)__builtin_s390_vsrl(
7692     (__vector unsigned char)__a, (__vector unsigned char)__b);
7693 }
7694 
7695 // This prototype is deprecated.
7696 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned int __b)7697 vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
7698   return (__vector unsigned long long)__builtin_s390_vsrl(
7699     (__vector unsigned char)__a, (__vector unsigned char)__b);
7700 }
7701 
7702 /*-- vec_srb ----------------------------------------------------------------*/
7703 
7704 static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector signed char __b)7705 vec_srb(__vector signed char __a, __vector signed char __b) {
7706   return (__vector signed char)__builtin_s390_vsrlb(
7707     (__vector unsigned char)__a, (__vector unsigned char)__b);
7708 }
7709 
7710 static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector unsigned char __b)7711 vec_srb(__vector signed char __a, __vector unsigned char __b) {
7712   return (__vector signed char)__builtin_s390_vsrlb(
7713     (__vector unsigned char)__a, __b);
7714 }
7715 
7716 static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector signed char __b)7717 vec_srb(__vector unsigned char __a, __vector signed char __b) {
7718   return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
7719 }
7720 
7721 static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector unsigned char __b)7722 vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
7723   return __builtin_s390_vsrlb(__a, __b);
7724 }
7725 
7726 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector signed short __b)7727 vec_srb(__vector signed short __a, __vector signed short __b) {
7728   return (__vector signed short)__builtin_s390_vsrlb(
7729     (__vector unsigned char)__a, (__vector unsigned char)__b);
7730 }
7731 
7732 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector unsigned short __b)7733 vec_srb(__vector signed short __a, __vector unsigned short __b) {
7734   return (__vector signed short)__builtin_s390_vsrlb(
7735     (__vector unsigned char)__a, (__vector unsigned char)__b);
7736 }
7737 
7738 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector signed short __b)7739 vec_srb(__vector unsigned short __a, __vector signed short __b) {
7740   return (__vector unsigned short)__builtin_s390_vsrlb(
7741     (__vector unsigned char)__a, (__vector unsigned char)__b);
7742 }
7743 
7744 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector unsigned short __b)7745 vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
7746   return (__vector unsigned short)__builtin_s390_vsrlb(
7747     (__vector unsigned char)__a, (__vector unsigned char)__b);
7748 }
7749 
7750 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector signed int __b)7751 vec_srb(__vector signed int __a, __vector signed int __b) {
7752   return (__vector signed int)__builtin_s390_vsrlb(
7753     (__vector unsigned char)__a, (__vector unsigned char)__b);
7754 }
7755 
7756 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector unsigned int __b)7757 vec_srb(__vector signed int __a, __vector unsigned int __b) {
7758   return (__vector signed int)__builtin_s390_vsrlb(
7759     (__vector unsigned char)__a, (__vector unsigned char)__b);
7760 }
7761 
7762 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector signed int __b)7763 vec_srb(__vector unsigned int __a, __vector signed int __b) {
7764   return (__vector unsigned int)__builtin_s390_vsrlb(
7765     (__vector unsigned char)__a, (__vector unsigned char)__b);
7766 }
7767 
7768 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector unsigned int __b)7769 vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
7770   return (__vector unsigned int)__builtin_s390_vsrlb(
7771     (__vector unsigned char)__a, (__vector unsigned char)__b);
7772 }
7773 
7774 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector signed long long __b)7775 vec_srb(__vector signed long long __a, __vector signed long long __b) {
7776   return (__vector signed long long)__builtin_s390_vsrlb(
7777     (__vector unsigned char)__a, (__vector unsigned char)__b);
7778 }
7779 
7780 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector unsigned long long __b)7781 vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
7782   return (__vector signed long long)__builtin_s390_vsrlb(
7783     (__vector unsigned char)__a, (__vector unsigned char)__b);
7784 }
7785 
7786 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector signed long long __b)7787 vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
7788   return (__vector unsigned long long)__builtin_s390_vsrlb(
7789     (__vector unsigned char)__a, (__vector unsigned char)__b);
7790 }
7791 
7792 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector unsigned long long __b)7793 vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
7794   return (__vector unsigned long long)__builtin_s390_vsrlb(
7795     (__vector unsigned char)__a, (__vector unsigned char)__b);
7796 }
7797 
7798 #if __ARCH__ >= 12
7799 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector signed int __b)7800 vec_srb(__vector float __a, __vector signed int __b) {
7801   return (__vector float)__builtin_s390_vsrlb(
7802     (__vector unsigned char)__a, (__vector unsigned char)__b);
7803 }
7804 
7805 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector unsigned int __b)7806 vec_srb(__vector float __a, __vector unsigned int __b) {
7807   return (__vector float)__builtin_s390_vsrlb(
7808     (__vector unsigned char)__a, (__vector unsigned char)__b);
7809 }
7810 #endif
7811 
7812 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector signed long long __b)7813 vec_srb(__vector double __a, __vector signed long long __b) {
7814   return (__vector double)__builtin_s390_vsrlb(
7815     (__vector unsigned char)__a, (__vector unsigned char)__b);
7816 }
7817 
7818 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector unsigned long long __b)7819 vec_srb(__vector double __a, __vector unsigned long long __b) {
7820   return (__vector double)__builtin_s390_vsrlb(
7821     (__vector unsigned char)__a, (__vector unsigned char)__b);
7822 }
7823 
7824 /*-- vec_srdb ---------------------------------------------------------------*/
7825 
7826 #if __ARCH__ >= 13
7827 
7828 extern __ATTRS_o __vector signed char
7829 vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
7830   __constant_range(__c, 0, 7);
7831 
7832 extern __ATTRS_o __vector unsigned char
7833 vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
7834   __constant_range(__c, 0, 7);
7835 
7836 extern __ATTRS_o __vector signed short
7837 vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
7838   __constant_range(__c, 0, 7);
7839 
7840 extern __ATTRS_o __vector unsigned short
7841 vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
7842   __constant_range(__c, 0, 7);
7843 
7844 extern __ATTRS_o __vector signed int
7845 vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
7846   __constant_range(__c, 0, 7);
7847 
7848 extern __ATTRS_o __vector unsigned int
7849 vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
7850   __constant_range(__c, 0, 7);
7851 
7852 extern __ATTRS_o __vector signed long long
7853 vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
7854   __constant_range(__c, 0, 7);
7855 
7856 extern __ATTRS_o __vector unsigned long long
7857 vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
7858          int __c)
7859   __constant_range(__c, 0, 7);
7860 
7861 extern __ATTRS_o __vector float
7862 vec_srdb(__vector float __a, __vector float __b, int __c)
7863   __constant_range(__c, 0, 7);
7864 
7865 extern __ATTRS_o __vector double
7866 vec_srdb(__vector double __a, __vector double __b, int __c)
7867   __constant_range(__c, 0, 7);
7868 
7869 #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
7870   __builtin_s390_vsrd((__vector unsigned char)(X), \
7871                       (__vector unsigned char)(Y), (Z)))
7872 
7873 #endif
7874 
7875 /*-- vec_abs ----------------------------------------------------------------*/
7876 
7877 static inline __ATTRS_o_ai __vector signed char
vec_abs(__vector signed char __a)7878 vec_abs(__vector signed char __a) {
7879   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
7880 }
7881 
7882 static inline __ATTRS_o_ai __vector signed short
vec_abs(__vector signed short __a)7883 vec_abs(__vector signed short __a) {
7884   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
7885 }
7886 
7887 static inline __ATTRS_o_ai __vector signed int
vec_abs(__vector signed int __a)7888 vec_abs(__vector signed int __a) {
7889   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
7890 }
7891 
7892 static inline __ATTRS_o_ai __vector signed long long
vec_abs(__vector signed long long __a)7893 vec_abs(__vector signed long long __a) {
7894   return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
7895 }
7896 
7897 #if __ARCH__ >= 12
7898 static inline __ATTRS_o_ai __vector float
vec_abs(__vector float __a)7899 vec_abs(__vector float __a) {
7900   return __builtin_s390_vflpsb(__a);
7901 }
7902 #endif
7903 
7904 static inline __ATTRS_o_ai __vector double
vec_abs(__vector double __a)7905 vec_abs(__vector double __a) {
7906   return __builtin_s390_vflpdb(__a);
7907 }
7908 
7909 /*-- vec_nabs ---------------------------------------------------------------*/
7910 
7911 #if __ARCH__ >= 12
7912 static inline __ATTRS_o_ai __vector float
vec_nabs(__vector float __a)7913 vec_nabs(__vector float __a) {
7914   return __builtin_s390_vflnsb(__a);
7915 }
7916 #endif
7917 
7918 static inline __ATTRS_o_ai __vector double
vec_nabs(__vector double __a)7919 vec_nabs(__vector double __a) {
7920   return __builtin_s390_vflndb(__a);
7921 }
7922 
7923 /*-- vec_max ----------------------------------------------------------------*/
7924 
7925 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector signed char __b)7926 vec_max(__vector signed char __a, __vector signed char __b) {
7927   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7928 }
7929 
7930 // This prototype is deprecated.
7931 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector __bool char __b)7932 vec_max(__vector signed char __a, __vector __bool char __b) {
7933   __vector signed char __bc = (__vector signed char)__b;
7934   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7935 }
7936 
7937 // This prototype is deprecated.
7938 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector __bool char __a,__vector signed char __b)7939 vec_max(__vector __bool char __a, __vector signed char __b) {
7940   __vector signed char __ac = (__vector signed char)__a;
7941   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7942 }
7943 
7944 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector unsigned char __b)7945 vec_max(__vector unsigned char __a, __vector unsigned char __b) {
7946   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7947 }
7948 
7949 // This prototype is deprecated.
7950 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector __bool char __b)7951 vec_max(__vector unsigned char __a, __vector __bool char __b) {
7952   __vector unsigned char __bc = (__vector unsigned char)__b;
7953   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7954 }
7955 
7956 // This prototype is deprecated.
7957 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector __bool char __a,__vector unsigned char __b)7958 vec_max(__vector __bool char __a, __vector unsigned char __b) {
7959   __vector unsigned char __ac = (__vector unsigned char)__a;
7960   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7961 }
7962 
7963 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector signed short __b)7964 vec_max(__vector signed short __a, __vector signed short __b) {
7965   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7966 }
7967 
7968 // This prototype is deprecated.
7969 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector __bool short __b)7970 vec_max(__vector signed short __a, __vector __bool short __b) {
7971   __vector signed short __bc = (__vector signed short)__b;
7972   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7973 }
7974 
7975 // This prototype is deprecated.
7976 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector __bool short __a,__vector signed short __b)7977 vec_max(__vector __bool short __a, __vector signed short __b) {
7978   __vector signed short __ac = (__vector signed short)__a;
7979   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7980 }
7981 
7982 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector unsigned short __b)7983 vec_max(__vector unsigned short __a, __vector unsigned short __b) {
7984   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7985 }
7986 
7987 // This prototype is deprecated.
7988 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector __bool short __b)7989 vec_max(__vector unsigned short __a, __vector __bool short __b) {
7990   __vector unsigned short __bc = (__vector unsigned short)__b;
7991   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7992 }
7993 
7994 // This prototype is deprecated.
7995 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector __bool short __a,__vector unsigned short __b)7996 vec_max(__vector __bool short __a, __vector unsigned short __b) {
7997   __vector unsigned short __ac = (__vector unsigned short)__a;
7998   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7999 }
8000 
8001 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector signed int __b)8002 vec_max(__vector signed int __a, __vector signed int __b) {
8003   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8004 }
8005 
8006 // This prototype is deprecated.
8007 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector __bool int __b)8008 vec_max(__vector signed int __a, __vector __bool int __b) {
8009   __vector signed int __bc = (__vector signed int)__b;
8010   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8011 }
8012 
8013 // This prototype is deprecated.
8014 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector __bool int __a,__vector signed int __b)8015 vec_max(__vector __bool int __a, __vector signed int __b) {
8016   __vector signed int __ac = (__vector signed int)__a;
8017   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8018 }
8019 
8020 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector unsigned int __b)8021 vec_max(__vector unsigned int __a, __vector unsigned int __b) {
8022   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8023 }
8024 
8025 // This prototype is deprecated.
8026 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector __bool int __b)8027 vec_max(__vector unsigned int __a, __vector __bool int __b) {
8028   __vector unsigned int __bc = (__vector unsigned int)__b;
8029   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8030 }
8031 
8032 // This prototype is deprecated.
8033 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector __bool int __a,__vector unsigned int __b)8034 vec_max(__vector __bool int __a, __vector unsigned int __b) {
8035   __vector unsigned int __ac = (__vector unsigned int)__a;
8036   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8037 }
8038 
8039 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector signed long long __b)8040 vec_max(__vector signed long long __a, __vector signed long long __b) {
8041   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8042 }
8043 
8044 // This prototype is deprecated.
8045 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector __bool long long __b)8046 vec_max(__vector signed long long __a, __vector __bool long long __b) {
8047   __vector signed long long __bc = (__vector signed long long)__b;
8048   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8049 }
8050 
8051 // This prototype is deprecated.
8052 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector __bool long long __a,__vector signed long long __b)8053 vec_max(__vector __bool long long __a, __vector signed long long __b) {
8054   __vector signed long long __ac = (__vector signed long long)__a;
8055   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8056 }
8057 
8058 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector unsigned long long __b)8059 vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
8060   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8061 }
8062 
8063 // This prototype is deprecated.
8064 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector __bool long long __b)8065 vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
8066   __vector unsigned long long __bc = (__vector unsigned long long)__b;
8067   return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8068 }
8069 
8070 // This prototype is deprecated.
8071 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector __bool long long __a,__vector unsigned long long __b)8072 vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
8073   __vector unsigned long long __ac = (__vector unsigned long long)__a;
8074   return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8075 }
8076 
8077 #if __ARCH__ >= 12
8078 static inline __ATTRS_o_ai __vector float
vec_max(__vector float __a,__vector float __b)8079 vec_max(__vector float __a, __vector float __b) {
8080   return __builtin_s390_vfmaxsb(__a, __b, 0);
8081 }
8082 #endif
8083 
8084 static inline __ATTRS_o_ai __vector double
vec_max(__vector double __a,__vector double __b)8085 vec_max(__vector double __a, __vector double __b) {
8086 #if __ARCH__ >= 12
8087   return __builtin_s390_vfmaxdb(__a, __b, 0);
8088 #else
8089   return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8090 #endif
8091 }
8092 
8093 /*-- vec_min ----------------------------------------------------------------*/
8094 
8095 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector signed char __b)8096 vec_min(__vector signed char __a, __vector signed char __b) {
8097   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8098 }
8099 
8100 // This prototype is deprecated.
8101 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector __bool char __b)8102 vec_min(__vector signed char __a, __vector __bool char __b) {
8103   __vector signed char __bc = (__vector signed char)__b;
8104   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8105 }
8106 
8107 // This prototype is deprecated.
8108 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector __bool char __a,__vector signed char __b)8109 vec_min(__vector __bool char __a, __vector signed char __b) {
8110   __vector signed char __ac = (__vector signed char)__a;
8111   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8112 }
8113 
8114 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector unsigned char __b)8115 vec_min(__vector unsigned char __a, __vector unsigned char __b) {
8116   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8117 }
8118 
8119 // This prototype is deprecated.
8120 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector __bool char __b)8121 vec_min(__vector unsigned char __a, __vector __bool char __b) {
8122   __vector unsigned char __bc = (__vector unsigned char)__b;
8123   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8124 }
8125 
8126 // This prototype is deprecated.
8127 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector __bool char __a,__vector unsigned char __b)8128 vec_min(__vector __bool char __a, __vector unsigned char __b) {
8129   __vector unsigned char __ac = (__vector unsigned char)__a;
8130   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8131 }
8132 
8133 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector signed short __b)8134 vec_min(__vector signed short __a, __vector signed short __b) {
8135   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8136 }
8137 
8138 // This prototype is deprecated.
8139 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector __bool short __b)8140 vec_min(__vector signed short __a, __vector __bool short __b) {
8141   __vector signed short __bc = (__vector signed short)__b;
8142   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8143 }
8144 
8145 // This prototype is deprecated.
8146 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector __bool short __a,__vector signed short __b)8147 vec_min(__vector __bool short __a, __vector signed short __b) {
8148   __vector signed short __ac = (__vector signed short)__a;
8149   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8150 }
8151 
8152 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector unsigned short __b)8153 vec_min(__vector unsigned short __a, __vector unsigned short __b) {
8154   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8155 }
8156 
8157 // This prototype is deprecated.
8158 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector __bool short __b)8159 vec_min(__vector unsigned short __a, __vector __bool short __b) {
8160   __vector unsigned short __bc = (__vector unsigned short)__b;
8161   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8162 }
8163 
8164 // This prototype is deprecated.
8165 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector __bool short __a,__vector unsigned short __b)8166 vec_min(__vector __bool short __a, __vector unsigned short __b) {
8167   __vector unsigned short __ac = (__vector unsigned short)__a;
8168   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8169 }
8170 
8171 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector signed int __b)8172 vec_min(__vector signed int __a, __vector signed int __b) {
8173   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8174 }
8175 
8176 // This prototype is deprecated.
8177 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector __bool int __b)8178 vec_min(__vector signed int __a, __vector __bool int __b) {
8179   __vector signed int __bc = (__vector signed int)__b;
8180   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8181 }
8182 
8183 // This prototype is deprecated.
8184 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector __bool int __a,__vector signed int __b)8185 vec_min(__vector __bool int __a, __vector signed int __b) {
8186   __vector signed int __ac = (__vector signed int)__a;
8187   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8188 }
8189 
8190 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector unsigned int __b)8191 vec_min(__vector unsigned int __a, __vector unsigned int __b) {
8192   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8193 }
8194 
8195 // This prototype is deprecated.
8196 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector __bool int __b)8197 vec_min(__vector unsigned int __a, __vector __bool int __b) {
8198   __vector unsigned int __bc = (__vector unsigned int)__b;
8199   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8200 }
8201 
8202 // This prototype is deprecated.
8203 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector __bool int __a,__vector unsigned int __b)8204 vec_min(__vector __bool int __a, __vector unsigned int __b) {
8205   __vector unsigned int __ac = (__vector unsigned int)__a;
8206   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8207 }
8208 
8209 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector signed long long __b)8210 vec_min(__vector signed long long __a, __vector signed long long __b) {
8211   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8212 }
8213 
8214 // This prototype is deprecated.
8215 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector __bool long long __b)8216 vec_min(__vector signed long long __a, __vector __bool long long __b) {
8217   __vector signed long long __bc = (__vector signed long long)__b;
8218   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8219 }
8220 
8221 // This prototype is deprecated.
8222 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector __bool long long __a,__vector signed long long __b)8223 vec_min(__vector __bool long long __a, __vector signed long long __b) {
8224   __vector signed long long __ac = (__vector signed long long)__a;
8225   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8226 }
8227 
8228 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector unsigned long long __b)8229 vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
8230   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8231 }
8232 
8233 // This prototype is deprecated.
8234 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector __bool long long __b)8235 vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
8236   __vector unsigned long long __bc = (__vector unsigned long long)__b;
8237   return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8238 }
8239 
8240 // This prototype is deprecated.
8241 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector __bool long long __a,__vector unsigned long long __b)8242 vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
8243   __vector unsigned long long __ac = (__vector unsigned long long)__a;
8244   return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8245 }
8246 
8247 #if __ARCH__ >= 12
8248 static inline __ATTRS_o_ai __vector float
vec_min(__vector float __a,__vector float __b)8249 vec_min(__vector float __a, __vector float __b) {
8250   return __builtin_s390_vfminsb(__a, __b, 0);
8251 }
8252 #endif
8253 
8254 static inline __ATTRS_o_ai __vector double
vec_min(__vector double __a,__vector double __b)8255 vec_min(__vector double __a, __vector double __b) {
8256 #if __ARCH__ >= 12
8257   return __builtin_s390_vfmindb(__a, __b, 0);
8258 #else
8259   return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8260 #endif
8261 }
8262 
8263 /*-- vec_add_u128 -----------------------------------------------------------*/
8264 
8265 static inline __ATTRS_ai __vector unsigned char
vec_add_u128(__vector unsigned char __a,__vector unsigned char __b)8266 vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
8267   return __builtin_s390_vaq(__a, __b);
8268 }
8269 
8270 /*-- vec_addc ---------------------------------------------------------------*/
8271 
8272 static inline __ATTRS_o_ai __vector unsigned char
vec_addc(__vector unsigned char __a,__vector unsigned char __b)8273 vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
8274   return __builtin_s390_vaccb(__a, __b);
8275 }
8276 
8277 static inline __ATTRS_o_ai __vector unsigned short
vec_addc(__vector unsigned short __a,__vector unsigned short __b)8278 vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
8279   return __builtin_s390_vacch(__a, __b);
8280 }
8281 
8282 static inline __ATTRS_o_ai __vector unsigned int
vec_addc(__vector unsigned int __a,__vector unsigned int __b)8283 vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
8284   return __builtin_s390_vaccf(__a, __b);
8285 }
8286 
8287 static inline __ATTRS_o_ai __vector unsigned long long
vec_addc(__vector unsigned long long __a,__vector unsigned long long __b)8288 vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
8289   return __builtin_s390_vaccg(__a, __b);
8290 }
8291 
8292 /*-- vec_addc_u128 ----------------------------------------------------------*/
8293 
8294 static inline __ATTRS_ai __vector unsigned char
vec_addc_u128(__vector unsigned char __a,__vector unsigned char __b)8295 vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
8296   return __builtin_s390_vaccq(__a, __b);
8297 }
8298 
8299 /*-- vec_adde_u128 ----------------------------------------------------------*/
8300 
8301 static inline __ATTRS_ai __vector unsigned char
vec_adde_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8302 vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
8303               __vector unsigned char __c) {
8304   return __builtin_s390_vacq(__a, __b, __c);
8305 }
8306 
8307 /*-- vec_addec_u128 ---------------------------------------------------------*/
8308 
8309 static inline __ATTRS_ai __vector unsigned char
vec_addec_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8310 vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
8311                __vector unsigned char __c) {
8312   return __builtin_s390_vacccq(__a, __b, __c);
8313 }
8314 
8315 /*-- vec_avg ----------------------------------------------------------------*/
8316 
8317 static inline __ATTRS_o_ai __vector signed char
vec_avg(__vector signed char __a,__vector signed char __b)8318 vec_avg(__vector signed char __a, __vector signed char __b) {
8319   return __builtin_s390_vavgb(__a, __b);
8320 }
8321 
8322 static inline __ATTRS_o_ai __vector signed short
vec_avg(__vector signed short __a,__vector signed short __b)8323 vec_avg(__vector signed short __a, __vector signed short __b) {
8324   return __builtin_s390_vavgh(__a, __b);
8325 }
8326 
8327 static inline __ATTRS_o_ai __vector signed int
vec_avg(__vector signed int __a,__vector signed int __b)8328 vec_avg(__vector signed int __a, __vector signed int __b) {
8329   return __builtin_s390_vavgf(__a, __b);
8330 }
8331 
8332 static inline __ATTRS_o_ai __vector signed long long
vec_avg(__vector signed long long __a,__vector signed long long __b)8333 vec_avg(__vector signed long long __a, __vector signed long long __b) {
8334   return __builtin_s390_vavgg(__a, __b);
8335 }
8336 
8337 static inline __ATTRS_o_ai __vector unsigned char
vec_avg(__vector unsigned char __a,__vector unsigned char __b)8338 vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
8339   return __builtin_s390_vavglb(__a, __b);
8340 }
8341 
8342 static inline __ATTRS_o_ai __vector unsigned short
vec_avg(__vector unsigned short __a,__vector unsigned short __b)8343 vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
8344   return __builtin_s390_vavglh(__a, __b);
8345 }
8346 
8347 static inline __ATTRS_o_ai __vector unsigned int
vec_avg(__vector unsigned int __a,__vector unsigned int __b)8348 vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
8349   return __builtin_s390_vavglf(__a, __b);
8350 }
8351 
8352 static inline __ATTRS_o_ai __vector unsigned long long
vec_avg(__vector unsigned long long __a,__vector unsigned long long __b)8353 vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
8354   return __builtin_s390_vavglg(__a, __b);
8355 }
8356 
8357 /*-- vec_checksum -----------------------------------------------------------*/
8358 
8359 static inline __ATTRS_ai __vector unsigned int
vec_checksum(__vector unsigned int __a,__vector unsigned int __b)8360 vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
8361   return __builtin_s390_vcksm(__a, __b);
8362 }
8363 
8364 /*-- vec_gfmsum -------------------------------------------------------------*/
8365 
8366 static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum(__vector unsigned char __a,__vector unsigned char __b)8367 vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
8368   return __builtin_s390_vgfmb(__a, __b);
8369 }
8370 
8371 static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum(__vector unsigned short __a,__vector unsigned short __b)8372 vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
8373   return __builtin_s390_vgfmh(__a, __b);
8374 }
8375 
8376 static inline __ATTRS_o_ai __vector unsigned long long
vec_gfmsum(__vector unsigned int __a,__vector unsigned int __b)8377 vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
8378   return __builtin_s390_vgfmf(__a, __b);
8379 }
8380 
8381 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
8382 
8383 static inline __ATTRS_o_ai __vector unsigned char
vec_gfmsum_128(__vector unsigned long long __a,__vector unsigned long long __b)8384 vec_gfmsum_128(__vector unsigned long long __a,
8385                __vector unsigned long long __b) {
8386   return __builtin_s390_vgfmg(__a, __b);
8387 }
8388 
8389 /*-- vec_gfmsum_accum -------------------------------------------------------*/
8390 
8391 static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum_accum(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)8392 vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
8393                  __vector unsigned short __c) {
8394   return __builtin_s390_vgfmab(__a, __b, __c);
8395 }
8396 
8397 static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum_accum(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)8398 vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
8399                  __vector unsigned int __c) {
8400   return __builtin_s390_vgfmah(__a, __b, __c);
8401 }
8402 
8403 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)8404 vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
8405                  __vector unsigned long long __c) {
8406   return __builtin_s390_vgfmaf(__a, __b, __c);
8407 }
8408 
8409 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
8410 
8411 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)8412 vec_gfmsum_accum_128(__vector unsigned long long __a,
8413                      __vector unsigned long long __b,
8414                      __vector unsigned char __c) {
8415   return __builtin_s390_vgfmag(__a, __b, __c);
8416 }
8417 
8418 /*-- vec_mladd --------------------------------------------------------------*/
8419 
8420 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a,__vector signed char __b,__vector signed char __c)8421 vec_mladd(__vector signed char __a, __vector signed char __b,
8422           __vector signed char __c) {
8423   return __a * __b + __c;
8424 }
8425 
8426 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector unsigned char __a,__vector signed char __b,__vector signed char __c)8427 vec_mladd(__vector unsigned char __a, __vector signed char __b,
8428           __vector signed char __c) {
8429   return (__vector signed char)__a * __b + __c;
8430 }
8431 
8432 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a,__vector unsigned char __b,__vector unsigned char __c)8433 vec_mladd(__vector signed char __a, __vector unsigned char __b,
8434           __vector unsigned char __c) {
8435   return __a * (__vector signed char)__b + (__vector signed char)__c;
8436 }
8437 
8438 static inline __ATTRS_o_ai __vector unsigned char
vec_mladd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8439 vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
8440           __vector unsigned char __c) {
8441   return __a * __b + __c;
8442 }
8443 
8444 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a,__vector signed short __b,__vector signed short __c)8445 vec_mladd(__vector signed short __a, __vector signed short __b,
8446           __vector signed short __c) {
8447   return __a * __b + __c;
8448 }
8449 
8450 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector unsigned short __a,__vector signed short __b,__vector signed short __c)8451 vec_mladd(__vector unsigned short __a, __vector signed short __b,
8452           __vector signed short __c) {
8453   return (__vector signed short)__a * __b + __c;
8454 }
8455 
8456 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a,__vector unsigned short __b,__vector unsigned short __c)8457 vec_mladd(__vector signed short __a, __vector unsigned short __b,
8458           __vector unsigned short __c) {
8459   return __a * (__vector signed short)__b + (__vector signed short)__c;
8460 }
8461 
8462 static inline __ATTRS_o_ai __vector unsigned short
vec_mladd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)8463 vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
8464           __vector unsigned short __c) {
8465   return __a * __b + __c;
8466 }
8467 
8468 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a,__vector signed int __b,__vector signed int __c)8469 vec_mladd(__vector signed int __a, __vector signed int __b,
8470           __vector signed int __c) {
8471   return __a * __b + __c;
8472 }
8473 
8474 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector unsigned int __a,__vector signed int __b,__vector signed int __c)8475 vec_mladd(__vector unsigned int __a, __vector signed int __b,
8476           __vector signed int __c) {
8477   return (__vector signed int)__a * __b + __c;
8478 }
8479 
8480 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a,__vector unsigned int __b,__vector unsigned int __c)8481 vec_mladd(__vector signed int __a, __vector unsigned int __b,
8482           __vector unsigned int __c) {
8483   return __a * (__vector signed int)__b + (__vector signed int)__c;
8484 }
8485 
8486 static inline __ATTRS_o_ai __vector unsigned int
vec_mladd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)8487 vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
8488           __vector unsigned int __c) {
8489   return __a * __b + __c;
8490 }
8491 
8492 /*-- vec_mhadd --------------------------------------------------------------*/
8493 
8494 static inline __ATTRS_o_ai __vector signed char
vec_mhadd(__vector signed char __a,__vector signed char __b,__vector signed char __c)8495 vec_mhadd(__vector signed char __a, __vector signed char __b,
8496           __vector signed char __c) {
8497   return __builtin_s390_vmahb(__a, __b, __c);
8498 }
8499 
8500 static inline __ATTRS_o_ai __vector unsigned char
vec_mhadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8501 vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
8502           __vector unsigned char __c) {
8503   return __builtin_s390_vmalhb(__a, __b, __c);
8504 }
8505 
8506 static inline __ATTRS_o_ai __vector signed short
vec_mhadd(__vector signed short __a,__vector signed short __b,__vector signed short __c)8507 vec_mhadd(__vector signed short __a, __vector signed short __b,
8508           __vector signed short __c) {
8509   return __builtin_s390_vmahh(__a, __b, __c);
8510 }
8511 
8512 static inline __ATTRS_o_ai __vector unsigned short
vec_mhadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)8513 vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
8514           __vector unsigned short __c) {
8515   return __builtin_s390_vmalhh(__a, __b, __c);
8516 }
8517 
8518 static inline __ATTRS_o_ai __vector signed int
vec_mhadd(__vector signed int __a,__vector signed int __b,__vector signed int __c)8519 vec_mhadd(__vector signed int __a, __vector signed int __b,
8520           __vector signed int __c) {
8521   return __builtin_s390_vmahf(__a, __b, __c);
8522 }
8523 
8524 static inline __ATTRS_o_ai __vector unsigned int
vec_mhadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)8525 vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
8526           __vector unsigned int __c) {
8527   return __builtin_s390_vmalhf(__a, __b, __c);
8528 }
8529 
8530 /*-- vec_meadd --------------------------------------------------------------*/
8531 
8532 static inline __ATTRS_o_ai __vector signed short
vec_meadd(__vector signed char __a,__vector signed char __b,__vector signed short __c)8533 vec_meadd(__vector signed char __a, __vector signed char __b,
8534           __vector signed short __c) {
8535   return __builtin_s390_vmaeb(__a, __b, __c);
8536 }
8537 
8538 static inline __ATTRS_o_ai __vector unsigned short
vec_meadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)8539 vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
8540           __vector unsigned short __c) {
8541   return __builtin_s390_vmaleb(__a, __b, __c);
8542 }
8543 
8544 static inline __ATTRS_o_ai __vector signed int
vec_meadd(__vector signed short __a,__vector signed short __b,__vector signed int __c)8545 vec_meadd(__vector signed short __a, __vector signed short __b,
8546           __vector signed int __c) {
8547   return __builtin_s390_vmaeh(__a, __b, __c);
8548 }
8549 
8550 static inline __ATTRS_o_ai __vector unsigned int
vec_meadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)8551 vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
8552           __vector unsigned int __c) {
8553   return __builtin_s390_vmaleh(__a, __b, __c);
8554 }
8555 
8556 static inline __ATTRS_o_ai __vector signed long long
vec_meadd(__vector signed int __a,__vector signed int __b,__vector signed long long __c)8557 vec_meadd(__vector signed int __a, __vector signed int __b,
8558           __vector signed long long __c) {
8559   return __builtin_s390_vmaef(__a, __b, __c);
8560 }
8561 
8562 static inline __ATTRS_o_ai __vector unsigned long long
vec_meadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)8563 vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
8564           __vector unsigned long long __c) {
8565   return __builtin_s390_vmalef(__a, __b, __c);
8566 }
8567 
8568 /*-- vec_moadd --------------------------------------------------------------*/
8569 
8570 static inline __ATTRS_o_ai __vector signed short
vec_moadd(__vector signed char __a,__vector signed char __b,__vector signed short __c)8571 vec_moadd(__vector signed char __a, __vector signed char __b,
8572           __vector signed short __c) {
8573   return __builtin_s390_vmaob(__a, __b, __c);
8574 }
8575 
8576 static inline __ATTRS_o_ai __vector unsigned short
vec_moadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)8577 vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
8578           __vector unsigned short __c) {
8579   return __builtin_s390_vmalob(__a, __b, __c);
8580 }
8581 
8582 static inline __ATTRS_o_ai __vector signed int
vec_moadd(__vector signed short __a,__vector signed short __b,__vector signed int __c)8583 vec_moadd(__vector signed short __a, __vector signed short __b,
8584           __vector signed int __c) {
8585   return __builtin_s390_vmaoh(__a, __b, __c);
8586 }
8587 
8588 static inline __ATTRS_o_ai __vector unsigned int
vec_moadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)8589 vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
8590           __vector unsigned int __c) {
8591   return __builtin_s390_vmaloh(__a, __b, __c);
8592 }
8593 
8594 static inline __ATTRS_o_ai __vector signed long long
vec_moadd(__vector signed int __a,__vector signed int __b,__vector signed long long __c)8595 vec_moadd(__vector signed int __a, __vector signed int __b,
8596           __vector signed long long __c) {
8597   return __builtin_s390_vmaof(__a, __b, __c);
8598 }
8599 
8600 static inline __ATTRS_o_ai __vector unsigned long long
vec_moadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)8601 vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
8602           __vector unsigned long long __c) {
8603   return __builtin_s390_vmalof(__a, __b, __c);
8604 }
8605 
8606 /*-- vec_mulh ---------------------------------------------------------------*/
8607 
8608 static inline __ATTRS_o_ai __vector signed char
vec_mulh(__vector signed char __a,__vector signed char __b)8609 vec_mulh(__vector signed char __a, __vector signed char __b) {
8610   return __builtin_s390_vmhb(__a, __b);
8611 }
8612 
8613 static inline __ATTRS_o_ai __vector unsigned char
vec_mulh(__vector unsigned char __a,__vector unsigned char __b)8614 vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
8615   return __builtin_s390_vmlhb(__a, __b);
8616 }
8617 
8618 static inline __ATTRS_o_ai __vector signed short
vec_mulh(__vector signed short __a,__vector signed short __b)8619 vec_mulh(__vector signed short __a, __vector signed short __b) {
8620   return __builtin_s390_vmhh(__a, __b);
8621 }
8622 
8623 static inline __ATTRS_o_ai __vector unsigned short
vec_mulh(__vector unsigned short __a,__vector unsigned short __b)8624 vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
8625   return __builtin_s390_vmlhh(__a, __b);
8626 }
8627 
8628 static inline __ATTRS_o_ai __vector signed int
vec_mulh(__vector signed int __a,__vector signed int __b)8629 vec_mulh(__vector signed int __a, __vector signed int __b) {
8630   return __builtin_s390_vmhf(__a, __b);
8631 }
8632 
8633 static inline __ATTRS_o_ai __vector unsigned int
vec_mulh(__vector unsigned int __a,__vector unsigned int __b)8634 vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
8635   return __builtin_s390_vmlhf(__a, __b);
8636 }
8637 
8638 /*-- vec_mule ---------------------------------------------------------------*/
8639 
8640 static inline __ATTRS_o_ai __vector signed short
vec_mule(__vector signed char __a,__vector signed char __b)8641 vec_mule(__vector signed char __a, __vector signed char __b) {
8642   return __builtin_s390_vmeb(__a, __b);
8643 }
8644 
8645 static inline __ATTRS_o_ai __vector unsigned short
vec_mule(__vector unsigned char __a,__vector unsigned char __b)8646 vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
8647   return __builtin_s390_vmleb(__a, __b);
8648 }
8649 
8650 static inline __ATTRS_o_ai __vector signed int
vec_mule(__vector signed short __a,__vector signed short __b)8651 vec_mule(__vector signed short __a, __vector signed short __b) {
8652   return __builtin_s390_vmeh(__a, __b);
8653 }
8654 
8655 static inline __ATTRS_o_ai __vector unsigned int
vec_mule(__vector unsigned short __a,__vector unsigned short __b)8656 vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
8657   return __builtin_s390_vmleh(__a, __b);
8658 }
8659 
8660 static inline __ATTRS_o_ai __vector signed long long
vec_mule(__vector signed int __a,__vector signed int __b)8661 vec_mule(__vector signed int __a, __vector signed int __b) {
8662   return __builtin_s390_vmef(__a, __b);
8663 }
8664 
8665 static inline __ATTRS_o_ai __vector unsigned long long
vec_mule(__vector unsigned int __a,__vector unsigned int __b)8666 vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
8667   return __builtin_s390_vmlef(__a, __b);
8668 }
8669 
8670 /*-- vec_mulo ---------------------------------------------------------------*/
8671 
8672 static inline __ATTRS_o_ai __vector signed short
vec_mulo(__vector signed char __a,__vector signed char __b)8673 vec_mulo(__vector signed char __a, __vector signed char __b) {
8674   return __builtin_s390_vmob(__a, __b);
8675 }
8676 
8677 static inline __ATTRS_o_ai __vector unsigned short
vec_mulo(__vector unsigned char __a,__vector unsigned char __b)8678 vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
8679   return __builtin_s390_vmlob(__a, __b);
8680 }
8681 
8682 static inline __ATTRS_o_ai __vector signed int
vec_mulo(__vector signed short __a,__vector signed short __b)8683 vec_mulo(__vector signed short __a, __vector signed short __b) {
8684   return __builtin_s390_vmoh(__a, __b);
8685 }
8686 
8687 static inline __ATTRS_o_ai __vector unsigned int
vec_mulo(__vector unsigned short __a,__vector unsigned short __b)8688 vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
8689   return __builtin_s390_vmloh(__a, __b);
8690 }
8691 
8692 static inline __ATTRS_o_ai __vector signed long long
vec_mulo(__vector signed int __a,__vector signed int __b)8693 vec_mulo(__vector signed int __a, __vector signed int __b) {
8694   return __builtin_s390_vmof(__a, __b);
8695 }
8696 
8697 static inline __ATTRS_o_ai __vector unsigned long long
vec_mulo(__vector unsigned int __a,__vector unsigned int __b)8698 vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
8699   return __builtin_s390_vmlof(__a, __b);
8700 }
8701 
8702 /*-- vec_msum_u128 ----------------------------------------------------------*/
8703 
8704 #if __ARCH__ >= 12
8705 #define vec_msum_u128(X, Y, Z, W) \
8706   ((__vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W)));
8707 #endif
8708 
8709 /*-- vec_sub_u128 -----------------------------------------------------------*/
8710 
8711 static inline __ATTRS_ai __vector unsigned char
vec_sub_u128(__vector unsigned char __a,__vector unsigned char __b)8712 vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
8713   return __builtin_s390_vsq(__a, __b);
8714 }
8715 
8716 /*-- vec_subc ---------------------------------------------------------------*/
8717 
8718 static inline __ATTRS_o_ai __vector unsigned char
vec_subc(__vector unsigned char __a,__vector unsigned char __b)8719 vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
8720   return __builtin_s390_vscbib(__a, __b);
8721 }
8722 
8723 static inline __ATTRS_o_ai __vector unsigned short
vec_subc(__vector unsigned short __a,__vector unsigned short __b)8724 vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
8725   return __builtin_s390_vscbih(__a, __b);
8726 }
8727 
8728 static inline __ATTRS_o_ai __vector unsigned int
vec_subc(__vector unsigned int __a,__vector unsigned int __b)8729 vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
8730   return __builtin_s390_vscbif(__a, __b);
8731 }
8732 
8733 static inline __ATTRS_o_ai __vector unsigned long long
vec_subc(__vector unsigned long long __a,__vector unsigned long long __b)8734 vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
8735   return __builtin_s390_vscbig(__a, __b);
8736 }
8737 
8738 /*-- vec_subc_u128 ----------------------------------------------------------*/
8739 
8740 static inline __ATTRS_ai __vector unsigned char
vec_subc_u128(__vector unsigned char __a,__vector unsigned char __b)8741 vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
8742   return __builtin_s390_vscbiq(__a, __b);
8743 }
8744 
8745 /*-- vec_sube_u128 ----------------------------------------------------------*/
8746 
8747 static inline __ATTRS_ai __vector unsigned char
vec_sube_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8748 vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
8749               __vector unsigned char __c) {
8750   return __builtin_s390_vsbiq(__a, __b, __c);
8751 }
8752 
8753 /*-- vec_subec_u128 ---------------------------------------------------------*/
8754 
8755 static inline __ATTRS_ai __vector unsigned char
vec_subec_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8756 vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
8757                __vector unsigned char __c) {
8758   return __builtin_s390_vsbcbiq(__a, __b, __c);
8759 }
8760 
8761 /*-- vec_sum2 ---------------------------------------------------------------*/
8762 
8763 static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned short __a,__vector unsigned short __b)8764 vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
8765   return __builtin_s390_vsumgh(__a, __b);
8766 }
8767 
8768 static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned int __a,__vector unsigned int __b)8769 vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
8770   return __builtin_s390_vsumgf(__a, __b);
8771 }
8772 
8773 /*-- vec_sum_u128 -----------------------------------------------------------*/
8774 
8775 static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned int __a,__vector unsigned int __b)8776 vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
8777   return __builtin_s390_vsumqf(__a, __b);
8778 }
8779 
8780 static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned long long __a,__vector unsigned long long __b)8781 vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
8782   return __builtin_s390_vsumqg(__a, __b);
8783 }
8784 
8785 /*-- vec_sum4 ---------------------------------------------------------------*/
8786 
8787 static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned char __a,__vector unsigned char __b)8788 vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
8789   return __builtin_s390_vsumb(__a, __b);
8790 }
8791 
8792 static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned short __a,__vector unsigned short __b)8793 vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
8794   return __builtin_s390_vsumh(__a, __b);
8795 }
8796 
8797 /*-- vec_test_mask ----------------------------------------------------------*/
8798 
8799 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed char __a,__vector unsigned char __b)8800 vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
8801   return __builtin_s390_vtm((__vector unsigned char)__a,
8802                             (__vector unsigned char)__b);
8803 }
8804 
8805 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned char __a,__vector unsigned char __b)8806 vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
8807   return __builtin_s390_vtm(__a, __b);
8808 }
8809 
8810 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed short __a,__vector unsigned short __b)8811 vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
8812   return __builtin_s390_vtm((__vector unsigned char)__a,
8813                             (__vector unsigned char)__b);
8814 }
8815 
8816 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned short __a,__vector unsigned short __b)8817 vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
8818   return __builtin_s390_vtm((__vector unsigned char)__a,
8819                             (__vector unsigned char)__b);
8820 }
8821 
8822 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed int __a,__vector unsigned int __b)8823 vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
8824   return __builtin_s390_vtm((__vector unsigned char)__a,
8825                             (__vector unsigned char)__b);
8826 }
8827 
8828 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned int __a,__vector unsigned int __b)8829 vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
8830   return __builtin_s390_vtm((__vector unsigned char)__a,
8831                             (__vector unsigned char)__b);
8832 }
8833 
8834 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed long long __a,__vector unsigned long long __b)8835 vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
8836   return __builtin_s390_vtm((__vector unsigned char)__a,
8837                             (__vector unsigned char)__b);
8838 }
8839 
8840 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned long long __a,__vector unsigned long long __b)8841 vec_test_mask(__vector unsigned long long __a,
8842               __vector unsigned long long __b) {
8843   return __builtin_s390_vtm((__vector unsigned char)__a,
8844                             (__vector unsigned char)__b);
8845 }
8846 
8847 #if __ARCH__ >= 12
8848 static inline __ATTRS_o_ai int
vec_test_mask(__vector float __a,__vector unsigned int __b)8849 vec_test_mask(__vector float __a, __vector unsigned int __b) {
8850   return __builtin_s390_vtm((__vector unsigned char)__a,
8851                             (__vector unsigned char)__b);
8852 }
8853 #endif
8854 
8855 static inline __ATTRS_o_ai int
vec_test_mask(__vector double __a,__vector unsigned long long __b)8856 vec_test_mask(__vector double __a, __vector unsigned long long __b) {
8857   return __builtin_s390_vtm((__vector unsigned char)__a,
8858                             (__vector unsigned char)__b);
8859 }
8860 
8861 /*-- vec_madd ---------------------------------------------------------------*/
8862 
8863 #if __ARCH__ >= 12
8864 static inline __ATTRS_o_ai __vector float
vec_madd(__vector float __a,__vector float __b,__vector float __c)8865 vec_madd(__vector float __a, __vector float __b, __vector float __c) {
8866   return __builtin_s390_vfmasb(__a, __b, __c);
8867 }
8868 #endif
8869 
8870 static inline __ATTRS_o_ai __vector double
vec_madd(__vector double __a,__vector double __b,__vector double __c)8871 vec_madd(__vector double __a, __vector double __b, __vector double __c) {
8872   return __builtin_s390_vfmadb(__a, __b, __c);
8873 }
8874 
8875 /*-- vec_msub ---------------------------------------------------------------*/
8876 
8877 #if __ARCH__ >= 12
8878 static inline __ATTRS_o_ai __vector float
vec_msub(__vector float __a,__vector float __b,__vector float __c)8879 vec_msub(__vector float __a, __vector float __b, __vector float __c) {
8880   return __builtin_s390_vfmssb(__a, __b, __c);
8881 }
8882 #endif
8883 
8884 static inline __ATTRS_o_ai __vector double
vec_msub(__vector double __a,__vector double __b,__vector double __c)8885 vec_msub(__vector double __a, __vector double __b, __vector double __c) {
8886   return __builtin_s390_vfmsdb(__a, __b, __c);
8887 }
8888 
8889 /*-- vec_nmadd ---------------------------------------------------------------*/
8890 
8891 #if __ARCH__ >= 12
8892 static inline __ATTRS_o_ai __vector float
vec_nmadd(__vector float __a,__vector float __b,__vector float __c)8893 vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
8894   return __builtin_s390_vfnmasb(__a, __b, __c);
8895 }
8896 
8897 static inline __ATTRS_o_ai __vector double
vec_nmadd(__vector double __a,__vector double __b,__vector double __c)8898 vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
8899   return __builtin_s390_vfnmadb(__a, __b, __c);
8900 }
8901 #endif
8902 
8903 /*-- vec_nmsub ---------------------------------------------------------------*/
8904 
8905 #if __ARCH__ >= 12
8906 static inline __ATTRS_o_ai __vector float
vec_nmsub(__vector float __a,__vector float __b,__vector float __c)8907 vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
8908   return __builtin_s390_vfnmssb(__a, __b, __c);
8909 }
8910 
8911 static inline __ATTRS_o_ai __vector double
vec_nmsub(__vector double __a,__vector double __b,__vector double __c)8912 vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
8913   return __builtin_s390_vfnmsdb(__a, __b, __c);
8914 }
8915 #endif
8916 
8917 /*-- vec_sqrt ---------------------------------------------------------------*/
8918 
8919 #if __ARCH__ >= 12
8920 static inline __ATTRS_o_ai __vector float
vec_sqrt(__vector float __a)8921 vec_sqrt(__vector float __a) {
8922   return __builtin_s390_vfsqsb(__a);
8923 }
8924 #endif
8925 
8926 static inline __ATTRS_o_ai __vector double
vec_sqrt(__vector double __a)8927 vec_sqrt(__vector double __a) {
8928   return __builtin_s390_vfsqdb(__a);
8929 }
8930 
8931 /*-- vec_ld2f ---------------------------------------------------------------*/
8932 
8933 // This prototype is deprecated.
8934 static inline __ATTRS_ai __vector double
vec_ld2f(const float * __ptr)8935 vec_ld2f(const float *__ptr) {
8936   typedef float __v2f32 __attribute__((__vector_size__(8)));
8937   return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
8938 }
8939 
8940 /*-- vec_st2f ---------------------------------------------------------------*/
8941 
8942 // This prototype is deprecated.
8943 static inline __ATTRS_ai void
vec_st2f(__vector double __a,float * __ptr)8944 vec_st2f(__vector double __a, float *__ptr) {
8945   typedef float __v2f32 __attribute__((__vector_size__(8)));
8946   *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
8947 }
8948 
8949 /*-- vec_ctd ----------------------------------------------------------------*/
8950 
8951 // This prototype is deprecated.
8952 static inline __ATTRS_o_ai __vector double
vec_ctd(__vector signed long long __a,int __b)8953 vec_ctd(__vector signed long long __a, int __b)
8954   __constant_range(__b, 0, 31) {
8955   __vector double __conv = __builtin_convertvector(__a, __vector double);
8956   __conv *= ((__vector double)(__vector unsigned long long)
8957              ((0x3ffULL - __b) << 52));
8958   return __conv;
8959 }
8960 
8961 // This prototype is deprecated.
8962 static inline __ATTRS_o_ai __vector double
vec_ctd(__vector unsigned long long __a,int __b)8963 vec_ctd(__vector unsigned long long __a, int __b)
8964   __constant_range(__b, 0, 31) {
8965   __vector double __conv = __builtin_convertvector(__a, __vector double);
8966   __conv *= ((__vector double)(__vector unsigned long long)
8967              ((0x3ffULL - __b) << 52));
8968   return __conv;
8969 }
8970 
8971 /*-- vec_ctsl ---------------------------------------------------------------*/
8972 
8973 // This prototype is deprecated.
8974 static inline __ATTRS_o_ai __vector signed long long
vec_ctsl(__vector double __a,int __b)8975 vec_ctsl(__vector double __a, int __b)
8976   __constant_range(__b, 0, 31) {
8977   __a *= ((__vector double)(__vector unsigned long long)
8978           ((0x3ffULL + __b) << 52));
8979   return __builtin_convertvector(__a, __vector signed long long);
8980 }
8981 
8982 /*-- vec_ctul ---------------------------------------------------------------*/
8983 
8984 // This prototype is deprecated.
8985 static inline __ATTRS_o_ai __vector unsigned long long
vec_ctul(__vector double __a,int __b)8986 vec_ctul(__vector double __a, int __b)
8987   __constant_range(__b, 0, 31) {
8988   __a *= ((__vector double)(__vector unsigned long long)
8989           ((0x3ffULL + __b) << 52));
8990   return __builtin_convertvector(__a, __vector unsigned long long);
8991 }
8992 
8993 /*-- vec_doublee ------------------------------------------------------------*/
8994 
8995 #if __ARCH__ >= 12
8996 static inline __ATTRS_ai __vector double
vec_doublee(__vector float __a)8997 vec_doublee(__vector float __a) {
8998   typedef float __v2f32 __attribute__((__vector_size__(8)));
8999   __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
9000   return __builtin_convertvector(__pack, __vector double);
9001 }
9002 #endif
9003 
9004 /*-- vec_floate -------------------------------------------------------------*/
9005 
9006 #if __ARCH__ >= 12
9007 static inline __ATTRS_ai __vector float
vec_floate(__vector double __a)9008 vec_floate(__vector double __a) {
9009   typedef float __v2f32 __attribute__((__vector_size__(8)));
9010   __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
9011   return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
9012 }
9013 #endif
9014 
9015 /*-- vec_double -------------------------------------------------------------*/
9016 
9017 static inline __ATTRS_o_ai __vector double
vec_double(__vector signed long long __a)9018 vec_double(__vector signed long long __a) {
9019   return __builtin_convertvector(__a, __vector double);
9020 }
9021 
9022 static inline __ATTRS_o_ai __vector double
vec_double(__vector unsigned long long __a)9023 vec_double(__vector unsigned long long __a) {
9024   return __builtin_convertvector(__a, __vector double);
9025 }
9026 
9027 /*-- vec_float --------------------------------------------------------------*/
9028 
9029 #if __ARCH__ >= 13
9030 
9031 static inline __ATTRS_o_ai __vector float
vec_float(__vector signed int __a)9032 vec_float(__vector signed int __a) {
9033   return __builtin_convertvector(__a, __vector float);
9034 }
9035 
9036 static inline __ATTRS_o_ai __vector float
vec_float(__vector unsigned int __a)9037 vec_float(__vector unsigned int __a) {
9038   return __builtin_convertvector(__a, __vector float);
9039 }
9040 
9041 #endif
9042 
9043 /*-- vec_signed -------------------------------------------------------------*/
9044 
9045 static inline __ATTRS_o_ai __vector signed long long
vec_signed(__vector double __a)9046 vec_signed(__vector double __a) {
9047   return __builtin_convertvector(__a, __vector signed long long);
9048 }
9049 
9050 #if __ARCH__ >= 13
9051 static inline __ATTRS_o_ai __vector signed int
vec_signed(__vector float __a)9052 vec_signed(__vector float __a) {
9053   return __builtin_convertvector(__a, __vector signed int);
9054 }
9055 #endif
9056 
9057 /*-- vec_unsigned -----------------------------------------------------------*/
9058 
9059 static inline __ATTRS_o_ai __vector unsigned long long
vec_unsigned(__vector double __a)9060 vec_unsigned(__vector double __a) {
9061   return __builtin_convertvector(__a, __vector unsigned long long);
9062 }
9063 
9064 #if __ARCH__ >= 13
9065 static inline __ATTRS_o_ai __vector unsigned int
vec_unsigned(__vector float __a)9066 vec_unsigned(__vector float __a) {
9067   return __builtin_convertvector(__a, __vector unsigned int);
9068 }
9069 #endif
9070 
9071 /*-- vec_roundp -------------------------------------------------------------*/
9072 
9073 #if __ARCH__ >= 12
9074 static inline __ATTRS_o_ai __vector float
vec_roundp(__vector float __a)9075 vec_roundp(__vector float __a) {
9076   return __builtin_s390_vfisb(__a, 4, 6);
9077 }
9078 #endif
9079 
9080 static inline __ATTRS_o_ai __vector double
vec_roundp(__vector double __a)9081 vec_roundp(__vector double __a) {
9082   return __builtin_s390_vfidb(__a, 4, 6);
9083 }
9084 
9085 /*-- vec_ceil ---------------------------------------------------------------*/
9086 
9087 #if __ARCH__ >= 12
9088 static inline __ATTRS_o_ai __vector float
vec_ceil(__vector float __a)9089 vec_ceil(__vector float __a) {
9090   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9091   return __builtin_s390_vfisb(__a, 4, 6);
9092 }
9093 #endif
9094 
9095 static inline __ATTRS_o_ai __vector double
vec_ceil(__vector double __a)9096 vec_ceil(__vector double __a) {
9097   // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9098   return __builtin_s390_vfidb(__a, 4, 6);
9099 }
9100 
9101 /*-- vec_roundm -------------------------------------------------------------*/
9102 
9103 #if __ARCH__ >= 12
9104 static inline __ATTRS_o_ai __vector float
vec_roundm(__vector float __a)9105 vec_roundm(__vector float __a) {
9106   return __builtin_s390_vfisb(__a, 4, 7);
9107 }
9108 #endif
9109 
9110 static inline __ATTRS_o_ai __vector double
vec_roundm(__vector double __a)9111 vec_roundm(__vector double __a) {
9112   return __builtin_s390_vfidb(__a, 4, 7);
9113 }
9114 
9115 /*-- vec_floor --------------------------------------------------------------*/
9116 
9117 #if __ARCH__ >= 12
9118 static inline __ATTRS_o_ai __vector float
vec_floor(__vector float __a)9119 vec_floor(__vector float __a) {
9120   // On this platform, vec_floor never triggers the IEEE-inexact exception.
9121   return __builtin_s390_vfisb(__a, 4, 7);
9122 }
9123 #endif
9124 
9125 static inline __ATTRS_o_ai __vector double
vec_floor(__vector double __a)9126 vec_floor(__vector double __a) {
9127   // On this platform, vec_floor never triggers the IEEE-inexact exception.
9128   return __builtin_s390_vfidb(__a, 4, 7);
9129 }
9130 
9131 /*-- vec_roundz -------------------------------------------------------------*/
9132 
9133 #if __ARCH__ >= 12
9134 static inline __ATTRS_o_ai __vector float
vec_roundz(__vector float __a)9135 vec_roundz(__vector float __a) {
9136   return __builtin_s390_vfisb(__a, 4, 5);
9137 }
9138 #endif
9139 
9140 static inline __ATTRS_o_ai __vector double
vec_roundz(__vector double __a)9141 vec_roundz(__vector double __a) {
9142   return __builtin_s390_vfidb(__a, 4, 5);
9143 }
9144 
9145 /*-- vec_trunc --------------------------------------------------------------*/
9146 
9147 #if __ARCH__ >= 12
9148 static inline __ATTRS_o_ai __vector float
vec_trunc(__vector float __a)9149 vec_trunc(__vector float __a) {
9150   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9151   return __builtin_s390_vfisb(__a, 4, 5);
9152 }
9153 #endif
9154 
9155 static inline __ATTRS_o_ai __vector double
vec_trunc(__vector double __a)9156 vec_trunc(__vector double __a) {
9157   // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9158   return __builtin_s390_vfidb(__a, 4, 5);
9159 }
9160 
9161 /*-- vec_roundc -------------------------------------------------------------*/
9162 
9163 #if __ARCH__ >= 12
9164 static inline __ATTRS_o_ai __vector float
vec_roundc(__vector float __a)9165 vec_roundc(__vector float __a) {
9166   return __builtin_s390_vfisb(__a, 4, 0);
9167 }
9168 #endif
9169 
9170 static inline __ATTRS_o_ai __vector double
vec_roundc(__vector double __a)9171 vec_roundc(__vector double __a) {
9172   return __builtin_s390_vfidb(__a, 4, 0);
9173 }
9174 
9175 /*-- vec_rint ---------------------------------------------------------------*/
9176 
9177 #if __ARCH__ >= 12
9178 static inline __ATTRS_o_ai __vector float
vec_rint(__vector float __a)9179 vec_rint(__vector float __a) {
9180   // vec_rint may trigger the IEEE-inexact exception.
9181   return __builtin_s390_vfisb(__a, 0, 0);
9182 }
9183 #endif
9184 
9185 static inline __ATTRS_o_ai __vector double
vec_rint(__vector double __a)9186 vec_rint(__vector double __a) {
9187   // vec_rint may trigger the IEEE-inexact exception.
9188   return __builtin_s390_vfidb(__a, 0, 0);
9189 }
9190 
9191 /*-- vec_round --------------------------------------------------------------*/
9192 
9193 #if __ARCH__ >= 12
9194 static inline __ATTRS_o_ai __vector float
vec_round(__vector float __a)9195 vec_round(__vector float __a) {
9196   return __builtin_s390_vfisb(__a, 4, 4);
9197 }
9198 #endif
9199 
9200 static inline __ATTRS_o_ai __vector double
vec_round(__vector double __a)9201 vec_round(__vector double __a) {
9202   return __builtin_s390_vfidb(__a, 4, 4);
9203 }
9204 
9205 /*-- vec_fp_test_data_class -------------------------------------------------*/
9206 
9207 #if __ARCH__ >= 12
9208 extern __ATTRS_o __vector __bool int
9209 vec_fp_test_data_class(__vector float __a, int __b, int *__c)
9210   __constant_range(__b, 0, 4095);
9211 
9212 extern __ATTRS_o __vector __bool long long
9213 vec_fp_test_data_class(__vector double __a, int __b, int *__c)
9214   __constant_range(__b, 0, 4095);
9215 
9216 #define vec_fp_test_data_class(X, Y, Z) \
9217   ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
9218    __extension__ ({ \
9219      __vector unsigned char __res; \
9220      __vector unsigned char __x = (__vector unsigned char)(X); \
9221      int *__z = (Z); \
9222      switch (sizeof ((X)[0])) { \
9223      case 4:  __res = (__vector unsigned char) \
9224                       __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
9225               break; \
9226      default: __res = (__vector unsigned char) \
9227                       __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
9228               break; \
9229      } __res; }))
9230 #else
9231 #define vec_fp_test_data_class(X, Y, Z) \
9232   ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
9233 #endif
9234 
9235 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
9236 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
9237 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
9238 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
9239 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
9240 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
9241                                __VEC_CLASS_FP_NORMAL_N)
9242 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
9243 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
9244 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
9245                                   __VEC_CLASS_FP_SUBNORMAL_N)
9246 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
9247 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
9248 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
9249                                  __VEC_CLASS_FP_INFINITY_N)
9250 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
9251 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
9252 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
9253 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
9254 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
9255 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
9256 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
9257 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
9258                                    __VEC_CLASS_FP_SUBNORMAL | \
9259                                    __VEC_CLASS_FP_ZERO | \
9260                                    __VEC_CLASS_FP_INFINITY)
9261 
9262 /*-- vec_cp_until_zero ------------------------------------------------------*/
9263 
9264 static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero(__vector signed char __a)9265 vec_cp_until_zero(__vector signed char __a) {
9266   return ((__vector signed char)
9267           __builtin_s390_vistrb((__vector unsigned char)__a));
9268 }
9269 
9270 static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero(__vector __bool char __a)9271 vec_cp_until_zero(__vector __bool char __a) {
9272   return ((__vector __bool char)
9273           __builtin_s390_vistrb((__vector unsigned char)__a));
9274 }
9275 
9276 static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero(__vector unsigned char __a)9277 vec_cp_until_zero(__vector unsigned char __a) {
9278   return __builtin_s390_vistrb(__a);
9279 }
9280 
9281 static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero(__vector signed short __a)9282 vec_cp_until_zero(__vector signed short __a) {
9283   return ((__vector signed short)
9284           __builtin_s390_vistrh((__vector unsigned short)__a));
9285 }
9286 
9287 static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero(__vector __bool short __a)9288 vec_cp_until_zero(__vector __bool short __a) {
9289   return ((__vector __bool short)
9290           __builtin_s390_vistrh((__vector unsigned short)__a));
9291 }
9292 
9293 static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero(__vector unsigned short __a)9294 vec_cp_until_zero(__vector unsigned short __a) {
9295   return __builtin_s390_vistrh(__a);
9296 }
9297 
9298 static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero(__vector signed int __a)9299 vec_cp_until_zero(__vector signed int __a) {
9300   return ((__vector signed int)
9301           __builtin_s390_vistrf((__vector unsigned int)__a));
9302 }
9303 
9304 static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero(__vector __bool int __a)9305 vec_cp_until_zero(__vector __bool int __a) {
9306   return ((__vector __bool int)
9307           __builtin_s390_vistrf((__vector unsigned int)__a));
9308 }
9309 
9310 static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero(__vector unsigned int __a)9311 vec_cp_until_zero(__vector unsigned int __a) {
9312   return __builtin_s390_vistrf(__a);
9313 }
9314 
9315 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
9316 
9317 static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero_cc(__vector signed char __a,int * __cc)9318 vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
9319   return (__vector signed char)
9320     __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
9321 }
9322 
9323 static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero_cc(__vector __bool char __a,int * __cc)9324 vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
9325   return (__vector __bool char)
9326     __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
9327 }
9328 
9329 static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero_cc(__vector unsigned char __a,int * __cc)9330 vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
9331   return __builtin_s390_vistrbs(__a, __cc);
9332 }
9333 
9334 static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero_cc(__vector signed short __a,int * __cc)9335 vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
9336   return (__vector signed short)
9337     __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
9338 }
9339 
9340 static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero_cc(__vector __bool short __a,int * __cc)9341 vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
9342   return (__vector __bool short)
9343     __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
9344 }
9345 
9346 static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero_cc(__vector unsigned short __a,int * __cc)9347 vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
9348   return __builtin_s390_vistrhs(__a, __cc);
9349 }
9350 
9351 static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero_cc(__vector signed int __a,int * __cc)9352 vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
9353   return (__vector signed int)
9354     __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
9355 }
9356 
9357 static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero_cc(__vector __bool int __a,int * __cc)9358 vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
9359   return (__vector __bool int)
9360     __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
9361 }
9362 
9363 static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero_cc(__vector unsigned int __a,int * __cc)9364 vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
9365   return __builtin_s390_vistrfs(__a, __cc);
9366 }
9367 
9368 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
9369 
9370 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx(__vector signed char __a,__vector signed char __b)9371 vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
9372   return (__vector signed char)
9373     __builtin_s390_vfeeb((__vector unsigned char)__a,
9374                          (__vector unsigned char)__b);
9375 }
9376 
9377 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector __bool char __a,__vector __bool char __b)9378 vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
9379   return __builtin_s390_vfeeb((__vector unsigned char)__a,
9380                               (__vector unsigned char)__b);
9381 }
9382 
9383 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector unsigned char __a,__vector unsigned char __b)9384 vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
9385   return __builtin_s390_vfeeb(__a, __b);
9386 }
9387 
9388 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx(__vector signed short __a,__vector signed short __b)9389 vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
9390   return (__vector signed short)
9391     __builtin_s390_vfeeh((__vector unsigned short)__a,
9392                          (__vector unsigned short)__b);
9393 }
9394 
9395 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector __bool short __a,__vector __bool short __b)9396 vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
9397   return __builtin_s390_vfeeh((__vector unsigned short)__a,
9398                               (__vector unsigned short)__b);
9399 }
9400 
9401 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector unsigned short __a,__vector unsigned short __b)9402 vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
9403   return __builtin_s390_vfeeh(__a, __b);
9404 }
9405 
9406 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx(__vector signed int __a,__vector signed int __b)9407 vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
9408   return (__vector signed int)
9409     __builtin_s390_vfeef((__vector unsigned int)__a,
9410                          (__vector unsigned int)__b);
9411 }
9412 
9413 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector __bool int __a,__vector __bool int __b)9414 vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
9415   return __builtin_s390_vfeef((__vector unsigned int)__a,
9416                               (__vector unsigned int)__b);
9417 }
9418 
9419 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector unsigned int __a,__vector unsigned int __b)9420 vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
9421   return __builtin_s390_vfeef(__a, __b);
9422 }
9423 
9424 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
9425 
9426 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9427 vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
9428   return (__vector signed char)
9429     __builtin_s390_vfeebs((__vector unsigned char)__a,
9430                           (__vector unsigned char)__b, __cc);
9431 }
9432 
9433 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9434 vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
9435   return __builtin_s390_vfeebs((__vector unsigned char)__a,
9436                                (__vector unsigned char)__b, __cc);
9437 }
9438 
9439 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9440 vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9441                  int *__cc) {
9442   return __builtin_s390_vfeebs(__a, __b, __cc);
9443 }
9444 
9445 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9446 vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
9447                  int *__cc) {
9448   return (__vector signed short)
9449     __builtin_s390_vfeehs((__vector unsigned short)__a,
9450                           (__vector unsigned short)__b, __cc);
9451 }
9452 
9453 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9454 vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
9455   return __builtin_s390_vfeehs((__vector unsigned short)__a,
9456                                (__vector unsigned short)__b, __cc);
9457 }
9458 
9459 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9460 vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9461                  int *__cc) {
9462   return __builtin_s390_vfeehs(__a, __b, __cc);
9463 }
9464 
9465 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9466 vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
9467   return (__vector signed int)
9468     __builtin_s390_vfeefs((__vector unsigned int)__a,
9469                           (__vector unsigned int)__b, __cc);
9470 }
9471 
9472 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9473 vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
9474   return __builtin_s390_vfeefs((__vector unsigned int)__a,
9475                                (__vector unsigned int)__b, __cc);
9476 }
9477 
9478 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9479 vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9480                  int *__cc) {
9481   return __builtin_s390_vfeefs(__a, __b, __cc);
9482 }
9483 
9484 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
9485 
9486 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx(__vector signed char __a,__vector signed char __b)9487 vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
9488   return (__vector signed char)
9489     __builtin_s390_vfeezb((__vector unsigned char)__a,
9490                           (__vector unsigned char)__b);
9491 }
9492 
9493 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector __bool char __a,__vector __bool char __b)9494 vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
9495   return __builtin_s390_vfeezb((__vector unsigned char)__a,
9496                                (__vector unsigned char)__b);
9497 }
9498 
9499 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)9500 vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
9501   return __builtin_s390_vfeezb(__a, __b);
9502 }
9503 
9504 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx(__vector signed short __a,__vector signed short __b)9505 vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
9506   return (__vector signed short)
9507     __builtin_s390_vfeezh((__vector unsigned short)__a,
9508                           (__vector unsigned short)__b);
9509 }
9510 
9511 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector __bool short __a,__vector __bool short __b)9512 vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
9513   return __builtin_s390_vfeezh((__vector unsigned short)__a,
9514                                (__vector unsigned short)__b);
9515 }
9516 
9517 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)9518 vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
9519   return __builtin_s390_vfeezh(__a, __b);
9520 }
9521 
9522 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx(__vector signed int __a,__vector signed int __b)9523 vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
9524   return (__vector signed int)
9525     __builtin_s390_vfeezf((__vector unsigned int)__a,
9526                           (__vector unsigned int)__b);
9527 }
9528 
9529 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector __bool int __a,__vector __bool int __b)9530 vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
9531   return __builtin_s390_vfeezf((__vector unsigned int)__a,
9532                                (__vector unsigned int)__b);
9533 }
9534 
9535 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)9536 vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
9537   return __builtin_s390_vfeezf(__a, __b);
9538 }
9539 
9540 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
9541 
9542 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9543 vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
9544                       int *__cc) {
9545   return (__vector signed char)
9546     __builtin_s390_vfeezbs((__vector unsigned char)__a,
9547                            (__vector unsigned char)__b, __cc);
9548 }
9549 
9550 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9551 vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
9552                       int *__cc) {
9553   return __builtin_s390_vfeezbs((__vector unsigned char)__a,
9554                                 (__vector unsigned char)__b, __cc);
9555 }
9556 
9557 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9558 vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9559                       int *__cc) {
9560   return __builtin_s390_vfeezbs(__a, __b, __cc);
9561 }
9562 
9563 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9564 vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
9565                       int *__cc) {
9566   return (__vector signed short)
9567     __builtin_s390_vfeezhs((__vector unsigned short)__a,
9568                            (__vector unsigned short)__b, __cc);
9569 }
9570 
9571 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9572 vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
9573                       int *__cc) {
9574   return __builtin_s390_vfeezhs((__vector unsigned short)__a,
9575                                 (__vector unsigned short)__b, __cc);
9576 }
9577 
9578 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9579 vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9580                       int *__cc) {
9581   return __builtin_s390_vfeezhs(__a, __b, __cc);
9582 }
9583 
9584 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9585 vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
9586                       int *__cc) {
9587   return (__vector signed int)
9588     __builtin_s390_vfeezfs((__vector unsigned int)__a,
9589                            (__vector unsigned int)__b, __cc);
9590 }
9591 
9592 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9593 vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
9594                       int *__cc) {
9595   return __builtin_s390_vfeezfs((__vector unsigned int)__a,
9596                                 (__vector unsigned int)__b, __cc);
9597 }
9598 
9599 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9600 vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9601                       int *__cc) {
9602   return __builtin_s390_vfeezfs(__a, __b, __cc);
9603 }
9604 
9605 /*-- vec_cmpne_idx ----------------------------------------------------------*/
9606 
9607 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx(__vector signed char __a,__vector signed char __b)9608 vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
9609   return (__vector signed char)
9610     __builtin_s390_vfeneb((__vector unsigned char)__a,
9611                           (__vector unsigned char)__b);
9612 }
9613 
9614 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector __bool char __a,__vector __bool char __b)9615 vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
9616   return __builtin_s390_vfeneb((__vector unsigned char)__a,
9617                                (__vector unsigned char)__b);
9618 }
9619 
9620 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector unsigned char __a,__vector unsigned char __b)9621 vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
9622   return __builtin_s390_vfeneb(__a, __b);
9623 }
9624 
9625 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx(__vector signed short __a,__vector signed short __b)9626 vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
9627   return (__vector signed short)
9628     __builtin_s390_vfeneh((__vector unsigned short)__a,
9629                           (__vector unsigned short)__b);
9630 }
9631 
9632 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector __bool short __a,__vector __bool short __b)9633 vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
9634   return __builtin_s390_vfeneh((__vector unsigned short)__a,
9635                                (__vector unsigned short)__b);
9636 }
9637 
9638 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector unsigned short __a,__vector unsigned short __b)9639 vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
9640   return __builtin_s390_vfeneh(__a, __b);
9641 }
9642 
9643 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx(__vector signed int __a,__vector signed int __b)9644 vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
9645   return (__vector signed int)
9646     __builtin_s390_vfenef((__vector unsigned int)__a,
9647                           (__vector unsigned int)__b);
9648 }
9649 
9650 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector __bool int __a,__vector __bool int __b)9651 vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
9652   return __builtin_s390_vfenef((__vector unsigned int)__a,
9653                                (__vector unsigned int)__b);
9654 }
9655 
9656 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector unsigned int __a,__vector unsigned int __b)9657 vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
9658   return __builtin_s390_vfenef(__a, __b);
9659 }
9660 
9661 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
9662 
9663 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9664 vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
9665   return (__vector signed char)
9666     __builtin_s390_vfenebs((__vector unsigned char)__a,
9667                            (__vector unsigned char)__b, __cc);
9668 }
9669 
9670 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9671 vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
9672   return __builtin_s390_vfenebs((__vector unsigned char)__a,
9673                                 (__vector unsigned char)__b, __cc);
9674 }
9675 
9676 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9677 vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9678                  int *__cc) {
9679   return __builtin_s390_vfenebs(__a, __b, __cc);
9680 }
9681 
9682 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9683 vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
9684                  int *__cc) {
9685   return (__vector signed short)
9686     __builtin_s390_vfenehs((__vector unsigned short)__a,
9687                            (__vector unsigned short)__b, __cc);
9688 }
9689 
9690 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9691 vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
9692                  int *__cc) {
9693   return __builtin_s390_vfenehs((__vector unsigned short)__a,
9694                                 (__vector unsigned short)__b, __cc);
9695 }
9696 
9697 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9698 vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9699                  int *__cc) {
9700   return __builtin_s390_vfenehs(__a, __b, __cc);
9701 }
9702 
9703 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9704 vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
9705   return (__vector signed int)
9706     __builtin_s390_vfenefs((__vector unsigned int)__a,
9707                            (__vector unsigned int)__b, __cc);
9708 }
9709 
9710 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9711 vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
9712   return __builtin_s390_vfenefs((__vector unsigned int)__a,
9713                                 (__vector unsigned int)__b, __cc);
9714 }
9715 
9716 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9717 vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9718                  int *__cc) {
9719   return __builtin_s390_vfenefs(__a, __b, __cc);
9720 }
9721 
9722 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
9723 
9724 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx(__vector signed char __a,__vector signed char __b)9725 vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
9726   return (__vector signed char)
9727     __builtin_s390_vfenezb((__vector unsigned char)__a,
9728                            (__vector unsigned char)__b);
9729 }
9730 
9731 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector __bool char __a,__vector __bool char __b)9732 vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
9733   return __builtin_s390_vfenezb((__vector unsigned char)__a,
9734                                 (__vector unsigned char)__b);
9735 }
9736 
9737 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)9738 vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
9739   return __builtin_s390_vfenezb(__a, __b);
9740 }
9741 
9742 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx(__vector signed short __a,__vector signed short __b)9743 vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
9744   return (__vector signed short)
9745     __builtin_s390_vfenezh((__vector unsigned short)__a,
9746                            (__vector unsigned short)__b);
9747 }
9748 
9749 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector __bool short __a,__vector __bool short __b)9750 vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
9751   return __builtin_s390_vfenezh((__vector unsigned short)__a,
9752                                 (__vector unsigned short)__b);
9753 }
9754 
9755 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)9756 vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
9757   return __builtin_s390_vfenezh(__a, __b);
9758 }
9759 
9760 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx(__vector signed int __a,__vector signed int __b)9761 vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
9762   return (__vector signed int)
9763     __builtin_s390_vfenezf((__vector unsigned int)__a,
9764                            (__vector unsigned int)__b);
9765 }
9766 
9767 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector __bool int __a,__vector __bool int __b)9768 vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
9769   return __builtin_s390_vfenezf((__vector unsigned int)__a,
9770                                 (__vector unsigned int)__b);
9771 }
9772 
9773 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)9774 vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
9775   return __builtin_s390_vfenezf(__a, __b);
9776 }
9777 
9778 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
9779 
9780 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9781 vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
9782                       int *__cc) {
9783   return (__vector signed char)
9784     __builtin_s390_vfenezbs((__vector unsigned char)__a,
9785                             (__vector unsigned char)__b, __cc);
9786 }
9787 
9788 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9789 vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
9790                       int *__cc) {
9791   return __builtin_s390_vfenezbs((__vector unsigned char)__a,
9792                                  (__vector unsigned char)__b, __cc);
9793 }
9794 
9795 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9796 vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9797                       int *__cc) {
9798   return __builtin_s390_vfenezbs(__a, __b, __cc);
9799 }
9800 
9801 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9802 vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
9803                       int *__cc) {
9804   return (__vector signed short)
9805     __builtin_s390_vfenezhs((__vector unsigned short)__a,
9806                             (__vector unsigned short)__b, __cc);
9807 }
9808 
9809 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9810 vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
9811                       int *__cc) {
9812   return __builtin_s390_vfenezhs((__vector unsigned short)__a,
9813                                  (__vector unsigned short)__b, __cc);
9814 }
9815 
9816 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9817 vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9818                       int *__cc) {
9819   return __builtin_s390_vfenezhs(__a, __b, __cc);
9820 }
9821 
9822 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9823 vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
9824                       int *__cc) {
9825   return (__vector signed int)
9826     __builtin_s390_vfenezfs((__vector unsigned int)__a,
9827                             (__vector unsigned int)__b, __cc);
9828 }
9829 
9830 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9831 vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
9832                       int *__cc) {
9833   return __builtin_s390_vfenezfs((__vector unsigned int)__a,
9834                                  (__vector unsigned int)__b, __cc);
9835 }
9836 
9837 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9838 vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9839                       int *__cc) {
9840   return __builtin_s390_vfenezfs(__a, __b, __cc);
9841 }
9842 
9843 /*-- vec_cmprg --------------------------------------------------------------*/
9844 
9845 static inline __ATTRS_o_ai __vector __bool char
vec_cmprg(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9846 vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
9847           __vector unsigned char __c) {
9848   return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
9849 }
9850 
9851 static inline __ATTRS_o_ai __vector __bool short
vec_cmprg(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)9852 vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
9853           __vector unsigned short __c) {
9854   return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
9855 }
9856 
9857 static inline __ATTRS_o_ai __vector __bool int
vec_cmprg(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)9858 vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
9859           __vector unsigned int __c) {
9860   return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
9861 }
9862 
9863 /*-- vec_cmprg_cc -----------------------------------------------------------*/
9864 
9865 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)9866 vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
9867              __vector unsigned char __c, int *__cc) {
9868   return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
9869 }
9870 
9871 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)9872 vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
9873              __vector unsigned short __c, int *__cc) {
9874   return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
9875 }
9876 
9877 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)9878 vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
9879              __vector unsigned int __c, int *__cc) {
9880   return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
9881 }
9882 
9883 /*-- vec_cmprg_idx ----------------------------------------------------------*/
9884 
9885 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9886 vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
9887               __vector unsigned char __c) {
9888   return __builtin_s390_vstrcb(__a, __b, __c, 0);
9889 }
9890 
9891 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)9892 vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
9893               __vector unsigned short __c) {
9894   return __builtin_s390_vstrch(__a, __b, __c, 0);
9895 }
9896 
9897 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)9898 vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
9899               __vector unsigned int __c) {
9900   return __builtin_s390_vstrcf(__a, __b, __c, 0);
9901 }
9902 
9903 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
9904 
9905 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)9906 vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9907                  __vector unsigned char __c, int *__cc) {
9908   return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
9909 }
9910 
9911 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)9912 vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9913                  __vector unsigned short __c, int *__cc) {
9914   return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
9915 }
9916 
9917 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)9918 vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9919                  __vector unsigned int __c, int *__cc) {
9920   return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
9921 }
9922 
9923 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
9924 
9925 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)9926 vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
9927                    __vector unsigned char __c) {
9928   return __builtin_s390_vstrczb(__a, __b, __c, 0);
9929 }
9930 
9931 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)9932 vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
9933                    __vector unsigned short __c) {
9934   return __builtin_s390_vstrczh(__a, __b, __c, 0);
9935 }
9936 
9937 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)9938 vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
9939                    __vector unsigned int __c) {
9940   return __builtin_s390_vstrczf(__a, __b, __c, 0);
9941 }
9942 
9943 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
9944 
9945 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)9946 vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9947                       __vector unsigned char __c, int *__cc) {
9948   return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
9949 }
9950 
9951 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)9952 vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9953                       __vector unsigned short __c, int *__cc) {
9954   return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
9955 }
9956 
9957 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)9958 vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9959                       __vector unsigned int __c, int *__cc) {
9960   return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
9961 }
9962 
9963 /*-- vec_cmpnrg -------------------------------------------------------------*/
9964 
9965 static inline __ATTRS_o_ai __vector __bool char
vec_cmpnrg(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9966 vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
9967            __vector unsigned char __c) {
9968   return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
9969 }
9970 
9971 static inline __ATTRS_o_ai __vector __bool short
vec_cmpnrg(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)9972 vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
9973            __vector unsigned short __c) {
9974   return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
9975 }
9976 
9977 static inline __ATTRS_o_ai __vector __bool int
vec_cmpnrg(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)9978 vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
9979            __vector unsigned int __c) {
9980   return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
9981 }
9982 
9983 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
9984 
9985 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)9986 vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
9987               __vector unsigned char __c, int *__cc) {
9988   return (__vector __bool char)
9989     __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
9990 }
9991 
9992 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)9993 vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
9994               __vector unsigned short __c, int *__cc) {
9995   return (__vector __bool short)
9996     __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
9997 }
9998 
9999 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)10000 vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
10001               __vector unsigned int __c, int *__cc) {
10002   return (__vector __bool int)
10003     __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
10004 }
10005 
10006 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
10007 
10008 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10009 vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
10010                __vector unsigned char __c) {
10011   return __builtin_s390_vstrcb(__a, __b, __c, 8);
10012 }
10013 
10014 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)10015 vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
10016                __vector unsigned short __c) {
10017   return __builtin_s390_vstrch(__a, __b, __c, 8);
10018 }
10019 
10020 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)10021 vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
10022                __vector unsigned int __c) {
10023   return __builtin_s390_vstrcf(__a, __b, __c, 8);
10024 }
10025 
10026 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
10027 
10028 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)10029 vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
10030                   __vector unsigned char __c, int *__cc) {
10031   return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
10032 }
10033 
10034 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)10035 vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
10036                   __vector unsigned short __c, int *__cc) {
10037   return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
10038 }
10039 
10040 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)10041 vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
10042                   __vector unsigned int __c, int *__cc) {
10043   return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
10044 }
10045 
10046 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
10047 
10048 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)10049 vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
10050                     __vector unsigned char __c) {
10051   return __builtin_s390_vstrczb(__a, __b, __c, 8);
10052 }
10053 
10054 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)10055 vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
10056                     __vector unsigned short __c) {
10057   return __builtin_s390_vstrczh(__a, __b, __c, 8);
10058 }
10059 
10060 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)10061 vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
10062                     __vector unsigned int __c) {
10063   return __builtin_s390_vstrczf(__a, __b, __c, 8);
10064 }
10065 
10066 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
10067 
10068 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)10069 vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
10070                        __vector unsigned char __b,
10071                        __vector unsigned char __c, int *__cc) {
10072   return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
10073 }
10074 
10075 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)10076 vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
10077                        __vector unsigned short __b,
10078                        __vector unsigned short __c, int *__cc) {
10079   return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
10080 }
10081 
10082 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)10083 vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
10084                        __vector unsigned int __b,
10085                        __vector unsigned int __c, int *__cc) {
10086   return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
10087 }
10088 
10089 /*-- vec_find_any_eq --------------------------------------------------------*/
10090 
10091 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector signed char __a,__vector signed char __b)10092 vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
10093   return (__vector __bool char)
10094     __builtin_s390_vfaeb((__vector unsigned char)__a,
10095                          (__vector unsigned char)__b, 4);
10096 }
10097 
10098 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector __bool char __a,__vector __bool char __b)10099 vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
10100   return (__vector __bool char)
10101     __builtin_s390_vfaeb((__vector unsigned char)__a,
10102                          (__vector unsigned char)__b, 4);
10103 }
10104 
10105 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector unsigned char __a,__vector unsigned char __b)10106 vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
10107   return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
10108 }
10109 
10110 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector signed short __a,__vector signed short __b)10111 vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
10112   return (__vector __bool short)
10113     __builtin_s390_vfaeh((__vector unsigned short)__a,
10114                          (__vector unsigned short)__b, 4);
10115 }
10116 
10117 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector __bool short __a,__vector __bool short __b)10118 vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
10119   return (__vector __bool short)
10120     __builtin_s390_vfaeh((__vector unsigned short)__a,
10121                          (__vector unsigned short)__b, 4);
10122 }
10123 
10124 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector unsigned short __a,__vector unsigned short __b)10125 vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
10126   return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
10127 }
10128 
10129 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector signed int __a,__vector signed int __b)10130 vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
10131   return (__vector __bool int)
10132     __builtin_s390_vfaef((__vector unsigned int)__a,
10133                          (__vector unsigned int)__b, 4);
10134 }
10135 
10136 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector __bool int __a,__vector __bool int __b)10137 vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
10138   return (__vector __bool int)
10139     __builtin_s390_vfaef((__vector unsigned int)__a,
10140                          (__vector unsigned int)__b, 4);
10141 }
10142 
10143 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector unsigned int __a,__vector unsigned int __b)10144 vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
10145   return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
10146 }
10147 
10148 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
10149 
10150 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector signed char __a,__vector signed char __b,int * __cc)10151 vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
10152                    int *__cc) {
10153   return (__vector __bool char)
10154     __builtin_s390_vfaebs((__vector unsigned char)__a,
10155                           (__vector unsigned char)__b, 4, __cc);
10156 }
10157 
10158 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10159 vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
10160                    int *__cc) {
10161   return (__vector __bool char)
10162     __builtin_s390_vfaebs((__vector unsigned char)__a,
10163                           (__vector unsigned char)__b, 4, __cc);
10164 }
10165 
10166 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10167 vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
10168                    int *__cc) {
10169   return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
10170 }
10171 
10172 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector signed short __a,__vector signed short __b,int * __cc)10173 vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
10174                    int *__cc) {
10175   return (__vector __bool short)
10176     __builtin_s390_vfaehs((__vector unsigned short)__a,
10177                           (__vector unsigned short)__b, 4, __cc);
10178 }
10179 
10180 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10181 vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
10182                    int *__cc) {
10183   return (__vector __bool short)
10184     __builtin_s390_vfaehs((__vector unsigned short)__a,
10185                           (__vector unsigned short)__b, 4, __cc);
10186 }
10187 
10188 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10189 vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
10190                    int *__cc) {
10191   return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
10192 }
10193 
10194 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector signed int __a,__vector signed int __b,int * __cc)10195 vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
10196                    int *__cc) {
10197   return (__vector __bool int)
10198     __builtin_s390_vfaefs((__vector unsigned int)__a,
10199                           (__vector unsigned int)__b, 4, __cc);
10200 }
10201 
10202 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10203 vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
10204                    int *__cc) {
10205   return (__vector __bool int)
10206     __builtin_s390_vfaefs((__vector unsigned int)__a,
10207                           (__vector unsigned int)__b, 4, __cc);
10208 }
10209 
10210 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10211 vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
10212                    int *__cc) {
10213   return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
10214 }
10215 
10216 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
10217 
10218 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx(__vector signed char __a,__vector signed char __b)10219 vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
10220   return (__vector signed char)
10221     __builtin_s390_vfaeb((__vector unsigned char)__a,
10222                          (__vector unsigned char)__b, 0);
10223 }
10224 
10225 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector __bool char __a,__vector __bool char __b)10226 vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
10227   return __builtin_s390_vfaeb((__vector unsigned char)__a,
10228                               (__vector unsigned char)__b, 0);
10229 }
10230 
10231 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector unsigned char __a,__vector unsigned char __b)10232 vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
10233   return __builtin_s390_vfaeb(__a, __b, 0);
10234 }
10235 
10236 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx(__vector signed short __a,__vector signed short __b)10237 vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
10238   return (__vector signed short)
10239     __builtin_s390_vfaeh((__vector unsigned short)__a,
10240                          (__vector unsigned short)__b, 0);
10241 }
10242 
10243 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector __bool short __a,__vector __bool short __b)10244 vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
10245   return __builtin_s390_vfaeh((__vector unsigned short)__a,
10246                               (__vector unsigned short)__b, 0);
10247 }
10248 
10249 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector unsigned short __a,__vector unsigned short __b)10250 vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
10251   return __builtin_s390_vfaeh(__a, __b, 0);
10252 }
10253 
10254 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx(__vector signed int __a,__vector signed int __b)10255 vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
10256   return (__vector signed int)
10257     __builtin_s390_vfaef((__vector unsigned int)__a,
10258                          (__vector unsigned int)__b, 0);
10259 }
10260 
10261 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector __bool int __a,__vector __bool int __b)10262 vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
10263   return __builtin_s390_vfaef((__vector unsigned int)__a,
10264                               (__vector unsigned int)__b, 0);
10265 }
10266 
10267 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector unsigned int __a,__vector unsigned int __b)10268 vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
10269   return __builtin_s390_vfaef(__a, __b, 0);
10270 }
10271 
10272 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
10273 
10274 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)10275 vec_find_any_eq_idx_cc(__vector signed char __a,
10276                        __vector signed char __b, int *__cc) {
10277   return (__vector signed char)
10278     __builtin_s390_vfaebs((__vector unsigned char)__a,
10279                           (__vector unsigned char)__b, 0, __cc);
10280 }
10281 
10282 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10283 vec_find_any_eq_idx_cc(__vector __bool char __a,
10284                        __vector __bool char __b, int *__cc) {
10285   return __builtin_s390_vfaebs((__vector unsigned char)__a,
10286                                (__vector unsigned char)__b, 0, __cc);
10287 }
10288 
10289 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10290 vec_find_any_eq_idx_cc(__vector unsigned char __a,
10291                        __vector unsigned char __b, int *__cc) {
10292   return __builtin_s390_vfaebs(__a, __b, 0, __cc);
10293 }
10294 
10295 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)10296 vec_find_any_eq_idx_cc(__vector signed short __a,
10297                        __vector signed short __b, int *__cc) {
10298   return (__vector signed short)
10299     __builtin_s390_vfaehs((__vector unsigned short)__a,
10300                           (__vector unsigned short)__b, 0, __cc);
10301 }
10302 
10303 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10304 vec_find_any_eq_idx_cc(__vector __bool short __a,
10305                        __vector __bool short __b, int *__cc) {
10306   return __builtin_s390_vfaehs((__vector unsigned short)__a,
10307                                (__vector unsigned short)__b, 0, __cc);
10308 }
10309 
10310 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10311 vec_find_any_eq_idx_cc(__vector unsigned short __a,
10312                        __vector unsigned short __b, int *__cc) {
10313   return __builtin_s390_vfaehs(__a, __b, 0, __cc);
10314 }
10315 
10316 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)10317 vec_find_any_eq_idx_cc(__vector signed int __a,
10318                        __vector signed int __b, int *__cc) {
10319   return (__vector signed int)
10320     __builtin_s390_vfaefs((__vector unsigned int)__a,
10321                           (__vector unsigned int)__b, 0, __cc);
10322 }
10323 
10324 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10325 vec_find_any_eq_idx_cc(__vector __bool int __a,
10326                        __vector __bool int __b, int *__cc) {
10327   return __builtin_s390_vfaefs((__vector unsigned int)__a,
10328                                (__vector unsigned int)__b, 0, __cc);
10329 }
10330 
10331 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10332 vec_find_any_eq_idx_cc(__vector unsigned int __a,
10333                        __vector unsigned int __b, int *__cc) {
10334   return __builtin_s390_vfaefs(__a, __b, 0, __cc);
10335 }
10336 
10337 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
10338 
10339 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_or_0_idx(__vector signed char __a,__vector signed char __b)10340 vec_find_any_eq_or_0_idx(__vector signed char __a,
10341                          __vector signed char __b) {
10342   return (__vector signed char)
10343     __builtin_s390_vfaezb((__vector unsigned char)__a,
10344                           (__vector unsigned char)__b, 0);
10345 }
10346 
10347 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector __bool char __a,__vector __bool char __b)10348 vec_find_any_eq_or_0_idx(__vector __bool char __a,
10349                          __vector __bool char __b) {
10350   return __builtin_s390_vfaezb((__vector unsigned char)__a,
10351                                (__vector unsigned char)__b, 0);
10352 }
10353 
10354 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)10355 vec_find_any_eq_or_0_idx(__vector unsigned char __a,
10356                          __vector unsigned char __b) {
10357   return __builtin_s390_vfaezb(__a, __b, 0);
10358 }
10359 
10360 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_or_0_idx(__vector signed short __a,__vector signed short __b)10361 vec_find_any_eq_or_0_idx(__vector signed short __a,
10362                          __vector signed short __b) {
10363   return (__vector signed short)
10364     __builtin_s390_vfaezh((__vector unsigned short)__a,
10365                           (__vector unsigned short)__b, 0);
10366 }
10367 
10368 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector __bool short __a,__vector __bool short __b)10369 vec_find_any_eq_or_0_idx(__vector __bool short __a,
10370                          __vector __bool short __b) {
10371   return __builtin_s390_vfaezh((__vector unsigned short)__a,
10372                                (__vector unsigned short)__b, 0);
10373 }
10374 
10375 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)10376 vec_find_any_eq_or_0_idx(__vector unsigned short __a,
10377                          __vector unsigned short __b) {
10378   return __builtin_s390_vfaezh(__a, __b, 0);
10379 }
10380 
10381 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_or_0_idx(__vector signed int __a,__vector signed int __b)10382 vec_find_any_eq_or_0_idx(__vector signed int __a,
10383                          __vector signed int __b) {
10384   return (__vector signed int)
10385     __builtin_s390_vfaezf((__vector unsigned int)__a,
10386                           (__vector unsigned int)__b, 0);
10387 }
10388 
10389 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector __bool int __a,__vector __bool int __b)10390 vec_find_any_eq_or_0_idx(__vector __bool int __a,
10391                          __vector __bool int __b) {
10392   return __builtin_s390_vfaezf((__vector unsigned int)__a,
10393                                (__vector unsigned int)__b, 0);
10394 }
10395 
10396 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)10397 vec_find_any_eq_or_0_idx(__vector unsigned int __a,
10398                          __vector unsigned int __b) {
10399   return __builtin_s390_vfaezf(__a, __b, 0);
10400 }
10401 
10402 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
10403 
10404 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)10405 vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
10406                             __vector signed char __b, int *__cc) {
10407   return (__vector signed char)
10408     __builtin_s390_vfaezbs((__vector unsigned char)__a,
10409                            (__vector unsigned char)__b, 0, __cc);
10410 }
10411 
10412 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)10413 vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
10414                             __vector __bool char __b, int *__cc) {
10415   return __builtin_s390_vfaezbs((__vector unsigned char)__a,
10416                                 (__vector unsigned char)__b, 0, __cc);
10417 }
10418 
10419 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)10420 vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
10421                             __vector unsigned char __b, int *__cc) {
10422   return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
10423 }
10424 
10425 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)10426 vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
10427                             __vector signed short __b, int *__cc) {
10428   return (__vector signed short)
10429     __builtin_s390_vfaezhs((__vector unsigned short)__a,
10430                            (__vector unsigned short)__b, 0, __cc);
10431 }
10432 
10433 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)10434 vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
10435                             __vector __bool short __b, int *__cc) {
10436   return __builtin_s390_vfaezhs((__vector unsigned short)__a,
10437                                 (__vector unsigned short)__b, 0, __cc);
10438 }
10439 
10440 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)10441 vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
10442                             __vector unsigned short __b, int *__cc) {
10443   return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
10444 }
10445 
10446 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)10447 vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
10448                             __vector signed int __b, int *__cc) {
10449   return (__vector signed int)
10450     __builtin_s390_vfaezfs((__vector unsigned int)__a,
10451                            (__vector unsigned int)__b, 0, __cc);
10452 }
10453 
10454 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)10455 vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
10456                             __vector __bool int __b, int *__cc) {
10457   return __builtin_s390_vfaezfs((__vector unsigned int)__a,
10458                                 (__vector unsigned int)__b, 0, __cc);
10459 }
10460 
10461 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)10462 vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
10463                             __vector unsigned int __b, int *__cc) {
10464   return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
10465 }
10466 
10467 /*-- vec_find_any_ne --------------------------------------------------------*/
10468 
10469 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector signed char __a,__vector signed char __b)10470 vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
10471   return (__vector __bool char)
10472     __builtin_s390_vfaeb((__vector unsigned char)__a,
10473                          (__vector unsigned char)__b, 12);
10474 }
10475 
10476 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector __bool char __a,__vector __bool char __b)10477 vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
10478   return (__vector __bool char)
10479     __builtin_s390_vfaeb((__vector unsigned char)__a,
10480                          (__vector unsigned char)__b, 12);
10481 }
10482 
10483 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector unsigned char __a,__vector unsigned char __b)10484 vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
10485   return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
10486 }
10487 
10488 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector signed short __a,__vector signed short __b)10489 vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
10490   return (__vector __bool short)
10491     __builtin_s390_vfaeh((__vector unsigned short)__a,
10492                          (__vector unsigned short)__b, 12);
10493 }
10494 
10495 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector __bool short __a,__vector __bool short __b)10496 vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
10497   return (__vector __bool short)
10498     __builtin_s390_vfaeh((__vector unsigned short)__a,
10499                          (__vector unsigned short)__b, 12);
10500 }
10501 
10502 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector unsigned short __a,__vector unsigned short __b)10503 vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
10504   return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
10505 }
10506 
10507 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector signed int __a,__vector signed int __b)10508 vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
10509   return (__vector __bool int)
10510     __builtin_s390_vfaef((__vector unsigned int)__a,
10511                          (__vector unsigned int)__b, 12);
10512 }
10513 
10514 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector __bool int __a,__vector __bool int __b)10515 vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
10516   return (__vector __bool int)
10517     __builtin_s390_vfaef((__vector unsigned int)__a,
10518                          (__vector unsigned int)__b, 12);
10519 }
10520 
10521 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector unsigned int __a,__vector unsigned int __b)10522 vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
10523   return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
10524 }
10525 
10526 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
10527 
10528 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector signed char __a,__vector signed char __b,int * __cc)10529 vec_find_any_ne_cc(__vector signed char __a,
10530                    __vector signed char __b, int *__cc) {
10531   return (__vector __bool char)
10532     __builtin_s390_vfaebs((__vector unsigned char)__a,
10533                           (__vector unsigned char)__b, 12, __cc);
10534 }
10535 
10536 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10537 vec_find_any_ne_cc(__vector __bool char __a,
10538                    __vector __bool char __b, int *__cc) {
10539   return (__vector __bool char)
10540     __builtin_s390_vfaebs((__vector unsigned char)__a,
10541                           (__vector unsigned char)__b, 12, __cc);
10542 }
10543 
10544 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10545 vec_find_any_ne_cc(__vector unsigned char __a,
10546                    __vector unsigned char __b, int *__cc) {
10547   return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
10548 }
10549 
10550 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector signed short __a,__vector signed short __b,int * __cc)10551 vec_find_any_ne_cc(__vector signed short __a,
10552                    __vector signed short __b, int *__cc) {
10553   return (__vector __bool short)
10554     __builtin_s390_vfaehs((__vector unsigned short)__a,
10555                           (__vector unsigned short)__b, 12, __cc);
10556 }
10557 
10558 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10559 vec_find_any_ne_cc(__vector __bool short __a,
10560                    __vector __bool short __b, int *__cc) {
10561   return (__vector __bool short)
10562     __builtin_s390_vfaehs((__vector unsigned short)__a,
10563                           (__vector unsigned short)__b, 12, __cc);
10564 }
10565 
10566 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10567 vec_find_any_ne_cc(__vector unsigned short __a,
10568                    __vector unsigned short __b, int *__cc) {
10569   return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
10570 }
10571 
10572 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector signed int __a,__vector signed int __b,int * __cc)10573 vec_find_any_ne_cc(__vector signed int __a,
10574                    __vector signed int __b, int *__cc) {
10575   return (__vector __bool int)
10576     __builtin_s390_vfaefs((__vector unsigned int)__a,
10577                           (__vector unsigned int)__b, 12, __cc);
10578 }
10579 
10580 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10581 vec_find_any_ne_cc(__vector __bool int __a,
10582                    __vector __bool int __b, int *__cc) {
10583   return (__vector __bool int)
10584     __builtin_s390_vfaefs((__vector unsigned int)__a,
10585                           (__vector unsigned int)__b, 12, __cc);
10586 }
10587 
10588 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10589 vec_find_any_ne_cc(__vector unsigned int __a,
10590                    __vector unsigned int __b, int *__cc) {
10591   return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
10592 }
10593 
10594 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
10595 
10596 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx(__vector signed char __a,__vector signed char __b)10597 vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
10598   return (__vector signed char)
10599     __builtin_s390_vfaeb((__vector unsigned char)__a,
10600                          (__vector unsigned char)__b, 8);
10601 }
10602 
10603 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector __bool char __a,__vector __bool char __b)10604 vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
10605   return __builtin_s390_vfaeb((__vector unsigned char)__a,
10606                               (__vector unsigned char)__b, 8);
10607 }
10608 
10609 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector unsigned char __a,__vector unsigned char __b)10610 vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
10611   return __builtin_s390_vfaeb(__a, __b, 8);
10612 }
10613 
10614 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx(__vector signed short __a,__vector signed short __b)10615 vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
10616   return (__vector signed short)
10617     __builtin_s390_vfaeh((__vector unsigned short)__a,
10618                          (__vector unsigned short)__b, 8);
10619 }
10620 
10621 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector __bool short __a,__vector __bool short __b)10622 vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
10623   return __builtin_s390_vfaeh((__vector unsigned short)__a,
10624                               (__vector unsigned short)__b, 8);
10625 }
10626 
10627 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector unsigned short __a,__vector unsigned short __b)10628 vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
10629   return __builtin_s390_vfaeh(__a, __b, 8);
10630 }
10631 
10632 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx(__vector signed int __a,__vector signed int __b)10633 vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
10634   return (__vector signed int)
10635     __builtin_s390_vfaef((__vector unsigned int)__a,
10636                          (__vector unsigned int)__b, 8);
10637 }
10638 
10639 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector __bool int __a,__vector __bool int __b)10640 vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
10641   return __builtin_s390_vfaef((__vector unsigned int)__a,
10642                               (__vector unsigned int)__b, 8);
10643 }
10644 
10645 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector unsigned int __a,__vector unsigned int __b)10646 vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
10647   return __builtin_s390_vfaef(__a, __b, 8);
10648 }
10649 
10650 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
10651 
10652 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)10653 vec_find_any_ne_idx_cc(__vector signed char __a,
10654                        __vector signed char __b, int *__cc) {
10655   return (__vector signed char)
10656     __builtin_s390_vfaebs((__vector unsigned char)__a,
10657                           (__vector unsigned char)__b, 8, __cc);
10658 }
10659 
10660 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10661 vec_find_any_ne_idx_cc(__vector __bool char __a,
10662                        __vector __bool char __b, int *__cc) {
10663   return __builtin_s390_vfaebs((__vector unsigned char)__a,
10664                                (__vector unsigned char)__b, 8, __cc);
10665 }
10666 
10667 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10668 vec_find_any_ne_idx_cc(__vector unsigned char __a,
10669                        __vector unsigned char __b,
10670                        int *__cc) {
10671   return __builtin_s390_vfaebs(__a, __b, 8, __cc);
10672 }
10673 
10674 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)10675 vec_find_any_ne_idx_cc(__vector signed short __a,
10676                        __vector signed short __b, int *__cc) {
10677   return (__vector signed short)
10678     __builtin_s390_vfaehs((__vector unsigned short)__a,
10679                           (__vector unsigned short)__b, 8, __cc);
10680 }
10681 
10682 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10683 vec_find_any_ne_idx_cc(__vector __bool short __a,
10684                        __vector __bool short __b, int *__cc) {
10685   return __builtin_s390_vfaehs((__vector unsigned short)__a,
10686                                (__vector unsigned short)__b, 8, __cc);
10687 }
10688 
10689 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10690 vec_find_any_ne_idx_cc(__vector unsigned short __a,
10691                        __vector unsigned short __b, int *__cc) {
10692   return __builtin_s390_vfaehs(__a, __b, 8, __cc);
10693 }
10694 
10695 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)10696 vec_find_any_ne_idx_cc(__vector signed int __a,
10697                        __vector signed int __b, int *__cc) {
10698   return (__vector signed int)
10699     __builtin_s390_vfaefs((__vector unsigned int)__a,
10700                           (__vector unsigned int)__b, 8, __cc);
10701 }
10702 
10703 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10704 vec_find_any_ne_idx_cc(__vector __bool int __a,
10705                        __vector __bool int __b, int *__cc) {
10706   return __builtin_s390_vfaefs((__vector unsigned int)__a,
10707                                (__vector unsigned int)__b, 8, __cc);
10708 }
10709 
10710 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10711 vec_find_any_ne_idx_cc(__vector unsigned int __a,
10712                        __vector unsigned int __b, int *__cc) {
10713   return __builtin_s390_vfaefs(__a, __b, 8, __cc);
10714 }
10715 
10716 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
10717 
10718 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_or_0_idx(__vector signed char __a,__vector signed char __b)10719 vec_find_any_ne_or_0_idx(__vector signed char __a,
10720                          __vector signed char __b) {
10721   return (__vector signed char)
10722     __builtin_s390_vfaezb((__vector unsigned char)__a,
10723                           (__vector unsigned char)__b, 8);
10724 }
10725 
10726 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector __bool char __a,__vector __bool char __b)10727 vec_find_any_ne_or_0_idx(__vector __bool char __a,
10728                          __vector __bool char __b) {
10729   return __builtin_s390_vfaezb((__vector unsigned char)__a,
10730                                (__vector unsigned char)__b, 8);
10731 }
10732 
10733 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)10734 vec_find_any_ne_or_0_idx(__vector unsigned char __a,
10735                          __vector unsigned char __b) {
10736   return __builtin_s390_vfaezb(__a, __b, 8);
10737 }
10738 
10739 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_or_0_idx(__vector signed short __a,__vector signed short __b)10740 vec_find_any_ne_or_0_idx(__vector signed short __a,
10741                          __vector signed short __b) {
10742   return (__vector signed short)
10743     __builtin_s390_vfaezh((__vector unsigned short)__a,
10744                           (__vector unsigned short)__b, 8);
10745 }
10746 
10747 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector __bool short __a,__vector __bool short __b)10748 vec_find_any_ne_or_0_idx(__vector __bool short __a,
10749                          __vector __bool short __b) {
10750   return __builtin_s390_vfaezh((__vector unsigned short)__a,
10751                                (__vector unsigned short)__b, 8);
10752 }
10753 
10754 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)10755 vec_find_any_ne_or_0_idx(__vector unsigned short __a,
10756                          __vector unsigned short __b) {
10757   return __builtin_s390_vfaezh(__a, __b, 8);
10758 }
10759 
10760 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_or_0_idx(__vector signed int __a,__vector signed int __b)10761 vec_find_any_ne_or_0_idx(__vector signed int __a,
10762                          __vector signed int __b) {
10763   return (__vector signed int)
10764     __builtin_s390_vfaezf((__vector unsigned int)__a,
10765                           (__vector unsigned int)__b, 8);
10766 }
10767 
10768 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector __bool int __a,__vector __bool int __b)10769 vec_find_any_ne_or_0_idx(__vector __bool int __a,
10770                          __vector __bool int __b) {
10771   return __builtin_s390_vfaezf((__vector unsigned int)__a,
10772                                (__vector unsigned int)__b, 8);
10773 }
10774 
10775 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)10776 vec_find_any_ne_or_0_idx(__vector unsigned int __a,
10777                          __vector unsigned int __b) {
10778   return __builtin_s390_vfaezf(__a, __b, 8);
10779 }
10780 
10781 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
10782 
10783 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)10784 vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
10785                             __vector signed char __b, int *__cc) {
10786   return (__vector signed char)
10787     __builtin_s390_vfaezbs((__vector unsigned char)__a,
10788                            (__vector unsigned char)__b, 8, __cc);
10789 }
10790 
10791 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)10792 vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
10793                             __vector __bool char __b, int *__cc) {
10794   return __builtin_s390_vfaezbs((__vector unsigned char)__a,
10795                                 (__vector unsigned char)__b, 8, __cc);
10796 }
10797 
10798 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)10799 vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
10800                             __vector unsigned char __b, int *__cc) {
10801   return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
10802 }
10803 
10804 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)10805 vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
10806                             __vector signed short __b, int *__cc) {
10807   return (__vector signed short)
10808     __builtin_s390_vfaezhs((__vector unsigned short)__a,
10809                            (__vector unsigned short)__b, 8, __cc);
10810 }
10811 
10812 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)10813 vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
10814                             __vector __bool short __b, int *__cc) {
10815   return __builtin_s390_vfaezhs((__vector unsigned short)__a,
10816                                 (__vector unsigned short)__b, 8, __cc);
10817 }
10818 
10819 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)10820 vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
10821                             __vector unsigned short __b, int *__cc) {
10822   return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
10823 }
10824 
10825 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)10826 vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
10827                             __vector signed int __b, int *__cc) {
10828   return (__vector signed int)
10829     __builtin_s390_vfaezfs((__vector unsigned int)__a,
10830                            (__vector unsigned int)__b, 8, __cc);
10831 }
10832 
10833 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)10834 vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
10835                             __vector __bool int __b, int *__cc) {
10836   return __builtin_s390_vfaezfs((__vector unsigned int)__a,
10837                                 (__vector unsigned int)__b, 8, __cc);
10838 }
10839 
10840 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)10841 vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
10842                             __vector unsigned int __b, int *__cc) {
10843   return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
10844 }
10845 
10846 /*-- vec_search_string_cc ---------------------------------------------------*/
10847 
10848 #if __ARCH__ >= 13
10849 
10850 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)10851 vec_search_string_cc(__vector signed char __a, __vector signed char __b,
10852                      __vector unsigned char __c, int *__cc) {
10853   return __builtin_s390_vstrsb((__vector unsigned char)__a,
10854                                (__vector unsigned char)__b, __c, __cc);
10855 }
10856 
10857 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)10858 vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
10859                      __vector unsigned char __c, int *__cc) {
10860   return __builtin_s390_vstrsb((__vector unsigned char)__a,
10861                                (__vector unsigned char)__b, __c, __cc);
10862 }
10863 
10864 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)10865 vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
10866                      __vector unsigned char __c, int *__cc) {
10867   return __builtin_s390_vstrsb(__a, __b, __c, __cc);
10868 }
10869 
10870 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)10871 vec_search_string_cc(__vector signed short __a, __vector signed short __b,
10872                      __vector unsigned char __c, int *__cc) {
10873   return __builtin_s390_vstrsh((__vector unsigned short)__a,
10874                                (__vector unsigned short)__b, __c, __cc);
10875 }
10876 
10877 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)10878 vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
10879                      __vector unsigned char __c, int *__cc) {
10880   return __builtin_s390_vstrsh((__vector unsigned short)__a,
10881                                (__vector unsigned short)__b, __c, __cc);
10882 }
10883 
10884 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)10885 vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
10886                      __vector unsigned char __c, int *__cc) {
10887   return __builtin_s390_vstrsh(__a, __b, __c, __cc);
10888 }
10889 
10890 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)10891 vec_search_string_cc(__vector signed int __a, __vector signed int __b,
10892                      __vector unsigned char __c, int *__cc) {
10893   return __builtin_s390_vstrsf((__vector unsigned int)__a,
10894                                (__vector unsigned int)__b, __c, __cc);
10895 }
10896 
10897 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)10898 vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
10899                      __vector unsigned char __c, int *__cc) {
10900   return __builtin_s390_vstrsf((__vector unsigned int)__a,
10901                                (__vector unsigned int)__b, __c, __cc);
10902 }
10903 
10904 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)10905 vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
10906                      __vector unsigned char __c, int *__cc) {
10907   return __builtin_s390_vstrsf(__a, __b, __c, __cc);
10908 }
10909 
10910 #endif
10911 
10912 /*-- vec_search_string_until_zero_cc ----------------------------------------*/
10913 
10914 #if __ARCH__ >= 13
10915 
10916 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)10917 vec_search_string_until_zero_cc(__vector signed char __a,
10918                                 __vector signed char __b,
10919                                 __vector unsigned char __c, int *__cc) {
10920   return __builtin_s390_vstrszb((__vector unsigned char)__a,
10921                                 (__vector unsigned char)__b, __c, __cc);
10922 }
10923 
10924 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)10925 vec_search_string_until_zero_cc(__vector __bool char __a,
10926                                 __vector __bool char __b,
10927                                 __vector unsigned char __c, int *__cc) {
10928   return __builtin_s390_vstrszb((__vector unsigned char)__a,
10929                                 (__vector unsigned char)__b, __c, __cc);
10930 }
10931 
10932 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)10933 vec_search_string_until_zero_cc(__vector unsigned char __a,
10934                                 __vector unsigned char __b,
10935                                 __vector unsigned char __c, int *__cc) {
10936   return __builtin_s390_vstrszb(__a, __b, __c, __cc);
10937 }
10938 
10939 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)10940 vec_search_string_until_zero_cc(__vector signed short __a,
10941                                 __vector signed short __b,
10942                                 __vector unsigned char __c, int *__cc) {
10943   return __builtin_s390_vstrszh((__vector unsigned short)__a,
10944                                 (__vector unsigned short)__b, __c, __cc);
10945 }
10946 
10947 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)10948 vec_search_string_until_zero_cc(__vector __bool short __a,
10949                                 __vector __bool short __b,
10950                                 __vector unsigned char __c, int *__cc) {
10951   return __builtin_s390_vstrszh((__vector unsigned short)__a,
10952                                 (__vector unsigned short)__b, __c, __cc);
10953 }
10954 
10955 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)10956 vec_search_string_until_zero_cc(__vector unsigned short __a,
10957                                 __vector unsigned short __b,
10958                                 __vector unsigned char __c, int *__cc) {
10959   return __builtin_s390_vstrszh(__a, __b, __c, __cc);
10960 }
10961 
10962 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)10963 vec_search_string_until_zero_cc(__vector signed int __a,
10964                                 __vector signed int __b,
10965                                 __vector unsigned char __c, int *__cc) {
10966   return __builtin_s390_vstrszf((__vector unsigned int)__a,
10967                                 (__vector unsigned int)__b, __c, __cc);
10968 }
10969 
10970 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)10971 vec_search_string_until_zero_cc(__vector __bool int __a,
10972                                 __vector __bool int __b,
10973                                 __vector unsigned char __c, int *__cc) {
10974   return __builtin_s390_vstrszf((__vector unsigned int)__a,
10975                                 (__vector unsigned int)__b, __c, __cc);
10976 }
10977 
10978 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)10979 vec_search_string_until_zero_cc(__vector unsigned int __a,
10980                                 __vector unsigned int __b,
10981                                 __vector unsigned char __c, int *__cc) {
10982   return __builtin_s390_vstrszf(__a, __b, __c, __cc);
10983 }
10984 
10985 #endif
10986 
10987 #undef __constant_pow2_range
10988 #undef __constant_range
10989 #undef __constant
10990 #undef __ATTRS_o
10991 #undef __ATTRS_o_ai
10992 #undef __ATTRS_ai
10993 
10994 #else
10995 
10996 #error "Use -fzvector to enable vector extensions"
10997 
10998 #endif
10999