clang  14.0.0git
vecintrin.h
Go to the documentation of this file.
1 /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2  *
3  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4  * See https://llvm.org/LICENSE.txt for license information.
5  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6  *
7  *===-----------------------------------------------------------------------===
8  */
9 
10 #if defined(__s390x__) && defined(__VEC__)
11 
12 #define __ATTRS_ai __attribute__((__always_inline__))
13 #define __ATTRS_o __attribute__((__overloadable__))
14 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
15 
16 #define __constant(PARM) \
17  __attribute__((__enable_if__ ((PARM) == (PARM), \
18  "argument must be a constant integer")))
19 #define __constant_range(PARM, LOW, HIGH) \
20  __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
21  "argument must be a constant integer from " #LOW " to " #HIGH)))
22 #define __constant_pow2_range(PARM, LOW, HIGH) \
23  __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
24  ((PARM) & ((PARM) - 1)) == 0, \
25  "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
26 
27 /*-- __lcbb -----------------------------------------------------------------*/
28 
29 extern __ATTRS_o unsigned int
30 __lcbb(const void *__ptr, unsigned short __len)
31  __constant_pow2_range(__len, 64, 4096);
32 
33 #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
34  __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
35  ((Y) == 64 ? 0 : \
36  (Y) == 128 ? 1 : \
37  (Y) == 256 ? 2 : \
38  (Y) == 512 ? 3 : \
39  (Y) == 1024 ? 4 : \
40  (Y) == 2048 ? 5 : \
41  (Y) == 4096 ? 6 : 0) : 0))
42 
43 /*-- vec_extract ------------------------------------------------------------*/
44 
45 static inline __ATTRS_o_ai signed char
46 vec_extract(__vector signed char __vec, int __index) {
47  return __vec[__index & 15];
48 }
49 
50 static inline __ATTRS_o_ai unsigned char
51 vec_extract(__vector __bool char __vec, int __index) {
52  return __vec[__index & 15];
53 }
54 
55 static inline __ATTRS_o_ai unsigned char
56 vec_extract(__vector unsigned char __vec, int __index) {
57  return __vec[__index & 15];
58 }
59 
60 static inline __ATTRS_o_ai signed short
61 vec_extract(__vector signed short __vec, int __index) {
62  return __vec[__index & 7];
63 }
64 
65 static inline __ATTRS_o_ai unsigned short
66 vec_extract(__vector __bool short __vec, int __index) {
67  return __vec[__index & 7];
68 }
69 
70 static inline __ATTRS_o_ai unsigned short
71 vec_extract(__vector unsigned short __vec, int __index) {
72  return __vec[__index & 7];
73 }
74 
75 static inline __ATTRS_o_ai signed int
76 vec_extract(__vector signed int __vec, int __index) {
77  return __vec[__index & 3];
78 }
79 
80 static inline __ATTRS_o_ai unsigned int
81 vec_extract(__vector __bool int __vec, int __index) {
82  return __vec[__index & 3];
83 }
84 
85 static inline __ATTRS_o_ai unsigned int
86 vec_extract(__vector unsigned int __vec, int __index) {
87  return __vec[__index & 3];
88 }
89 
90 static inline __ATTRS_o_ai signed long long
91 vec_extract(__vector signed long long __vec, int __index) {
92  return __vec[__index & 1];
93 }
94 
95 static inline __ATTRS_o_ai unsigned long long
96 vec_extract(__vector __bool long long __vec, int __index) {
97  return __vec[__index & 1];
98 }
99 
100 static inline __ATTRS_o_ai unsigned long long
101 vec_extract(__vector unsigned long long __vec, int __index) {
102  return __vec[__index & 1];
103 }
104 
105 #if __ARCH__ >= 12
106 static inline __ATTRS_o_ai float
107 vec_extract(__vector float __vec, int __index) {
108  return __vec[__index & 3];
109 }
110 #endif
111 
112 static inline __ATTRS_o_ai double
113 vec_extract(__vector double __vec, int __index) {
114  return __vec[__index & 1];
115 }
116 
117 /*-- vec_insert -------------------------------------------------------------*/
118 
119 static inline __ATTRS_o_ai __vector signed char
120 vec_insert(signed char __scalar, __vector signed char __vec, int __index) {
121  __vec[__index & 15] = __scalar;
122  return __vec;
123 }
124 
125 // This prototype is deprecated.
126 static inline __ATTRS_o_ai __vector unsigned char
127 vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {
128  __vector unsigned char __newvec = (__vector unsigned char)__vec;
129  __newvec[__index & 15] = (unsigned char)__scalar;
130  return __newvec;
131 }
132 
133 static inline __ATTRS_o_ai __vector unsigned char
134 vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
135  __vec[__index & 15] = __scalar;
136  return __vec;
137 }
138 
139 static inline __ATTRS_o_ai __vector signed short
140 vec_insert(signed short __scalar, __vector signed short __vec, int __index) {
141  __vec[__index & 7] = __scalar;
142  return __vec;
143 }
144 
145 // This prototype is deprecated.
146 static inline __ATTRS_o_ai __vector unsigned short
147 vec_insert(unsigned short __scalar, __vector __bool short __vec,
148  int __index) {
149  __vector unsigned short __newvec = (__vector unsigned short)__vec;
150  __newvec[__index & 7] = (unsigned short)__scalar;
151  return __newvec;
152 }
153 
154 static inline __ATTRS_o_ai __vector unsigned short
155 vec_insert(unsigned short __scalar, __vector unsigned short __vec,
156  int __index) {
157  __vec[__index & 7] = __scalar;
158  return __vec;
159 }
160 
161 static inline __ATTRS_o_ai __vector signed int
162 vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
163  __vec[__index & 3] = __scalar;
164  return __vec;
165 }
166 
167 // This prototype is deprecated.
168 static inline __ATTRS_o_ai __vector unsigned int
169 vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
170  __vector unsigned int __newvec = (__vector unsigned int)__vec;
171  __newvec[__index & 3] = __scalar;
172  return __newvec;
173 }
174 
175 static inline __ATTRS_o_ai __vector unsigned int
176 vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
177  __vec[__index & 3] = __scalar;
178  return __vec;
179 }
180 
181 static inline __ATTRS_o_ai __vector signed long long
182 vec_insert(signed long long __scalar, __vector signed long long __vec,
183  int __index) {
184  __vec[__index & 1] = __scalar;
185  return __vec;
186 }
187 
188 // This prototype is deprecated.
189 static inline __ATTRS_o_ai __vector unsigned long long
190 vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
191  int __index) {
192  __vector unsigned long long __newvec = (__vector unsigned long long)__vec;
193  __newvec[__index & 1] = __scalar;
194  return __newvec;
195 }
196 
197 static inline __ATTRS_o_ai __vector unsigned long long
198 vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
199  int __index) {
200  __vec[__index & 1] = __scalar;
201  return __vec;
202 }
203 
204 #if __ARCH__ >= 12
205 static inline __ATTRS_o_ai __vector float
206 vec_insert(float __scalar, __vector float __vec, int __index) {
207  __vec[__index & 1] = __scalar;
208  return __vec;
209 }
210 #endif
211 
212 static inline __ATTRS_o_ai __vector double
213 vec_insert(double __scalar, __vector double __vec, int __index) {
214  __vec[__index & 1] = __scalar;
215  return __vec;
216 }
217 
218 /*-- vec_promote ------------------------------------------------------------*/
219 
220 static inline __ATTRS_o_ai __vector signed char
221 vec_promote(signed char __scalar, int __index) {
222  const __vector signed char __zero = (__vector signed char)0;
223  __vector signed char __vec = __builtin_shufflevector(__zero, __zero,
224  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
225  __vec[__index & 15] = __scalar;
226  return __vec;
227 }
228 
229 static inline __ATTRS_o_ai __vector unsigned char
230 vec_promote(unsigned char __scalar, int __index) {
231  const __vector unsigned char __zero = (__vector unsigned char)0;
232  __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
233  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
234  __vec[__index & 15] = __scalar;
235  return __vec;
236 }
237 
238 static inline __ATTRS_o_ai __vector signed short
239 vec_promote(signed short __scalar, int __index) {
240  const __vector signed short __zero = (__vector signed short)0;
241  __vector signed short __vec = __builtin_shufflevector(__zero, __zero,
242  -1, -1, -1, -1, -1, -1, -1, -1);
243  __vec[__index & 7] = __scalar;
244  return __vec;
245 }
246 
247 static inline __ATTRS_o_ai __vector unsigned short
248 vec_promote(unsigned short __scalar, int __index) {
249  const __vector unsigned short __zero = (__vector unsigned short)0;
250  __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
251  -1, -1, -1, -1, -1, -1, -1, -1);
252  __vec[__index & 7] = __scalar;
253  return __vec;
254 }
255 
256 static inline __ATTRS_o_ai __vector signed int
257 vec_promote(signed int __scalar, int __index) {
258  const __vector signed int __zero = (__vector signed int)0;
259  __vector signed int __vec = __builtin_shufflevector(__zero, __zero,
260  -1, -1, -1, -1);
261  __vec[__index & 3] = __scalar;
262  return __vec;
263 }
264 
265 static inline __ATTRS_o_ai __vector unsigned int
266 vec_promote(unsigned int __scalar, int __index) {
267  const __vector unsigned int __zero = (__vector unsigned int)0;
268  __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
269  -1, -1, -1, -1);
270  __vec[__index & 3] = __scalar;
271  return __vec;
272 }
273 
274 static inline __ATTRS_o_ai __vector signed long long
275 vec_promote(signed long long __scalar, int __index) {
276  const __vector signed long long __zero = (__vector signed long long)0;
277  __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
278  -1, -1);
279  __vec[__index & 1] = __scalar;
280  return __vec;
281 }
282 
283 static inline __ATTRS_o_ai __vector unsigned long long
284 vec_promote(unsigned long long __scalar, int __index) {
285  const __vector unsigned long long __zero = (__vector unsigned long long)0;
286  __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
287  -1, -1);
288  __vec[__index & 1] = __scalar;
289  return __vec;
290 }
291 
292 #if __ARCH__ >= 12
293 static inline __ATTRS_o_ai __vector float
294 vec_promote(float __scalar, int __index) {
295  const __vector float __zero = (__vector float)0.0f;
296  __vector float __vec = __builtin_shufflevector(__zero, __zero,
297  -1, -1, -1, -1);
298  __vec[__index & 3] = __scalar;
299  return __vec;
300 }
301 #endif
302 
303 static inline __ATTRS_o_ai __vector double
304 vec_promote(double __scalar, int __index) {
305  const __vector double __zero = (__vector double)0.0;
306  __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
307  __vec[__index & 1] = __scalar;
308  return __vec;
309 }
310 
311 /*-- vec_insert_and_zero ----------------------------------------------------*/
312 
313 static inline __ATTRS_o_ai __vector signed char
314 vec_insert_and_zero(const signed char *__ptr) {
315  __vector signed char __vec = (__vector signed char)0;
316  __vec[7] = *__ptr;
317  return __vec;
318 }
319 
320 static inline __ATTRS_o_ai __vector unsigned char
321 vec_insert_and_zero(const unsigned char *__ptr) {
322  __vector unsigned char __vec = (__vector unsigned char)0;
323  __vec[7] = *__ptr;
324  return __vec;
325 }
326 
327 static inline __ATTRS_o_ai __vector signed short
328 vec_insert_and_zero(const signed short *__ptr) {
329  __vector signed short __vec = (__vector signed short)0;
330  __vec[3] = *__ptr;
331  return __vec;
332 }
333 
334 static inline __ATTRS_o_ai __vector unsigned short
335 vec_insert_and_zero(const unsigned short *__ptr) {
336  __vector unsigned short __vec = (__vector unsigned short)0;
337  __vec[3] = *__ptr;
338  return __vec;
339 }
340 
341 static inline __ATTRS_o_ai __vector signed int
342 vec_insert_and_zero(const signed int *__ptr) {
343  __vector signed int __vec = (__vector signed int)0;
344  __vec[1] = *__ptr;
345  return __vec;
346 }
347 
348 static inline __ATTRS_o_ai __vector unsigned int
349 vec_insert_and_zero(const unsigned int *__ptr) {
350  __vector unsigned int __vec = (__vector unsigned int)0;
351  __vec[1] = *__ptr;
352  return __vec;
353 }
354 
355 static inline __ATTRS_o_ai __vector signed long long
356 vec_insert_and_zero(const signed long long *__ptr) {
357  __vector signed long long __vec = (__vector signed long long)0;
358  __vec[0] = *__ptr;
359  return __vec;
360 }
361 
362 static inline __ATTRS_o_ai __vector unsigned long long
363 vec_insert_and_zero(const unsigned long long *__ptr) {
364  __vector unsigned long long __vec = (__vector unsigned long long)0;
365  __vec[0] = *__ptr;
366  return __vec;
367 }
368 
369 #if __ARCH__ >= 12
370 static inline __ATTRS_o_ai __vector float
371 vec_insert_and_zero(const float *__ptr) {
372  __vector float __vec = (__vector float)0.0f;
373  __vec[1] = *__ptr;
374  return __vec;
375 }
376 #endif
377 
378 static inline __ATTRS_o_ai __vector double
379 vec_insert_and_zero(const double *__ptr) {
380  __vector double __vec = (__vector double)0.0;
381  __vec[0] = *__ptr;
382  return __vec;
383 }
384 
385 /*-- vec_perm ---------------------------------------------------------------*/
386 
387 static inline __ATTRS_o_ai __vector signed char
388 vec_perm(__vector signed char __a, __vector signed char __b,
389  __vector unsigned char __c) {
390  return (__vector signed char)__builtin_s390_vperm(
391  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
392 }
393 
394 static inline __ATTRS_o_ai __vector unsigned char
395 vec_perm(__vector unsigned char __a, __vector unsigned char __b,
396  __vector unsigned char __c) {
397  return (__vector unsigned char)__builtin_s390_vperm(
398  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
399 }
400 
401 static inline __ATTRS_o_ai __vector __bool char
402 vec_perm(__vector __bool char __a, __vector __bool char __b,
403  __vector unsigned char __c) {
404  return (__vector __bool char)__builtin_s390_vperm(
405  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
406 }
407 
408 static inline __ATTRS_o_ai __vector signed short
409 vec_perm(__vector signed short __a, __vector signed short __b,
410  __vector unsigned char __c) {
411  return (__vector signed short)__builtin_s390_vperm(
412  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
413 }
414 
415 static inline __ATTRS_o_ai __vector unsigned short
416 vec_perm(__vector unsigned short __a, __vector unsigned short __b,
417  __vector unsigned char __c) {
418  return (__vector unsigned short)__builtin_s390_vperm(
419  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
420 }
421 
422 static inline __ATTRS_o_ai __vector __bool short
423 vec_perm(__vector __bool short __a, __vector __bool short __b,
424  __vector unsigned char __c) {
425  return (__vector __bool short)__builtin_s390_vperm(
426  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
427 }
428 
429 static inline __ATTRS_o_ai __vector signed int
430 vec_perm(__vector signed int __a, __vector signed int __b,
431  __vector unsigned char __c) {
432  return (__vector signed int)__builtin_s390_vperm(
433  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
434 }
435 
436 static inline __ATTRS_o_ai __vector unsigned int
437 vec_perm(__vector unsigned int __a, __vector unsigned int __b,
438  __vector unsigned char __c) {
439  return (__vector unsigned int)__builtin_s390_vperm(
440  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
441 }
442 
443 static inline __ATTRS_o_ai __vector __bool int
444 vec_perm(__vector __bool int __a, __vector __bool int __b,
445  __vector unsigned char __c) {
446  return (__vector __bool int)__builtin_s390_vperm(
447  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
448 }
449 
450 static inline __ATTRS_o_ai __vector signed long long
451 vec_perm(__vector signed long long __a, __vector signed long long __b,
452  __vector unsigned char __c) {
453  return (__vector signed long long)__builtin_s390_vperm(
454  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
455 }
456 
457 static inline __ATTRS_o_ai __vector unsigned long long
458 vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
459  __vector unsigned char __c) {
460  return (__vector unsigned long long)__builtin_s390_vperm(
461  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
462 }
463 
464 static inline __ATTRS_o_ai __vector __bool long long
465 vec_perm(__vector __bool long long __a, __vector __bool long long __b,
466  __vector unsigned char __c) {
467  return (__vector __bool long long)__builtin_s390_vperm(
468  (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
469 }
470 
471 #if __ARCH__ >= 12
472 static inline __ATTRS_o_ai __vector float
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
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
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
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
535 vec_revb(__vector unsigned short __vec) {
536  return __builtin_s390_vlbrh(__vec);
537 }
538 
539 static inline __ATTRS_o_ai __vector signed int
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
1018 vec_xl(long __offset, const signed char *__ptr) {
1019  __vector signed char V;
1020  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1021  sizeof(__vector signed char));
1022  return V;
1023 }
1024 
1025 static inline __ATTRS_o_ai __vector unsigned char
1026 vec_xl(long __offset, const unsigned char *__ptr) {
1027  __vector unsigned char V;
1028  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1029  sizeof(__vector unsigned char));
1030  return V;
1031 }
1032 
1033 static inline __ATTRS_o_ai __vector signed short
1034 vec_xl(long __offset, const signed short *__ptr) {
1035  __vector signed short V;
1036  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1037  sizeof(__vector signed short));
1038  return V;
1039 }
1040 
1041 static inline __ATTRS_o_ai __vector unsigned short
1042 vec_xl(long __offset, const unsigned short *__ptr) {
1043  __vector unsigned short V;
1044  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1045  sizeof(__vector unsigned short));
1046  return V;
1047 }
1048 
1049 static inline __ATTRS_o_ai __vector signed int
1050 vec_xl(long __offset, const signed int *__ptr) {
1051  __vector signed int V;
1052  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1053  sizeof(__vector signed int));
1054  return V;
1055 }
1056 
1057 static inline __ATTRS_o_ai __vector unsigned int
1058 vec_xl(long __offset, const unsigned int *__ptr) {
1059  __vector unsigned int V;
1060  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1061  sizeof(__vector unsigned int));
1062  return V;
1063 }
1064 
1065 static inline __ATTRS_o_ai __vector signed long long
1066 vec_xl(long __offset, const signed long long *__ptr) {
1067  __vector signed long long V;
1068  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1069  sizeof(__vector signed long long));
1070  return V;
1071 }
1072 
1073 static inline __ATTRS_o_ai __vector unsigned long long
1074 vec_xl(long __offset, const unsigned long long *__ptr) {
1075  __vector unsigned long long V;
1076  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1077  sizeof(__vector unsigned long long));
1078  return V;
1079 }
1080 
1081 #if __ARCH__ >= 12
1082 static inline __ATTRS_o_ai __vector float
1083 vec_xl(long __offset, const float *__ptr) {
1084  __vector float V;
1085  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1086  sizeof(__vector float));
1087  return V;
1088 }
1089 #endif
1090 
1091 static inline __ATTRS_o_ai __vector double
1092 vec_xl(long __offset, const double *__ptr) {
1093  __vector double V;
1094  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1095  sizeof(__vector double));
1096  return V;
1097 }
1098 
1099 /*-- vec_xld2 ---------------------------------------------------------------*/
1100 
1101 // This prototype is deprecated.
1102 static inline __ATTRS_o_ai __vector signed char
1103 vec_xld2(long __offset, const signed char *__ptr) {
1104  __vector signed char V;
1105  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1106  sizeof(__vector signed char));
1107  return V;
1108 }
1109 
1110 // This prototype is deprecated.
1111 static inline __ATTRS_o_ai __vector unsigned char
1112 vec_xld2(long __offset, const unsigned char *__ptr) {
1113  __vector unsigned char V;
1114  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1115  sizeof(__vector unsigned char));
1116  return V;
1117 }
1118 
1119 // This prototype is deprecated.
1120 static inline __ATTRS_o_ai __vector signed short
1121 vec_xld2(long __offset, const signed short *__ptr) {
1122  __vector signed short V;
1123  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1124  sizeof(__vector signed short));
1125  return V;
1126 }
1127 
1128 // This prototype is deprecated.
1129 static inline __ATTRS_o_ai __vector unsigned short
1130 vec_xld2(long __offset, const unsigned short *__ptr) {
1131  __vector unsigned short V;
1132  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1133  sizeof(__vector unsigned short));
1134  return V;
1135 }
1136 
1137 // This prototype is deprecated.
1138 static inline __ATTRS_o_ai __vector signed int
1139 vec_xld2(long __offset, const signed int *__ptr) {
1140  __vector signed int V;
1141  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1142  sizeof(__vector signed int));
1143  return V;
1144 }
1145 
1146 // This prototype is deprecated.
1147 static inline __ATTRS_o_ai __vector unsigned int
1148 vec_xld2(long __offset, const unsigned int *__ptr) {
1149  __vector unsigned int V;
1150  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1151  sizeof(__vector unsigned int));
1152  return V;
1153 }
1154 
1155 // This prototype is deprecated.
1156 static inline __ATTRS_o_ai __vector signed long long
1157 vec_xld2(long __offset, const signed long long *__ptr) {
1158  __vector signed long long V;
1159  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1160  sizeof(__vector signed long long));
1161  return V;
1162 }
1163 
1164 // This prototype is deprecated.
1165 static inline __ATTRS_o_ai __vector unsigned long long
1166 vec_xld2(long __offset, const unsigned long long *__ptr) {
1167  __vector unsigned long long V;
1168  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1169  sizeof(__vector unsigned long long));
1170  return V;
1171 }
1172 
1173 // This prototype is deprecated.
1174 static inline __ATTRS_o_ai __vector double
1175 vec_xld2(long __offset, const double *__ptr) {
1176  __vector double V;
1177  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1178  sizeof(__vector double));
1179  return V;
1180 }
1181 
1182 /*-- vec_xlw4 ---------------------------------------------------------------*/
1183 
1184 // This prototype is deprecated.
1185 static inline __ATTRS_o_ai __vector signed char
1186 vec_xlw4(long __offset, const signed char *__ptr) {
1187  __vector signed char V;
1188  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1189  sizeof(__vector signed char));
1190  return V;
1191 }
1192 
1193 // This prototype is deprecated.
1194 static inline __ATTRS_o_ai __vector unsigned char
1195 vec_xlw4(long __offset, const unsigned char *__ptr) {
1196  __vector unsigned char V;
1197  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1198  sizeof(__vector unsigned char));
1199  return V;
1200 }
1201 
1202 // This prototype is deprecated.
1203 static inline __ATTRS_o_ai __vector signed short
1204 vec_xlw4(long __offset, const signed short *__ptr) {
1205  __vector signed short V;
1206  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1207  sizeof(__vector signed short));
1208  return V;
1209 }
1210 
1211 // This prototype is deprecated.
1212 static inline __ATTRS_o_ai __vector unsigned short
1213 vec_xlw4(long __offset, const unsigned short *__ptr) {
1214  __vector unsigned short V;
1215  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1216  sizeof(__vector unsigned short));
1217  return V;
1218 }
1219 
1220 // This prototype is deprecated.
1221 static inline __ATTRS_o_ai __vector signed int
1222 vec_xlw4(long __offset, const signed int *__ptr) {
1223  __vector signed int V;
1224  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1225  sizeof(__vector signed int));
1226  return V;
1227 }
1228 
1229 // This prototype is deprecated.
1230 static inline __ATTRS_o_ai __vector unsigned int
1231 vec_xlw4(long __offset, const unsigned int *__ptr) {
1232  __vector unsigned int V;
1233  __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1234  sizeof(__vector unsigned int));
1235  return V;
1236 }
1237 
1238 /*-- vec_xst ----------------------------------------------------------------*/
1239 
1240 static inline __ATTRS_o_ai void
1241 vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
1242  __vector signed char V = __vec;
1243  __builtin_memcpy(((char *)__ptr + __offset), &V,
1244  sizeof(__vector signed char));
1245 }
1246 
1247 static inline __ATTRS_o_ai void
1248 vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1249  __vector unsigned char V = __vec;
1250  __builtin_memcpy(((char *)__ptr + __offset), &V,
1251  sizeof(__vector unsigned char));
1252 }
1253 
1254 static inline __ATTRS_o_ai void
1255 vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
1256  __vector signed short V = __vec;
1257  __builtin_memcpy(((char *)__ptr + __offset), &V,
1258  sizeof(__vector signed short));
1259 }
1260 
1261 static inline __ATTRS_o_ai void
1262 vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1263  __vector unsigned short V = __vec;
1264  __builtin_memcpy(((char *)__ptr + __offset), &V,
1265  sizeof(__vector unsigned short));
1266 }
1267 
1268 static inline __ATTRS_o_ai void
1269 vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
1270  __vector signed int V = __vec;
1271  __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1272 }
1273 
1274 static inline __ATTRS_o_ai void
1275 vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1276  __vector unsigned int V = __vec;
1277  __builtin_memcpy(((char *)__ptr + __offset), &V,
1278  sizeof(__vector unsigned int));
1279 }
1280 
1281 static inline __ATTRS_o_ai void
1282 vec_xst(__vector signed long long __vec, long __offset,
1283  signed long long *__ptr) {
1284  __vector signed long long V = __vec;
1285  __builtin_memcpy(((char *)__ptr + __offset), &V,
1286  sizeof(__vector signed long long));
1287 }
1288 
1289 static inline __ATTRS_o_ai void
1290 vec_xst(__vector unsigned long long __vec, long __offset,
1291  unsigned long long *__ptr) {
1292  __vector unsigned long long V = __vec;
1293  __builtin_memcpy(((char *)__ptr + __offset), &V,
1294  sizeof(__vector unsigned long long));
1295 }
1296 
1297 #if __ARCH__ >= 12
1298 static inline __ATTRS_o_ai void
1299 vec_xst(__vector float __vec, long __offset, float *__ptr) {
1300  __vector float V = __vec;
1301  __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));
1302 }
1303 #endif
1304 
1305 static inline __ATTRS_o_ai void
1306 vec_xst(__vector double __vec, long __offset, double *__ptr) {
1307  __vector double V = __vec;
1308  __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1309 }
1310 
1311 /*-- vec_xstd2 --------------------------------------------------------------*/
1312 
1313 // This prototype is deprecated.
1314 static inline __ATTRS_o_ai void
1315 vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
1316  __vector signed char V = __vec;
1317  __builtin_memcpy(((char *)__ptr + __offset), &V,
1318  sizeof(__vector signed char));
1319 }
1320 
1321 // This prototype is deprecated.
1322 static inline __ATTRS_o_ai void
1323 vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1324  __vector unsigned char V = __vec;
1325  __builtin_memcpy(((char *)__ptr + __offset), &V,
1326  sizeof(__vector unsigned char));
1327 }
1328 
1329 // This prototype is deprecated.
1330 static inline __ATTRS_o_ai void
1331 vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
1332  __vector signed short V = __vec;
1333  __builtin_memcpy(((char *)__ptr + __offset), &V,
1334  sizeof(__vector signed short));
1335 }
1336 
1337 // This prototype is deprecated.
1338 static inline __ATTRS_o_ai void
1339 vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1340  __vector unsigned short V = __vec;
1341  __builtin_memcpy(((char *)__ptr + __offset), &V,
1342  sizeof(__vector unsigned short));
1343 }
1344 
1345 // This prototype is deprecated.
1346 static inline __ATTRS_o_ai void
1347 vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
1348  __vector signed int V = __vec;
1349  __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1350 }
1351 
1352 // This prototype is deprecated.
1353 static inline __ATTRS_o_ai void
1354 vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1355  __vector unsigned int V = __vec;
1356  __builtin_memcpy(((char *)__ptr + __offset), &V,
1357  sizeof(__vector unsigned int));
1358 }
1359 
1360 // This prototype is deprecated.
1361 static inline __ATTRS_o_ai void
1362 vec_xstd2(__vector signed long long __vec, long __offset,
1363  signed long long *__ptr) {
1364  __vector signed long long V = __vec;
1365  __builtin_memcpy(((char *)__ptr + __offset), &V,
1366  sizeof(__vector signed long long));
1367 }
1368 
1369 // This prototype is deprecated.
1370 static inline __ATTRS_o_ai void
1371 vec_xstd2(__vector unsigned long long __vec, long __offset,
1372  unsigned long long *__ptr) {
1373  __vector unsigned long long V = __vec;
1374  __builtin_memcpy(((char *)__ptr + __offset), &V,
1375  sizeof(__vector unsigned long long));
1376 }
1377 
1378 // This prototype is deprecated.
1379 static inline __ATTRS_o_ai void
1380 vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
1381  __vector double V = __vec;
1382  __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1383 }
1384 
1385 /*-- vec_xstw4 --------------------------------------------------------------*/
1386 
1387 // This prototype is deprecated.
1388 static inline __ATTRS_o_ai void
1389 vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
1390  __vector signed char V = __vec;
1391  __builtin_memcpy(((char *)__ptr + __offset), &V,
1392  sizeof(__vector signed char));
1393 }
1394 
1395 // This prototype is deprecated.
1396 static inline __ATTRS_o_ai void
1397 vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1398  __vector unsigned char V = __vec;
1399  __builtin_memcpy(((char *)__ptr + __offset), &V,
1400  sizeof(__vector unsigned char));
1401 }
1402 
1403 // This prototype is deprecated.
1404 static inline __ATTRS_o_ai void
1405 vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
1406  __vector signed short V = __vec;
1407  __builtin_memcpy(((char *)__ptr + __offset), &V,
1408  sizeof(__vector signed short));
1409 }
1410 
1411 // This prototype is deprecated.
1412 static inline __ATTRS_o_ai void
1413 vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1414  __vector unsigned short V = __vec;
1415  __builtin_memcpy(((char *)__ptr + __offset), &V,
1416  sizeof(__vector unsigned short));
1417 }
1418 
1419 // This prototype is deprecated.
1420 static inline __ATTRS_o_ai void
1421 vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
1422  __vector signed int V = __vec;
1423  __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1424 }
1425 
1426 // This prototype is deprecated.
1427 static inline __ATTRS_o_ai void
1428 vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1429  __vector unsigned int V = __vec;
1430  __builtin_memcpy(((char *)__ptr + __offset), &V,
1431  sizeof(__vector unsigned int));
1432 }
1433 
1434 /*-- vec_load_bndry ---------------------------------------------------------*/
1435 
1436 extern __ATTRS_o __vector signed char
1437 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1438  __constant_pow2_range(__len, 64, 4096);
1439 
1440 extern __ATTRS_o __vector unsigned char
1441 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1442  __constant_pow2_range(__len, 64, 4096);
1443 
1444 extern __ATTRS_o __vector signed short
1445 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1446  __constant_pow2_range(__len, 64, 4096);
1447 
1448 extern __ATTRS_o __vector unsigned short
1449 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1450  __constant_pow2_range(__len, 64, 4096);
1451 
1452 extern __ATTRS_o __vector signed int
1453 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1454  __constant_pow2_range(__len, 64, 4096);
1455 
1456 extern __ATTRS_o __vector unsigned int
1457 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1458  __constant_pow2_range(__len, 64, 4096);
1459 
1460 extern __ATTRS_o __vector signed long long
1461 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1462  __constant_pow2_range(__len, 64, 4096);
1463 
1464 extern __ATTRS_o __vector unsigned long long
1465 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1466  __constant_pow2_range(__len, 64, 4096);
1467 
1468 #if __ARCH__ >= 12
1469 extern __ATTRS_o __vector float
1470 vec_load_bndry(const float *__ptr, unsigned short __len)
1471  __constant_pow2_range(__len, 64, 4096);
1472 #endif
1473 
1474 extern __ATTRS_o __vector double
1475 vec_load_bndry(const double *__ptr, unsigned short __len)
1476  __constant_pow2_range(__len, 64, 4096);
1477 
1478 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1479  __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1480  (Y) == 128 ? 1 : \
1481  (Y) == 256 ? 2 : \
1482  (Y) == 512 ? 3 : \
1483  (Y) == 1024 ? 4 : \
1484  (Y) == 2048 ? 5 : \
1485  (Y) == 4096 ? 6 : -1)))
1486 
1487 /*-- vec_load_len -----------------------------------------------------------*/
1488 
1489 static inline __ATTRS_o_ai __vector signed char
1490 vec_load_len(const signed char *__ptr, unsigned int __len) {
1491  return (__vector signed char)__builtin_s390_vll(__len, __ptr);
1492 }
1493 
1494 static inline __ATTRS_o_ai __vector unsigned char
1495 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1496  return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
1497 }
1498 
1499 static inline __ATTRS_o_ai __vector signed short
1500 vec_load_len(const signed short *__ptr, unsigned int __len) {
1501  return (__vector signed short)__builtin_s390_vll(__len, __ptr);
1502 }
1503 
1504 static inline __ATTRS_o_ai __vector unsigned short
1505 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1506  return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
1507 }
1508 
1509 static inline __ATTRS_o_ai __vector signed int
1510 vec_load_len(const signed int *__ptr, unsigned int __len) {
1511  return (__vector signed int)__builtin_s390_vll(__len, __ptr);
1512 }
1513 
1514 static inline __ATTRS_o_ai __vector unsigned int
1515 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1516  return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
1517 }
1518 
1519 static inline __ATTRS_o_ai __vector signed long long
1520 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1521  return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
1522 }
1523 
1524 static inline __ATTRS_o_ai __vector unsigned long long
1525 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1526  return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1527 }
1528 
1529 #if __ARCH__ >= 12
1530 static inline __ATTRS_o_ai __vector float
1531 vec_load_len(const float *__ptr, unsigned int __len) {
1532  return (__vector float)__builtin_s390_vll(__len, __ptr);
1533 }
1534 #endif
1535 
1536 static inline __ATTRS_o_ai __vector double
1537 vec_load_len(const double *__ptr, unsigned int __len) {
1538  return (__vector double)__builtin_s390_vll(__len, __ptr);
1539 }
1540 
1541 /*-- vec_load_len_r ---------------------------------------------------------*/
1542 
1543 #if __ARCH__ >= 12
1544 static inline __ATTRS_ai __vector unsigned char
1545 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1546  return (__vector unsigned char)__builtin_s390_vlrl(__len, __ptr);
1547 }
1548 #endif
1549 
1550 /*-- vec_store_len ----------------------------------------------------------*/
1551 
1552 static inline __ATTRS_o_ai void
1553 vec_store_len(__vector signed char __vec, signed char *__ptr,
1554  unsigned int __len) {
1555  __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1556 }
1557 
1558 static inline __ATTRS_o_ai void
1559 vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
1560  unsigned int __len) {
1561  __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1562 }
1563 
1564 static inline __ATTRS_o_ai void
1565 vec_store_len(__vector signed short __vec, signed short *__ptr,
1566  unsigned int __len) {
1567  __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1568 }
1569 
1570 static inline __ATTRS_o_ai void
1571 vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
1572  unsigned int __len) {
1573  __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1574 }
1575 
1576 static inline __ATTRS_o_ai void
1577 vec_store_len(__vector signed int __vec, signed int *__ptr,
1578  unsigned int __len) {
1579  __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1580 }
1581 
1582 static inline __ATTRS_o_ai void
1583 vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
1584  unsigned int __len) {
1585  __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1586 }
1587 
1588 static inline __ATTRS_o_ai void
1589 vec_store_len(__vector signed long long __vec, signed long long *__ptr,
1590  unsigned int __len) {
1591  __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1592 }
1593 
1594 static inline __ATTRS_o_ai void
1595 vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
1596  unsigned int __len) {
1597  __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1598 }
1599 
1600 #if __ARCH__ >= 12
1601 static inline __ATTRS_o_ai void
1602 vec_store_len(__vector float __vec, float *__ptr,
1603  unsigned int __len) {
1604  __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1605 }
1606 #endif
1607 
1608 static inline __ATTRS_o_ai void
1609 vec_store_len(__vector double __vec, double *__ptr,
1610  unsigned int __len) {
1611  __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1612 }
1613 
1614 /*-- vec_store_len_r --------------------------------------------------------*/
1615 
1616 #if __ARCH__ >= 12
1617 static inline __ATTRS_ai void
1618 vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
1619  unsigned int __len) {
1620  __builtin_s390_vstrl((__vector signed char)__vec, __len, __ptr);
1621 }
1622 #endif
1623 
1624 /*-- vec_load_pair ----------------------------------------------------------*/
1625 
1626 static inline __ATTRS_o_ai __vector signed long long
1627 vec_load_pair(signed long long __a, signed long long __b) {
1628  return (__vector signed long long)(__a, __b);
1629 }
1630 
1631 static inline __ATTRS_o_ai __vector unsigned long long
1632 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1633  return (__vector unsigned long long)(__a, __b);
1634 }
1635 
1636 /*-- vec_genmask ------------------------------------------------------------*/
1637 
1638 static inline __ATTRS_o_ai __vector unsigned char
1639 vec_genmask(unsigned short __mask)
1640  __constant(__mask) {
1641  return (__vector unsigned char)(
1642  __mask & 0x8000 ? 0xff : 0,
1643  __mask & 0x4000 ? 0xff : 0,
1644  __mask & 0x2000 ? 0xff : 0,
1645  __mask & 0x1000 ? 0xff : 0,
1646  __mask & 0x0800 ? 0xff : 0,
1647  __mask & 0x0400 ? 0xff : 0,
1648  __mask & 0x0200 ? 0xff : 0,
1649  __mask & 0x0100 ? 0xff : 0,
1650  __mask & 0x0080 ? 0xff : 0,
1651  __mask & 0x0040 ? 0xff : 0,
1652  __mask & 0x0020 ? 0xff : 0,
1653  __mask & 0x0010 ? 0xff : 0,
1654  __mask & 0x0008 ? 0xff : 0,
1655  __mask & 0x0004 ? 0xff : 0,
1656  __mask & 0x0002 ? 0xff : 0,
1657  __mask & 0x0001 ? 0xff : 0);
1658 }
1659 
1660 /*-- vec_genmasks_* ---------------------------------------------------------*/
1661 
1662 static inline __ATTRS_o_ai __vector unsigned char
1663 vec_genmasks_8(unsigned char __first, unsigned char __last)
1664  __constant(__first) __constant(__last) {
1665  unsigned char __bit1 = __first & 7;
1666  unsigned char __bit2 = __last & 7;
1667  unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1668  unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1669  unsigned char __value = (__bit1 <= __bit2 ?
1670  __mask1 & ~__mask2 :
1671  __mask1 | ~__mask2);
1672  return (__vector unsigned char)__value;
1673 }
1674 
1675 static inline __ATTRS_o_ai __vector unsigned short
1676 vec_genmasks_16(unsigned char __first, unsigned char __last)
1677  __constant(__first) __constant(__last) {
1678  unsigned char __bit1 = __first & 15;
1679  unsigned char __bit2 = __last & 15;
1680  unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1681  unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1682  unsigned short __value = (__bit1 <= __bit2 ?
1683  __mask1 & ~__mask2 :
1684  __mask1 | ~__mask2);
1685  return (__vector unsigned short)__value;
1686 }
1687 
1688 static inline __ATTRS_o_ai __vector unsigned int
1689 vec_genmasks_32(unsigned char __first, unsigned char __last)
1690  __constant(__first) __constant(__last) {
1691  unsigned char __bit1 = __first & 31;
1692  unsigned char __bit2 = __last & 31;
1693  unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1694  unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1695  unsigned int __value = (__bit1 <= __bit2 ?
1696  __mask1 & ~__mask2 :
1697  __mask1 | ~__mask2);
1698  return (__vector unsigned int)__value;
1699 }
1700 
1701 static inline __ATTRS_o_ai __vector unsigned long long
1702 vec_genmasks_64(unsigned char __first, unsigned char __last)
1703  __constant(__first) __constant(__last) {
1704  unsigned char __bit1 = __first & 63;
1705  unsigned char __bit2 = __last & 63;
1706  unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1707  unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1708  unsigned long long __value = (__bit1 <= __bit2 ?
1709  __mask1 & ~__mask2 :
1710  __mask1 | ~__mask2);
1711  return (__vector unsigned long long)__value;
1712 }
1713 
1714 /*-- vec_splat --------------------------------------------------------------*/
1715 
1716 static inline __ATTRS_o_ai __vector signed char
1717 vec_splat(__vector signed char __vec, int __index)
1718  __constant_range(__index, 0, 15) {
1719  return (__vector signed char)__vec[__index];
1720 }
1721 
1722 static inline __ATTRS_o_ai __vector __bool char
1723 vec_splat(__vector __bool char __vec, int __index)
1724  __constant_range(__index, 0, 15) {
1725  return (__vector __bool char)(__vector unsigned char)__vec[__index];
1726 }
1727 
1728 static inline __ATTRS_o_ai __vector unsigned char
1729 vec_splat(__vector unsigned char __vec, int __index)
1730  __constant_range(__index, 0, 15) {
1731  return (__vector unsigned char)__vec[__index];
1732 }
1733 
1734 static inline __ATTRS_o_ai __vector signed short
1735 vec_splat(__vector signed short __vec, int __index)
1736  __constant_range(__index, 0, 7) {
1737  return (__vector signed short)__vec[__index];
1738 }
1739 
1740 static inline __ATTRS_o_ai __vector __bool short
1741 vec_splat(__vector __bool short __vec, int __index)
1742  __constant_range(__index, 0, 7) {
1743  return (__vector __bool short)(__vector unsigned short)__vec[__index];
1744 }
1745 
1746 static inline __ATTRS_o_ai __vector unsigned short
1747 vec_splat(__vector unsigned short __vec, int __index)
1748  __constant_range(__index, 0, 7) {
1749  return (__vector unsigned short)__vec[__index];
1750 }
1751 
1752 static inline __ATTRS_o_ai __vector signed int
1753 vec_splat(__vector signed int __vec, int __index)
1754  __constant_range(__index, 0, 3) {
1755  return (__vector signed int)__vec[__index];
1756 }
1757 
1758 static inline __ATTRS_o_ai __vector __bool int
1759 vec_splat(__vector __bool int __vec, int __index)
1760  __constant_range(__index, 0, 3) {
1761  return (__vector __bool int)(__vector unsigned int)__vec[__index];
1762 }
1763 
1764 static inline __ATTRS_o_ai __vector unsigned int
1765 vec_splat(__vector unsigned int __vec, int __index)
1766  __constant_range(__index, 0, 3) {
1767  return (__vector unsigned int)__vec[__index];
1768 }
1769 
1770 static inline __ATTRS_o_ai __vector signed long long
1771 vec_splat(__vector signed long long __vec, int __index)
1772  __constant_range(__index, 0, 1) {
1773  return (__vector signed long long)__vec[__index];
1774 }
1775 
1776 static inline __ATTRS_o_ai __vector __bool long long
1777 vec_splat(__vector __bool long long __vec, int __index)
1778  __constant_range(__index, 0, 1) {
1779  return ((__vector __bool long long)
1780  (__vector unsigned long long)__vec[__index]);
1781 }
1782 
1783 static inline __ATTRS_o_ai __vector unsigned long long
1784 vec_splat(__vector unsigned long long __vec, int __index)
1785  __constant_range(__index, 0, 1) {
1786  return (__vector unsigned long long)__vec[__index];
1787 }
1788 
1789 #if __ARCH__ >= 12
1790 static inline __ATTRS_o_ai __vector float
1791 vec_splat(__vector float __vec, int __index)
1792  __constant_range(__index, 0, 3) {
1793  return (__vector float)__vec[__index];
1794 }
1795 #endif
1796 
1797 static inline __ATTRS_o_ai __vector double
1798 vec_splat(__vector double __vec, int __index)
1799  __constant_range(__index, 0, 1) {
1800  return (__vector double)__vec[__index];
1801 }
1802 
1803 /*-- vec_splat_s* -----------------------------------------------------------*/
1804 
1805 static inline __ATTRS_ai __vector signed char
1806 vec_splat_s8(signed char __scalar)
1807  __constant(__scalar) {
1808  return (__vector signed char)__scalar;
1809 }
1810 
1811 static inline __ATTRS_ai __vector signed short
1812 vec_splat_s16(signed short __scalar)
1813  __constant(__scalar) {
1814  return (__vector signed short)__scalar;
1815 }
1816 
1817 static inline __ATTRS_ai __vector signed int
1818 vec_splat_s32(signed short __scalar)
1819  __constant(__scalar) {
1820  return (__vector signed int)(signed int)__scalar;
1821 }
1822 
1823 static inline __ATTRS_ai __vector signed long long
1824 vec_splat_s64(signed short __scalar)
1825  __constant(__scalar) {
1826  return (__vector signed long long)(signed long)__scalar;
1827 }
1828 
1829 /*-- vec_splat_u* -----------------------------------------------------------*/
1830 
1831 static inline __ATTRS_ai __vector unsigned char
1832 vec_splat_u8(unsigned char __scalar)
1833  __constant(__scalar) {
1834  return (__vector unsigned char)__scalar;
1835 }
1836 
1837 static inline __ATTRS_ai __vector unsigned short
1838 vec_splat_u16(unsigned short __scalar)
1839  __constant(__scalar) {
1840  return (__vector unsigned short)__scalar;
1841 }
1842 
1843 static inline __ATTRS_ai __vector unsigned int
1844 vec_splat_u32(signed short __scalar)
1845  __constant(__scalar) {
1846  return (__vector unsigned int)(signed int)__scalar;
1847 }
1848 
1849 static inline __ATTRS_ai __vector unsigned long long
1850 vec_splat_u64(signed short __scalar)
1851  __constant(__scalar) {
1852  return (__vector unsigned long long)(signed long long)__scalar;
1853 }
1854 
1855 /*-- vec_splats -------------------------------------------------------------*/
1856 
1857 static inline __ATTRS_o_ai __vector signed char
1858 vec_splats(signed char __scalar) {
1859  return (__vector signed char)__scalar;
1860 }
1861 
1862 static inline __ATTRS_o_ai __vector unsigned char
1863 vec_splats(unsigned char __scalar) {
1864  return (__vector unsigned char)__scalar;
1865 }
1866 
1867 static inline __ATTRS_o_ai __vector signed short
1868 vec_splats(signed short __scalar) {
1869  return (__vector signed short)__scalar;
1870 }
1871 
1872 static inline __ATTRS_o_ai __vector unsigned short
1873 vec_splats(unsigned short __scalar) {
1874  return (__vector unsigned short)__scalar;
1875 }
1876 
1877 static inline __ATTRS_o_ai __vector signed int
1878 vec_splats(signed int __scalar) {
1879  return (__vector signed int)__scalar;
1880 }
1881 
1882 static inline __ATTRS_o_ai __vector unsigned int
1883 vec_splats(unsigned int __scalar) {
1884  return (__vector unsigned int)__scalar;
1885 }
1886 
1887 static inline __ATTRS_o_ai __vector signed long long
1888 vec_splats(signed long long __scalar) {
1889  return (__vector signed long long)__scalar;
1890 }
1891 
1892 static inline __ATTRS_o_ai __vector unsigned long long
1893 vec_splats(unsigned long long __scalar) {
1894  return (__vector unsigned long long)__scalar;
1895 }
1896 
1897 #if __ARCH__ >= 12
1898 static inline __ATTRS_o_ai __vector float
1899 vec_splats(float __scalar) {
1900  return (__vector float)__scalar;
1901 }
1902 #endif
1903 
1904 static inline __ATTRS_o_ai __vector double
1905 vec_splats(double __scalar) {
1906  return (__vector double)__scalar;
1907 }
1908 
1909 /*-- vec_extend_s64 ---------------------------------------------------------*/
1910 
1911 static inline __ATTRS_o_ai __vector signed long long
1912 vec_extend_s64(__vector signed char __a) {
1913  return (__vector signed long long)(__a[7], __a[15]);
1914 }
1915 
1916 static inline __ATTRS_o_ai __vector signed long long
1917 vec_extend_s64(__vector signed short __a) {
1918  return (__vector signed long long)(__a[3], __a[7]);
1919 }
1920 
1921 static inline __ATTRS_o_ai __vector signed long long
1922 vec_extend_s64(__vector signed int __a) {
1923  return (__vector signed long long)(__a[1], __a[3]);
1924 }
1925 
1926 /*-- vec_mergeh -------------------------------------------------------------*/
1927 
1928 static inline __ATTRS_o_ai __vector signed char
1929 vec_mergeh(__vector signed char __a, __vector signed char __b) {
1930  return (__vector signed char)(
1931  __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1932  __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1933 }
1934 
1935 static inline __ATTRS_o_ai __vector __bool char
1936 vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
1937  return (__vector __bool char)(
1938  __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1939  __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1940 }
1941 
1942 static inline __ATTRS_o_ai __vector unsigned char
1943 vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
1944  return (__vector unsigned char)(
1945  __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1946  __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1947 }
1948 
1949 static inline __ATTRS_o_ai __vector signed short
1950 vec_mergeh(__vector signed short __a, __vector signed short __b) {
1951  return (__vector signed short)(
1952  __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1953 }
1954 
1955 static inline __ATTRS_o_ai __vector __bool short
1956 vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
1957  return (__vector __bool short)(
1958  __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1959 }
1960 
1961 static inline __ATTRS_o_ai __vector unsigned short
1962 vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
1963  return (__vector unsigned short)(
1964  __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1965 }
1966 
1967 static inline __ATTRS_o_ai __vector signed int
1968 vec_mergeh(__vector signed int __a, __vector signed int __b) {
1969  return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1970 }
1971 
1972 static inline __ATTRS_o_ai __vector __bool int
1973 vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
1974  return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
1975 }
1976 
1977 static inline __ATTRS_o_ai __vector unsigned int
1978 vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
1979  return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1980 }
1981 
1982 static inline __ATTRS_o_ai __vector signed long long
1983 vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
1984  return (__vector signed long long)(__a[0], __b[0]);
1985 }
1986 
1987 static inline __ATTRS_o_ai __vector __bool long long
1988 vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
1989  return (__vector __bool long long)(__a[0], __b[0]);
1990 }
1991 
1992 static inline __ATTRS_o_ai __vector unsigned long long
1993 vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
1994  return (__vector unsigned long long)(__a[0], __b[0]);
1995 }
1996 
1997 #if __ARCH__ >= 12
1998 static inline __ATTRS_o_ai __vector float
1999 vec_mergeh(__vector float __a, __vector float __b) {
2000  return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
2001 }
2002 #endif
2003 
2004 static inline __ATTRS_o_ai __vector double
2005 vec_mergeh(__vector double __a, __vector double __b) {
2006  return (__vector double)(__a[0], __b[0]);
2007 }
2008 
2009 /*-- vec_mergel -------------------------------------------------------------*/
2010 
2011 static inline __ATTRS_o_ai __vector signed char
2012 vec_mergel(__vector signed char __a, __vector signed char __b) {
2013  return (__vector signed char)(
2014  __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2015  __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2016 }
2017 
2018 static inline __ATTRS_o_ai __vector __bool char
2019 vec_mergel(__vector __bool char __a, __vector __bool char __b) {
2020  return (__vector __bool char)(
2021  __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2022  __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2023 }
2024 
2025 static inline __ATTRS_o_ai __vector unsigned char
2026 vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
2027  return (__vector unsigned char)(
2028  __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2029  __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2030 }
2031 
2032 static inline __ATTRS_o_ai __vector signed short
2033 vec_mergel(__vector signed short __a, __vector signed short __b) {
2034  return (__vector signed short)(
2035  __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2036 }
2037 
2038 static inline __ATTRS_o_ai __vector __bool short
2039 vec_mergel(__vector __bool short __a, __vector __bool short __b) {
2040  return (__vector __bool short)(
2041  __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2042 }
2043 
2044 static inline __ATTRS_o_ai __vector unsigned short
2045 vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
2046  return (__vector unsigned short)(
2047  __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2048 }
2049 
2050 static inline __ATTRS_o_ai __vector signed int
2051 vec_mergel(__vector signed int __a, __vector signed int __b) {
2052  return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
2053 }
2054 
2055 static inline __ATTRS_o_ai __vector __bool int
2056 vec_mergel(__vector __bool int __a, __vector __bool int __b) {
2057  return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
2058 }
2059 
2060 static inline __ATTRS_o_ai __vector unsigned int
2061 vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
2062  return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
2063 }
2064 
2065 static inline __ATTRS_o_ai __vector signed long long
2066 vec_mergel(__vector signed long long __a, __vector signed long long __b) {
2067  return (__vector signed long long)(__a[1], __b[1]);
2068 }
2069 
2070 static inline __ATTRS_o_ai __vector __bool long long
2071 vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
2072  return (__vector __bool long long)(__a[1], __b[1]);
2073 }
2074 
2075 static inline __ATTRS_o_ai __vector unsigned long long
2076 vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
2077  return (__vector unsigned long long)(__a[1], __b[1]);
2078 }
2079 
2080 #if __ARCH__ >= 12
2081 static inline __ATTRS_o_ai __vector float
2082 vec_mergel(__vector float __a, __vector float __b) {
2083  return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
2084 }
2085 #endif
2086 
2087 static inline __ATTRS_o_ai __vector double
2088 vec_mergel(__vector double __a, __vector double __b) {
2089  return (__vector double)(__a[1], __b[1]);
2090 }
2091 
2092 /*-- vec_pack ---------------------------------------------------------------*/
2093 
2094 static inline __ATTRS_o_ai __vector signed char
2095 vec_pack(__vector signed short __a, __vector signed short __b) {
2096  __vector signed char __ac = (__vector signed char)__a;
2097  __vector signed char __bc = (__vector signed char)__b;
2098  return (__vector signed char)(
2099  __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2100  __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2101 }
2102 
2103 static inline __ATTRS_o_ai __vector __bool char
2104 vec_pack(__vector __bool short __a, __vector __bool short __b) {
2105  __vector __bool char __ac = (__vector __bool char)__a;
2106  __vector __bool char __bc = (__vector __bool char)__b;
2107  return (__vector __bool char)(
2108  __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2109  __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2110 }
2111 
2112 static inline __ATTRS_o_ai __vector unsigned char
2113 vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
2114  __vector unsigned char __ac = (__vector unsigned char)__a;
2115  __vector unsigned char __bc = (__vector unsigned char)__b;
2116  return (__vector unsigned char)(
2117  __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2118  __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2119 }
2120 
2121 static inline __ATTRS_o_ai __vector signed short
2122 vec_pack(__vector signed int __a, __vector signed int __b) {
2123  __vector signed short __ac = (__vector signed short)__a;
2124  __vector signed short __bc = (__vector signed short)__b;
2125  return (__vector signed short)(
2126  __ac[1], __ac[3], __ac[5], __ac[7],
2127  __bc[1], __bc[3], __bc[5], __bc[7]);
2128 }
2129 
2130 static inline __ATTRS_o_ai __vector __bool short
2131 vec_pack(__vector __bool int __a, __vector __bool int __b) {
2132  __vector __bool short __ac = (__vector __bool short)__a;
2133  __vector __bool short __bc = (__vector __bool short)__b;
2134  return (__vector __bool short)(
2135  __ac[1], __ac[3], __ac[5], __ac[7],
2136  __bc[1], __bc[3], __bc[5], __bc[7]);
2137 }
2138 
2139 static inline __ATTRS_o_ai __vector unsigned short
2140 vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
2141  __vector unsigned short __ac = (__vector unsigned short)__a;
2142  __vector unsigned short __bc = (__vector unsigned short)__b;
2143  return (__vector unsigned short)(
2144  __ac[1], __ac[3], __ac[5], __ac[7],
2145  __bc[1], __bc[3], __bc[5], __bc[7]);
2146 }
2147 
2148 static inline __ATTRS_o_ai __vector signed int
2149 vec_pack(__vector signed long long __a, __vector signed long long __b) {
2150  __vector signed int __ac = (__vector signed int)__a;
2151  __vector signed int __bc = (__vector signed int)__b;
2152  return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2153 }
2154 
2155 static inline __ATTRS_o_ai __vector __bool int
2156 vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
2157  __vector __bool int __ac = (__vector __bool int)__a;
2158  __vector __bool int __bc = (__vector __bool int)__b;
2159  return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2160 }
2161 
2162 static inline __ATTRS_o_ai __vector unsigned int
2163 vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
2164  __vector unsigned int __ac = (__vector unsigned int)__a;
2165  __vector unsigned int __bc = (__vector unsigned int)__b;
2166  return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2167 }
2168 
2169 /*-- vec_packs --------------------------------------------------------------*/
2170 
2171 static inline __ATTRS_o_ai __vector signed char
2172 vec_packs(__vector signed short __a, __vector signed short __b) {
2173  return __builtin_s390_vpksh(__a, __b);
2174 }
2175 
2176 static inline __ATTRS_o_ai __vector unsigned char
2177 vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
2178  return __builtin_s390_vpklsh(__a, __b);
2179 }
2180 
2181 static inline __ATTRS_o_ai __vector signed short
2182 vec_packs(__vector signed int __a, __vector signed int __b) {
2183  return __builtin_s390_vpksf(__a, __b);
2184 }
2185 
2186 static inline __ATTRS_o_ai __vector unsigned short
2187 vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
2188  return __builtin_s390_vpklsf(__a, __b);
2189 }
2190 
2191 static inline __ATTRS_o_ai __vector signed int
2192 vec_packs(__vector signed long long __a, __vector signed long long __b) {
2193  return __builtin_s390_vpksg(__a, __b);
2194 }
2195 
2196 static inline __ATTRS_o_ai __vector unsigned int
2197 vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
2198  return __builtin_s390_vpklsg(__a, __b);
2199 }
2200 
2201 /*-- vec_packs_cc -----------------------------------------------------------*/
2202 
2203 static inline __ATTRS_o_ai __vector signed char
2204 vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
2205  return __builtin_s390_vpkshs(__a, __b, __cc);
2206 }
2207 
2208 static inline __ATTRS_o_ai __vector unsigned char
2209 vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
2210  int *__cc) {
2211  return __builtin_s390_vpklshs(__a, __b, __cc);
2212 }
2213 
2214 static inline __ATTRS_o_ai __vector signed short
2215 vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
2216  return __builtin_s390_vpksfs(__a, __b, __cc);
2217 }
2218 
2219 static inline __ATTRS_o_ai __vector unsigned short
2220 vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2221  return __builtin_s390_vpklsfs(__a, __b, __cc);
2222 }
2223 
2224 static inline __ATTRS_o_ai __vector signed int
2225 vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
2226  int *__cc) {
2227  return __builtin_s390_vpksgs(__a, __b, __cc);
2228 }
2229 
2230 static inline __ATTRS_o_ai __vector unsigned int
2231 vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2232  int *__cc) {
2233  return __builtin_s390_vpklsgs(__a, __b, __cc);
2234 }
2235 
2236 /*-- vec_packsu -------------------------------------------------------------*/
2237 
2238 static inline __ATTRS_o_ai __vector unsigned char
2239 vec_packsu(__vector signed short __a, __vector signed short __b) {
2240  const __vector signed short __zero = (__vector signed short)0;
2241  return __builtin_s390_vpklsh(
2242  (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
2243  (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
2244 }
2245 
2246 static inline __ATTRS_o_ai __vector unsigned char
2247 vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
2248  return __builtin_s390_vpklsh(__a, __b);
2249 }
2250 
2251 static inline __ATTRS_o_ai __vector unsigned short
2252 vec_packsu(__vector signed int __a, __vector signed int __b) {
2253  const __vector signed int __zero = (__vector signed int)0;
2254  return __builtin_s390_vpklsf(
2255  (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
2256  (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
2257 }
2258 
2259 static inline __ATTRS_o_ai __vector unsigned short
2260 vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
2261  return __builtin_s390_vpklsf(__a, __b);
2262 }
2263 
2264 static inline __ATTRS_o_ai __vector unsigned int
2265 vec_packsu(__vector signed long long __a, __vector signed long long __b) {
2266  const __vector signed long long __zero = (__vector signed long long)0;
2267  return __builtin_s390_vpklsg(
2268  (__vector unsigned long long)(__a >= __zero) &
2269  (__vector unsigned long long)__a,
2270  (__vector unsigned long long)(__b >= __zero) &
2271  (__vector unsigned long long)__b);
2272 }
2273 
2274 static inline __ATTRS_o_ai __vector unsigned int
2275 vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
2276  return __builtin_s390_vpklsg(__a, __b);
2277 }
2278 
2279 /*-- vec_packsu_cc ----------------------------------------------------------*/
2280 
2281 static inline __ATTRS_o_ai __vector unsigned char
2282 vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
2283  int *__cc) {
2284  return __builtin_s390_vpklshs(__a, __b, __cc);
2285 }
2286 
2287 static inline __ATTRS_o_ai __vector unsigned short
2288 vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2289  return __builtin_s390_vpklsfs(__a, __b, __cc);
2290 }
2291 
2292 static inline __ATTRS_o_ai __vector unsigned int
2293 vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2294  int *__cc) {
2295  return __builtin_s390_vpklsgs(__a, __b, __cc);
2296 }
2297 
2298 /*-- vec_unpackh ------------------------------------------------------------*/
2299 
2300 static inline __ATTRS_o_ai __vector signed short
2301 vec_unpackh(__vector signed char __a) {
2302  return __builtin_s390_vuphb(__a);
2303 }
2304 
2305 static inline __ATTRS_o_ai __vector __bool short
2306 vec_unpackh(__vector __bool char __a) {
2307  return ((__vector __bool short)
2308  __builtin_s390_vuphb((__vector signed char)__a));
2309 }
2310 
2311 static inline __ATTRS_o_ai __vector unsigned short
2312 vec_unpackh(__vector unsigned char __a) {
2313  return __builtin_s390_vuplhb(__a);
2314 }
2315 
2316 static inline __ATTRS_o_ai __vector signed int
2317 vec_unpackh(__vector signed short __a) {
2318  return __builtin_s390_vuphh(__a);
2319 }
2320 
2321 static inline __ATTRS_o_ai __vector __bool int
2322 vec_unpackh(__vector __bool short __a) {
2323  return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
2324 }
2325 
2326 static inline __ATTRS_o_ai __vector unsigned int
2327 vec_unpackh(__vector unsigned short __a) {
2328  return __builtin_s390_vuplhh(__a);
2329 }
2330 
2331 static inline __ATTRS_o_ai __vector signed long long
2332 vec_unpackh(__vector signed int __a) {
2333  return __builtin_s390_vuphf(__a);
2334 }
2335 
2336 static inline __ATTRS_o_ai __vector __bool long long
2337 vec_unpackh(__vector __bool int __a) {
2338  return ((__vector __bool long long)
2339  __builtin_s390_vuphf((__vector signed int)__a));
2340 }
2341 
2342 static inline __ATTRS_o_ai __vector unsigned long long
2343 vec_unpackh(__vector unsigned int __a) {
2344  return __builtin_s390_vuplhf(__a);
2345 }
2346 
2347 /*-- vec_unpackl ------------------------------------------------------------*/
2348 
2349 static inline __ATTRS_o_ai __vector signed short
2350 vec_unpackl(__vector signed char __a) {
2351  return __builtin_s390_vuplb(__a);
2352 }
2353 
2354 static inline __ATTRS_o_ai __vector __bool short
2355 vec_unpackl(__vector __bool char __a) {
2356  return ((__vector __bool short)
2357  __builtin_s390_vuplb((__vector signed char)__a));
2358 }
2359 
2360 static inline __ATTRS_o_ai __vector unsigned short
2361 vec_unpackl(__vector unsigned char __a) {
2362  return __builtin_s390_vupllb(__a);
2363 }
2364 
2365 static inline __ATTRS_o_ai __vector signed int
2366 vec_unpackl(__vector signed short __a) {
2367  return __builtin_s390_vuplhw(__a);
2368 }
2369 
2370 static inline __ATTRS_o_ai __vector __bool int
2371 vec_unpackl(__vector __bool short __a) {
2372  return ((__vector __bool int)
2373  __builtin_s390_vuplhw((__vector signed short)__a));
2374 }
2375 
2376 static inline __ATTRS_o_ai __vector unsigned int
2377 vec_unpackl(__vector unsigned short __a) {
2378  return __builtin_s390_vupllh(__a);
2379 }
2380 
2381 static inline __ATTRS_o_ai __vector signed long long
2382 vec_unpackl(__vector signed int __a) {
2383  return __builtin_s390_vuplf(__a);
2384 }
2385 
2386 static inline __ATTRS_o_ai __vector __bool long long
2387 vec_unpackl(__vector __bool int __a) {
2388  return ((__vector __bool long long)
2389  __builtin_s390_vuplf((__vector signed int)__a));
2390 }
2391 
2392 static inline __ATTRS_o_ai __vector unsigned long long
2393 vec_unpackl(__vector unsigned int __a) {
2394  return __builtin_s390_vupllf(__a);
2395 }
2396 
2397 /*-- vec_cmpeq --------------------------------------------------------------*/
2398 
2399 static inline __ATTRS_o_ai __vector __bool char
2400 vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
2401  return (__vector __bool char)(__a == __b);
2402 }
2403 
2404 static inline __ATTRS_o_ai __vector __bool char
2405 vec_cmpeq(__vector signed char __a, __vector signed char __b) {
2406  return (__vector __bool char)(__a == __b);
2407 }
2408 
2409 static inline __ATTRS_o_ai __vector __bool char
2410 vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
2411  return (__vector __bool char)(__a == __b);
2412 }
2413 
2414 static inline __ATTRS_o_ai __vector __bool short
2415 vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
2416  return (__vector __bool short)(__a == __b);
2417 }
2418 
2419 static inline __ATTRS_o_ai __vector __bool short
2420 vec_cmpeq(__vector signed short __a, __vector signed short __b) {
2421  return (__vector __bool short)(__a == __b);
2422 }
2423 
2424 static inline __ATTRS_o_ai __vector __bool short
2425 vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
2426  return (__vector __bool short)(__a == __b);
2427 }
2428 
2429 static inline __ATTRS_o_ai __vector __bool int
2430 vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
2431  return (__vector __bool int)(__a == __b);
2432 }
2433 
2434 static inline __ATTRS_o_ai __vector __bool int
2435 vec_cmpeq(__vector signed int __a, __vector signed int __b) {
2436  return (__vector __bool int)(__a == __b);
2437 }
2438 
2439 static inline __ATTRS_o_ai __vector __bool int
2440 vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
2441  return (__vector __bool int)(__a == __b);
2442 }
2443 
2444 static inline __ATTRS_o_ai __vector __bool long long
2445 vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
2446  return (__vector __bool long long)(__a == __b);
2447 }
2448 
2449 static inline __ATTRS_o_ai __vector __bool long long
2450 vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
2451  return (__vector __bool long long)(__a == __b);
2452 }
2453 
2454 static inline __ATTRS_o_ai __vector __bool long long
2455 vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
2456  return (__vector __bool long long)(__a == __b);
2457 }
2458 
2459 #if __ARCH__ >= 12
2460 static inline __ATTRS_o_ai __vector __bool int
2461 vec_cmpeq(__vector float __a, __vector float __b) {
2462  return (__vector __bool int)(__a == __b);
2463 }
2464 #endif
2465 
2466 static inline __ATTRS_o_ai __vector __bool long long
2467 vec_cmpeq(__vector double __a, __vector double __b) {
2468  return (__vector __bool long long)(__a == __b);
2469 }
2470 
2471 /*-- vec_cmpge --------------------------------------------------------------*/
2472 
2473 static inline __ATTRS_o_ai __vector __bool char
2474 vec_cmpge(__vector signed char __a, __vector signed char __b) {
2475  return (__vector __bool char)(__a >= __b);
2476 }
2477 
2478 static inline __ATTRS_o_ai __vector __bool char
2479 vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
2480  return (__vector __bool char)(__a >= __b);
2481 }
2482 
2483 static inline __ATTRS_o_ai __vector __bool short
2484 vec_cmpge(__vector signed short __a, __vector signed short __b) {
2485  return (__vector __bool short)(__a >= __b);
2486 }
2487 
2488 static inline __ATTRS_o_ai __vector __bool short
2489 vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
2490  return (__vector __bool short)(__a >= __b);
2491 }
2492 
2493 static inline __ATTRS_o_ai __vector __bool int
2494 vec_cmpge(__vector signed int __a, __vector signed int __b) {
2495  return (__vector __bool int)(__a >= __b);
2496 }
2497 
2498 static inline __ATTRS_o_ai __vector __bool int
2499 vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
2500  return (__vector __bool int)(__a >= __b);
2501 }
2502 
2503 static inline __ATTRS_o_ai __vector __bool long long
2504 vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
2505  return (__vector __bool long long)(__a >= __b);
2506 }
2507 
2508 static inline __ATTRS_o_ai __vector __bool long long
2509 vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
2510  return (__vector __bool long long)(__a >= __b);
2511 }
2512 
2513 #if __ARCH__ >= 12
2514 static inline __ATTRS_o_ai __vector __bool int
2515 vec_cmpge(__vector float __a, __vector float __b) {
2516  return (__vector __bool int)(__a >= __b);
2517 }
2518 #endif
2519 
2520 static inline __ATTRS_o_ai __vector __bool long long
2521 vec_cmpge(__vector double __a, __vector double __b) {
2522  return (__vector __bool long long)(__a >= __b);
2523 }
2524 
2525 /*-- vec_cmpgt --------------------------------------------------------------*/
2526 
2527 static inline __ATTRS_o_ai __vector __bool char
2528 vec_cmpgt(__vector signed char __a, __vector signed char __b) {
2529  return (__vector __bool char)(__a > __b);
2530 }
2531 
2532 static inline __ATTRS_o_ai __vector __bool char
2533 vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
2534  return (__vector __bool char)(__a > __b);
2535 }
2536 
2537 static inline __ATTRS_o_ai __vector __bool short
2538 vec_cmpgt(__vector signed short __a, __vector signed short __b) {
2539  return (__vector __bool short)(__a > __b);
2540 }
2541 
2542 static inline __ATTRS_o_ai __vector __bool short
2543 vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
2544  return (__vector __bool short)(__a > __b);
2545 }
2546 
2547 static inline __ATTRS_o_ai __vector __bool int
2548 vec_cmpgt(__vector signed int __a, __vector signed int __b) {
2549  return (__vector __bool int)(__a > __b);
2550 }
2551 
2552 static inline __ATTRS_o_ai __vector __bool int
2553 vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
2554  return (__vector __bool int)(__a > __b);
2555 }
2556 
2557 static inline __ATTRS_o_ai __vector __bool long long
2558 vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
2559  return (__vector __bool long long)(__a > __b);
2560 }
2561 
2562 static inline __ATTRS_o_ai __vector __bool long long
2563 vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
2564  return (__vector __bool long long)(__a > __b);
2565 }
2566 
2567 #if __ARCH__ >= 12
2568 static inline __ATTRS_o_ai __vector __bool int
2569 vec_cmpgt(__vector float __a, __vector float __b) {
2570  return (__vector __bool int)(__a > __b);
2571 }
2572 #endif
2573 
2574 static inline __ATTRS_o_ai __vector __bool long long
2575 vec_cmpgt(__vector double __a, __vector double __b) {
2576  return (__vector __bool long long)(__a > __b);
2577 }
2578 
2579 /*-- vec_cmple --------------------------------------------------------------*/
2580 
2581 static inline __ATTRS_o_ai __vector __bool char
2582 vec_cmple(__vector signed char __a, __vector signed char __b) {
2583  return (__vector __bool char)(__a <= __b);
2584 }
2585 
2586 static inline __ATTRS_o_ai __vector __bool char
2587 vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
2588  return (__vector __bool char)(__a <= __b);
2589 }
2590 
2591 static inline __ATTRS_o_ai __vector __bool short
2592 vec_cmple(__vector signed short __a, __vector signed short __b) {
2593  return (__vector __bool short)(__a <= __b);
2594 }
2595 
2596 static inline __ATTRS_o_ai __vector __bool short
2597 vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
2598  return (__vector __bool short)(__a <= __b);
2599 }
2600 
2601 static inline __ATTRS_o_ai __vector __bool int
2602 vec_cmple(__vector signed int __a, __vector signed int __b) {
2603  return (__vector __bool int)(__a <= __b);
2604 }
2605 
2606 static inline __ATTRS_o_ai __vector __bool int
2607 vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
2608  return (__vector __bool int)(__a <= __b);
2609 }
2610 
2611 static inline __ATTRS_o_ai __vector __bool long long
2612 vec_cmple(__vector signed long long __a, __vector signed long long __b) {
2613  return (__vector __bool long long)(__a <= __b);
2614 }
2615 
2616 static inline __ATTRS_o_ai __vector __bool long long
2617 vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
2618  return (__vector __bool long long)(__a <= __b);
2619 }
2620 
2621 #if __ARCH__ >= 12
2622 static inline __ATTRS_o_ai __vector __bool int
2623 vec_cmple(__vector float __a, __vector float __b) {
2624  return (__vector __bool int)(__a <= __b);
2625 }
2626 #endif
2627 
2628 static inline __ATTRS_o_ai __vector __bool long long
2629 vec_cmple(__vector double __a, __vector double __b) {
2630  return (__vector __bool long long)(__a <= __b);
2631 }
2632 
2633 /*-- vec_cmplt --------------------------------------------------------------*/
2634 
2635 static inline __ATTRS_o_ai __vector __bool char
2636 vec_cmplt(__vector signed char __a, __vector signed char __b) {
2637  return (__vector __bool char)(__a < __b);
2638 }
2639 
2640 static inline __ATTRS_o_ai __vector __bool char
2641 vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
2642  return (__vector __bool char)(__a < __b);
2643 }
2644 
2645 static inline __ATTRS_o_ai __vector __bool short
2646 vec_cmplt(__vector signed short __a, __vector signed short __b) {
2647  return (__vector __bool short)(__a < __b);
2648 }
2649 
2650 static inline __ATTRS_o_ai __vector __bool short
2651 vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
2652  return (__vector __bool short)(__a < __b);
2653 }
2654 
2655 static inline __ATTRS_o_ai __vector __bool int
2656 vec_cmplt(__vector signed int __a, __vector signed int __b) {
2657  return (__vector __bool int)(__a < __b);
2658 }
2659 
2660 static inline __ATTRS_o_ai __vector __bool int
2661 vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
2662  return (__vector __bool int)(__a < __b);
2663 }
2664 
2665 static inline __ATTRS_o_ai __vector __bool long long
2666 vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
2667  return (__vector __bool long long)(__a < __b);
2668 }
2669 
2670 static inline __ATTRS_o_ai __vector __bool long long
2671 vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
2672  return (__vector __bool long long)(__a < __b);
2673 }
2674 
2675 #if __ARCH__ >= 12
2676 static inline __ATTRS_o_ai __vector __bool int
2677 vec_cmplt(__vector float __a, __vector float __b) {
2678  return (__vector __bool int)(__a < __b);
2679 }
2680 #endif
2681 
2682 static inline __ATTRS_o_ai __vector __bool long long
2683 vec_cmplt(__vector double __a, __vector double __b) {
2684  return (__vector __bool long long)(__a < __b);
2685 }
2686 
2687 /*-- vec_all_eq -------------------------------------------------------------*/
2688 
2689 static inline __ATTRS_o_ai int
2690 vec_all_eq(__vector signed char __a, __vector signed char __b) {
2691  int __cc;
2692  __builtin_s390_vceqbs(__a, __b, &__cc);
2693  return __cc == 0;
2694 }
2695 
2696 // This prototype is deprecated.
2697 static inline __ATTRS_o_ai int
2698 vec_all_eq(__vector signed char __a, __vector __bool char __b) {
2699  int __cc;
2700  __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
2701  return __cc == 0;
2702 }
2703 
2704 // This prototype is deprecated.
2705 static inline __ATTRS_o_ai int
2706 vec_all_eq(__vector __bool char __a, __vector signed char __b) {
2707  int __cc;
2708  __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
2709  return __cc == 0;
2710 }
2711 
2712 static inline __ATTRS_o_ai int
2713 vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
2714  int __cc;
2715  __builtin_s390_vceqbs((__vector signed char)__a,
2716  (__vector signed char)__b, &__cc);
2717  return __cc == 0;
2718 }
2719 
2720 // This prototype is deprecated.
2721 static inline __ATTRS_o_ai int
2722 vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
2723  int __cc;
2724  __builtin_s390_vceqbs((__vector signed char)__a,
2725  (__vector signed char)__b, &__cc);
2726  return __cc == 0;
2727 }
2728 
2729 // This prototype is deprecated.
2730 static inline __ATTRS_o_ai int
2731 vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
2732  int __cc;
2733  __builtin_s390_vceqbs((__vector signed char)__a,
2734  (__vector signed char)__b, &__cc);
2735  return __cc == 0;
2736 }
2737 
2738 static inline __ATTRS_o_ai int
2739 vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
2740  int __cc;
2741  __builtin_s390_vceqbs((__vector signed char)__a,
2742  (__vector signed char)__b, &__cc);
2743  return __cc == 0;
2744 }
2745 
2746 static inline __ATTRS_o_ai int
2747 vec_all_eq(__vector signed short __a, __vector signed short __b) {
2748  int __cc;
2749  __builtin_s390_vceqhs(__a, __b, &__cc);
2750  return __cc == 0;
2751 }
2752 
2753 // This prototype is deprecated.
2754 static inline __ATTRS_o_ai int
2755 vec_all_eq(__vector signed short __a, __vector __bool short __b) {
2756  int __cc;
2757  __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
2758  return __cc == 0;
2759 }
2760 
2761 // This prototype is deprecated.
2762 static inline __ATTRS_o_ai int
2763 vec_all_eq(__vector __bool short __a, __vector signed short __b) {
2764  int __cc;
2765  __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
2766  return __cc == 0;
2767 }
2768 
2769 static inline __ATTRS_o_ai int
2770 vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
2771  int __cc;
2772  __builtin_s390_vceqhs((__vector signed short)__a,
2773  (__vector signed short)__b, &__cc);
2774  return __cc == 0;
2775 }
2776 
2777 // This prototype is deprecated.
2778 static inline __ATTRS_o_ai int
2779 vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
2780  int __cc;
2781  __builtin_s390_vceqhs((__vector signed short)__a,
2782  (__vector signed short)__b, &__cc);
2783  return __cc == 0;
2784 }
2785 
2786 // This prototype is deprecated.
2787 static inline __ATTRS_o_ai int
2788 vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
2789  int __cc;
2790  __builtin_s390_vceqhs((__vector signed short)__a,
2791  (__vector signed short)__b, &__cc);
2792  return __cc == 0;
2793 }
2794 
2795 static inline __ATTRS_o_ai int
2796 vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
2797  int __cc;
2798  __builtin_s390_vceqhs((__vector signed short)__a,
2799  (__vector signed short)__b, &__cc);
2800  return __cc == 0;
2801 }
2802 
2803 static inline __ATTRS_o_ai int
2804 vec_all_eq(__vector signed int __a, __vector signed int __b) {
2805  int __cc;
2806  __builtin_s390_vceqfs(__a, __b, &__cc);
2807  return __cc == 0;
2808 }
2809 
2810 // This prototype is deprecated.
2811 static inline __ATTRS_o_ai int
2812 vec_all_eq(__vector signed int __a, __vector __bool int __b) {
2813  int __cc;
2814  __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
2815  return __cc == 0;
2816 }
2817 
2818 // This prototype is deprecated.
2819 static inline __ATTRS_o_ai int
2820 vec_all_eq(__vector __bool int __a, __vector signed int __b) {
2821  int __cc;
2822  __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
2823  return __cc == 0;
2824 }
2825 
2826 static inline __ATTRS_o_ai int
2827 vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
2828  int __cc;
2829  __builtin_s390_vceqfs((__vector signed int)__a,
2830  (__vector signed int)__b, &__cc);
2831  return __cc == 0;
2832 }
2833 
2834 // This prototype is deprecated.
2835 static inline __ATTRS_o_ai int
2836 vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
2837  int __cc;
2838  __builtin_s390_vceqfs((__vector signed int)__a,
2839  (__vector signed int)__b, &__cc);
2840  return __cc == 0;
2841 }
2842 
2843 // This prototype is deprecated.
2844 static inline __ATTRS_o_ai int
2845 vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
2846  int __cc;
2847  __builtin_s390_vceqfs((__vector signed int)__a,
2848  (__vector signed int)__b, &__cc);
2849  return __cc == 0;
2850 }
2851 
2852 static inline __ATTRS_o_ai int
2853 vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
2854  int __cc;
2855  __builtin_s390_vceqfs((__vector signed int)__a,
2856  (__vector signed int)__b, &__cc);
2857  return __cc == 0;
2858 }
2859 
2860 static inline __ATTRS_o_ai int
2861 vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
2862  int __cc;
2863  __builtin_s390_vceqgs(__a, __b, &__cc);
2864  return __cc == 0;
2865 }
2866 
2867 // This prototype is deprecated.
2868 static inline __ATTRS_o_ai int
2869 vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
2870  int __cc;
2871  __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
2872  return __cc == 0;
2873 }
2874 
2875 // This prototype is deprecated.
2876 static inline __ATTRS_o_ai int
2877 vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
2878  int __cc;
2879  __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
2880  return __cc == 0;
2881 }
2882 
2883 static inline __ATTRS_o_ai int
2884 vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
2885  int __cc;
2886  __builtin_s390_vceqgs((__vector signed long long)__a,
2887  (__vector signed long long)__b, &__cc);
2888  return __cc == 0;
2889 }
2890 
2891 // This prototype is deprecated.
2892 static inline __ATTRS_o_ai int
2893 vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
2894  int __cc;
2895  __builtin_s390_vceqgs((__vector signed long long)__a,
2896  (__vector signed long long)__b, &__cc);
2897  return __cc == 0;
2898 }
2899 
2900 // This prototype is deprecated.
2901 static inline __ATTRS_o_ai int
2902 vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
2903  int __cc;
2904  __builtin_s390_vceqgs((__vector signed long long)__a,
2905  (__vector signed long long)__b, &__cc);
2906  return __cc == 0;
2907 }
2908 
2909 static inline __ATTRS_o_ai int
2910 vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
2911  int __cc;
2912  __builtin_s390_vceqgs((__vector signed long long)__a,
2913  (__vector signed long long)__b, &__cc);
2914  return __cc == 0;
2915 }
2916 
2917 #if __ARCH__ >= 12
2918 static inline __ATTRS_o_ai int
2919 vec_all_eq(__vector float __a, __vector float __b) {
2920  int __cc;
2921  __builtin_s390_vfcesbs(__a, __b, &__cc);
2922  return __cc == 0;
2923 }
2924 #endif
2925 
2926 static inline __ATTRS_o_ai int
2927 vec_all_eq(__vector double __a, __vector double __b) {
2928  int __cc;
2929  __builtin_s390_vfcedbs(__a, __b, &__cc);
2930  return __cc == 0;
2931 }
2932 
2933 /*-- vec_all_ne -------------------------------------------------------------*/
2934 
2935 static inline __ATTRS_o_ai int
2936 vec_all_ne(__vector signed char __a, __vector signed char __b) {
2937  int __cc;
2938  __builtin_s390_vceqbs(__a, __b, &__cc);
2939  return __cc == 3;
2940 }
2941 
2942 // This prototype is deprecated.
2943 static inline __ATTRS_o_ai int
2944 vec_all_ne(__vector signed char __a, __vector __bool char __b) {
2945  int __cc;
2946  __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
2947  return __cc == 3;
2948 }
2949 
2950 // This prototype is deprecated.
2951 static inline __ATTRS_o_ai int
2952 vec_all_ne(__vector __bool char __a, __vector signed char __b) {
2953  int __cc;
2954  __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
2955  return __cc == 3;
2956 }
2957 
2958 static inline __ATTRS_o_ai int
2959 vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
2960  int __cc;
2961  __builtin_s390_vceqbs((__vector signed char)__a,
2962  (__vector signed char)__b, &__cc);
2963  return __cc == 3;
2964 }
2965 
2966 // This prototype is deprecated.
2967 static inline __ATTRS_o_ai int
2968 vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
2969  int __cc;
2970  __builtin_s390_vceqbs((__vector signed char)__a,
2971  (__vector signed char)__b, &__cc);
2972  return __cc == 3;
2973 }
2974 
2975 // This prototype is deprecated.
2976 static inline __ATTRS_o_ai int
2977 vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
2978  int __cc;
2979  __builtin_s390_vceqbs((__vector signed char)__a,
2980  (__vector signed char)__b, &__cc);
2981  return __cc == 3;
2982 }
2983 
2984 static inline __ATTRS_o_ai int
2985 vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
2986  int __cc;
2987  __builtin_s390_vceqbs((__vector signed char)__a,
2988  (__vector signed char)__b, &__cc);
2989  return __cc == 3;
2990 }
2991 
2992 static inline __ATTRS_o_ai int
2993 vec_all_ne(__vector signed short __a, __vector signed short __b) {
2994  int __cc;
2995  __builtin_s390_vceqhs(__a, __b, &__cc);
2996  return __cc == 3;
2997 }
2998 
2999 // This prototype is deprecated.
3000 static inline __ATTRS_o_ai int
3001 vec_all_ne(__vector signed short __a, __vector __bool short __b) {
3002  int __cc;
3003  __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
3004  return __cc == 3;
3005 }
3006 
3007 // This prototype is deprecated.
3008 static inline __ATTRS_o_ai int
3009 vec_all_ne(__vector __bool short __a, __vector signed short __b) {
3010  int __cc;
3011  __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
3012  return __cc == 3;
3013 }
3014 
3015 static inline __ATTRS_o_ai int
3016 vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
3017  int __cc;
3018  __builtin_s390_vceqhs((__vector signed short)__a,
3019  (__vector signed short)__b, &__cc);
3020  return __cc == 3;
3021 }
3022 
3023 // This prototype is deprecated.
3024 static inline __ATTRS_o_ai int
3025 vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
3026  int __cc;
3027  __builtin_s390_vceqhs((__vector signed short)__a,
3028  (__vector signed short)__b, &__cc);
3029  return __cc == 3;
3030 }
3031 
3032 // This prototype is deprecated.
3033 static inline __ATTRS_o_ai int
3034 vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
3035  int __cc;
3036  __builtin_s390_vceqhs((__vector signed short)__a,
3037  (__vector signed short)__b, &__cc);
3038  return __cc == 3;
3039 }
3040 
3041 static inline __ATTRS_o_ai int
3042 vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
3043  int __cc;
3044  __builtin_s390_vceqhs((__vector signed short)__a,
3045  (__vector signed short)__b, &__cc);
3046  return __cc == 3;
3047 }
3048 
3049 static inline __ATTRS_o_ai int
3050 vec_all_ne(__vector signed int __a, __vector signed int __b) {
3051  int __cc;
3052  __builtin_s390_vceqfs(__a, __b, &__cc);
3053  return __cc == 3;
3054 }
3055 
3056 // This prototype is deprecated.
3057 static inline __ATTRS_o_ai int
3058 vec_all_ne(__vector signed int __a, __vector __bool int __b) {
3059  int __cc;
3060  __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
3061  return __cc == 3;
3062 }
3063 
3064 // This prototype is deprecated.
3065 static inline __ATTRS_o_ai int
3066 vec_all_ne(__vector __bool int __a, __vector signed int __b) {
3067  int __cc;
3068  __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
3069  return __cc == 3;
3070 }
3071 
3072 static inline __ATTRS_o_ai int
3073 vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
3074  int __cc;
3075  __builtin_s390_vceqfs((__vector signed int)__a,
3076  (__vector signed int)__b, &__cc);
3077  return __cc == 3;
3078 }
3079 
3080 // This prototype is deprecated.
3081 static inline __ATTRS_o_ai int
3082 vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
3083  int __cc;
3084  __builtin_s390_vceqfs((__vector signed int)__a,
3085  (__vector signed int)__b, &__cc);
3086  return __cc == 3;
3087 }
3088 
3089 // This prototype is deprecated.
3090 static inline __ATTRS_o_ai int
3091 vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
3092  int __cc;
3093  __builtin_s390_vceqfs((__vector signed int)__a,
3094  (__vector signed int)__b, &__cc);
3095  return __cc == 3;
3096 }
3097 
3098 static inline __ATTRS_o_ai int
3099 vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
3100  int __cc;
3101  __builtin_s390_vceqfs((__vector signed int)__a,
3102  (__vector signed int)__b, &__cc);
3103  return __cc == 3;
3104 }
3105 
3106 static inline __ATTRS_o_ai int
3107 vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
3108  int __cc;
3109  __builtin_s390_vceqgs(__a, __b, &__cc);
3110  return __cc == 3;
3111 }
3112 
3113 // This prototype is deprecated.
3114 static inline __ATTRS_o_ai int
3115 vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
3116  int __cc;
3117  __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
3118  return __cc == 3;
3119 }
3120 
3121 // This prototype is deprecated.
3122 static inline __ATTRS_o_ai int
3123 vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
3124  int __cc;
3125  __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
3126  return __cc == 3;
3127 }
3128 
3129 static inline __ATTRS_o_ai int
3130 vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
3131  int __cc;
3132  __builtin_s390_vceqgs((__vector signed long long)__a,
3133  (__vector signed long long)__b, &__cc);
3134  return __cc == 3;
3135 }
3136 
3137 // This prototype is deprecated.
3138 static inline __ATTRS_o_ai int
3139 vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
3140  int __cc;
3141  __builtin_s390_vceqgs((__vector signed long long)__a,
3142  (__vector signed long long)__b, &__cc);
3143  return __cc == 3;
3144 }
3145 
3146 // This prototype is deprecated.
3147 static inline __ATTRS_o_ai int
3148 vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
3149  int __cc;
3150  __builtin_s390_vceqgs((__vector signed long long)__a,
3151  (__vector signed long long)__b, &__cc);
3152  return __cc == 3;
3153 }
3154 
3155 static inline __ATTRS_o_ai int
3156 vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
3157  int __cc;
3158  __builtin_s390_vceqgs((__vector signed long long)__a,
3159  (__vector signed long long)__b, &__cc);
3160  return __cc == 3;
3161 }
3162 
3163 #if __ARCH__ >= 12
3164 static inline __ATTRS_o_ai int
3165 vec_all_ne(__vector float __a, __vector float __b) {
3166  int __cc;
3167  __builtin_s390_vfcesbs(__a, __b, &__cc);
3168  return __cc == 3;
3169 }
3170 #endif
3171 
3172 static inline __ATTRS_o_ai int
3173 vec_all_ne(__vector double __a, __vector double __b) {
3174  int __cc;
3175  __builtin_s390_vfcedbs(__a, __b, &__cc);
3176  return __cc == 3;
3177 }
3178 
3179 /*-- vec_all_ge -------------------------------------------------------------*/
3180 
3181 static inline __ATTRS_o_ai int
3182 vec_all_ge(__vector signed char __a, __vector signed char __b) {
3183  int __cc;
3184  __builtin_s390_vchbs(__b, __a, &__cc);
3185  return __cc == 3;
3186 }
3187 
3188 // This prototype is deprecated.
3189 static inline __ATTRS_o_ai int
3190 vec_all_ge(__vector signed char __a, __vector __bool char __b) {
3191  int __cc;
3192  __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3193  return __cc == 3;
3194 }
3195 
3196 // This prototype is deprecated.
3197 static inline __ATTRS_o_ai int
3198 vec_all_ge(__vector __bool char __a, __vector signed char __b) {
3199  int __cc;
3200  __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3201  return __cc == 3;
3202 }
3203 
3204 static inline __ATTRS_o_ai int
3205 vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
3206  int __cc;
3207  __builtin_s390_vchlbs(__b, __a, &__cc);
3208  return __cc == 3;
3209 }
3210 
3211 // This prototype is deprecated.
3212 static inline __ATTRS_o_ai int
3213 vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
3214  int __cc;
3215  __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3216  return __cc == 3;
3217 }
3218 
3219 // This prototype is deprecated.
3220 static inline __ATTRS_o_ai int
3221 vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
3222  int __cc;
3223  __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3224  return __cc == 3;
3225 }
3226 
3227 // This prototype is deprecated.
3228 static inline __ATTRS_o_ai int
3229 vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
3230  int __cc;
3231  __builtin_s390_vchlbs((__vector unsigned char)__b,
3232  (__vector unsigned char)__a, &__cc);
3233  return __cc == 3;
3234 }
3235 
3236 static inline __ATTRS_o_ai int
3237 vec_all_ge(__vector signed short __a, __vector signed short __b) {
3238  int __cc;
3239  __builtin_s390_vchhs(__b, __a, &__cc);
3240  return __cc == 3;
3241 }
3242 
3243 // This prototype is deprecated.
3244 static inline __ATTRS_o_ai int
3245 vec_all_ge(__vector signed short __a, __vector __bool short __b) {
3246  int __cc;
3247  __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3248  return __cc == 3;
3249 }
3250 
3251 // This prototype is deprecated.
3252 static inline __ATTRS_o_ai int
3253 vec_all_ge(__vector __bool short __a, __vector signed short __b) {
3254  int __cc;
3255  __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3256  return __cc == 3;
3257 }
3258 
3259 static inline __ATTRS_o_ai int
3260 vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
3261  int __cc;
3262  __builtin_s390_vchlhs(__b, __a, &__cc);
3263  return __cc == 3;
3264 }
3265 
3266 // This prototype is deprecated.
3267 static inline __ATTRS_o_ai int
3268 vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
3269  int __cc;
3270  __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3271  return __cc == 3;
3272 }
3273 
3274 // This prototype is deprecated.
3275 static inline __ATTRS_o_ai int
3276 vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
3277  int __cc;
3278  __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3279  return __cc == 3;
3280 }
3281 
3282 // This prototype is deprecated.
3283 static inline __ATTRS_o_ai int
3284 vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
3285  int __cc;
3286  __builtin_s390_vchlhs((__vector unsigned short)__b,
3287  (__vector unsigned short)__a, &__cc);
3288  return __cc == 3;
3289 }
3290 
3291 static inline __ATTRS_o_ai int
3292 vec_all_ge(__vector signed int __a, __vector signed int __b) {
3293  int __cc;
3294  __builtin_s390_vchfs(__b, __a, &__cc);
3295  return __cc == 3;
3296 }
3297 
3298 // This prototype is deprecated.
3299 static inline __ATTRS_o_ai int
3300 vec_all_ge(__vector signed int __a, __vector __bool int __b) {
3301  int __cc;
3302  __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3303  return __cc == 3;
3304 }
3305 
3306 // This prototype is deprecated.
3307 static inline __ATTRS_o_ai int
3308 vec_all_ge(__vector __bool int __a, __vector signed int __b) {
3309  int __cc;
3310  __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3311  return __cc == 3;
3312 }
3313 
3314 static inline __ATTRS_o_ai int
3315 vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
3316  int __cc;
3317  __builtin_s390_vchlfs(__b, __a, &__cc);
3318  return __cc == 3;
3319 }
3320 
3321 // This prototype is deprecated.
3322 static inline __ATTRS_o_ai int
3323 vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
3324  int __cc;
3325  __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3326  return __cc == 3;
3327 }
3328 
3329 // This prototype is deprecated.
3330 static inline __ATTRS_o_ai int
3331 vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
3332  int __cc;
3333  __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3334  return __cc == 3;
3335 }
3336 
3337 // This prototype is deprecated.
3338 static inline __ATTRS_o_ai int
3339 vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
3340  int __cc;
3341  __builtin_s390_vchlfs((__vector unsigned int)__b,
3342  (__vector unsigned int)__a, &__cc);
3343  return __cc == 3;
3344 }
3345 
3346 static inline __ATTRS_o_ai int
3347 vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
3348  int __cc;
3349  __builtin_s390_vchgs(__b, __a, &__cc);
3350  return __cc == 3;
3351 }
3352 
3353 // This prototype is deprecated.
3354 static inline __ATTRS_o_ai int
3355 vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
3356  int __cc;
3357  __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3358  return __cc == 3;
3359 }
3360 
3361 // This prototype is deprecated.
3362 static inline __ATTRS_o_ai int
3363 vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
3364  int __cc;
3365  __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3366  return __cc == 3;
3367 }
3368 
3369 static inline __ATTRS_o_ai int
3370 vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
3371  int __cc;
3372  __builtin_s390_vchlgs(__b, __a, &__cc);
3373  return __cc == 3;
3374 }
3375 
3376 // This prototype is deprecated.
3377 static inline __ATTRS_o_ai int
3378 vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
3379  int __cc;
3380  __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
3381  return __cc == 3;
3382 }
3383 
3384 // This prototype is deprecated.
3385 static inline __ATTRS_o_ai int
3386 vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
3387  int __cc;
3388  __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
3389  return __cc == 3;
3390 }
3391 
3392 // This prototype is deprecated.
3393 static inline __ATTRS_o_ai int
3394 vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
3395  int __cc;
3396  __builtin_s390_vchlgs((__vector unsigned long long)__b,
3397  (__vector unsigned long long)__a, &__cc);
3398  return __cc == 3;
3399 }
3400 
3401 #if __ARCH__ >= 12
3402 static inline __ATTRS_o_ai int
3403 vec_all_ge(__vector float __a, __vector float __b) {
3404  int __cc;
3405  __builtin_s390_vfchesbs(__a, __b, &__cc);
3406  return __cc == 0;
3407 }
3408 #endif
3409 
3410 static inline __ATTRS_o_ai int
3411 vec_all_ge(__vector double __a, __vector double __b) {
3412  int __cc;
3413  __builtin_s390_vfchedbs(__a, __b, &__cc);
3414  return __cc == 0;
3415 }
3416 
3417 /*-- vec_all_gt -------------------------------------------------------------*/
3418 
3419 static inline __ATTRS_o_ai int
3420 vec_all_gt(__vector signed char __a, __vector signed char __b) {
3421  int __cc;
3422  __builtin_s390_vchbs(__a, __b, &__cc);
3423  return __cc == 0;
3424 }
3425 
3426 // This prototype is deprecated.
3427 static inline __ATTRS_o_ai int
3428 vec_all_gt(__vector signed char __a, __vector __bool char __b) {
3429  int __cc;
3430  __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3431  return __cc == 0;
3432 }
3433 
3434 // This prototype is deprecated.
3435 static inline __ATTRS_o_ai int
3436 vec_all_gt(__vector __bool char __a, __vector signed char __b) {
3437  int __cc;
3438  __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3439  return __cc == 0;
3440 }
3441 
3442 static inline __ATTRS_o_ai int
3443 vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
3444  int __cc;
3445  __builtin_s390_vchlbs(__a, __b, &__cc);
3446  return __cc == 0;
3447 }
3448 
3449 // This prototype is deprecated.
3450 static inline __ATTRS_o_ai int
3451 vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
3452  int __cc;
3453  __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3454  return __cc == 0;
3455 }
3456 
3457 // This prototype is deprecated.
3458 static inline __ATTRS_o_ai int
3459 vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
3460  int __cc;
3461  __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3462  return __cc == 0;
3463 }
3464 
3465 // This prototype is deprecated.
3466 static inline __ATTRS_o_ai int
3467 vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
3468  int __cc;
3469  __builtin_s390_vchlbs((__vector unsigned char)__a,
3470  (__vector unsigned char)__b, &__cc);
3471  return __cc == 0;
3472 }
3473 
3474 static inline __ATTRS_o_ai int
3475 vec_all_gt(__vector signed short __a, __vector signed short __b) {
3476  int __cc;
3477  __builtin_s390_vchhs(__a, __b, &__cc);
3478  return __cc == 0;
3479 }
3480 
3481 // This prototype is deprecated.
3482 static inline __ATTRS_o_ai int
3483 vec_all_gt(__vector signed short __a, __vector __bool short __b) {
3484  int __cc;
3485  __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3486  return __cc == 0;
3487 }
3488 
3489 // This prototype is deprecated.
3490 static inline __ATTRS_o_ai int
3491 vec_all_gt(__vector __bool short __a, __vector signed short __b) {
3492  int __cc;
3493  __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3494  return __cc == 0;
3495 }
3496 
3497 static inline __ATTRS_o_ai int
3498 vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
3499  int __cc;
3500  __builtin_s390_vchlhs(__a, __b, &__cc);
3501  return __cc == 0;
3502 }
3503 
3504 // This prototype is deprecated.
3505 static inline __ATTRS_o_ai int
3506 vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
3507  int __cc;
3508  __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3509  return __cc == 0;
3510 }
3511 
3512 // This prototype is deprecated.
3513 static inline __ATTRS_o_ai int
3514 vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
3515  int __cc;
3516  __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3517  return __cc == 0;
3518 }
3519 
3520 // This prototype is deprecated.
3521 static inline __ATTRS_o_ai int
3522 vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
3523  int __cc;
3524  __builtin_s390_vchlhs((__vector unsigned short)__a,
3525  (__vector unsigned short)__b, &__cc);
3526  return __cc == 0;
3527 }
3528 
3529 static inline __ATTRS_o_ai int
3530 vec_all_gt(__vector signed int __a, __vector signed int __b) {
3531  int __cc;
3532  __builtin_s390_vchfs(__a, __b, &__cc);
3533  return __cc == 0;
3534 }
3535 
3536 // This prototype is deprecated.
3537 static inline __ATTRS_o_ai int
3538 vec_all_gt(__vector signed int __a, __vector __bool int __b) {
3539  int __cc;
3540  __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3541  return __cc == 0;
3542 }
3543 
3544 // This prototype is deprecated.
3545 static inline __ATTRS_o_ai int
3546 vec_all_gt(__vector __bool int __a, __vector signed int __b) {
3547  int __cc;
3548  __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3549  return __cc == 0;
3550 }
3551 
3552 static inline __ATTRS_o_ai int
3553 vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
3554  int __cc;
3555  __builtin_s390_vchlfs(__a, __b, &__cc);
3556  return __cc == 0;
3557 }
3558 
3559 // This prototype is deprecated.
3560 static inline __ATTRS_o_ai int
3561 vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
3562  int __cc;
3563  __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3564  return __cc == 0;
3565 }
3566 
3567 // This prototype is deprecated.
3568 static inline __ATTRS_o_ai int
3569 vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
3570  int __cc;
3571  __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3572  return __cc == 0;
3573 }
3574 
3575 // This prototype is deprecated.
3576 static inline __ATTRS_o_ai int
3577 vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
3578  int __cc;
3579  __builtin_s390_vchlfs((__vector unsigned int)__a,
3580  (__vector unsigned int)__b, &__cc);
3581  return __cc == 0;
3582 }
3583 
3584 static inline __ATTRS_o_ai int
3585 vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
3586  int __cc;
3587  __builtin_s390_vchgs(__a, __b, &__cc);
3588  return __cc == 0;
3589 }
3590 
3591 // This prototype is deprecated.
3592 static inline __ATTRS_o_ai int
3593 vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
3594  int __cc;
3595  __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3596  return __cc == 0;
3597 }
3598 
3599 // This prototype is deprecated.
3600 static inline __ATTRS_o_ai int
3601 vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
3602  int __cc;
3603  __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3604  return __cc == 0;
3605 }
3606 
3607 static inline __ATTRS_o_ai int
3608 vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
3609  int __cc;
3610  __builtin_s390_vchlgs(__a, __b, &__cc);
3611  return __cc == 0;
3612 }
3613 
3614 // This prototype is deprecated.
3615 static inline __ATTRS_o_ai int
3616 vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
3617  int __cc;
3618  __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3619  return __cc == 0;
3620 }
3621 
3622 // This prototype is deprecated.
3623 static inline __ATTRS_o_ai int
3624 vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
3625  int __cc;
3626  __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3627  return __cc == 0;
3628 }
3629 
3630 // This prototype is deprecated.
3631 static inline __ATTRS_o_ai int
3632 vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
3633  int __cc;
3634  __builtin_s390_vchlgs((__vector unsigned long long)__a,
3635  (__vector unsigned long long)__b, &__cc);
3636  return __cc == 0;
3637 }
3638 
3639 #if __ARCH__ >= 12
3640 static inline __ATTRS_o_ai int
3641 vec_all_gt(__vector float __a, __vector float __b) {
3642  int __cc;
3643  __builtin_s390_vfchsbs(__a, __b, &__cc);
3644  return __cc == 0;
3645 }
3646 #endif
3647 
3648 static inline __ATTRS_o_ai int
3649 vec_all_gt(__vector double __a, __vector double __b) {
3650  int __cc;
3651  __builtin_s390_vfchdbs(__a, __b, &__cc);
3652  return __cc == 0;
3653 }
3654 
3655 /*-- vec_all_le -------------------------------------------------------------*/
3656 
3657 static inline __ATTRS_o_ai int
3658 vec_all_le(__vector signed char __a, __vector signed char __b) {
3659  int __cc;
3660  __builtin_s390_vchbs(__a, __b, &__cc);
3661  return __cc == 3;
3662 }
3663 
3664 // This prototype is deprecated.
3665 static inline __ATTRS_o_ai int
3666 vec_all_le(__vector signed char __a, __vector __bool char __b) {
3667  int __cc;
3668  __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3669  return __cc == 3;
3670 }
3671 
3672 // This prototype is deprecated.
3673 static inline __ATTRS_o_ai int
3674 vec_all_le(__vector __bool char __a, __vector signed char __b) {
3675  int __cc;
3676  __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3677  return __cc == 3;
3678 }
3679 
3680 static inline __ATTRS_o_ai int
3681 vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
3682  int __cc;
3683  __builtin_s390_vchlbs(__a, __b, &__cc);
3684  return __cc == 3;
3685 }
3686 
3687 // This prototype is deprecated.
3688 static inline __ATTRS_o_ai int
3689 vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
3690  int __cc;
3691  __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3692  return __cc == 3;
3693 }
3694 
3695 // This prototype is deprecated.
3696 static inline __ATTRS_o_ai int
3697 vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
3698  int __cc;
3699  __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3700  return __cc == 3;
3701 }
3702 
3703 // This prototype is deprecated.
3704 static inline __ATTRS_o_ai int
3705 vec_all_le(__vector __bool char __a, __vector __bool char __b) {
3706  int __cc;
3707  __builtin_s390_vchlbs((__vector unsigned char)__a,
3708  (__vector unsigned char)__b, &__cc);
3709  return __cc == 3;
3710 }
3711 
3712 static inline __ATTRS_o_ai int
3713 vec_all_le(__vector signed short __a, __vector signed short __b) {
3714  int __cc;
3715  __builtin_s390_vchhs(__a, __b, &__cc);
3716  return __cc == 3;
3717 }
3718 
3719 // This prototype is deprecated.
3720 static inline __ATTRS_o_ai int
3721 vec_all_le(__vector signed short __a, __vector __bool short __b) {
3722  int __cc;
3723  __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3724  return __cc == 3;
3725 }
3726 
3727 // This prototype is deprecated.
3728 static inline __ATTRS_o_ai int
3729 vec_all_le(__vector __bool short __a, __vector signed short __b) {
3730  int __cc;
3731  __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3732  return __cc == 3;
3733 }
3734 
3735 static inline __ATTRS_o_ai int
3736 vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
3737  int __cc;
3738  __builtin_s390_vchlhs(__a, __b, &__cc);
3739  return __cc == 3;
3740 }
3741 
3742 // This prototype is deprecated.
3743 static inline __ATTRS_o_ai int
3744 vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
3745  int __cc;
3746  __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3747  return __cc == 3;
3748 }
3749 
3750 // This prototype is deprecated.
3751 static inline __ATTRS_o_ai int
3752 vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
3753  int __cc;
3754  __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3755  return __cc == 3;
3756 }
3757 
3758 // This prototype is deprecated.
3759 static inline __ATTRS_o_ai int
3760 vec_all_le(__vector __bool short __a, __vector __bool short __b) {
3761  int __cc;
3762  __builtin_s390_vchlhs((__vector unsigned short)__a,
3763  (__vector unsigned short)__b, &__cc);
3764  return __cc == 3;
3765 }
3766 
3767 static inline __ATTRS_o_ai int
3768 vec_all_le(__vector signed int __a, __vector signed int __b) {
3769  int __cc;
3770  __builtin_s390_vchfs(__a, __b, &__cc);
3771  return __cc == 3;
3772 }
3773 
3774 // This prototype is deprecated.
3775 static inline __ATTRS_o_ai int
3776 vec_all_le(__vector signed int __a, __vector __bool int __b) {
3777  int __cc;
3778  __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3779  return __cc == 3;
3780 }
3781 
3782 // This prototype is deprecated.
3783 static inline __ATTRS_o_ai int
3784 vec_all_le(__vector __bool int __a, __vector signed int __b) {
3785  int __cc;
3786  __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3787  return __cc == 3;
3788 }
3789 
3790 static inline __ATTRS_o_ai int
3791 vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
3792  int __cc;
3793  __builtin_s390_vchlfs(__a, __b, &__cc);
3794  return __cc == 3;
3795 }
3796 
3797 // This prototype is deprecated.
3798 static inline __ATTRS_o_ai int
3799 vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
3800  int __cc;
3801  __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3802  return __cc == 3;
3803 }
3804 
3805 // This prototype is deprecated.
3806 static inline __ATTRS_o_ai int
3807 vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
3808  int __cc;
3809  __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3810  return __cc == 3;
3811 }
3812 
3813 // This prototype is deprecated.
3814 static inline __ATTRS_o_ai int
3815 vec_all_le(__vector __bool int __a, __vector __bool int __b) {
3816  int __cc;
3817  __builtin_s390_vchlfs((__vector unsigned int)__a,
3818  (__vector unsigned int)__b, &__cc);
3819  return __cc == 3;
3820 }
3821 
3822 static inline __ATTRS_o_ai int
3823 vec_all_le(__vector signed long long __a, __vector signed long long __b) {
3824  int __cc;
3825  __builtin_s390_vchgs(__a, __b, &__cc);
3826  return __cc == 3;
3827 }
3828 
3829 // This prototype is deprecated.
3830 static inline __ATTRS_o_ai int
3831 vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
3832  int __cc;
3833  __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3834  return __cc == 3;
3835 }
3836 
3837 // This prototype is deprecated.
3838 static inline __ATTRS_o_ai int
3839 vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
3840  int __cc;
3841  __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3842  return __cc == 3;
3843 }
3844 
3845 static inline __ATTRS_o_ai int
3846 vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
3847  int __cc;
3848  __builtin_s390_vchlgs(__a, __b, &__cc);
3849  return __cc == 3;
3850 }
3851 
3852 // This prototype is deprecated.
3853 static inline __ATTRS_o_ai int
3854 vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
3855  int __cc;
3856  __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3857  return __cc == 3;
3858 }
3859 
3860 // This prototype is deprecated.
3861 static inline __ATTRS_o_ai int
3862 vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
3863  int __cc;
3864  __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3865  return __cc == 3;
3866 }
3867 
3868 // This prototype is deprecated.
3869 static inline __ATTRS_o_ai int
3870 vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
3871  int __cc;
3872  __builtin_s390_vchlgs((__vector unsigned long long)__a,
3873  (__vector unsigned long long)__b, &__cc);
3874  return __cc == 3;
3875 }
3876 
3877 #if __ARCH__ >= 12
3878 static inline __ATTRS_o_ai int
3879 vec_all_le(__vector float __a, __vector float __b) {
3880  int __cc;
3881  __builtin_s390_vfchesbs(__b, __a, &__cc);
3882  return __cc == 0;
3883 }
3884 #endif
3885 
3886 static inline __ATTRS_o_ai int
3887 vec_all_le(__vector double __a, __vector double __b) {
3888  int __cc;
3889  __builtin_s390_vfchedbs(__b, __a, &__cc);
3890  return __cc == 0;
3891 }
3892 
3893 /*-- vec_all_lt -------------------------------------------------------------*/
3894 
3895 static inline __ATTRS_o_ai int
3896 vec_all_lt(__vector signed char __a, __vector signed char __b) {
3897  int __cc;
3898  __builtin_s390_vchbs(__b, __a, &__cc);
3899  return __cc == 0;
3900 }
3901 
3902 // This prototype is deprecated.
3903 static inline __ATTRS_o_ai int
3904 vec_all_lt(__vector signed char __a, __vector __bool char __b) {
3905  int __cc;
3906  __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3907  return __cc == 0;
3908 }
3909 
3910 // This prototype is deprecated.
3911 static inline __ATTRS_o_ai int
3912 vec_all_lt(__vector __bool char __a, __vector signed char __b) {
3913  int __cc;
3914  __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3915  return __cc == 0;
3916 }
3917 
3918 static inline __ATTRS_o_ai int
3919 vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
3920  int __cc;
3921  __builtin_s390_vchlbs(__b, __a, &__cc);
3922  return __cc == 0;
3923 }
3924 
3925 // This prototype is deprecated.
3926 static inline __ATTRS_o_ai int
3927 vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
3928  int __cc;
3929  __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3930  return __cc == 0;
3931 }
3932 
3933 // This prototype is deprecated.
3934 static inline __ATTRS_o_ai int
3935 vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
3936  int __cc;
3937  __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3938  return __cc == 0;
3939 }
3940 
3941 // This prototype is deprecated.
3942 static inline __ATTRS_o_ai int
3943 vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
3944  int __cc;
3945  __builtin_s390_vchlbs((__vector unsigned char)__b,
3946  (__vector unsigned char)__a, &__cc);
3947  return __cc == 0;
3948 }
3949 
3950 static inline __ATTRS_o_ai int
3951 vec_all_lt(__vector signed short __a, __vector signed short __b) {
3952  int __cc;
3953  __builtin_s390_vchhs(__b, __a, &__cc);
3954  return __cc == 0;
3955 }
3956 
3957 // This prototype is deprecated.
3958 static inline __ATTRS_o_ai int
3959 vec_all_lt(__vector signed short __a, __vector __bool short __b) {
3960  int __cc;
3961  __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3962  return __cc == 0;
3963 }
3964 
3965 // This prototype is deprecated.
3966 static inline __ATTRS_o_ai int
3967 vec_all_lt(__vector __bool short __a, __vector signed short __b) {
3968  int __cc;
3969  __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3970  return __cc == 0;
3971 }
3972 
3973 static inline __ATTRS_o_ai int
3974 vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
3975  int __cc;
3976  __builtin_s390_vchlhs(__b, __a, &__cc);
3977  return __cc == 0;
3978 }
3979 
3980 // This prototype is deprecated.
3981 static inline __ATTRS_o_ai int
3982 vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
3983  int __cc;
3984  __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3985  return __cc == 0;
3986 }
3987 
3988 // This prototype is deprecated.
3989 static inline __ATTRS_o_ai int
3990 vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
3991  int __cc;
3992  __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3993  return __cc == 0;
3994 }
3995 
3996 // This prototype is deprecated.
3997 static inline __ATTRS_o_ai int
3998 vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
3999  int __cc;
4000  __builtin_s390_vchlhs((__vector unsigned short)__b,
4001  (__vector unsigned short)__a, &__cc);
4002  return __cc == 0;
4003 }
4004 
4005 static inline __ATTRS_o_ai int
4006 vec_all_lt(__vector signed int __a, __vector signed int __b) {
4007  int __cc;
4008  __builtin_s390_vchfs(__b, __a, &__cc);
4009  return __cc == 0;
4010 }
4011 
4012 // This prototype is deprecated.
4013 static inline __ATTRS_o_ai int
4014 vec_all_lt(__vector signed int __a, __vector __bool int __b) {
4015  int __cc;
4016  __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4017  return __cc == 0;
4018 }
4019 
4020 // This prototype is deprecated.
4021 static inline __ATTRS_o_ai int
4022 vec_all_lt(__vector __bool int __a, __vector signed int __b) {
4023  int __cc;
4024  __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4025  return __cc == 0;
4026 }
4027 
4028 static inline __ATTRS_o_ai int
4029 vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
4030  int __cc;
4031  __builtin_s390_vchlfs(__b, __a, &__cc);
4032  return __cc == 0;
4033 }
4034 
4035 // This prototype is deprecated.
4036 static inline __ATTRS_o_ai int
4037 vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
4038  int __cc;
4039  __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4040  return __cc == 0;
4041 }
4042 
4043 // This prototype is deprecated.
4044 static inline __ATTRS_o_ai int
4045 vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
4046  int __cc;
4047  __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4048  return __cc == 0;
4049 }
4050 
4051 // This prototype is deprecated.
4052 static inline __ATTRS_o_ai int
4053 vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
4054  int __cc;
4055  __builtin_s390_vchlfs((__vector unsigned int)__b,
4056  (__vector unsigned int)__a, &__cc);
4057  return __cc == 0;
4058 }
4059 
4060 static inline __ATTRS_o_ai int
4061 vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
4062  int __cc;
4063  __builtin_s390_vchgs(__b, __a, &__cc);
4064  return __cc == 0;
4065 }
4066 
4067 // This prototype is deprecated.
4068 static inline __ATTRS_o_ai int
4069 vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
4070  int __cc;
4071  __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4072  return __cc == 0;
4073 }
4074 
4075 // This prototype is deprecated.
4076 static inline __ATTRS_o_ai int
4077 vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
4078  int __cc;
4079  __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4080  return __cc == 0;
4081 }
4082 
4083 static inline __ATTRS_o_ai int
4084 vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
4085  int __cc;
4086  __builtin_s390_vchlgs(__b, __a, &__cc);
4087  return __cc == 0;
4088 }
4089 
4090 // This prototype is deprecated.
4091 static inline __ATTRS_o_ai int
4092 vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
4093  int __cc;
4094  __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4095  return __cc == 0;
4096 }
4097 
4098 // This prototype is deprecated.
4099 static inline __ATTRS_o_ai int
4100 vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
4101  int __cc;
4102  __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4103  return __cc == 0;
4104 }
4105 
4106 // This prototype is deprecated.
4107 static inline __ATTRS_o_ai int
4108 vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
4109  int __cc;
4110  __builtin_s390_vchlgs((__vector unsigned long long)__b,
4111  (__vector unsigned long long)__a, &__cc);
4112  return __cc == 0;
4113 }
4114 
4115 #if __ARCH__ >= 12
4116 static inline __ATTRS_o_ai int
4117 vec_all_lt(__vector float __a, __vector float __b) {
4118  int __cc;
4119  __builtin_s390_vfchsbs(__b, __a, &__cc);
4120  return __cc == 0;
4121 }
4122 #endif
4123 
4124 static inline __ATTRS_o_ai int
4125 vec_all_lt(__vector double __a, __vector double __b) {
4126  int __cc;
4127  __builtin_s390_vfchdbs(__b, __a, &__cc);
4128  return __cc == 0;
4129 }
4130 
4131 /*-- vec_all_nge ------------------------------------------------------------*/
4132 
4133 #if __ARCH__ >= 12
4134 static inline __ATTRS_o_ai int
4135 vec_all_nge(__vector float __a, __vector float __b) {
4136  int __cc;
4137  __builtin_s390_vfchesbs(__a, __b, &__cc);
4138  return __cc == 3;
4139 }
4140 #endif
4141 
4142 static inline __ATTRS_o_ai int
4143 vec_all_nge(__vector double __a, __vector double __b) {
4144  int __cc;
4145  __builtin_s390_vfchedbs(__a, __b, &__cc);
4146  return __cc == 3;
4147 }
4148 
4149 /*-- vec_all_ngt ------------------------------------------------------------*/
4150 
4151 #if __ARCH__ >= 12
4152 static inline __ATTRS_o_ai int
4153 vec_all_ngt(__vector float __a, __vector float __b) {
4154  int __cc;
4155  __builtin_s390_vfchsbs(__a, __b, &__cc);
4156  return __cc == 3;
4157 }
4158 #endif
4159 
4160 static inline __ATTRS_o_ai int
4161 vec_all_ngt(__vector double __a, __vector double __b) {
4162  int __cc;
4163  __builtin_s390_vfchdbs(__a, __b, &__cc);
4164  return __cc == 3;
4165 }
4166 
4167 /*-- vec_all_nle ------------------------------------------------------------*/
4168 
4169 #if __ARCH__ >= 12
4170 static inline __ATTRS_o_ai int
4171 vec_all_nle(__vector float __a, __vector float __b) {
4172  int __cc;
4173  __builtin_s390_vfchesbs(__b, __a, &__cc);
4174  return __cc == 3;
4175 }
4176 #endif
4177 
4178 static inline __ATTRS_o_ai int
4179 vec_all_nle(__vector double __a, __vector double __b) {
4180  int __cc;
4181  __builtin_s390_vfchedbs(__b, __a, &__cc);
4182  return __cc == 3;
4183 }
4184 
4185 /*-- vec_all_nlt ------------------------------------------------------------*/
4186 
4187 #if __ARCH__ >= 12
4188 static inline __ATTRS_o_ai int
4189 vec_all_nlt(__vector float __a, __vector float __b) {
4190  int __cc;
4191  __builtin_s390_vfchsbs(__b, __a, &__cc);
4192  return __cc == 3;
4193 }
4194 #endif
4195 
4196 static inline __ATTRS_o_ai int
4197 vec_all_nlt(__vector double __a, __vector double __b) {
4198  int __cc;
4199  __builtin_s390_vfchdbs(__b, __a, &__cc);
4200  return __cc == 3;
4201 }
4202 
4203 /*-- vec_all_nan ------------------------------------------------------------*/
4204 
4205 #if __ARCH__ >= 12
4206 static inline __ATTRS_o_ai int
4207 vec_all_nan(__vector float __a) {
4208  int __cc;
4209  __builtin_s390_vftcisb(__a, 15, &__cc);
4210  return __cc == 0;
4211 }
4212 #endif
4213 
4214 static inline __ATTRS_o_ai int
4215 vec_all_nan(__vector double __a) {
4216  int __cc;
4217  __builtin_s390_vftcidb(__a, 15, &__cc);
4218  return __cc == 0;
4219 }
4220 
4221 /*-- vec_all_numeric --------------------------------------------------------*/
4222 
4223 #if __ARCH__ >= 12
4224 static inline __ATTRS_o_ai int
4225 vec_all_numeric(__vector float __a) {
4226  int __cc;
4227  __builtin_s390_vftcisb(__a, 15, &__cc);
4228  return __cc == 3;
4229 }
4230 #endif
4231 
4232 static inline __ATTRS_o_ai int
4233 vec_all_numeric(__vector double __a) {
4234  int __cc;
4235  __builtin_s390_vftcidb(__a, 15, &__cc);
4236  return __cc == 3;
4237 }
4238 
4239 /*-- vec_any_eq -------------------------------------------------------------*/
4240 
4241 static inline __ATTRS_o_ai int
4242 vec_any_eq(__vector signed char __a, __vector signed char __b) {
4243  int __cc;
4244  __builtin_s390_vceqbs(__a, __b, &__cc);
4245  return __cc <= 1;
4246 }
4247 
4248 // This prototype is deprecated.
4249 static inline __ATTRS_o_ai int
4250 vec_any_eq(__vector signed char __a, __vector __bool char __b) {
4251  int __cc;
4252  __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
4253  return __cc <= 1;
4254 }
4255 
4256 // This prototype is deprecated.
4257 static inline __ATTRS_o_ai int
4258 vec_any_eq(__vector __bool char __a, __vector signed char __b) {
4259  int __cc;
4260  __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
4261  return __cc <= 1;
4262 }
4263 
4264 static inline __ATTRS_o_ai int
4265 vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
4266  int __cc;
4267  __builtin_s390_vceqbs((__vector signed char)__a,
4268  (__vector signed char)__b, &__cc);
4269  return __cc <= 1;
4270 }
4271 
4272 // This prototype is deprecated.
4273 static inline __ATTRS_o_ai int
4274 vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
4275  int __cc;
4276  __builtin_s390_vceqbs((__vector signed char)__a,
4277  (__vector signed char)__b, &__cc);
4278  return __cc <= 1;
4279 }
4280 
4281 // This prototype is deprecated.
4282 static inline __ATTRS_o_ai int
4283 vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
4284  int __cc;
4285  __builtin_s390_vceqbs((__vector signed char)__a,
4286  (__vector signed char)__b, &__cc);
4287  return __cc <= 1;
4288 }
4289 
4290 static inline __ATTRS_o_ai int
4291 vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
4292  int __cc;
4293  __builtin_s390_vceqbs((__vector signed char)__a,
4294  (__vector signed char)__b, &__cc);
4295  return __cc <= 1;
4296 }
4297 
4298 static inline __ATTRS_o_ai int
4299 vec_any_eq(__vector signed short __a, __vector signed short __b) {
4300  int __cc;
4301  __builtin_s390_vceqhs(__a, __b, &__cc);
4302  return __cc <= 1;
4303 }
4304 
4305 // This prototype is deprecated.
4306 static inline __ATTRS_o_ai int
4307 vec_any_eq(__vector signed short __a, __vector __bool short __b) {
4308  int __cc;
4309  __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
4310  return __cc <= 1;
4311 }
4312 
4313 // This prototype is deprecated.
4314 static inline __ATTRS_o_ai int
4315 vec_any_eq(__vector __bool short __a, __vector signed short __b) {
4316  int __cc;
4317  __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
4318  return __cc <= 1;
4319 }
4320 
4321 static inline __ATTRS_o_ai int
4322 vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
4323  int __cc;
4324  __builtin_s390_vceqhs((__vector signed short)__a,
4325  (__vector signed short)__b, &__cc);
4326  return __cc <= 1;
4327 }
4328 
4329 // This prototype is deprecated.
4330 static inline __ATTRS_o_ai int
4331 vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
4332  int __cc;
4333  __builtin_s390_vceqhs((__vector signed short)__a,
4334  (__vector signed short)__b, &__cc);
4335  return __cc <= 1;
4336 }
4337 
4338 // This prototype is deprecated.
4339 static inline __ATTRS_o_ai int
4340 vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
4341  int __cc;
4342  __builtin_s390_vceqhs((__vector signed short)__a,
4343  (__vector signed short)__b, &__cc);
4344  return __cc <= 1;
4345 }
4346 
4347 static inline __ATTRS_o_ai int
4348 vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
4349  int __cc;
4350  __builtin_s390_vceqhs((__vector signed short)__a,
4351  (__vector signed short)__b, &__cc);
4352  return __cc <= 1;
4353 }
4354 
4355 static inline __ATTRS_o_ai int
4356 vec_any_eq(__vector signed int __a, __vector signed int __b) {
4357  int __cc;
4358  __builtin_s390_vceqfs(__a, __b, &__cc);
4359  return __cc <= 1;
4360 }
4361 
4362 // This prototype is deprecated.
4363 static inline __ATTRS_o_ai int
4364 vec_any_eq(__vector signed int __a, __vector __bool int __b) {
4365  int __cc;
4366  __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
4367  return __cc <= 1;
4368 }
4369 
4370 // This prototype is deprecated.
4371 static inline __ATTRS_o_ai int
4372 vec_any_eq(__vector __bool int __a, __vector signed int __b) {
4373  int __cc;
4374  __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
4375  return __cc <= 1;
4376 }
4377 
4378 static inline __ATTRS_o_ai int
4379 vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
4380  int __cc;
4381  __builtin_s390_vceqfs((__vector signed int)__a,
4382  (__vector signed int)__b, &__cc);
4383  return __cc <= 1;
4384 }
4385 
4386 // This prototype is deprecated.
4387 static inline __ATTRS_o_ai int
4388 vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
4389  int __cc;
4390  __builtin_s390_vceqfs((__vector signed int)__a,
4391  (__vector signed int)__b, &__cc);
4392  return __cc <= 1;
4393 }
4394 
4395 // This prototype is deprecated.
4396 static inline __ATTRS_o_ai int
4397 vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
4398  int __cc;
4399  __builtin_s390_vceqfs((__vector signed int)__a,
4400  (__vector signed int)__b, &__cc);
4401  return __cc <= 1;
4402 }
4403 
4404 static inline __ATTRS_o_ai int
4405 vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
4406  int __cc;
4407  __builtin_s390_vceqfs((__vector signed int)__a,
4408  (__vector signed int)__b, &__cc);
4409  return __cc <= 1;
4410 }
4411 
4412 static inline __ATTRS_o_ai int
4413 vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
4414  int __cc;
4415  __builtin_s390_vceqgs(__a, __b, &__cc);
4416  return __cc <= 1;
4417 }
4418 
4419 // This prototype is deprecated.
4420 static inline __ATTRS_o_ai int
4421 vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
4422  int __cc;
4423  __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
4424  return __cc <= 1;
4425 }
4426 
4427 // This prototype is deprecated.
4428 static inline __ATTRS_o_ai int
4429 vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
4430  int __cc;
4431  __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
4432  return __cc <= 1;
4433 }
4434 
4435 static inline __ATTRS_o_ai int
4436 vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
4437  int __cc;
4438  __builtin_s390_vceqgs((__vector signed long long)__a,
4439  (__vector signed long long)__b, &__cc);
4440  return __cc <= 1;
4441 }
4442 
4443 // This prototype is deprecated.
4444 static inline __ATTRS_o_ai int
4445 vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
4446  int __cc;
4447  __builtin_s390_vceqgs((__vector signed long long)__a,
4448  (__vector signed long long)__b, &__cc);
4449  return __cc <= 1;
4450 }
4451 
4452 // This prototype is deprecated.
4453 static inline __ATTRS_o_ai int
4454 vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
4455  int __cc;
4456  __builtin_s390_vceqgs((__vector signed long long)__a,
4457  (__vector signed long long)__b, &__cc);
4458  return __cc <= 1;
4459 }
4460 
4461 static inline __ATTRS_o_ai int
4462 vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
4463  int __cc;
4464  __builtin_s390_vceqgs((__vector signed long long)__a,
4465  (__vector signed long long)__b, &__cc);
4466  return __cc <= 1;
4467 }
4468 
4469 #if __ARCH__ >= 12
4470 static inline __ATTRS_o_ai int
4471 vec_any_eq(__vector float __a, __vector float __b) {
4472  int __cc;
4473  __builtin_s390_vfcesbs(__a, __b, &__cc);
4474  return __cc <= 1;
4475 }
4476 #endif
4477 
4478 static inline __ATTRS_o_ai int
4479 vec_any_eq(__vector double __a, __vector double __b) {
4480  int __cc;
4481  __builtin_s390_vfcedbs(__a, __b, &__cc);
4482  return __cc <= 1;
4483 }
4484 
4485 /*-- vec_any_ne -------------------------------------------------------------*/
4486 
4487 static inline __ATTRS_o_ai int
4488 vec_any_ne(__vector signed char __a, __vector signed char __b) {
4489  int __cc;
4490  __builtin_s390_vceqbs(__a, __b, &__cc);
4491  return __cc != 0;
4492 }
4493 
4494 // This prototype is deprecated.
4495 static inline __ATTRS_o_ai int
4496 vec_any_ne(__vector signed char __a, __vector __bool char __b) {
4497  int __cc;
4498  __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
4499  return __cc != 0;
4500 }
4501 
4502 // This prototype is deprecated.
4503 static inline __ATTRS_o_ai int
4504 vec_any_ne(__vector __bool char __a, __vector signed char __b) {
4505  int __cc;
4506  __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
4507  return __cc != 0;
4508 }
4509 
4510 static inline __ATTRS_o_ai int
4511 vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
4512  int __cc;
4513  __builtin_s390_vceqbs((__vector signed char)__a,
4514  (__vector signed char)__b, &__cc);
4515  return __cc != 0;
4516 }
4517 
4518 // This prototype is deprecated.
4519 static inline __ATTRS_o_ai int
4520 vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
4521  int __cc;
4522  __builtin_s390_vceqbs((__vector signed char)__a,
4523  (__vector signed char)__b, &__cc);
4524  return __cc != 0;
4525 }
4526 
4527 // This prototype is deprecated.
4528 static inline __ATTRS_o_ai int
4529 vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
4530  int __cc;
4531  __builtin_s390_vceqbs((__vector signed char)__a,
4532  (__vector signed char)__b, &__cc);
4533  return __cc != 0;
4534 }
4535 
4536 static inline __ATTRS_o_ai int
4537 vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
4538  int __cc;
4539  __builtin_s390_vceqbs((__vector signed char)__a,
4540  (__vector signed char)__b, &__cc);
4541  return __cc != 0;
4542 }
4543 
4544 static inline __ATTRS_o_ai int
4545 vec_any_ne(__vector signed short __a, __vector signed short __b) {
4546  int __cc;
4547  __builtin_s390_vceqhs(__a, __b, &__cc);
4548  return __cc != 0;
4549 }
4550 
4551 // This prototype is deprecated.
4552 static inline __ATTRS_o_ai int
4553 vec_any_ne(__vector signed short __a, __vector __bool short __b) {
4554  int __cc;
4555  __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
4556  return __cc != 0;
4557 }
4558 
4559 // This prototype is deprecated.
4560 static inline __ATTRS_o_ai int
4561 vec_any_ne(__vector __bool short __a, __vector signed short __b) {
4562  int __cc;
4563  __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
4564  return __cc != 0;
4565 }
4566 
4567 static inline __ATTRS_o_ai int
4568 vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
4569  int __cc;
4570  __builtin_s390_vceqhs((__vector signed short)__a,
4571  (__vector signed short)__b, &__cc);
4572  return __cc != 0;
4573 }
4574 
4575 // This prototype is deprecated.
4576 static inline __ATTRS_o_ai int
4577 vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
4578  int __cc;
4579  __builtin_s390_vceqhs((__vector signed short)__a,
4580  (__vector signed short)__b, &__cc);
4581  return __cc != 0;
4582 }
4583 
4584 // This prototype is deprecated.
4585 static inline __ATTRS_o_ai int
4586 vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
4587  int __cc;
4588  __builtin_s390_vceqhs((__vector signed short)__a,
4589  (__vector signed short)__b, &__cc);
4590  return __cc != 0;
4591 }
4592 
4593 static inline __ATTRS_o_ai int
4594 vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
4595  int __cc;
4596  __builtin_s390_vceqhs((__vector signed short)__a,
4597  (__vector signed short)__b, &__cc);
4598  return __cc != 0;
4599 }
4600 
4601 static inline __ATTRS_o_ai int
4602 vec_any_ne(__vector signed int __a, __vector signed int __b) {
4603  int __cc;
4604  __builtin_s390_vceqfs(__a, __b, &__cc);
4605  return __cc != 0;
4606 }
4607 
4608 // This prototype is deprecated.
4609 static inline __ATTRS_o_ai int
4610 vec_any_ne(__vector signed int __a, __vector __bool int __b) {
4611  int __cc;
4612  __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
4613  return __cc != 0;
4614 }
4615 
4616 // This prototype is deprecated.
4617 static inline __ATTRS_o_ai int
4618 vec_any_ne(__vector __bool int __a, __vector signed int __b) {
4619  int __cc;
4620  __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
4621  return __cc != 0;
4622 }
4623 
4624 static inline __ATTRS_o_ai int
4625 vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
4626  int __cc;
4627  __builtin_s390_vceqfs((__vector signed int)__a,
4628  (__vector signed int)__b, &__cc);
4629  return __cc != 0;
4630 }
4631 
4632 // This prototype is deprecated.
4633 static inline __ATTRS_o_ai int
4634 vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
4635  int __cc;
4636  __builtin_s390_vceqfs((__vector signed int)__a,
4637  (__vector signed int)__b, &__cc);
4638  return __cc != 0;
4639 }
4640 
4641 // This prototype is deprecated.
4642 static inline __ATTRS_o_ai int
4643 vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
4644  int __cc;
4645  __builtin_s390_vceqfs((__vector signed int)__a,
4646  (__vector signed int)__b, &__cc);
4647  return __cc != 0;
4648 }
4649 
4650 static inline __ATTRS_o_ai int
4651 vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
4652  int __cc;
4653  __builtin_s390_vceqfs((__vector signed int)__a,
4654  (__vector signed int)__b, &__cc);
4655  return __cc != 0;
4656 }
4657 
4658 static inline __ATTRS_o_ai int
4659 vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
4660  int __cc;
4661  __builtin_s390_vceqgs(__a, __b, &__cc);
4662  return __cc != 0;
4663 }
4664 
4665 // This prototype is deprecated.
4666 static inline __ATTRS_o_ai int
4667 vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
4668  int __cc;
4669  __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
4670  return __cc != 0;
4671 }
4672 
4673 // This prototype is deprecated.
4674 static inline __ATTRS_o_ai int
4675 vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
4676  int __cc;
4677  __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
4678  return __cc != 0;
4679 }
4680 
4681 static inline __ATTRS_o_ai int
4682 vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
4683  int __cc;
4684  __builtin_s390_vceqgs((__vector signed long long)__a,
4685  (__vector signed long long)__b, &__cc);
4686  return __cc != 0;
4687 }
4688 
4689 // This prototype is deprecated.
4690 static inline __ATTRS_o_ai int
4691 vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
4692  int __cc;
4693  __builtin_s390_vceqgs((__vector signed long long)__a,
4694  (__vector signed long long)__b, &__cc);
4695  return __cc != 0;
4696 }
4697 
4698 // This prototype is deprecated.
4699 static inline __ATTRS_o_ai int
4700 vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
4701  int __cc;
4702  __builtin_s390_vceqgs((__vector signed long long)__a,
4703  (__vector signed long long)__b, &__cc);
4704  return __cc != 0;
4705 }
4706 
4707 static inline __ATTRS_o_ai int
4708 vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
4709  int __cc;
4710  __builtin_s390_vceqgs((__vector signed long long)__a,
4711  (__vector signed long long)__b, &__cc);
4712  return __cc != 0;
4713 }
4714 
4715 #if __ARCH__ >= 12
4716 static inline __ATTRS_o_ai int
4717 vec_any_ne(__vector float __a, __vector float __b) {