1 /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
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
7 *===-----------------------------------------------------------------------===
10 #if defined(__s390x__) && defined(__VEC__)
12 #define __ATTRS_ai __attribute__((__always_inline__))
13 #define __ATTRS_o __attribute__((__overloadable__))
14 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
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)))
27 /*-- __lcbb -----------------------------------------------------------------*/
29 extern __ATTRS_o unsigned int
30 __lcbb(const void *__ptr, unsigned short __len)
31 __constant_pow2_range(__len, 64, 4096);
33 #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
34 __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
41 (Y) == 4096 ? 6 : 0) : 0))
43 /*-- vec_extract ------------------------------------------------------------*/
45 static inline __ATTRS_o_ai signed char
46 vec_extract(vector signed char __vec, int __index) {
47 return __vec[__index & 15];
50 static inline __ATTRS_o_ai unsigned char
51 vec_extract(vector bool char __vec, int __index) {
52 return __vec[__index & 15];
55 static inline __ATTRS_o_ai unsigned char
56 vec_extract(vector unsigned char __vec, int __index) {
57 return __vec[__index & 15];
60 static inline __ATTRS_o_ai signed short
61 vec_extract(vector signed short __vec, int __index) {
62 return __vec[__index & 7];
65 static inline __ATTRS_o_ai unsigned short
66 vec_extract(vector bool short __vec, int __index) {
67 return __vec[__index & 7];
70 static inline __ATTRS_o_ai unsigned short
71 vec_extract(vector unsigned short __vec, int __index) {
72 return __vec[__index & 7];
75 static inline __ATTRS_o_ai signed int
76 vec_extract(vector signed int __vec, int __index) {
77 return __vec[__index & 3];
80 static inline __ATTRS_o_ai unsigned int
81 vec_extract(vector bool int __vec, int __index) {
82 return __vec[__index & 3];
85 static inline __ATTRS_o_ai unsigned int
86 vec_extract(vector unsigned int __vec, int __index) {
87 return __vec[__index & 3];
90 static inline __ATTRS_o_ai signed long long
91 vec_extract(vector signed long long __vec, int __index) {
92 return __vec[__index & 1];
95 static inline __ATTRS_o_ai unsigned long long
96 vec_extract(vector bool long long __vec, int __index) {
97 return __vec[__index & 1];
100 static inline __ATTRS_o_ai unsigned long long
101 vec_extract(vector unsigned long long __vec, int __index) {
102 return __vec[__index & 1];
106 static inline __ATTRS_o_ai float
107 vec_extract(vector float __vec, int __index) {
108 return __vec[__index & 3];
112 static inline __ATTRS_o_ai double
113 vec_extract(vector double __vec, int __index) {
114 return __vec[__index & 1];
117 /*-- vec_insert -------------------------------------------------------------*/
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;
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;
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;
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;
145 // This prototype is deprecated.
146 static inline __ATTRS_o_ai vector unsigned short
147 vec_insert(unsigned short __scalar, vector bool short __vec, int __index) {
148 vector unsigned short __newvec = (vector unsigned short)__vec;
149 __newvec[__index & 7] = (unsigned short)__scalar;
153 static inline __ATTRS_o_ai vector unsigned short
154 vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) {
155 __vec[__index & 7] = __scalar;
159 static inline __ATTRS_o_ai vector signed int
160 vec_insert(signed int __scalar, vector signed int __vec, int __index) {
161 __vec[__index & 3] = __scalar;
165 // This prototype is deprecated.
166 static inline __ATTRS_o_ai vector unsigned int
167 vec_insert(unsigned int __scalar, vector bool int __vec, int __index) {
168 vector unsigned int __newvec = (vector unsigned int)__vec;
169 __newvec[__index & 3] = __scalar;
173 static inline __ATTRS_o_ai vector unsigned int
174 vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) {
175 __vec[__index & 3] = __scalar;
179 static inline __ATTRS_o_ai vector signed long long
180 vec_insert(signed long long __scalar, vector signed long long __vec,
182 __vec[__index & 1] = __scalar;
186 // This prototype is deprecated.
187 static inline __ATTRS_o_ai vector unsigned long long
188 vec_insert(unsigned long long __scalar, vector bool long long __vec,
190 vector unsigned long long __newvec = (vector unsigned long long)__vec;
191 __newvec[__index & 1] = __scalar;
195 static inline __ATTRS_o_ai vector unsigned long long
196 vec_insert(unsigned long long __scalar, vector unsigned long long __vec,
198 __vec[__index & 1] = __scalar;
203 static inline __ATTRS_o_ai vector float
204 vec_insert(float __scalar, vector float __vec, int __index) {
205 __vec[__index & 1] = __scalar;
210 static inline __ATTRS_o_ai vector double
211 vec_insert(double __scalar, vector double __vec, int __index) {
212 __vec[__index & 1] = __scalar;
216 /*-- vec_promote ------------------------------------------------------------*/
218 static inline __ATTRS_o_ai vector signed char
219 vec_promote(signed char __scalar, int __index) {
220 const vector signed char __zero = (vector signed char)0;
221 vector signed char __vec = __builtin_shufflevector(__zero, __zero,
222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
223 __vec[__index & 15] = __scalar;
227 static inline __ATTRS_o_ai vector unsigned char
228 vec_promote(unsigned char __scalar, int __index) {
229 const vector unsigned char __zero = (vector unsigned char)0;
230 vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
232 __vec[__index & 15] = __scalar;
236 static inline __ATTRS_o_ai vector signed short
237 vec_promote(signed short __scalar, int __index) {
238 const vector signed short __zero = (vector signed short)0;
239 vector signed short __vec = __builtin_shufflevector(__zero, __zero,
240 -1, -1, -1, -1, -1, -1, -1, -1);
241 __vec[__index & 7] = __scalar;
245 static inline __ATTRS_o_ai vector unsigned short
246 vec_promote(unsigned short __scalar, int __index) {
247 const vector unsigned short __zero = (vector unsigned short)0;
248 vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
249 -1, -1, -1, -1, -1, -1, -1, -1);
250 __vec[__index & 7] = __scalar;
254 static inline __ATTRS_o_ai vector signed int
255 vec_promote(signed int __scalar, int __index) {
256 const vector signed int __zero = (vector signed int)0;
257 vector signed int __vec = __builtin_shufflevector(__zero, __zero,
259 __vec[__index & 3] = __scalar;
263 static inline __ATTRS_o_ai vector unsigned int
264 vec_promote(unsigned int __scalar, int __index) {
265 const vector unsigned int __zero = (vector unsigned int)0;
266 vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
268 __vec[__index & 3] = __scalar;
272 static inline __ATTRS_o_ai vector signed long long
273 vec_promote(signed long long __scalar, int __index) {
274 const vector signed long long __zero = (vector signed long long)0;
275 vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
277 __vec[__index & 1] = __scalar;
281 static inline __ATTRS_o_ai vector unsigned long long
282 vec_promote(unsigned long long __scalar, int __index) {
283 const vector unsigned long long __zero = (vector unsigned long long)0;
284 vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
286 __vec[__index & 1] = __scalar;
291 static inline __ATTRS_o_ai vector float
292 vec_promote(float __scalar, int __index) {
293 const vector float __zero = (vector float)0;
294 vector float __vec = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
295 __vec[__index & 3] = __scalar;
300 static inline __ATTRS_o_ai vector double
301 vec_promote(double __scalar, int __index) {
302 const vector double __zero = (vector double)0;
303 vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
304 __vec[__index & 1] = __scalar;
308 /*-- vec_insert_and_zero ----------------------------------------------------*/
310 static inline __ATTRS_o_ai vector signed char
311 vec_insert_and_zero(const signed char *__ptr) {
312 vector signed char __vec = (vector signed char)0;
317 static inline __ATTRS_o_ai vector unsigned char
318 vec_insert_and_zero(const unsigned char *__ptr) {
319 vector unsigned char __vec = (vector unsigned char)0;
324 static inline __ATTRS_o_ai vector signed short
325 vec_insert_and_zero(const signed short *__ptr) {
326 vector signed short __vec = (vector signed short)0;
331 static inline __ATTRS_o_ai vector unsigned short
332 vec_insert_and_zero(const unsigned short *__ptr) {
333 vector unsigned short __vec = (vector unsigned short)0;
338 static inline __ATTRS_o_ai vector signed int
339 vec_insert_and_zero(const signed int *__ptr) {
340 vector signed int __vec = (vector signed int)0;
345 static inline __ATTRS_o_ai vector unsigned int
346 vec_insert_and_zero(const unsigned int *__ptr) {
347 vector unsigned int __vec = (vector unsigned int)0;
352 static inline __ATTRS_o_ai vector signed long long
353 vec_insert_and_zero(const signed long long *__ptr) {
354 vector signed long long __vec = (vector signed long long)0;
359 static inline __ATTRS_o_ai vector unsigned long long
360 vec_insert_and_zero(const unsigned long long *__ptr) {
361 vector unsigned long long __vec = (vector unsigned long long)0;
367 static inline __ATTRS_o_ai vector float
368 vec_insert_and_zero(const float *__ptr) {
369 vector float __vec = (vector float)0;
375 static inline __ATTRS_o_ai vector double
376 vec_insert_and_zero(const double *__ptr) {
377 vector double __vec = (vector double)0;
382 /*-- vec_perm ---------------------------------------------------------------*/
384 static inline __ATTRS_o_ai vector signed char
385 vec_perm(vector signed char __a, vector signed char __b,
386 vector unsigned char __c) {
387 return (vector signed char)__builtin_s390_vperm(
388 (vector unsigned char)__a, (vector unsigned char)__b, __c);
391 static inline __ATTRS_o_ai vector unsigned char
392 vec_perm(vector unsigned char __a, vector unsigned char __b,
393 vector unsigned char __c) {
394 return (vector unsigned char)__builtin_s390_vperm(
395 (vector unsigned char)__a, (vector unsigned char)__b, __c);
398 static inline __ATTRS_o_ai vector bool char
399 vec_perm(vector bool char __a, vector bool char __b,
400 vector unsigned char __c) {
401 return (vector bool char)__builtin_s390_vperm(
402 (vector unsigned char)__a, (vector unsigned char)__b, __c);
405 static inline __ATTRS_o_ai vector signed short
406 vec_perm(vector signed short __a, vector signed short __b,
407 vector unsigned char __c) {
408 return (vector signed short)__builtin_s390_vperm(
409 (vector unsigned char)__a, (vector unsigned char)__b, __c);
412 static inline __ATTRS_o_ai vector unsigned short
413 vec_perm(vector unsigned short __a, vector unsigned short __b,
414 vector unsigned char __c) {
415 return (vector unsigned short)__builtin_s390_vperm(
416 (vector unsigned char)__a, (vector unsigned char)__b, __c);
419 static inline __ATTRS_o_ai vector bool short
420 vec_perm(vector bool short __a, vector bool short __b,
421 vector unsigned char __c) {
422 return (vector bool short)__builtin_s390_vperm(
423 (vector unsigned char)__a, (vector unsigned char)__b, __c);
426 static inline __ATTRS_o_ai vector signed int
427 vec_perm(vector signed int __a, vector signed int __b,
428 vector unsigned char __c) {
429 return (vector signed int)__builtin_s390_vperm(
430 (vector unsigned char)__a, (vector unsigned char)__b, __c);
433 static inline __ATTRS_o_ai vector unsigned int
434 vec_perm(vector unsigned int __a, vector unsigned int __b,
435 vector unsigned char __c) {
436 return (vector unsigned int)__builtin_s390_vperm(
437 (vector unsigned char)__a, (vector unsigned char)__b, __c);
440 static inline __ATTRS_o_ai vector bool int
441 vec_perm(vector bool int __a, vector bool int __b,
442 vector unsigned char __c) {
443 return (vector bool int)__builtin_s390_vperm(
444 (vector unsigned char)__a, (vector unsigned char)__b, __c);
447 static inline __ATTRS_o_ai vector signed long long
448 vec_perm(vector signed long long __a, vector signed long long __b,
449 vector unsigned char __c) {
450 return (vector signed long long)__builtin_s390_vperm(
451 (vector unsigned char)__a, (vector unsigned char)__b, __c);
454 static inline __ATTRS_o_ai vector unsigned long long
455 vec_perm(vector unsigned long long __a, vector unsigned long long __b,
456 vector unsigned char __c) {
457 return (vector unsigned long long)__builtin_s390_vperm(
458 (vector unsigned char)__a, (vector unsigned char)__b, __c);
461 static inline __ATTRS_o_ai vector bool long long
462 vec_perm(vector bool long long __a, vector bool long long __b,
463 vector unsigned char __c) {
464 return (vector bool long long)__builtin_s390_vperm(
465 (vector unsigned char)__a, (vector unsigned char)__b, __c);
469 static inline __ATTRS_o_ai vector float
470 vec_perm(vector float __a, vector float __b,
471 vector unsigned char __c) {
472 return (vector float)__builtin_s390_vperm(
473 (vector unsigned char)__a, (vector unsigned char)__b, __c);
477 static inline __ATTRS_o_ai vector double
478 vec_perm(vector double __a, vector double __b,
479 vector unsigned char __c) {
480 return (vector double)__builtin_s390_vperm(
481 (vector unsigned char)__a, (vector unsigned char)__b, __c);
484 /*-- vec_permi --------------------------------------------------------------*/
486 // This prototype is deprecated.
487 extern __ATTRS_o vector signed long long
488 vec_permi(vector signed long long __a, vector signed long long __b, int __c)
489 __constant_range(__c, 0, 3);
491 // This prototype is deprecated.
492 extern __ATTRS_o vector unsigned long long
493 vec_permi(vector unsigned long long __a, vector unsigned long long __b, int __c)
494 __constant_range(__c, 0, 3);
496 // This prototype is deprecated.
497 extern __ATTRS_o vector bool long long
498 vec_permi(vector bool long long __a, vector bool long long __b, int __c)
499 __constant_range(__c, 0, 3);
501 // This prototype is deprecated.
502 extern __ATTRS_o vector double
503 vec_permi(vector double __a, vector double __b, int __c)
504 __constant_range(__c, 0, 3);
506 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
507 __builtin_s390_vpdi((vector unsigned long long)(X), \
508 (vector unsigned long long)(Y), \
509 (((Z) & 2) << 1) | ((Z) & 1)))
511 /*-- vec_bperm_u128 ---------------------------------------------------------*/
514 static inline __ATTRS_ai vector unsigned long long
515 vec_bperm_u128(vector unsigned char __a, vector unsigned char __b) {
516 return __builtin_s390_vbperm(__a, __b);
520 /*-- vec_revb ---------------------------------------------------------------*/
522 static inline __ATTRS_o_ai vector signed short
523 vec_revb(vector signed short __vec) {
524 return (vector signed short)
525 __builtin_s390_vlbrh((vector unsigned short)__vec);
528 static inline __ATTRS_o_ai vector unsigned short
529 vec_revb(vector unsigned short __vec) {
530 return __builtin_s390_vlbrh(__vec);
533 static inline __ATTRS_o_ai vector signed int
534 vec_revb(vector signed int __vec) {
535 return (vector signed int)
536 __builtin_s390_vlbrf((vector unsigned int)__vec);
539 static inline __ATTRS_o_ai vector unsigned int
540 vec_revb(vector unsigned int __vec) {
541 return __builtin_s390_vlbrf(__vec);
544 static inline __ATTRS_o_ai vector signed long long
545 vec_revb(vector signed long long __vec) {
546 return (vector signed long long)
547 __builtin_s390_vlbrg((vector unsigned long long)__vec);
550 static inline __ATTRS_o_ai vector unsigned long long
551 vec_revb(vector unsigned long long __vec) {
552 return __builtin_s390_vlbrg(__vec);
556 static inline __ATTRS_o_ai vector float
557 vec_revb(vector float __vec) {
558 return (vector float)
559 __builtin_s390_vlbrf((vector unsigned int)__vec);
563 static inline __ATTRS_o_ai vector double
564 vec_revb(vector double __vec) {
565 return (vector double)
566 __builtin_s390_vlbrg((vector unsigned long long)__vec);
569 /*-- vec_reve ---------------------------------------------------------------*/
571 static inline __ATTRS_o_ai vector signed char
572 vec_reve(vector signed char __vec) {
573 return (vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
574 __vec[11], __vec[10], __vec[9], __vec[8],
575 __vec[7], __vec[6], __vec[5], __vec[4],
576 __vec[3], __vec[2], __vec[1], __vec[0] };
579 static inline __ATTRS_o_ai vector unsigned char
580 vec_reve(vector unsigned char __vec) {
581 return (vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
582 __vec[11], __vec[10], __vec[9], __vec[8],
583 __vec[7], __vec[6], __vec[5], __vec[4],
584 __vec[3], __vec[2], __vec[1], __vec[0] };
587 static inline __ATTRS_o_ai vector bool char
588 vec_reve(vector bool char __vec) {
589 return (vector bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
590 __vec[11], __vec[10], __vec[9], __vec[8],
591 __vec[7], __vec[6], __vec[5], __vec[4],
592 __vec[3], __vec[2], __vec[1], __vec[0] };
595 static inline __ATTRS_o_ai vector signed short
596 vec_reve(vector signed short __vec) {
597 return (vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
598 __vec[3], __vec[2], __vec[1], __vec[0] };
601 static inline __ATTRS_o_ai vector unsigned short
602 vec_reve(vector unsigned short __vec) {
603 return (vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
604 __vec[3], __vec[2], __vec[1], __vec[0] };
607 static inline __ATTRS_o_ai vector bool short
608 vec_reve(vector bool short __vec) {
609 return (vector bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
610 __vec[3], __vec[2], __vec[1], __vec[0] };
613 static inline __ATTRS_o_ai vector signed int
614 vec_reve(vector signed int __vec) {
615 return (vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
618 static inline __ATTRS_o_ai vector unsigned int
619 vec_reve(vector unsigned int __vec) {
620 return (vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
623 static inline __ATTRS_o_ai vector bool int
624 vec_reve(vector bool int __vec) {
625 return (vector bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
628 static inline __ATTRS_o_ai vector signed long long
629 vec_reve(vector signed long long __vec) {
630 return (vector signed long long) { __vec[1], __vec[0] };
633 static inline __ATTRS_o_ai vector unsigned long long
634 vec_reve(vector unsigned long long __vec) {
635 return (vector unsigned long long) { __vec[1], __vec[0] };
638 static inline __ATTRS_o_ai vector bool long long
639 vec_reve(vector bool long long __vec) {
640 return (vector bool long long) { __vec[1], __vec[0] };
644 static inline __ATTRS_o_ai vector float
645 vec_reve(vector float __vec) {
646 return (vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
650 static inline __ATTRS_o_ai vector double
651 vec_reve(vector double __vec) {
652 return (vector double) { __vec[1], __vec[0] };
655 /*-- vec_sel ----------------------------------------------------------------*/
657 static inline __ATTRS_o_ai vector signed char
658 vec_sel(vector signed char __a, vector signed char __b,
659 vector unsigned char __c) {
660 return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
663 static inline __ATTRS_o_ai vector signed char
664 vec_sel(vector signed char __a, vector signed char __b, vector bool char __c) {
665 return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
668 static inline __ATTRS_o_ai vector bool char
669 vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) {
670 return ((vector bool char)__c & __b) | (~(vector bool char)__c & __a);
673 static inline __ATTRS_o_ai vector bool char
674 vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) {
675 return (__c & __b) | (~__c & __a);
678 static inline __ATTRS_o_ai vector unsigned char
679 vec_sel(vector unsigned char __a, vector unsigned char __b,
680 vector unsigned char __c) {
681 return (__c & __b) | (~__c & __a);
684 static inline __ATTRS_o_ai vector unsigned char
685 vec_sel(vector unsigned char __a, vector unsigned char __b,
686 vector bool char __c) {
687 return ((vector unsigned char)__c & __b) | (~(vector unsigned char)__c & __a);
690 static inline __ATTRS_o_ai vector signed short
691 vec_sel(vector signed short __a, vector signed short __b,
692 vector unsigned short __c) {
693 return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
696 static inline __ATTRS_o_ai vector signed short
697 vec_sel(vector signed short __a, vector signed short __b,
698 vector bool short __c) {
699 return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
702 static inline __ATTRS_o_ai vector bool short
703 vec_sel(vector bool short __a, vector bool short __b,
704 vector unsigned short __c) {
705 return ((vector bool short)__c & __b) | (~(vector bool short)__c & __a);
708 static inline __ATTRS_o_ai vector bool short
709 vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) {
710 return (__c & __b) | (~__c & __a);
713 static inline __ATTRS_o_ai vector unsigned short
714 vec_sel(vector unsigned short __a, vector unsigned short __b,
715 vector unsigned short __c) {
716 return (__c & __b) | (~__c & __a);
719 static inline __ATTRS_o_ai vector unsigned short
720 vec_sel(vector unsigned short __a, vector unsigned short __b,
721 vector bool short __c) {
722 return (((vector unsigned short)__c & __b) |
723 (~(vector unsigned short)__c & __a));
726 static inline __ATTRS_o_ai vector signed int
727 vec_sel(vector signed int __a, vector signed int __b,
728 vector unsigned int __c) {
729 return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
732 static inline __ATTRS_o_ai vector signed int
733 vec_sel(vector signed int __a, vector signed int __b, vector bool int __c) {
734 return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
737 static inline __ATTRS_o_ai vector bool int
738 vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) {
739 return ((vector bool int)__c & __b) | (~(vector bool int)__c & __a);
742 static inline __ATTRS_o_ai vector bool int
743 vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) {
744 return (__c & __b) | (~__c & __a);
747 static inline __ATTRS_o_ai vector unsigned int
748 vec_sel(vector unsigned int __a, vector unsigned int __b,
749 vector unsigned int __c) {
750 return (__c & __b) | (~__c & __a);
753 static inline __ATTRS_o_ai vector unsigned int
754 vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) {
755 return ((vector unsigned int)__c & __b) | (~(vector unsigned int)__c & __a);
758 static inline __ATTRS_o_ai vector signed long long
759 vec_sel(vector signed long long __a, vector signed long long __b,
760 vector unsigned long long __c) {
761 return (((vector signed long long)__c & __b) |
762 (~(vector signed long long)__c & __a));
765 static inline __ATTRS_o_ai vector signed long long
766 vec_sel(vector signed long long __a, vector signed long long __b,
767 vector bool long long __c) {
768 return (((vector signed long long)__c & __b) |
769 (~(vector signed long long)__c & __a));
772 static inline __ATTRS_o_ai vector bool long long
773 vec_sel(vector bool long long __a, vector bool long long __b,
774 vector unsigned long long __c) {
775 return (((vector bool long long)__c & __b) |
776 (~(vector bool long long)__c & __a));
779 static inline __ATTRS_o_ai vector bool long long
780 vec_sel(vector bool long long __a, vector bool long long __b,
781 vector bool long long __c) {
782 return (__c & __b) | (~__c & __a);
785 static inline __ATTRS_o_ai vector unsigned long long
786 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
787 vector unsigned long long __c) {
788 return (__c & __b) | (~__c & __a);
791 static inline __ATTRS_o_ai vector unsigned long long
792 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
793 vector bool long long __c) {
794 return (((vector unsigned long long)__c & __b) |
795 (~(vector unsigned long long)__c & __a));
799 static inline __ATTRS_o_ai vector float
800 vec_sel(vector float __a, vector float __b, vector unsigned int __c) {
801 return (vector float)((__c & (vector unsigned int)__b) |
802 (~__c & (vector unsigned int)__a));
805 static inline __ATTRS_o_ai vector float
806 vec_sel(vector float __a, vector float __b, vector bool int __c) {
807 vector unsigned int __ac = (vector unsigned int)__a;
808 vector unsigned int __bc = (vector unsigned int)__b;
809 vector unsigned int __cc = (vector unsigned int)__c;
810 return (vector float)((__cc & __bc) | (~__cc & __ac));
814 static inline __ATTRS_o_ai vector double
815 vec_sel(vector double __a, vector double __b, vector unsigned long long __c) {
816 return (vector double)((__c & (vector unsigned long long)__b) |
817 (~__c & (vector unsigned long long)__a));
820 static inline __ATTRS_o_ai vector double
821 vec_sel(vector double __a, vector double __b, vector bool long long __c) {
822 vector unsigned long long __ac = (vector unsigned long long)__a;
823 vector unsigned long long __bc = (vector unsigned long long)__b;
824 vector unsigned long long __cc = (vector unsigned long long)__c;
825 return (vector double)((__cc & __bc) | (~__cc & __ac));
828 /*-- vec_gather_element -----------------------------------------------------*/
830 static inline __ATTRS_o_ai vector signed int
831 vec_gather_element(vector signed int __vec, vector unsigned int __offset,
832 const signed int *__ptr, int __index)
833 __constant_range(__index, 0, 3) {
834 __vec[__index] = *(const signed int *)(
835 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
839 static inline __ATTRS_o_ai vector bool int
840 vec_gather_element(vector bool int __vec, vector unsigned int __offset,
841 const unsigned int *__ptr, int __index)
842 __constant_range(__index, 0, 3) {
843 __vec[__index] = *(const unsigned int *)(
844 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
848 static inline __ATTRS_o_ai vector unsigned int
849 vec_gather_element(vector unsigned int __vec, vector unsigned int __offset,
850 const unsigned int *__ptr, int __index)
851 __constant_range(__index, 0, 3) {
852 __vec[__index] = *(const unsigned int *)(
853 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
857 static inline __ATTRS_o_ai vector signed long long
858 vec_gather_element(vector signed long long __vec,
859 vector unsigned long long __offset,
860 const signed long long *__ptr, int __index)
861 __constant_range(__index, 0, 1) {
862 __vec[__index] = *(const signed long long *)(
863 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
867 static inline __ATTRS_o_ai vector bool long long
868 vec_gather_element(vector bool long long __vec,
869 vector unsigned long long __offset,
870 const unsigned long long *__ptr, int __index)
871 __constant_range(__index, 0, 1) {
872 __vec[__index] = *(const unsigned long long *)(
873 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
877 static inline __ATTRS_o_ai vector unsigned long long
878 vec_gather_element(vector unsigned long long __vec,
879 vector unsigned long long __offset,
880 const unsigned long long *__ptr, int __index)
881 __constant_range(__index, 0, 1) {
882 __vec[__index] = *(const unsigned long long *)(
883 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
888 static inline __ATTRS_o_ai vector float
889 vec_gather_element(vector float __vec, vector unsigned int __offset,
890 const float *__ptr, int __index)
891 __constant_range(__index, 0, 3) {
892 __vec[__index] = *(const float *)(
893 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
898 static inline __ATTRS_o_ai vector double
899 vec_gather_element(vector double __vec, vector unsigned long long __offset,
900 const double *__ptr, int __index)
901 __constant_range(__index, 0, 1) {
902 __vec[__index] = *(const double *)(
903 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
907 /*-- vec_scatter_element ----------------------------------------------------*/
909 static inline __ATTRS_o_ai void
910 vec_scatter_element(vector signed int __vec, vector unsigned int __offset,
911 signed int *__ptr, int __index)
912 __constant_range(__index, 0, 3) {
913 *(signed int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
917 static inline __ATTRS_o_ai void
918 vec_scatter_element(vector bool int __vec, vector unsigned int __offset,
919 unsigned int *__ptr, int __index)
920 __constant_range(__index, 0, 3) {
921 *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
925 static inline __ATTRS_o_ai void
926 vec_scatter_element(vector unsigned int __vec, vector unsigned int __offset,
927 unsigned int *__ptr, int __index)
928 __constant_range(__index, 0, 3) {
929 *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
933 static inline __ATTRS_o_ai void
934 vec_scatter_element(vector signed long long __vec,
935 vector unsigned long long __offset,
936 signed long long *__ptr, int __index)
937 __constant_range(__index, 0, 1) {
938 *(signed long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
942 static inline __ATTRS_o_ai void
943 vec_scatter_element(vector bool long long __vec,
944 vector unsigned long long __offset,
945 unsigned long long *__ptr, int __index)
946 __constant_range(__index, 0, 1) {
947 *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
951 static inline __ATTRS_o_ai void
952 vec_scatter_element(vector unsigned long long __vec,
953 vector unsigned long long __offset,
954 unsigned long long *__ptr, int __index)
955 __constant_range(__index, 0, 1) {
956 *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
961 static inline __ATTRS_o_ai void
962 vec_scatter_element(vector float __vec, vector unsigned int __offset,
963 float *__ptr, int __index)
964 __constant_range(__index, 0, 3) {
965 *(float *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
970 static inline __ATTRS_o_ai void
971 vec_scatter_element(vector double __vec, vector unsigned long long __offset,
972 double *__ptr, int __index)
973 __constant_range(__index, 0, 1) {
974 *(double *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
978 /*-- vec_xl -----------------------------------------------------------------*/
980 static inline __ATTRS_o_ai vector signed char
981 vec_xl(long __offset, const signed char *__ptr) {
982 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
985 static inline __ATTRS_o_ai vector unsigned char
986 vec_xl(long __offset, const unsigned char *__ptr) {
987 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
990 static inline __ATTRS_o_ai vector signed short
991 vec_xl(long __offset, const signed short *__ptr) {
992 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
995 static inline __ATTRS_o_ai vector unsigned short
996 vec_xl(long __offset, const unsigned short *__ptr) {
997 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
1000 static inline __ATTRS_o_ai vector signed int
1001 vec_xl(long __offset, const signed int *__ptr) {
1002 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1005 static inline __ATTRS_o_ai vector unsigned int
1006 vec_xl(long __offset, const unsigned int *__ptr) {
1007 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1010 static inline __ATTRS_o_ai vector signed long long
1011 vec_xl(long __offset, const signed long long *__ptr) {
1012 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
1015 static inline __ATTRS_o_ai vector unsigned long long
1016 vec_xl(long __offset, const unsigned long long *__ptr) {
1017 return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
1021 static inline __ATTRS_o_ai vector float
1022 vec_xl(long __offset, const float *__ptr) {
1023 return *(const vector float *)((__INTPTR_TYPE__)__ptr + __offset);
1027 static inline __ATTRS_o_ai vector double
1028 vec_xl(long __offset, const double *__ptr) {
1029 return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
1032 /*-- vec_xld2 ---------------------------------------------------------------*/
1034 // This prototype is deprecated.
1035 static inline __ATTRS_o_ai vector signed char
1036 vec_xld2(long __offset, const signed char *__ptr) {
1037 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
1040 // This prototype is deprecated.
1041 static inline __ATTRS_o_ai vector unsigned char
1042 vec_xld2(long __offset, const unsigned char *__ptr) {
1043 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
1046 // This prototype is deprecated.
1047 static inline __ATTRS_o_ai vector signed short
1048 vec_xld2(long __offset, const signed short *__ptr) {
1049 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
1052 // This prototype is deprecated.
1053 static inline __ATTRS_o_ai vector unsigned short
1054 vec_xld2(long __offset, const unsigned short *__ptr) {
1055 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
1058 // This prototype is deprecated.
1059 static inline __ATTRS_o_ai vector signed int
1060 vec_xld2(long __offset, const signed int *__ptr) {
1061 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1064 // This prototype is deprecated.
1065 static inline __ATTRS_o_ai vector unsigned int
1066 vec_xld2(long __offset, const unsigned int *__ptr) {
1067 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1070 // This prototype is deprecated.
1071 static inline __ATTRS_o_ai vector signed long long
1072 vec_xld2(long __offset, const signed long long *__ptr) {
1073 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
1076 // This prototype is deprecated.
1077 static inline __ATTRS_o_ai vector unsigned long long
1078 vec_xld2(long __offset, const unsigned long long *__ptr) {
1079 return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
1082 // This prototype is deprecated.
1083 static inline __ATTRS_o_ai vector double
1084 vec_xld2(long __offset, const double *__ptr) {
1085 return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
1088 /*-- vec_xlw4 ---------------------------------------------------------------*/
1090 // This prototype is deprecated.
1091 static inline __ATTRS_o_ai vector signed char
1092 vec_xlw4(long __offset, const signed char *__ptr) {
1093 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
1096 // This prototype is deprecated.
1097 static inline __ATTRS_o_ai vector unsigned char
1098 vec_xlw4(long __offset, const unsigned char *__ptr) {
1099 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
1102 // This prototype is deprecated.
1103 static inline __ATTRS_o_ai vector signed short
1104 vec_xlw4(long __offset, const signed short *__ptr) {
1105 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
1108 // This prototype is deprecated.
1109 static inline __ATTRS_o_ai vector unsigned short
1110 vec_xlw4(long __offset, const unsigned short *__ptr) {
1111 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
1114 // This prototype is deprecated.
1115 static inline __ATTRS_o_ai vector signed int
1116 vec_xlw4(long __offset, const signed int *__ptr) {
1117 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1120 // This prototype is deprecated.
1121 static inline __ATTRS_o_ai vector unsigned int
1122 vec_xlw4(long __offset, const unsigned int *__ptr) {
1123 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1126 /*-- vec_xst ----------------------------------------------------------------*/
1128 static inline __ATTRS_o_ai void
1129 vec_xst(vector signed char __vec, long __offset, signed char *__ptr) {
1130 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1133 static inline __ATTRS_o_ai void
1134 vec_xst(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1135 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1138 static inline __ATTRS_o_ai void
1139 vec_xst(vector signed short __vec, long __offset, signed short *__ptr) {
1140 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1143 static inline __ATTRS_o_ai void
1144 vec_xst(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1145 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1148 static inline __ATTRS_o_ai void
1149 vec_xst(vector signed int __vec, long __offset, signed int *__ptr) {
1150 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1153 static inline __ATTRS_o_ai void
1154 vec_xst(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1155 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1158 static inline __ATTRS_o_ai void
1159 vec_xst(vector signed long long __vec, long __offset,
1160 signed long long *__ptr) {
1161 *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1164 static inline __ATTRS_o_ai void
1165 vec_xst(vector unsigned long long __vec, long __offset,
1166 unsigned long long *__ptr) {
1167 *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
1172 static inline __ATTRS_o_ai void
1173 vec_xst(vector float __vec, long __offset, float *__ptr) {
1174 *(vector float *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1178 static inline __ATTRS_o_ai void
1179 vec_xst(vector double __vec, long __offset, double *__ptr) {
1180 *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1183 /*-- vec_xstd2 --------------------------------------------------------------*/
1185 // This prototype is deprecated.
1186 static inline __ATTRS_o_ai void
1187 vec_xstd2(vector signed char __vec, long __offset, signed char *__ptr) {
1188 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1191 // This prototype is deprecated.
1192 static inline __ATTRS_o_ai void
1193 vec_xstd2(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1194 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1197 // This prototype is deprecated.
1198 static inline __ATTRS_o_ai void
1199 vec_xstd2(vector signed short __vec, long __offset, signed short *__ptr) {
1200 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1203 // This prototype is deprecated.
1204 static inline __ATTRS_o_ai void
1205 vec_xstd2(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1206 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1209 // This prototype is deprecated.
1210 static inline __ATTRS_o_ai void
1211 vec_xstd2(vector signed int __vec, long __offset, signed int *__ptr) {
1212 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1215 // This prototype is deprecated.
1216 static inline __ATTRS_o_ai void
1217 vec_xstd2(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1218 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1221 // This prototype is deprecated.
1222 static inline __ATTRS_o_ai void
1223 vec_xstd2(vector signed long long __vec, long __offset,
1224 signed long long *__ptr) {
1225 *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1228 // This prototype is deprecated.
1229 static inline __ATTRS_o_ai void
1230 vec_xstd2(vector unsigned long long __vec, long __offset,
1231 unsigned long long *__ptr) {
1232 *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
1236 // This prototype is deprecated.
1237 static inline __ATTRS_o_ai void
1238 vec_xstd2(vector double __vec, long __offset, double *__ptr) {
1239 *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1242 /*-- vec_xstw4 --------------------------------------------------------------*/
1244 // This prototype is deprecated.
1245 static inline __ATTRS_o_ai void
1246 vec_xstw4(vector signed char __vec, long __offset, signed char *__ptr) {
1247 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1250 // This prototype is deprecated.
1251 static inline __ATTRS_o_ai void
1252 vec_xstw4(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1253 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1256 // This prototype is deprecated.
1257 static inline __ATTRS_o_ai void
1258 vec_xstw4(vector signed short __vec, long __offset, signed short *__ptr) {
1259 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1262 // This prototype is deprecated.
1263 static inline __ATTRS_o_ai void
1264 vec_xstw4(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1265 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1268 // This prototype is deprecated.
1269 static inline __ATTRS_o_ai void
1270 vec_xstw4(vector signed int __vec, long __offset, signed int *__ptr) {
1271 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1274 // This prototype is deprecated.
1275 static inline __ATTRS_o_ai void
1276 vec_xstw4(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1277 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1280 /*-- vec_load_bndry ---------------------------------------------------------*/
1282 extern __ATTRS_o vector signed char
1283 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1284 __constant_pow2_range(__len, 64, 4096);
1286 extern __ATTRS_o vector unsigned char
1287 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1288 __constant_pow2_range(__len, 64, 4096);
1290 extern __ATTRS_o vector signed short
1291 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1292 __constant_pow2_range(__len, 64, 4096);
1294 extern __ATTRS_o vector unsigned short
1295 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1296 __constant_pow2_range(__len, 64, 4096);
1298 extern __ATTRS_o vector signed int
1299 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1300 __constant_pow2_range(__len, 64, 4096);
1302 extern __ATTRS_o vector unsigned int
1303 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1304 __constant_pow2_range(__len, 64, 4096);
1306 extern __ATTRS_o vector signed long long
1307 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1308 __constant_pow2_range(__len, 64, 4096);
1310 extern __ATTRS_o vector unsigned long long
1311 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1312 __constant_pow2_range(__len, 64, 4096);
1315 extern __ATTRS_o vector float
1316 vec_load_bndry(const float *__ptr, unsigned short __len)
1317 __constant_pow2_range(__len, 64, 4096);
1320 extern __ATTRS_o vector double
1321 vec_load_bndry(const double *__ptr, unsigned short __len)
1322 __constant_pow2_range(__len, 64, 4096);
1324 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1325 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1331 (Y) == 4096 ? 6 : -1)))
1333 /*-- vec_load_len -----------------------------------------------------------*/
1335 static inline __ATTRS_o_ai vector signed char
1336 vec_load_len(const signed char *__ptr, unsigned int __len) {
1337 return (vector signed char)__builtin_s390_vll(__len, __ptr);
1340 static inline __ATTRS_o_ai vector unsigned char
1341 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1342 return (vector unsigned char)__builtin_s390_vll(__len, __ptr);
1345 static inline __ATTRS_o_ai vector signed short
1346 vec_load_len(const signed short *__ptr, unsigned int __len) {
1347 return (vector signed short)__builtin_s390_vll(__len, __ptr);
1350 static inline __ATTRS_o_ai vector unsigned short
1351 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1352 return (vector unsigned short)__builtin_s390_vll(__len, __ptr);
1355 static inline __ATTRS_o_ai vector signed int
1356 vec_load_len(const signed int *__ptr, unsigned int __len) {
1357 return (vector signed int)__builtin_s390_vll(__len, __ptr);
1360 static inline __ATTRS_o_ai vector unsigned int
1361 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1362 return (vector unsigned int)__builtin_s390_vll(__len, __ptr);
1365 static inline __ATTRS_o_ai vector signed long long
1366 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1367 return (vector signed long long)__builtin_s390_vll(__len, __ptr);
1370 static inline __ATTRS_o_ai vector unsigned long long
1371 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1372 return (vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1376 static inline __ATTRS_o_ai vector float
1377 vec_load_len(const float *__ptr, unsigned int __len) {
1378 return (vector float)__builtin_s390_vll(__len, __ptr);
1382 static inline __ATTRS_o_ai vector double
1383 vec_load_len(const double *__ptr, unsigned int __len) {
1384 return (vector double)__builtin_s390_vll(__len, __ptr);
1387 /*-- vec_load_len_r ---------------------------------------------------------*/
1390 static inline __ATTRS_ai vector unsigned char
1391 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1392 return (vector unsigned char)__builtin_s390_vlrl(__len, __ptr);
1396 /*-- vec_store_len ----------------------------------------------------------*/
1398 static inline __ATTRS_o_ai void
1399 vec_store_len(vector signed char __vec, signed char *__ptr,
1400 unsigned int __len) {
1401 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1404 static inline __ATTRS_o_ai void
1405 vec_store_len(vector unsigned char __vec, unsigned char *__ptr,
1406 unsigned int __len) {
1407 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1410 static inline __ATTRS_o_ai void
1411 vec_store_len(vector signed short __vec, signed short *__ptr,
1412 unsigned int __len) {
1413 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1416 static inline __ATTRS_o_ai void
1417 vec_store_len(vector unsigned short __vec, unsigned short *__ptr,
1418 unsigned int __len) {
1419 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1422 static inline __ATTRS_o_ai void
1423 vec_store_len(vector signed int __vec, signed int *__ptr,
1424 unsigned int __len) {
1425 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1428 static inline __ATTRS_o_ai void
1429 vec_store_len(vector unsigned int __vec, unsigned int *__ptr,
1430 unsigned int __len) {
1431 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1434 static inline __ATTRS_o_ai void
1435 vec_store_len(vector signed long long __vec, signed long long *__ptr,
1436 unsigned int __len) {
1437 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1440 static inline __ATTRS_o_ai void
1441 vec_store_len(vector unsigned long long __vec, unsigned long long *__ptr,
1442 unsigned int __len) {
1443 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1447 static inline __ATTRS_o_ai void
1448 vec_store_len(vector float __vec, float *__ptr,
1449 unsigned int __len) {
1450 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1454 static inline __ATTRS_o_ai void
1455 vec_store_len(vector double __vec, double *__ptr,
1456 unsigned int __len) {
1457 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1460 /*-- vec_store_len_r --------------------------------------------------------*/
1463 static inline __ATTRS_ai void
1464 vec_store_len_r(vector unsigned char __vec, unsigned char *__ptr,
1465 unsigned int __len) {
1466 __builtin_s390_vstrl((vector signed char)__vec, __len, __ptr);
1470 /*-- vec_load_pair ----------------------------------------------------------*/
1472 static inline __ATTRS_o_ai vector signed long long
1473 vec_load_pair(signed long long __a, signed long long __b) {
1474 return (vector signed long long)(__a, __b);
1477 static inline __ATTRS_o_ai vector unsigned long long
1478 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1479 return (vector unsigned long long)(__a, __b);
1482 /*-- vec_genmask ------------------------------------------------------------*/
1484 static inline __ATTRS_o_ai vector unsigned char
1485 vec_genmask(unsigned short __mask)
1486 __constant(__mask) {
1487 return (vector unsigned char)(
1488 __mask & 0x8000 ? 0xff : 0,
1489 __mask & 0x4000 ? 0xff : 0,
1490 __mask & 0x2000 ? 0xff : 0,
1491 __mask & 0x1000 ? 0xff : 0,
1492 __mask & 0x0800 ? 0xff : 0,
1493 __mask & 0x0400 ? 0xff : 0,
1494 __mask & 0x0200 ? 0xff : 0,
1495 __mask & 0x0100 ? 0xff : 0,
1496 __mask & 0x0080 ? 0xff : 0,
1497 __mask & 0x0040 ? 0xff : 0,
1498 __mask & 0x0020 ? 0xff : 0,
1499 __mask & 0x0010 ? 0xff : 0,
1500 __mask & 0x0008 ? 0xff : 0,
1501 __mask & 0x0004 ? 0xff : 0,
1502 __mask & 0x0002 ? 0xff : 0,
1503 __mask & 0x0001 ? 0xff : 0);
1506 /*-- vec_genmasks_* ---------------------------------------------------------*/
1508 static inline __ATTRS_o_ai vector unsigned char
1509 vec_genmasks_8(unsigned char __first, unsigned char __last)
1510 __constant(__first) __constant(__last) {
1511 unsigned char __bit1 = __first & 7;
1512 unsigned char __bit2 = __last & 7;
1513 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1514 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1515 unsigned char __value = (__bit1 <= __bit2 ?
1516 __mask1 & ~__mask2 :
1517 __mask1 | ~__mask2);
1518 return (vector unsigned char)__value;
1521 static inline __ATTRS_o_ai vector unsigned short
1522 vec_genmasks_16(unsigned char __first, unsigned char __last)
1523 __constant(__first) __constant(__last) {
1524 unsigned char __bit1 = __first & 15;
1525 unsigned char __bit2 = __last & 15;
1526 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1527 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1528 unsigned short __value = (__bit1 <= __bit2 ?
1529 __mask1 & ~__mask2 :
1530 __mask1 | ~__mask2);
1531 return (vector unsigned short)__value;
1534 static inline __ATTRS_o_ai vector unsigned int
1535 vec_genmasks_32(unsigned char __first, unsigned char __last)
1536 __constant(__first) __constant(__last) {
1537 unsigned char __bit1 = __first & 31;
1538 unsigned char __bit2 = __last & 31;
1539 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1540 unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1541 unsigned int __value = (__bit1 <= __bit2 ?
1542 __mask1 & ~__mask2 :
1543 __mask1 | ~__mask2);
1544 return (vector unsigned int)__value;
1547 static inline __ATTRS_o_ai vector unsigned long long
1548 vec_genmasks_64(unsigned char __first, unsigned char __last)
1549 __constant(__first) __constant(__last) {
1550 unsigned char __bit1 = __first & 63;
1551 unsigned char __bit2 = __last & 63;
1552 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1553 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1554 unsigned long long __value = (__bit1 <= __bit2 ?
1555 __mask1 & ~__mask2 :
1556 __mask1 | ~__mask2);
1557 return (vector unsigned long long)__value;
1560 /*-- vec_splat --------------------------------------------------------------*/
1562 static inline __ATTRS_o_ai vector signed char
1563 vec_splat(vector signed char __vec, int __index)
1564 __constant_range(__index, 0, 15) {
1565 return (vector signed char)__vec[__index];
1568 static inline __ATTRS_o_ai vector bool char
1569 vec_splat(vector bool char __vec, int __index)
1570 __constant_range(__index, 0, 15) {
1571 return (vector bool char)(vector unsigned char)__vec[__index];
1574 static inline __ATTRS_o_ai vector unsigned char
1575 vec_splat(vector unsigned char __vec, int __index)
1576 __constant_range(__index, 0, 15) {
1577 return (vector unsigned char)__vec[__index];
1580 static inline __ATTRS_o_ai vector signed short
1581 vec_splat(vector signed short __vec, int __index)
1582 __constant_range(__index, 0, 7) {
1583 return (vector signed short)__vec[__index];
1586 static inline __ATTRS_o_ai vector bool short
1587 vec_splat(vector bool short __vec, int __index)
1588 __constant_range(__index, 0, 7) {
1589 return (vector bool short)(vector unsigned short)__vec[__index];
1592 static inline __ATTRS_o_ai vector unsigned short
1593 vec_splat(vector unsigned short __vec, int __index)
1594 __constant_range(__index, 0, 7) {
1595 return (vector unsigned short)__vec[__index];
1598 static inline __ATTRS_o_ai vector signed int
1599 vec_splat(vector signed int __vec, int __index)
1600 __constant_range(__index, 0, 3) {
1601 return (vector signed int)__vec[__index];
1604 static inline __ATTRS_o_ai vector bool int
1605 vec_splat(vector bool int __vec, int __index)
1606 __constant_range(__index, 0, 3) {
1607 return (vector bool int)(vector unsigned int)__vec[__index];
1610 static inline __ATTRS_o_ai vector unsigned int
1611 vec_splat(vector unsigned int __vec, int __index)
1612 __constant_range(__index, 0, 3) {
1613 return (vector unsigned int)__vec[__index];
1616 static inline __ATTRS_o_ai vector signed long long
1617 vec_splat(vector signed long long __vec, int __index)
1618 __constant_range(__index, 0, 1) {
1619 return (vector signed long long)__vec[__index];
1622 static inline __ATTRS_o_ai vector bool long long
1623 vec_splat(vector bool long long __vec, int __index)
1624 __constant_range(__index, 0, 1) {
1625 return (vector bool long long)(vector unsigned long long)__vec[__index];
1628 static inline __ATTRS_o_ai vector unsigned long long
1629 vec_splat(vector unsigned long long __vec, int __index)
1630 __constant_range(__index, 0, 1) {
1631 return (vector unsigned long long)__vec[__index];
1635 static inline __ATTRS_o_ai vector float
1636 vec_splat(vector float __vec, int __index)
1637 __constant_range(__index, 0, 3) {
1638 return (vector float)__vec[__index];
1642 static inline __ATTRS_o_ai vector double
1643 vec_splat(vector double __vec, int __index)
1644 __constant_range(__index, 0, 1) {
1645 return (vector double)__vec[__index];
1648 /*-- vec_splat_s* -----------------------------------------------------------*/
1650 static inline __ATTRS_ai vector signed char
1651 vec_splat_s8(signed char __scalar)
1652 __constant(__scalar) {
1653 return (vector signed char)__scalar;
1656 static inline __ATTRS_ai vector signed short
1657 vec_splat_s16(signed short __scalar)
1658 __constant(__scalar) {
1659 return (vector signed short)__scalar;
1662 static inline __ATTRS_ai vector signed int
1663 vec_splat_s32(signed short __scalar)
1664 __constant(__scalar) {
1665 return (vector signed int)(signed int)__scalar;
1668 static inline __ATTRS_ai vector signed long long
1669 vec_splat_s64(signed short __scalar)
1670 __constant(__scalar) {
1671 return (vector signed long long)(signed long)__scalar;
1674 /*-- vec_splat_u* -----------------------------------------------------------*/
1676 static inline __ATTRS_ai vector unsigned char
1677 vec_splat_u8(unsigned char __scalar)
1678 __constant(__scalar) {
1679 return (vector unsigned char)__scalar;
1682 static inline __ATTRS_ai vector unsigned short
1683 vec_splat_u16(unsigned short __scalar)
1684 __constant(__scalar) {
1685 return (vector unsigned short)__scalar;
1688 static inline __ATTRS_ai vector unsigned int
1689 vec_splat_u32(signed short __scalar)
1690 __constant(__scalar) {
1691 return (vector unsigned int)(signed int)__scalar;
1694 static inline __ATTRS_ai vector unsigned long long
1695 vec_splat_u64(signed short __scalar)
1696 __constant(__scalar) {
1697 return (vector unsigned long long)(signed long long)__scalar;
1700 /*-- vec_splats -------------------------------------------------------------*/
1702 static inline __ATTRS_o_ai vector signed char
1703 vec_splats(signed char __scalar) {
1704 return (vector signed char)__scalar;
1707 static inline __ATTRS_o_ai vector unsigned char
1708 vec_splats(unsigned char __scalar) {
1709 return (vector unsigned char)__scalar;
1712 static inline __ATTRS_o_ai vector signed short
1713 vec_splats(signed short __scalar) {
1714 return (vector signed short)__scalar;
1717 static inline __ATTRS_o_ai vector unsigned short
1718 vec_splats(unsigned short __scalar) {
1719 return (vector unsigned short)__scalar;
1722 static inline __ATTRS_o_ai vector signed int
1723 vec_splats(signed int __scalar) {
1724 return (vector signed int)__scalar;
1727 static inline __ATTRS_o_ai vector unsigned int
1728 vec_splats(unsigned int __scalar) {
1729 return (vector unsigned int)__scalar;
1732 static inline __ATTRS_o_ai vector signed long long
1733 vec_splats(signed long long __scalar) {
1734 return (vector signed long long)__scalar;
1737 static inline __ATTRS_o_ai vector unsigned long long
1738 vec_splats(unsigned long long __scalar) {
1739 return (vector unsigned long long)__scalar;
1743 static inline __ATTRS_o_ai vector float
1744 vec_splats(float __scalar) {
1745 return (vector float)__scalar;
1749 static inline __ATTRS_o_ai vector double
1750 vec_splats(double __scalar) {
1751 return (vector double)__scalar;
1754 /*-- vec_extend_s64 ---------------------------------------------------------*/
1756 static inline __ATTRS_o_ai vector signed long long
1757 vec_extend_s64(vector signed char __a) {
1758 return (vector signed long long)(__a[7], __a[15]);
1761 static inline __ATTRS_o_ai vector signed long long
1762 vec_extend_s64(vector signed short __a) {
1763 return (vector signed long long)(__a[3], __a[7]);
1766 static inline __ATTRS_o_ai vector signed long long
1767 vec_extend_s64(vector signed int __a) {
1768 return (vector signed long long)(__a[1], __a[3]);
1771 /*-- vec_mergeh -------------------------------------------------------------*/
1773 static inline __ATTRS_o_ai vector signed char
1774 vec_mergeh(vector signed char __a, vector signed char __b) {
1775 return (vector signed char)(
1776 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1777 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1780 static inline __ATTRS_o_ai vector bool char
1781 vec_mergeh(vector bool char __a, vector bool char __b) {
1782 return (vector bool char)(
1783 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1784 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1787 static inline __ATTRS_o_ai vector unsigned char
1788 vec_mergeh(vector unsigned char __a, vector unsigned char __b) {
1789 return (vector unsigned char)(
1790 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1791 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1794 static inline __ATTRS_o_ai vector signed short
1795 vec_mergeh(vector signed short __a, vector signed short __b) {
1796 return (vector signed short)(
1797 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1800 static inline __ATTRS_o_ai vector bool short
1801 vec_mergeh(vector bool short __a, vector bool short __b) {
1802 return (vector bool short)(
1803 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1806 static inline __ATTRS_o_ai vector unsigned short
1807 vec_mergeh(vector unsigned short __a, vector unsigned short __b) {
1808 return (vector unsigned short)(
1809 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1812 static inline __ATTRS_o_ai vector signed int
1813 vec_mergeh(vector signed int __a, vector signed int __b) {
1814 return (vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1817 static inline __ATTRS_o_ai vector bool int
1818 vec_mergeh(vector bool int __a, vector bool int __b) {
1819 return (vector bool int)(__a[0], __b[0], __a[1], __b[1]);
1822 static inline __ATTRS_o_ai vector unsigned int
1823 vec_mergeh(vector unsigned int __a, vector unsigned int __b) {
1824 return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1827 static inline __ATTRS_o_ai vector signed long long
1828 vec_mergeh(vector signed long long __a, vector signed long long __b) {
1829 return (vector signed long long)(__a[0], __b[0]);
1832 static inline __ATTRS_o_ai vector bool long long
1833 vec_mergeh(vector bool long long __a, vector bool long long __b) {
1834 return (vector bool long long)(__a[0], __b[0]);
1837 static inline __ATTRS_o_ai vector unsigned long long
1838 vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) {
1839 return (vector unsigned long long)(__a[0], __b[0]);
1843 static inline __ATTRS_o_ai vector float
1844 vec_mergeh(vector float __a, vector float __b) {
1845 return (vector float)(__a[0], __b[0], __a[1], __b[1]);
1849 static inline __ATTRS_o_ai vector double
1850 vec_mergeh(vector double __a, vector double __b) {
1851 return (vector double)(__a[0], __b[0]);
1854 /*-- vec_mergel -------------------------------------------------------------*/
1856 static inline __ATTRS_o_ai vector signed char
1857 vec_mergel(vector signed char __a, vector signed char __b) {
1858 return (vector signed char)(
1859 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1860 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1863 static inline __ATTRS_o_ai vector bool char
1864 vec_mergel(vector bool char __a, vector bool char __b) {
1865 return (vector bool char)(
1866 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1867 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1870 static inline __ATTRS_o_ai vector unsigned char
1871 vec_mergel(vector unsigned char __a, vector unsigned char __b) {
1872 return (vector unsigned char)(
1873 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1874 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1877 static inline __ATTRS_o_ai vector signed short
1878 vec_mergel(vector signed short __a, vector signed short __b) {
1879 return (vector signed short)(
1880 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1883 static inline __ATTRS_o_ai vector bool short
1884 vec_mergel(vector bool short __a, vector bool short __b) {
1885 return (vector bool short)(
1886 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1889 static inline __ATTRS_o_ai vector unsigned short
1890 vec_mergel(vector unsigned short __a, vector unsigned short __b) {
1891 return (vector unsigned short)(
1892 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1895 static inline __ATTRS_o_ai vector signed int
1896 vec_mergel(vector signed int __a, vector signed int __b) {
1897 return (vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1900 static inline __ATTRS_o_ai vector bool int
1901 vec_mergel(vector bool int __a, vector bool int __b) {
1902 return (vector bool int)(__a[2], __b[2], __a[3], __b[3]);
1905 static inline __ATTRS_o_ai vector unsigned int
1906 vec_mergel(vector unsigned int __a, vector unsigned int __b) {
1907 return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1910 static inline __ATTRS_o_ai vector signed long long
1911 vec_mergel(vector signed long long __a, vector signed long long __b) {
1912 return (vector signed long long)(__a[1], __b[1]);
1915 static inline __ATTRS_o_ai vector bool long long
1916 vec_mergel(vector bool long long __a, vector bool long long __b) {
1917 return (vector bool long long)(__a[1], __b[1]);
1920 static inline __ATTRS_o_ai vector unsigned long long
1921 vec_mergel(vector unsigned long long __a, vector unsigned long long __b) {
1922 return (vector unsigned long long)(__a[1], __b[1]);
1926 static inline __ATTRS_o_ai vector float
1927 vec_mergel(vector float __a, vector float __b) {
1928 return (vector float)(__a[2], __b[2], __a[3], __b[3]);
1932 static inline __ATTRS_o_ai vector double
1933 vec_mergel(vector double __a, vector double __b) {
1934 return (vector double)(__a[1], __b[1]);
1937 /*-- vec_pack ---------------------------------------------------------------*/
1939 static inline __ATTRS_o_ai vector signed char
1940 vec_pack(vector signed short __a, vector signed short __b) {
1941 vector signed char __ac = (vector signed char)__a;
1942 vector signed char __bc = (vector signed char)__b;
1943 return (vector signed char)(
1944 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1945 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1948 static inline __ATTRS_o_ai vector bool char
1949 vec_pack(vector bool short __a, vector bool short __b) {
1950 vector bool char __ac = (vector bool char)__a;
1951 vector bool char __bc = (vector bool char)__b;
1952 return (vector bool char)(
1953 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1954 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1957 static inline __ATTRS_o_ai vector unsigned char
1958 vec_pack(vector unsigned short __a, vector unsigned short __b) {
1959 vector unsigned char __ac = (vector unsigned char)__a;
1960 vector unsigned char __bc = (vector unsigned char)__b;
1961 return (vector unsigned char)(
1962 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1963 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1966 static inline __ATTRS_o_ai vector signed short
1967 vec_pack(vector signed int __a, vector signed int __b) {
1968 vector signed short __ac = (vector signed short)__a;
1969 vector signed short __bc = (vector signed short)__b;
1970 return (vector signed short)(
1971 __ac[1], __ac[3], __ac[5], __ac[7],
1972 __bc[1], __bc[3], __bc[5], __bc[7]);
1975 static inline __ATTRS_o_ai vector bool short
1976 vec_pack(vector bool int __a, vector bool int __b) {
1977 vector bool short __ac = (vector bool short)__a;
1978 vector bool short __bc = (vector bool short)__b;
1979 return (vector bool short)(
1980 __ac[1], __ac[3], __ac[5], __ac[7],
1981 __bc[1], __bc[3], __bc[5], __bc[7]);
1984 static inline __ATTRS_o_ai vector unsigned short
1985 vec_pack(vector unsigned int __a, vector unsigned int __b) {
1986 vector unsigned short __ac = (vector unsigned short)__a;
1987 vector unsigned short __bc = (vector unsigned short)__b;
1988 return (vector unsigned short)(
1989 __ac[1], __ac[3], __ac[5], __ac[7],
1990 __bc[1], __bc[3], __bc[5], __bc[7]);
1993 static inline __ATTRS_o_ai vector signed int
1994 vec_pack(vector signed long long __a, vector signed long long __b) {
1995 vector signed int __ac = (vector signed int)__a;
1996 vector signed int __bc = (vector signed int)__b;
1997 return (vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2000 static inline __ATTRS_o_ai vector bool int
2001 vec_pack(vector bool long long __a, vector bool long long __b) {
2002 vector bool int __ac = (vector bool int)__a;
2003 vector bool int __bc = (vector bool int)__b;
2004 return (vector bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2007 static inline __ATTRS_o_ai vector unsigned int
2008 vec_pack(vector unsigned long long __a, vector unsigned long long __b) {
2009 vector unsigned int __ac = (vector unsigned int)__a;
2010 vector unsigned int __bc = (vector unsigned int)__b;
2011 return (vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2014 /*-- vec_packs --------------------------------------------------------------*/
2016 static inline __ATTRS_o_ai vector signed char
2017 vec_packs(vector signed short __a, vector signed short __b) {
2018 return __builtin_s390_vpksh(__a, __b);
2021 static inline __ATTRS_o_ai vector unsigned char
2022 vec_packs(vector unsigned short __a, vector unsigned short __b) {
2023 return __builtin_s390_vpklsh(__a, __b);
2026 static inline __ATTRS_o_ai vector signed short
2027 vec_packs(vector signed int __a, vector signed int __b) {
2028 return __builtin_s390_vpksf(__a, __b);
2031 static inline __ATTRS_o_ai vector unsigned short
2032 vec_packs(vector unsigned int __a, vector unsigned int __b) {
2033 return __builtin_s390_vpklsf(__a, __b);
2036 static inline __ATTRS_o_ai vector signed int
2037 vec_packs(vector signed long long __a, vector signed long long __b) {
2038 return __builtin_s390_vpksg(__a, __b);
2041 static inline __ATTRS_o_ai vector unsigned int
2042 vec_packs(vector unsigned long long __a, vector unsigned long long __b) {
2043 return __builtin_s390_vpklsg(__a, __b);
2046 /*-- vec_packs_cc -----------------------------------------------------------*/
2048 static inline __ATTRS_o_ai vector signed char
2049 vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) {
2050 return __builtin_s390_vpkshs(__a, __b, __cc);
2053 static inline __ATTRS_o_ai vector unsigned char
2054 vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
2055 return __builtin_s390_vpklshs(__a, __b, __cc);
2058 static inline __ATTRS_o_ai vector signed short
2059 vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) {
2060 return __builtin_s390_vpksfs(__a, __b, __cc);
2063 static inline __ATTRS_o_ai vector unsigned short
2064 vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
2065 return __builtin_s390_vpklsfs(__a, __b, __cc);
2068 static inline __ATTRS_o_ai vector signed int
2069 vec_packs_cc(vector signed long long __a, vector signed long long __b,
2071 return __builtin_s390_vpksgs(__a, __b, __cc);
2074 static inline __ATTRS_o_ai vector unsigned int
2075 vec_packs_cc(vector unsigned long long __a, vector unsigned long long __b,
2077 return __builtin_s390_vpklsgs(__a, __b, __cc);
2080 /*-- vec_packsu -------------------------------------------------------------*/
2082 static inline __ATTRS_o_ai vector unsigned char
2083 vec_packsu(vector signed short __a, vector signed short __b) {
2084 const vector signed short __zero = (vector signed short)0;
2085 return __builtin_s390_vpklsh(
2086 (vector unsigned short)(__a >= __zero) & (vector unsigned short)__a,
2087 (vector unsigned short)(__b >= __zero) & (vector unsigned short)__b);
2090 static inline __ATTRS_o_ai vector unsigned char
2091 vec_packsu(vector unsigned short __a, vector unsigned short __b) {
2092 return __builtin_s390_vpklsh(__a, __b);
2095 static inline __ATTRS_o_ai vector unsigned short
2096 vec_packsu(vector signed int __a, vector signed int __b) {
2097 const vector signed int __zero = (vector signed int)0;
2098 return __builtin_s390_vpklsf(
2099 (vector unsigned int)(__a >= __zero) & (vector unsigned int)__a,
2100 (vector unsigned int)(__b >= __zero) & (vector unsigned int)__b);
2103 static inline __ATTRS_o_ai vector unsigned short
2104 vec_packsu(vector unsigned int __a, vector unsigned int __b) {
2105 return __builtin_s390_vpklsf(__a, __b);
2108 static inline __ATTRS_o_ai vector unsigned int
2109 vec_packsu(vector signed long long __a, vector signed long long __b) {
2110 const vector signed long long __zero = (vector signed long long)0;
2111 return __builtin_s390_vpklsg(
2112 (vector unsigned long long)(__a >= __zero) &
2113 (vector unsigned long long)__a,
2114 (vector unsigned long long)(__b >= __zero) &
2115 (vector unsigned long long)__b);
2118 static inline __ATTRS_o_ai vector unsigned int
2119 vec_packsu(vector unsigned long long __a, vector unsigned long long __b) {
2120 return __builtin_s390_vpklsg(__a, __b);
2123 /*-- vec_packsu_cc ----------------------------------------------------------*/
2125 static inline __ATTRS_o_ai vector unsigned char
2126 vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
2127 return __builtin_s390_vpklshs(__a, __b, __cc);
2130 static inline __ATTRS_o_ai vector unsigned short
2131 vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
2132 return __builtin_s390_vpklsfs(__a, __b, __cc);
2135 static inline __ATTRS_o_ai vector unsigned int
2136 vec_packsu_cc(vector unsigned long long __a, vector unsigned long long __b,
2138 return __builtin_s390_vpklsgs(__a, __b, __cc);
2141 /*-- vec_unpackh ------------------------------------------------------------*/
2143 static inline __ATTRS_o_ai vector signed short
2144 vec_unpackh(vector signed char __a) {
2145 return __builtin_s390_vuphb(__a);
2148 static inline __ATTRS_o_ai vector bool short
2149 vec_unpackh(vector bool char __a) {
2150 return (vector bool short)__builtin_s390_vuphb((vector signed char)__a);
2153 static inline __ATTRS_o_ai vector unsigned short
2154 vec_unpackh(vector unsigned char __a) {
2155 return __builtin_s390_vuplhb(__a);
2158 static inline __ATTRS_o_ai vector signed int
2159 vec_unpackh(vector signed short __a) {
2160 return __builtin_s390_vuphh(__a);
2163 static inline __ATTRS_o_ai vector bool int
2164 vec_unpackh(vector bool short __a) {
2165 return (vector bool int)__builtin_s390_vuphh((vector signed short)__a);
2168 static inline __ATTRS_o_ai vector unsigned int
2169 vec_unpackh(vector unsigned short __a) {
2170 return __builtin_s390_vuplhh(__a);
2173 static inline __ATTRS_o_ai vector signed long long
2174 vec_unpackh(vector signed int __a) {
2175 return __builtin_s390_vuphf(__a);
2178 static inline __ATTRS_o_ai vector bool long long
2179 vec_unpackh(vector bool int __a) {
2180 return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a);
2183 static inline __ATTRS_o_ai vector unsigned long long
2184 vec_unpackh(vector unsigned int __a) {
2185 return __builtin_s390_vuplhf(__a);
2188 /*-- vec_unpackl ------------------------------------------------------------*/
2190 static inline __ATTRS_o_ai vector signed short
2191 vec_unpackl(vector signed char __a) {
2192 return __builtin_s390_vuplb(__a);
2195 static inline __ATTRS_o_ai vector bool short
2196 vec_unpackl(vector bool char __a) {
2197 return (vector bool short)__builtin_s390_vuplb((vector signed char)__a);
2200 static inline __ATTRS_o_ai vector unsigned short
2201 vec_unpackl(vector unsigned char __a) {
2202 return __builtin_s390_vupllb(__a);
2205 static inline __ATTRS_o_ai vector signed int
2206 vec_unpackl(vector signed short __a) {
2207 return __builtin_s390_vuplhw(__a);
2210 static inline __ATTRS_o_ai vector bool int
2211 vec_unpackl(vector bool short __a) {
2212 return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a);
2215 static inline __ATTRS_o_ai vector unsigned int
2216 vec_unpackl(vector unsigned short __a) {
2217 return __builtin_s390_vupllh(__a);
2220 static inline __ATTRS_o_ai vector signed long long
2221 vec_unpackl(vector signed int __a) {
2222 return __builtin_s390_vuplf(__a);
2225 static inline __ATTRS_o_ai vector bool long long
2226 vec_unpackl(vector bool int __a) {
2227 return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a);
2230 static inline __ATTRS_o_ai vector unsigned long long
2231 vec_unpackl(vector unsigned int __a) {
2232 return __builtin_s390_vupllf(__a);
2235 /*-- vec_cmpeq --------------------------------------------------------------*/
2237 static inline __ATTRS_o_ai vector bool char
2238 vec_cmpeq(vector bool char __a, vector bool char __b) {
2239 return (vector bool char)(__a == __b);
2242 static inline __ATTRS_o_ai vector bool char
2243 vec_cmpeq(vector signed char __a, vector signed char __b) {
2244 return (vector bool char)(__a == __b);
2247 static inline __ATTRS_o_ai vector bool char
2248 vec_cmpeq(vector unsigned char __a, vector unsigned char __b) {
2249 return (vector bool char)(__a == __b);
2252 static inline __ATTRS_o_ai vector bool short
2253 vec_cmpeq(vector bool short __a, vector bool short __b) {
2254 return (vector bool short)(__a == __b);
2257 static inline __ATTRS_o_ai vector bool short
2258 vec_cmpeq(vector signed short __a, vector signed short __b) {
2259 return (vector bool short)(__a == __b);
2262 static inline __ATTRS_o_ai vector bool short
2263 vec_cmpeq(vector unsigned short __a, vector unsigned short __b) {
2264 return (vector bool short)(__a == __b);
2267 static inline __ATTRS_o_ai vector bool int
2268 vec_cmpeq(vector bool int __a, vector bool int __b) {
2269 return (vector bool int)(__a == __b);
2272 static inline __ATTRS_o_ai vector bool int
2273 vec_cmpeq(vector signed int __a, vector signed int __b) {
2274 return (vector bool int)(__a == __b);
2277 static inline __ATTRS_o_ai vector bool int
2278 vec_cmpeq(vector unsigned int __a, vector unsigned int __b) {
2279 return (vector bool int)(__a == __b);
2282 static inline __ATTRS_o_ai vector bool long long
2283 vec_cmpeq(vector bool long long __a, vector bool long long __b) {
2284 return (vector bool long long)(__a == __b);
2287 static inline __ATTRS_o_ai vector bool long long
2288 vec_cmpeq(vector signed long long __a, vector signed long long __b) {
2289 return (vector bool long long)(__a == __b);
2292 static inline __ATTRS_o_ai vector bool long long
2293 vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
2294 return (vector bool long long)(__a == __b);
2298 static inline __ATTRS_o_ai vector bool int
2299 vec_cmpeq(vector float __a, vector float __b) {
2300 return (vector bool int)(__a == __b);
2304 static inline __ATTRS_o_ai vector bool long long
2305 vec_cmpeq(vector double __a, vector double __b) {
2306 return (vector bool long long)(__a == __b);
2309 /*-- vec_cmpge --------------------------------------------------------------*/
2311 static inline __ATTRS_o_ai vector bool char
2312 vec_cmpge(vector signed char __a, vector signed char __b) {
2313 return (vector bool char)(__a >= __b);
2316 static inline __ATTRS_o_ai vector bool char
2317 vec_cmpge(vector unsigned char __a, vector unsigned char __b) {
2318 return (vector bool char)(__a >= __b);
2321 static inline __ATTRS_o_ai vector bool short
2322 vec_cmpge(vector signed short __a, vector signed short __b) {
2323 return (vector bool short)(__a >= __b);
2326 static inline __ATTRS_o_ai vector bool short
2327 vec_cmpge(vector unsigned short __a, vector unsigned short __b) {
2328 return (vector bool short)(__a >= __b);
2331 static inline __ATTRS_o_ai vector bool int
2332 vec_cmpge(vector signed int __a, vector signed int __b) {
2333 return (vector bool int)(__a >= __b);
2336 static inline __ATTRS_o_ai vector bool int
2337 vec_cmpge(vector unsigned int __a, vector unsigned int __b) {
2338 return (vector bool int)(__a >= __b);
2341 static inline __ATTRS_o_ai vector bool long long
2342 vec_cmpge(vector signed long long __a, vector signed long long __b) {
2343 return (vector bool long long)(__a >= __b);
2346 static inline __ATTRS_o_ai vector bool long long
2347 vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) {
2348 return (vector bool long long)(__a >= __b);
2352 static inline __ATTRS_o_ai vector bool int
2353 vec_cmpge(vector float __a, vector float __b) {
2354 return (vector bool int)(__a >= __b);
2358 static inline __ATTRS_o_ai vector bool long long
2359 vec_cmpge(vector double __a, vector double __b) {
2360 return (vector bool long long)(__a >= __b);
2363 /*-- vec_cmpgt --------------------------------------------------------------*/
2365 static inline __ATTRS_o_ai vector bool char
2366 vec_cmpgt(vector signed char __a, vector signed char __b) {
2367 return (vector bool char)(__a > __b);
2370 static inline __ATTRS_o_ai vector bool char
2371 vec_cmpgt(vector unsigned char __a, vector unsigned char __b) {
2372 return (vector bool char)(__a > __b);
2375 static inline __ATTRS_o_ai vector bool short
2376 vec_cmpgt(vector signed short __a, vector signed short __b) {
2377 return (vector bool short)(__a > __b);
2380 static inline __ATTRS_o_ai vector bool short
2381 vec_cmpgt(vector unsigned short __a, vector unsigned short __b) {
2382 return (vector bool short)(__a > __b);
2385 static inline __ATTRS_o_ai vector bool int
2386 vec_cmpgt(vector signed int __a, vector signed int __b) {
2387 return (vector bool int)(__a > __b);
2390 static inline __ATTRS_o_ai vector bool int
2391 vec_cmpgt(vector unsigned int __a, vector unsigned int __b) {
2392 return (vector bool int)(__a > __b);
2395 static inline __ATTRS_o_ai vector bool long long
2396 vec_cmpgt(vector signed long long __a, vector signed long long __b) {
2397 return (vector bool long long)(__a > __b);
2400 static inline __ATTRS_o_ai vector bool long long
2401 vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
2402 return (vector bool long long)(__a > __b);
2406 static inline __ATTRS_o_ai vector bool int
2407 vec_cmpgt(vector float __a, vector float __b) {
2408 return (vector bool int)(__a > __b);
2412 static inline __ATTRS_o_ai vector bool long long
2413 vec_cmpgt(vector double __a, vector double __b) {
2414 return (vector bool long long)(__a > __b);
2417 /*-- vec_cmple --------------------------------------------------------------*/
2419 static inline __ATTRS_o_ai vector bool char
2420 vec_cmple(vector signed char __a, vector signed char __b) {
2421 return (vector bool char)(__a <= __b);
2424 static inline __ATTRS_o_ai vector bool char
2425 vec_cmple(vector unsigned char __a, vector unsigned char __b) {
2426 return (vector bool char)(__a <= __b);
2429 static inline __ATTRS_o_ai vector bool short
2430 vec_cmple(vector signed short __a, vector signed short __b) {
2431 return (vector bool short)(__a <= __b);
2434 static inline __ATTRS_o_ai vector bool short
2435 vec_cmple(vector unsigned short __a, vector unsigned short __b) {
2436 return (vector bool short)(__a <= __b);
2439 static inline __ATTRS_o_ai vector bool int
2440 vec_cmple(vector signed int __a, vector signed int __b) {
2441 return (vector bool int)(__a <= __b);
2444 static inline __ATTRS_o_ai vector bool int
2445 vec_cmple(vector unsigned int __a, vector unsigned int __b) {
2446 return (vector bool int)(__a <= __b);
2449 static inline __ATTRS_o_ai vector bool long long
2450 vec_cmple(vector signed long long __a, vector signed long long __b) {
2451 return (vector bool long long)(__a <= __b);
2454 static inline __ATTRS_o_ai vector bool long long
2455 vec_cmple(vector unsigned long long __a, vector unsigned long long __b) {
2456 return (vector bool long long)(__a <= __b);
2460 static inline __ATTRS_o_ai vector bool int
2461 vec_cmple(vector float __a, vector float __b) {
2462 return (vector bool int)(__a <= __b);
2466 static inline __ATTRS_o_ai vector bool long long
2467 vec_cmple(vector double __a, vector double __b) {
2468 return (vector bool long long)(__a <= __b);
2471 /*-- vec_cmplt --------------------------------------------------------------*/
2473 static inline __ATTRS_o_ai vector bool char
2474 vec_cmplt(vector signed char __a, vector signed char __b) {
2475 return (vector bool char)(__a < __b);
2478 static inline __ATTRS_o_ai vector bool char
2479 vec_cmplt(vector unsigned char __a, vector unsigned char __b) {
2480 return (vector bool char)(__a < __b);
2483 static inline __ATTRS_o_ai vector bool short
2484 vec_cmplt(vector signed short __a, vector signed short __b) {
2485 return (vector bool short)(__a < __b);
2488 static inline __ATTRS_o_ai vector bool short
2489 vec_cmplt(vector unsigned short __a, vector unsigned short __b) {
2490 return (vector bool short)(__a < __b);
2493 static inline __ATTRS_o_ai vector bool int
2494 vec_cmplt(vector signed int __a, vector signed int __b) {
2495 return (vector bool int)(__a < __b);
2498 static inline __ATTRS_o_ai vector bool int
2499 vec_cmplt(vector unsigned int __a, vector unsigned int __b) {
2500 return (vector bool int)(__a < __b);
2503 static inline __ATTRS_o_ai vector bool long long
2504 vec_cmplt(vector signed long long __a, vector signed long long __b) {
2505 return (vector bool long long)(__a < __b);
2508 static inline __ATTRS_o_ai vector bool long long
2509 vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
2510 return (vector bool long long)(__a < __b);
2514 static inline __ATTRS_o_ai vector bool int
2515 vec_cmplt(vector float __a, vector float __b) {
2516 return (vector bool int)(__a < __b);
2520 static inline __ATTRS_o_ai vector bool long long
2521 vec_cmplt(vector double __a, vector double __b) {
2522 return (vector bool long long)(__a < __b);
2525 /*-- vec_all_eq -------------------------------------------------------------*/
2527 static inline __ATTRS_o_ai int
2528 vec_all_eq(vector signed char __a, vector signed char __b) {
2530 __builtin_s390_vceqbs(__a, __b, &__cc);
2534 // This prototype is deprecated.
2535 static inline __ATTRS_o_ai int
2536 vec_all_eq(vector signed char __a, vector bool char __b) {
2538 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2542 // This prototype is deprecated.
2543 static inline __ATTRS_o_ai int
2544 vec_all_eq(vector bool char __a, vector signed char __b) {
2546 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2550 static inline __ATTRS_o_ai int
2551 vec_all_eq(vector unsigned char __a, vector unsigned char __b) {
2553 __builtin_s390_vceqbs((vector signed char)__a,
2554 (vector signed char)__b, &__cc);
2558 // This prototype is deprecated.
2559 static inline __ATTRS_o_ai int
2560 vec_all_eq(vector unsigned char __a, vector bool char __b) {
2562 __builtin_s390_vceqbs((vector signed char)__a,
2563 (vector signed char)__b, &__cc);
2567 // This prototype is deprecated.
2568 static inline __ATTRS_o_ai int
2569 vec_all_eq(vector bool char __a, vector unsigned char __b) {
2571 __builtin_s390_vceqbs((vector signed char)__a,
2572 (vector signed char)__b, &__cc);
2576 static inline __ATTRS_o_ai int
2577 vec_all_eq(vector bool char __a, vector bool char __b) {
2579 __builtin_s390_vceqbs((vector signed char)__a,
2580 (vector signed char)__b, &__cc);
2584 static inline __ATTRS_o_ai int
2585 vec_all_eq(vector signed short __a, vector signed short __b) {
2587 __builtin_s390_vceqhs(__a, __b, &__cc);
2591 // This prototype is deprecated.
2592 static inline __ATTRS_o_ai int
2593 vec_all_eq(vector signed short __a, vector bool short __b) {
2595 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2599 // This prototype is deprecated.
2600 static inline __ATTRS_o_ai int
2601 vec_all_eq(vector bool short __a, vector signed short __b) {
2603 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2607 static inline __ATTRS_o_ai int
2608 vec_all_eq(vector unsigned short __a, vector unsigned short __b) {
2610 __builtin_s390_vceqhs((vector signed short)__a,
2611 (vector signed short)__b, &__cc);
2615 // This prototype is deprecated.
2616 static inline __ATTRS_o_ai int
2617 vec_all_eq(vector unsigned short __a, vector bool short __b) {
2619 __builtin_s390_vceqhs((vector signed short)__a,
2620 (vector signed short)__b, &__cc);
2624 // This prototype is deprecated.
2625 static inline __ATTRS_o_ai int
2626 vec_all_eq(vector bool short __a, vector unsigned short __b) {
2628 __builtin_s390_vceqhs((vector signed short)__a,
2629 (vector signed short)__b, &__cc);
2633 static inline __ATTRS_o_ai int
2634 vec_all_eq(vector bool short __a, vector bool short __b) {
2636 __builtin_s390_vceqhs((vector signed short)__a,
2637 (vector signed short)__b, &__cc);
2641 static inline __ATTRS_o_ai int
2642 vec_all_eq(vector signed int __a, vector signed int __b) {
2644 __builtin_s390_vceqfs(__a, __b, &__cc);
2648 // This prototype is deprecated.
2649 static inline __ATTRS_o_ai int
2650 vec_all_eq(vector signed int __a, vector bool int __b) {
2652 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2656 // This prototype is deprecated.
2657 static inline __ATTRS_o_ai int
2658 vec_all_eq(vector bool int __a, vector signed int __b) {
2660 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2664 static inline __ATTRS_o_ai int
2665 vec_all_eq(vector unsigned int __a, vector unsigned int __b) {
2667 __builtin_s390_vceqfs((vector signed int)__a,
2668 (vector signed int)__b, &__cc);
2672 // This prototype is deprecated.
2673 static inline __ATTRS_o_ai int
2674 vec_all_eq(vector unsigned int __a, vector bool int __b) {
2676 __builtin_s390_vceqfs((vector signed int)__a,
2677 (vector signed int)__b, &__cc);
2681 // This prototype is deprecated.
2682 static inline __ATTRS_o_ai int
2683 vec_all_eq(vector bool int __a, vector unsigned int __b) {
2685 __builtin_s390_vceqfs((vector signed int)__a,
2686 (vector signed int)__b, &__cc);
2690 static inline __ATTRS_o_ai int
2691 vec_all_eq(vector bool int __a, vector bool int __b) {
2693 __builtin_s390_vceqfs((vector signed int)__a,
2694 (vector signed int)__b, &__cc);
2698 static inline __ATTRS_o_ai int
2699 vec_all_eq(vector signed long long __a, vector signed long long __b) {
2701 __builtin_s390_vceqgs(__a, __b, &__cc);
2705 // This prototype is deprecated.
2706 static inline __ATTRS_o_ai int
2707 vec_all_eq(vector signed long long __a, vector bool long long __b) {
2709 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2713 // This prototype is deprecated.
2714 static inline __ATTRS_o_ai int
2715 vec_all_eq(vector bool long long __a, vector signed long long __b) {
2717 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2721 static inline __ATTRS_o_ai int
2722 vec_all_eq(vector unsigned long long __a, vector unsigned long long __b) {
2724 __builtin_s390_vceqgs((vector signed long long)__a,
2725 (vector signed long long)__b, &__cc);
2729 // This prototype is deprecated.
2730 static inline __ATTRS_o_ai int
2731 vec_all_eq(vector unsigned long long __a, vector bool long long __b) {
2733 __builtin_s390_vceqgs((vector signed long long)__a,
2734 (vector signed long long)__b, &__cc);
2738 // This prototype is deprecated.
2739 static inline __ATTRS_o_ai int
2740 vec_all_eq(vector bool long long __a, vector unsigned long long __b) {
2742 __builtin_s390_vceqgs((vector signed long long)__a,
2743 (vector signed long long)__b, &__cc);
2747 static inline __ATTRS_o_ai int
2748 vec_all_eq(vector bool long long __a, vector bool long long __b) {
2750 __builtin_s390_vceqgs((vector signed long long)__a,
2751 (vector signed long long)__b, &__cc);
2756 static inline __ATTRS_o_ai int
2757 vec_all_eq(vector float __a, vector float __b) {
2759 __builtin_s390_vfcesbs(__a, __b, &__cc);
2764 static inline __ATTRS_o_ai int
2765 vec_all_eq(vector double __a, vector double __b) {
2767 __builtin_s390_vfcedbs(__a, __b, &__cc);
2771 /*-- vec_all_ne -------------------------------------------------------------*/
2773 static inline __ATTRS_o_ai int
2774 vec_all_ne(vector signed char __a, vector signed char __b) {
2776 __builtin_s390_vceqbs(__a, __b, &__cc);
2780 // This prototype is deprecated.
2781 static inline __ATTRS_o_ai int
2782 vec_all_ne(vector signed char __a, vector bool char __b) {
2784 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2788 // This prototype is deprecated.
2789 static inline __ATTRS_o_ai int
2790 vec_all_ne(vector bool char __a, vector signed char __b) {
2792 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2796 static inline __ATTRS_o_ai int
2797 vec_all_ne(vector unsigned char __a, vector unsigned char __b) {
2799 __builtin_s390_vceqbs((vector signed char)__a,
2800 (vector signed char)__b, &__cc);
2804 // This prototype is deprecated.
2805 static inline __ATTRS_o_ai int
2806 vec_all_ne(vector unsigned char __a, vector bool char __b) {
2808 __builtin_s390_vceqbs((vector signed char)__a,
2809 (vector signed char)__b, &__cc);
2813 // This prototype is deprecated.
2814 static inline __ATTRS_o_ai int
2815 vec_all_ne(vector bool char __a, vector unsigned char __b) {
2817 __builtin_s390_vceqbs((vector signed char)__a,
2818 (vector signed char)__b, &__cc);
2822 static inline __ATTRS_o_ai int
2823 vec_all_ne(vector bool char __a, vector bool char __b) {
2825 __builtin_s390_vceqbs((vector signed char)__a,
2826 (vector signed char)__b, &__cc);
2830 static inline __ATTRS_o_ai int
2831 vec_all_ne(vector signed short __a, vector signed short __b) {
2833 __builtin_s390_vceqhs(__a, __b, &__cc);
2837 // This prototype is deprecated.
2838 static inline __ATTRS_o_ai int
2839 vec_all_ne(vector signed short __a, vector bool short __b) {
2841 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2845 // This prototype is deprecated.
2846 static inline __ATTRS_o_ai int
2847 vec_all_ne(vector bool short __a, vector signed short __b) {
2849 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2853 static inline __ATTRS_o_ai int
2854 vec_all_ne(vector unsigned short __a, vector unsigned short __b) {
2856 __builtin_s390_vceqhs((vector signed short)__a,
2857 (vector signed short)__b, &__cc);
2861 // This prototype is deprecated.
2862 static inline __ATTRS_o_ai int
2863 vec_all_ne(vector unsigned short __a, vector bool short __b) {
2865 __builtin_s390_vceqhs((vector signed short)__a,
2866 (vector signed short)__b, &__cc);
2870 // This prototype is deprecated.
2871 static inline __ATTRS_o_ai int
2872 vec_all_ne(vector bool short __a, vector unsigned short __b) {
2874 __builtin_s390_vceqhs((vector signed short)__a,
2875 (vector signed short)__b, &__cc);
2879 static inline __ATTRS_o_ai int
2880 vec_all_ne(vector bool short __a, vector bool short __b) {
2882 __builtin_s390_vceqhs((vector signed short)__a,
2883 (vector signed short)__b, &__cc);
2887 static inline __ATTRS_o_ai int
2888 vec_all_ne(vector signed int __a, vector signed int __b) {
2890 __builtin_s390_vceqfs(__a, __b, &__cc);
2894 // This prototype is deprecated.
2895 static inline __ATTRS_o_ai int
2896 vec_all_ne(vector signed int __a, vector bool int __b) {
2898 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2902 // This prototype is deprecated.
2903 static inline __ATTRS_o_ai int
2904 vec_all_ne(vector bool int __a, vector signed int __b) {
2906 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2910 static inline __ATTRS_o_ai int
2911 vec_all_ne(vector unsigned int __a, vector unsigned int __b) {
2913 __builtin_s390_vceqfs((vector signed int)__a,
2914 (vector signed int)__b, &__cc);
2918 // This prototype is deprecated.
2919 static inline __ATTRS_o_ai int
2920 vec_all_ne(vector unsigned int __a, vector bool int __b) {
2922 __builtin_s390_vceqfs((vector signed int)__a,
2923 (vector signed int)__b, &__cc);
2927 // This prototype is deprecated.
2928 static inline __ATTRS_o_ai int
2929 vec_all_ne(vector bool int __a, vector unsigned int __b) {
2931 __builtin_s390_vceqfs((vector signed int)__a,
2932 (vector signed int)__b, &__cc);
2936 static inline __ATTRS_o_ai int
2937 vec_all_ne(vector bool int __a, vector bool int __b) {
2939 __builtin_s390_vceqfs((vector signed int)__a,
2940 (vector signed int)__b, &__cc);
2944 static inline __ATTRS_o_ai int
2945 vec_all_ne(vector signed long long __a, vector signed long long __b) {
2947 __builtin_s390_vceqgs(__a, __b, &__cc);
2951 // This prototype is deprecated.
2952 static inline __ATTRS_o_ai int
2953 vec_all_ne(vector signed long long __a, vector bool long long __b) {
2955 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2959 // This prototype is deprecated.
2960 static inline __ATTRS_o_ai int
2961 vec_all_ne(vector bool long long __a, vector signed long long __b) {
2963 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2967 static inline __ATTRS_o_ai int
2968 vec_all_ne(vector unsigned long long __a, vector unsigned long long __b) {
2970 __builtin_s390_vceqgs((vector signed long long)__a,
2971 (vector signed long long)__b, &__cc);
2975 // This prototype is deprecated.
2976 static inline __ATTRS_o_ai int
2977 vec_all_ne(vector unsigned long long __a, vector bool long long __b) {
2979 __builtin_s390_vceqgs((vector signed long long)__a,
2980 (vector signed long long)__b, &__cc);
2984 // This prototype is deprecated.
2985 static inline __ATTRS_o_ai int
2986 vec_all_ne(vector bool long long __a, vector unsigned long long __b) {
2988 __builtin_s390_vceqgs((vector signed long long)__a,
2989 (vector signed long long)__b, &__cc);
2993 static inline __ATTRS_o_ai int
2994 vec_all_ne(vector bool long long __a, vector bool long long __b) {
2996 __builtin_s390_vceqgs((vector signed long long)__a,
2997 (vector signed long long)__b, &__cc);
3002 static inline __ATTRS_o_ai int
3003 vec_all_ne(vector float __a, vector float __b) {
3005 __builtin_s390_vfcesbs(__a, __b, &__cc);
3010 static inline __ATTRS_o_ai int
3011 vec_all_ne(vector double __a, vector double __b) {
3013 __builtin_s390_vfcedbs(__a, __b, &__cc);
3017 /*-- vec_all_ge -------------------------------------------------------------*/
3019 static inline __ATTRS_o_ai int
3020 vec_all_ge(vector signed char __a, vector signed char __b) {
3022 __builtin_s390_vchbs(__b, __a, &__cc);
3026 // This prototype is deprecated.
3027 static inline __ATTRS_o_ai int
3028 vec_all_ge(vector signed char __a, vector bool char __b) {
3030 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3034 // This prototype is deprecated.
3035 static inline __ATTRS_o_ai int
3036 vec_all_ge(vector bool char __a, vector signed char __b) {
3038 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3042 static inline __ATTRS_o_ai int
3043 vec_all_ge(vector unsigned char __a, vector unsigned char __b) {
3045 __builtin_s390_vchlbs(__b, __a, &__cc);
3049 // This prototype is deprecated.
3050 static inline __ATTRS_o_ai int
3051 vec_all_ge(vector unsigned char __a, vector bool char __b) {
3053 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3057 // This prototype is deprecated.
3058 static inline __ATTRS_o_ai int
3059 vec_all_ge(vector bool char __a, vector unsigned char __b) {
3061 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3065 // This prototype is deprecated.
3066 static inline __ATTRS_o_ai int
3067 vec_all_ge(vector bool char __a, vector bool char __b) {
3069 __builtin_s390_vchlbs((vector unsigned char)__b,
3070 (vector unsigned char)__a, &__cc);
3074 static inline __ATTRS_o_ai int
3075 vec_all_ge(vector signed short __a, vector signed short __b) {
3077 __builtin_s390_vchhs(__b, __a, &__cc);
3081 // This prototype is deprecated.
3082 static inline __ATTRS_o_ai int
3083 vec_all_ge(vector signed short __a, vector bool short __b) {
3085 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3089 // This prototype is deprecated.
3090 static inline __ATTRS_o_ai int
3091 vec_all_ge(vector bool short __a, vector signed short __b) {
3093 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3097 static inline __ATTRS_o_ai int
3098 vec_all_ge(vector unsigned short __a, vector unsigned short __b) {
3100 __builtin_s390_vchlhs(__b, __a, &__cc);
3104 // This prototype is deprecated.
3105 static inline __ATTRS_o_ai int
3106 vec_all_ge(vector unsigned short __a, vector bool short __b) {
3108 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3112 // This prototype is deprecated.
3113 static inline __ATTRS_o_ai int
3114 vec_all_ge(vector bool short __a, vector unsigned short __b) {
3116 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3120 // This prototype is deprecated.
3121 static inline __ATTRS_o_ai int
3122 vec_all_ge(vector bool short __a, vector bool short __b) {
3124 __builtin_s390_vchlhs((vector unsigned short)__b,
3125 (vector unsigned short)__a, &__cc);
3129 static inline __ATTRS_o_ai int
3130 vec_all_ge(vector signed int __a, vector signed int __b) {
3132 __builtin_s390_vchfs(__b, __a, &__cc);
3136 // This prototype is deprecated.
3137 static inline __ATTRS_o_ai int
3138 vec_all_ge(vector signed int __a, vector bool int __b) {
3140 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3144 // This prototype is deprecated.
3145 static inline __ATTRS_o_ai int
3146 vec_all_ge(vector bool int __a, vector signed int __b) {
3148 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3152 static inline __ATTRS_o_ai int
3153 vec_all_ge(vector unsigned int __a, vector unsigned int __b) {
3155 __builtin_s390_vchlfs(__b, __a, &__cc);
3159 // This prototype is deprecated.
3160 static inline __ATTRS_o_ai int
3161 vec_all_ge(vector unsigned int __a, vector bool int __b) {
3163 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3167 // This prototype is deprecated.
3168 static inline __ATTRS_o_ai int
3169 vec_all_ge(vector bool int __a, vector unsigned int __b) {
3171 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3175 // This prototype is deprecated.
3176 static inline __ATTRS_o_ai int
3177 vec_all_ge(vector bool int __a, vector bool int __b) {
3179 __builtin_s390_vchlfs((vector unsigned int)__b,
3180 (vector unsigned int)__a, &__cc);
3184 static inline __ATTRS_o_ai int
3185 vec_all_ge(vector signed long long __a, vector signed long long __b) {
3187 __builtin_s390_vchgs(__b, __a, &__cc);
3191 // This prototype is deprecated.
3192 static inline __ATTRS_o_ai int
3193 vec_all_ge(vector signed long long __a, vector bool long long __b) {
3195 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3199 // This prototype is deprecated.
3200 static inline __ATTRS_o_ai int
3201 vec_all_ge(vector bool long long __a, vector signed long long __b) {
3203 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3207 static inline __ATTRS_o_ai int
3208 vec_all_ge(vector unsigned long long __a, vector unsigned long long __b) {
3210 __builtin_s390_vchlgs(__b, __a, &__cc);
3214 // This prototype is deprecated.
3215 static inline __ATTRS_o_ai int
3216 vec_all_ge(vector unsigned long long __a, vector bool long long __b) {
3218 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3222 // This prototype is deprecated.
3223 static inline __ATTRS_o_ai int
3224 vec_all_ge(vector bool long long __a, vector unsigned long long __b) {
3226 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3230 // This prototype is deprecated.
3231 static inline __ATTRS_o_ai int
3232 vec_all_ge(vector bool long long __a, vector bool long long __b) {
3234 __builtin_s390_vchlgs((vector unsigned long long)__b,
3235 (vector unsigned long long)__a, &__cc);
3240 static inline __ATTRS_o_ai int
3241 vec_all_ge(vector float __a, vector float __b) {
3243 __builtin_s390_vfchesbs(__a, __b, &__cc);
3248 static inline __ATTRS_o_ai int
3249 vec_all_ge(vector double __a, vector double __b) {
3251 __builtin_s390_vfchedbs(__a, __b, &__cc);
3255 /*-- vec_all_gt -------------------------------------------------------------*/
3257 static inline __ATTRS_o_ai int
3258 vec_all_gt(vector signed char __a, vector signed char __b) {
3260 __builtin_s390_vchbs(__a, __b, &__cc);
3264 // This prototype is deprecated.
3265 static inline __ATTRS_o_ai int
3266 vec_all_gt(vector signed char __a, vector bool char __b) {
3268 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
3272 // This prototype is deprecated.
3273 static inline __ATTRS_o_ai int
3274 vec_all_gt(vector bool char __a, vector signed char __b) {
3276 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
3280 static inline __ATTRS_o_ai int
3281 vec_all_gt(vector unsigned char __a, vector unsigned char __b) {
3283 __builtin_s390_vchlbs(__a, __b, &__cc);
3287 // This prototype is deprecated.
3288 static inline __ATTRS_o_ai int
3289 vec_all_gt(vector unsigned char __a, vector bool char __b) {
3291 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
3295 // This prototype is deprecated.
3296 static inline __ATTRS_o_ai int
3297 vec_all_gt(vector bool char __a, vector unsigned char __b) {
3299 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
3303 // This prototype is deprecated.
3304 static inline __ATTRS_o_ai int
3305 vec_all_gt(vector bool char __a, vector bool char __b) {
3307 __builtin_s390_vchlbs((vector unsigned char)__a,
3308 (vector unsigned char)__b, &__cc);
3312 static inline __ATTRS_o_ai int
3313 vec_all_gt(vector signed short __a, vector signed short __b) {
3315 __builtin_s390_vchhs(__a, __b, &__cc);
3319 // This prototype is deprecated.
3320 static inline __ATTRS_o_ai int
3321 vec_all_gt(vector signed short __a, vector bool short __b) {
3323 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
3327 // This prototype is deprecated.
3328 static inline __ATTRS_o_ai int
3329 vec_all_gt(vector bool short __a, vector signed short __b) {
3331 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
3335 static inline __ATTRS_o_ai int
3336 vec_all_gt(vector unsigned short __a, vector unsigned short __b) {
3338 __builtin_s390_vchlhs(__a, __b, &__cc);
3342 // This prototype is deprecated.
3343 static inline __ATTRS_o_ai int
3344 vec_all_gt(vector unsigned short __a, vector bool short __b) {
3346 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3350 // This prototype is deprecated.
3351 static inline __ATTRS_o_ai int
3352 vec_all_gt(vector bool short __a, vector unsigned short __b) {
3354 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3358 // This prototype is deprecated.
3359 static inline __ATTRS_o_ai int
3360 vec_all_gt(vector bool short __a, vector bool short __b) {
3362 __builtin_s390_vchlhs((vector unsigned short)__a,
3363 (vector unsigned short)__b, &__cc);
3367 static inline __ATTRS_o_ai int
3368 vec_all_gt(vector signed int __a, vector signed int __b) {
3370 __builtin_s390_vchfs(__a, __b, &__cc);
3374 // This prototype is deprecated.
3375 static inline __ATTRS_o_ai int
3376 vec_all_gt(vector signed int __a, vector bool int __b) {
3378 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3382 // This prototype is deprecated.
3383 static inline __ATTRS_o_ai int
3384 vec_all_gt(vector bool int __a, vector signed int __b) {
3386 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3390 static inline __ATTRS_o_ai int
3391 vec_all_gt(vector unsigned int __a, vector unsigned int __b) {
3393 __builtin_s390_vchlfs(__a, __b, &__cc);
3397 // This prototype is deprecated.
3398 static inline __ATTRS_o_ai int
3399 vec_all_gt(vector unsigned int __a, vector bool int __b) {
3401 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3405 // This prototype is deprecated.
3406 static inline __ATTRS_o_ai int
3407 vec_all_gt(vector bool int __a, vector unsigned int __b) {
3409 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3413 // This prototype is deprecated.
3414 static inline __ATTRS_o_ai int
3415 vec_all_gt(vector bool int __a, vector bool int __b) {
3417 __builtin_s390_vchlfs((vector unsigned int)__a,
3418 (vector unsigned int)__b, &__cc);
3422 static inline __ATTRS_o_ai int
3423 vec_all_gt(vector signed long long __a, vector signed long long __b) {
3425 __builtin_s390_vchgs(__a, __b, &__cc);
3429 // This prototype is deprecated.
3430 static inline __ATTRS_o_ai int
3431 vec_all_gt(vector signed long long __a, vector bool long long __b) {
3433 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3437 // This prototype is deprecated.
3438 static inline __ATTRS_o_ai int
3439 vec_all_gt(vector bool long long __a, vector signed long long __b) {
3441 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3445 static inline __ATTRS_o_ai int
3446 vec_all_gt(vector unsigned long long __a, vector unsigned long long __b) {
3448 __builtin_s390_vchlgs(__a, __b, &__cc);
3452 // This prototype is deprecated.
3453 static inline __ATTRS_o_ai int
3454 vec_all_gt(vector unsigned long long __a, vector bool long long __b) {
3456 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3460 // This prototype is deprecated.
3461 static inline __ATTRS_o_ai int
3462 vec_all_gt(vector bool long long __a, vector unsigned long long __b) {
3464 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3468 // This prototype is deprecated.
3469 static inline __ATTRS_o_ai int
3470 vec_all_gt(vector bool long long __a, vector bool long long __b) {
3472 __builtin_s390_vchlgs((vector unsigned long long)__a,
3473 (vector unsigned long long)__b, &__cc);
3478 static inline __ATTRS_o_ai int
3479 vec_all_gt(vector float __a, vector float __b) {
3481 __builtin_s390_vfchsbs(__a, __b, &__cc);
3486 static inline __ATTRS_o_ai int
3487 vec_all_gt(vector double __a, vector double __b) {
3489 __builtin_s390_vfchdbs(__a, __b, &__cc);
3493 /*-- vec_all_le -------------------------------------------------------------*/
3495 static inline __ATTRS_o_ai int
3496 vec_all_le(vector signed char __a, vector signed char __b) {
3498 __builtin_s390_vchbs(__a, __b, &__cc);
3502 // This prototype is deprecated.
3503 static inline __ATTRS_o_ai int
3504 vec_all_le(vector signed char __a, vector bool char __b) {
3506 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
3510 // This prototype is deprecated.
3511 static inline __ATTRS_o_ai int
3512 vec_all_le(vector bool char __a, vector signed char __b) {
3514 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
3518 static inline __ATTRS_o_ai int
3519 vec_all_le(vector unsigned char __a, vector unsigned char __b) {
3521 __builtin_s390_vchlbs(__a, __b, &__cc);
3525 // This prototype is deprecated.
3526 static inline __ATTRS_o_ai int
3527 vec_all_le(vector unsigned char __a, vector bool char __b) {
3529 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
3533 // This prototype is deprecated.
3534 static inline __ATTRS_o_ai int
3535 vec_all_le(vector bool char __a, vector unsigned char __b) {
3537 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
3541 // This prototype is deprecated.
3542 static inline __ATTRS_o_ai int
3543 vec_all_le(vector bool char __a, vector bool char __b) {
3545 __builtin_s390_vchlbs((vector unsigned char)__a,
3546 (vector unsigned char)__b, &__cc);
3550 static inline __ATTRS_o_ai int
3551 vec_all_le(vector signed short __a, vector signed short __b) {
3553 __builtin_s390_vchhs(__a, __b, &__cc);
3557 // This prototype is deprecated.
3558 static inline __ATTRS_o_ai int
3559 vec_all_le(vector signed short __a, vector bool short __b) {
3561 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
3565 // This prototype is deprecated.
3566 static inline __ATTRS_o_ai int
3567 vec_all_le(vector bool short __a, vector signed short __b) {
3569 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
3573 static inline __ATTRS_o_ai int
3574 vec_all_le(vector unsigned short __a, vector unsigned short __b) {
3576 __builtin_s390_vchlhs(__a, __b, &__cc);
3580 // This prototype is deprecated.
3581 static inline __ATTRS_o_ai int
3582 vec_all_le(vector unsigned short __a, vector bool short __b) {
3584 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3588 // This prototype is deprecated.
3589 static inline __ATTRS_o_ai int
3590 vec_all_le(vector bool short __a, vector unsigned short __b) {
3592 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3596 // This prototype is deprecated.
3597 static inline __ATTRS_o_ai int
3598 vec_all_le(vector bool short __a, vector bool short __b) {
3600 __builtin_s390_vchlhs((vector unsigned short)__a,
3601 (vector unsigned short)__b, &__cc);
3605 static inline __ATTRS_o_ai int
3606 vec_all_le(vector signed int __a, vector signed int __b) {
3608 __builtin_s390_vchfs(__a, __b, &__cc);
3612 // This prototype is deprecated.
3613 static inline __ATTRS_o_ai int
3614 vec_all_le(vector signed int __a, vector bool int __b) {
3616 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3620 // This prototype is deprecated.
3621 static inline __ATTRS_o_ai int
3622 vec_all_le(vector bool int __a, vector signed int __b) {
3624 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3628 static inline __ATTRS_o_ai int
3629 vec_all_le(vector unsigned int __a, vector unsigned int __b) {
3631 __builtin_s390_vchlfs(__a, __b, &__cc);
3635 // This prototype is deprecated.
3636 static inline __ATTRS_o_ai int
3637 vec_all_le(vector unsigned int __a, vector bool int __b) {
3639 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3643 // This prototype is deprecated.
3644 static inline __ATTRS_o_ai int
3645 vec_all_le(vector bool int __a, vector unsigned int __b) {
3647 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3651 // This prototype is deprecated.
3652 static inline __ATTRS_o_ai int
3653 vec_all_le(vector bool int __a, vector bool int __b) {
3655 __builtin_s390_vchlfs((vector unsigned int)__a,
3656 (vector unsigned int)__b, &__cc);
3660 static inline __ATTRS_o_ai int
3661 vec_all_le(vector signed long long __a, vector signed long long __b) {
3663 __builtin_s390_vchgs(__a, __b, &__cc);
3667 // This prototype is deprecated.
3668 static inline __ATTRS_o_ai int
3669 vec_all_le(vector signed long long __a, vector bool long long __b) {
3671 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3675 // This prototype is deprecated.
3676 static inline __ATTRS_o_ai int
3677 vec_all_le(vector bool long long __a, vector signed long long __b) {
3679 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3683 static inline __ATTRS_o_ai int
3684 vec_all_le(vector unsigned long long __a, vector unsigned long long __b) {
3686 __builtin_s390_vchlgs(__a, __b, &__cc);
3690 // This prototype is deprecated.
3691 static inline __ATTRS_o_ai int
3692 vec_all_le(vector unsigned long long __a, vector bool long long __b) {
3694 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3698 // This prototype is deprecated.
3699 static inline __ATTRS_o_ai int
3700 vec_all_le(vector bool long long __a, vector unsigned long long __b) {
3702 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3706 // This prototype is deprecated.
3707 static inline __ATTRS_o_ai int
3708 vec_all_le(vector bool long long __a, vector bool long long __b) {
3710 __builtin_s390_vchlgs((vector unsigned long long)__a,
3711 (vector unsigned long long)__b, &__cc);
3716 static inline __ATTRS_o_ai int
3717 vec_all_le(vector float __a, vector float __b) {
3719 __builtin_s390_vfchesbs(__b, __a, &__cc);
3724 static inline __ATTRS_o_ai int
3725 vec_all_le(vector double __a, vector double __b) {
3727 __builtin_s390_vfchedbs(__b, __a, &__cc);
3731 /*-- vec_all_lt -------------------------------------------------------------*/
3733 static inline __ATTRS_o_ai int
3734 vec_all_lt(vector signed char __a, vector signed char __b) {
3736 __builtin_s390_vchbs(__b, __a, &__cc);
3740 // This prototype is deprecated.
3741 static inline __ATTRS_o_ai int
3742 vec_all_lt(vector signed char __a, vector bool char __b) {
3744 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3748 // This prototype is deprecated.
3749 static inline __ATTRS_o_ai int
3750 vec_all_lt(vector bool char __a, vector signed char __b) {
3752 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3756 static inline __ATTRS_o_ai int
3757 vec_all_lt(vector unsigned char __a, vector unsigned char __b) {
3759 __builtin_s390_vchlbs(__b, __a, &__cc);
3763 // This prototype is deprecated.
3764 static inline __ATTRS_o_ai int
3765 vec_all_lt(vector unsigned char __a, vector bool char __b) {
3767 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3771 // This prototype is deprecated.
3772 static inline __ATTRS_o_ai int
3773 vec_all_lt(vector bool char __a, vector unsigned char __b) {
3775 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3779 // This prototype is deprecated.
3780 static inline __ATTRS_o_ai int
3781 vec_all_lt(vector bool char __a, vector bool char __b) {
3783 __builtin_s390_vchlbs((vector unsigned char)__b,
3784 (vector unsigned char)__a, &__cc);
3788 static inline __ATTRS_o_ai int
3789 vec_all_lt(vector signed short __a, vector signed short __b) {
3791 __builtin_s390_vchhs(__b, __a, &__cc);
3795 // This prototype is deprecated.
3796 static inline __ATTRS_o_ai int
3797 vec_all_lt(vector signed short __a, vector bool short __b) {
3799 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3803 // This prototype is deprecated.
3804 static inline __ATTRS_o_ai int
3805 vec_all_lt(vector bool short __a, vector signed short __b) {
3807 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3811 static inline __ATTRS_o_ai int
3812 vec_all_lt(vector unsigned short __a, vector unsigned short __b) {
3814 __builtin_s390_vchlhs(__b, __a, &__cc);
3818 // This prototype is deprecated.
3819 static inline __ATTRS_o_ai int
3820 vec_all_lt(vector unsigned short __a, vector bool short __b) {
3822 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3826 // This prototype is deprecated.
3827 static inline __ATTRS_o_ai int
3828 vec_all_lt(vector bool short __a, vector unsigned short __b) {
3830 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3834 // This prototype is deprecated.
3835 static inline __ATTRS_o_ai int
3836 vec_all_lt(vector bool short __a, vector bool short __b) {
3838 __builtin_s390_vchlhs((vector unsigned short)__b,
3839 (vector unsigned short)__a, &__cc);
3843 static inline __ATTRS_o_ai int
3844 vec_all_lt(vector signed int __a, vector signed int __b) {
3846 __builtin_s390_vchfs(__b, __a, &__cc);
3850 // This prototype is deprecated.
3851 static inline __ATTRS_o_ai int
3852 vec_all_lt(vector signed int __a, vector bool int __b) {
3854 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3858 // This prototype is deprecated.
3859 static inline __ATTRS_o_ai int
3860 vec_all_lt(vector bool int __a, vector signed int __b) {
3862 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3866 static inline __ATTRS_o_ai int
3867 vec_all_lt(vector unsigned int __a, vector unsigned int __b) {
3869 __builtin_s390_vchlfs(__b, __a, &__cc);
3873 // This prototype is deprecated.
3874 static inline __ATTRS_o_ai int
3875 vec_all_lt(vector unsigned int __a, vector bool int __b) {
3877 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3881 // This prototype is deprecated.
3882 static inline __ATTRS_o_ai int
3883 vec_all_lt(vector bool int __a, vector unsigned int __b) {
3885 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3889 // This prototype is deprecated.
3890 static inline __ATTRS_o_ai int
3891 vec_all_lt(vector bool int __a, vector bool int __b) {
3893 __builtin_s390_vchlfs((vector unsigned int)__b,
3894 (vector unsigned int)__a, &__cc);
3898 static inline __ATTRS_o_ai int
3899 vec_all_lt(vector signed long long __a, vector signed long long __b) {
3901 __builtin_s390_vchgs(__b, __a, &__cc);
3905 // This prototype is deprecated.
3906 static inline __ATTRS_o_ai int
3907 vec_all_lt(vector signed long long __a, vector bool long long __b) {
3909 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3913 // This prototype is deprecated.
3914 static inline __ATTRS_o_ai int
3915 vec_all_lt(vector bool long long __a, vector signed long long __b) {
3917 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3921 static inline __ATTRS_o_ai int
3922 vec_all_lt(vector unsigned long long __a, vector unsigned long long __b) {
3924 __builtin_s390_vchlgs(__b, __a, &__cc);
3928 // This prototype is deprecated.
3929 static inline __ATTRS_o_ai int
3930 vec_all_lt(vector unsigned long long __a, vector bool long long __b) {
3932 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3936 // This prototype is deprecated.
3937 static inline __ATTRS_o_ai int
3938 vec_all_lt(vector bool long long __a, vector unsigned long long __b) {
3940 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3944 // This prototype is deprecated.
3945 static inline __ATTRS_o_ai int
3946 vec_all_lt(vector bool long long __a, vector bool long long __b) {
3948 __builtin_s390_vchlgs((vector unsigned long long)__b,
3949 (vector unsigned long long)__a, &__cc);
3954 static inline __ATTRS_o_ai int
3955 vec_all_lt(vector float __a, vector float __b) {
3957 __builtin_s390_vfchsbs(__b, __a, &__cc);
3962 static inline __ATTRS_o_ai int
3963 vec_all_lt(vector double __a, vector double __b) {
3965 __builtin_s390_vfchdbs(__b, __a, &__cc);
3969 /*-- vec_all_nge ------------------------------------------------------------*/
3972 static inline __ATTRS_o_ai int
3973 vec_all_nge(vector float __a, vector float __b) {
3975 __builtin_s390_vfchesbs(__a, __b, &__cc);
3980 static inline __ATTRS_o_ai int
3981 vec_all_nge(vector double __a, vector double __b) {
3983 __builtin_s390_vfchedbs(__a, __b, &__cc);
3987 /*-- vec_all_ngt ------------------------------------------------------------*/
3990 static inline __ATTRS_o_ai int
3991 vec_all_ngt(vector float __a, vector float __b) {
3993 __builtin_s390_vfchsbs(__a, __b, &__cc);
3998 static inline __ATTRS_o_ai int
3999 vec_all_ngt(vector double __a, vector double __b) {
4001 __builtin_s390_vfchdbs(__a, __b, &__cc);
4005 /*-- vec_all_nle ------------------------------------------------------------*/
4008 static inline __ATTRS_o_ai int
4009 vec_all_nle(vector float __a, vector float __b) {
4011 __builtin_s390_vfchesbs(__b, __a, &__cc);
4016 static inline __ATTRS_o_ai int
4017 vec_all_nle(vector double __a, vector double __b) {
4019 __builtin_s390_vfchedbs(__b, __a, &__cc);
4023 /*-- vec_all_nlt ------------------------------------------------------------*/
4026 static inline __ATTRS_o_ai int
4027 vec_all_nlt(vector float __a, vector float __b) {
4029 __builtin_s390_vfchsbs(__b, __a, &__cc);
4034 static inline __ATTRS_o_ai int
4035 vec_all_nlt(vector double __a, vector double __b) {
4037 __builtin_s390_vfchdbs(__b, __a, &__cc);
4041 /*-- vec_all_nan ------------------------------------------------------------*/
4044 static inline __ATTRS_o_ai int
4045 vec_all_nan(vector float __a) {
4047 __builtin_s390_vftcisb(__a, 15, &__cc);
4052 static inline __ATTRS_o_ai int
4053 vec_all_nan(vector double __a) {
4055 __builtin_s390_vftcidb(__a, 15, &__cc);
4059 /*-- vec_all_numeric --------------------------------------------------------*/
4062 static inline __ATTRS_o_ai int
4063 vec_all_numeric(vector float __a) {
4065 __builtin_s390_vftcisb(__a, 15, &__cc);
4070 static inline __ATTRS_o_ai int
4071 vec_all_numeric(vector double __a) {
4073 __builtin_s390_vftcidb(__a, 15, &__cc);
4077 /*-- vec_any_eq -------------------------------------------------------------*/
4079 static inline __ATTRS_o_ai int
4080 vec_any_eq(vector signed char __a, vector signed char __b) {
4082 __builtin_s390_vceqbs(__a, __b, &__cc);
4086 // This prototype is deprecated.
4087 static inline __ATTRS_o_ai int
4088 vec_any_eq(vector signed char __a, vector bool char __b) {
4090 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
4094 // This prototype is deprecated.
4095 static inline __ATTRS_o_ai int
4096 vec_any_eq(vector bool char __a, vector signed char __b) {
4098 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
4102 static inline __ATTRS_o_ai int
4103 vec_any_eq(vector unsigned char __a, vector unsigned char __b) {
4105 __builtin_s390_vceqbs((vector signed char)__a,
4106 (vector signed char)__b, &__cc);
4110 // This prototype is deprecated.
4111 static inline __ATTRS_o_ai int
4112 vec_any_eq(vector unsigned char __a, vector bool char __b) {
4114 __builtin_s390_vceqbs((vector signed char)__a,
4115 (vector signed char)__b, &__cc);
4119 // This prototype is deprecated.
4120 static inline __ATTRS_o_ai int
4121 vec_any_eq(vector bool char __a, vector unsigned char __b) {
4123 __builtin_s390_vceqbs((vector signed char)__a,
4124 (vector signed char)__b, &__cc);
4128 static inline __ATTRS_o_ai int
4129 vec_any_eq(vector bool char __a, vector bool char __b) {
4131 __builtin_s390_vceqbs((vector signed char)__a,
4132 (vector signed char)__b, &__cc);
4136 static inline __ATTRS_o_ai int
4137 vec_any_eq(vector signed short __a, vector signed short __b) {
4139 __builtin_s390_vceqhs(__a, __b, &__cc);
4143 // This prototype is deprecated.
4144 static inline __ATTRS_o_ai int
4145 vec_any_eq(vector signed short __a, vector bool short __b) {
4147 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
4151 // This prototype is deprecated.
4152 static inline __ATTRS_o_ai int
4153 vec_any_eq(vector bool short __a, vector signed short __b) {
4155 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
4159 static inline __ATTRS_o_ai int
4160 vec_any_eq(vector unsigned short __a, vector unsigned short __b) {
4162 __builtin_s390_vceqhs((vector signed short)__a,
4163 (vector signed short)__b, &__cc);
4167 // This prototype is deprecated.
4168 static inline __ATTRS_o_ai int
4169 vec_any_eq(vector unsigned short __a, vector bool short __b) {
4171 __builtin_s390_vceqhs((vector signed short)__a,
4172 (vector signed short)__b, &__cc);
4176 // This prototype is deprecated.
4177 static inline __ATTRS_o_ai int
4178 vec_any_eq(vector bool short __a, vector unsigned short __b) {
4180 __builtin_s390_vceqhs((vector signed short)__a,
4181 (vector signed short)__b, &__cc);
4185 static inline __ATTRS_o_ai int
4186 vec_any_eq(vector bool short __a, vector bool short __b) {
4188 __builtin_s390_vceqhs((vector signed short)__a,
4189 (vector signed short)__b, &__cc);
4193 static inline __ATTRS_o_ai int
4194 vec_any_eq(vector signed int __a, vector signed int __b) {
4196 __builtin_s390_vceqfs(__a, __b, &__cc);
4200 // This prototype is deprecated.
4201 static inline __ATTRS_o_ai int
4202 vec_any_eq(vector signed int __a, vector bool int __b) {
4204 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
4208 // This prototype is deprecated.
4209 static inline __ATTRS_o_ai int
4210 vec_any_eq(vector bool int __a, vector signed int __b) {
4212 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
4216 static inline __ATTRS_o_ai int
4217 vec_any_eq(vector unsigned int __a, vector unsigned int __b) {
4219 __builtin_s390_vceqfs((vector signed int)__a,
4220 (vector signed int)__b, &__cc);
4224 // This prototype is deprecated.
4225 static inline __ATTRS_o_ai int
4226 vec_any_eq(vector unsigned int __a, vector bool int __b) {
4228 __builtin_s390_vceqfs((vector signed int)__a,
4229 (vector signed int)__b, &__cc);
4233 // This prototype is deprecated.
4234 static inline __ATTRS_o_ai int
4235 vec_any_eq(vector bool int __a, vector unsigned int __b) {
4237 __builtin_s390_vceqfs((vector signed int)__a,
4238 (vector signed int)__b, &__cc);
4242 static inline __ATTRS_o_ai int
4243 vec_any_eq(vector bool int __a, vector bool int __b) {
4245 __builtin_s390_vceqfs((vector signed int)__a,
4246 (vector signed int)__b, &__cc);
4250 static inline __ATTRS_o_ai int
4251 vec_any_eq(vector signed long long __a, vector signed long long __b) {
4253 __builtin_s390_vceqgs(__a, __b, &__cc);
4257 // This prototype is deprecated.
4258 static inline __ATTRS_o_ai int
4259 vec_any_eq(vector signed long long __a, vector bool long long __b) {
4261 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
4265 // This prototype is deprecated.
4266 static inline __ATTRS_o_ai int
4267 vec_any_eq(vector bool long long __a, vector signed long long __b) {
4269 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
4273 static inline __ATTRS_o_ai int
4274 vec_any_eq(vector unsigned long long __a, vector unsigned long long __b) {
4276 __builtin_s390_vceqgs((vector signed long long)__a,
4277 (vector signed long long)__b, &__cc);
4281 // This prototype is deprecated.
4282 static inline __ATTRS_o_ai int
4283 vec_any_eq(vector unsigned long long __a, vector bool long long __b) {
4285 __builtin_s390_vceqgs((vector signed long long)__a,
4286 (vector signed long long)__b, &__cc);
4290 // This prototype is deprecated.
4291 static inline __ATTRS_o_ai int
4292 vec_any_eq(vector bool long long __a, vector unsigned long long __b) {
4294 __builtin_s390_vceqgs((vector signed long long)__a,
4295 (vector signed long long)__b, &__cc);
4299 static inline __ATTRS_o_ai int
4300 vec_any_eq(vector bool long long __a, vector bool long long __b) {
4302 __builtin_s390_vceqgs((vector signed long long)__a,
4303 (vector signed long long)__b, &__cc);
4308 static inline __ATTRS_o_ai int
4309 vec_any_eq(vector float __a, vector float __b) {
4311 __builtin_s390_vfcesbs(__a, __b, &__cc);
4316 static inline __ATTRS_o_ai int
4317 vec_any_eq(vector double __a, vector double __b) {
4319 __builtin_s390_vfcedbs(__a, __b, &__cc);
4323 /*-- vec_any_ne -------------------------------------------------------------*/
4325 static inline __ATTRS_o_ai int
4326 vec_any_ne(vector signed char __a, vector signed char __b) {
4328 __builtin_s390_vceqbs(__a, __b, &__cc);
4332 // This prototype is deprecated.
4333 static inline __ATTRS_o_ai int
4334 vec_any_ne(vector signed char __a, vector bool char __b) {
4336 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
4340 // This prototype is deprecated.
4341 static inline __ATTRS_o_ai int
4342 vec_any_ne(vector bool char __a, vector signed char __b) {
4344 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
4348 static inline __ATTRS_o_ai int
4349 vec_any_ne(vector unsigned char __a, vector unsigned char __b) {
4351 __builtin_s390_vceqbs((vector signed char)__a,
4352 (vector signed char)__b, &__cc);
4356 // This prototype is deprecated.
4357 static inline __ATTRS_o_ai int
4358 vec_any_ne(vector unsigned char __a, vector bool char __b) {
4360 __builtin_s390_vceqbs((vector signed char)__a,
4361 (vector signed char)__b, &__cc);
4365 // This prototype is deprecated.
4366 static inline __ATTRS_o_ai int
4367 vec_any_ne(vector bool char __a, vector unsigned char __b) {
4369 __builtin_s390_vceqbs((vector signed char)__a,
4370 (vector signed char)__b, &__cc);
4374 static inline __ATTRS_o_ai int
4375 vec_any_ne(vector bool char __a, vector bool char __b) {
4377 __builtin_s390_vceqbs((vector signed char)__a,
4378 (vector signed char)__b, &__cc);
4382 static inline __ATTRS_o_ai int
4383 vec_any_ne(vector signed short __a, vector signed short __b) {
4385 __builtin_s390_vceqhs(__a, __b, &__cc);
4389 // This prototype is deprecated.
4390 static inline __ATTRS_o_ai int
4391 vec_any_ne(vector signed short __a, vector bool short __b) {
4393 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
4397 // This prototype is deprecated.
4398 static inline __ATTRS_o_ai int
4399 vec_any_ne(vector bool short __a, vector signed short __b) {
4401 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
4405 static inline __ATTRS_o_ai int
4406 vec_any_ne(vector unsigned short __a, vector unsigned short __b) {
4408 __builtin_s390_vceqhs((vector signed short)__a,
4409 (vector signed short)__b, &__cc);
4413 // This prototype is deprecated.
4414 static inline __ATTRS_o_ai int
4415 vec_any_ne(vector unsigned short __a, vector bool short __b) {
4417 __builtin_s390_vceqhs((vector signed short)__a,
4418 (vector signed short)__b, &__cc);
4422 // This prototype is deprecated.
4423 static inline __ATTRS_o_ai int
4424 vec_any_ne(vector bool short __a, vector unsigned short __b) {
4426 __builtin_s390_vceqhs((vector signed short)__a,
4427 (vector signed short)__b, &__cc);
4431 static inline __ATTRS_o_ai int
4432 vec_any_ne(vector bool short __a, vector bool short __b) {
4434 __builtin_s390_vceqhs((vector signed short)__a,
4435 (vector signed short)__b, &__cc);
4439 static inline __ATTRS_o_ai int
4440 vec_any_ne(vector signed int __a, vector signed int __b) {
4442 __builtin_s390_vceqfs(__a, __b, &__cc);
4446 // This prototype is deprecated.
4447 static inline __ATTRS_o_ai int
4448 vec_any_ne(vector signed int __a, vector bool int __b) {
4450 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
4454 // This prototype is deprecated.
4455 static inline __ATTRS_o_ai int
4456 vec_any_ne(vector bool int __a, vector signed int __b) {
4458 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
4462 static inline __ATTRS_o_ai int
4463 vec_any_ne(vector unsigned int __a, vector unsigned int __b) {
4465 __builtin_s390_vceqfs((vector signed int)__a,
4466 (vector signed int)__b, &__cc);
4470 // This prototype is deprecated.
4471 static inline __ATTRS_o_ai int
4472 vec_any_ne(vector unsigned int __a, vector bool int __b) {
4474 __builtin_s390_vceqfs((vector signed int)__a,
4475 (vector signed int)__b, &__cc);
4479 // This prototype is deprecated.
4480 static inline __ATTRS_o_ai int
4481 vec_any_ne(vector bool int __a, vector unsigned int __b) {
4483 __builtin_s390_vceqfs((vector signed int)__a,
4484 (vector signed int)__b, &__cc);
4488 static inline __ATTRS_o_ai int
4489 vec_any_ne(vector bool int __a, vector bool int __b) {
4491 __builtin_s390_vceqfs((vector signed int)__a,
4492 (vector signed int)__b, &__cc);
4496 static inline __ATTRS_o_ai int
4497 vec_any_ne(vector signed long long __a, vector signed long long __b) {
4499 __builtin_s390_vceqgs(__a, __b, &__cc);
4503 // This prototype is deprecated.
4504 static inline __ATTRS_o_ai int
4505 vec_any_ne(vector signed long long __a, vector bool long long __b) {
4507 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
4511 // This prototype is deprecated.
4512 static inline __ATTRS_o_ai int
4513 vec_any_ne(vector bool long long __a, vector signed long long __b) {
4515 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
4519 static inline __ATTRS_o_ai int
4520 vec_any_ne(vector unsigned long long __a, vector unsigned long long __b) {
4522 __builtin_s390_vceqgs((vector signed long long)__a,
4523 (vector signed long long)__b, &__cc);
4527 // This prototype is deprecated.
4528 static inline __ATTRS_o_ai int
4529 vec_any_ne(vector unsigned long long __a, vector bool long long __b) {
4531 __builtin_s390_vceqgs((vector signed long long)__a,
4532 (vector signed long long)__b, &__cc);
4536 // This prototype is deprecated.
4537 static inline __ATTRS_o_ai int
4538 vec_any_ne(vector bool long long __a, vector unsigned long long __b) {
4540 __builtin_s390_vceqgs((vector signed long long)__a,
4541 (vector signed long long)__b, &__cc);
4545 static inline __ATTRS_o_ai int
4546 vec_any_ne(vector bool long long __a, vector bool long long __b) {
4548 __builtin_s390_vceqgs((vector signed long long)__a,
4549 (vector signed long long)__b, &__cc);
4554 static inline __ATTRS_o_ai int
4555 vec_any_ne(vector float __a, vector float __b) {
4557 __builtin_s390_vfcesbs(__a, __b, &__cc);
4562 static inline __ATTRS_o_ai int
4563 vec_any_ne(vector double __a, vector double __b) {
4565 __builtin_s390_vfcedbs(__a, __b, &__cc);
4569 /*-- vec_any_ge -------------------------------------------------------------*/
4571 static inline __ATTRS_o_ai int
4572 vec_any_ge(vector signed char __a, vector signed char __b) {
4574 __builtin_s390_vchbs(__b, __a, &__cc);
4578 // This prototype is deprecated.
4579 static inline __ATTRS_o_ai int
4580 vec_any_ge(vector signed char __a, vector bool char __b) {
4582 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
4586 // This prototype is deprecated.
4587 static inline __ATTRS_o_ai int
4588 vec_any_ge(vector bool char __a, vector signed char __b) {
4590 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
4594 static inline __ATTRS_o_ai int
4595 vec_any_ge(vector unsigned char __a, vector unsigned char __b) {
4597 __builtin_s390_vchlbs(__b, __a, &__cc);
4601 // This prototype is deprecated.
4602 static inline __ATTRS_o_ai int
4603 vec_any_ge(vector unsigned char __a, vector bool char __b) {
4605 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
4609 // This prototype is deprecated.
4610 static inline __ATTRS_o_ai int
4611 vec_any_ge(vector bool char __a, vector unsigned char __b) {
4613 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
4617 // This prototype is deprecated.
4618 static inline __ATTRS_o_ai int
4619 vec_any_ge(vector bool char __a, vector bool char __b) {
4621 __builtin_s390_vchlbs((vector unsigned char)__b,
4622 (vector unsigned char)__a, &__cc);
4626 static inline __ATTRS_o_ai int
4627 vec_any_ge(vector signed short __a, vector signed short __b) {
4629 __builtin_s390_vchhs(__b, __a, &__cc);
4633 // This prototype is deprecated.
4634 static inline __ATTRS_o_ai int
4635 vec_any_ge(vector signed short __a, vector bool short __b) {
4637 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
4641 // This prototype is deprecated.
4642 static inline __ATTRS_o_ai int
4643 vec_any_ge(vector bool short __a, vector signed short __b) {
4645 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
4649 static inline __ATTRS_o_ai int
4650 vec_any_ge(vector unsigned short __a, vector unsigned short __b) {
4652 __builtin_s390_vchlhs(__b, __a, &__cc);
4656 // This prototype is deprecated.
4657 static inline __ATTRS_o_ai int
4658 vec_any_ge(vector unsigned short __a, vector bool short __b) {
4660 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
4664 // This prototype is deprecated.
4665 static inline __ATTRS_o_ai int
4666 vec_any_ge(vector bool short __a, vector unsigned short __b) {
4668 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
4672 // This prototype is deprecated.
4673 static inline __ATTRS_o_ai int
4674 vec_any_ge(vector bool short __a, vector bool short __b) {
4676 __builtin_s390_vchlhs((vector unsigned short)__b,
4677 (vector unsigned short)__a, &__cc);
4681 static inline __ATTRS_o_ai int
4682 vec_any_ge(vector signed int __a, vector signed int __b) {
4684 __builtin_s390_vchfs(__b, __a, &__cc);
4688 // This prototype is deprecated.
4689 static inline __ATTRS_o_ai int
4690 vec_any_ge(vector signed int __a, vector bool int __b) {
4692 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
4696 // This prototype is deprecated.
4697 static inline __ATTRS_o_ai int
4698 vec_any_ge(vector bool int __a, vector signed int __b) {
4700 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
4704 static inline __ATTRS_o_ai int
4705 vec_any_ge(vector unsigned int __a, vector unsigned int __b) {
4707 __builtin_s390_vchlfs(__b, __a, &__cc);
4711 // This prototype is deprecated.
4712 static inline __ATTRS_o_ai int
4713 vec_any_ge(vector unsigned int __a, vector bool int __b) {
4715 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
4719 // This prototype is deprecated.
4720 static inline __ATTRS_o_ai int
4721 vec_any_ge(vector bool int __a, vector unsigned int __b) {
4723 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
4727 // This prototype is deprecated.
4728 static inline __ATTRS_o_ai int
4729 vec_any_ge(vector bool int __a, vector bool int __b) {
4731 __builtin_s390_vchlfs((vector unsigned int)__b,
4732 (vector unsigned int)__a, &__cc);
4736 static inline __ATTRS_o_ai int
4737 vec_any_ge(vector signed long long __a, vector signed long long __b) {
4739 __builtin_s390_vchgs(__b, __a, &__cc);
4743 // This prototype is deprecated.
4744 static inline __ATTRS_o_ai int
4745 vec_any_ge(vector signed long long __a, vector bool long long __b) {
4747 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
4751 // This prototype is deprecated.
4752 static inline __ATTRS_o_ai int
4753 vec_any_ge(vector bool long long __a, vector signed long long __b) {
4755 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
4759 static inline __ATTRS_o_ai int
4760 vec_any_ge(vector unsigned long long __a, vector unsigned long long __b) {
4762 __builtin_s390_vchlgs(__b, __a, &__cc);
4766 // This prototype is deprecated.
4767 static inline __ATTRS_o_ai int
4768 vec_any_ge(vector unsigned long long __a, vector bool long long __b) {
4770 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
4774 // This prototype is deprecated.
4775 static inline __ATTRS_o_ai int
4776 vec_any_ge(vector bool long long __a, vector unsigned long long __b) {
4778 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
4782 // This prototype is deprecated.
4783 static inline __ATTRS_o_ai int
4784 vec_any_ge(vector bool long long __a, vector bool long long __b) {
4786 __builtin_s390_vchlgs((vector unsigned long long)__b,
4787 (vector unsigned long long)__a, &__cc);
4792 static inline __ATTRS_o_ai int
4793 vec_any_ge(vector float __a, vector float __b) {
4795 __builtin_s390_vfchesbs(__a, __b, &__cc);
4800 static inline __ATTRS_o_ai int
4801 vec_any_ge(vector double __a, vector double __b) {
4803 __builtin_s390_vfchedbs(__a, __b, &__cc);
4807 /*-- vec_any_gt -------------------------------------------------------------*/
4809 static inline __ATTRS_o_ai int
4810 vec_any_gt(vector signed char __a, vector signed char __b) {
4812 __builtin_s390_vchbs(__a, __b, &__cc);
4816 // This prototype is deprecated.
4817 static inline __ATTRS_o_ai int
4818 vec_any_gt(vector signed char __a, vector bool char __b) {
4820 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4824 // This prototype is deprecated.
4825 static inline __ATTRS_o_ai int
4826 vec_any_gt(vector bool char __a, vector signed char __b) {
4828 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4832 static inline __ATTRS_o_ai int
4833 vec_any_gt(vector unsigned char __a, vector unsigned char __b) {
4835 __builtin_s390_vchlbs(__a, __b, &__cc);
4839 // This prototype is deprecated.
4840 static inline __ATTRS_o_ai int
4841 vec_any_gt(vector unsigned char __a, vector bool char __b) {
4843 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4847 // This prototype is deprecated.
4848 static inline __ATTRS_o_ai int
4849 vec_any_gt(vector bool char __a, vector unsigned char __b) {
4851 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4855 // This prototype is deprecated.
4856 static inline __ATTRS_o_ai int
4857 vec_any_gt(vector bool char __a, vector bool char __b) {
4859 __builtin_s390_vchlbs((vector unsigned char)__a,
4860 (vector unsigned char)__b, &__cc);
4864 static inline __ATTRS_o_ai int
4865 vec_any_gt(vector signed short __a, vector signed short __b) {
4867 __builtin_s390_vchhs(__a, __b, &__cc);
4871 // This prototype is deprecated.
4872 static inline __ATTRS_o_ai int
4873 vec_any_gt(vector signed short __a, vector bool short __b) {
4875 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4879 // This prototype is deprecated.
4880 static inline __ATTRS_o_ai int
4881 vec_any_gt(vector bool short __a, vector signed short __b) {
4883 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
4887 static inline __ATTRS_o_ai int
4888 vec_any_gt(vector unsigned short __a, vector unsigned short __b) {
4890 __builtin_s390_vchlhs(__a, __b, &__cc);
4894 // This prototype is deprecated.
4895 static inline __ATTRS_o_ai int
4896 vec_any_gt(vector unsigned short __a, vector bool short __b) {
4898 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
4902 // This prototype is deprecated.
4903 static inline __ATTRS_o_ai int
4904 vec_any_gt(vector bool short __a, vector unsigned short __b) {
4906 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
4910 // This prototype is deprecated.
4911 static inline __ATTRS_o_ai int
4912 vec_any_gt(vector bool short __a, vector bool short __b) {
4914 __builtin_s390_vchlhs((vector unsigned short)__a,
4915 (vector unsigned short)__b, &__cc);
4919 static inline __ATTRS_o_ai int
4920 vec_any_gt(vector signed int __a, vector signed int __b) {
4922 __builtin_s390_vchfs(__a, __b, &__cc);
4926 // This prototype is deprecated.
4927 static inline __ATTRS_o_ai int
4928 vec_any_gt(vector signed int __a, vector bool int __b) {
4930 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
4934 // This prototype is deprecated.
4935 static inline __ATTRS_o_ai int
4936 vec_any_gt(vector bool int __a, vector signed int __b) {
4938 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
4942 static inline __ATTRS_o_ai int
4943 vec_any_gt(vector unsigned int __a, vector unsigned int __b) {
4945 __builtin_s390_vchlfs(__a, __b, &__cc);
4949 // This prototype is deprecated.
4950 static inline __ATTRS_o_ai int
4951 vec_any_gt(vector unsigned int __a, vector bool int __b) {
4953 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
4957 // This prototype is deprecated.
4958 static inline __ATTRS_o_ai int
4959 vec_any_gt(vector bool int __a, vector unsigned int __b) {
4961 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
4965 // This prototype is deprecated.
4966 static inline __ATTRS_o_ai int
4967 vec_any_gt(vector bool int __a, vector bool int __b) {
4969 __builtin_s390_vchlfs((vector unsigned int)__a,
4970 (vector unsigned int)__b, &__cc);
4974 static inline __ATTRS_o_ai int
4975 vec_any_gt(vector signed long long __a, vector signed long long __b) {
4977 __builtin_s390_vchgs(__a, __b, &__cc);
4981 // This prototype is deprecated.
4982 static inline __ATTRS_o_ai int
4983 vec_any_gt(vector signed long long __a, vector bool long long __b) {
4985 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
4989 // This prototype is deprecated.
4990 static inline __ATTRS_o_ai int
4991 vec_any_gt(vector bool long long __a, vector signed long long __b) {
4993 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
4997 static inline __ATTRS_o_ai int
4998 vec_any_gt(vector unsigned long long __a, vector unsigned long long __b) {
5000 __builtin_s390_vchlgs(__a, __b, &__cc);
5004 // This prototype is deprecated.
5005 static inline __ATTRS_o_ai int
5006 vec_any_gt(vector unsigned long long __a, vector bool long long __b) {
5008 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
5012 // This prototype is deprecated.
5013 static inline __ATTRS_o_ai int
5014 vec_any_gt(vector bool long long __a, vector unsigned long long __b) {
5016 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
5020 // This prototype is deprecated.
5021 static inline __ATTRS_o_ai int
5022 vec_any_gt(vector bool long long __a, vector bool long long __b) {
5024 __builtin_s390_vchlgs((vector unsigned long long)__a,
5025 (vector unsigned long long)__b, &__cc);
5030 static inline __ATTRS_o_ai int
5031 vec_any_gt(vector float __a, vector float __b) {
5033 __builtin_s390_vfchsbs(__a, __b, &__cc);
5038 static inline __ATTRS_o_ai int
5039 vec_any_gt(vector double __a, vector double __b) {
5041 __builtin_s390_vfchdbs(__a, __b, &__cc);
5045 /*-- vec_any_le -------------------------------------------------------------*/
5047 static inline __ATTRS_o_ai int
5048 vec_any_le(vector signed char __a, vector signed char __b) {
5050 __builtin_s390_vchbs(__a, __b, &__cc);
5054 // This prototype is deprecated.
5055 static inline __ATTRS_o_ai int
5056 vec_any_le(vector signed char __a, vector bool char __b) {
5058 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
5062 // This prototype is deprecated.
5063 static inline __ATTRS_o_ai int
5064 vec_any_le(vector bool char __a, vector signed char __b) {
5066 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
5070 static inline __ATTRS_o_ai int
5071 vec_any_le(vector unsigned char __a, vector unsigned char __b) {
5073 __builtin_s390_vchlbs(__a, __b, &__cc);
5077 // This prototype is deprecated.
5078 static inline __ATTRS_o_ai int
5079 vec_any_le(vector unsigned char __a, vector bool char __b) {
5081 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
5085 // This prototype is deprecated.
5086 static inline __ATTRS_o_ai int
5087 vec_any_le(vector bool char __a, vector unsigned char __b) {
5089 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
5093 // This prototype is deprecated.
5094 static inline __ATTRS_o_ai int
5095 vec_any_le(vector bool char __a, vector bool char __b) {
5097 __builtin_s390_vchlbs((vector unsigned char)__a,
5098 (vector unsigned char)__b, &__cc);
5102 static inline __ATTRS_o_ai int
5103 vec_any_le(vector signed short __a, vector signed short __b) {
5105 __builtin_s390_vchhs(__a, __b, &__cc);
5109 // This prototype is deprecated.
5110 static inline __ATTRS_o_ai int
5111 vec_any_le(vector signed short __a, vector bool short __b) {
5113 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
5117 // This prototype is deprecated.
5118 static inline __ATTRS_o_ai int
5119 vec_any_le(vector bool short __a, vector signed short __b) {
5121 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
5125 static inline __ATTRS_o_ai int
5126 vec_any_le(vector unsigned short __a, vector unsigned short __b) {
5128 __builtin_s390_vchlhs(__a, __b, &__cc);
5132 // This prototype is deprecated.
5133 static inline __ATTRS_o_ai int
5134 vec_any_le(vector unsigned short __a, vector bool short __b) {
5136 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
5140 // This prototype is deprecated.
5141 static inline __ATTRS_o_ai int
5142 vec_any_le(vector bool short __a, vector unsigned short __b) {
5144 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
5148 // This prototype is deprecated.
5149 static inline __ATTRS_o_ai int
5150 vec_any_le(vector bool short __a, vector bool short __b) {
5152 __builtin_s390_vchlhs((vector unsigned short)__a,
5153 (vector unsigned short)__b, &__cc);
5157 static inline __ATTRS_o_ai int
5158 vec_any_le(vector signed int __a, vector signed int __b) {
5160 __builtin_s390_vchfs(__a, __b, &__cc);
5164 // This prototype is deprecated.
5165 static inline __ATTRS_o_ai int
5166 vec_any_le(vector signed int __a, vector bool int __b) {
5168 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
5172 // This prototype is deprecated.
5173 static inline __ATTRS_o_ai int
5174 vec_any_le(vector bool int __a, vector signed int __b) {
5176 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
5180 static inline __ATTRS_o_ai int
5181 vec_any_le(vector unsigned int __a, vector unsigned int __b) {
5183 __builtin_s390_vchlfs(__a, __b, &__cc);
5187 // This prototype is deprecated.
5188 static inline __ATTRS_o_ai int
5189 vec_any_le(vector unsigned int __a, vector bool int __b) {
5191 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
5195 // This prototype is deprecated.
5196 static inline __ATTRS_o_ai int
5197 vec_any_le(vector bool int __a, vector unsigned int __b) {
5199 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
5203 // This prototype is deprecated.
5204 static inline __ATTRS_o_ai int
5205 vec_any_le(vector bool int __a, vector bool int __b) {
5207 __builtin_s390_vchlfs((vector unsigned int)__a,
5208 (vector unsigned int)__b, &__cc);
5212 static inline __ATTRS_o_ai int
5213 vec_any_le(vector signed long long __a, vector signed long long __b) {
5215 __builtin_s390_vchgs(__a, __b, &__cc);
5219 // This prototype is deprecated.
5220 static inline __ATTRS_o_ai int
5221 vec_any_le(vector signed long long __a, vector bool long long __b) {
5223 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
5227 // This prototype is deprecated.
5228 static inline __ATTRS_o_ai int
5229 vec_any_le(vector bool long long __a, vector signed long long __b) {
5231 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
5235 static inline __ATTRS_o_ai int
5236 vec_any_le(vector unsigned long long __a, vector unsigned long long __b) {
5238 __builtin_s390_vchlgs(__a, __b, &__cc);
5242 // This prototype is deprecated.
5243 static inline __ATTRS_o_ai int
5244 vec_any_le(vector unsigned long long __a, vector bool long long __b) {
5246 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
5250 // This prototype is deprecated.
5251 static inline __ATTRS_o_ai int
5252 vec_any_le(vector bool long long __a, vector unsigned long long __b) {
5254 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
5258 // This prototype is deprecated.
5259 static inline __ATTRS_o_ai int
5260 vec_any_le(vector bool long long __a, vector bool long long __b) {
5262 __builtin_s390_vchlgs((vector unsigned long long)__a,
5263 (vector unsigned long long)__b, &__cc);
5268 static inline __ATTRS_o_ai int
5269 vec_any_le(vector float __a, vector float __b) {
5271 __builtin_s390_vfchesbs(__b, __a, &__cc);
5276 static inline __ATTRS_o_ai int
5277 vec_any_le(vector double __a, vector double __b) {
5279 __builtin_s390_vfchedbs(__b, __a, &__cc);
5283 /*-- vec_any_lt -------------------------------------------------------------*/
5285 static inline __ATTRS_o_ai int
5286 vec_any_lt(vector signed char __a, vector signed char __b) {
5288 __builtin_s390_vchbs(__b, __a, &__cc);
5292 // This prototype is deprecated.
5293 static inline __ATTRS_o_ai int
5294 vec_any_lt(vector signed char __a, vector bool char __b) {
5296 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
5300 // This prototype is deprecated.
5301 static inline __ATTRS_o_ai int
5302 vec_any_lt(vector bool char __a, vector signed char __b) {
5304 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
5308 static inline __ATTRS_o_ai int
5309 vec_any_lt(vector unsigned char __a, vector unsigned char __b) {
5311 __builtin_s390_vchlbs(__b, __a, &__cc);
5315 // This prototype is deprecated.
5316 static inline __ATTRS_o_ai int
5317 vec_any_lt(vector unsigned char __a, vector bool char __b) {
5319 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
5323 // This prototype is deprecated.
5324 static inline __ATTRS_o_ai int
5325 vec_any_lt(vector bool char __a, vector unsigned char __b) {
5327 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
5331 // This prototype is deprecated.
5332 static inline __ATTRS_o_ai int
5333 vec_any_lt(vector bool char __a, vector bool char __b) {
5335 __builtin_s390_vchlbs((vector unsigned char)__b,
5336 (vector unsigned char)__a, &__cc);
5340 static inline __ATTRS_o_ai int
5341 vec_any_lt(vector signed short __a, vector signed short __b) {
5343 __builtin_s390_vchhs(__b, __a, &__cc);
5347 // This prototype is deprecated.
5348 static inline __ATTRS_o_ai int
5349 vec_any_lt(vector signed short __a, vector bool short __b) {
5351 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
5355 // This prototype is deprecated.
5356 static inline __ATTRS_o_ai int
5357 vec_any_lt(vector bool short __a, vector signed short __b) {
5359 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
5363 static inline __ATTRS_o_ai int
5364 vec_any_lt(vector unsigned short __a, vector unsigned short __b) {
5366 __builtin_s390_vchlhs(__b, __a, &__cc);
5370 // This prototype is deprecated.
5371 static inline __ATTRS_o_ai int
5372 vec_any_lt(vector unsigned short __a, vector bool short __b) {
5374 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
5378 // This prototype is deprecated.
5379 static inline __ATTRS_o_ai int
5380 vec_any_lt(vector bool short __a, vector unsigned short __b) {
5382 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
5386 // This prototype is deprecated.
5387 static inline __ATTRS_o_ai int
5388 vec_any_lt(vector bool short __a, vector bool short __b) {
5390 __builtin_s390_vchlhs((vector unsigned short)__b,
5391 (vector unsigned short)__a, &__cc);
5395 static inline __ATTRS_o_ai int
5396 vec_any_lt(vector signed int __a, vector signed int __b) {
5398 __builtin_s390_vchfs(__b, __a, &__cc);
5402 // This prototype is deprecated.
5403 static inline __ATTRS_o_ai int
5404 vec_any_lt(vector signed int __a, vector bool int __b) {
5406 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
5410 // This prototype is deprecated.
5411 static inline __ATTRS_o_ai int
5412 vec_any_lt(vector bool int __a, vector signed int __b) {
5414 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
5418 static inline __ATTRS_o_ai int
5419 vec_any_lt(vector unsigned int __a, vector unsigned int __b) {
5421 __builtin_s390_vchlfs(__b, __a, &__cc);
5425 // This prototype is deprecated.
5426 static inline __ATTRS_o_ai int
5427 vec_any_lt(vector unsigned int __a, vector bool int __b) {
5429 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
5433 // This prototype is deprecated.
5434 static inline __ATTRS_o_ai int
5435 vec_any_lt(vector bool int __a, vector unsigned int __b) {
5437 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
5441 // This prototype is deprecated.
5442 static inline __ATTRS_o_ai int
5443 vec_any_lt(vector bool int __a, vector bool int __b) {
5445 __builtin_s390_vchlfs((vector unsigned int)__b,
5446 (vector unsigned int)__a, &__cc);
5450 static inline __ATTRS_o_ai int
5451 vec_any_lt(vector signed long long __a, vector signed long long __b) {
5453 __builtin_s390_vchgs(__b, __a, &__cc);
5457 // This prototype is deprecated.
5458 static inline __ATTRS_o_ai int
5459 vec_any_lt(vector signed long long __a, vector bool long long __b) {
5461 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
5465 // This prototype is deprecated.
5466 static inline __ATTRS_o_ai int
5467 vec_any_lt(vector bool long long __a, vector signed long long __b) {
5469 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
5473 static inline __ATTRS_o_ai int
5474 vec_any_lt(vector unsigned long long __a, vector unsigned long long __b) {
5476 __builtin_s390_vchlgs(__b, __a, &__cc);
5480 // This prototype is deprecated.
5481 static inline __ATTRS_o_ai int
5482 vec_any_lt(vector unsigned long long __a, vector bool long long __b) {
5484 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
5488 // This prototype is deprecated.
5489 static inline __ATTRS_o_ai int
5490 vec_any_lt(vector bool long long __a, vector unsigned long long __b) {
5492 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
5496 // This prototype is deprecated.
5497 static inline __ATTRS_o_ai int
5498 vec_any_lt(vector bool long long __a, vector bool long long __b) {
5500 __builtin_s390_vchlgs((vector unsigned long long)__b,
5501 (vector unsigned long long)__a, &__cc);
5506 static inline __ATTRS_o_ai int
5507 vec_any_lt(vector float __a, vector float __b) {
5509 __builtin_s390_vfchsbs(__b, __a, &__cc);
5514 static inline __ATTRS_o_ai int
5515 vec_any_lt(vector double __a, vector double __b) {
5517 __builtin_s390_vfchdbs(__b, __a, &__cc);
5521 /*-- vec_any_nge ------------------------------------------------------------*/
5524 static inline __ATTRS_o_ai int
5525 vec_any_nge(vector float __a, vector float __b) {
5527 __builtin_s390_vfchesbs(__a, __b, &__cc);
5532 static inline __ATTRS_o_ai int
5533 vec_any_nge(vector double __a, vector double __b) {
5535 __builtin_s390_vfchedbs(__a, __b, &__cc);
5539 /*-- vec_any_ngt ------------------------------------------------------------*/
5542 static inline __ATTRS_o_ai int
5543 vec_any_ngt(vector float __a, vector float __b) {
5545 __builtin_s390_vfchsbs(__a, __b, &__cc);
5550 static inline __ATTRS_o_ai int
5551 vec_any_ngt(vector double __a, vector double __b) {
5553 __builtin_s390_vfchdbs(__a, __b, &__cc);
5557 /*-- vec_any_nle ------------------------------------------------------------*/
5560 static inline __ATTRS_o_ai int
5561 vec_any_nle(vector float __a, vector float __b) {
5563 __builtin_s390_vfchesbs(__b, __a, &__cc);
5568 static inline __ATTRS_o_ai int
5569 vec_any_nle(vector double __a, vector double __b) {
5571 __builtin_s390_vfchedbs(__b, __a, &__cc);
5575 /*-- vec_any_nlt ------------------------------------------------------------*/
5578 static inline __ATTRS_o_ai int
5579 vec_any_nlt(vector float __a, vector float __b) {
5581 __builtin_s390_vfchsbs(__b, __a, &__cc);
5586 static inline __ATTRS_o_ai int
5587 vec_any_nlt(vector double __a, vector double __b) {
5589 __builtin_s390_vfchdbs(__b, __a, &__cc);
5593 /*-- vec_any_nan ------------------------------------------------------------*/
5596 static inline __ATTRS_o_ai int
5597 vec_any_nan(vector float __a) {
5599 __builtin_s390_vftcisb(__a, 15, &__cc);
5604 static inline __ATTRS_o_ai int
5605 vec_any_nan(vector double __a) {
5607 __builtin_s390_vftcidb(__a, 15, &__cc);
5611 /*-- vec_any_numeric --------------------------------------------------------*/
5614 static inline __ATTRS_o_ai int
5615 vec_any_numeric(vector float __a) {
5617 __builtin_s390_vftcisb(__a, 15, &__cc);
5622 static inline __ATTRS_o_ai int
5623 vec_any_numeric(vector double __a) {
5625 __builtin_s390_vftcidb(__a, 15, &__cc);
5629 /*-- vec_andc ---------------------------------------------------------------*/
5631 static inline __ATTRS_o_ai vector bool char
5632 vec_andc(vector bool char __a, vector bool char __b) {
5636 static inline __ATTRS_o_ai vector signed char
5637 vec_andc(vector signed char __a, vector signed char __b) {
5641 // This prototype is deprecated.
5642 static inline __ATTRS_o_ai vector signed char
5643 vec_andc(vector bool char __a, vector signed char __b) {
5647 // This prototype is deprecated.
5648 static inline __ATTRS_o_ai vector signed char
5649 vec_andc(vector signed char __a, vector bool char __b) {
5653 static inline __ATTRS_o_ai vector unsigned char
5654 vec_andc(vector unsigned char __a, vector unsigned char __b) {
5658 // This prototype is deprecated.
5659 static inline __ATTRS_o_ai vector unsigned char
5660 vec_andc(vector bool char __a, vector unsigned char __b) {
5664 // This prototype is deprecated.
5665 static inline __ATTRS_o_ai vector unsigned char
5666 vec_andc(vector unsigned char __a, vector bool char __b) {
5670 static inline __ATTRS_o_ai vector bool short
5671 vec_andc(vector bool short __a, vector bool short __b) {
5675 static inline __ATTRS_o_ai vector signed short
5676 vec_andc(vector signed short __a, vector signed short __b) {
5680 // This prototype is deprecated.
5681 static inline __ATTRS_o_ai vector signed short
5682 vec_andc(vector bool short __a, vector signed short __b) {
5686 // This prototype is deprecated.
5687 static inline __ATTRS_o_ai vector signed short
5688 vec_andc(vector signed short __a, vector bool short __b) {
5692 static inline __ATTRS_o_ai vector unsigned short
5693 vec_andc(vector unsigned short __a, vector unsigned short __b) {
5697 // This prototype is deprecated.
5698 static inline __ATTRS_o_ai vector unsigned short
5699 vec_andc(vector bool short __a, vector unsigned short __b) {
5703 // This prototype is deprecated.
5704 static inline __ATTRS_o_ai vector unsigned short
5705 vec_andc(vector unsigned short __a, vector bool short __b) {
5709 static inline __ATTRS_o_ai vector bool int
5710 vec_andc(vector bool int __a, vector bool int __b) {
5714 static inline __ATTRS_o_ai vector signed int
5715 vec_andc(vector signed int __a, vector signed int __b) {
5719 // This prototype is deprecated.
5720 static inline __ATTRS_o_ai vector signed int
5721 vec_andc(vector bool int __a, vector signed int __b) {
5725 // This prototype is deprecated.
5726 static inline __ATTRS_o_ai vector signed int
5727 vec_andc(vector signed int __a, vector bool int __b) {
5731 static inline __ATTRS_o_ai vector unsigned int
5732 vec_andc(vector unsigned int __a, vector unsigned int __b) {
5736 // This prototype is deprecated.
5737 static inline __ATTRS_o_ai vector unsigned int
5738 vec_andc(vector bool int __a, vector unsigned int __b) {
5742 // This prototype is deprecated.
5743 static inline __ATTRS_o_ai vector unsigned int
5744 vec_andc(vector unsigned int __a, vector bool int __b) {
5748 static inline __ATTRS_o_ai vector bool long long
5749 vec_andc(vector bool long long __a, vector bool long long __b) {
5753 static inline __ATTRS_o_ai vector signed long long
5754 vec_andc(vector signed long long __a, vector signed long long __b) {
5758 // This prototype is deprecated.
5759 static inline __ATTRS_o_ai vector signed long long
5760 vec_andc(vector bool long long __a, vector signed long long __b) {
5764 // This prototype is deprecated.
5765 static inline __ATTRS_o_ai vector signed long long
5766 vec_andc(vector signed long long __a, vector bool long long __b) {
5770 static inline __ATTRS_o_ai vector unsigned long long
5771 vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
5775 // This prototype is deprecated.
5776 static inline __ATTRS_o_ai vector unsigned long long
5777 vec_andc(vector bool long long __a, vector unsigned long long __b) {
5781 // This prototype is deprecated.
5782 static inline __ATTRS_o_ai vector unsigned long long
5783 vec_andc(vector unsigned long long __a, vector bool long long __b) {
5788 static inline __ATTRS_o_ai vector float
5789 vec_andc(vector float __a, vector float __b) {
5790 return (vector float)((vector unsigned int)__a &
5791 ~(vector unsigned int)__b);
5795 static inline __ATTRS_o_ai vector double
5796 vec_andc(vector double __a, vector double __b) {
5797 return (vector double)((vector unsigned long long)__a &
5798 ~(vector unsigned long long)__b);
5801 // This prototype is deprecated.
5802 static inline __ATTRS_o_ai vector double
5803 vec_andc(vector bool long long __a, vector double __b) {
5804 return (vector double)((vector unsigned long long)__a &
5805 ~(vector unsigned long long)__b);
5808 // This prototype is deprecated.
5809 static inline __ATTRS_o_ai vector double
5810 vec_andc(vector double __a, vector bool long long __b) {
5811 return (vector double)((vector unsigned long long)__a &
5812 ~(vector unsigned long long)__b);
5815 /*-- vec_nor ----------------------------------------------------------------*/
5817 static inline __ATTRS_o_ai vector bool char
5818 vec_nor(vector bool char __a, vector bool char __b) {
5819 return ~(__a | __b);
5822 static inline __ATTRS_o_ai vector signed char
5823 vec_nor(vector signed char __a, vector signed char __b) {
5824 return ~(__a | __b);
5827 // This prototype is deprecated.
5828 static inline __ATTRS_o_ai vector signed char
5829 vec_nor(vector bool char __a, vector signed char __b) {
5830 return ~(__a | __b);
5833 // This prototype is deprecated.
5834 static inline __ATTRS_o_ai vector signed char
5835 vec_nor(vector signed char __a, vector bool char __b) {
5836 return ~(__a | __b);
5839 static inline __ATTRS_o_ai vector unsigned char
5840 vec_nor(vector unsigned char __a, vector unsigned char __b) {
5841 return ~(__a | __b);
5844 // This prototype is deprecated.
5845 static inline __ATTRS_o_ai vector unsigned char
5846 vec_nor(vector bool char __a, vector unsigned char __b) {
5847 return ~(__a | __b);
5850 // This prototype is deprecated.
5851 static inline __ATTRS_o_ai vector unsigned char
5852 vec_nor(vector unsigned char __a, vector bool char __b) {
5853 return ~(__a | __b);
5856 static inline __ATTRS_o_ai vector bool short
5857 vec_nor(vector bool short __a, vector bool short __b) {
5858 return ~(__a | __b);
5861 static inline __ATTRS_o_ai vector signed short
5862 vec_nor(vector signed short __a, vector signed short __b) {
5863 return ~(__a | __b);
5866 // This prototype is deprecated.
5867 static inline __ATTRS_o_ai vector signed short
5868 vec_nor(vector bool short __a, vector signed short __b) {
5869 return ~(__a | __b);
5872 // This prototype is deprecated.
5873 static inline __ATTRS_o_ai vector signed short
5874 vec_nor(vector signed short __a, vector bool short __b) {
5875 return ~(__a | __b);
5878 static inline __ATTRS_o_ai vector unsigned short
5879 vec_nor(vector unsigned short __a, vector unsigned short __b) {
5880 return ~(__a | __b);
5883 // This prototype is deprecated.
5884 static inline __ATTRS_o_ai vector unsigned short
5885 vec_nor(vector bool short __a, vector unsigned short __b) {
5886 return ~(__a | __b);
5889 // This prototype is deprecated.
5890 static inline __ATTRS_o_ai vector unsigned short
5891 vec_nor(vector unsigned short __a, vector bool short __b) {
5892 return ~(__a | __b);
5895 static inline __ATTRS_o_ai vector bool int
5896 vec_nor(vector bool int __a, vector bool int __b) {
5897 return ~(__a | __b);
5900 static inline __ATTRS_o_ai vector signed int
5901 vec_nor(vector signed int __a, vector signed int __b) {
5902 return ~(__a | __b);
5905 // This prototype is deprecated.
5906 static inline __ATTRS_o_ai vector signed int
5907 vec_nor(vector bool int __a, vector signed int __b) {
5908 return ~(__a | __b);
5911 // This prototype is deprecated.
5912 static inline __ATTRS_o_ai vector signed int
5913 vec_nor(vector signed int __a, vector bool int __b) {
5914 return ~(__a | __b);
5917 static inline __ATTRS_o_ai vector unsigned int
5918 vec_nor(vector unsigned int __a, vector unsigned int __b) {
5919 return ~(__a | __b);
5922 // This prototype is deprecated.
5923 static inline __ATTRS_o_ai vector unsigned int
5924 vec_nor(vector bool int __a, vector unsigned int __b) {
5925 return ~(__a | __b);
5928 // This prototype is deprecated.
5929 static inline __ATTRS_o_ai vector unsigned int
5930 vec_nor(vector unsigned int __a, vector bool int __b) {
5931 return ~(__a | __b);
5934 static inline __ATTRS_o_ai vector bool long long
5935 vec_nor(vector bool long long __a, vector bool long long __b) {
5936 return ~(__a | __b);
5939 static inline __ATTRS_o_ai vector signed long long
5940 vec_nor(vector signed long long __a, vector signed long long __b) {
5941 return ~(__a | __b);
5944 // This prototype is deprecated.
5945 static inline __ATTRS_o_ai vector signed long long
5946 vec_nor(vector bool long long __a, vector signed long long __b) {
5947 return ~(__a | __b);
5950 // This prototype is deprecated.
5951 static inline __ATTRS_o_ai vector signed long long
5952 vec_nor(vector signed long long __a, vector bool long long __b) {
5953 return ~(__a | __b);
5956 static inline __ATTRS_o_ai vector unsigned long long
5957 vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
5958 return ~(__a | __b);
5961 // This prototype is deprecated.
5962 static inline __ATTRS_o_ai vector unsigned long long
5963 vec_nor(vector bool long long __a, vector unsigned long long __b) {
5964 return ~(__a | __b);
5967 // This prototype is deprecated.
5968 static inline __ATTRS_o_ai vector unsigned long long
5969 vec_nor(vector unsigned long long __a, vector bool long long __b) {
5970 return ~(__a | __b);
5974 static inline __ATTRS_o_ai vector float
5975 vec_nor(vector float __a, vector float __b) {
5976 return (vector float)~((vector unsigned int)__a |
5977 (vector unsigned int)__b);
5981 static inline __ATTRS_o_ai vector double
5982 vec_nor(vector double __a, vector double __b) {
5983 return (vector double)~((vector unsigned long long)__a |
5984 (vector unsigned long long)__b);
5987 // This prototype is deprecated.
5988 static inline __ATTRS_o_ai vector double
5989 vec_nor(vector bool long long __a, vector double __b) {
5990 return (vector double)~((vector unsigned long long)__a |
5991 (vector unsigned long long)__b);
5994 // This prototype is deprecated.
5995 static inline __ATTRS_o_ai vector double
5996 vec_nor(vector double __a, vector bool long long __b) {
5997 return (vector double)~((vector unsigned long long)__a |
5998 (vector unsigned long long)__b);
6001 /*-- vec_orc ----------------------------------------------------------------*/
6004 static inline __ATTRS_o_ai vector bool char
6005 vec_orc(vector bool char __a, vector bool char __b) {
6009 static inline __ATTRS_o_ai vector signed char
6010 vec_orc(vector signed char __a, vector signed char __b) {
6014 static inline __ATTRS_o_ai vector unsigned char
6015 vec_orc(vector unsigned char __a, vector unsigned char __b) {
6019 static inline __ATTRS_o_ai vector bool short
6020 vec_orc(vector bool short __a, vector bool short __b) {
6024 static inline __ATTRS_o_ai vector signed short
6025 vec_orc(vector signed short __a, vector signed short __b) {
6029 static inline __ATTRS_o_ai vector unsigned short
6030 vec_orc(vector unsigned short __a, vector unsigned short __b) {
6034 static inline __ATTRS_o_ai vector bool int
6035 vec_orc(vector bool int __a, vector bool int __b) {
6039 static inline __ATTRS_o_ai vector signed int
6040 vec_orc(vector signed int __a, vector signed int __b) {
6044 static inline __ATTRS_o_ai vector unsigned int
6045 vec_orc(vector unsigned int __a, vector unsigned int __b) {
6049 static inline __ATTRS_o_ai vector bool long long
6050 vec_orc(vector bool long long __a, vector bool long long __b) {
6054 static inline __ATTRS_o_ai vector signed long long
6055 vec_orc(vector signed long long __a, vector signed long long __b) {
6059 static inline __ATTRS_o_ai vector unsigned long long
6060 vec_orc(vector unsigned long long __a, vector unsigned long long __b) {
6064 static inline __ATTRS_o_ai vector float
6065 vec_orc(vector float __a, vector float __b) {
6066 return (vector float)((vector unsigned int)__a |
6067 ~(vector unsigned int)__b);
6070 static inline __ATTRS_o_ai vector double
6071 vec_orc(vector double __a, vector double __b) {
6072 return (vector double)((vector unsigned long long)__a |
6073 ~(vector unsigned long long)__b);
6077 /*-- vec_nand ---------------------------------------------------------------*/
6080 static inline __ATTRS_o_ai vector bool char
6081 vec_nand(vector bool char __a, vector bool char __b) {
6082 return ~(__a & __b);
6085 static inline __ATTRS_o_ai vector signed char
6086 vec_nand(vector signed char __a, vector signed char __b) {
6087 return ~(__a & __b);
6090 static inline __ATTRS_o_ai vector unsigned char
6091 vec_nand(vector unsigned char __a, vector unsigned char __b) {
6092 return ~(__a & __b);
6095 static inline __ATTRS_o_ai vector bool short
6096 vec_nand(vector bool short __a, vector bool short __b) {
6097 return ~(__a & __b);
6100 static inline __ATTRS_o_ai vector signed short
6101 vec_nand(vector signed short __a, vector signed short __b) {
6102 return ~(__a & __b);
6105 static inline __ATTRS_o_ai vector unsigned short
6106 vec_nand(vector unsigned short __a, vector unsigned short __b) {
6107 return ~(__a & __b);
6110 static inline __ATTRS_o_ai vector bool int
6111 vec_nand(vector bool int __a, vector bool int __b) {
6112 return ~(__a & __b);
6115 static inline __ATTRS_o_ai vector signed int
6116 vec_nand(vector signed int __a, vector signed int __b) {
6117 return ~(__a & __b);
6120 static inline __ATTRS_o_ai vector unsigned int
6121 vec_nand(vector unsigned int __a, vector unsigned int __b) {
6122 return ~(__a & __b);
6125 static inline __ATTRS_o_ai vector bool long long
6126 vec_nand(vector bool long long __a, vector bool long long __b) {
6127 return ~(__a & __b);
6130 static inline __ATTRS_o_ai vector signed long long
6131 vec_nand(vector signed long long __a, vector signed long long __b) {
6132 return ~(__a & __b);
6135 static inline __ATTRS_o_ai vector unsigned long long
6136 vec_nand(vector unsigned long long __a, vector unsigned long long __b) {
6137 return ~(__a & __b);
6140 static inline __ATTRS_o_ai vector float
6141 vec_nand(vector float __a, vector float __b) {
6142 return (vector float)~((vector unsigned int)__a &
6143 (vector unsigned int)__b);
6146 static inline __ATTRS_o_ai vector double
6147 vec_nand(vector double __a, vector double __b) {
6148 return (vector double)~((vector unsigned long long)__a &
6149 (vector unsigned long long)__b);
6153 /*-- vec_eqv ----------------------------------------------------------------*/
6156 static inline __ATTRS_o_ai vector bool char
6157 vec_eqv(vector bool char __a, vector bool char __b) {
6158 return ~(__a ^ __b);
6161 static inline __ATTRS_o_ai vector signed char
6162 vec_eqv(vector signed char __a, vector signed char __b) {
6163 return ~(__a ^ __b);
6166 static inline __ATTRS_o_ai vector unsigned char
6167 vec_eqv(vector unsigned char __a, vector unsigned char __b) {
6168 return ~(__a ^ __b);
6171 static inline __ATTRS_o_ai vector bool short
6172 vec_eqv(vector bool short __a, vector bool short __b) {
6173 return ~(__a ^ __b);
6176 static inline __ATTRS_o_ai vector signed short
6177 vec_eqv(vector signed short __a, vector signed short __b) {
6178 return ~(__a ^ __b);
6181 static inline __ATTRS_o_ai vector unsigned short
6182 vec_eqv(vector unsigned short __a, vector unsigned short __b) {
6183 return ~(__a ^ __b);
6186 static inline __ATTRS_o_ai vector bool int
6187 vec_eqv(vector bool int __a, vector bool int __b) {
6188 return ~(__a ^ __b);
6191 static inline __ATTRS_o_ai vector signed int
6192 vec_eqv(vector signed int __a, vector signed int __b) {
6193 return ~(__a ^ __b);
6196 static inline __ATTRS_o_ai vector unsigned int
6197 vec_eqv(vector unsigned int __a, vector unsigned int __b) {
6198 return ~(__a ^ __b);
6201 static inline __ATTRS_o_ai vector bool long long
6202 vec_eqv(vector bool long long __a, vector bool long long __b) {
6203 return ~(__a ^ __b);
6206 static inline __ATTRS_o_ai vector signed long long
6207 vec_eqv(vector signed long long __a, vector signed long long __b) {
6208 return ~(__a ^ __b);
6211 static inline __ATTRS_o_ai vector unsigned long long
6212 vec_eqv(vector unsigned long long __a, vector unsigned long long __b) {
6213 return ~(__a ^ __b);
6216 static inline __ATTRS_o_ai vector float
6217 vec_eqv(vector float __a, vector float __b) {
6218 return (vector float)~((vector unsigned int)__a ^
6219 (vector unsigned int)__b);
6222 static inline __ATTRS_o_ai vector double
6223 vec_eqv(vector double __a, vector double __b) {
6224 return (vector double)~((vector unsigned long long)__a ^
6225 (vector unsigned long long)__b);
6229 /*-- vec_cntlz --------------------------------------------------------------*/
6231 static inline __ATTRS_o_ai vector unsigned char
6232 vec_cntlz(vector signed char __a) {
6233 return __builtin_s390_vclzb((vector unsigned char)__a);
6236 static inline __ATTRS_o_ai vector unsigned char
6237 vec_cntlz(vector unsigned char __a) {
6238 return __builtin_s390_vclzb(__a);
6241 static inline __ATTRS_o_ai vector unsigned short
6242 vec_cntlz(vector signed short __a) {
6243 return __builtin_s390_vclzh((vector unsigned short)__a);
6246 static inline __ATTRS_o_ai vector unsigned short
6247 vec_cntlz(vector unsigned short __a) {
6248 return __builtin_s390_vclzh(__a);
6251 static inline __ATTRS_o_ai vector unsigned int
6252 vec_cntlz(vector signed int __a) {
6253 return __builtin_s390_vclzf((vector unsigned int)__a);
6256 static inline __ATTRS_o_ai vector unsigned int
6257 vec_cntlz(vector unsigned int __a) {
6258 return __builtin_s390_vclzf(__a);
6261 static inline __ATTRS_o_ai vector unsigned long long
6262 vec_cntlz(vector signed long long __a) {
6263 return __builtin_s390_vclzg((vector unsigned long long)__a);
6266 static inline __ATTRS_o_ai vector unsigned long long
6267 vec_cntlz(vector unsigned long long __a) {
6268 return __builtin_s390_vclzg(__a);
6271 /*-- vec_cnttz --------------------------------------------------------------*/
6273 static inline __ATTRS_o_ai vector unsigned char
6274 vec_cnttz(vector signed char __a) {
6275 return __builtin_s390_vctzb((vector unsigned char)__a);
6278 static inline __ATTRS_o_ai vector unsigned char
6279 vec_cnttz(vector unsigned char __a) {
6280 return __builtin_s390_vctzb(__a);
6283 static inline __ATTRS_o_ai vector unsigned short
6284 vec_cnttz(vector signed short __a) {
6285 return __builtin_s390_vctzh((vector unsigned short)__a);
6288 static inline __ATTRS_o_ai vector unsigned short
6289 vec_cnttz(vector unsigned short __a) {
6290 return __builtin_s390_vctzh(__a);
6293 static inline __ATTRS_o_ai vector unsigned int
6294 vec_cnttz(vector signed int __a) {
6295 return __builtin_s390_vctzf((vector unsigned int)__a);
6298 static inline __ATTRS_o_ai vector unsigned int
6299 vec_cnttz(vector unsigned int __a) {
6300 return __builtin_s390_vctzf(__a);
6303 static inline __ATTRS_o_ai vector unsigned long long
6304 vec_cnttz(vector signed long long __a) {
6305 return __builtin_s390_vctzg((vector unsigned long long)__a);
6308 static inline __ATTRS_o_ai vector unsigned long long
6309 vec_cnttz(vector unsigned long long __a) {
6310 return __builtin_s390_vctzg(__a);
6313 /*-- vec_popcnt -------------------------------------------------------------*/
6315 static inline __ATTRS_o_ai vector unsigned char
6316 vec_popcnt(vector signed char __a) {
6317 return __builtin_s390_vpopctb((vector unsigned char)__a);
6320 static inline __ATTRS_o_ai vector unsigned char
6321 vec_popcnt(vector unsigned char __a) {
6322 return __builtin_s390_vpopctb(__a);
6325 static inline __ATTRS_o_ai vector unsigned short
6326 vec_popcnt(vector signed short __a) {
6327 return __builtin_s390_vpopcth((vector unsigned short)__a);
6330 static inline __ATTRS_o_ai vector unsigned short
6331 vec_popcnt(vector unsigned short __a) {
6332 return __builtin_s390_vpopcth(__a);
6335 static inline __ATTRS_o_ai vector unsigned int
6336 vec_popcnt(vector signed int __a) {
6337 return __builtin_s390_vpopctf((vector unsigned int)__a);
6340 static inline __ATTRS_o_ai vector unsigned int
6341 vec_popcnt(vector unsigned int __a) {
6342 return __builtin_s390_vpopctf(__a);
6345 static inline __ATTRS_o_ai vector unsigned long long
6346 vec_popcnt(vector signed long long __a) {
6347 return __builtin_s390_vpopctg((vector unsigned long long)__a);
6350 static inline __ATTRS_o_ai vector unsigned long long
6351 vec_popcnt(vector unsigned long long __a) {
6352 return __builtin_s390_vpopctg(__a);
6355 /*-- vec_rl -----------------------------------------------------------------*/
6357 static inline __ATTRS_o_ai vector signed char
6358 vec_rl(vector signed char __a, vector unsigned char __b) {
6359 return (vector signed char)__builtin_s390_verllvb(
6360 (vector unsigned char)__a, __b);
6363 static inline __ATTRS_o_ai vector unsigned char
6364 vec_rl(vector unsigned char __a, vector unsigned char __b) {
6365 return __builtin_s390_verllvb(__a, __b);
6368 static inline __ATTRS_o_ai vector signed short
6369 vec_rl(vector signed short __a, vector unsigned short __b) {
6370 return (vector signed short)__builtin_s390_verllvh(
6371 (vector unsigned short)__a, __b);
6374 static inline __ATTRS_o_ai vector unsigned short
6375 vec_rl(vector unsigned short __a, vector unsigned short __b) {
6376 return __builtin_s390_verllvh(__a, __b);
6379 static inline __ATTRS_o_ai vector signed int
6380 vec_rl(vector signed int __a, vector unsigned int __b) {
6381 return (vector signed int)__builtin_s390_verllvf(
6382 (vector unsigned int)__a, __b);
6385 static inline __ATTRS_o_ai vector unsigned int
6386 vec_rl(vector unsigned int __a, vector unsigned int __b) {
6387 return __builtin_s390_verllvf(__a, __b);
6390 static inline __ATTRS_o_ai vector signed long long
6391 vec_rl(vector signed long long __a, vector unsigned long long __b) {
6392 return (vector signed long long)__builtin_s390_verllvg(
6393 (vector unsigned long long)__a, __b);
6396 static inline __ATTRS_o_ai vector unsigned long long
6397 vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
6398 return __builtin_s390_verllvg(__a, __b);
6401 /*-- vec_rli ----------------------------------------------------------------*/
6403 static inline __ATTRS_o_ai vector signed char
6404 vec_rli(vector signed char __a, unsigned long __b) {
6405 return (vector signed char)__builtin_s390_verllb(
6406 (vector unsigned char)__a, (int)__b);
6409 static inline __ATTRS_o_ai vector unsigned char
6410 vec_rli(vector unsigned char __a, unsigned long __b) {
6411 return __builtin_s390_verllb(__a, (int)__b);
6414 static inline __ATTRS_o_ai vector signed short
6415 vec_rli(vector signed short __a, unsigned long __b) {
6416 return (vector signed short)__builtin_s390_verllh(
6417 (vector unsigned short)__a, (int)__b);
6420 static inline __ATTRS_o_ai vector unsigned short
6421 vec_rli(vector unsigned short __a, unsigned long __b) {
6422 return __builtin_s390_verllh(__a, (int)__b);
6425 static inline __ATTRS_o_ai vector signed int
6426 vec_rli(vector signed int __a, unsigned long __b) {
6427 return (vector signed int)__builtin_s390_verllf(
6428 (vector unsigned int)__a, (int)__b);
6431 static inline __ATTRS_o_ai vector unsigned int
6432 vec_rli(vector unsigned int __a, unsigned long __b) {
6433 return __builtin_s390_verllf(__a, (int)__b);
6436 static inline __ATTRS_o_ai vector signed long long
6437 vec_rli(vector signed long long __a, unsigned long __b) {
6438 return (vector signed long long)__builtin_s390_verllg(
6439 (vector unsigned long long)__a, (int)__b);
6442 static inline __ATTRS_o_ai vector unsigned long long
6443 vec_rli(vector unsigned long long __a, unsigned long __b) {
6444 return __builtin_s390_verllg(__a, (int)__b);
6447 /*-- vec_rl_mask ------------------------------------------------------------*/
6449 extern __ATTRS_o vector signed char
6450 vec_rl_mask(vector signed char __a, vector unsigned char __b,
6451 unsigned char __c) __constant(__c);
6453 extern __ATTRS_o vector unsigned char
6454 vec_rl_mask(vector unsigned char __a, vector unsigned char __b,
6455 unsigned char __c) __constant(__c);
6457 extern __ATTRS_o vector signed short
6458 vec_rl_mask(vector signed short __a, vector unsigned short __b,
6459 unsigned char __c) __constant(__c);
6461 extern __ATTRS_o vector unsigned short
6462 vec_rl_mask(vector unsigned short __a, vector unsigned short __b,
6463 unsigned char __c) __constant(__c);
6465 extern __ATTRS_o vector signed int
6466 vec_rl_mask(vector signed int __a, vector unsigned int __b,
6467 unsigned char __c) __constant(__c);
6469 extern __ATTRS_o vector unsigned int
6470 vec_rl_mask(vector unsigned int __a, vector unsigned int __b,
6471 unsigned char __c) __constant(__c);
6473 extern __ATTRS_o vector signed long long
6474 vec_rl_mask(vector signed long long __a, vector unsigned long long __b,
6475 unsigned char __c) __constant(__c);
6477 extern __ATTRS_o vector unsigned long long
6478 vec_rl_mask(vector unsigned long long __a, vector unsigned long long __b,
6479 unsigned char __c) __constant(__c);
6481 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
6483 vector unsigned char __res; \
6484 vector unsigned char __x = (vector unsigned char)(X); \
6485 vector unsigned char __y = (vector unsigned char)(Y); \
6486 switch (sizeof ((X)[0])) { \
6487 case 1: __res = (vector unsigned char) __builtin_s390_verimb( \
6488 (vector unsigned char)__x, (vector unsigned char)__x, \
6489 (vector unsigned char)__y, (Z)); break; \
6490 case 2: __res = (vector unsigned char) __builtin_s390_verimh( \
6491 (vector unsigned short)__x, (vector unsigned short)__x, \
6492 (vector unsigned short)__y, (Z)); break; \
6493 case 4: __res = (vector unsigned char) __builtin_s390_verimf( \
6494 (vector unsigned int)__x, (vector unsigned int)__x, \
6495 (vector unsigned int)__y, (Z)); break; \
6496 default: __res = (vector unsigned char) __builtin_s390_verimg( \
6497 (vector unsigned long long)__x, (vector unsigned long long)__x, \
6498 (vector unsigned long long)__y, (Z)); break; \
6501 /*-- vec_sll ----------------------------------------------------------------*/
6503 static inline __ATTRS_o_ai vector signed char
6504 vec_sll(vector signed char __a, vector unsigned char __b) {
6505 return (vector signed char)__builtin_s390_vsl(
6506 (vector unsigned char)__a, __b);
6509 // This prototype is deprecated.
6510 static inline __ATTRS_o_ai vector signed char
6511 vec_sll(vector signed char __a, vector unsigned short __b) {
6512 return (vector signed char)__builtin_s390_vsl(
6513 (vector unsigned char)__a, (vector unsigned char)__b);
6516 // This prototype is deprecated.
6517 static inline __ATTRS_o_ai vector signed char
6518 vec_sll(vector signed char __a, vector unsigned int __b) {
6519 return (vector signed char)__builtin_s390_vsl(
6520 (vector unsigned char)__a, (vector unsigned char)__b);
6523 // This prototype is deprecated.
6524 static inline __ATTRS_o_ai vector bool char
6525 vec_sll(vector bool char __a, vector unsigned char __b) {
6526 return (vector bool char)__builtin_s390_vsl(
6527 (vector unsigned char)__a, __b);
6530 // This prototype is deprecated.
6531 static inline __ATTRS_o_ai vector bool char
6532 vec_sll(vector bool char __a, vector unsigned short __b) {
6533 return (vector bool char)__builtin_s390_vsl(
6534 (vector unsigned char)__a, (vector unsigned char)__b);
6537 // This prototype is deprecated.
6538 static inline __ATTRS_o_ai vector bool char
6539 vec_sll(vector bool char __a, vector unsigned int __b) {
6540 return (vector bool char)__builtin_s390_vsl(
6541 (vector unsigned char)__a, (vector unsigned char)__b);
6544 static inline __ATTRS_o_ai vector unsigned char
6545 vec_sll(vector unsigned char __a, vector unsigned char __b) {
6546 return __builtin_s390_vsl(__a, __b);
6549 // This prototype is deprecated.
6550 static inline __ATTRS_o_ai vector unsigned char
6551 vec_sll(vector unsigned char __a, vector unsigned short __b) {
6552 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6555 // This prototype is deprecated.
6556 static inline __ATTRS_o_ai vector unsigned char
6557 vec_sll(vector unsigned char __a, vector unsigned int __b) {
6558 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6561 static inline __ATTRS_o_ai vector signed short
6562 vec_sll(vector signed short __a, vector unsigned char __b) {
6563 return (vector signed short)__builtin_s390_vsl(
6564 (vector unsigned char)__a, __b);
6567 // This prototype is deprecated.
6568 static inline __ATTRS_o_ai vector signed short
6569 vec_sll(vector signed short __a, vector unsigned short __b) {
6570 return (vector signed short)__builtin_s390_vsl(
6571 (vector unsigned char)__a, (vector unsigned char)__b);
6574 // This prototype is deprecated.
6575 static inline __ATTRS_o_ai vector signed short
6576 vec_sll(vector signed short __a, vector unsigned int __b) {
6577 return (vector signed short)__builtin_s390_vsl(
6578 (vector unsigned char)__a, (vector unsigned char)__b);
6581 // This prototype is deprecated.
6582 static inline __ATTRS_o_ai vector bool short
6583 vec_sll(vector bool short __a, vector unsigned char __b) {
6584 return (vector bool short)__builtin_s390_vsl(
6585 (vector unsigned char)__a, __b);
6588 // This prototype is deprecated.
6589 static inline __ATTRS_o_ai vector bool short
6590 vec_sll(vector bool short __a, vector unsigned short __b) {
6591 return (vector bool short)__builtin_s390_vsl(
6592 (vector unsigned char)__a, (vector unsigned char)__b);
6595 // This prototype is deprecated.
6596 static inline __ATTRS_o_ai vector bool short
6597 vec_sll(vector bool short __a, vector unsigned int __b) {
6598 return (vector bool short)__builtin_s390_vsl(
6599 (vector unsigned char)__a, (vector unsigned char)__b);
6602 static inline __ATTRS_o_ai vector unsigned short
6603 vec_sll(vector unsigned short __a, vector unsigned char __b) {
6604 return (vector unsigned short)__builtin_s390_vsl(
6605 (vector unsigned char)__a, __b);
6608 // This prototype is deprecated.
6609 static inline __ATTRS_o_ai vector unsigned short
6610 vec_sll(vector unsigned short __a, vector unsigned short __b) {
6611 return (vector unsigned short)__builtin_s390_vsl(
6612 (vector unsigned char)__a, (vector unsigned char)__b);
6615 // This prototype is deprecated.
6616 static inline __ATTRS_o_ai vector unsigned short
6617 vec_sll(vector unsigned short __a, vector unsigned int __b) {
6618 return (vector unsigned short)__builtin_s390_vsl(
6619 (vector unsigned char)__a, (vector unsigned char)__b);
6622 static inline __ATTRS_o_ai vector signed int
6623 vec_sll(vector signed int __a, vector unsigned char __b) {
6624 return (vector signed int)__builtin_s390_vsl(
6625 (vector unsigned char)__a, __b);
6628 // This prototype is deprecated.
6629 static inline __ATTRS_o_ai vector signed int
6630 vec_sll(vector signed int __a, vector unsigned short __b) {
6631 return (vector signed int)__builtin_s390_vsl(
6632 (vector unsigned char)__a, (vector unsigned char)__b);
6635 // This prototype is deprecated.
6636 static inline __ATTRS_o_ai vector signed int
6637 vec_sll(vector signed int __a, vector unsigned int __b) {
6638 return (vector signed int)__builtin_s390_vsl(
6639 (vector unsigned char)__a, (vector unsigned char)__b);
6642 // This prototype is deprecated.
6643 static inline __ATTRS_o_ai vector bool int
6644 vec_sll(vector bool int __a, vector unsigned char __b) {
6645 return (vector bool int)__builtin_s390_vsl(
6646 (vector unsigned char)__a, __b);
6649 // This prototype is deprecated.
6650 static inline __ATTRS_o_ai vector bool int
6651 vec_sll(vector bool int __a, vector unsigned short __b) {
6652 return (vector bool int)__builtin_s390_vsl(
6653 (vector unsigned char)__a, (vector unsigned char)__b);
6656 // This prototype is deprecated.
6657 static inline __ATTRS_o_ai vector bool int
6658 vec_sll(vector bool int __a, vector unsigned int __b) {
6659 return (vector bool int)__builtin_s390_vsl(
6660 (vector unsigned char)__a, (vector unsigned char)__b);
6663 static inline __ATTRS_o_ai vector unsigned int
6664 vec_sll(vector unsigned int __a, vector unsigned char __b) {
6665 return (vector unsigned int)__builtin_s390_vsl(
6666 (vector unsigned char)__a, __b);
6669 // This prototype is deprecated.
6670 static inline __ATTRS_o_ai vector unsigned int
6671 vec_sll(vector unsigned int __a, vector unsigned short __b) {
6672 return (vector unsigned int)__builtin_s390_vsl(
6673 (vector unsigned char)__a, (vector unsigned char)__b);
6676 // This prototype is deprecated.
6677 static inline __ATTRS_o_ai vector unsigned int
6678 vec_sll(vector unsigned int __a, vector unsigned int __b) {
6679 return (vector unsigned int)__builtin_s390_vsl(
6680 (vector unsigned char)__a, (vector unsigned char)__b);
6683 static inline __ATTRS_o_ai vector signed long long
6684 vec_sll(vector signed long long __a, vector unsigned char __b) {
6685 return (vector signed long long)__builtin_s390_vsl(
6686 (vector unsigned char)__a, __b);
6689 // This prototype is deprecated.
6690 static inline __ATTRS_o_ai vector signed long long
6691 vec_sll(vector signed long long __a, vector unsigned short __b) {
6692 return (vector signed long long)__builtin_s390_vsl(
6693 (vector unsigned char)__a, (vector unsigned char)__b);
6696 // This prototype is deprecated.
6697 static inline __ATTRS_o_ai vector signed long long
6698 vec_sll(vector signed long long __a, vector unsigned int __b) {
6699 return (vector signed long long)__builtin_s390_vsl(
6700 (vector unsigned char)__a, (vector unsigned char)__b);
6703 // This prototype is deprecated.
6704 static inline __ATTRS_o_ai vector bool long long
6705 vec_sll(vector bool long long __a, vector unsigned char __b) {
6706 return (vector bool long long)__builtin_s390_vsl(
6707 (vector unsigned char)__a, __b);
6710 // This prototype is deprecated.
6711 static inline __ATTRS_o_ai vector bool long long
6712 vec_sll(vector bool long long __a, vector unsigned short __b) {
6713 return (vector bool long long)__builtin_s390_vsl(
6714 (vector unsigned char)__a, (vector unsigned char)__b);
6717 // This prototype is deprecated.
6718 static inline __ATTRS_o_ai vector bool long long
6719 vec_sll(vector bool long long __a, vector unsigned int __b) {
6720 return (vector bool long long)__builtin_s390_vsl(
6721 (vector unsigned char)__a, (vector unsigned char)__b);
6724 static inline __ATTRS_o_ai vector unsigned long long
6725 vec_sll(vector unsigned long long __a, vector unsigned char __b) {
6726 return (vector unsigned long long)__builtin_s390_vsl(
6727 (vector unsigned char)__a, __b);
6730 // This prototype is deprecated.
6731 static inline __ATTRS_o_ai vector unsigned long long
6732 vec_sll(vector unsigned long long __a, vector unsigned short __b) {
6733 return (vector unsigned long long)__builtin_s390_vsl(
6734 (vector unsigned char)__a, (vector unsigned char)__b);
6737 // This prototype is deprecated.
6738 static inline __ATTRS_o_ai vector unsigned long long
6739 vec_sll(vector unsigned long long __a, vector unsigned int __b) {
6740 return (vector unsigned long long)__builtin_s390_vsl(
6741 (vector unsigned char)__a, (vector unsigned char)__b);
6744 /*-- vec_slb ----------------------------------------------------------------*/
6746 static inline __ATTRS_o_ai vector signed char
6747 vec_slb(vector signed char __a, vector signed char __b) {
6748 return (vector signed char)__builtin_s390_vslb(
6749 (vector unsigned char)__a, (vector unsigned char)__b);
6752 static inline __ATTRS_o_ai vector signed char
6753 vec_slb(vector signed char __a, vector unsigned char __b) {
6754 return (vector signed char)__builtin_s390_vslb(
6755 (vector unsigned char)__a, __b);
6758 static inline __ATTRS_o_ai vector unsigned char
6759 vec_slb(vector unsigned char __a, vector signed char __b) {
6760 return __builtin_s390_vslb(__a, (vector unsigned char)__b);
6763 static inline __ATTRS_o_ai vector unsigned char
6764 vec_slb(vector unsigned char __a, vector unsigned char __b) {
6765 return __builtin_s390_vslb(__a, __b);
6768 static inline __ATTRS_o_ai vector signed short
6769 vec_slb(vector signed short __a, vector signed short __b) {
6770 return (vector signed short)__builtin_s390_vslb(
6771 (vector unsigned char)__a, (vector unsigned char)__b);
6774 static inline __ATTRS_o_ai vector signed short
6775 vec_slb(vector signed short __a, vector unsigned short __b) {
6776 return (vector signed short)__builtin_s390_vslb(
6777 (vector unsigned char)__a, (vector unsigned char)__b);
6780 static inline __ATTRS_o_ai vector unsigned short
6781 vec_slb(vector unsigned short __a, vector signed short __b) {
6782 return (vector unsigned short)__builtin_s390_vslb(
6783 (vector unsigned char)__a, (vector unsigned char)__b);
6786 static inline __ATTRS_o_ai vector unsigned short
6787 vec_slb(vector unsigned short __a, vector unsigned short __b) {
6788 return (vector unsigned short)__builtin_s390_vslb(
6789 (vector unsigned char)__a, (vector unsigned char)__b);
6792 static inline __ATTRS_o_ai vector signed int
6793 vec_slb(vector signed int __a, vector signed int __b) {
6794 return (vector signed int)__builtin_s390_vslb(
6795 (vector unsigned char)__a, (vector unsigned char)__b);
6798 static inline __ATTRS_o_ai vector signed int
6799 vec_slb(vector signed int __a, vector unsigned int __b) {
6800 return (vector signed int)__builtin_s390_vslb(
6801 (vector unsigned char)__a, (vector unsigned char)__b);
6804 static inline __ATTRS_o_ai vector unsigned int
6805 vec_slb(vector unsigned int __a, vector signed int __b) {
6806 return (vector unsigned int)__builtin_s390_vslb(
6807 (vector unsigned char)__a, (vector unsigned char)__b);
6810 static inline __ATTRS_o_ai vector unsigned int
6811 vec_slb(vector unsigned int __a, vector unsigned int __b) {
6812 return (vector unsigned int)__builtin_s390_vslb(
6813 (vector unsigned char)__a, (vector unsigned char)__b);
6816 static inline __ATTRS_o_ai vector signed long long
6817 vec_slb(vector signed long long __a, vector signed long long __b) {
6818 return (vector signed long long)__builtin_s390_vslb(
6819 (vector unsigned char)__a, (vector unsigned char)__b);
6822 static inline __ATTRS_o_ai vector signed long long
6823 vec_slb(vector signed long long __a, vector unsigned long long __b) {
6824 return (vector signed long long)__builtin_s390_vslb(
6825 (vector unsigned char)__a, (vector unsigned char)__b);
6828 static inline __ATTRS_o_ai vector unsigned long long
6829 vec_slb(vector unsigned long long __a, vector signed long long __b) {
6830 return (vector unsigned long long)__builtin_s390_vslb(
6831 (vector unsigned char)__a, (vector unsigned char)__b);
6834 static inline __ATTRS_o_ai vector unsigned long long
6835 vec_slb(vector unsigned long long __a, vector unsigned long long __b) {
6836 return (vector unsigned long long)__builtin_s390_vslb(
6837 (vector unsigned char)__a, (vector unsigned char)__b);
6841 static inline __ATTRS_o_ai vector float
6842 vec_slb(vector float __a, vector signed int __b) {
6843 return (vector float)__builtin_s390_vslb(
6844 (vector unsigned char)__a, (vector unsigned char)__b);
6847 static inline __ATTRS_o_ai vector float
6848 vec_slb(vector float __a, vector unsigned int __b) {
6849 return (vector float)__builtin_s390_vslb(
6850 (vector unsigned char)__a, (vector unsigned char)__b);
6854 static inline __ATTRS_o_ai vector double
6855 vec_slb(vector double __a, vector signed long long __b) {
6856 return (vector double)__builtin_s390_vslb(
6857 (vector unsigned char)__a, (vector unsigned char)__b);
6860 static inline __ATTRS_o_ai vector double
6861 vec_slb(vector double __a, vector unsigned long long __b) {
6862 return (vector double)__builtin_s390_vslb(
6863 (vector unsigned char)__a, (vector unsigned char)__b);
6866 /*-- vec_sld ----------------------------------------------------------------*/
6868 extern __ATTRS_o vector signed char
6869 vec_sld(vector signed char __a, vector signed char __b, int __c)
6870 __constant_range(__c, 0, 15);
6872 extern __ATTRS_o vector bool char
6873 vec_sld(vector bool char __a, vector bool char __b, int __c)
6874 __constant_range(__c, 0, 15);
6876 extern __ATTRS_o vector unsigned char
6877 vec_sld(vector unsigned char __a, vector unsigned char __b, int __c)
6878 __constant_range(__c, 0, 15);
6880 extern __ATTRS_o vector signed short
6881 vec_sld(vector signed short __a, vector signed short __b, int __c)
6882 __constant_range(__c, 0, 15);
6884 extern __ATTRS_o vector bool short
6885 vec_sld(vector bool short __a, vector bool short __b, int __c)
6886 __constant_range(__c, 0, 15);
6888 extern __ATTRS_o vector unsigned short
6889 vec_sld(vector unsigned short __a, vector unsigned short __b, int __c)
6890 __constant_range(__c, 0, 15);
6892 extern __ATTRS_o vector signed int
6893 vec_sld(vector signed int __a, vector signed int __b, int __c)
6894 __constant_range(__c, 0, 15);
6896 extern __ATTRS_o vector bool int
6897 vec_sld(vector bool int __a, vector bool int __b, int __c)
6898 __constant_range(__c, 0, 15);
6900 extern __ATTRS_o vector unsigned int
6901 vec_sld(vector unsigned int __a, vector unsigned int __b, int __c)
6902 __constant_range(__c, 0, 15);
6904 extern __ATTRS_o vector signed long long
6905 vec_sld(vector signed long long __a, vector signed long long __b, int __c)
6906 __constant_range(__c, 0, 15);
6908 extern __ATTRS_o vector bool long long
6909 vec_sld(vector bool long long __a, vector bool long long __b, int __c)
6910 __constant_range(__c, 0, 15);
6912 extern __ATTRS_o vector unsigned long long
6913 vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c)
6914 __constant_range(__c, 0, 15);
6917 extern __ATTRS_o vector float
6918 vec_sld(vector float __a, vector float __b, int __c)
6919 __constant_range(__c, 0, 15);
6922 extern __ATTRS_o vector double
6923 vec_sld(vector double __a, vector double __b, int __c)
6924 __constant_range(__c, 0, 15);
6926 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
6927 __builtin_s390_vsldb((vector unsigned char)(X), \
6928 (vector unsigned char)(Y), (Z)))
6930 /*-- vec_sldw ---------------------------------------------------------------*/
6932 extern __ATTRS_o vector signed char
6933 vec_sldw(vector signed char __a, vector signed char __b, int __c)
6934 __constant_range(__c, 0, 3);
6936 extern __ATTRS_o vector unsigned char
6937 vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c)
6938 __constant_range(__c, 0, 3);
6940 extern __ATTRS_o vector signed short
6941 vec_sldw(vector signed short __a, vector signed short __b, int __c)
6942 __constant_range(__c, 0, 3);
6944 extern __ATTRS_o vector unsigned short
6945 vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c)
6946 __constant_range(__c, 0, 3);
6948 extern __ATTRS_o vector signed int
6949 vec_sldw(vector signed int __a, vector signed int __b, int __c)
6950 __constant_range(__c, 0, 3);
6952 extern __ATTRS_o vector unsigned int
6953 vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c)
6954 __constant_range(__c, 0, 3);
6956 extern __ATTRS_o vector signed long long
6957 vec_sldw(vector signed long long __a, vector signed long long __b, int __c)
6958 __constant_range(__c, 0, 3);
6960 extern __ATTRS_o vector unsigned long long
6961 vec_sldw(vector unsigned long long __a, vector unsigned long long __b, int __c)
6962 __constant_range(__c, 0, 3);
6964 // This prototype is deprecated.
6965 extern __ATTRS_o vector double
6966 vec_sldw(vector double __a, vector double __b, int __c)
6967 __constant_range(__c, 0, 3);
6969 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
6970 __builtin_s390_vsldb((vector unsigned char)(X), \
6971 (vector unsigned char)(Y), (Z) * 4))
6973 /*-- vec_sldb ---------------------------------------------------------------*/
6977 extern __ATTRS_o vector signed char
6978 vec_sldb(vector signed char __a, vector signed char __b, int __c)
6979 __constant_range(__c, 0, 7);
6981 extern __ATTRS_o vector unsigned char
6982 vec_sldb(vector unsigned char __a, vector unsigned char __b, int __c)
6983 __constant_range(__c, 0, 7);
6985 extern __ATTRS_o vector signed short
6986 vec_sldb(vector signed short __a, vector signed short __b, int __c)
6987 __constant_range(__c, 0, 7);
6989 extern __ATTRS_o vector unsigned short
6990 vec_sldb(vector unsigned short __a, vector unsigned short __b, int __c)
6991 __constant_range(__c, 0, 7);
6993 extern __ATTRS_o vector signed int
6994 vec_sldb(vector signed int __a, vector signed int __b, int __c)
6995 __constant_range(__c, 0, 7);
6997 extern __ATTRS_o vector unsigned int
6998 vec_sldb(vector unsigned int __a, vector unsigned int __b, int __c)
6999 __constant_range(__c, 0, 7);
7001 extern __ATTRS_o vector signed long long
7002 vec_sldb(vector signed long long __a, vector signed long long __b, int __c)
7003 __constant_range(__c, 0, 7);
7005 extern __ATTRS_o vector unsigned long long
7006 vec_sldb(vector unsigned long long __a, vector unsigned long long __b, int __c)
7007 __constant_range(__c, 0, 7);
7009 extern __ATTRS_o vector float
7010 vec_sldb(vector float __a, vector float __b, int __c)
7011 __constant_range(__c, 0, 7);
7013 extern __ATTRS_o vector double
7014 vec_sldb(vector double __a, vector double __b, int __c)
7015 __constant_range(__c, 0, 7);
7017 #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
7018 __builtin_s390_vsld((vector unsigned char)(X), \
7019 (vector unsigned char)(Y), (Z)))
7023 /*-- vec_sral ---------------------------------------------------------------*/
7025 static inline __ATTRS_o_ai vector signed char
7026 vec_sral(vector signed char __a, vector unsigned char __b) {
7027 return (vector signed char)__builtin_s390_vsra(
7028 (vector unsigned char)__a, __b);
7031 // This prototype is deprecated.
7032 static inline __ATTRS_o_ai vector signed char
7033 vec_sral(vector signed char __a, vector unsigned short __b) {
7034 return (vector signed char)__builtin_s390_vsra(
7035 (vector unsigned char)__a, (vector unsigned char)__b);
7038 // This prototype is deprecated.
7039 static inline __ATTRS_o_ai vector signed char
7040 vec_sral(vector signed char __a, vector unsigned int __b) {
7041 return (vector signed char)__builtin_s390_vsra(
7042 (vector unsigned char)__a, (vector unsigned char)__b);
7045 // This prototype is deprecated.
7046 static inline __ATTRS_o_ai vector bool char
7047 vec_sral(vector bool char __a, vector unsigned char __b) {
7048 return (vector bool char)__builtin_s390_vsra(
7049 (vector unsigned char)__a, __b);
7052 // This prototype is deprecated.
7053 static inline __ATTRS_o_ai vector bool char
7054 vec_sral(vector bool char __a, vector unsigned short __b) {
7055 return (vector bool char)__builtin_s390_vsra(
7056 (vector unsigned char)__a, (vector unsigned char)__b);
7059 // This prototype is deprecated.
7060 static inline __ATTRS_o_ai vector bool char
7061 vec_sral(vector bool char __a, vector unsigned int __b) {
7062 return (vector bool char)__builtin_s390_vsra(
7063 (vector unsigned char)__a, (vector unsigned char)__b);
7066 static inline __ATTRS_o_ai vector unsigned char
7067 vec_sral(vector unsigned char __a, vector unsigned char __b) {
7068 return __builtin_s390_vsra(__a, __b);
7071 // This prototype is deprecated.
7072 static inline __ATTRS_o_ai vector unsigned char
7073 vec_sral(vector unsigned char __a, vector unsigned short __b) {
7074 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
7077 // This prototype is deprecated.
7078 static inline __ATTRS_o_ai vector unsigned char
7079 vec_sral(vector unsigned char __a, vector unsigned int __b) {
7080 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
7083 static inline __ATTRS_o_ai vector signed short
7084 vec_sral(vector signed short __a, vector unsigned char __b) {
7085 return (vector signed short)__builtin_s390_vsra(
7086 (vector unsigned char)__a, __b);
7089 // This prototype is deprecated.
7090 static inline __ATTRS_o_ai vector signed short
7091 vec_sral(vector signed short __a, vector unsigned short __b) {
7092 return (vector signed short)__builtin_s390_vsra(
7093 (vector unsigned char)__a, (vector unsigned char)__b);
7096 // This prototype is deprecated.
7097 static inline __ATTRS_o_ai vector signed short
7098 vec_sral(vector signed short __a, vector unsigned int __b) {
7099 return (vector signed short)__builtin_s390_vsra(
7100 (vector unsigned char)__a, (vector unsigned char)__b);
7103 // This prototype is deprecated.
7104 static inline __ATTRS_o_ai vector bool short
7105 vec_sral(vector bool short __a, vector unsigned char __b) {
7106 return (vector bool short)__builtin_s390_vsra(
7107 (vector unsigned char)__a, __b);
7110 // This prototype is deprecated.
7111 static inline __ATTRS_o_ai vector bool short
7112 vec_sral(vector bool short __a, vector unsigned short __b) {
7113 return (vector bool short)__builtin_s390_vsra(
7114 (vector unsigned char)__a, (vector unsigned char)__b);
7117 // This prototype is deprecated.
7118 static inline __ATTRS_o_ai vector bool short
7119 vec_sral(vector bool short __a, vector unsigned int __b) {
7120 return (vector bool short)__builtin_s390_vsra(
7121 (vector unsigned char)__a, (vector unsigned char)__b);
7124 static inline __ATTRS_o_ai vector unsigned short
7125 vec_sral(vector unsigned short __a, vector unsigned char __b) {
7126 return (vector unsigned short)__builtin_s390_vsra(
7127 (vector unsigned char)__a, __b);
7130 // This prototype is deprecated.
7131 static inline __ATTRS_o_ai vector unsigned short
7132 vec_sral(vector unsigned short __a, vector unsigned short __b) {
7133 return (vector unsigned short)__builtin_s390_vsra(
7134 (vector unsigned char)__a, (vector unsigned char)__b);
7137 // This prototype is deprecated.
7138 static inline __ATTRS_o_ai vector unsigned short
7139 vec_sral(vector unsigned short __a, vector unsigned int __b) {
7140 return (vector unsigned short)__builtin_s390_vsra(
7141 (vector unsigned char)__a, (vector unsigned char)__b);
7144 static inline __ATTRS_o_ai vector signed int
7145 vec_sral(vector signed int __a, vector unsigned char __b) {
7146 return (vector signed int)__builtin_s390_vsra(
7147 (vector unsigned char)__a, __b);
7150 // This prototype is deprecated.
7151 static inline __ATTRS_o_ai vector signed int
7152 vec_sral(vector signed int __a, vector unsigned short __b) {
7153 return (vector signed int)__builtin_s390_vsra(
7154 (vector unsigned char)__a, (vector unsigned char)__b);
7157 // This prototype is deprecated.
7158 static inline __ATTRS_o_ai vector signed int
7159 vec_sral(vector signed int __a, vector unsigned int __b) {
7160 return (vector signed int)__builtin_s390_vsra(
7161 (vector unsigned char)__a, (vector unsigned char)__b);
7164 // This prototype is deprecated.
7165 static inline __ATTRS_o_ai vector bool int
7166 vec_sral(vector bool int __a, vector unsigned char __b) {
7167 return (vector bool int)__builtin_s390_vsra(
7168 (vector unsigned char)__a, __b);
7171 // This prototype is deprecated.
7172 static inline __ATTRS_o_ai vector bool int
7173 vec_sral(vector bool int __a, vector unsigned short __b) {
7174 return (vector bool int)__builtin_s390_vsra(
7175 (vector unsigned char)__a, (vector unsigned char)__b);
7178 // This prototype is deprecated.
7179 static inline __ATTRS_o_ai vector bool int
7180 vec_sral(vector bool int __a, vector unsigned int __b) {
7181 return (vector bool int)__builtin_s390_vsra(
7182 (vector unsigned char)__a, (vector unsigned char)__b);
7185 static inline __ATTRS_o_ai vector unsigned int
7186 vec_sral(vector unsigned int __a, vector unsigned char __b) {
7187 return (vector unsigned int)__builtin_s390_vsra(
7188 (vector unsigned char)__a, __b);
7191 // This prototype is deprecated.
7192 static inline __ATTRS_o_ai vector unsigned int
7193 vec_sral(vector unsigned int __a, vector unsigned short __b) {
7194 return (vector unsigned int)__builtin_s390_vsra(
7195 (vector unsigned char)__a, (vector unsigned char)__b);
7198 // This prototype is deprecated.
7199 static inline __ATTRS_o_ai vector unsigned int
7200 vec_sral(vector unsigned int __a, vector unsigned int __b) {
7201 return (vector unsigned int)__builtin_s390_vsra(
7202 (vector unsigned char)__a, (vector unsigned char)__b);
7205 static inline __ATTRS_o_ai vector signed long long
7206 vec_sral(vector signed long long __a, vector unsigned char __b) {
7207 return (vector signed long long)__builtin_s390_vsra(
7208 (vector unsigned char)__a, __b);
7211 // This prototype is deprecated.
7212 static inline __ATTRS_o_ai vector signed long long
7213 vec_sral(vector signed long long __a, vector unsigned short __b) {
7214 return (vector signed long long)__builtin_s390_vsra(
7215 (vector unsigned char)__a, (vector unsigned char)__b);
7218 // This prototype is deprecated.
7219 static inline __ATTRS_o_ai vector signed long long
7220 vec_sral(vector signed long long __a, vector unsigned int __b) {
7221 return (vector signed long long)__builtin_s390_vsra(
7222 (vector unsigned char)__a, (vector unsigned char)__b);
7225 // This prototype is deprecated.
7226 static inline __ATTRS_o_ai vector bool long long
7227 vec_sral(vector bool long long __a, vector unsigned char __b) {
7228 return (vector bool long long)__builtin_s390_vsra(
7229 (vector unsigned char)__a, __b);
7232 // This prototype is deprecated.
7233 static inline __ATTRS_o_ai vector bool long long
7234 vec_sral(vector bool long long __a, vector unsigned short __b) {
7235 return (vector bool long long)__builtin_s390_vsra(
7236 (vector unsigned char)__a, (vector unsigned char)__b);
7239 // This prototype is deprecated.
7240 static inline __ATTRS_o_ai vector bool long long
7241 vec_sral(vector bool long long __a, vector unsigned int __b) {
7242 return (vector bool long long)__builtin_s390_vsra(
7243 (vector unsigned char)__a, (vector unsigned char)__b);
7246 static inline __ATTRS_o_ai vector unsigned long long
7247 vec_sral(vector unsigned long long __a, vector unsigned char __b) {
7248 return (vector unsigned long long)__builtin_s390_vsra(
7249 (vector unsigned char)__a, __b);
7252 // This prototype is deprecated.
7253 static inline __ATTRS_o_ai vector unsigned long long
7254 vec_sral(vector unsigned long long __a, vector unsigned short __b) {
7255 return (vector unsigned long long)__builtin_s390_vsra(
7256 (vector unsigned char)__a, (vector unsigned char)__b);
7259 // This prototype is deprecated.
7260 static inline __ATTRS_o_ai vector unsigned long long
7261 vec_sral(vector unsigned long long __a, vector unsigned int __b) {
7262 return (vector unsigned long long)__builtin_s390_vsra(
7263 (vector unsigned char)__a, (vector unsigned char)__b);
7266 /*-- vec_srab ---------------------------------------------------------------*/
7268 static inline __ATTRS_o_ai vector signed char
7269 vec_srab(vector signed char __a, vector signed char __b) {
7270 return (vector signed char)__builtin_s390_vsrab(
7271 (vector unsigned char)__a, (vector unsigned char)__b);
7274 static inline __ATTRS_o_ai vector signed char
7275 vec_srab(vector signed char __a, vector unsigned char __b) {
7276 return (vector signed char)__builtin_s390_vsrab(
7277 (vector unsigned char)__a, __b);
7280 static inline __ATTRS_o_ai vector unsigned char
7281 vec_srab(vector unsigned char __a, vector signed char __b) {
7282 return __builtin_s390_vsrab(__a, (vector unsigned char)__b);
7285 static inline __ATTRS_o_ai vector unsigned char
7286 vec_srab(vector unsigned char __a, vector unsigned char __b) {
7287 return __builtin_s390_vsrab(__a, __b);
7290 static inline __ATTRS_o_ai vector signed short
7291 vec_srab(vector signed short __a, vector signed short __b) {
7292 return (vector signed short)__builtin_s390_vsrab(
7293 (vector unsigned char)__a, (vector unsigned char)__b);
7296 static inline __ATTRS_o_ai vector signed short
7297 vec_srab(vector signed short __a, vector unsigned short __b) {
7298 return (vector signed short)__builtin_s390_vsrab(
7299 (vector unsigned char)__a, (vector unsigned char)__b);
7302 static inline __ATTRS_o_ai vector unsigned short
7303 vec_srab(vector unsigned short __a, vector signed short __b) {
7304 return (vector unsigned short)__builtin_s390_vsrab(
7305 (vector unsigned char)__a, (vector unsigned char)__b);
7308 static inline __ATTRS_o_ai vector unsigned short
7309 vec_srab(vector unsigned short __a, vector unsigned short __b) {
7310 return (vector unsigned short)__builtin_s390_vsrab(
7311 (vector unsigned char)__a, (vector unsigned char)__b);
7314 static inline __ATTRS_o_ai vector signed int
7315 vec_srab(vector signed int __a, vector signed int __b) {
7316 return (vector signed int)__builtin_s390_vsrab(
7317 (vector unsigned char)__a, (vector unsigned char)__b);
7320 static inline __ATTRS_o_ai vector signed int
7321 vec_srab(vector signed int __a, vector unsigned int __b) {
7322 return (vector signed int)__builtin_s390_vsrab(
7323 (vector unsigned char)__a, (vector unsigned char)__b);
7326 static inline __ATTRS_o_ai vector unsigned int
7327 vec_srab(vector unsigned int __a, vector signed int __b) {
7328 return (vector unsigned int)__builtin_s390_vsrab(
7329 (vector unsigned char)__a, (vector unsigned char)__b);
7332 static inline __ATTRS_o_ai vector unsigned int
7333 vec_srab(vector unsigned int __a, vector unsigned int __b) {
7334 return (vector unsigned int)__builtin_s390_vsrab(
7335 (vector unsigned char)__a, (vector unsigned char)__b);
7338 static inline __ATTRS_o_ai vector signed long long
7339 vec_srab(vector signed long long __a, vector signed long long __b) {
7340 return (vector signed long long)__builtin_s390_vsrab(
7341 (vector unsigned char)__a, (vector unsigned char)__b);
7344 static inline __ATTRS_o_ai vector signed long long
7345 vec_srab(vector signed long long __a, vector unsigned long long __b) {
7346 return (vector signed long long)__builtin_s390_vsrab(
7347 (vector unsigned char)__a, (vector unsigned char)__b);
7350 static inline __ATTRS_o_ai vector unsigned long long
7351 vec_srab(vector unsigned long long __a, vector signed long long __b) {
7352 return (vector unsigned long long)__builtin_s390_vsrab(
7353 (vector unsigned char)__a, (vector unsigned char)__b);
7356 static inline __ATTRS_o_ai vector unsigned long long
7357 vec_srab(vector unsigned long long __a, vector unsigned long long __b) {
7358 return (vector unsigned long long)__builtin_s390_vsrab(
7359 (vector unsigned char)__a, (vector unsigned char)__b);
7363 static inline __ATTRS_o_ai vector float
7364 vec_srab(vector float __a, vector signed int __b) {
7365 return (vector float)__builtin_s390_vsrab(
7366 (vector unsigned char)__a, (vector unsigned char)__b);
7369 static inline __ATTRS_o_ai vector float
7370 vec_srab(vector float __a, vector unsigned int __b) {
7371 return (vector float)__builtin_s390_vsrab(
7372 (vector unsigned char)__a, (vector unsigned char)__b);
7376 static inline __ATTRS_o_ai vector double
7377 vec_srab(vector double __a, vector signed long long __b) {
7378 return (vector double)__builtin_s390_vsrab(
7379 (vector unsigned char)__a, (vector unsigned char)__b);
7382 static inline __ATTRS_o_ai vector double
7383 vec_srab(vector double __a, vector unsigned long long __b) {
7384 return (vector double)__builtin_s390_vsrab(
7385 (vector unsigned char)__a, (vector unsigned char)__b);
7388 /*-- vec_srl ----------------------------------------------------------------*/
7390 static inline __ATTRS_o_ai vector signed char
7391 vec_srl(vector signed char __a, vector unsigned char __b) {
7392 return (vector signed char)__builtin_s390_vsrl(
7393 (vector unsigned char)__a, __b);
7396 // This prototype is deprecated.
7397 static inline __ATTRS_o_ai vector signed char
7398 vec_srl(vector signed char __a, vector unsigned short __b) {
7399 return (vector signed char)__builtin_s390_vsrl(
7400 (vector unsigned char)__a, (vector unsigned char)__b);
7403 // This prototype is deprecated.
7404 static inline __ATTRS_o_ai vector signed char
7405 vec_srl(vector signed char __a, vector unsigned int __b) {
7406 return (vector signed char)__builtin_s390_vsrl(
7407 (vector unsigned char)__a, (vector unsigned char)__b);
7410 // This prototype is deprecated.
7411 static inline __ATTRS_o_ai vector bool char
7412 vec_srl(vector bool char __a, vector unsigned char __b) {
7413 return (vector bool char)__builtin_s390_vsrl(
7414 (vector unsigned char)__a, __b);
7417 // This prototype is deprecated.
7418 static inline __ATTRS_o_ai vector bool char
7419 vec_srl(vector bool char __a, vector unsigned short __b) {
7420 return (vector bool char)__builtin_s390_vsrl(
7421 (vector unsigned char)__a, (vector unsigned char)__b);
7424 // This prototype is deprecated.
7425 static inline __ATTRS_o_ai vector bool char
7426 vec_srl(vector bool char __a, vector unsigned int __b) {
7427 return (vector bool char)__builtin_s390_vsrl(
7428 (vector unsigned char)__a, (vector unsigned char)__b);
7431 static inline __ATTRS_o_ai vector unsigned char
7432 vec_srl(vector unsigned char __a, vector unsigned char __b) {
7433 return __builtin_s390_vsrl(__a, __b);
7436 // This prototype is deprecated.
7437 static inline __ATTRS_o_ai vector unsigned char
7438 vec_srl(vector unsigned char __a, vector unsigned short __b) {
7439 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7442 // This prototype is deprecated.
7443 static inline __ATTRS_o_ai vector unsigned char
7444 vec_srl(vector unsigned char __a, vector unsigned int __b) {
7445 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7448 static inline __ATTRS_o_ai vector signed short
7449 vec_srl(vector signed short __a, vector unsigned char __b) {
7450 return (vector signed short)__builtin_s390_vsrl(
7451 (vector unsigned char)__a, __b);
7454 // This prototype is deprecated.
7455 static inline __ATTRS_o_ai vector signed short
7456 vec_srl(vector signed short __a, vector unsigned short __b) {
7457 return (vector signed short)__builtin_s390_vsrl(
7458 (vector unsigned char)__a, (vector unsigned char)__b);
7461 // This prototype is deprecated.
7462 static inline __ATTRS_o_ai vector signed short
7463 vec_srl(vector signed short __a, vector unsigned int __b) {
7464 return (vector signed short)__builtin_s390_vsrl(
7465 (vector unsigned char)__a, (vector unsigned char)__b);
7468 // This prototype is deprecated.
7469 static inline __ATTRS_o_ai vector bool short
7470 vec_srl(vector bool short __a, vector unsigned char __b) {
7471 return (vector bool short)__builtin_s390_vsrl(
7472 (vector unsigned char)__a, __b);
7475 // This prototype is deprecated.
7476 static inline __ATTRS_o_ai vector bool short
7477 vec_srl(vector bool short __a, vector unsigned short __b) {
7478 return (vector bool short)__builtin_s390_vsrl(
7479 (vector unsigned char)__a, (vector unsigned char)__b);
7482 // This prototype is deprecated.
7483 static inline __ATTRS_o_ai vector bool short
7484 vec_srl(vector bool short __a, vector unsigned int __b) {
7485 return (vector bool short)__builtin_s390_vsrl(
7486 (vector unsigned char)__a, (vector unsigned char)__b);
7489 static inline __ATTRS_o_ai vector unsigned short
7490 vec_srl(vector unsigned short __a, vector unsigned char __b) {
7491 return (vector unsigned short)__builtin_s390_vsrl(
7492 (vector unsigned char)__a, __b);
7495 // This prototype is deprecated.
7496 static inline __ATTRS_o_ai vector unsigned short
7497 vec_srl(vector unsigned short __a, vector unsigned short __b) {
7498 return (vector unsigned short)__builtin_s390_vsrl(
7499 (vector unsigned char)__a, (vector unsigned char)__b);
7502 // This prototype is deprecated.
7503 static inline __ATTRS_o_ai vector unsigned short
7504 vec_srl(vector unsigned short __a, vector unsigned int __b) {
7505 return (vector unsigned short)__builtin_s390_vsrl(
7506 (vector unsigned char)__a, (vector unsigned char)__b);
7509 static inline __ATTRS_o_ai vector signed int
7510 vec_srl(vector signed int __a, vector unsigned char __b) {
7511 return (vector signed int)__builtin_s390_vsrl(
7512 (vector unsigned char)__a, __b);
7515 // This prototype is deprecated.
7516 static inline __ATTRS_o_ai vector signed int
7517 vec_srl(vector signed int __a, vector unsigned short __b) {
7518 return (vector signed int)__builtin_s390_vsrl(
7519 (vector unsigned char)__a, (vector unsigned char)__b);
7522 // This prototype is deprecated.
7523 static inline __ATTRS_o_ai vector signed int
7524 vec_srl(vector signed int __a, vector unsigned int __b) {
7525 return (vector signed int)__builtin_s390_vsrl(
7526 (vector unsigned char)__a, (vector unsigned char)__b);
7529 // This prototype is deprecated.
7530 static inline __ATTRS_o_ai vector bool int
7531 vec_srl(vector bool int __a, vector unsigned char __b) {
7532 return (vector bool int)__builtin_s390_vsrl(
7533 (vector unsigned char)__a, __b);
7536 // This prototype is deprecated.
7537 static inline __ATTRS_o_ai vector bool int
7538 vec_srl(vector bool int __a, vector unsigned short __b) {
7539 return (vector bool int)__builtin_s390_vsrl(
7540 (vector unsigned char)__a, (vector unsigned char)__b);
7543 // This prototype is deprecated.
7544 static inline __ATTRS_o_ai vector bool int
7545 vec_srl(vector bool int __a, vector unsigned int __b) {
7546 return (vector bool int)__builtin_s390_vsrl(
7547 (vector unsigned char)__a, (vector unsigned char)__b);
7550 static inline __ATTRS_o_ai vector unsigned int
7551 vec_srl(vector unsigned int __a, vector unsigned char __b) {
7552 return (vector unsigned int)__builtin_s390_vsrl(
7553 (vector unsigned char)__a, __b);
7556 // This prototype is deprecated.
7557 static inline __ATTRS_o_ai vector unsigned int
7558 vec_srl(vector unsigned int __a, vector unsigned short __b) {
7559 return (vector unsigned int)__builtin_s390_vsrl(
7560 (vector unsigned char)__a, (vector unsigned char)__b);
7563 // This prototype is deprecated.
7564 static inline __ATTRS_o_ai vector unsigned int
7565 vec_srl(vector unsigned int __a, vector unsigned int __b) {
7566 return (vector unsigned int)__builtin_s390_vsrl(
7567 (vector unsigned char)__a, (vector unsigned char)__b);
7570 static inline __ATTRS_o_ai vector signed long long
7571 vec_srl(vector signed long long __a, vector unsigned char __b) {
7572 return (vector signed long long)__builtin_s390_vsrl(
7573 (vector unsigned char)__a, __b);
7576 // This prototype is deprecated.
7577 static inline __ATTRS_o_ai vector signed long long
7578 vec_srl(vector signed long long __a, vector unsigned short __b) {
7579 return (vector signed long long)__builtin_s390_vsrl(
7580 (vector unsigned char)__a, (vector unsigned char)__b);
7583 // This prototype is deprecated.
7584 static inline __ATTRS_o_ai vector signed long long
7585 vec_srl(vector signed long long __a, vector unsigned int __b) {
7586 return (vector signed long long)__builtin_s390_vsrl(
7587 (vector unsigned char)__a, (vector unsigned char)__b);
7590 // This prototype is deprecated.
7591 static inline __ATTRS_o_ai vector bool long long
7592 vec_srl(vector bool long long __a, vector unsigned char __b) {
7593 return (vector bool long long)__builtin_s390_vsrl(
7594 (vector unsigned char)__a, __b);
7597 // This prototype is deprecated.
7598 static inline __ATTRS_o_ai vector bool long long
7599 vec_srl(vector bool long long __a, vector unsigned short __b) {
7600 return (vector bool long long)__builtin_s390_vsrl(
7601 (vector unsigned char)__a, (vector unsigned char)__b);
7604 // This prototype is deprecated.
7605 static inline __ATTRS_o_ai vector bool long long
7606 vec_srl(vector bool long long __a, vector unsigned int __b) {
7607 return (vector bool long long)__builtin_s390_vsrl(
7608 (vector unsigned char)__a, (vector unsigned char)__b);
7611 static inline __ATTRS_o_ai vector unsigned long long
7612 vec_srl(vector unsigned long long __a, vector unsigned char __b) {
7613 return (vector unsigned long long)__builtin_s390_vsrl(
7614 (vector unsigned char)__a, __b);
7617 // This prototype is deprecated.
7618 static inline __ATTRS_o_ai vector unsigned long long
7619 vec_srl(vector unsigned long long __a, vector unsigned short __b) {
7620 return (vector unsigned long long)__builtin_s390_vsrl(
7621 (vector unsigned char)__a, (vector unsigned char)__b);
7624 // This prototype is deprecated.
7625 static inline __ATTRS_o_ai vector unsigned long long
7626 vec_srl(vector unsigned long long __a, vector unsigned int __b) {
7627 return (vector unsigned long long)__builtin_s390_vsrl(
7628 (vector unsigned char)__a, (vector unsigned char)__b);
7631 /*-- vec_srb ----------------------------------------------------------------*/
7633 static inline __ATTRS_o_ai vector signed char
7634 vec_srb(vector signed char __a, vector signed char __b) {
7635 return (vector signed char)__builtin_s390_vsrlb(
7636 (vector unsigned char)__a, (vector unsigned char)__b);
7639 static inline __ATTRS_o_ai vector signed char
7640 vec_srb(vector signed char __a, vector unsigned char __b) {
7641 return (vector signed char)__builtin_s390_vsrlb(
7642 (vector unsigned char)__a, __b);
7645 static inline __ATTRS_o_ai vector unsigned char
7646 vec_srb(vector unsigned char __a, vector signed char __b) {
7647 return __builtin_s390_vsrlb(__a, (vector unsigned char)__b);
7650 static inline __ATTRS_o_ai vector unsigned char
7651 vec_srb(vector unsigned char __a, vector unsigned char __b) {
7652 return __builtin_s390_vsrlb(__a, __b);
7655 static inline __ATTRS_o_ai vector signed short
7656 vec_srb(vector signed short __a, vector signed short __b) {
7657 return (vector signed short)__builtin_s390_vsrlb(
7658 (vector unsigned char)__a, (vector unsigned char)__b);
7661 static inline __ATTRS_o_ai vector signed short
7662 vec_srb(vector signed short __a, vector unsigned short __b) {
7663 return (vector signed short)__builtin_s390_vsrlb(
7664 (vector unsigned char)__a, (vector unsigned char)__b);
7667 static inline __ATTRS_o_ai vector unsigned short
7668 vec_srb(vector unsigned short __a, vector signed short __b) {
7669 return (vector unsigned short)__builtin_s390_vsrlb(
7670 (vector unsigned char)__a, (vector unsigned char)__b);
7673 static inline __ATTRS_o_ai vector unsigned short
7674 vec_srb(vector unsigned short __a, vector unsigned short __b) {
7675 return (vector unsigned short)__builtin_s390_vsrlb(
7676 (vector unsigned char)__a, (vector unsigned char)__b);
7679 static inline __ATTRS_o_ai vector signed int
7680 vec_srb(vector signed int __a, vector signed int __b) {
7681 return (vector signed int)__builtin_s390_vsrlb(
7682 (vector unsigned char)__a, (vector unsigned char)__b);
7685 static inline __ATTRS_o_ai vector signed int
7686 vec_srb(vector signed int __a, vector unsigned int __b) {
7687 return (vector signed int)__builtin_s390_vsrlb(
7688 (vector unsigned char)__a, (vector unsigned char)__b);
7691 static inline __ATTRS_o_ai vector unsigned int
7692 vec_srb(vector unsigned int __a, vector signed int __b) {
7693 return (vector unsigned int)__builtin_s390_vsrlb(
7694 (vector unsigned char)__a, (vector unsigned char)__b);
7697 static inline __ATTRS_o_ai vector unsigned int
7698 vec_srb(vector unsigned int __a, vector unsigned int __b) {
7699 return (vector unsigned int)__builtin_s390_vsrlb(
7700 (vector unsigned char)__a, (vector unsigned char)__b);
7703 static inline __ATTRS_o_ai vector signed long long
7704 vec_srb(vector signed long long __a, vector signed long long __b) {
7705 return (vector signed long long)__builtin_s390_vsrlb(
7706 (vector unsigned char)__a, (vector unsigned char)__b);
7709 static inline __ATTRS_o_ai vector signed long long
7710 vec_srb(vector signed long long __a, vector unsigned long long __b) {
7711 return (vector signed long long)__builtin_s390_vsrlb(
7712 (vector unsigned char)__a, (vector unsigned char)__b);
7715 static inline __ATTRS_o_ai vector unsigned long long
7716 vec_srb(vector unsigned long long __a, vector signed long long __b) {
7717 return (vector unsigned long long)__builtin_s390_vsrlb(
7718 (vector unsigned char)__a, (vector unsigned char)__b);
7721 static inline __ATTRS_o_ai vector unsigned long long
7722 vec_srb(vector unsigned long long __a, vector unsigned long long __b) {
7723 return (vector unsigned long long)__builtin_s390_vsrlb(
7724 (vector unsigned char)__a, (vector unsigned char)__b);
7728 static inline __ATTRS_o_ai vector float
7729 vec_srb(vector float __a, vector signed int __b) {
7730 return (vector float)__builtin_s390_vsrlb(
7731 (vector unsigned char)__a, (vector unsigned char)__b);
7734 static inline __ATTRS_o_ai vector float
7735 vec_srb(vector float __a, vector unsigned int __b) {
7736 return (vector float)__builtin_s390_vsrlb(
7737 (vector unsigned char)__a, (vector unsigned char)__b);
7741 static inline __ATTRS_o_ai vector double
7742 vec_srb(vector double __a, vector signed long long __b) {
7743 return (vector double)__builtin_s390_vsrlb(
7744 (vector unsigned char)__a, (vector unsigned char)__b);
7747 static inline __ATTRS_o_ai vector double
7748 vec_srb(vector double __a, vector unsigned long long __b) {
7749 return (vector double)__builtin_s390_vsrlb(
7750 (vector unsigned char)__a, (vector unsigned char)__b);
7753 /*-- vec_srdb ---------------------------------------------------------------*/
7757 extern __ATTRS_o vector signed char
7758 vec_srdb(vector signed char __a, vector signed char __b, int __c)
7759 __constant_range(__c, 0, 7);
7761 extern __ATTRS_o vector unsigned char
7762 vec_srdb(vector unsigned char __a, vector unsigned char __b, int __c)
7763 __constant_range(__c, 0, 7);
7765 extern __ATTRS_o vector signed short
7766 vec_srdb(vector signed short __a, vector signed short __b, int __c)
7767 __constant_range(__c, 0, 7);
7769 extern __ATTRS_o vector unsigned short
7770 vec_srdb(vector unsigned short __a, vector unsigned short __b, int __c)
7771 __constant_range(__c, 0, 7);
7773 extern __ATTRS_o vector signed int
7774 vec_srdb(vector signed int __a, vector signed int __b, int __c)
7775 __constant_range(__c, 0, 7);
7777 extern __ATTRS_o vector unsigned int
7778 vec_srdb(vector unsigned int __a, vector unsigned int __b, int __c)
7779 __constant_range(__c, 0, 7);
7781 extern __ATTRS_o vector signed long long
7782 vec_srdb(vector signed long long __a, vector signed long long __b, int __c)
7783 __constant_range(__c, 0, 7);
7785 extern __ATTRS_o vector unsigned long long
7786 vec_srdb(vector unsigned long long __a, vector unsigned long long __b, int __c)
7787 __constant_range(__c, 0, 7);
7789 extern __ATTRS_o vector float
7790 vec_srdb(vector float __a, vector float __b, int __c)
7791 __constant_range(__c, 0, 7);
7793 extern __ATTRS_o vector double
7794 vec_srdb(vector double __a, vector double __b, int __c)
7795 __constant_range(__c, 0, 7);
7797 #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
7798 __builtin_s390_vsrd((vector unsigned char)(X), \
7799 (vector unsigned char)(Y), (Z)))
7803 /*-- vec_abs ----------------------------------------------------------------*/
7805 static inline __ATTRS_o_ai vector signed char
7806 vec_abs(vector signed char __a) {
7807 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0));
7810 static inline __ATTRS_o_ai vector signed short
7811 vec_abs(vector signed short __a) {
7812 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0));
7815 static inline __ATTRS_o_ai vector signed int
7816 vec_abs(vector signed int __a) {
7817 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0));
7820 static inline __ATTRS_o_ai vector signed long long
7821 vec_abs(vector signed long long __a) {
7822 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed long long)0));
7826 static inline __ATTRS_o_ai vector float
7827 vec_abs(vector float __a) {
7828 return __builtin_s390_vflpsb(__a);
7832 static inline __ATTRS_o_ai vector double
7833 vec_abs(vector double __a) {
7834 return __builtin_s390_vflpdb(__a);
7837 /*-- vec_nabs ---------------------------------------------------------------*/
7840 static inline __ATTRS_o_ai vector float
7841 vec_nabs(vector float __a) {
7842 return __builtin_s390_vflnsb(__a);
7846 static inline __ATTRS_o_ai vector double
7847 vec_nabs(vector double __a) {
7848 return __builtin_s390_vflndb(__a);
7851 /*-- vec_max ----------------------------------------------------------------*/
7853 static inline __ATTRS_o_ai vector signed char
7854 vec_max(vector signed char __a, vector signed char __b) {
7855 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7858 // This prototype is deprecated.
7859 static inline __ATTRS_o_ai vector signed char
7860 vec_max(vector signed char __a, vector bool char __b) {
7861 vector signed char __bc = (vector signed char)__b;
7862 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7865 // This prototype is deprecated.
7866 static inline __ATTRS_o_ai vector signed char
7867 vec_max(vector bool char __a, vector signed char __b) {
7868 vector signed char __ac = (vector signed char)__a;
7869 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7872 static inline __ATTRS_o_ai vector unsigned char
7873 vec_max(vector unsigned char __a, vector unsigned char __b) {
7874 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7877 // This prototype is deprecated.
7878 static inline __ATTRS_o_ai vector unsigned char
7879 vec_max(vector unsigned char __a, vector bool char __b) {
7880 vector unsigned char __bc = (vector unsigned char)__b;
7881 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7884 // This prototype is deprecated.
7885 static inline __ATTRS_o_ai vector unsigned char
7886 vec_max(vector bool char __a, vector unsigned char __b) {
7887 vector unsigned char __ac = (vector unsigned char)__a;
7888 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7891 static inline __ATTRS_o_ai vector signed short
7892 vec_max(vector signed short __a, vector signed short __b) {
7893 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7896 // This prototype is deprecated.
7897 static inline __ATTRS_o_ai vector signed short
7898 vec_max(vector signed short __a, vector bool short __b) {
7899 vector signed short __bc = (vector signed short)__b;
7900 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7903 // This prototype is deprecated.
7904 static inline __ATTRS_o_ai vector signed short
7905 vec_max(vector bool short __a, vector signed short __b) {
7906 vector signed short __ac = (vector signed short)__a;
7907 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7910 static inline __ATTRS_o_ai vector unsigned short
7911 vec_max(vector unsigned short __a, vector unsigned short __b) {
7912 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7915 // This prototype is deprecated.
7916 static inline __ATTRS_o_ai vector unsigned short
7917 vec_max(vector unsigned short __a, vector bool short __b) {
7918 vector unsigned short __bc = (vector unsigned short)__b;
7919 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7922 // This prototype is deprecated.
7923 static inline __ATTRS_o_ai vector unsigned short
7924 vec_max(vector bool short __a, vector unsigned short __b) {
7925 vector unsigned short __ac = (vector unsigned short)__a;
7926 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7929 static inline __ATTRS_o_ai vector signed int
7930 vec_max(vector signed int __a, vector signed int __b) {
7931 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7934 // This prototype is deprecated.
7935 static inline __ATTRS_o_ai vector signed int
7936 vec_max(vector signed int __a, vector bool int __b) {
7937 vector signed int __bc = (vector signed int)__b;
7938 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7941 // This prototype is deprecated.
7942 static inline __ATTRS_o_ai vector signed int
7943 vec_max(vector bool int __a, vector signed int __b) {
7944 vector signed int __ac = (vector signed int)__a;
7945 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7948 static inline __ATTRS_o_ai vector unsigned int
7949 vec_max(vector unsigned int __a, vector unsigned int __b) {
7950 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7953 // This prototype is deprecated.
7954 static inline __ATTRS_o_ai vector unsigned int
7955 vec_max(vector unsigned int __a, vector bool int __b) {
7956 vector unsigned int __bc = (vector unsigned int)__b;
7957 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7960 // This prototype is deprecated.
7961 static inline __ATTRS_o_ai vector unsigned int
7962 vec_max(vector bool int __a, vector unsigned int __b) {
7963 vector unsigned int __ac = (vector unsigned int)__a;
7964 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7967 static inline __ATTRS_o_ai vector signed long long
7968 vec_max(vector signed long long __a, vector signed long long __b) {
7969 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7972 // This prototype is deprecated.
7973 static inline __ATTRS_o_ai vector signed long long
7974 vec_max(vector signed long long __a, vector bool long long __b) {
7975 vector signed long long __bc = (vector signed long long)__b;
7976 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7979 // This prototype is deprecated.
7980 static inline __ATTRS_o_ai vector signed long long
7981 vec_max(vector bool long long __a, vector signed long long __b) {
7982 vector signed long long __ac = (vector signed long long)__a;
7983 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7986 static inline __ATTRS_o_ai vector unsigned long long
7987 vec_max(vector unsigned long long __a, vector unsigned long long __b) {
7988 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7991 // This prototype is deprecated.
7992 static inline __ATTRS_o_ai vector unsigned long long
7993 vec_max(vector unsigned long long __a, vector bool long long __b) {
7994 vector unsigned long long __bc = (vector unsigned long long)__b;
7995 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7998 // This prototype is deprecated.
7999 static inline __ATTRS_o_ai vector unsigned long long
8000 vec_max(vector bool long long __a, vector unsigned long long __b) {
8001 vector unsigned long long __ac = (vector unsigned long long)__a;
8002 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8006 static inline __ATTRS_o_ai vector float
8007 vec_max(vector float __a, vector float __b) {
8008 return __builtin_s390_vfmaxsb(__a, __b, 0);
8012 static inline __ATTRS_o_ai vector double
8013 vec_max(vector double __a, vector double __b) {
8015 return __builtin_s390_vfmaxdb(__a, __b, 0);
8017 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8021 /*-- vec_min ----------------------------------------------------------------*/
8023 static inline __ATTRS_o_ai vector signed char
8024 vec_min(vector signed char __a, vector signed char __b) {
8025 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8028 // This prototype is deprecated.
8029 static inline __ATTRS_o_ai vector signed char
8030 vec_min(vector signed char __a, vector bool char __b) {
8031 vector signed char __bc = (vector signed char)__b;
8032 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8035 // This prototype is deprecated.
8036 static inline __ATTRS_o_ai vector signed char
8037 vec_min(vector bool char __a, vector signed char __b) {
8038 vector signed char __ac = (vector signed char)__a;
8039 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8042 static inline __ATTRS_o_ai vector unsigned char
8043 vec_min(vector unsigned char __a, vector unsigned char __b) {
8044 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8047 // This prototype is deprecated.
8048 static inline __ATTRS_o_ai vector unsigned char
8049 vec_min(vector unsigned char __a, vector bool char __b) {
8050 vector unsigned char __bc = (vector unsigned char)__b;
8051 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8054 // This prototype is deprecated.
8055 static inline __ATTRS_o_ai vector unsigned char
8056 vec_min(vector bool char __a, vector unsigned char __b) {
8057 vector unsigned char __ac = (vector unsigned char)__a;
8058 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8061 static inline __ATTRS_o_ai vector signed short
8062 vec_min(vector signed short __a, vector signed short __b) {
8063 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8066 // This prototype is deprecated.
8067 static inline __ATTRS_o_ai vector signed short
8068 vec_min(vector signed short __a, vector bool short __b) {
8069 vector signed short __bc = (vector signed short)__b;
8070 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8073 // This prototype is deprecated.
8074 static inline __ATTRS_o_ai vector signed short
8075 vec_min(vector bool short __a, vector signed short __b) {
8076 vector signed short __ac = (vector signed short)__a;
8077 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8080 static inline __ATTRS_o_ai vector unsigned short
8081 vec_min(vector unsigned short __a, vector unsigned short __b) {
8082 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8085 // This prototype is deprecated.
8086 static inline __ATTRS_o_ai vector unsigned short
8087 vec_min(vector unsigned short __a, vector bool short __b) {
8088 vector unsigned short __bc = (vector unsigned short)__b;
8089 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8092 // This prototype is deprecated.
8093 static inline __ATTRS_o_ai vector unsigned short
8094 vec_min(vector bool short __a, vector unsigned short __b) {
8095 vector unsigned short __ac = (vector unsigned short)__a;
8096 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8099 static inline __ATTRS_o_ai vector signed int
8100 vec_min(vector signed int __a, vector signed int __b) {
8101 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8104 // This prototype is deprecated.
8105 static inline __ATTRS_o_ai vector signed int
8106 vec_min(vector signed int __a, vector bool int __b) {
8107 vector signed int __bc = (vector signed int)__b;
8108 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8111 // This prototype is deprecated.
8112 static inline __ATTRS_o_ai vector signed int
8113 vec_min(vector bool int __a, vector signed int __b) {
8114 vector signed int __ac = (vector signed int)__a;
8115 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8118 static inline __ATTRS_o_ai vector unsigned int
8119 vec_min(vector unsigned int __a, vector unsigned int __b) {
8120 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8123 // This prototype is deprecated.
8124 static inline __ATTRS_o_ai vector unsigned int
8125 vec_min(vector unsigned int __a, vector bool int __b) {
8126 vector unsigned int __bc = (vector unsigned int)__b;
8127 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8130 // This prototype is deprecated.
8131 static inline __ATTRS_o_ai vector unsigned int
8132 vec_min(vector bool int __a, vector unsigned int __b) {
8133 vector unsigned int __ac = (vector unsigned int)__a;
8134 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8137 static inline __ATTRS_o_ai vector signed long long
8138 vec_min(vector signed long long __a, vector signed long long __b) {
8139 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8142 // This prototype is deprecated.
8143 static inline __ATTRS_o_ai vector signed long long
8144 vec_min(vector signed long long __a, vector bool long long __b) {
8145 vector signed long long __bc = (vector signed long long)__b;
8146 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8149 // This prototype is deprecated.
8150 static inline __ATTRS_o_ai vector signed long long
8151 vec_min(vector bool long long __a, vector signed long long __b) {
8152 vector signed long long __ac = (vector signed long long)__a;
8153 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8156 static inline __ATTRS_o_ai vector unsigned long long
8157 vec_min(vector unsigned long long __a, vector unsigned long long __b) {
8158 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8161 // This prototype is deprecated.
8162 static inline __ATTRS_o_ai vector unsigned long long
8163 vec_min(vector unsigned long long __a, vector bool long long __b) {
8164 vector unsigned long long __bc = (vector unsigned long long)__b;
8165 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8168 // This prototype is deprecated.
8169 static inline __ATTRS_o_ai vector unsigned long long
8170 vec_min(vector bool long long __a, vector unsigned long long __b) {
8171 vector unsigned long long __ac = (vector unsigned long long)__a;
8172 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8176 static inline __ATTRS_o_ai vector float
8177 vec_min(vector float __a, vector float __b) {
8178 return __builtin_s390_vfminsb(__a, __b, 0);
8182 static inline __ATTRS_o_ai vector double
8183 vec_min(vector double __a, vector double __b) {
8185 return __builtin_s390_vfmindb(__a, __b, 0);
8187 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8191 /*-- vec_add_u128 -----------------------------------------------------------*/
8193 static inline __ATTRS_ai vector unsigned char
8194 vec_add_u128(vector unsigned char __a, vector unsigned char __b) {
8195 return __builtin_s390_vaq(__a, __b);
8198 /*-- vec_addc ---------------------------------------------------------------*/
8200 static inline __ATTRS_o_ai vector unsigned char
8201 vec_addc(vector unsigned char __a, vector unsigned char __b) {
8202 return __builtin_s390_vaccb(__a, __b);
8205 static inline __ATTRS_o_ai vector unsigned short
8206 vec_addc(vector unsigned short __a, vector unsigned short __b) {
8207 return __builtin_s390_vacch(__a, __b);
8210 static inline __ATTRS_o_ai vector unsigned int
8211 vec_addc(vector unsigned int __a, vector unsigned int __b) {
8212 return __builtin_s390_vaccf(__a, __b);
8215 static inline __ATTRS_o_ai vector unsigned long long
8216 vec_addc(vector unsigned long long __a, vector unsigned long long __b) {
8217 return __builtin_s390_vaccg(__a, __b);
8220 /*-- vec_addc_u128 ----------------------------------------------------------*/
8222 static inline __ATTRS_ai vector unsigned char
8223 vec_addc_u128(vector unsigned char __a, vector unsigned char __b) {
8224 return __builtin_s390_vaccq(__a, __b);
8227 /*-- vec_adde_u128 ----------------------------------------------------------*/
8229 static inline __ATTRS_ai vector unsigned char
8230 vec_adde_u128(vector unsigned char __a, vector unsigned char __b,
8231 vector unsigned char __c) {
8232 return __builtin_s390_vacq(__a, __b, __c);
8235 /*-- vec_addec_u128 ---------------------------------------------------------*/
8237 static inline __ATTRS_ai vector unsigned char
8238 vec_addec_u128(vector unsigned char __a, vector unsigned char __b,
8239 vector unsigned char __c) {
8240 return __builtin_s390_vacccq(__a, __b, __c);
8243 /*-- vec_avg ----------------------------------------------------------------*/
8245 static inline __ATTRS_o_ai vector signed char
8246 vec_avg(vector signed char __a, vector signed char __b) {
8247 return __builtin_s390_vavgb(__a, __b);
8250 static inline __ATTRS_o_ai vector signed short
8251 vec_avg(vector signed short __a, vector signed short __b) {
8252 return __builtin_s390_vavgh(__a, __b);
8255 static inline __ATTRS_o_ai vector signed int
8256 vec_avg(vector signed int __a, vector signed int __b) {
8257 return __builtin_s390_vavgf(__a, __b);
8260 static inline __ATTRS_o_ai vector signed long long
8261 vec_avg(vector signed long long __a, vector signed long long __b) {
8262 return __builtin_s390_vavgg(__a, __b);
8265 static inline __ATTRS_o_ai vector unsigned char
8266 vec_avg(vector unsigned char __a, vector unsigned char __b) {
8267 return __builtin_s390_vavglb(__a, __b);
8270 static inline __ATTRS_o_ai vector unsigned short
8271 vec_avg(vector unsigned short __a, vector unsigned short __b) {
8272 return __builtin_s390_vavglh(__a, __b);
8275 static inline __ATTRS_o_ai vector unsigned int
8276 vec_avg(vector unsigned int __a, vector unsigned int __b) {
8277 return __builtin_s390_vavglf(__a, __b);
8280 static inline __ATTRS_o_ai vector unsigned long long
8281 vec_avg(vector unsigned long long __a, vector unsigned long long __b) {
8282 return __builtin_s390_vavglg(__a, __b);
8285 /*-- vec_checksum -----------------------------------------------------------*/
8287 static inline __ATTRS_ai vector unsigned int
8288 vec_checksum(vector unsigned int __a, vector unsigned int __b) {
8289 return __builtin_s390_vcksm(__a, __b);
8292 /*-- vec_gfmsum -------------------------------------------------------------*/
8294 static inline __ATTRS_o_ai vector unsigned short
8295 vec_gfmsum(vector unsigned char __a, vector unsigned char __b) {
8296 return __builtin_s390_vgfmb(__a, __b);
8299 static inline __ATTRS_o_ai vector unsigned int
8300 vec_gfmsum(vector unsigned short __a, vector unsigned short __b) {
8301 return __builtin_s390_vgfmh(__a, __b);
8304 static inline __ATTRS_o_ai vector unsigned long long
8305 vec_gfmsum(vector unsigned int __a, vector unsigned int __b) {
8306 return __builtin_s390_vgfmf(__a, __b);
8309 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
8311 static inline __ATTRS_o_ai vector unsigned char
8312 vec_gfmsum_128(vector unsigned long long __a, vector unsigned long long __b) {
8313 return __builtin_s390_vgfmg(__a, __b);
8316 /*-- vec_gfmsum_accum -------------------------------------------------------*/
8318 static inline __ATTRS_o_ai vector unsigned short
8319 vec_gfmsum_accum(vector unsigned char __a, vector unsigned char __b,
8320 vector unsigned short __c) {
8321 return __builtin_s390_vgfmab(__a, __b, __c);
8324 static inline __ATTRS_o_ai vector unsigned int
8325 vec_gfmsum_accum(vector unsigned short __a, vector unsigned short __b,
8326 vector unsigned int __c) {
8327 return __builtin_s390_vgfmah(__a, __b, __c);
8330 static inline __ATTRS_o_ai vector unsigned long long
8331 vec_gfmsum_accum(vector unsigned int __a, vector unsigned int __b,
8332 vector unsigned long long __c) {
8333 return __builtin_s390_vgfmaf(__a, __b, __c);
8336 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
8338 static inline __ATTRS_o_ai vector unsigned char
8339 vec_gfmsum_accum_128(vector unsigned long long __a,
8340 vector unsigned long long __b,
8341 vector unsigned char __c) {
8342 return __builtin_s390_vgfmag(__a, __b, __c);
8345 /*-- vec_mladd --------------------------------------------------------------*/
8347 static inline __ATTRS_o_ai vector signed char
8348 vec_mladd(vector signed char __a, vector signed char __b,
8349 vector signed char __c) {
8350 return __a * __b + __c;
8353 static inline __ATTRS_o_ai vector signed char
8354 vec_mladd(vector unsigned char __a, vector signed char __b,
8355 vector signed char __c) {
8356 return (vector signed char)__a * __b + __c;
8359 static inline __ATTRS_o_ai vector signed char
8360 vec_mladd(vector signed char __a, vector unsigned char __b,
8361 vector unsigned char __c) {
8362 return __a * (vector signed char)__b + (vector signed char)__c;
8365 static inline __ATTRS_o_ai vector unsigned char
8366 vec_mladd(vector unsigned char __a, vector unsigned char __b,
8367 vector unsigned char __c) {
8368 return __a * __b + __c;
8371 static inline __ATTRS_o_ai vector signed short
8372 vec_mladd(vector signed short __a, vector signed short __b,
8373 vector signed short __c) {
8374 return __a * __b + __c;
8377 static inline __ATTRS_o_ai vector signed short
8378 vec_mladd(vector unsigned short __a, vector signed short __b,
8379 vector signed short __c) {
8380 return (vector signed short)__a * __b + __c;
8383 static inline __ATTRS_o_ai vector signed short
8384 vec_mladd(vector signed short __a, vector unsigned short __b,
8385 vector unsigned short __c) {
8386 return __a * (vector signed short)__b + (vector signed short)__c;
8389 static inline __ATTRS_o_ai vector unsigned short
8390 vec_mladd(vector unsigned short __a, vector unsigned short __b,
8391 vector unsigned short __c) {
8392 return __a * __b + __c;
8395 static inline __ATTRS_o_ai vector signed int
8396 vec_mladd(vector signed int __a, vector signed int __b,
8397 vector signed int __c) {
8398 return __a * __b + __c;
8401 static inline __ATTRS_o_ai vector signed int
8402 vec_mladd(vector unsigned int __a, vector signed int __b,
8403 vector signed int __c) {
8404 return (vector signed int)__a * __b + __c;
8407 static inline __ATTRS_o_ai vector signed int
8408 vec_mladd(vector signed int __a, vector unsigned int __b,
8409 vector unsigned int __c) {
8410 return __a * (vector signed int)__b + (vector signed int)__c;
8413 static inline __ATTRS_o_ai vector unsigned int
8414 vec_mladd(vector unsigned int __a, vector unsigned int __b,
8415 vector unsigned int __c) {
8416 return __a * __b + __c;
8419 /*-- vec_mhadd --------------------------------------------------------------*/
8421 static inline __ATTRS_o_ai vector signed char
8422 vec_mhadd(vector signed char __a, vector signed char __b,
8423 vector signed char __c) {
8424 return __builtin_s390_vmahb(__a, __b, __c);
8427 static inline __ATTRS_o_ai vector unsigned char
8428 vec_mhadd(vector unsigned char __a, vector unsigned char __b,
8429 vector unsigned char __c) {
8430 return __builtin_s390_vmalhb(__a, __b, __c);
8433 static inline __ATTRS_o_ai vector signed short
8434 vec_mhadd(vector signed short __a, vector signed short __b,
8435 vector signed short __c) {
8436 return __builtin_s390_vmahh(__a, __b, __c);
8439 static inline __ATTRS_o_ai vector unsigned short
8440 vec_mhadd(vector unsigned short __a, vector unsigned short __b,
8441 vector unsigned short __c) {
8442 return __builtin_s390_vmalhh(__a, __b, __c);
8445 static inline __ATTRS_o_ai vector signed int
8446 vec_mhadd(vector signed int __a, vector signed int __b,
8447 vector signed int __c) {
8448 return __builtin_s390_vmahf(__a, __b, __c);
8451 static inline __ATTRS_o_ai vector unsigned int
8452 vec_mhadd(vector unsigned int __a, vector unsigned int __b,
8453 vector unsigned int __c) {
8454 return __builtin_s390_vmalhf(__a, __b, __c);
8457 /*-- vec_meadd --------------------------------------------------------------*/
8459 static inline __ATTRS_o_ai vector signed short
8460 vec_meadd(vector signed char __a, vector signed char __b,
8461 vector signed short __c) {
8462 return __builtin_s390_vmaeb(__a, __b, __c);
8465 static inline __ATTRS_o_ai vector unsigned short
8466 vec_meadd(vector unsigned char __a, vector unsigned char __b,
8467 vector unsigned short __c) {
8468 return __builtin_s390_vmaleb(__a, __b, __c);
8471 static inline __ATTRS_o_ai vector signed int
8472 vec_meadd(vector signed short __a, vector signed short __b,
8473 vector signed int __c) {
8474 return __builtin_s390_vmaeh(__a, __b, __c);
8477 static inline __ATTRS_o_ai vector unsigned int
8478 vec_meadd(vector unsigned short __a, vector unsigned short __b,
8479 vector unsigned int __c) {
8480 return __builtin_s390_vmaleh(__a, __b, __c);
8483 static inline __ATTRS_o_ai vector signed long long
8484 vec_meadd(vector signed int __a, vector signed int __b,
8485 vector signed long long __c) {
8486 return __builtin_s390_vmaef(__a, __b, __c);
8489 static inline __ATTRS_o_ai vector unsigned long long
8490 vec_meadd(vector unsigned int __a, vector unsigned int __b,
8491 vector unsigned long long __c) {
8492 return __builtin_s390_vmalef(__a, __b, __c);
8495 /*-- vec_moadd --------------------------------------------------------------*/
8497 static inline __ATTRS_o_ai vector signed short
8498 vec_moadd(vector signed char __a, vector signed char __b,
8499 vector signed short __c) {
8500 return __builtin_s390_vmaob(__a, __b, __c);
8503 static inline __ATTRS_o_ai vector unsigned short
8504 vec_moadd(vector unsigned char __a, vector unsigned char __b,
8505 vector unsigned short __c) {
8506 return __builtin_s390_vmalob(__a, __b, __c);
8509 static inline __ATTRS_o_ai vector signed int
8510 vec_moadd(vector signed short __a, vector signed short __b,
8511 vector signed int __c) {
8512 return __builtin_s390_vmaoh(__a, __b, __c);
8515 static inline __ATTRS_o_ai vector unsigned int
8516 vec_moadd(vector unsigned short __a, vector unsigned short __b,
8517 vector unsigned int __c) {
8518 return __builtin_s390_vmaloh(__a, __b, __c);
8521 static inline __ATTRS_o_ai vector signed long long
8522 vec_moadd(vector signed int __a, vector signed int __b,
8523 vector signed long long __c) {
8524 return __builtin_s390_vmaof(__a, __b, __c);
8527 static inline __ATTRS_o_ai vector unsigned long long
8528 vec_moadd(vector unsigned int __a, vector unsigned int __b,
8529 vector unsigned long long __c) {
8530 return __builtin_s390_vmalof(__a, __b, __c);
8533 /*-- vec_mulh ---------------------------------------------------------------*/
8535 static inline __ATTRS_o_ai vector signed char
8536 vec_mulh(vector signed char __a, vector signed char __b) {
8537 return __builtin_s390_vmhb(__a, __b);
8540 static inline __ATTRS_o_ai vector unsigned char
8541 vec_mulh(vector unsigned char __a, vector unsigned char __b) {
8542 return __builtin_s390_vmlhb(__a, __b);
8545 static inline __ATTRS_o_ai vector signed short
8546 vec_mulh(vector signed short __a, vector signed short __b) {
8547 return __builtin_s390_vmhh(__a, __b);
8550 static inline __ATTRS_o_ai vector unsigned short
8551 vec_mulh(vector unsigned short __a, vector unsigned short __b) {
8552 return __builtin_s390_vmlhh(__a, __b);
8555 static inline __ATTRS_o_ai vector signed int
8556 vec_mulh(vector signed int __a, vector signed int __b) {
8557 return __builtin_s390_vmhf(__a, __b);
8560 static inline __ATTRS_o_ai vector unsigned int
8561 vec_mulh(vector unsigned int __a, vector unsigned int __b) {
8562 return __builtin_s390_vmlhf(__a, __b);
8565 /*-- vec_mule ---------------------------------------------------------------*/
8567 static inline __ATTRS_o_ai vector signed short
8568 vec_mule(vector signed char __a, vector signed char __b) {
8569 return __builtin_s390_vmeb(__a, __b);
8572 static inline __ATTRS_o_ai vector unsigned short
8573 vec_mule(vector unsigned char __a, vector unsigned char __b) {
8574 return __builtin_s390_vmleb(__a, __b);
8577 static inline __ATTRS_o_ai vector signed int
8578 vec_mule(vector signed short __a, vector signed short __b) {
8579 return __builtin_s390_vmeh(__a, __b);
8582 static inline __ATTRS_o_ai vector unsigned int
8583 vec_mule(vector unsigned short __a, vector unsigned short __b) {
8584 return __builtin_s390_vmleh(__a, __b);
8587 static inline __ATTRS_o_ai vector signed long long
8588 vec_mule(vector signed int __a, vector signed int __b) {
8589 return __builtin_s390_vmef(__a, __b);
8592 static inline __ATTRS_o_ai vector unsigned long long
8593 vec_mule(vector unsigned int __a, vector unsigned int __b) {
8594 return __builtin_s390_vmlef(__a, __b);
8597 /*-- vec_mulo ---------------------------------------------------------------*/
8599 static inline __ATTRS_o_ai vector signed short
8600 vec_mulo(vector signed char __a, vector signed char __b) {
8601 return __builtin_s390_vmob(__a, __b);
8604 static inline __ATTRS_o_ai vector unsigned short
8605 vec_mulo(vector unsigned char __a, vector unsigned char __b) {
8606 return __builtin_s390_vmlob(__a, __b);
8609 static inline __ATTRS_o_ai vector signed int
8610 vec_mulo(vector signed short __a, vector signed short __b) {
8611 return __builtin_s390_vmoh(__a, __b);
8614 static inline __ATTRS_o_ai vector unsigned int
8615 vec_mulo(vector unsigned short __a, vector unsigned short __b) {
8616 return __builtin_s390_vmloh(__a, __b);
8619 static inline __ATTRS_o_ai vector signed long long
8620 vec_mulo(vector signed int __a, vector signed int __b) {
8621 return __builtin_s390_vmof(__a, __b);
8624 static inline __ATTRS_o_ai vector unsigned long long
8625 vec_mulo(vector unsigned int __a, vector unsigned int __b) {
8626 return __builtin_s390_vmlof(__a, __b);
8629 /*-- vec_msum_u128 ----------------------------------------------------------*/
8632 #define vec_msum_u128(X, Y, Z, W) \
8633 ((vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W)));
8636 /*-- vec_sub_u128 -----------------------------------------------------------*/
8638 static inline __ATTRS_ai vector unsigned char
8639 vec_sub_u128(vector unsigned char __a, vector unsigned char __b) {
8640 return __builtin_s390_vsq(__a, __b);
8643 /*-- vec_subc ---------------------------------------------------------------*/
8645 static inline __ATTRS_o_ai vector unsigned char
8646 vec_subc(vector unsigned char __a, vector unsigned char __b) {
8647 return __builtin_s390_vscbib(__a, __b);
8650 static inline __ATTRS_o_ai vector unsigned short
8651 vec_subc(vector unsigned short __a, vector unsigned short __b) {
8652 return __builtin_s390_vscbih(__a, __b);
8655 static inline __ATTRS_o_ai vector unsigned int
8656 vec_subc(vector unsigned int __a, vector unsigned int __b) {
8657 return __builtin_s390_vscbif(__a, __b);
8660 static inline __ATTRS_o_ai vector unsigned long long
8661 vec_subc(vector unsigned long long __a, vector unsigned long long __b) {
8662 return __builtin_s390_vscbig(__a, __b);
8665 /*-- vec_subc_u128 ----------------------------------------------------------*/
8667 static inline __ATTRS_ai vector unsigned char
8668 vec_subc_u128(vector unsigned char __a, vector unsigned char __b) {
8669 return __builtin_s390_vscbiq(__a, __b);
8672 /*-- vec_sube_u128 ----------------------------------------------------------*/
8674 static inline __ATTRS_ai vector unsigned char
8675 vec_sube_u128(vector unsigned char __a, vector unsigned char __b,
8676 vector unsigned char __c) {
8677 return __builtin_s390_vsbiq(__a, __b, __c);
8680 /*-- vec_subec_u128 ---------------------------------------------------------*/
8682 static inline __ATTRS_ai vector unsigned char
8683 vec_subec_u128(vector unsigned char __a, vector unsigned char __b,
8684 vector unsigned char __c) {
8685 return __builtin_s390_vsbcbiq(__a, __b, __c);
8688 /*-- vec_sum2 ---------------------------------------------------------------*/
8690 static inline __ATTRS_o_ai vector unsigned long long
8691 vec_sum2(vector unsigned short __a, vector unsigned short __b) {
8692 return __builtin_s390_vsumgh(__a, __b);
8695 static inline __ATTRS_o_ai vector unsigned long long
8696 vec_sum2(vector unsigned int __a, vector unsigned int __b) {
8697 return __builtin_s390_vsumgf(__a, __b);
8700 /*-- vec_sum_u128 -----------------------------------------------------------*/
8702 static inline __ATTRS_o_ai vector unsigned char
8703 vec_sum_u128(vector unsigned int __a, vector unsigned int __b) {
8704 return __builtin_s390_vsumqf(__a, __b);
8707 static inline __ATTRS_o_ai vector unsigned char
8708 vec_sum_u128(vector unsigned long long __a, vector unsigned long long __b) {
8709 return __builtin_s390_vsumqg(__a, __b);
8712 /*-- vec_sum4 ---------------------------------------------------------------*/
8714 static inline __ATTRS_o_ai vector unsigned int
8715 vec_sum4(vector unsigned char __a, vector unsigned char __b) {
8716 return __builtin_s390_vsumb(__a, __b);
8719 static inline __ATTRS_o_ai vector unsigned int
8720 vec_sum4(vector unsigned short __a, vector unsigned short __b) {
8721 return __builtin_s390_vsumh(__a, __b);
8724 /*-- vec_test_mask ----------------------------------------------------------*/
8726 static inline __ATTRS_o_ai int
8727 vec_test_mask(vector signed char __a, vector unsigned char __b) {
8728 return __builtin_s390_vtm((vector unsigned char)__a,
8729 (vector unsigned char)__b);
8732 static inline __ATTRS_o_ai int
8733 vec_test_mask(vector unsigned char __a, vector unsigned char __b) {
8734 return __builtin_s390_vtm(__a, __b);
8737 static inline __ATTRS_o_ai int
8738 vec_test_mask(vector signed short __a, vector unsigned short __b) {
8739 return __builtin_s390_vtm((vector unsigned char)__a,
8740 (vector unsigned char)__b);
8743 static inline __ATTRS_o_ai int
8744 vec_test_mask(vector unsigned short __a, vector unsigned short __b) {
8745 return __builtin_s390_vtm((vector unsigned char)__a,
8746 (vector unsigned char)__b);
8749 static inline __ATTRS_o_ai int
8750 vec_test_mask(vector signed int __a, vector unsigned int __b) {
8751 return __builtin_s390_vtm((vector unsigned char)__a,
8752 (vector unsigned char)__b);
8755 static inline __ATTRS_o_ai int
8756 vec_test_mask(vector unsigned int __a, vector unsigned int __b) {
8757 return __builtin_s390_vtm((vector unsigned char)__a,
8758 (vector unsigned char)__b);
8761 static inline __ATTRS_o_ai int
8762 vec_test_mask(vector signed long long __a, vector unsigned long long __b) {
8763 return __builtin_s390_vtm((vector unsigned char)__a,
8764 (vector unsigned char)__b);
8767 static inline __ATTRS_o_ai int
8768 vec_test_mask(vector unsigned long long __a, vector unsigned long long __b) {
8769 return __builtin_s390_vtm((vector unsigned char)__a,
8770 (vector unsigned char)__b);
8774 static inline __ATTRS_o_ai int
8775 vec_test_mask(vector float __a, vector unsigned int __b) {
8776 return __builtin_s390_vtm((vector unsigned char)__a,
8777 (vector unsigned char)__b);
8781 static inline __ATTRS_o_ai int
8782 vec_test_mask(vector double __a, vector unsigned long long __b) {
8783 return __builtin_s390_vtm((vector unsigned char)__a,
8784 (vector unsigned char)__b);
8787 /*-- vec_madd ---------------------------------------------------------------*/
8790 static inline __ATTRS_o_ai vector float
8791 vec_madd(vector float __a, vector float __b, vector float __c) {
8792 return __builtin_s390_vfmasb(__a, __b, __c);
8796 static inline __ATTRS_o_ai vector double
8797 vec_madd(vector double __a, vector double __b, vector double __c) {
8798 return __builtin_s390_vfmadb(__a, __b, __c);
8801 /*-- vec_msub ---------------------------------------------------------------*/
8804 static inline __ATTRS_o_ai vector float
8805 vec_msub(vector float __a, vector float __b, vector float __c) {
8806 return __builtin_s390_vfmssb(__a, __b, __c);
8810 static inline __ATTRS_o_ai vector double
8811 vec_msub(vector double __a, vector double __b, vector double __c) {
8812 return __builtin_s390_vfmsdb(__a, __b, __c);
8815 /*-- vec_nmadd ---------------------------------------------------------------*/
8818 static inline __ATTRS_o_ai vector float
8819 vec_nmadd(vector float __a, vector float __b, vector float __c) {
8820 return __builtin_s390_vfnmasb(__a, __b, __c);
8823 static inline __ATTRS_o_ai vector double
8824 vec_nmadd(vector double __a, vector double __b, vector double __c) {
8825 return __builtin_s390_vfnmadb(__a, __b, __c);
8829 /*-- vec_nmsub ---------------------------------------------------------------*/
8832 static inline __ATTRS_o_ai vector float
8833 vec_nmsub(vector float __a, vector float __b, vector float __c) {
8834 return __builtin_s390_vfnmssb(__a, __b, __c);
8837 static inline __ATTRS_o_ai vector double
8838 vec_nmsub(vector double __a, vector double __b, vector double __c) {
8839 return __builtin_s390_vfnmsdb(__a, __b, __c);
8843 /*-- vec_sqrt ---------------------------------------------------------------*/
8846 static inline __ATTRS_o_ai vector float
8847 vec_sqrt(vector float __a) {
8848 return __builtin_s390_vfsqsb(__a);
8852 static inline __ATTRS_o_ai vector double
8853 vec_sqrt(vector double __a) {
8854 return __builtin_s390_vfsqdb(__a);
8857 /*-- vec_ld2f ---------------------------------------------------------------*/
8859 // This prototype is deprecated.
8860 static inline __ATTRS_ai vector double
8861 vec_ld2f(const float *__ptr) {
8862 typedef float __v2f32 __attribute__((__vector_size__(8)));
8863 return __builtin_convertvector(*(const __v2f32 *)__ptr, vector double);
8866 /*-- vec_st2f ---------------------------------------------------------------*/
8868 // This prototype is deprecated.
8869 static inline __ATTRS_ai void
8870 vec_st2f(vector double __a, float *__ptr) {
8871 typedef float __v2f32 __attribute__((__vector_size__(8)));
8872 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
8875 /*-- vec_ctd ----------------------------------------------------------------*/
8877 // This prototype is deprecated.
8878 static inline __ATTRS_o_ai vector double
8879 vec_ctd(vector signed long long __a, int __b)
8880 __constant_range(__b, 0, 31) {
8881 vector double __conv = __builtin_convertvector(__a, vector double);
8882 __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
8886 // This prototype is deprecated.
8887 static inline __ATTRS_o_ai vector double
8888 vec_ctd(vector unsigned long long __a, int __b)
8889 __constant_range(__b, 0, 31) {
8890 vector double __conv = __builtin_convertvector(__a, vector double);
8891 __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
8895 /*-- vec_ctsl ---------------------------------------------------------------*/
8897 // This prototype is deprecated.
8898 static inline __ATTRS_o_ai vector signed long long
8899 vec_ctsl(vector double __a, int __b)
8900 __constant_range(__b, 0, 31) {
8901 __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
8902 return __builtin_convertvector(__a, vector signed long long);
8905 /*-- vec_ctul ---------------------------------------------------------------*/
8907 // This prototype is deprecated.
8908 static inline __ATTRS_o_ai vector unsigned long long
8909 vec_ctul(vector double __a, int __b)
8910 __constant_range(__b, 0, 31) {
8911 __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
8912 return __builtin_convertvector(__a, vector unsigned long long);
8915 /*-- vec_doublee ------------------------------------------------------------*/
8918 static inline __ATTRS_ai vector double
8919 vec_doublee(vector float __a) {
8920 typedef float __v2f32 __attribute__((__vector_size__(8)));
8921 __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
8922 return __builtin_convertvector(__pack, vector double);
8926 /*-- vec_floate -------------------------------------------------------------*/
8929 static inline __ATTRS_ai vector float
8930 vec_floate(vector double __a) {
8931 typedef float __v2f32 __attribute__((__vector_size__(8)));
8932 __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
8933 return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
8937 /*-- vec_double -------------------------------------------------------------*/
8939 static inline __ATTRS_o_ai vector double
8940 vec_double(vector signed long long __a) {
8941 return __builtin_convertvector(__a, vector double);
8944 static inline __ATTRS_o_ai vector double
8945 vec_double(vector unsigned long long __a) {
8946 return __builtin_convertvector(__a, vector double);
8949 /*-- vec_float --------------------------------------------------------------*/
8953 static inline __ATTRS_o_ai vector float
8954 vec_float(vector signed int __a) {
8955 return __builtin_convertvector(__a, vector float);
8958 static inline __ATTRS_o_ai vector float
8959 vec_float(vector unsigned int __a) {
8960 return __builtin_convertvector(__a, vector float);
8965 /*-- vec_signed -------------------------------------------------------------*/
8967 static inline __ATTRS_o_ai vector signed long long
8968 vec_signed(vector double __a) {
8969 return __builtin_convertvector(__a, vector signed long long);
8973 static inline __ATTRS_o_ai vector signed int
8974 vec_signed(vector float __a) {
8975 return __builtin_convertvector(__a, vector signed int);
8979 /*-- vec_unsigned -----------------------------------------------------------*/
8981 static inline __ATTRS_o_ai vector unsigned long long
8982 vec_unsigned(vector double __a) {
8983 return __builtin_convertvector(__a, vector unsigned long long);
8987 static inline __ATTRS_o_ai vector unsigned int
8988 vec_unsigned(vector float __a) {
8989 return __builtin_convertvector(__a, vector unsigned int);
8993 /*-- vec_roundp -------------------------------------------------------------*/
8996 static inline __ATTRS_o_ai vector float
8997 vec_roundp(vector float __a) {
8998 return __builtin_s390_vfisb(__a, 4, 6);
9002 static inline __ATTRS_o_ai vector double
9003 vec_roundp(vector double __a) {
9004 return __builtin_s390_vfidb(__a, 4, 6);
9007 /*-- vec_ceil ---------------------------------------------------------------*/
9010 static inline __ATTRS_o_ai vector float
9011 vec_ceil(vector float __a) {
9012 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9013 return __builtin_s390_vfisb(__a, 4, 6);
9017 static inline __ATTRS_o_ai vector double
9018 vec_ceil(vector double __a) {
9019 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9020 return __builtin_s390_vfidb(__a, 4, 6);
9023 /*-- vec_roundm -------------------------------------------------------------*/
9026 static inline __ATTRS_o_ai vector float
9027 vec_roundm(vector float __a) {
9028 return __builtin_s390_vfisb(__a, 4, 7);
9032 static inline __ATTRS_o_ai vector double
9033 vec_roundm(vector double __a) {
9034 return __builtin_s390_vfidb(__a, 4, 7);
9037 /*-- vec_floor --------------------------------------------------------------*/
9040 static inline __ATTRS_o_ai vector float
9041 vec_floor(vector float __a) {
9042 // On this platform, vec_floor never triggers the IEEE-inexact exception.
9043 return __builtin_s390_vfisb(__a, 4, 7);
9047 static inline __ATTRS_o_ai vector double
9048 vec_floor(vector double __a) {
9049 // On this platform, vec_floor never triggers the IEEE-inexact exception.
9050 return __builtin_s390_vfidb(__a, 4, 7);
9053 /*-- vec_roundz -------------------------------------------------------------*/
9056 static inline __ATTRS_o_ai vector float
9057 vec_roundz(vector float __a) {
9058 return __builtin_s390_vfisb(__a, 4, 5);
9062 static inline __ATTRS_o_ai vector double
9063 vec_roundz(vector double __a) {
9064 return __builtin_s390_vfidb(__a, 4, 5);
9067 /*-- vec_trunc --------------------------------------------------------------*/
9070 static inline __ATTRS_o_ai vector float
9071 vec_trunc(vector float __a) {
9072 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9073 return __builtin_s390_vfisb(__a, 4, 5);
9077 static inline __ATTRS_o_ai vector double
9078 vec_trunc(vector double __a) {
9079 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9080 return __builtin_s390_vfidb(__a, 4, 5);
9083 /*-- vec_roundc -------------------------------------------------------------*/
9086 static inline __ATTRS_o_ai vector float
9087 vec_roundc(vector float __a) {
9088 return __builtin_s390_vfisb(__a, 4, 0);
9092 static inline __ATTRS_o_ai vector double
9093 vec_roundc(vector double __a) {
9094 return __builtin_s390_vfidb(__a, 4, 0);
9097 /*-- vec_rint ---------------------------------------------------------------*/
9100 static inline __ATTRS_o_ai vector float
9101 vec_rint(vector float __a) {
9102 // vec_rint may trigger the IEEE-inexact exception.
9103 return __builtin_s390_vfisb(__a, 0, 0);
9107 static inline __ATTRS_o_ai vector double
9108 vec_rint(vector double __a) {
9109 // vec_rint may trigger the IEEE-inexact exception.
9110 return __builtin_s390_vfidb(__a, 0, 0);
9113 /*-- vec_round --------------------------------------------------------------*/
9116 static inline __ATTRS_o_ai vector float
9117 vec_round(vector float __a) {
9118 return __builtin_s390_vfisb(__a, 4, 4);
9122 static inline __ATTRS_o_ai vector double
9123 vec_round(vector double __a) {
9124 return __builtin_s390_vfidb(__a, 4, 4);
9127 /*-- vec_fp_test_data_class -------------------------------------------------*/
9130 extern __ATTRS_o vector bool int
9131 vec_fp_test_data_class(vector float __a, int __b, int *__c)
9132 __constant_range(__b, 0, 4095);
9134 extern __ATTRS_o vector bool long long
9135 vec_fp_test_data_class(vector double __a, int __b, int *__c)
9136 __constant_range(__b, 0, 4095);
9138 #define vec_fp_test_data_class(X, Y, Z) \
9139 ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
9141 vector unsigned char __res; \
9142 vector unsigned char __x = (vector unsigned char)(X); \
9144 switch (sizeof ((X)[0])) { \
9145 case 4: __res = (vector unsigned char) \
9146 __builtin_s390_vftcisb((vector float)__x, (Y), __z); \
9148 default: __res = (vector unsigned char) \
9149 __builtin_s390_vftcidb((vector double)__x, (Y), __z); \
9153 #define vec_fp_test_data_class(X, Y, Z) \
9154 ((vector bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
9157 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
9158 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
9159 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
9160 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
9161 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
9162 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
9163 __VEC_CLASS_FP_NORMAL_N)
9164 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
9165 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
9166 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
9167 __VEC_CLASS_FP_SUBNORMAL_N)
9168 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
9169 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
9170 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
9171 __VEC_CLASS_FP_INFINITY_N)
9172 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
9173 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
9174 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
9175 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
9176 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
9177 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
9178 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
9179 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
9180 __VEC_CLASS_FP_SUBNORMAL | \
9181 __VEC_CLASS_FP_ZERO | \
9182 __VEC_CLASS_FP_INFINITY)
9184 /*-- vec_cp_until_zero ------------------------------------------------------*/
9186 static inline __ATTRS_o_ai vector signed char
9187 vec_cp_until_zero(vector signed char __a) {
9188 return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a);
9191 static inline __ATTRS_o_ai vector bool char
9192 vec_cp_until_zero(vector bool char __a) {
9193 return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a);
9196 static inline __ATTRS_o_ai vector unsigned char
9197 vec_cp_until_zero(vector unsigned char __a) {
9198 return __builtin_s390_vistrb(__a);
9201 static inline __ATTRS_o_ai vector signed short
9202 vec_cp_until_zero(vector signed short __a) {
9203 return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a);
9206 static inline __ATTRS_o_ai vector bool short
9207 vec_cp_until_zero(vector bool short __a) {
9208 return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a);
9211 static inline __ATTRS_o_ai vector unsigned short
9212 vec_cp_until_zero(vector unsigned short __a) {
9213 return __builtin_s390_vistrh(__a);
9216 static inline __ATTRS_o_ai vector signed int
9217 vec_cp_until_zero(vector signed int __a) {
9218 return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a);
9221 static inline __ATTRS_o_ai vector bool int
9222 vec_cp_until_zero(vector bool int __a) {
9223 return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a);
9226 static inline __ATTRS_o_ai vector unsigned int
9227 vec_cp_until_zero(vector unsigned int __a) {
9228 return __builtin_s390_vistrf(__a);
9231 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
9233 static inline __ATTRS_o_ai vector signed char
9234 vec_cp_until_zero_cc(vector signed char __a, int *__cc) {
9235 return (vector signed char)
9236 __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
9239 static inline __ATTRS_o_ai vector bool char
9240 vec_cp_until_zero_cc(vector bool char __a, int *__cc) {
9241 return (vector bool char)
9242 __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
9245 static inline __ATTRS_o_ai vector unsigned char
9246 vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) {
9247 return __builtin_s390_vistrbs(__a, __cc);
9250 static inline __ATTRS_o_ai vector signed short
9251 vec_cp_until_zero_cc(vector signed short __a, int *__cc) {
9252 return (vector signed short)
9253 __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
9256 static inline __ATTRS_o_ai vector bool short
9257 vec_cp_until_zero_cc(vector bool short __a, int *__cc) {
9258 return (vector bool short)
9259 __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
9262 static inline __ATTRS_o_ai vector unsigned short
9263 vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) {
9264 return __builtin_s390_vistrhs(__a, __cc);
9267 static inline __ATTRS_o_ai vector signed int
9268 vec_cp_until_zero_cc(vector signed int __a, int *__cc) {
9269 return (vector signed int)
9270 __builtin_s390_vistrfs((vector unsigned int)__a, __cc);
9273 static inline __ATTRS_o_ai vector bool int
9274 vec_cp_until_zero_cc(vector bool int __a, int *__cc) {
9275 return (vector bool int)__builtin_s390_vistrfs((vector unsigned int)__a,
9279 static inline __ATTRS_o_ai vector unsigned int
9280 vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) {
9281 return __builtin_s390_vistrfs(__a, __cc);
9284 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
9286 static inline __ATTRS_o_ai vector signed char
9287 vec_cmpeq_idx(vector signed char __a, vector signed char __b) {
9288 return (vector signed char)
9289 __builtin_s390_vfeeb((vector unsigned char)__a,
9290 (vector unsigned char)__b);
9293 static inline __ATTRS_o_ai vector unsigned char
9294 vec_cmpeq_idx(vector bool char __a, vector bool char __b) {
9295 return __builtin_s390_vfeeb((vector unsigned char)__a,
9296 (vector unsigned char)__b);
9299 static inline __ATTRS_o_ai vector unsigned char
9300 vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) {
9301 return __builtin_s390_vfeeb(__a, __b);
9304 static inline __ATTRS_o_ai vector signed short
9305 vec_cmpeq_idx(vector signed short __a, vector signed short __b) {
9306 return (vector signed short)
9307 __builtin_s390_vfeeh((vector unsigned short)__a,
9308 (vector unsigned short)__b);
9311 static inline __ATTRS_o_ai vector unsigned short
9312 vec_cmpeq_idx(vector bool short __a, vector bool short __b) {
9313 return __builtin_s390_vfeeh((vector unsigned short)__a,
9314 (vector unsigned short)__b);
9317 static inline __ATTRS_o_ai vector unsigned short
9318 vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) {
9319 return __builtin_s390_vfeeh(__a, __b);
9322 static inline __ATTRS_o_ai vector signed int
9323 vec_cmpeq_idx(vector signed int __a, vector signed int __b) {
9324 return (vector signed int)
9325 __builtin_s390_vfeef((vector unsigned int)__a,
9326 (vector unsigned int)__b);
9329 static inline __ATTRS_o_ai vector unsigned int
9330 vec_cmpeq_idx(vector bool int __a, vector bool int __b) {
9331 return __builtin_s390_vfeef((vector unsigned int)__a,
9332 (vector unsigned int)__b);
9335 static inline __ATTRS_o_ai vector unsigned int
9336 vec_cmpeq_idx(vector unsigned int __a, vector unsigned int __b) {
9337 return __builtin_s390_vfeef(__a, __b);
9340 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
9342 static inline __ATTRS_o_ai vector signed char
9343 vec_cmpeq_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
9344 return (vector signed char)
9345 __builtin_s390_vfeebs((vector unsigned char)__a,
9346 (vector unsigned char)__b, __cc);
9349 static inline __ATTRS_o_ai vector unsigned char
9350 vec_cmpeq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9351 return __builtin_s390_vfeebs((vector unsigned char)__a,
9352 (vector unsigned char)__b, __cc);
9355 static inline __ATTRS_o_ai vector unsigned char
9356 vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b,
9358 return __builtin_s390_vfeebs(__a, __b, __cc);
9361 static inline __ATTRS_o_ai vector signed short
9362 vec_cmpeq_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
9363 return (vector signed short)
9364 __builtin_s390_vfeehs((vector unsigned short)__a,
9365 (vector unsigned short)__b, __cc);
9368 static inline __ATTRS_o_ai vector unsigned short
9369 vec_cmpeq_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9370 return __builtin_s390_vfeehs((vector unsigned short)__a,
9371 (vector unsigned short)__b, __cc);
9374 static inline __ATTRS_o_ai vector unsigned short
9375 vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b,
9377 return __builtin_s390_vfeehs(__a, __b, __cc);
9380 static inline __ATTRS_o_ai vector signed int
9381 vec_cmpeq_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9382 return (vector signed int)
9383 __builtin_s390_vfeefs((vector unsigned int)__a,
9384 (vector unsigned int)__b, __cc);
9387 static inline __ATTRS_o_ai vector unsigned int
9388 vec_cmpeq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9389 return __builtin_s390_vfeefs((vector unsigned int)__a,
9390 (vector unsigned int)__b, __cc);
9393 static inline __ATTRS_o_ai vector unsigned int
9394 vec_cmpeq_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
9395 return __builtin_s390_vfeefs(__a, __b, __cc);
9398 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
9400 static inline __ATTRS_o_ai vector signed char
9401 vec_cmpeq_or_0_idx(vector signed char __a, vector signed char __b) {
9402 return (vector signed char)
9403 __builtin_s390_vfeezb((vector unsigned char)__a,
9404 (vector unsigned char)__b);
9407 static inline __ATTRS_o_ai vector unsigned char
9408 vec_cmpeq_or_0_idx(vector bool char __a, vector bool char __b) {
9409 return __builtin_s390_vfeezb((vector unsigned char)__a,
9410 (vector unsigned char)__b);
9413 static inline __ATTRS_o_ai vector unsigned char
9414 vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9415 return __builtin_s390_vfeezb(__a, __b);
9418 static inline __ATTRS_o_ai vector signed short
9419 vec_cmpeq_or_0_idx(vector signed short __a, vector signed short __b) {
9420 return (vector signed short)
9421 __builtin_s390_vfeezh((vector unsigned short)__a,
9422 (vector unsigned short)__b);
9425 static inline __ATTRS_o_ai vector unsigned short
9426 vec_cmpeq_or_0_idx(vector bool short __a, vector bool short __b) {
9427 return __builtin_s390_vfeezh((vector unsigned short)__a,
9428 (vector unsigned short)__b);
9431 static inline __ATTRS_o_ai vector unsigned short
9432 vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9433 return __builtin_s390_vfeezh(__a, __b);
9436 static inline __ATTRS_o_ai vector signed int
9437 vec_cmpeq_or_0_idx(vector signed int __a, vector signed int __b) {
9438 return (vector signed int)
9439 __builtin_s390_vfeezf((vector unsigned int)__a,
9440 (vector unsigned int)__b);
9443 static inline __ATTRS_o_ai vector unsigned int
9444 vec_cmpeq_or_0_idx(vector bool int __a, vector bool int __b) {
9445 return __builtin_s390_vfeezf((vector unsigned int)__a,
9446 (vector unsigned int)__b);
9449 static inline __ATTRS_o_ai vector unsigned int
9450 vec_cmpeq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
9451 return __builtin_s390_vfeezf(__a, __b);
9454 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
9456 static inline __ATTRS_o_ai vector signed char
9457 vec_cmpeq_or_0_idx_cc(vector signed char __a, vector signed char __b,
9459 return (vector signed char)
9460 __builtin_s390_vfeezbs((vector unsigned char)__a,
9461 (vector unsigned char)__b, __cc);
9464 static inline __ATTRS_o_ai vector unsigned char
9465 vec_cmpeq_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9466 return __builtin_s390_vfeezbs((vector unsigned char)__a,
9467 (vector unsigned char)__b, __cc);
9470 static inline __ATTRS_o_ai vector unsigned char
9471 vec_cmpeq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9473 return __builtin_s390_vfeezbs(__a, __b, __cc);
9476 static inline __ATTRS_o_ai vector signed short
9477 vec_cmpeq_or_0_idx_cc(vector signed short __a, vector signed short __b,
9479 return (vector signed short)
9480 __builtin_s390_vfeezhs((vector unsigned short)__a,
9481 (vector unsigned short)__b, __cc);
9484 static inline __ATTRS_o_ai vector unsigned short
9485 vec_cmpeq_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9486 return __builtin_s390_vfeezhs((vector unsigned short)__a,
9487 (vector unsigned short)__b, __cc);
9490 static inline __ATTRS_o_ai vector unsigned short
9491 vec_cmpeq_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9493 return __builtin_s390_vfeezhs(__a, __b, __cc);
9496 static inline __ATTRS_o_ai vector signed int
9497 vec_cmpeq_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9498 return (vector signed int)
9499 __builtin_s390_vfeezfs((vector unsigned int)__a,
9500 (vector unsigned int)__b, __cc);
9503 static inline __ATTRS_o_ai vector unsigned int
9504 vec_cmpeq_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9505 return __builtin_s390_vfeezfs((vector unsigned int)__a,
9506 (vector unsigned int)__b, __cc);
9509 static inline __ATTRS_o_ai vector unsigned int
9510 vec_cmpeq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9512 return __builtin_s390_vfeezfs(__a, __b, __cc);
9515 /*-- vec_cmpne_idx ----------------------------------------------------------*/
9517 static inline __ATTRS_o_ai vector signed char
9518 vec_cmpne_idx(vector signed char __a, vector signed char __b) {
9519 return (vector signed char)
9520 __builtin_s390_vfeneb((vector unsigned char)__a,
9521 (vector unsigned char)__b);
9524 static inline __ATTRS_o_ai vector unsigned char
9525 vec_cmpne_idx(vector bool char __a, vector bool char __b) {
9526 return __builtin_s390_vfeneb((vector unsigned char)__a,
9527 (vector unsigned char)__b);
9530 static inline __ATTRS_o_ai vector unsigned char
9531 vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) {
9532 return __builtin_s390_vfeneb(__a, __b);
9535 static inline __ATTRS_o_ai vector signed short
9536 vec_cmpne_idx(vector signed short __a, vector signed short __b) {
9537 return (vector signed short)
9538 __builtin_s390_vfeneh((vector unsigned short)__a,
9539 (vector unsigned short)__b);
9542 static inline __ATTRS_o_ai vector unsigned short
9543 vec_cmpne_idx(vector bool short __a, vector bool short __b) {
9544 return __builtin_s390_vfeneh((vector unsigned short)__a,
9545 (vector unsigned short)__b);
9548 static inline __ATTRS_o_ai vector unsigned short
9549 vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) {
9550 return __builtin_s390_vfeneh(__a, __b);
9553 static inline __ATTRS_o_ai vector signed int
9554 vec_cmpne_idx(vector signed int __a, vector signed int __b) {
9555 return (vector signed int)
9556 __builtin_s390_vfenef((vector unsigned int)__a,
9557 (vector unsigned int)__b);
9560 static inline __ATTRS_o_ai vector unsigned int
9561 vec_cmpne_idx(vector bool int __a, vector bool int __b) {
9562 return __builtin_s390_vfenef((vector unsigned int)__a,
9563 (vector unsigned int)__b);
9566 static inline __ATTRS_o_ai vector unsigned int
9567 vec_cmpne_idx(vector unsigned int __a, vector unsigned int __b) {
9568 return __builtin_s390_vfenef(__a, __b);
9571 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
9573 static inline __ATTRS_o_ai vector signed char
9574 vec_cmpne_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
9575 return (vector signed char)
9576 __builtin_s390_vfenebs((vector unsigned char)__a,
9577 (vector unsigned char)__b, __cc);
9580 static inline __ATTRS_o_ai vector unsigned char
9581 vec_cmpne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9582 return __builtin_s390_vfenebs((vector unsigned char)__a,
9583 (vector unsigned char)__b, __cc);
9586 static inline __ATTRS_o_ai vector unsigned char
9587 vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b,
9589 return __builtin_s390_vfenebs(__a, __b, __cc);
9592 static inline __ATTRS_o_ai vector signed short
9593 vec_cmpne_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
9594 return (vector signed short)
9595 __builtin_s390_vfenehs((vector unsigned short)__a,
9596 (vector unsigned short)__b, __cc);
9599 static inline __ATTRS_o_ai vector unsigned short
9600 vec_cmpne_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9601 return __builtin_s390_vfenehs((vector unsigned short)__a,
9602 (vector unsigned short)__b, __cc);
9605 static inline __ATTRS_o_ai vector unsigned short
9606 vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b,
9608 return __builtin_s390_vfenehs(__a, __b, __cc);
9611 static inline __ATTRS_o_ai vector signed int
9612 vec_cmpne_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9613 return (vector signed int)
9614 __builtin_s390_vfenefs((vector unsigned int)__a,
9615 (vector unsigned int)__b, __cc);
9618 static inline __ATTRS_o_ai vector unsigned int
9619 vec_cmpne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9620 return __builtin_s390_vfenefs((vector unsigned int)__a,
9621 (vector unsigned int)__b, __cc);
9624 static inline __ATTRS_o_ai vector unsigned int
9625 vec_cmpne_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
9626 return __builtin_s390_vfenefs(__a, __b, __cc);
9629 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
9631 static inline __ATTRS_o_ai vector signed char
9632 vec_cmpne_or_0_idx(vector signed char __a, vector signed char __b) {
9633 return (vector signed char)
9634 __builtin_s390_vfenezb((vector unsigned char)__a,
9635 (vector unsigned char)__b);
9638 static inline __ATTRS_o_ai vector unsigned char
9639 vec_cmpne_or_0_idx(vector bool char __a, vector bool char __b) {
9640 return __builtin_s390_vfenezb((vector unsigned char)__a,
9641 (vector unsigned char)__b);
9644 static inline __ATTRS_o_ai vector unsigned char
9645 vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9646 return __builtin_s390_vfenezb(__a, __b);
9649 static inline __ATTRS_o_ai vector signed short
9650 vec_cmpne_or_0_idx(vector signed short __a, vector signed short __b) {
9651 return (vector signed short)
9652 __builtin_s390_vfenezh((vector unsigned short)__a,
9653 (vector unsigned short)__b);
9656 static inline __ATTRS_o_ai vector unsigned short
9657 vec_cmpne_or_0_idx(vector bool short __a, vector bool short __b) {
9658 return __builtin_s390_vfenezh((vector unsigned short)__a,
9659 (vector unsigned short)__b);
9662 static inline __ATTRS_o_ai vector unsigned short
9663 vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9664 return __builtin_s390_vfenezh(__a, __b);
9667 static inline __ATTRS_o_ai vector signed int
9668 vec_cmpne_or_0_idx(vector signed int __a, vector signed int __b) {
9669 return (vector signed int)
9670 __builtin_s390_vfenezf((vector unsigned int)__a,
9671 (vector unsigned int)__b);
9674 static inline __ATTRS_o_ai vector unsigned int
9675 vec_cmpne_or_0_idx(vector bool int __a, vector bool int __b) {
9676 return __builtin_s390_vfenezf((vector unsigned int)__a,
9677 (vector unsigned int)__b);
9680 static inline __ATTRS_o_ai vector unsigned int
9681 vec_cmpne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
9682 return __builtin_s390_vfenezf(__a, __b);
9685 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
9687 static inline __ATTRS_o_ai vector signed char
9688 vec_cmpne_or_0_idx_cc(vector signed char __a, vector signed char __b,
9690 return (vector signed char)
9691 __builtin_s390_vfenezbs((vector unsigned char)__a,
9692 (vector unsigned char)__b, __cc);
9695 static inline __ATTRS_o_ai vector unsigned char
9696 vec_cmpne_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9697 return __builtin_s390_vfenezbs((vector unsigned char)__a,
9698 (vector unsigned char)__b, __cc);
9701 static inline __ATTRS_o_ai vector unsigned char
9702 vec_cmpne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9704 return __builtin_s390_vfenezbs(__a, __b, __cc);
9707 static inline __ATTRS_o_ai vector signed short
9708 vec_cmpne_or_0_idx_cc(vector signed short __a, vector signed short __b,
9710 return (vector signed short)
9711 __builtin_s390_vfenezhs((vector unsigned short)__a,
9712 (vector unsigned short)__b, __cc);
9715 static inline __ATTRS_o_ai vector unsigned short
9716 vec_cmpne_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9717 return __builtin_s390_vfenezhs((vector unsigned short)__a,
9718 (vector unsigned short)__b, __cc);
9721 static inline __ATTRS_o_ai vector unsigned short
9722 vec_cmpne_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9724 return __builtin_s390_vfenezhs(__a, __b, __cc);
9727 static inline __ATTRS_o_ai vector signed int
9728 vec_cmpne_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9729 return (vector signed int)
9730 __builtin_s390_vfenezfs((vector unsigned int)__a,
9731 (vector unsigned int)__b, __cc);
9734 static inline __ATTRS_o_ai vector unsigned int
9735 vec_cmpne_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9736 return __builtin_s390_vfenezfs((vector unsigned int)__a,
9737 (vector unsigned int)__b, __cc);
9740 static inline __ATTRS_o_ai vector unsigned int
9741 vec_cmpne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9743 return __builtin_s390_vfenezfs(__a, __b, __cc);
9746 /*-- vec_cmprg --------------------------------------------------------------*/
9748 static inline __ATTRS_o_ai vector bool char
9749 vec_cmprg(vector unsigned char __a, vector unsigned char __b,
9750 vector unsigned char __c) {
9751 return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
9754 static inline __ATTRS_o_ai vector bool short
9755 vec_cmprg(vector unsigned short __a, vector unsigned short __b,
9756 vector unsigned short __c) {
9757 return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
9760 static inline __ATTRS_o_ai vector bool int
9761 vec_cmprg(vector unsigned int __a, vector unsigned int __b,
9762 vector unsigned int __c) {
9763 return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
9766 /*-- vec_cmprg_cc -----------------------------------------------------------*/
9768 static inline __ATTRS_o_ai vector bool char
9769 vec_cmprg_cc(vector unsigned char __a, vector unsigned char __b,
9770 vector unsigned char __c, int *__cc) {
9771 return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
9774 static inline __ATTRS_o_ai vector bool short
9775 vec_cmprg_cc(vector unsigned short __a, vector unsigned short __b,
9776 vector unsigned short __c, int *__cc) {
9777 return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
9780 static inline __ATTRS_o_ai vector bool int
9781 vec_cmprg_cc(vector unsigned int __a, vector unsigned int __b,
9782 vector unsigned int __c, int *__cc) {
9783 return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
9786 /*-- vec_cmprg_idx ----------------------------------------------------------*/
9788 static inline __ATTRS_o_ai vector unsigned char
9789 vec_cmprg_idx(vector unsigned char __a, vector unsigned char __b,
9790 vector unsigned char __c) {
9791 return __builtin_s390_vstrcb(__a, __b, __c, 0);
9794 static inline __ATTRS_o_ai vector unsigned short
9795 vec_cmprg_idx(vector unsigned short __a, vector unsigned short __b,
9796 vector unsigned short __c) {
9797 return __builtin_s390_vstrch(__a, __b, __c, 0);
9800 static inline __ATTRS_o_ai vector unsigned int
9801 vec_cmprg_idx(vector unsigned int __a, vector unsigned int __b,
9802 vector unsigned int __c) {
9803 return __builtin_s390_vstrcf(__a, __b, __c, 0);
9806 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
9808 static inline __ATTRS_o_ai vector unsigned char
9809 vec_cmprg_idx_cc(vector unsigned char __a, vector unsigned char __b,
9810 vector unsigned char __c, int *__cc) {
9811 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
9814 static inline __ATTRS_o_ai vector unsigned short
9815 vec_cmprg_idx_cc(vector unsigned short __a, vector unsigned short __b,
9816 vector unsigned short __c, int *__cc) {
9817 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
9820 static inline __ATTRS_o_ai vector unsigned int
9821 vec_cmprg_idx_cc(vector unsigned int __a, vector unsigned int __b,
9822 vector unsigned int __c, int *__cc) {
9823 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
9826 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
9828 static inline __ATTRS_o_ai vector unsigned char
9829 vec_cmprg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
9830 vector unsigned char __c) {
9831 return __builtin_s390_vstrczb(__a, __b, __c, 0);
9834 static inline __ATTRS_o_ai vector unsigned short
9835 vec_cmprg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
9836 vector unsigned short __c) {
9837 return __builtin_s390_vstrczh(__a, __b, __c, 0);
9840 static inline __ATTRS_o_ai vector unsigned int
9841 vec_cmprg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
9842 vector unsigned int __c) {
9843 return __builtin_s390_vstrczf(__a, __b, __c, 0);
9846 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
9848 static inline __ATTRS_o_ai vector unsigned char
9849 vec_cmprg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9850 vector unsigned char __c, int *__cc) {
9851 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
9854 static inline __ATTRS_o_ai vector unsigned short
9855 vec_cmprg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9856 vector unsigned short __c, int *__cc) {
9857 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
9860 static inline __ATTRS_o_ai vector unsigned int
9861 vec_cmprg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9862 vector unsigned int __c, int *__cc) {
9863 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
9866 /*-- vec_cmpnrg -------------------------------------------------------------*/
9868 static inline __ATTRS_o_ai vector bool char
9869 vec_cmpnrg(vector unsigned char __a, vector unsigned char __b,
9870 vector unsigned char __c) {
9871 return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
9874 static inline __ATTRS_o_ai vector bool short
9875 vec_cmpnrg(vector unsigned short __a, vector unsigned short __b,
9876 vector unsigned short __c) {
9877 return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
9880 static inline __ATTRS_o_ai vector bool int
9881 vec_cmpnrg(vector unsigned int __a, vector unsigned int __b,
9882 vector unsigned int __c) {
9883 return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
9886 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
9888 static inline __ATTRS_o_ai vector bool char
9889 vec_cmpnrg_cc(vector unsigned char __a, vector unsigned char __b,
9890 vector unsigned char __c, int *__cc) {
9891 return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
9894 static inline __ATTRS_o_ai vector bool short
9895 vec_cmpnrg_cc(vector unsigned short __a, vector unsigned short __b,
9896 vector unsigned short __c, int *__cc) {
9897 return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
9900 static inline __ATTRS_o_ai vector bool int
9901 vec_cmpnrg_cc(vector unsigned int __a, vector unsigned int __b,
9902 vector unsigned int __c, int *__cc) {
9903 return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
9906 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
9908 static inline __ATTRS_o_ai vector unsigned char
9909 vec_cmpnrg_idx(vector unsigned char __a, vector unsigned char __b,
9910 vector unsigned char __c) {
9911 return __builtin_s390_vstrcb(__a, __b, __c, 8);
9914 static inline __ATTRS_o_ai vector unsigned short
9915 vec_cmpnrg_idx(vector unsigned short __a, vector unsigned short __b,
9916 vector unsigned short __c) {
9917 return __builtin_s390_vstrch(__a, __b, __c, 8);
9920 static inline __ATTRS_o_ai vector unsigned int
9921 vec_cmpnrg_idx(vector unsigned int __a, vector unsigned int __b,
9922 vector unsigned int __c) {
9923 return __builtin_s390_vstrcf(__a, __b, __c, 8);
9926 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
9928 static inline __ATTRS_o_ai vector unsigned char
9929 vec_cmpnrg_idx_cc(vector unsigned char __a, vector unsigned char __b,
9930 vector unsigned char __c, int *__cc) {
9931 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
9934 static inline __ATTRS_o_ai vector unsigned short
9935 vec_cmpnrg_idx_cc(vector unsigned short __a, vector unsigned short __b,
9936 vector unsigned short __c, int *__cc) {
9937 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
9940 static inline __ATTRS_o_ai vector unsigned int
9941 vec_cmpnrg_idx_cc(vector unsigned int __a, vector unsigned int __b,
9942 vector unsigned int __c, int *__cc) {
9943 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
9946 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
9948 static inline __ATTRS_o_ai vector unsigned char
9949 vec_cmpnrg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
9950 vector unsigned char __c) {
9951 return __builtin_s390_vstrczb(__a, __b, __c, 8);
9954 static inline __ATTRS_o_ai vector unsigned short
9955 vec_cmpnrg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
9956 vector unsigned short __c) {
9957 return __builtin_s390_vstrczh(__a, __b, __c, 8);
9960 static inline __ATTRS_o_ai vector unsigned int
9961 vec_cmpnrg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
9962 vector unsigned int __c) {
9963 return __builtin_s390_vstrczf(__a, __b, __c, 8);
9966 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
9968 static inline __ATTRS_o_ai vector unsigned char
9969 vec_cmpnrg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9970 vector unsigned char __c, int *__cc) {
9971 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
9974 static inline __ATTRS_o_ai vector unsigned short
9975 vec_cmpnrg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9976 vector unsigned short __c, int *__cc) {
9977 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
9980 static inline __ATTRS_o_ai vector unsigned int
9981 vec_cmpnrg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9982 vector unsigned int __c, int *__cc) {
9983 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
9986 /*-- vec_find_any_eq --------------------------------------------------------*/
9988 static inline __ATTRS_o_ai vector bool char
9989 vec_find_any_eq(vector signed char __a, vector signed char __b) {
9990 return (vector bool char)
9991 __builtin_s390_vfaeb((vector unsigned char)__a,
9992 (vector unsigned char)__b, 4);
9995 static inline __ATTRS_o_ai vector bool char
9996 vec_find_any_eq(vector bool char __a, vector bool char __b) {
9997 return (vector bool char)
9998 __builtin_s390_vfaeb((vector unsigned char)__a,
9999 (vector unsigned char)__b, 4);
10002 static inline __ATTRS_o_ai vector bool char
10003 vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) {
10004 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4);
10007 static inline __ATTRS_o_ai vector bool short
10008 vec_find_any_eq(vector signed short __a, vector signed short __b) {
10009 return (vector bool short)
10010 __builtin_s390_vfaeh((vector unsigned short)__a,
10011 (vector unsigned short)__b, 4);
10014 static inline __ATTRS_o_ai vector bool short
10015 vec_find_any_eq(vector bool short __a, vector bool short __b) {
10016 return (vector bool short)
10017 __builtin_s390_vfaeh((vector unsigned short)__a,
10018 (vector unsigned short)__b, 4);
10021 static inline __ATTRS_o_ai vector bool short
10022 vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) {
10023 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4);
10026 static inline __ATTRS_o_ai vector bool int
10027 vec_find_any_eq(vector signed int __a, vector signed int __b) {
10028 return (vector bool int)
10029 __builtin_s390_vfaef((vector unsigned int)__a,
10030 (vector unsigned int)__b, 4);
10033 static inline __ATTRS_o_ai vector bool int
10034 vec_find_any_eq(vector bool int __a, vector bool int __b) {
10035 return (vector bool int)
10036 __builtin_s390_vfaef((vector unsigned int)__a,
10037 (vector unsigned int)__b, 4);
10040 static inline __ATTRS_o_ai vector bool int
10041 vec_find_any_eq(vector unsigned int __a, vector unsigned int __b) {
10042 return (vector bool int)__builtin_s390_vfaef(__a, __b, 4);
10045 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
10047 static inline __ATTRS_o_ai vector bool char
10048 vec_find_any_eq_cc(vector signed char __a, vector signed char __b, int *__cc) {
10049 return (vector bool char)
10050 __builtin_s390_vfaebs((vector unsigned char)__a,
10051 (vector unsigned char)__b, 4, __cc);
10054 static inline __ATTRS_o_ai vector bool char
10055 vec_find_any_eq_cc(vector bool char __a, vector bool char __b, int *__cc) {
10056 return (vector bool char)
10057 __builtin_s390_vfaebs((vector unsigned char)__a,
10058 (vector unsigned char)__b, 4, __cc);
10061 static inline __ATTRS_o_ai vector bool char
10062 vec_find_any_eq_cc(vector unsigned char __a, vector unsigned char __b,
10064 return (vector bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
10067 static inline __ATTRS_o_ai vector bool short
10068 vec_find_any_eq_cc(vector signed short __a, vector signed short __b,
10070 return (vector bool short)
10071 __builtin_s390_vfaehs((vector unsigned short)__a,
10072 (vector unsigned short)__b, 4, __cc);
10075 static inline __ATTRS_o_ai vector bool short
10076 vec_find_any_eq_cc(vector bool short __a, vector bool short __b, int *__cc) {
10077 return (vector bool short)
10078 __builtin_s390_vfaehs((vector unsigned short)__a,
10079 (vector unsigned short)__b, 4, __cc);
10082 static inline __ATTRS_o_ai vector bool short
10083 vec_find_any_eq_cc(vector unsigned short __a, vector unsigned short __b,
10085 return (vector bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
10088 static inline __ATTRS_o_ai vector bool int
10089 vec_find_any_eq_cc(vector signed int __a, vector signed int __b, int *__cc) {
10090 return (vector bool int)
10091 __builtin_s390_vfaefs((vector unsigned int)__a,
10092 (vector unsigned int)__b, 4, __cc);
10095 static inline __ATTRS_o_ai vector bool int
10096 vec_find_any_eq_cc(vector bool int __a, vector bool int __b, int *__cc) {
10097 return (vector bool int)
10098 __builtin_s390_vfaefs((vector unsigned int)__a,
10099 (vector unsigned int)__b, 4, __cc);
10102 static inline __ATTRS_o_ai vector bool int
10103 vec_find_any_eq_cc(vector unsigned int __a, vector unsigned int __b,
10105 return (vector bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
10108 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
10110 static inline __ATTRS_o_ai vector signed char
10111 vec_find_any_eq_idx(vector signed char __a, vector signed char __b) {
10112 return (vector signed char)
10113 __builtin_s390_vfaeb((vector unsigned char)__a,
10114 (vector unsigned char)__b, 0);
10117 static inline __ATTRS_o_ai vector unsigned char
10118 vec_find_any_eq_idx(vector bool char __a, vector bool char __b) {
10119 return __builtin_s390_vfaeb((vector unsigned char)__a,
10120 (vector unsigned char)__b, 0);
10123 static inline __ATTRS_o_ai vector unsigned char
10124 vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) {
10125 return __builtin_s390_vfaeb(__a, __b, 0);
10128 static inline __ATTRS_o_ai vector signed short
10129 vec_find_any_eq_idx(vector signed short __a, vector signed short __b) {
10130 return (vector signed short)
10131 __builtin_s390_vfaeh((vector unsigned short)__a,
10132 (vector unsigned short)__b, 0);
10135 static inline __ATTRS_o_ai vector unsigned short
10136 vec_find_any_eq_idx(vector bool short __a, vector bool short __b) {
10137 return __builtin_s390_vfaeh((vector unsigned short)__a,
10138 (vector unsigned short)__b, 0);
10141 static inline __ATTRS_o_ai vector unsigned short
10142 vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) {
10143 return __builtin_s390_vfaeh(__a, __b, 0);
10146 static inline __ATTRS_o_ai vector signed int
10147 vec_find_any_eq_idx(vector signed int __a, vector signed int __b) {
10148 return (vector signed int)
10149 __builtin_s390_vfaef((vector unsigned int)__a,
10150 (vector unsigned int)__b, 0);
10153 static inline __ATTRS_o_ai vector unsigned int
10154 vec_find_any_eq_idx(vector bool int __a, vector bool int __b) {
10155 return __builtin_s390_vfaef((vector unsigned int)__a,
10156 (vector unsigned int)__b, 0);
10159 static inline __ATTRS_o_ai vector unsigned int
10160 vec_find_any_eq_idx(vector unsigned int __a, vector unsigned int __b) {
10161 return __builtin_s390_vfaef(__a, __b, 0);
10164 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
10166 static inline __ATTRS_o_ai vector signed char
10167 vec_find_any_eq_idx_cc(vector signed char __a, vector signed char __b,
10169 return (vector signed char)
10170 __builtin_s390_vfaebs((vector unsigned char)__a,
10171 (vector unsigned char)__b, 0, __cc);
10174 static inline __ATTRS_o_ai vector unsigned char
10175 vec_find_any_eq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
10176 return __builtin_s390_vfaebs((vector unsigned char)__a,
10177 (vector unsigned char)__b, 0, __cc);
10180 static inline __ATTRS_o_ai vector unsigned char
10181 vec_find_any_eq_idx_cc(vector unsigned char __a, vector unsigned char __b,
10183 return __builtin_s390_vfaebs(__a, __b, 0, __cc);
10186 static inline __ATTRS_o_ai vector signed short
10187 vec_find_any_eq_idx_cc(vector signed short __a, vector signed short __b,
10189 return (vector signed short)
10190 __builtin_s390_vfaehs((vector unsigned short)__a,
10191 (vector unsigned short)__b, 0, __cc);
10194 static inline __ATTRS_o_ai vector unsigned short
10195 vec_find_any_eq_idx_cc(vector bool short __a, vector bool short __b,
10197 return __builtin_s390_vfaehs((vector unsigned short)__a,
10198 (vector unsigned short)__b, 0, __cc);
10201 static inline __ATTRS_o_ai vector unsigned short
10202 vec_find_any_eq_idx_cc(vector unsigned short __a, vector unsigned short __b,
10204 return __builtin_s390_vfaehs(__a, __b, 0, __cc);
10207 static inline __ATTRS_o_ai vector signed int
10208 vec_find_any_eq_idx_cc(vector signed int __a, vector signed int __b,
10210 return (vector signed int)
10211 __builtin_s390_vfaefs((vector unsigned int)__a,
10212 (vector unsigned int)__b, 0, __cc);
10215 static inline __ATTRS_o_ai vector unsigned int
10216 vec_find_any_eq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
10217 return __builtin_s390_vfaefs((vector unsigned int)__a,
10218 (vector unsigned int)__b, 0, __cc);
10221 static inline __ATTRS_o_ai vector unsigned int
10222 vec_find_any_eq_idx_cc(vector unsigned int __a, vector unsigned int __b,
10224 return __builtin_s390_vfaefs(__a, __b, 0, __cc);
10227 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
10229 static inline __ATTRS_o_ai vector signed char
10230 vec_find_any_eq_or_0_idx(vector signed char __a, vector signed char __b) {
10231 return (vector signed char)
10232 __builtin_s390_vfaezb((vector unsigned char)__a,
10233 (vector unsigned char)__b, 0);
10236 static inline __ATTRS_o_ai vector unsigned char
10237 vec_find_any_eq_or_0_idx(vector bool char __a, vector bool char __b) {
10238 return __builtin_s390_vfaezb((vector unsigned char)__a,
10239 (vector unsigned char)__b, 0);
10242 static inline __ATTRS_o_ai vector unsigned char
10243 vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
10244 return __builtin_s390_vfaezb(__a, __b, 0);
10247 static inline __ATTRS_o_ai vector signed short
10248 vec_find_any_eq_or_0_idx(vector signed short __a, vector signed short __b) {
10249 return (vector signed short)
10250 __builtin_s390_vfaezh((vector unsigned short)__a,
10251 (vector unsigned short)__b, 0);
10254 static inline __ATTRS_o_ai vector unsigned short
10255 vec_find_any_eq_or_0_idx(vector bool short __a, vector bool short __b) {
10256 return __builtin_s390_vfaezh((vector unsigned short)__a,
10257 (vector unsigned short)__b, 0);
10260 static inline __ATTRS_o_ai vector unsigned short
10261 vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10262 return __builtin_s390_vfaezh(__a, __b, 0);
10265 static inline __ATTRS_o_ai vector signed int
10266 vec_find_any_eq_or_0_idx(vector signed int __a, vector signed int __b) {
10267 return (vector signed int)
10268 __builtin_s390_vfaezf((vector unsigned int)__a,
10269 (vector unsigned int)__b, 0);
10272 static inline __ATTRS_o_ai vector unsigned int
10273 vec_find_any_eq_or_0_idx(vector bool int __a, vector bool int __b) {
10274 return __builtin_s390_vfaezf((vector unsigned int)__a,
10275 (vector unsigned int)__b, 0);
10278 static inline __ATTRS_o_ai vector unsigned int
10279 vec_find_any_eq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
10280 return __builtin_s390_vfaezf(__a, __b, 0);
10283 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
10285 static inline __ATTRS_o_ai vector signed char
10286 vec_find_any_eq_or_0_idx_cc(vector signed char __a, vector signed char __b,
10288 return (vector signed char)
10289 __builtin_s390_vfaezbs((vector unsigned char)__a,
10290 (vector unsigned char)__b, 0, __cc);
10293 static inline __ATTRS_o_ai vector unsigned char
10294 vec_find_any_eq_or_0_idx_cc(vector bool char __a, vector bool char __b,
10296 return __builtin_s390_vfaezbs((vector unsigned char)__a,
10297 (vector unsigned char)__b, 0, __cc);
10300 static inline __ATTRS_o_ai vector unsigned char
10301 vec_find_any_eq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
10303 return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
10306 static inline __ATTRS_o_ai vector signed short
10307 vec_find_any_eq_or_0_idx_cc(vector signed short __a, vector signed short __b,
10309 return (vector signed short)
10310 __builtin_s390_vfaezhs((vector unsigned short)__a,
10311 (vector unsigned short)__b, 0, __cc);
10314 static inline __ATTRS_o_ai vector unsigned short
10315 vec_find_any_eq_or_0_idx_cc(vector bool short __a, vector bool short __b,
10317 return __builtin_s390_vfaezhs((vector unsigned short)__a,
10318 (vector unsigned short)__b, 0, __cc);
10321 static inline __ATTRS_o_ai vector unsigned short
10322 vec_find_any_eq_or_0_idx_cc(vector unsigned short __a,
10323 vector unsigned short __b, int *__cc) {
10324 return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
10327 static inline __ATTRS_o_ai vector signed int
10328 vec_find_any_eq_or_0_idx_cc(vector signed int __a, vector signed int __b,
10330 return (vector signed int)
10331 __builtin_s390_vfaezfs((vector unsigned int)__a,
10332 (vector unsigned int)__b, 0, __cc);
10335 static inline __ATTRS_o_ai vector unsigned int
10336 vec_find_any_eq_or_0_idx_cc(vector bool int __a, vector bool int __b,
10338 return __builtin_s390_vfaezfs((vector unsigned int)__a,
10339 (vector unsigned int)__b, 0, __cc);
10342 static inline __ATTRS_o_ai vector unsigned int
10343 vec_find_any_eq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
10345 return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
10348 /*-- vec_find_any_ne --------------------------------------------------------*/
10350 static inline __ATTRS_o_ai vector bool char
10351 vec_find_any_ne(vector signed char __a, vector signed char __b) {
10352 return (vector bool char)
10353 __builtin_s390_vfaeb((vector unsigned char)__a,
10354 (vector unsigned char)__b, 12);
10357 static inline __ATTRS_o_ai vector bool char
10358 vec_find_any_ne(vector bool char __a, vector bool char __b) {
10359 return (vector bool char)
10360 __builtin_s390_vfaeb((vector unsigned char)__a,
10361 (vector unsigned char)__b, 12);
10364 static inline __ATTRS_o_ai vector bool char
10365 vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) {
10366 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12);
10369 static inline __ATTRS_o_ai vector bool short
10370 vec_find_any_ne(vector signed short __a, vector signed short __b) {
10371 return (vector bool short)
10372 __builtin_s390_vfaeh((vector unsigned short)__a,
10373 (vector unsigned short)__b, 12);
10376 static inline __ATTRS_o_ai vector bool short
10377 vec_find_any_ne(vector bool short __a, vector bool short __b) {
10378 return (vector bool short)
10379 __builtin_s390_vfaeh((vector unsigned short)__a,
10380 (vector unsigned short)__b, 12);
10383 static inline __ATTRS_o_ai vector bool short
10384 vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) {
10385 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12);
10388 static inline __ATTRS_o_ai vector bool int
10389 vec_find_any_ne(vector signed int __a, vector signed int __b) {
10390 return (vector bool int)
10391 __builtin_s390_vfaef((vector unsigned int)__a,
10392 (vector unsigned int)__b, 12);
10395 static inline __ATTRS_o_ai vector bool int
10396 vec_find_any_ne(vector bool int __a, vector bool int __b) {
10397 return (vector bool int)
10398 __builtin_s390_vfaef((vector unsigned int)__a,
10399 (vector unsigned int)__b, 12);
10402 static inline __ATTRS_o_ai vector bool int
10403 vec_find_any_ne(vector unsigned int __a, vector unsigned int __b) {
10404 return (vector bool int)__builtin_s390_vfaef(__a, __b, 12);
10407 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
10409 static inline __ATTRS_o_ai vector bool char
10410 vec_find_any_ne_cc(vector signed char __a, vector signed char __b, int *__cc) {
10411 return (vector bool char)
10412 __builtin_s390_vfaebs((vector unsigned char)__a,
10413 (vector unsigned char)__b, 12, __cc);
10416 static inline __ATTRS_o_ai vector bool char
10417 vec_find_any_ne_cc(vector bool char __a, vector bool char __b, int *__cc) {
10418 return (vector bool char)
10419 __builtin_s390_vfaebs((vector unsigned char)__a,
10420 (vector unsigned char)__b, 12, __cc);
10423 static inline __ATTRS_o_ai vector bool char
10424 vec_find_any_ne_cc(vector unsigned char __a, vector unsigned char __b,
10426 return (vector bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
10429 static inline __ATTRS_o_ai vector bool short
10430 vec_find_any_ne_cc(vector signed short __a, vector signed short __b,
10432 return (vector bool short)
10433 __builtin_s390_vfaehs((vector unsigned short)__a,
10434 (vector unsigned short)__b, 12, __cc);
10437 static inline __ATTRS_o_ai vector bool short
10438 vec_find_any_ne_cc(vector bool short __a, vector bool short __b, int *__cc) {
10439 return (vector bool short)
10440 __builtin_s390_vfaehs((vector unsigned short)__a,
10441 (vector unsigned short)__b, 12, __cc);
10444 static inline __ATTRS_o_ai vector bool short
10445 vec_find_any_ne_cc(vector unsigned short __a, vector unsigned short __b,
10447 return (vector bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
10450 static inline __ATTRS_o_ai vector bool int
10451 vec_find_any_ne_cc(vector signed int __a, vector signed int __b, int *__cc) {
10452 return (vector bool int)
10453 __builtin_s390_vfaefs((vector unsigned int)__a,
10454 (vector unsigned int)__b, 12, __cc);
10457 static inline __ATTRS_o_ai vector bool int
10458 vec_find_any_ne_cc(vector bool int __a, vector bool int __b, int *__cc) {
10459 return (vector bool int)
10460 __builtin_s390_vfaefs((vector unsigned int)__a,
10461 (vector unsigned int)__b, 12, __cc);
10464 static inline __ATTRS_o_ai vector bool int
10465 vec_find_any_ne_cc(vector unsigned int __a, vector unsigned int __b,
10467 return (vector bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
10470 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
10472 static inline __ATTRS_o_ai vector signed char
10473 vec_find_any_ne_idx(vector signed char __a, vector signed char __b) {
10474 return (vector signed char)
10475 __builtin_s390_vfaeb((vector unsigned char)__a,
10476 (vector unsigned char)__b, 8);
10479 static inline __ATTRS_o_ai vector unsigned char
10480 vec_find_any_ne_idx(vector bool char __a, vector bool char __b) {
10481 return __builtin_s390_vfaeb((vector unsigned char)__a,
10482 (vector unsigned char)__b, 8);
10485 static inline __ATTRS_o_ai vector unsigned char
10486 vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) {
10487 return __builtin_s390_vfaeb(__a, __b, 8);
10490 static inline __ATTRS_o_ai vector signed short
10491 vec_find_any_ne_idx(vector signed short __a, vector signed short __b) {
10492 return (vector signed short)
10493 __builtin_s390_vfaeh((vector unsigned short)__a,
10494 (vector unsigned short)__b, 8);
10497 static inline __ATTRS_o_ai vector unsigned short
10498 vec_find_any_ne_idx(vector bool short __a, vector bool short __b) {
10499 return __builtin_s390_vfaeh((vector unsigned short)__a,
10500 (vector unsigned short)__b, 8);
10503 static inline __ATTRS_o_ai vector unsigned short
10504 vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) {
10505 return __builtin_s390_vfaeh(__a, __b, 8);
10508 static inline __ATTRS_o_ai vector signed int
10509 vec_find_any_ne_idx(vector signed int __a, vector signed int __b) {
10510 return (vector signed int)
10511 __builtin_s390_vfaef((vector unsigned int)__a,
10512 (vector unsigned int)__b, 8);
10515 static inline __ATTRS_o_ai vector unsigned int
10516 vec_find_any_ne_idx(vector bool int __a, vector bool int __b) {
10517 return __builtin_s390_vfaef((vector unsigned int)__a,
10518 (vector unsigned int)__b, 8);
10521 static inline __ATTRS_o_ai vector unsigned int
10522 vec_find_any_ne_idx(vector unsigned int __a, vector unsigned int __b) {
10523 return __builtin_s390_vfaef(__a, __b, 8);
10526 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
10528 static inline __ATTRS_o_ai vector signed char
10529 vec_find_any_ne_idx_cc(vector signed char __a, vector signed char __b,
10531 return (vector signed char)
10532 __builtin_s390_vfaebs((vector unsigned char)__a,
10533 (vector unsigned char)__b, 8, __cc);
10536 static inline __ATTRS_o_ai vector unsigned char
10537 vec_find_any_ne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
10538 return __builtin_s390_vfaebs((vector unsigned char)__a,
10539 (vector unsigned char)__b, 8, __cc);
10542 static inline __ATTRS_o_ai vector unsigned char
10543 vec_find_any_ne_idx_cc(vector unsigned char __a, vector unsigned char __b,
10545 return __builtin_s390_vfaebs(__a, __b, 8, __cc);
10548 static inline __ATTRS_o_ai vector signed short
10549 vec_find_any_ne_idx_cc(vector signed short __a, vector signed short __b,
10551 return (vector signed short)
10552 __builtin_s390_vfaehs((vector unsigned short)__a,
10553 (vector unsigned short)__b, 8, __cc);
10556 static inline __ATTRS_o_ai vector unsigned short
10557 vec_find_any_ne_idx_cc(vector bool short __a, vector bool short __b,
10559 return __builtin_s390_vfaehs((vector unsigned short)__a,
10560 (vector unsigned short)__b, 8, __cc);
10563 static inline __ATTRS_o_ai vector unsigned short
10564 vec_find_any_ne_idx_cc(vector unsigned short __a, vector unsigned short __b,
10566 return __builtin_s390_vfaehs(__a, __b, 8, __cc);
10569 static inline __ATTRS_o_ai vector signed int
10570 vec_find_any_ne_idx_cc(vector signed int __a, vector signed int __b,
10572 return (vector signed int)
10573 __builtin_s390_vfaefs((vector unsigned int)__a,
10574 (vector unsigned int)__b, 8, __cc);
10577 static inline __ATTRS_o_ai vector unsigned int
10578 vec_find_any_ne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
10579 return __builtin_s390_vfaefs((vector unsigned int)__a,
10580 (vector unsigned int)__b, 8, __cc);
10583 static inline __ATTRS_o_ai vector unsigned int
10584 vec_find_any_ne_idx_cc(vector unsigned int __a, vector unsigned int __b,
10586 return __builtin_s390_vfaefs(__a, __b, 8, __cc);
10589 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
10591 static inline __ATTRS_o_ai vector signed char
10592 vec_find_any_ne_or_0_idx(vector signed char __a, vector signed char __b) {
10593 return (vector signed char)
10594 __builtin_s390_vfaezb((vector unsigned char)__a,
10595 (vector unsigned char)__b, 8);
10598 static inline __ATTRS_o_ai vector unsigned char
10599 vec_find_any_ne_or_0_idx(vector bool char __a, vector bool char __b) {
10600 return __builtin_s390_vfaezb((vector unsigned char)__a,
10601 (vector unsigned char)__b, 8);
10604 static inline __ATTRS_o_ai vector unsigned char
10605 vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
10606 return __builtin_s390_vfaezb(__a, __b, 8);
10609 static inline __ATTRS_o_ai vector signed short
10610 vec_find_any_ne_or_0_idx(vector signed short __a, vector signed short __b) {
10611 return (vector signed short)
10612 __builtin_s390_vfaezh((vector unsigned short)__a,
10613 (vector unsigned short)__b, 8);
10616 static inline __ATTRS_o_ai vector unsigned short
10617 vec_find_any_ne_or_0_idx(vector bool short __a, vector bool short __b) {
10618 return __builtin_s390_vfaezh((vector unsigned short)__a,
10619 (vector unsigned short)__b, 8);
10622 static inline __ATTRS_o_ai vector unsigned short
10623 vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10624 return __builtin_s390_vfaezh(__a, __b, 8);
10627 static inline __ATTRS_o_ai vector signed int
10628 vec_find_any_ne_or_0_idx(vector signed int __a, vector signed int __b) {
10629 return (vector signed int)
10630 __builtin_s390_vfaezf((vector unsigned int)__a,
10631 (vector unsigned int)__b, 8);
10634 static inline __ATTRS_o_ai vector unsigned int
10635 vec_find_any_ne_or_0_idx(vector bool int __a, vector bool int __b) {
10636 return __builtin_s390_vfaezf((vector unsigned int)__a,
10637 (vector unsigned int)__b, 8);
10640 static inline __ATTRS_o_ai vector unsigned int
10641 vec_find_any_ne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
10642 return __builtin_s390_vfaezf(__a, __b, 8);
10645 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
10647 static inline __ATTRS_o_ai vector signed char
10648 vec_find_any_ne_or_0_idx_cc(vector signed char __a, vector signed char __b,
10650 return (vector signed char)
10651 __builtin_s390_vfaezbs((vector unsigned char)__a,
10652 (vector unsigned char)__b, 8, __cc);
10655 static inline __ATTRS_o_ai vector unsigned char
10656 vec_find_any_ne_or_0_idx_cc(vector bool char __a, vector bool char __b,
10658 return __builtin_s390_vfaezbs((vector unsigned char)__a,
10659 (vector unsigned char)__b, 8, __cc);
10662 static inline __ATTRS_o_ai vector unsigned char
10663 vec_find_any_ne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
10665 return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
10668 static inline __ATTRS_o_ai vector signed short
10669 vec_find_any_ne_or_0_idx_cc(vector signed short __a, vector signed short __b,
10671 return (vector signed short)
10672 __builtin_s390_vfaezhs((vector unsigned short)__a,
10673 (vector unsigned short)__b, 8, __cc);
10676 static inline __ATTRS_o_ai vector unsigned short
10677 vec_find_any_ne_or_0_idx_cc(vector bool short __a, vector bool short __b,
10679 return __builtin_s390_vfaezhs((vector unsigned short)__a,
10680 (vector unsigned short)__b, 8, __cc);
10683 static inline __ATTRS_o_ai vector unsigned short
10684 vec_find_any_ne_or_0_idx_cc(vector unsigned short __a,
10685 vector unsigned short __b, int *__cc) {
10686 return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
10689 static inline __ATTRS_o_ai vector signed int
10690 vec_find_any_ne_or_0_idx_cc(vector signed int __a, vector signed int __b,
10692 return (vector signed int)
10693 __builtin_s390_vfaezfs((vector unsigned int)__a,
10694 (vector unsigned int)__b, 8, __cc);
10697 static inline __ATTRS_o_ai vector unsigned int
10698 vec_find_any_ne_or_0_idx_cc(vector bool int __a, vector bool int __b,
10700 return __builtin_s390_vfaezfs((vector unsigned int)__a,
10701 (vector unsigned int)__b, 8, __cc);
10704 static inline __ATTRS_o_ai vector unsigned int
10705 vec_find_any_ne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
10707 return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
10710 /*-- vec_search_string_cc ---------------------------------------------------*/
10714 static inline __ATTRS_o_ai vector unsigned char
10715 vec_search_string_cc(vector signed char __a, vector signed char __b,
10716 vector unsigned char __c, int *__cc) {
10717 return __builtin_s390_vstrsb((vector unsigned char)__a,
10718 (vector unsigned char)__b, __c, __cc);
10721 static inline __ATTRS_o_ai vector unsigned char
10722 vec_search_string_cc(vector bool char __a, vector bool char __b,
10723 vector unsigned char __c, int *__cc) {
10724 return __builtin_s390_vstrsb((vector unsigned char)__a,
10725 (vector unsigned char)__b, __c, __cc);
10728 static inline __ATTRS_o_ai vector unsigned char
10729 vec_search_string_cc(vector unsigned char __a, vector unsigned char __b,
10730 vector unsigned char __c, int *__cc) {
10731 return __builtin_s390_vstrsb(__a, __b, __c, __cc);
10734 static inline __ATTRS_o_ai vector unsigned char
10735 vec_search_string_cc(vector signed short __a, vector signed short __b,
10736 vector unsigned char __c, int *__cc) {
10737 return __builtin_s390_vstrsh((vector unsigned short)__a,
10738 (vector unsigned short)__b, __c, __cc);
10741 static inline __ATTRS_o_ai vector unsigned char
10742 vec_search_string_cc(vector bool short __a, vector bool short __b,
10743 vector unsigned char __c, int *__cc) {
10744 return __builtin_s390_vstrsh((vector unsigned short)__a,
10745 (vector unsigned short)__b, __c, __cc);
10748 static inline __ATTRS_o_ai vector unsigned char
10749 vec_search_string_cc(vector unsigned short __a, vector unsigned short __b,
10750 vector unsigned char __c, int *__cc) {
10751 return __builtin_s390_vstrsh(__a, __b, __c, __cc);
10754 static inline __ATTRS_o_ai vector unsigned char
10755 vec_search_string_cc(vector signed int __a, vector signed int __b,
10756 vector unsigned char __c, int *__cc) {
10757 return __builtin_s390_vstrsf((vector unsigned int)__a,
10758 (vector unsigned int)__b, __c, __cc);
10761 static inline __ATTRS_o_ai vector unsigned char
10762 vec_search_string_cc(vector bool int __a, vector bool int __b,
10763 vector unsigned char __c, int *__cc) {
10764 return __builtin_s390_vstrsf((vector unsigned int)__a,
10765 (vector unsigned int)__b, __c, __cc);
10768 static inline __ATTRS_o_ai vector unsigned char
10769 vec_search_string_cc(vector unsigned int __a, vector unsigned int __b,
10770 vector unsigned char __c, int *__cc) {
10771 return __builtin_s390_vstrsf(__a, __b, __c, __cc);
10776 /*-- vec_search_string_until_zero_cc ----------------------------------------*/
10780 static inline __ATTRS_o_ai vector unsigned char
10781 vec_search_string_until_zero_cc(vector signed char __a,
10782 vector signed char __b,
10783 vector unsigned char __c, int *__cc) {
10784 return __builtin_s390_vstrszb((vector unsigned char)__a,
10785 (vector unsigned char)__b, __c, __cc);
10788 static inline __ATTRS_o_ai vector unsigned char
10789 vec_search_string_until_zero_cc(vector bool char __a,
10790 vector bool char __b,
10791 vector unsigned char __c, int *__cc) {
10792 return __builtin_s390_vstrszb((vector unsigned char)__a,
10793 (vector unsigned char)__b, __c, __cc);
10796 static inline __ATTRS_o_ai vector unsigned char
10797 vec_search_string_until_zero_cc(vector unsigned char __a,
10798 vector unsigned char __b,
10799 vector unsigned char __c, int *__cc) {
10800 return __builtin_s390_vstrszb(__a, __b, __c, __cc);
10803 static inline __ATTRS_o_ai vector unsigned char
10804 vec_search_string_until_zero_cc(vector signed short __a,
10805 vector signed short __b,
10806 vector unsigned char __c, int *__cc) {
10807 return __builtin_s390_vstrszh((vector unsigned short)__a,
10808 (vector unsigned short)__b, __c, __cc);
10811 static inline __ATTRS_o_ai vector unsigned char
10812 vec_search_string_until_zero_cc(vector bool short __a,
10813 vector bool short __b,
10814 vector unsigned char __c, int *__cc) {
10815 return __builtin_s390_vstrszh((vector unsigned short)__a,
10816 (vector unsigned short)__b, __c, __cc);
10819 static inline __ATTRS_o_ai vector unsigned char
10820 vec_search_string_until_zero_cc(vector unsigned short __a,
10821 vector unsigned short __b,
10822 vector unsigned char __c, int *__cc) {
10823 return __builtin_s390_vstrszh(__a, __b, __c, __cc);
10826 static inline __ATTRS_o_ai vector unsigned char
10827 vec_search_string_until_zero_cc(vector signed int __a,
10828 vector signed int __b,
10829 vector unsigned char __c, int *__cc) {
10830 return __builtin_s390_vstrszf((vector unsigned int)__a,
10831 (vector unsigned int)__b, __c, __cc);
10834 static inline __ATTRS_o_ai vector unsigned char
10835 vec_search_string_until_zero_cc(vector bool int __a,
10836 vector bool int __b,
10837 vector unsigned char __c, int *__cc) {
10838 return __builtin_s390_vstrszf((vector unsigned int)__a,
10839 (vector unsigned int)__b, __c, __cc);
10842 static inline __ATTRS_o_ai vector unsigned char
10843 vec_search_string_until_zero_cc(vector unsigned int __a,
10844 vector unsigned int __b,
10845 vector unsigned char __c, int *__cc) {
10846 return __builtin_s390_vstrszf(__a, __b, __c, __cc);
10851 #undef __constant_pow2_range
10852 #undef __constant_range
10855 #undef __ATTRS_o_ai
10860 #error "Use -fzvector to enable vector extensions"