1 /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 * copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions:
10 * The above copyright notice and this permission notice shall be included in
11 * all copies or substantial portions of the Software.
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 *===-----------------------------------------------------------------------===
24 #if defined(__s390x__) && defined(__VEC__)
26 #define __ATTRS_ai __attribute__((__always_inline__))
27 #define __ATTRS_o __attribute__((__overloadable__))
28 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
30 #define __constant(PARM) \
31 __attribute__((__enable_if__ ((PARM) == (PARM), \
32 "argument must be a constant integer")))
33 #define __constant_range(PARM, LOW, HIGH) \
34 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
35 "argument must be a constant integer from " #LOW " to " #HIGH)))
36 #define __constant_pow2_range(PARM, LOW, HIGH) \
37 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
38 ((PARM) & ((PARM) - 1)) == 0, \
39 "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
41 /*-- __lcbb -----------------------------------------------------------------*/
43 extern __ATTRS_o unsigned int
44 __lcbb(const void *__ptr, unsigned short __len)
45 __constant_pow2_range(__len, 64, 4096);
47 #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
48 __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
55 (Y) == 4096 ? 6 : 0) : 0))
57 /*-- vec_extract ------------------------------------------------------------*/
59 static inline __ATTRS_o_ai signed char
60 vec_extract(vector signed char __vec, int __index) {
61 return __vec[__index & 15];
64 static inline __ATTRS_o_ai unsigned char
65 vec_extract(vector bool char __vec, int __index) {
66 return __vec[__index & 15];
69 static inline __ATTRS_o_ai unsigned char
70 vec_extract(vector unsigned char __vec, int __index) {
71 return __vec[__index & 15];
74 static inline __ATTRS_o_ai signed short
75 vec_extract(vector signed short __vec, int __index) {
76 return __vec[__index & 7];
79 static inline __ATTRS_o_ai unsigned short
80 vec_extract(vector bool short __vec, int __index) {
81 return __vec[__index & 7];
84 static inline __ATTRS_o_ai unsigned short
85 vec_extract(vector unsigned short __vec, int __index) {
86 return __vec[__index & 7];
89 static inline __ATTRS_o_ai signed int
90 vec_extract(vector signed int __vec, int __index) {
91 return __vec[__index & 3];
94 static inline __ATTRS_o_ai unsigned int
95 vec_extract(vector bool int __vec, int __index) {
96 return __vec[__index & 3];
99 static inline __ATTRS_o_ai unsigned int
100 vec_extract(vector unsigned int __vec, int __index) {
101 return __vec[__index & 3];
104 static inline __ATTRS_o_ai signed long long
105 vec_extract(vector signed long long __vec, int __index) {
106 return __vec[__index & 1];
109 static inline __ATTRS_o_ai unsigned long long
110 vec_extract(vector bool long long __vec, int __index) {
111 return __vec[__index & 1];
114 static inline __ATTRS_o_ai unsigned long long
115 vec_extract(vector unsigned long long __vec, int __index) {
116 return __vec[__index & 1];
120 static inline __ATTRS_o_ai float
121 vec_extract(vector float __vec, int __index) {
122 return __vec[__index & 3];
126 static inline __ATTRS_o_ai double
127 vec_extract(vector double __vec, int __index) {
128 return __vec[__index & 1];
131 /*-- vec_insert -------------------------------------------------------------*/
133 static inline __ATTRS_o_ai vector signed char
134 vec_insert(signed char __scalar, vector signed char __vec, int __index) {
135 __vec[__index & 15] = __scalar;
139 // This prototype is deprecated.
140 static inline __ATTRS_o_ai vector unsigned char
141 vec_insert(unsigned char __scalar, vector bool char __vec, int __index) {
142 vector unsigned char __newvec = (vector unsigned char)__vec;
143 __newvec[__index & 15] = (unsigned char)__scalar;
147 static inline __ATTRS_o_ai vector unsigned char
148 vec_insert(unsigned char __scalar, vector unsigned char __vec, int __index) {
149 __vec[__index & 15] = __scalar;
153 static inline __ATTRS_o_ai vector signed short
154 vec_insert(signed short __scalar, vector signed short __vec, int __index) {
155 __vec[__index & 7] = __scalar;
159 // This prototype is deprecated.
160 static inline __ATTRS_o_ai vector unsigned short
161 vec_insert(unsigned short __scalar, vector bool short __vec, int __index) {
162 vector unsigned short __newvec = (vector unsigned short)__vec;
163 __newvec[__index & 7] = (unsigned short)__scalar;
167 static inline __ATTRS_o_ai vector unsigned short
168 vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) {
169 __vec[__index & 7] = __scalar;
173 static inline __ATTRS_o_ai vector signed int
174 vec_insert(signed int __scalar, vector signed int __vec, int __index) {
175 __vec[__index & 3] = __scalar;
179 // This prototype is deprecated.
180 static inline __ATTRS_o_ai vector unsigned int
181 vec_insert(unsigned int __scalar, vector bool int __vec, int __index) {
182 vector unsigned int __newvec = (vector unsigned int)__vec;
183 __newvec[__index & 3] = __scalar;
187 static inline __ATTRS_o_ai vector unsigned int
188 vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) {
189 __vec[__index & 3] = __scalar;
193 static inline __ATTRS_o_ai vector signed long long
194 vec_insert(signed long long __scalar, vector signed long long __vec,
196 __vec[__index & 1] = __scalar;
200 // This prototype is deprecated.
201 static inline __ATTRS_o_ai vector unsigned long long
202 vec_insert(unsigned long long __scalar, vector bool long long __vec,
204 vector unsigned long long __newvec = (vector unsigned long long)__vec;
205 __newvec[__index & 1] = __scalar;
209 static inline __ATTRS_o_ai vector unsigned long long
210 vec_insert(unsigned long long __scalar, vector unsigned long long __vec,
212 __vec[__index & 1] = __scalar;
217 static inline __ATTRS_o_ai vector float
218 vec_insert(float __scalar, vector float __vec, int __index) {
219 __vec[__index & 1] = __scalar;
224 static inline __ATTRS_o_ai vector double
225 vec_insert(double __scalar, vector double __vec, int __index) {
226 __vec[__index & 1] = __scalar;
230 /*-- vec_promote ------------------------------------------------------------*/
232 static inline __ATTRS_o_ai vector signed char
233 vec_promote(signed char __scalar, int __index) {
234 const vector signed char __zero = (vector signed char)0;
235 vector signed char __vec = __builtin_shufflevector(__zero, __zero,
236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
237 __vec[__index & 15] = __scalar;
241 static inline __ATTRS_o_ai vector unsigned char
242 vec_promote(unsigned char __scalar, int __index) {
243 const vector unsigned char __zero = (vector unsigned char)0;
244 vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
246 __vec[__index & 15] = __scalar;
250 static inline __ATTRS_o_ai vector signed short
251 vec_promote(signed short __scalar, int __index) {
252 const vector signed short __zero = (vector signed short)0;
253 vector signed short __vec = __builtin_shufflevector(__zero, __zero,
254 -1, -1, -1, -1, -1, -1, -1, -1);
255 __vec[__index & 7] = __scalar;
259 static inline __ATTRS_o_ai vector unsigned short
260 vec_promote(unsigned short __scalar, int __index) {
261 const vector unsigned short __zero = (vector unsigned short)0;
262 vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
263 -1, -1, -1, -1, -1, -1, -1, -1);
264 __vec[__index & 7] = __scalar;
268 static inline __ATTRS_o_ai vector signed int
269 vec_promote(signed int __scalar, int __index) {
270 const vector signed int __zero = (vector signed int)0;
271 vector signed int __vec = __builtin_shufflevector(__zero, __zero,
273 __vec[__index & 3] = __scalar;
277 static inline __ATTRS_o_ai vector unsigned int
278 vec_promote(unsigned int __scalar, int __index) {
279 const vector unsigned int __zero = (vector unsigned int)0;
280 vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
282 __vec[__index & 3] = __scalar;
286 static inline __ATTRS_o_ai vector signed long long
287 vec_promote(signed long long __scalar, int __index) {
288 const vector signed long long __zero = (vector signed long long)0;
289 vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
291 __vec[__index & 1] = __scalar;
295 static inline __ATTRS_o_ai vector unsigned long long
296 vec_promote(unsigned long long __scalar, int __index) {
297 const vector unsigned long long __zero = (vector unsigned long long)0;
298 vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
300 __vec[__index & 1] = __scalar;
305 static inline __ATTRS_o_ai vector float
306 vec_promote(float __scalar, int __index) {
307 const vector float __zero = (vector float)0;
308 vector float __vec = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
309 __vec[__index & 3] = __scalar;
314 static inline __ATTRS_o_ai vector double
315 vec_promote(double __scalar, int __index) {
316 const vector double __zero = (vector double)0;
317 vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
318 __vec[__index & 1] = __scalar;
322 /*-- vec_insert_and_zero ----------------------------------------------------*/
324 static inline __ATTRS_o_ai vector signed char
325 vec_insert_and_zero(const signed char *__ptr) {
326 vector signed char __vec = (vector signed char)0;
331 static inline __ATTRS_o_ai vector unsigned char
332 vec_insert_and_zero(const unsigned char *__ptr) {
333 vector unsigned char __vec = (vector unsigned char)0;
338 static inline __ATTRS_o_ai vector signed short
339 vec_insert_and_zero(const signed short *__ptr) {
340 vector signed short __vec = (vector signed short)0;
345 static inline __ATTRS_o_ai vector unsigned short
346 vec_insert_and_zero(const unsigned short *__ptr) {
347 vector unsigned short __vec = (vector unsigned short)0;
352 static inline __ATTRS_o_ai vector signed int
353 vec_insert_and_zero(const signed int *__ptr) {
354 vector signed int __vec = (vector signed int)0;
359 static inline __ATTRS_o_ai vector unsigned int
360 vec_insert_and_zero(const unsigned int *__ptr) {
361 vector unsigned int __vec = (vector unsigned int)0;
366 static inline __ATTRS_o_ai vector signed long long
367 vec_insert_and_zero(const signed long long *__ptr) {
368 vector signed long long __vec = (vector signed long long)0;
373 static inline __ATTRS_o_ai vector unsigned long long
374 vec_insert_and_zero(const unsigned long long *__ptr) {
375 vector unsigned long long __vec = (vector unsigned long long)0;
381 static inline __ATTRS_o_ai vector float
382 vec_insert_and_zero(const float *__ptr) {
383 vector float __vec = (vector float)0;
389 static inline __ATTRS_o_ai vector double
390 vec_insert_and_zero(const double *__ptr) {
391 vector double __vec = (vector double)0;
396 /*-- vec_perm ---------------------------------------------------------------*/
398 static inline __ATTRS_o_ai vector signed char
399 vec_perm(vector signed char __a, vector signed char __b,
400 vector unsigned char __c) {
401 return (vector signed char)__builtin_s390_vperm(
402 (vector unsigned char)__a, (vector unsigned char)__b, __c);
405 static inline __ATTRS_o_ai vector unsigned char
406 vec_perm(vector unsigned char __a, vector unsigned char __b,
407 vector unsigned char __c) {
408 return (vector unsigned char)__builtin_s390_vperm(
409 (vector unsigned char)__a, (vector unsigned char)__b, __c);
412 static inline __ATTRS_o_ai vector bool char
413 vec_perm(vector bool char __a, vector bool char __b,
414 vector unsigned char __c) {
415 return (vector bool char)__builtin_s390_vperm(
416 (vector unsigned char)__a, (vector unsigned char)__b, __c);
419 static inline __ATTRS_o_ai vector signed short
420 vec_perm(vector signed short __a, vector signed short __b,
421 vector unsigned char __c) {
422 return (vector signed short)__builtin_s390_vperm(
423 (vector unsigned char)__a, (vector unsigned char)__b, __c);
426 static inline __ATTRS_o_ai vector unsigned short
427 vec_perm(vector unsigned short __a, vector unsigned short __b,
428 vector unsigned char __c) {
429 return (vector unsigned short)__builtin_s390_vperm(
430 (vector unsigned char)__a, (vector unsigned char)__b, __c);
433 static inline __ATTRS_o_ai vector bool short
434 vec_perm(vector bool short __a, vector bool short __b,
435 vector unsigned char __c) {
436 return (vector bool short)__builtin_s390_vperm(
437 (vector unsigned char)__a, (vector unsigned char)__b, __c);
440 static inline __ATTRS_o_ai vector signed int
441 vec_perm(vector signed int __a, vector signed int __b,
442 vector unsigned char __c) {
443 return (vector signed int)__builtin_s390_vperm(
444 (vector unsigned char)__a, (vector unsigned char)__b, __c);
447 static inline __ATTRS_o_ai vector unsigned int
448 vec_perm(vector unsigned int __a, vector unsigned int __b,
449 vector unsigned char __c) {
450 return (vector unsigned int)__builtin_s390_vperm(
451 (vector unsigned char)__a, (vector unsigned char)__b, __c);
454 static inline __ATTRS_o_ai vector bool int
455 vec_perm(vector bool int __a, vector bool int __b,
456 vector unsigned char __c) {
457 return (vector bool int)__builtin_s390_vperm(
458 (vector unsigned char)__a, (vector unsigned char)__b, __c);
461 static inline __ATTRS_o_ai vector signed long long
462 vec_perm(vector signed long long __a, vector signed long long __b,
463 vector unsigned char __c) {
464 return (vector signed long long)__builtin_s390_vperm(
465 (vector unsigned char)__a, (vector unsigned char)__b, __c);
468 static inline __ATTRS_o_ai vector unsigned long long
469 vec_perm(vector unsigned long long __a, vector unsigned long long __b,
470 vector unsigned char __c) {
471 return (vector unsigned long long)__builtin_s390_vperm(
472 (vector unsigned char)__a, (vector unsigned char)__b, __c);
475 static inline __ATTRS_o_ai vector bool long long
476 vec_perm(vector bool long long __a, vector bool long long __b,
477 vector unsigned char __c) {
478 return (vector bool long long)__builtin_s390_vperm(
479 (vector unsigned char)__a, (vector unsigned char)__b, __c);
483 static inline __ATTRS_o_ai vector float
484 vec_perm(vector float __a, vector float __b,
485 vector unsigned char __c) {
486 return (vector float)__builtin_s390_vperm(
487 (vector unsigned char)__a, (vector unsigned char)__b, __c);
491 static inline __ATTRS_o_ai vector double
492 vec_perm(vector double __a, vector double __b,
493 vector unsigned char __c) {
494 return (vector double)__builtin_s390_vperm(
495 (vector unsigned char)__a, (vector unsigned char)__b, __c);
498 /*-- vec_permi --------------------------------------------------------------*/
500 // This prototype is deprecated.
501 extern __ATTRS_o vector signed long long
502 vec_permi(vector signed long long __a, vector signed long long __b, int __c)
503 __constant_range(__c, 0, 3);
505 // This prototype is deprecated.
506 extern __ATTRS_o vector unsigned long long
507 vec_permi(vector unsigned long long __a, vector unsigned long long __b, int __c)
508 __constant_range(__c, 0, 3);
510 // This prototype is deprecated.
511 extern __ATTRS_o vector bool long long
512 vec_permi(vector bool long long __a, vector bool long long __b, int __c)
513 __constant_range(__c, 0, 3);
515 // This prototype is deprecated.
516 extern __ATTRS_o vector double
517 vec_permi(vector double __a, vector double __b, int __c)
518 __constant_range(__c, 0, 3);
520 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
521 __builtin_s390_vpdi((vector unsigned long long)(X), \
522 (vector unsigned long long)(Y), \
523 (((Z) & 2) << 1) | ((Z) & 1)))
525 /*-- vec_bperm_u128 ---------------------------------------------------------*/
528 static inline __ATTRS_ai vector unsigned long long
529 vec_bperm_u128(vector unsigned char __a, vector unsigned char __b) {
530 return __builtin_s390_vbperm(__a, __b);
534 /*-- vec_sel ----------------------------------------------------------------*/
536 static inline __ATTRS_o_ai vector signed char
537 vec_sel(vector signed char __a, vector signed char __b,
538 vector unsigned char __c) {
539 return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
542 static inline __ATTRS_o_ai vector signed char
543 vec_sel(vector signed char __a, vector signed char __b, vector bool char __c) {
544 return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
547 static inline __ATTRS_o_ai vector bool char
548 vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) {
549 return ((vector bool char)__c & __b) | (~(vector bool char)__c & __a);
552 static inline __ATTRS_o_ai vector bool char
553 vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) {
554 return (__c & __b) | (~__c & __a);
557 static inline __ATTRS_o_ai vector unsigned char
558 vec_sel(vector unsigned char __a, vector unsigned char __b,
559 vector unsigned char __c) {
560 return (__c & __b) | (~__c & __a);
563 static inline __ATTRS_o_ai vector unsigned char
564 vec_sel(vector unsigned char __a, vector unsigned char __b,
565 vector bool char __c) {
566 return ((vector unsigned char)__c & __b) | (~(vector unsigned char)__c & __a);
569 static inline __ATTRS_o_ai vector signed short
570 vec_sel(vector signed short __a, vector signed short __b,
571 vector unsigned short __c) {
572 return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
575 static inline __ATTRS_o_ai vector signed short
576 vec_sel(vector signed short __a, vector signed short __b,
577 vector bool short __c) {
578 return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
581 static inline __ATTRS_o_ai vector bool short
582 vec_sel(vector bool short __a, vector bool short __b,
583 vector unsigned short __c) {
584 return ((vector bool short)__c & __b) | (~(vector bool short)__c & __a);
587 static inline __ATTRS_o_ai vector bool short
588 vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) {
589 return (__c & __b) | (~__c & __a);
592 static inline __ATTRS_o_ai vector unsigned short
593 vec_sel(vector unsigned short __a, vector unsigned short __b,
594 vector unsigned short __c) {
595 return (__c & __b) | (~__c & __a);
598 static inline __ATTRS_o_ai vector unsigned short
599 vec_sel(vector unsigned short __a, vector unsigned short __b,
600 vector bool short __c) {
601 return (((vector unsigned short)__c & __b) |
602 (~(vector unsigned short)__c & __a));
605 static inline __ATTRS_o_ai vector signed int
606 vec_sel(vector signed int __a, vector signed int __b,
607 vector unsigned int __c) {
608 return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
611 static inline __ATTRS_o_ai vector signed int
612 vec_sel(vector signed int __a, vector signed int __b, vector bool int __c) {
613 return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
616 static inline __ATTRS_o_ai vector bool int
617 vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) {
618 return ((vector bool int)__c & __b) | (~(vector bool int)__c & __a);
621 static inline __ATTRS_o_ai vector bool int
622 vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) {
623 return (__c & __b) | (~__c & __a);
626 static inline __ATTRS_o_ai vector unsigned int
627 vec_sel(vector unsigned int __a, vector unsigned int __b,
628 vector unsigned int __c) {
629 return (__c & __b) | (~__c & __a);
632 static inline __ATTRS_o_ai vector unsigned int
633 vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) {
634 return ((vector unsigned int)__c & __b) | (~(vector unsigned int)__c & __a);
637 static inline __ATTRS_o_ai vector signed long long
638 vec_sel(vector signed long long __a, vector signed long long __b,
639 vector unsigned long long __c) {
640 return (((vector signed long long)__c & __b) |
641 (~(vector signed long long)__c & __a));
644 static inline __ATTRS_o_ai vector signed long long
645 vec_sel(vector signed long long __a, vector signed long long __b,
646 vector bool long long __c) {
647 return (((vector signed long long)__c & __b) |
648 (~(vector signed long long)__c & __a));
651 static inline __ATTRS_o_ai vector bool long long
652 vec_sel(vector bool long long __a, vector bool long long __b,
653 vector unsigned long long __c) {
654 return (((vector bool long long)__c & __b) |
655 (~(vector bool long long)__c & __a));
658 static inline __ATTRS_o_ai vector bool long long
659 vec_sel(vector bool long long __a, vector bool long long __b,
660 vector bool long long __c) {
661 return (__c & __b) | (~__c & __a);
664 static inline __ATTRS_o_ai vector unsigned long long
665 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
666 vector unsigned long long __c) {
667 return (__c & __b) | (~__c & __a);
670 static inline __ATTRS_o_ai vector unsigned long long
671 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
672 vector bool long long __c) {
673 return (((vector unsigned long long)__c & __b) |
674 (~(vector unsigned long long)__c & __a));
678 static inline __ATTRS_o_ai vector float
679 vec_sel(vector float __a, vector float __b, vector unsigned int __c) {
680 return (vector float)((__c & (vector unsigned int)__b) |
681 (~__c & (vector unsigned int)__a));
684 static inline __ATTRS_o_ai vector float
685 vec_sel(vector float __a, vector float __b, vector bool int __c) {
686 vector unsigned int __ac = (vector unsigned int)__a;
687 vector unsigned int __bc = (vector unsigned int)__b;
688 vector unsigned int __cc = (vector unsigned int)__c;
689 return (vector float)((__cc & __bc) | (~__cc & __ac));
693 static inline __ATTRS_o_ai vector double
694 vec_sel(vector double __a, vector double __b, vector unsigned long long __c) {
695 return (vector double)((__c & (vector unsigned long long)__b) |
696 (~__c & (vector unsigned long long)__a));
699 static inline __ATTRS_o_ai vector double
700 vec_sel(vector double __a, vector double __b, vector bool long long __c) {
701 vector unsigned long long __ac = (vector unsigned long long)__a;
702 vector unsigned long long __bc = (vector unsigned long long)__b;
703 vector unsigned long long __cc = (vector unsigned long long)__c;
704 return (vector double)((__cc & __bc) | (~__cc & __ac));
707 /*-- vec_gather_element -----------------------------------------------------*/
709 static inline __ATTRS_o_ai vector signed int
710 vec_gather_element(vector signed int __vec, vector unsigned int __offset,
711 const signed int *__ptr, int __index)
712 __constant_range(__index, 0, 3) {
713 __vec[__index] = *(const signed int *)(
714 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
718 static inline __ATTRS_o_ai vector bool int
719 vec_gather_element(vector bool int __vec, vector unsigned int __offset,
720 const unsigned int *__ptr, int __index)
721 __constant_range(__index, 0, 3) {
722 __vec[__index] = *(const unsigned int *)(
723 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
727 static inline __ATTRS_o_ai vector unsigned int
728 vec_gather_element(vector unsigned int __vec, vector unsigned int __offset,
729 const unsigned int *__ptr, int __index)
730 __constant_range(__index, 0, 3) {
731 __vec[__index] = *(const unsigned int *)(
732 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
736 static inline __ATTRS_o_ai vector signed long long
737 vec_gather_element(vector signed long long __vec,
738 vector unsigned long long __offset,
739 const signed long long *__ptr, int __index)
740 __constant_range(__index, 0, 1) {
741 __vec[__index] = *(const signed long long *)(
742 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
746 static inline __ATTRS_o_ai vector bool long long
747 vec_gather_element(vector bool long long __vec,
748 vector unsigned long long __offset,
749 const unsigned long long *__ptr, int __index)
750 __constant_range(__index, 0, 1) {
751 __vec[__index] = *(const unsigned long long *)(
752 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
756 static inline __ATTRS_o_ai vector unsigned long long
757 vec_gather_element(vector unsigned long long __vec,
758 vector unsigned long long __offset,
759 const unsigned long long *__ptr, int __index)
760 __constant_range(__index, 0, 1) {
761 __vec[__index] = *(const unsigned long long *)(
762 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
767 static inline __ATTRS_o_ai vector float
768 vec_gather_element(vector float __vec, vector unsigned int __offset,
769 const float *__ptr, int __index)
770 __constant_range(__index, 0, 3) {
771 __vec[__index] = *(const float *)(
772 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
777 static inline __ATTRS_o_ai vector double
778 vec_gather_element(vector double __vec, vector unsigned long long __offset,
779 const double *__ptr, int __index)
780 __constant_range(__index, 0, 1) {
781 __vec[__index] = *(const double *)(
782 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
786 /*-- vec_scatter_element ----------------------------------------------------*/
788 static inline __ATTRS_o_ai void
789 vec_scatter_element(vector signed int __vec, vector unsigned int __offset,
790 signed int *__ptr, int __index)
791 __constant_range(__index, 0, 3) {
792 *(signed int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
796 static inline __ATTRS_o_ai void
797 vec_scatter_element(vector bool int __vec, vector unsigned int __offset,
798 unsigned int *__ptr, int __index)
799 __constant_range(__index, 0, 3) {
800 *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
804 static inline __ATTRS_o_ai void
805 vec_scatter_element(vector unsigned int __vec, vector unsigned int __offset,
806 unsigned int *__ptr, int __index)
807 __constant_range(__index, 0, 3) {
808 *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
812 static inline __ATTRS_o_ai void
813 vec_scatter_element(vector signed long long __vec,
814 vector unsigned long long __offset,
815 signed long long *__ptr, int __index)
816 __constant_range(__index, 0, 1) {
817 *(signed long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
821 static inline __ATTRS_o_ai void
822 vec_scatter_element(vector bool long long __vec,
823 vector unsigned long long __offset,
824 unsigned long long *__ptr, int __index)
825 __constant_range(__index, 0, 1) {
826 *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
830 static inline __ATTRS_o_ai void
831 vec_scatter_element(vector unsigned long long __vec,
832 vector unsigned long long __offset,
833 unsigned long long *__ptr, int __index)
834 __constant_range(__index, 0, 1) {
835 *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
840 static inline __ATTRS_o_ai void
841 vec_scatter_element(vector float __vec, vector unsigned int __offset,
842 float *__ptr, int __index)
843 __constant_range(__index, 0, 3) {
844 *(float *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
849 static inline __ATTRS_o_ai void
850 vec_scatter_element(vector double __vec, vector unsigned long long __offset,
851 double *__ptr, int __index)
852 __constant_range(__index, 0, 1) {
853 *(double *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
857 /*-- vec_xl -----------------------------------------------------------------*/
859 static inline __ATTRS_o_ai vector signed char
860 vec_xl(long __offset, const signed char *__ptr) {
861 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
864 static inline __ATTRS_o_ai vector unsigned char
865 vec_xl(long __offset, const unsigned char *__ptr) {
866 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
869 static inline __ATTRS_o_ai vector signed short
870 vec_xl(long __offset, const signed short *__ptr) {
871 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
874 static inline __ATTRS_o_ai vector unsigned short
875 vec_xl(long __offset, const unsigned short *__ptr) {
876 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
879 static inline __ATTRS_o_ai vector signed int
880 vec_xl(long __offset, const signed int *__ptr) {
881 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
884 static inline __ATTRS_o_ai vector unsigned int
885 vec_xl(long __offset, const unsigned int *__ptr) {
886 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
889 static inline __ATTRS_o_ai vector signed long long
890 vec_xl(long __offset, const signed long long *__ptr) {
891 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
894 static inline __ATTRS_o_ai vector unsigned long long
895 vec_xl(long __offset, const unsigned long long *__ptr) {
896 return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
900 static inline __ATTRS_o_ai vector float
901 vec_xl(long __offset, const float *__ptr) {
902 return *(const vector float *)((__INTPTR_TYPE__)__ptr + __offset);
906 static inline __ATTRS_o_ai vector double
907 vec_xl(long __offset, const double *__ptr) {
908 return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
911 /*-- vec_xld2 ---------------------------------------------------------------*/
913 // This prototype is deprecated.
914 static inline __ATTRS_o_ai vector signed char
915 vec_xld2(long __offset, const signed char *__ptr) {
916 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
919 // This prototype is deprecated.
920 static inline __ATTRS_o_ai vector unsigned char
921 vec_xld2(long __offset, const unsigned char *__ptr) {
922 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
925 // This prototype is deprecated.
926 static inline __ATTRS_o_ai vector signed short
927 vec_xld2(long __offset, const signed short *__ptr) {
928 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
931 // This prototype is deprecated.
932 static inline __ATTRS_o_ai vector unsigned short
933 vec_xld2(long __offset, const unsigned short *__ptr) {
934 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
937 // This prototype is deprecated.
938 static inline __ATTRS_o_ai vector signed int
939 vec_xld2(long __offset, const signed int *__ptr) {
940 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
943 // This prototype is deprecated.
944 static inline __ATTRS_o_ai vector unsigned int
945 vec_xld2(long __offset, const unsigned int *__ptr) {
946 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
949 // This prototype is deprecated.
950 static inline __ATTRS_o_ai vector signed long long
951 vec_xld2(long __offset, const signed long long *__ptr) {
952 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
955 // This prototype is deprecated.
956 static inline __ATTRS_o_ai vector unsigned long long
957 vec_xld2(long __offset, const unsigned long long *__ptr) {
958 return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
961 // This prototype is deprecated.
962 static inline __ATTRS_o_ai vector double
963 vec_xld2(long __offset, const double *__ptr) {
964 return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
967 /*-- vec_xlw4 ---------------------------------------------------------------*/
969 // This prototype is deprecated.
970 static inline __ATTRS_o_ai vector signed char
971 vec_xlw4(long __offset, const signed char *__ptr) {
972 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
975 // This prototype is deprecated.
976 static inline __ATTRS_o_ai vector unsigned char
977 vec_xlw4(long __offset, const unsigned char *__ptr) {
978 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
981 // This prototype is deprecated.
982 static inline __ATTRS_o_ai vector signed short
983 vec_xlw4(long __offset, const signed short *__ptr) {
984 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
987 // This prototype is deprecated.
988 static inline __ATTRS_o_ai vector unsigned short
989 vec_xlw4(long __offset, const unsigned short *__ptr) {
990 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
993 // This prototype is deprecated.
994 static inline __ATTRS_o_ai vector signed int
995 vec_xlw4(long __offset, const signed int *__ptr) {
996 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
999 // This prototype is deprecated.
1000 static inline __ATTRS_o_ai vector unsigned int
1001 vec_xlw4(long __offset, const unsigned int *__ptr) {
1002 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1005 /*-- vec_xst ----------------------------------------------------------------*/
1007 static inline __ATTRS_o_ai void
1008 vec_xst(vector signed char __vec, long __offset, signed char *__ptr) {
1009 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1012 static inline __ATTRS_o_ai void
1013 vec_xst(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1014 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1017 static inline __ATTRS_o_ai void
1018 vec_xst(vector signed short __vec, long __offset, signed short *__ptr) {
1019 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1022 static inline __ATTRS_o_ai void
1023 vec_xst(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1024 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1027 static inline __ATTRS_o_ai void
1028 vec_xst(vector signed int __vec, long __offset, signed int *__ptr) {
1029 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1032 static inline __ATTRS_o_ai void
1033 vec_xst(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1034 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1037 static inline __ATTRS_o_ai void
1038 vec_xst(vector signed long long __vec, long __offset,
1039 signed long long *__ptr) {
1040 *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1043 static inline __ATTRS_o_ai void
1044 vec_xst(vector unsigned long long __vec, long __offset,
1045 unsigned long long *__ptr) {
1046 *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
1051 static inline __ATTRS_o_ai void
1052 vec_xst(vector float __vec, long __offset, float *__ptr) {
1053 *(vector float *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1057 static inline __ATTRS_o_ai void
1058 vec_xst(vector double __vec, long __offset, double *__ptr) {
1059 *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1062 /*-- vec_xstd2 --------------------------------------------------------------*/
1064 // This prototype is deprecated.
1065 static inline __ATTRS_o_ai void
1066 vec_xstd2(vector signed char __vec, long __offset, signed char *__ptr) {
1067 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1070 // This prototype is deprecated.
1071 static inline __ATTRS_o_ai void
1072 vec_xstd2(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1073 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1076 // This prototype is deprecated.
1077 static inline __ATTRS_o_ai void
1078 vec_xstd2(vector signed short __vec, long __offset, signed short *__ptr) {
1079 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1082 // This prototype is deprecated.
1083 static inline __ATTRS_o_ai void
1084 vec_xstd2(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1085 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1088 // This prototype is deprecated.
1089 static inline __ATTRS_o_ai void
1090 vec_xstd2(vector signed int __vec, long __offset, signed int *__ptr) {
1091 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1094 // This prototype is deprecated.
1095 static inline __ATTRS_o_ai void
1096 vec_xstd2(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1097 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1100 // This prototype is deprecated.
1101 static inline __ATTRS_o_ai void
1102 vec_xstd2(vector signed long long __vec, long __offset,
1103 signed long long *__ptr) {
1104 *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1107 // This prototype is deprecated.
1108 static inline __ATTRS_o_ai void
1109 vec_xstd2(vector unsigned long long __vec, long __offset,
1110 unsigned long long *__ptr) {
1111 *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
1115 // This prototype is deprecated.
1116 static inline __ATTRS_o_ai void
1117 vec_xstd2(vector double __vec, long __offset, double *__ptr) {
1118 *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1121 /*-- vec_xstw4 --------------------------------------------------------------*/
1123 // This prototype is deprecated.
1124 static inline __ATTRS_o_ai void
1125 vec_xstw4(vector signed char __vec, long __offset, signed char *__ptr) {
1126 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1129 // This prototype is deprecated.
1130 static inline __ATTRS_o_ai void
1131 vec_xstw4(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1132 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1135 // This prototype is deprecated.
1136 static inline __ATTRS_o_ai void
1137 vec_xstw4(vector signed short __vec, long __offset, signed short *__ptr) {
1138 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1141 // This prototype is deprecated.
1142 static inline __ATTRS_o_ai void
1143 vec_xstw4(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1144 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1147 // This prototype is deprecated.
1148 static inline __ATTRS_o_ai void
1149 vec_xstw4(vector signed int __vec, long __offset, signed int *__ptr) {
1150 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1153 // This prototype is deprecated.
1154 static inline __ATTRS_o_ai void
1155 vec_xstw4(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1156 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1159 /*-- vec_load_bndry ---------------------------------------------------------*/
1161 extern __ATTRS_o vector signed char
1162 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1163 __constant_pow2_range(__len, 64, 4096);
1165 extern __ATTRS_o vector unsigned char
1166 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1167 __constant_pow2_range(__len, 64, 4096);
1169 extern __ATTRS_o vector signed short
1170 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1171 __constant_pow2_range(__len, 64, 4096);
1173 extern __ATTRS_o vector unsigned short
1174 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1175 __constant_pow2_range(__len, 64, 4096);
1177 extern __ATTRS_o vector signed int
1178 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1179 __constant_pow2_range(__len, 64, 4096);
1181 extern __ATTRS_o vector unsigned int
1182 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1183 __constant_pow2_range(__len, 64, 4096);
1185 extern __ATTRS_o vector signed long long
1186 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1187 __constant_pow2_range(__len, 64, 4096);
1189 extern __ATTRS_o vector unsigned long long
1190 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1191 __constant_pow2_range(__len, 64, 4096);
1194 extern __ATTRS_o vector float
1195 vec_load_bndry(const float *__ptr, unsigned short __len)
1196 __constant_pow2_range(__len, 64, 4096);
1199 extern __ATTRS_o vector double
1200 vec_load_bndry(const double *__ptr, unsigned short __len)
1201 __constant_pow2_range(__len, 64, 4096);
1203 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1204 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1210 (Y) == 4096 ? 6 : -1)))
1212 /*-- vec_load_len -----------------------------------------------------------*/
1214 static inline __ATTRS_o_ai vector signed char
1215 vec_load_len(const signed char *__ptr, unsigned int __len) {
1216 return (vector signed char)__builtin_s390_vll(__len, __ptr);
1219 static inline __ATTRS_o_ai vector unsigned char
1220 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1221 return (vector unsigned char)__builtin_s390_vll(__len, __ptr);
1224 static inline __ATTRS_o_ai vector signed short
1225 vec_load_len(const signed short *__ptr, unsigned int __len) {
1226 return (vector signed short)__builtin_s390_vll(__len, __ptr);
1229 static inline __ATTRS_o_ai vector unsigned short
1230 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1231 return (vector unsigned short)__builtin_s390_vll(__len, __ptr);
1234 static inline __ATTRS_o_ai vector signed int
1235 vec_load_len(const signed int *__ptr, unsigned int __len) {
1236 return (vector signed int)__builtin_s390_vll(__len, __ptr);
1239 static inline __ATTRS_o_ai vector unsigned int
1240 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1241 return (vector unsigned int)__builtin_s390_vll(__len, __ptr);
1244 static inline __ATTRS_o_ai vector signed long long
1245 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1246 return (vector signed long long)__builtin_s390_vll(__len, __ptr);
1249 static inline __ATTRS_o_ai vector unsigned long long
1250 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1251 return (vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1255 static inline __ATTRS_o_ai vector float
1256 vec_load_len(const float *__ptr, unsigned int __len) {
1257 return (vector float)__builtin_s390_vll(__len, __ptr);
1261 static inline __ATTRS_o_ai vector double
1262 vec_load_len(const double *__ptr, unsigned int __len) {
1263 return (vector double)__builtin_s390_vll(__len, __ptr);
1266 /*-- vec_load_len_r ---------------------------------------------------------*/
1269 static inline __ATTRS_ai vector unsigned char
1270 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1271 return (vector unsigned char)__builtin_s390_vlrl(__len, __ptr);
1275 /*-- vec_store_len ----------------------------------------------------------*/
1277 static inline __ATTRS_o_ai void
1278 vec_store_len(vector signed char __vec, signed char *__ptr,
1279 unsigned int __len) {
1280 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1283 static inline __ATTRS_o_ai void
1284 vec_store_len(vector unsigned char __vec, unsigned char *__ptr,
1285 unsigned int __len) {
1286 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1289 static inline __ATTRS_o_ai void
1290 vec_store_len(vector signed short __vec, signed short *__ptr,
1291 unsigned int __len) {
1292 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1295 static inline __ATTRS_o_ai void
1296 vec_store_len(vector unsigned short __vec, unsigned short *__ptr,
1297 unsigned int __len) {
1298 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1301 static inline __ATTRS_o_ai void
1302 vec_store_len(vector signed int __vec, signed int *__ptr,
1303 unsigned int __len) {
1304 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1307 static inline __ATTRS_o_ai void
1308 vec_store_len(vector unsigned int __vec, unsigned int *__ptr,
1309 unsigned int __len) {
1310 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1313 static inline __ATTRS_o_ai void
1314 vec_store_len(vector signed long long __vec, signed long long *__ptr,
1315 unsigned int __len) {
1316 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1319 static inline __ATTRS_o_ai void
1320 vec_store_len(vector unsigned long long __vec, unsigned long long *__ptr,
1321 unsigned int __len) {
1322 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1326 static inline __ATTRS_o_ai void
1327 vec_store_len(vector float __vec, float *__ptr,
1328 unsigned int __len) {
1329 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1333 static inline __ATTRS_o_ai void
1334 vec_store_len(vector double __vec, double *__ptr,
1335 unsigned int __len) {
1336 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1339 /*-- vec_store_len_r --------------------------------------------------------*/
1342 static inline __ATTRS_ai void
1343 vec_store_len_r(vector unsigned char __vec, unsigned char *__ptr,
1344 unsigned int __len) {
1345 __builtin_s390_vstrl((vector signed char)__vec, __len, __ptr);
1349 /*-- vec_load_pair ----------------------------------------------------------*/
1351 static inline __ATTRS_o_ai vector signed long long
1352 vec_load_pair(signed long long __a, signed long long __b) {
1353 return (vector signed long long)(__a, __b);
1356 static inline __ATTRS_o_ai vector unsigned long long
1357 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1358 return (vector unsigned long long)(__a, __b);
1361 /*-- vec_genmask ------------------------------------------------------------*/
1363 static inline __ATTRS_o_ai vector unsigned char
1364 vec_genmask(unsigned short __mask)
1365 __constant(__mask) {
1366 return (vector unsigned char)(
1367 __mask & 0x8000 ? 0xff : 0,
1368 __mask & 0x4000 ? 0xff : 0,
1369 __mask & 0x2000 ? 0xff : 0,
1370 __mask & 0x1000 ? 0xff : 0,
1371 __mask & 0x0800 ? 0xff : 0,
1372 __mask & 0x0400 ? 0xff : 0,
1373 __mask & 0x0200 ? 0xff : 0,
1374 __mask & 0x0100 ? 0xff : 0,
1375 __mask & 0x0080 ? 0xff : 0,
1376 __mask & 0x0040 ? 0xff : 0,
1377 __mask & 0x0020 ? 0xff : 0,
1378 __mask & 0x0010 ? 0xff : 0,
1379 __mask & 0x0008 ? 0xff : 0,
1380 __mask & 0x0004 ? 0xff : 0,
1381 __mask & 0x0002 ? 0xff : 0,
1382 __mask & 0x0001 ? 0xff : 0);
1385 /*-- vec_genmasks_* ---------------------------------------------------------*/
1387 static inline __ATTRS_o_ai vector unsigned char
1388 vec_genmasks_8(unsigned char __first, unsigned char __last)
1389 __constant(__first) __constant(__last) {
1390 unsigned char __bit1 = __first & 7;
1391 unsigned char __bit2 = __last & 7;
1392 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1393 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1394 unsigned char __value = (__bit1 <= __bit2 ?
1395 __mask1 & ~__mask2 :
1396 __mask1 | ~__mask2);
1397 return (vector unsigned char)__value;
1400 static inline __ATTRS_o_ai vector unsigned short
1401 vec_genmasks_16(unsigned char __first, unsigned char __last)
1402 __constant(__first) __constant(__last) {
1403 unsigned char __bit1 = __first & 15;
1404 unsigned char __bit2 = __last & 15;
1405 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1406 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1407 unsigned short __value = (__bit1 <= __bit2 ?
1408 __mask1 & ~__mask2 :
1409 __mask1 | ~__mask2);
1410 return (vector unsigned short)__value;
1413 static inline __ATTRS_o_ai vector unsigned int
1414 vec_genmasks_32(unsigned char __first, unsigned char __last)
1415 __constant(__first) __constant(__last) {
1416 unsigned char __bit1 = __first & 31;
1417 unsigned char __bit2 = __last & 31;
1418 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1419 unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1420 unsigned int __value = (__bit1 <= __bit2 ?
1421 __mask1 & ~__mask2 :
1422 __mask1 | ~__mask2);
1423 return (vector unsigned int)__value;
1426 static inline __ATTRS_o_ai vector unsigned long long
1427 vec_genmasks_64(unsigned char __first, unsigned char __last)
1428 __constant(__first) __constant(__last) {
1429 unsigned char __bit1 = __first & 63;
1430 unsigned char __bit2 = __last & 63;
1431 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1432 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1433 unsigned long long __value = (__bit1 <= __bit2 ?
1434 __mask1 & ~__mask2 :
1435 __mask1 | ~__mask2);
1436 return (vector unsigned long long)__value;
1439 /*-- vec_splat --------------------------------------------------------------*/
1441 static inline __ATTRS_o_ai vector signed char
1442 vec_splat(vector signed char __vec, int __index)
1443 __constant_range(__index, 0, 15) {
1444 return (vector signed char)__vec[__index];
1447 static inline __ATTRS_o_ai vector bool char
1448 vec_splat(vector bool char __vec, int __index)
1449 __constant_range(__index, 0, 15) {
1450 return (vector bool char)(vector unsigned char)__vec[__index];
1453 static inline __ATTRS_o_ai vector unsigned char
1454 vec_splat(vector unsigned char __vec, int __index)
1455 __constant_range(__index, 0, 15) {
1456 return (vector unsigned char)__vec[__index];
1459 static inline __ATTRS_o_ai vector signed short
1460 vec_splat(vector signed short __vec, int __index)
1461 __constant_range(__index, 0, 7) {
1462 return (vector signed short)__vec[__index];
1465 static inline __ATTRS_o_ai vector bool short
1466 vec_splat(vector bool short __vec, int __index)
1467 __constant_range(__index, 0, 7) {
1468 return (vector bool short)(vector unsigned short)__vec[__index];
1471 static inline __ATTRS_o_ai vector unsigned short
1472 vec_splat(vector unsigned short __vec, int __index)
1473 __constant_range(__index, 0, 7) {
1474 return (vector unsigned short)__vec[__index];
1477 static inline __ATTRS_o_ai vector signed int
1478 vec_splat(vector signed int __vec, int __index)
1479 __constant_range(__index, 0, 3) {
1480 return (vector signed int)__vec[__index];
1483 static inline __ATTRS_o_ai vector bool int
1484 vec_splat(vector bool int __vec, int __index)
1485 __constant_range(__index, 0, 3) {
1486 return (vector bool int)(vector unsigned int)__vec[__index];
1489 static inline __ATTRS_o_ai vector unsigned int
1490 vec_splat(vector unsigned int __vec, int __index)
1491 __constant_range(__index, 0, 3) {
1492 return (vector unsigned int)__vec[__index];
1495 static inline __ATTRS_o_ai vector signed long long
1496 vec_splat(vector signed long long __vec, int __index)
1497 __constant_range(__index, 0, 1) {
1498 return (vector signed long long)__vec[__index];
1501 static inline __ATTRS_o_ai vector bool long long
1502 vec_splat(vector bool long long __vec, int __index)
1503 __constant_range(__index, 0, 1) {
1504 return (vector bool long long)(vector unsigned long long)__vec[__index];
1507 static inline __ATTRS_o_ai vector unsigned long long
1508 vec_splat(vector unsigned long long __vec, int __index)
1509 __constant_range(__index, 0, 1) {
1510 return (vector unsigned long long)__vec[__index];
1514 static inline __ATTRS_o_ai vector float
1515 vec_splat(vector float __vec, int __index)
1516 __constant_range(__index, 0, 3) {
1517 return (vector float)__vec[__index];
1521 static inline __ATTRS_o_ai vector double
1522 vec_splat(vector double __vec, int __index)
1523 __constant_range(__index, 0, 1) {
1524 return (vector double)__vec[__index];
1527 /*-- vec_splat_s* -----------------------------------------------------------*/
1529 static inline __ATTRS_ai vector signed char
1530 vec_splat_s8(signed char __scalar)
1531 __constant(__scalar) {
1532 return (vector signed char)__scalar;
1535 static inline __ATTRS_ai vector signed short
1536 vec_splat_s16(signed short __scalar)
1537 __constant(__scalar) {
1538 return (vector signed short)__scalar;
1541 static inline __ATTRS_ai vector signed int
1542 vec_splat_s32(signed short __scalar)
1543 __constant(__scalar) {
1544 return (vector signed int)(signed int)__scalar;
1547 static inline __ATTRS_ai vector signed long long
1548 vec_splat_s64(signed short __scalar)
1549 __constant(__scalar) {
1550 return (vector signed long long)(signed long)__scalar;
1553 /*-- vec_splat_u* -----------------------------------------------------------*/
1555 static inline __ATTRS_ai vector unsigned char
1556 vec_splat_u8(unsigned char __scalar)
1557 __constant(__scalar) {
1558 return (vector unsigned char)__scalar;
1561 static inline __ATTRS_ai vector unsigned short
1562 vec_splat_u16(unsigned short __scalar)
1563 __constant(__scalar) {
1564 return (vector unsigned short)__scalar;
1567 static inline __ATTRS_ai vector unsigned int
1568 vec_splat_u32(signed short __scalar)
1569 __constant(__scalar) {
1570 return (vector unsigned int)(signed int)__scalar;
1573 static inline __ATTRS_ai vector unsigned long long
1574 vec_splat_u64(signed short __scalar)
1575 __constant(__scalar) {
1576 return (vector unsigned long long)(signed long long)__scalar;
1579 /*-- vec_splats -------------------------------------------------------------*/
1581 static inline __ATTRS_o_ai vector signed char
1582 vec_splats(signed char __scalar) {
1583 return (vector signed char)__scalar;
1586 static inline __ATTRS_o_ai vector unsigned char
1587 vec_splats(unsigned char __scalar) {
1588 return (vector unsigned char)__scalar;
1591 static inline __ATTRS_o_ai vector signed short
1592 vec_splats(signed short __scalar) {
1593 return (vector signed short)__scalar;
1596 static inline __ATTRS_o_ai vector unsigned short
1597 vec_splats(unsigned short __scalar) {
1598 return (vector unsigned short)__scalar;
1601 static inline __ATTRS_o_ai vector signed int
1602 vec_splats(signed int __scalar) {
1603 return (vector signed int)__scalar;
1606 static inline __ATTRS_o_ai vector unsigned int
1607 vec_splats(unsigned int __scalar) {
1608 return (vector unsigned int)__scalar;
1611 static inline __ATTRS_o_ai vector signed long long
1612 vec_splats(signed long long __scalar) {
1613 return (vector signed long long)__scalar;
1616 static inline __ATTRS_o_ai vector unsigned long long
1617 vec_splats(unsigned long long __scalar) {
1618 return (vector unsigned long long)__scalar;
1622 static inline __ATTRS_o_ai vector float
1623 vec_splats(float __scalar) {
1624 return (vector float)__scalar;
1628 static inline __ATTRS_o_ai vector double
1629 vec_splats(double __scalar) {
1630 return (vector double)__scalar;
1633 /*-- vec_extend_s64 ---------------------------------------------------------*/
1635 static inline __ATTRS_o_ai vector signed long long
1636 vec_extend_s64(vector signed char __a) {
1637 return (vector signed long long)(__a[7], __a[15]);
1640 static inline __ATTRS_o_ai vector signed long long
1641 vec_extend_s64(vector signed short __a) {
1642 return (vector signed long long)(__a[3], __a[7]);
1645 static inline __ATTRS_o_ai vector signed long long
1646 vec_extend_s64(vector signed int __a) {
1647 return (vector signed long long)(__a[1], __a[3]);
1650 /*-- vec_mergeh -------------------------------------------------------------*/
1652 static inline __ATTRS_o_ai vector signed char
1653 vec_mergeh(vector signed char __a, vector signed char __b) {
1654 return (vector signed char)(
1655 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1656 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1659 static inline __ATTRS_o_ai vector bool char
1660 vec_mergeh(vector bool char __a, vector bool char __b) {
1661 return (vector bool char)(
1662 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1663 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1666 static inline __ATTRS_o_ai vector unsigned char
1667 vec_mergeh(vector unsigned char __a, vector unsigned char __b) {
1668 return (vector unsigned char)(
1669 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1670 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1673 static inline __ATTRS_o_ai vector signed short
1674 vec_mergeh(vector signed short __a, vector signed short __b) {
1675 return (vector signed short)(
1676 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1679 static inline __ATTRS_o_ai vector bool short
1680 vec_mergeh(vector bool short __a, vector bool short __b) {
1681 return (vector bool short)(
1682 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1685 static inline __ATTRS_o_ai vector unsigned short
1686 vec_mergeh(vector unsigned short __a, vector unsigned short __b) {
1687 return (vector unsigned short)(
1688 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1691 static inline __ATTRS_o_ai vector signed int
1692 vec_mergeh(vector signed int __a, vector signed int __b) {
1693 return (vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1696 static inline __ATTRS_o_ai vector bool int
1697 vec_mergeh(vector bool int __a, vector bool int __b) {
1698 return (vector bool int)(__a[0], __b[0], __a[1], __b[1]);
1701 static inline __ATTRS_o_ai vector unsigned int
1702 vec_mergeh(vector unsigned int __a, vector unsigned int __b) {
1703 return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1706 static inline __ATTRS_o_ai vector signed long long
1707 vec_mergeh(vector signed long long __a, vector signed long long __b) {
1708 return (vector signed long long)(__a[0], __b[0]);
1711 static inline __ATTRS_o_ai vector bool long long
1712 vec_mergeh(vector bool long long __a, vector bool long long __b) {
1713 return (vector bool long long)(__a[0], __b[0]);
1716 static inline __ATTRS_o_ai vector unsigned long long
1717 vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) {
1718 return (vector unsigned long long)(__a[0], __b[0]);
1722 static inline __ATTRS_o_ai vector float
1723 vec_mergeh(vector float __a, vector float __b) {
1724 return (vector float)(__a[0], __b[0], __a[1], __b[1]);
1728 static inline __ATTRS_o_ai vector double
1729 vec_mergeh(vector double __a, vector double __b) {
1730 return (vector double)(__a[0], __b[0]);
1733 /*-- vec_mergel -------------------------------------------------------------*/
1735 static inline __ATTRS_o_ai vector signed char
1736 vec_mergel(vector signed char __a, vector signed char __b) {
1737 return (vector signed char)(
1738 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1739 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1742 static inline __ATTRS_o_ai vector bool char
1743 vec_mergel(vector bool char __a, vector bool char __b) {
1744 return (vector bool char)(
1745 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1746 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1749 static inline __ATTRS_o_ai vector unsigned char
1750 vec_mergel(vector unsigned char __a, vector unsigned char __b) {
1751 return (vector unsigned char)(
1752 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1753 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1756 static inline __ATTRS_o_ai vector signed short
1757 vec_mergel(vector signed short __a, vector signed short __b) {
1758 return (vector signed short)(
1759 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1762 static inline __ATTRS_o_ai vector bool short
1763 vec_mergel(vector bool short __a, vector bool short __b) {
1764 return (vector bool short)(
1765 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1768 static inline __ATTRS_o_ai vector unsigned short
1769 vec_mergel(vector unsigned short __a, vector unsigned short __b) {
1770 return (vector unsigned short)(
1771 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1774 static inline __ATTRS_o_ai vector signed int
1775 vec_mergel(vector signed int __a, vector signed int __b) {
1776 return (vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1779 static inline __ATTRS_o_ai vector bool int
1780 vec_mergel(vector bool int __a, vector bool int __b) {
1781 return (vector bool int)(__a[2], __b[2], __a[3], __b[3]);
1784 static inline __ATTRS_o_ai vector unsigned int
1785 vec_mergel(vector unsigned int __a, vector unsigned int __b) {
1786 return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1789 static inline __ATTRS_o_ai vector signed long long
1790 vec_mergel(vector signed long long __a, vector signed long long __b) {
1791 return (vector signed long long)(__a[1], __b[1]);
1794 static inline __ATTRS_o_ai vector bool long long
1795 vec_mergel(vector bool long long __a, vector bool long long __b) {
1796 return (vector bool long long)(__a[1], __b[1]);
1799 static inline __ATTRS_o_ai vector unsigned long long
1800 vec_mergel(vector unsigned long long __a, vector unsigned long long __b) {
1801 return (vector unsigned long long)(__a[1], __b[1]);
1805 static inline __ATTRS_o_ai vector float
1806 vec_mergel(vector float __a, vector float __b) {
1807 return (vector float)(__a[2], __b[2], __a[3], __b[3]);
1811 static inline __ATTRS_o_ai vector double
1812 vec_mergel(vector double __a, vector double __b) {
1813 return (vector double)(__a[1], __b[1]);
1816 /*-- vec_pack ---------------------------------------------------------------*/
1818 static inline __ATTRS_o_ai vector signed char
1819 vec_pack(vector signed short __a, vector signed short __b) {
1820 vector signed char __ac = (vector signed char)__a;
1821 vector signed char __bc = (vector signed char)__b;
1822 return (vector signed char)(
1823 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1824 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1827 static inline __ATTRS_o_ai vector bool char
1828 vec_pack(vector bool short __a, vector bool short __b) {
1829 vector bool char __ac = (vector bool char)__a;
1830 vector bool char __bc = (vector bool char)__b;
1831 return (vector bool char)(
1832 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1833 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1836 static inline __ATTRS_o_ai vector unsigned char
1837 vec_pack(vector unsigned short __a, vector unsigned short __b) {
1838 vector unsigned char __ac = (vector unsigned char)__a;
1839 vector unsigned char __bc = (vector unsigned char)__b;
1840 return (vector unsigned char)(
1841 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1842 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1845 static inline __ATTRS_o_ai vector signed short
1846 vec_pack(vector signed int __a, vector signed int __b) {
1847 vector signed short __ac = (vector signed short)__a;
1848 vector signed short __bc = (vector signed short)__b;
1849 return (vector signed short)(
1850 __ac[1], __ac[3], __ac[5], __ac[7],
1851 __bc[1], __bc[3], __bc[5], __bc[7]);
1854 static inline __ATTRS_o_ai vector bool short
1855 vec_pack(vector bool int __a, vector bool int __b) {
1856 vector bool short __ac = (vector bool short)__a;
1857 vector bool short __bc = (vector bool short)__b;
1858 return (vector bool short)(
1859 __ac[1], __ac[3], __ac[5], __ac[7],
1860 __bc[1], __bc[3], __bc[5], __bc[7]);
1863 static inline __ATTRS_o_ai vector unsigned short
1864 vec_pack(vector unsigned int __a, vector unsigned int __b) {
1865 vector unsigned short __ac = (vector unsigned short)__a;
1866 vector unsigned short __bc = (vector unsigned short)__b;
1867 return (vector unsigned short)(
1868 __ac[1], __ac[3], __ac[5], __ac[7],
1869 __bc[1], __bc[3], __bc[5], __bc[7]);
1872 static inline __ATTRS_o_ai vector signed int
1873 vec_pack(vector signed long long __a, vector signed long long __b) {
1874 vector signed int __ac = (vector signed int)__a;
1875 vector signed int __bc = (vector signed int)__b;
1876 return (vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1879 static inline __ATTRS_o_ai vector bool int
1880 vec_pack(vector bool long long __a, vector bool long long __b) {
1881 vector bool int __ac = (vector bool int)__a;
1882 vector bool int __bc = (vector bool int)__b;
1883 return (vector bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1886 static inline __ATTRS_o_ai vector unsigned int
1887 vec_pack(vector unsigned long long __a, vector unsigned long long __b) {
1888 vector unsigned int __ac = (vector unsigned int)__a;
1889 vector unsigned int __bc = (vector unsigned int)__b;
1890 return (vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1893 /*-- vec_packs --------------------------------------------------------------*/
1895 static inline __ATTRS_o_ai vector signed char
1896 vec_packs(vector signed short __a, vector signed short __b) {
1897 return __builtin_s390_vpksh(__a, __b);
1900 static inline __ATTRS_o_ai vector unsigned char
1901 vec_packs(vector unsigned short __a, vector unsigned short __b) {
1902 return __builtin_s390_vpklsh(__a, __b);
1905 static inline __ATTRS_o_ai vector signed short
1906 vec_packs(vector signed int __a, vector signed int __b) {
1907 return __builtin_s390_vpksf(__a, __b);
1910 static inline __ATTRS_o_ai vector unsigned short
1911 vec_packs(vector unsigned int __a, vector unsigned int __b) {
1912 return __builtin_s390_vpklsf(__a, __b);
1915 static inline __ATTRS_o_ai vector signed int
1916 vec_packs(vector signed long long __a, vector signed long long __b) {
1917 return __builtin_s390_vpksg(__a, __b);
1920 static inline __ATTRS_o_ai vector unsigned int
1921 vec_packs(vector unsigned long long __a, vector unsigned long long __b) {
1922 return __builtin_s390_vpklsg(__a, __b);
1925 /*-- vec_packs_cc -----------------------------------------------------------*/
1927 static inline __ATTRS_o_ai vector signed char
1928 vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) {
1929 return __builtin_s390_vpkshs(__a, __b, __cc);
1932 static inline __ATTRS_o_ai vector unsigned char
1933 vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
1934 return __builtin_s390_vpklshs(__a, __b, __cc);
1937 static inline __ATTRS_o_ai vector signed short
1938 vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) {
1939 return __builtin_s390_vpksfs(__a, __b, __cc);
1942 static inline __ATTRS_o_ai vector unsigned short
1943 vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
1944 return __builtin_s390_vpklsfs(__a, __b, __cc);
1947 static inline __ATTRS_o_ai vector signed int
1948 vec_packs_cc(vector signed long long __a, vector signed long long __b,
1950 return __builtin_s390_vpksgs(__a, __b, __cc);
1953 static inline __ATTRS_o_ai vector unsigned int
1954 vec_packs_cc(vector unsigned long long __a, vector unsigned long long __b,
1956 return __builtin_s390_vpklsgs(__a, __b, __cc);
1959 /*-- vec_packsu -------------------------------------------------------------*/
1961 static inline __ATTRS_o_ai vector unsigned char
1962 vec_packsu(vector signed short __a, vector signed short __b) {
1963 const vector signed short __zero = (vector signed short)0;
1964 return __builtin_s390_vpklsh(
1965 (vector unsigned short)(__a >= __zero) & (vector unsigned short)__a,
1966 (vector unsigned short)(__b >= __zero) & (vector unsigned short)__b);
1969 static inline __ATTRS_o_ai vector unsigned char
1970 vec_packsu(vector unsigned short __a, vector unsigned short __b) {
1971 return __builtin_s390_vpklsh(__a, __b);
1974 static inline __ATTRS_o_ai vector unsigned short
1975 vec_packsu(vector signed int __a, vector signed int __b) {
1976 const vector signed int __zero = (vector signed int)0;
1977 return __builtin_s390_vpklsf(
1978 (vector unsigned int)(__a >= __zero) & (vector unsigned int)__a,
1979 (vector unsigned int)(__b >= __zero) & (vector unsigned int)__b);
1982 static inline __ATTRS_o_ai vector unsigned short
1983 vec_packsu(vector unsigned int __a, vector unsigned int __b) {
1984 return __builtin_s390_vpklsf(__a, __b);
1987 static inline __ATTRS_o_ai vector unsigned int
1988 vec_packsu(vector signed long long __a, vector signed long long __b) {
1989 const vector signed long long __zero = (vector signed long long)0;
1990 return __builtin_s390_vpklsg(
1991 (vector unsigned long long)(__a >= __zero) &
1992 (vector unsigned long long)__a,
1993 (vector unsigned long long)(__b >= __zero) &
1994 (vector unsigned long long)__b);
1997 static inline __ATTRS_o_ai vector unsigned int
1998 vec_packsu(vector unsigned long long __a, vector unsigned long long __b) {
1999 return __builtin_s390_vpklsg(__a, __b);
2002 /*-- vec_packsu_cc ----------------------------------------------------------*/
2004 static inline __ATTRS_o_ai vector unsigned char
2005 vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
2006 return __builtin_s390_vpklshs(__a, __b, __cc);
2009 static inline __ATTRS_o_ai vector unsigned short
2010 vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
2011 return __builtin_s390_vpklsfs(__a, __b, __cc);
2014 static inline __ATTRS_o_ai vector unsigned int
2015 vec_packsu_cc(vector unsigned long long __a, vector unsigned long long __b,
2017 return __builtin_s390_vpklsgs(__a, __b, __cc);
2020 /*-- vec_unpackh ------------------------------------------------------------*/
2022 static inline __ATTRS_o_ai vector signed short
2023 vec_unpackh(vector signed char __a) {
2024 return __builtin_s390_vuphb(__a);
2027 static inline __ATTRS_o_ai vector bool short
2028 vec_unpackh(vector bool char __a) {
2029 return (vector bool short)__builtin_s390_vuphb((vector signed char)__a);
2032 static inline __ATTRS_o_ai vector unsigned short
2033 vec_unpackh(vector unsigned char __a) {
2034 return __builtin_s390_vuplhb(__a);
2037 static inline __ATTRS_o_ai vector signed int
2038 vec_unpackh(vector signed short __a) {
2039 return __builtin_s390_vuphh(__a);
2042 static inline __ATTRS_o_ai vector bool int
2043 vec_unpackh(vector bool short __a) {
2044 return (vector bool int)__builtin_s390_vuphh((vector signed short)__a);
2047 static inline __ATTRS_o_ai vector unsigned int
2048 vec_unpackh(vector unsigned short __a) {
2049 return __builtin_s390_vuplhh(__a);
2052 static inline __ATTRS_o_ai vector signed long long
2053 vec_unpackh(vector signed int __a) {
2054 return __builtin_s390_vuphf(__a);
2057 static inline __ATTRS_o_ai vector bool long long
2058 vec_unpackh(vector bool int __a) {
2059 return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a);
2062 static inline __ATTRS_o_ai vector unsigned long long
2063 vec_unpackh(vector unsigned int __a) {
2064 return __builtin_s390_vuplhf(__a);
2067 /*-- vec_unpackl ------------------------------------------------------------*/
2069 static inline __ATTRS_o_ai vector signed short
2070 vec_unpackl(vector signed char __a) {
2071 return __builtin_s390_vuplb(__a);
2074 static inline __ATTRS_o_ai vector bool short
2075 vec_unpackl(vector bool char __a) {
2076 return (vector bool short)__builtin_s390_vuplb((vector signed char)__a);
2079 static inline __ATTRS_o_ai vector unsigned short
2080 vec_unpackl(vector unsigned char __a) {
2081 return __builtin_s390_vupllb(__a);
2084 static inline __ATTRS_o_ai vector signed int
2085 vec_unpackl(vector signed short __a) {
2086 return __builtin_s390_vuplhw(__a);
2089 static inline __ATTRS_o_ai vector bool int
2090 vec_unpackl(vector bool short __a) {
2091 return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a);
2094 static inline __ATTRS_o_ai vector unsigned int
2095 vec_unpackl(vector unsigned short __a) {
2096 return __builtin_s390_vupllh(__a);
2099 static inline __ATTRS_o_ai vector signed long long
2100 vec_unpackl(vector signed int __a) {
2101 return __builtin_s390_vuplf(__a);
2104 static inline __ATTRS_o_ai vector bool long long
2105 vec_unpackl(vector bool int __a) {
2106 return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a);
2109 static inline __ATTRS_o_ai vector unsigned long long
2110 vec_unpackl(vector unsigned int __a) {
2111 return __builtin_s390_vupllf(__a);
2114 /*-- vec_cmpeq --------------------------------------------------------------*/
2116 static inline __ATTRS_o_ai vector bool char
2117 vec_cmpeq(vector bool char __a, vector bool char __b) {
2118 return (vector bool char)(__a == __b);
2121 static inline __ATTRS_o_ai vector bool char
2122 vec_cmpeq(vector signed char __a, vector signed char __b) {
2123 return (vector bool char)(__a == __b);
2126 static inline __ATTRS_o_ai vector bool char
2127 vec_cmpeq(vector unsigned char __a, vector unsigned char __b) {
2128 return (vector bool char)(__a == __b);
2131 static inline __ATTRS_o_ai vector bool short
2132 vec_cmpeq(vector bool short __a, vector bool short __b) {
2133 return (vector bool short)(__a == __b);
2136 static inline __ATTRS_o_ai vector bool short
2137 vec_cmpeq(vector signed short __a, vector signed short __b) {
2138 return (vector bool short)(__a == __b);
2141 static inline __ATTRS_o_ai vector bool short
2142 vec_cmpeq(vector unsigned short __a, vector unsigned short __b) {
2143 return (vector bool short)(__a == __b);
2146 static inline __ATTRS_o_ai vector bool int
2147 vec_cmpeq(vector bool int __a, vector bool int __b) {
2148 return (vector bool int)(__a == __b);
2151 static inline __ATTRS_o_ai vector bool int
2152 vec_cmpeq(vector signed int __a, vector signed int __b) {
2153 return (vector bool int)(__a == __b);
2156 static inline __ATTRS_o_ai vector bool int
2157 vec_cmpeq(vector unsigned int __a, vector unsigned int __b) {
2158 return (vector bool int)(__a == __b);
2161 static inline __ATTRS_o_ai vector bool long long
2162 vec_cmpeq(vector bool long long __a, vector bool long long __b) {
2163 return (vector bool long long)(__a == __b);
2166 static inline __ATTRS_o_ai vector bool long long
2167 vec_cmpeq(vector signed long long __a, vector signed long long __b) {
2168 return (vector bool long long)(__a == __b);
2171 static inline __ATTRS_o_ai vector bool long long
2172 vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
2173 return (vector bool long long)(__a == __b);
2177 static inline __ATTRS_o_ai vector bool int
2178 vec_cmpeq(vector float __a, vector float __b) {
2179 return (vector bool int)(__a == __b);
2183 static inline __ATTRS_o_ai vector bool long long
2184 vec_cmpeq(vector double __a, vector double __b) {
2185 return (vector bool long long)(__a == __b);
2188 /*-- vec_cmpge --------------------------------------------------------------*/
2190 static inline __ATTRS_o_ai vector bool char
2191 vec_cmpge(vector signed char __a, vector signed char __b) {
2192 return (vector bool char)(__a >= __b);
2195 static inline __ATTRS_o_ai vector bool char
2196 vec_cmpge(vector unsigned char __a, vector unsigned char __b) {
2197 return (vector bool char)(__a >= __b);
2200 static inline __ATTRS_o_ai vector bool short
2201 vec_cmpge(vector signed short __a, vector signed short __b) {
2202 return (vector bool short)(__a >= __b);
2205 static inline __ATTRS_o_ai vector bool short
2206 vec_cmpge(vector unsigned short __a, vector unsigned short __b) {
2207 return (vector bool short)(__a >= __b);
2210 static inline __ATTRS_o_ai vector bool int
2211 vec_cmpge(vector signed int __a, vector signed int __b) {
2212 return (vector bool int)(__a >= __b);
2215 static inline __ATTRS_o_ai vector bool int
2216 vec_cmpge(vector unsigned int __a, vector unsigned int __b) {
2217 return (vector bool int)(__a >= __b);
2220 static inline __ATTRS_o_ai vector bool long long
2221 vec_cmpge(vector signed long long __a, vector signed long long __b) {
2222 return (vector bool long long)(__a >= __b);
2225 static inline __ATTRS_o_ai vector bool long long
2226 vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) {
2227 return (vector bool long long)(__a >= __b);
2231 static inline __ATTRS_o_ai vector bool int
2232 vec_cmpge(vector float __a, vector float __b) {
2233 return (vector bool int)(__a >= __b);
2237 static inline __ATTRS_o_ai vector bool long long
2238 vec_cmpge(vector double __a, vector double __b) {
2239 return (vector bool long long)(__a >= __b);
2242 /*-- vec_cmpgt --------------------------------------------------------------*/
2244 static inline __ATTRS_o_ai vector bool char
2245 vec_cmpgt(vector signed char __a, vector signed char __b) {
2246 return (vector bool char)(__a > __b);
2249 static inline __ATTRS_o_ai vector bool char
2250 vec_cmpgt(vector unsigned char __a, vector unsigned char __b) {
2251 return (vector bool char)(__a > __b);
2254 static inline __ATTRS_o_ai vector bool short
2255 vec_cmpgt(vector signed short __a, vector signed short __b) {
2256 return (vector bool short)(__a > __b);
2259 static inline __ATTRS_o_ai vector bool short
2260 vec_cmpgt(vector unsigned short __a, vector unsigned short __b) {
2261 return (vector bool short)(__a > __b);
2264 static inline __ATTRS_o_ai vector bool int
2265 vec_cmpgt(vector signed int __a, vector signed int __b) {
2266 return (vector bool int)(__a > __b);
2269 static inline __ATTRS_o_ai vector bool int
2270 vec_cmpgt(vector unsigned int __a, vector unsigned int __b) {
2271 return (vector bool int)(__a > __b);
2274 static inline __ATTRS_o_ai vector bool long long
2275 vec_cmpgt(vector signed long long __a, vector signed long long __b) {
2276 return (vector bool long long)(__a > __b);
2279 static inline __ATTRS_o_ai vector bool long long
2280 vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
2281 return (vector bool long long)(__a > __b);
2285 static inline __ATTRS_o_ai vector bool int
2286 vec_cmpgt(vector float __a, vector float __b) {
2287 return (vector bool int)(__a > __b);
2291 static inline __ATTRS_o_ai vector bool long long
2292 vec_cmpgt(vector double __a, vector double __b) {
2293 return (vector bool long long)(__a > __b);
2296 /*-- vec_cmple --------------------------------------------------------------*/
2298 static inline __ATTRS_o_ai vector bool char
2299 vec_cmple(vector signed char __a, vector signed char __b) {
2300 return (vector bool char)(__a <= __b);
2303 static inline __ATTRS_o_ai vector bool char
2304 vec_cmple(vector unsigned char __a, vector unsigned char __b) {
2305 return (vector bool char)(__a <= __b);
2308 static inline __ATTRS_o_ai vector bool short
2309 vec_cmple(vector signed short __a, vector signed short __b) {
2310 return (vector bool short)(__a <= __b);
2313 static inline __ATTRS_o_ai vector bool short
2314 vec_cmple(vector unsigned short __a, vector unsigned short __b) {
2315 return (vector bool short)(__a <= __b);
2318 static inline __ATTRS_o_ai vector bool int
2319 vec_cmple(vector signed int __a, vector signed int __b) {
2320 return (vector bool int)(__a <= __b);
2323 static inline __ATTRS_o_ai vector bool int
2324 vec_cmple(vector unsigned int __a, vector unsigned int __b) {
2325 return (vector bool int)(__a <= __b);
2328 static inline __ATTRS_o_ai vector bool long long
2329 vec_cmple(vector signed long long __a, vector signed long long __b) {
2330 return (vector bool long long)(__a <= __b);
2333 static inline __ATTRS_o_ai vector bool long long
2334 vec_cmple(vector unsigned long long __a, vector unsigned long long __b) {
2335 return (vector bool long long)(__a <= __b);
2339 static inline __ATTRS_o_ai vector bool int
2340 vec_cmple(vector float __a, vector float __b) {
2341 return (vector bool int)(__a <= __b);
2345 static inline __ATTRS_o_ai vector bool long long
2346 vec_cmple(vector double __a, vector double __b) {
2347 return (vector bool long long)(__a <= __b);
2350 /*-- vec_cmplt --------------------------------------------------------------*/
2352 static inline __ATTRS_o_ai vector bool char
2353 vec_cmplt(vector signed char __a, vector signed char __b) {
2354 return (vector bool char)(__a < __b);
2357 static inline __ATTRS_o_ai vector bool char
2358 vec_cmplt(vector unsigned char __a, vector unsigned char __b) {
2359 return (vector bool char)(__a < __b);
2362 static inline __ATTRS_o_ai vector bool short
2363 vec_cmplt(vector signed short __a, vector signed short __b) {
2364 return (vector bool short)(__a < __b);
2367 static inline __ATTRS_o_ai vector bool short
2368 vec_cmplt(vector unsigned short __a, vector unsigned short __b) {
2369 return (vector bool short)(__a < __b);
2372 static inline __ATTRS_o_ai vector bool int
2373 vec_cmplt(vector signed int __a, vector signed int __b) {
2374 return (vector bool int)(__a < __b);
2377 static inline __ATTRS_o_ai vector bool int
2378 vec_cmplt(vector unsigned int __a, vector unsigned int __b) {
2379 return (vector bool int)(__a < __b);
2382 static inline __ATTRS_o_ai vector bool long long
2383 vec_cmplt(vector signed long long __a, vector signed long long __b) {
2384 return (vector bool long long)(__a < __b);
2387 static inline __ATTRS_o_ai vector bool long long
2388 vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
2389 return (vector bool long long)(__a < __b);
2393 static inline __ATTRS_o_ai vector bool int
2394 vec_cmplt(vector float __a, vector float __b) {
2395 return (vector bool int)(__a < __b);
2399 static inline __ATTRS_o_ai vector bool long long
2400 vec_cmplt(vector double __a, vector double __b) {
2401 return (vector bool long long)(__a < __b);
2404 /*-- vec_all_eq -------------------------------------------------------------*/
2406 static inline __ATTRS_o_ai int
2407 vec_all_eq(vector signed char __a, vector signed char __b) {
2409 __builtin_s390_vceqbs(__a, __b, &__cc);
2413 // This prototype is deprecated.
2414 static inline __ATTRS_o_ai int
2415 vec_all_eq(vector signed char __a, vector bool char __b) {
2417 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2421 // This prototype is deprecated.
2422 static inline __ATTRS_o_ai int
2423 vec_all_eq(vector bool char __a, vector signed char __b) {
2425 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2429 static inline __ATTRS_o_ai int
2430 vec_all_eq(vector unsigned char __a, vector unsigned char __b) {
2432 __builtin_s390_vceqbs((vector signed char)__a,
2433 (vector signed char)__b, &__cc);
2437 // This prototype is deprecated.
2438 static inline __ATTRS_o_ai int
2439 vec_all_eq(vector unsigned char __a, vector bool char __b) {
2441 __builtin_s390_vceqbs((vector signed char)__a,
2442 (vector signed char)__b, &__cc);
2446 // This prototype is deprecated.
2447 static inline __ATTRS_o_ai int
2448 vec_all_eq(vector bool char __a, vector unsigned char __b) {
2450 __builtin_s390_vceqbs((vector signed char)__a,
2451 (vector signed char)__b, &__cc);
2455 static inline __ATTRS_o_ai int
2456 vec_all_eq(vector bool char __a, vector bool char __b) {
2458 __builtin_s390_vceqbs((vector signed char)__a,
2459 (vector signed char)__b, &__cc);
2463 static inline __ATTRS_o_ai int
2464 vec_all_eq(vector signed short __a, vector signed short __b) {
2466 __builtin_s390_vceqhs(__a, __b, &__cc);
2470 // This prototype is deprecated.
2471 static inline __ATTRS_o_ai int
2472 vec_all_eq(vector signed short __a, vector bool short __b) {
2474 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2478 // This prototype is deprecated.
2479 static inline __ATTRS_o_ai int
2480 vec_all_eq(vector bool short __a, vector signed short __b) {
2482 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2486 static inline __ATTRS_o_ai int
2487 vec_all_eq(vector unsigned short __a, vector unsigned short __b) {
2489 __builtin_s390_vceqhs((vector signed short)__a,
2490 (vector signed short)__b, &__cc);
2494 // This prototype is deprecated.
2495 static inline __ATTRS_o_ai int
2496 vec_all_eq(vector unsigned short __a, vector bool short __b) {
2498 __builtin_s390_vceqhs((vector signed short)__a,
2499 (vector signed short)__b, &__cc);
2503 // This prototype is deprecated.
2504 static inline __ATTRS_o_ai int
2505 vec_all_eq(vector bool short __a, vector unsigned short __b) {
2507 __builtin_s390_vceqhs((vector signed short)__a,
2508 (vector signed short)__b, &__cc);
2512 static inline __ATTRS_o_ai int
2513 vec_all_eq(vector bool short __a, vector bool short __b) {
2515 __builtin_s390_vceqhs((vector signed short)__a,
2516 (vector signed short)__b, &__cc);
2520 static inline __ATTRS_o_ai int
2521 vec_all_eq(vector signed int __a, vector signed int __b) {
2523 __builtin_s390_vceqfs(__a, __b, &__cc);
2527 // This prototype is deprecated.
2528 static inline __ATTRS_o_ai int
2529 vec_all_eq(vector signed int __a, vector bool int __b) {
2531 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2535 // This prototype is deprecated.
2536 static inline __ATTRS_o_ai int
2537 vec_all_eq(vector bool int __a, vector signed int __b) {
2539 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2543 static inline __ATTRS_o_ai int
2544 vec_all_eq(vector unsigned int __a, vector unsigned int __b) {
2546 __builtin_s390_vceqfs((vector signed int)__a,
2547 (vector signed int)__b, &__cc);
2551 // This prototype is deprecated.
2552 static inline __ATTRS_o_ai int
2553 vec_all_eq(vector unsigned int __a, vector bool int __b) {
2555 __builtin_s390_vceqfs((vector signed int)__a,
2556 (vector signed int)__b, &__cc);
2560 // This prototype is deprecated.
2561 static inline __ATTRS_o_ai int
2562 vec_all_eq(vector bool int __a, vector unsigned int __b) {
2564 __builtin_s390_vceqfs((vector signed int)__a,
2565 (vector signed int)__b, &__cc);
2569 static inline __ATTRS_o_ai int
2570 vec_all_eq(vector bool int __a, vector bool int __b) {
2572 __builtin_s390_vceqfs((vector signed int)__a,
2573 (vector signed int)__b, &__cc);
2577 static inline __ATTRS_o_ai int
2578 vec_all_eq(vector signed long long __a, vector signed long long __b) {
2580 __builtin_s390_vceqgs(__a, __b, &__cc);
2584 // This prototype is deprecated.
2585 static inline __ATTRS_o_ai int
2586 vec_all_eq(vector signed long long __a, vector bool long long __b) {
2588 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2592 // This prototype is deprecated.
2593 static inline __ATTRS_o_ai int
2594 vec_all_eq(vector bool long long __a, vector signed long long __b) {
2596 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2600 static inline __ATTRS_o_ai int
2601 vec_all_eq(vector unsigned long long __a, vector unsigned long long __b) {
2603 __builtin_s390_vceqgs((vector signed long long)__a,
2604 (vector signed long long)__b, &__cc);
2608 // This prototype is deprecated.
2609 static inline __ATTRS_o_ai int
2610 vec_all_eq(vector unsigned long long __a, vector bool long long __b) {
2612 __builtin_s390_vceqgs((vector signed long long)__a,
2613 (vector signed long long)__b, &__cc);
2617 // This prototype is deprecated.
2618 static inline __ATTRS_o_ai int
2619 vec_all_eq(vector bool long long __a, vector unsigned long long __b) {
2621 __builtin_s390_vceqgs((vector signed long long)__a,
2622 (vector signed long long)__b, &__cc);
2626 static inline __ATTRS_o_ai int
2627 vec_all_eq(vector bool long long __a, vector bool long long __b) {
2629 __builtin_s390_vceqgs((vector signed long long)__a,
2630 (vector signed long long)__b, &__cc);
2635 static inline __ATTRS_o_ai int
2636 vec_all_eq(vector float __a, vector float __b) {
2638 __builtin_s390_vfcesbs(__a, __b, &__cc);
2643 static inline __ATTRS_o_ai int
2644 vec_all_eq(vector double __a, vector double __b) {
2646 __builtin_s390_vfcedbs(__a, __b, &__cc);
2650 /*-- vec_all_ne -------------------------------------------------------------*/
2652 static inline __ATTRS_o_ai int
2653 vec_all_ne(vector signed char __a, vector signed char __b) {
2655 __builtin_s390_vceqbs(__a, __b, &__cc);
2659 // This prototype is deprecated.
2660 static inline __ATTRS_o_ai int
2661 vec_all_ne(vector signed char __a, vector bool char __b) {
2663 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2667 // This prototype is deprecated.
2668 static inline __ATTRS_o_ai int
2669 vec_all_ne(vector bool char __a, vector signed char __b) {
2671 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2675 static inline __ATTRS_o_ai int
2676 vec_all_ne(vector unsigned char __a, vector unsigned char __b) {
2678 __builtin_s390_vceqbs((vector signed char)__a,
2679 (vector signed char)__b, &__cc);
2683 // This prototype is deprecated.
2684 static inline __ATTRS_o_ai int
2685 vec_all_ne(vector unsigned char __a, vector bool char __b) {
2687 __builtin_s390_vceqbs((vector signed char)__a,
2688 (vector signed char)__b, &__cc);
2692 // This prototype is deprecated.
2693 static inline __ATTRS_o_ai int
2694 vec_all_ne(vector bool char __a, vector unsigned char __b) {
2696 __builtin_s390_vceqbs((vector signed char)__a,
2697 (vector signed char)__b, &__cc);
2701 static inline __ATTRS_o_ai int
2702 vec_all_ne(vector bool char __a, vector bool char __b) {
2704 __builtin_s390_vceqbs((vector signed char)__a,
2705 (vector signed char)__b, &__cc);
2709 static inline __ATTRS_o_ai int
2710 vec_all_ne(vector signed short __a, vector signed short __b) {
2712 __builtin_s390_vceqhs(__a, __b, &__cc);
2716 // This prototype is deprecated.
2717 static inline __ATTRS_o_ai int
2718 vec_all_ne(vector signed short __a, vector bool short __b) {
2720 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2724 // This prototype is deprecated.
2725 static inline __ATTRS_o_ai int
2726 vec_all_ne(vector bool short __a, vector signed short __b) {
2728 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2732 static inline __ATTRS_o_ai int
2733 vec_all_ne(vector unsigned short __a, vector unsigned short __b) {
2735 __builtin_s390_vceqhs((vector signed short)__a,
2736 (vector signed short)__b, &__cc);
2740 // This prototype is deprecated.
2741 static inline __ATTRS_o_ai int
2742 vec_all_ne(vector unsigned short __a, vector bool short __b) {
2744 __builtin_s390_vceqhs((vector signed short)__a,
2745 (vector signed short)__b, &__cc);
2749 // This prototype is deprecated.
2750 static inline __ATTRS_o_ai int
2751 vec_all_ne(vector bool short __a, vector unsigned short __b) {
2753 __builtin_s390_vceqhs((vector signed short)__a,
2754 (vector signed short)__b, &__cc);
2758 static inline __ATTRS_o_ai int
2759 vec_all_ne(vector bool short __a, vector bool short __b) {
2761 __builtin_s390_vceqhs((vector signed short)__a,
2762 (vector signed short)__b, &__cc);
2766 static inline __ATTRS_o_ai int
2767 vec_all_ne(vector signed int __a, vector signed int __b) {
2769 __builtin_s390_vceqfs(__a, __b, &__cc);
2773 // This prototype is deprecated.
2774 static inline __ATTRS_o_ai int
2775 vec_all_ne(vector signed int __a, vector bool int __b) {
2777 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2781 // This prototype is deprecated.
2782 static inline __ATTRS_o_ai int
2783 vec_all_ne(vector bool int __a, vector signed int __b) {
2785 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2789 static inline __ATTRS_o_ai int
2790 vec_all_ne(vector unsigned int __a, vector unsigned int __b) {
2792 __builtin_s390_vceqfs((vector signed int)__a,
2793 (vector signed int)__b, &__cc);
2797 // This prototype is deprecated.
2798 static inline __ATTRS_o_ai int
2799 vec_all_ne(vector unsigned int __a, vector bool int __b) {
2801 __builtin_s390_vceqfs((vector signed int)__a,
2802 (vector signed int)__b, &__cc);
2806 // This prototype is deprecated.
2807 static inline __ATTRS_o_ai int
2808 vec_all_ne(vector bool int __a, vector unsigned int __b) {
2810 __builtin_s390_vceqfs((vector signed int)__a,
2811 (vector signed int)__b, &__cc);
2815 static inline __ATTRS_o_ai int
2816 vec_all_ne(vector bool int __a, vector bool int __b) {
2818 __builtin_s390_vceqfs((vector signed int)__a,
2819 (vector signed int)__b, &__cc);
2823 static inline __ATTRS_o_ai int
2824 vec_all_ne(vector signed long long __a, vector signed long long __b) {
2826 __builtin_s390_vceqgs(__a, __b, &__cc);
2830 // This prototype is deprecated.
2831 static inline __ATTRS_o_ai int
2832 vec_all_ne(vector signed long long __a, vector bool long long __b) {
2834 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2838 // This prototype is deprecated.
2839 static inline __ATTRS_o_ai int
2840 vec_all_ne(vector bool long long __a, vector signed long long __b) {
2842 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2846 static inline __ATTRS_o_ai int
2847 vec_all_ne(vector unsigned long long __a, vector unsigned long long __b) {
2849 __builtin_s390_vceqgs((vector signed long long)__a,
2850 (vector signed long long)__b, &__cc);
2854 // This prototype is deprecated.
2855 static inline __ATTRS_o_ai int
2856 vec_all_ne(vector unsigned long long __a, vector bool long long __b) {
2858 __builtin_s390_vceqgs((vector signed long long)__a,
2859 (vector signed long long)__b, &__cc);
2863 // This prototype is deprecated.
2864 static inline __ATTRS_o_ai int
2865 vec_all_ne(vector bool long long __a, vector unsigned long long __b) {
2867 __builtin_s390_vceqgs((vector signed long long)__a,
2868 (vector signed long long)__b, &__cc);
2872 static inline __ATTRS_o_ai int
2873 vec_all_ne(vector bool long long __a, vector bool long long __b) {
2875 __builtin_s390_vceqgs((vector signed long long)__a,
2876 (vector signed long long)__b, &__cc);
2881 static inline __ATTRS_o_ai int
2882 vec_all_ne(vector float __a, vector float __b) {
2884 __builtin_s390_vfcesbs(__a, __b, &__cc);
2889 static inline __ATTRS_o_ai int
2890 vec_all_ne(vector double __a, vector double __b) {
2892 __builtin_s390_vfcedbs(__a, __b, &__cc);
2896 /*-- vec_all_ge -------------------------------------------------------------*/
2898 static inline __ATTRS_o_ai int
2899 vec_all_ge(vector signed char __a, vector signed char __b) {
2901 __builtin_s390_vchbs(__b, __a, &__cc);
2905 // This prototype is deprecated.
2906 static inline __ATTRS_o_ai int
2907 vec_all_ge(vector signed char __a, vector bool char __b) {
2909 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
2913 // This prototype is deprecated.
2914 static inline __ATTRS_o_ai int
2915 vec_all_ge(vector bool char __a, vector signed char __b) {
2917 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
2921 static inline __ATTRS_o_ai int
2922 vec_all_ge(vector unsigned char __a, vector unsigned char __b) {
2924 __builtin_s390_vchlbs(__b, __a, &__cc);
2928 // This prototype is deprecated.
2929 static inline __ATTRS_o_ai int
2930 vec_all_ge(vector unsigned char __a, vector bool char __b) {
2932 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
2936 // This prototype is deprecated.
2937 static inline __ATTRS_o_ai int
2938 vec_all_ge(vector bool char __a, vector unsigned char __b) {
2940 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
2944 // This prototype is deprecated.
2945 static inline __ATTRS_o_ai int
2946 vec_all_ge(vector bool char __a, vector bool char __b) {
2948 __builtin_s390_vchlbs((vector unsigned char)__b,
2949 (vector unsigned char)__a, &__cc);
2953 static inline __ATTRS_o_ai int
2954 vec_all_ge(vector signed short __a, vector signed short __b) {
2956 __builtin_s390_vchhs(__b, __a, &__cc);
2960 // This prototype is deprecated.
2961 static inline __ATTRS_o_ai int
2962 vec_all_ge(vector signed short __a, vector bool short __b) {
2964 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
2968 // This prototype is deprecated.
2969 static inline __ATTRS_o_ai int
2970 vec_all_ge(vector bool short __a, vector signed short __b) {
2972 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
2976 static inline __ATTRS_o_ai int
2977 vec_all_ge(vector unsigned short __a, vector unsigned short __b) {
2979 __builtin_s390_vchlhs(__b, __a, &__cc);
2983 // This prototype is deprecated.
2984 static inline __ATTRS_o_ai int
2985 vec_all_ge(vector unsigned short __a, vector bool short __b) {
2987 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
2991 // This prototype is deprecated.
2992 static inline __ATTRS_o_ai int
2993 vec_all_ge(vector bool short __a, vector unsigned short __b) {
2995 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
2999 // This prototype is deprecated.
3000 static inline __ATTRS_o_ai int
3001 vec_all_ge(vector bool short __a, vector bool short __b) {
3003 __builtin_s390_vchlhs((vector unsigned short)__b,
3004 (vector unsigned short)__a, &__cc);
3008 static inline __ATTRS_o_ai int
3009 vec_all_ge(vector signed int __a, vector signed int __b) {
3011 __builtin_s390_vchfs(__b, __a, &__cc);
3015 // This prototype is deprecated.
3016 static inline __ATTRS_o_ai int
3017 vec_all_ge(vector signed int __a, vector bool int __b) {
3019 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3023 // This prototype is deprecated.
3024 static inline __ATTRS_o_ai int
3025 vec_all_ge(vector bool int __a, vector signed int __b) {
3027 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3031 static inline __ATTRS_o_ai int
3032 vec_all_ge(vector unsigned int __a, vector unsigned int __b) {
3034 __builtin_s390_vchlfs(__b, __a, &__cc);
3038 // This prototype is deprecated.
3039 static inline __ATTRS_o_ai int
3040 vec_all_ge(vector unsigned int __a, vector bool int __b) {
3042 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3046 // This prototype is deprecated.
3047 static inline __ATTRS_o_ai int
3048 vec_all_ge(vector bool int __a, vector unsigned int __b) {
3050 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3054 // This prototype is deprecated.
3055 static inline __ATTRS_o_ai int
3056 vec_all_ge(vector bool int __a, vector bool int __b) {
3058 __builtin_s390_vchlfs((vector unsigned int)__b,
3059 (vector unsigned int)__a, &__cc);
3063 static inline __ATTRS_o_ai int
3064 vec_all_ge(vector signed long long __a, vector signed long long __b) {
3066 __builtin_s390_vchgs(__b, __a, &__cc);
3070 // This prototype is deprecated.
3071 static inline __ATTRS_o_ai int
3072 vec_all_ge(vector signed long long __a, vector bool long long __b) {
3074 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3078 // This prototype is deprecated.
3079 static inline __ATTRS_o_ai int
3080 vec_all_ge(vector bool long long __a, vector signed long long __b) {
3082 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3086 static inline __ATTRS_o_ai int
3087 vec_all_ge(vector unsigned long long __a, vector unsigned long long __b) {
3089 __builtin_s390_vchlgs(__b, __a, &__cc);
3093 // This prototype is deprecated.
3094 static inline __ATTRS_o_ai int
3095 vec_all_ge(vector unsigned long long __a, vector bool long long __b) {
3097 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3101 // This prototype is deprecated.
3102 static inline __ATTRS_o_ai int
3103 vec_all_ge(vector bool long long __a, vector unsigned long long __b) {
3105 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3109 // This prototype is deprecated.
3110 static inline __ATTRS_o_ai int
3111 vec_all_ge(vector bool long long __a, vector bool long long __b) {
3113 __builtin_s390_vchlgs((vector unsigned long long)__b,
3114 (vector unsigned long long)__a, &__cc);
3119 static inline __ATTRS_o_ai int
3120 vec_all_ge(vector float __a, vector float __b) {
3122 __builtin_s390_vfchesbs(__a, __b, &__cc);
3127 static inline __ATTRS_o_ai int
3128 vec_all_ge(vector double __a, vector double __b) {
3130 __builtin_s390_vfchedbs(__a, __b, &__cc);
3134 /*-- vec_all_gt -------------------------------------------------------------*/
3136 static inline __ATTRS_o_ai int
3137 vec_all_gt(vector signed char __a, vector signed char __b) {
3139 __builtin_s390_vchbs(__a, __b, &__cc);
3143 // This prototype is deprecated.
3144 static inline __ATTRS_o_ai int
3145 vec_all_gt(vector signed char __a, vector bool char __b) {
3147 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
3151 // This prototype is deprecated.
3152 static inline __ATTRS_o_ai int
3153 vec_all_gt(vector bool char __a, vector signed char __b) {
3155 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
3159 static inline __ATTRS_o_ai int
3160 vec_all_gt(vector unsigned char __a, vector unsigned char __b) {
3162 __builtin_s390_vchlbs(__a, __b, &__cc);
3166 // This prototype is deprecated.
3167 static inline __ATTRS_o_ai int
3168 vec_all_gt(vector unsigned char __a, vector bool char __b) {
3170 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
3174 // This prototype is deprecated.
3175 static inline __ATTRS_o_ai int
3176 vec_all_gt(vector bool char __a, vector unsigned char __b) {
3178 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
3182 // This prototype is deprecated.
3183 static inline __ATTRS_o_ai int
3184 vec_all_gt(vector bool char __a, vector bool char __b) {
3186 __builtin_s390_vchlbs((vector unsigned char)__a,
3187 (vector unsigned char)__b, &__cc);
3191 static inline __ATTRS_o_ai int
3192 vec_all_gt(vector signed short __a, vector signed short __b) {
3194 __builtin_s390_vchhs(__a, __b, &__cc);
3198 // This prototype is deprecated.
3199 static inline __ATTRS_o_ai int
3200 vec_all_gt(vector signed short __a, vector bool short __b) {
3202 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
3206 // This prototype is deprecated.
3207 static inline __ATTRS_o_ai int
3208 vec_all_gt(vector bool short __a, vector signed short __b) {
3210 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
3214 static inline __ATTRS_o_ai int
3215 vec_all_gt(vector unsigned short __a, vector unsigned short __b) {
3217 __builtin_s390_vchlhs(__a, __b, &__cc);
3221 // This prototype is deprecated.
3222 static inline __ATTRS_o_ai int
3223 vec_all_gt(vector unsigned short __a, vector bool short __b) {
3225 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3229 // This prototype is deprecated.
3230 static inline __ATTRS_o_ai int
3231 vec_all_gt(vector bool short __a, vector unsigned short __b) {
3233 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3237 // This prototype is deprecated.
3238 static inline __ATTRS_o_ai int
3239 vec_all_gt(vector bool short __a, vector bool short __b) {
3241 __builtin_s390_vchlhs((vector unsigned short)__a,
3242 (vector unsigned short)__b, &__cc);
3246 static inline __ATTRS_o_ai int
3247 vec_all_gt(vector signed int __a, vector signed int __b) {
3249 __builtin_s390_vchfs(__a, __b, &__cc);
3253 // This prototype is deprecated.
3254 static inline __ATTRS_o_ai int
3255 vec_all_gt(vector signed int __a, vector bool int __b) {
3257 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3261 // This prototype is deprecated.
3262 static inline __ATTRS_o_ai int
3263 vec_all_gt(vector bool int __a, vector signed int __b) {
3265 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3269 static inline __ATTRS_o_ai int
3270 vec_all_gt(vector unsigned int __a, vector unsigned int __b) {
3272 __builtin_s390_vchlfs(__a, __b, &__cc);
3276 // This prototype is deprecated.
3277 static inline __ATTRS_o_ai int
3278 vec_all_gt(vector unsigned int __a, vector bool int __b) {
3280 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3284 // This prototype is deprecated.
3285 static inline __ATTRS_o_ai int
3286 vec_all_gt(vector bool int __a, vector unsigned int __b) {
3288 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3292 // This prototype is deprecated.
3293 static inline __ATTRS_o_ai int
3294 vec_all_gt(vector bool int __a, vector bool int __b) {
3296 __builtin_s390_vchlfs((vector unsigned int)__a,
3297 (vector unsigned int)__b, &__cc);
3301 static inline __ATTRS_o_ai int
3302 vec_all_gt(vector signed long long __a, vector signed long long __b) {
3304 __builtin_s390_vchgs(__a, __b, &__cc);
3308 // This prototype is deprecated.
3309 static inline __ATTRS_o_ai int
3310 vec_all_gt(vector signed long long __a, vector bool long long __b) {
3312 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3316 // This prototype is deprecated.
3317 static inline __ATTRS_o_ai int
3318 vec_all_gt(vector bool long long __a, vector signed long long __b) {
3320 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3324 static inline __ATTRS_o_ai int
3325 vec_all_gt(vector unsigned long long __a, vector unsigned long long __b) {
3327 __builtin_s390_vchlgs(__a, __b, &__cc);
3331 // This prototype is deprecated.
3332 static inline __ATTRS_o_ai int
3333 vec_all_gt(vector unsigned long long __a, vector bool long long __b) {
3335 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3339 // This prototype is deprecated.
3340 static inline __ATTRS_o_ai int
3341 vec_all_gt(vector bool long long __a, vector unsigned long long __b) {
3343 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3347 // This prototype is deprecated.
3348 static inline __ATTRS_o_ai int
3349 vec_all_gt(vector bool long long __a, vector bool long long __b) {
3351 __builtin_s390_vchlgs((vector unsigned long long)__a,
3352 (vector unsigned long long)__b, &__cc);
3357 static inline __ATTRS_o_ai int
3358 vec_all_gt(vector float __a, vector float __b) {
3360 __builtin_s390_vfchsbs(__a, __b, &__cc);
3365 static inline __ATTRS_o_ai int
3366 vec_all_gt(vector double __a, vector double __b) {
3368 __builtin_s390_vfchdbs(__a, __b, &__cc);
3372 /*-- vec_all_le -------------------------------------------------------------*/
3374 static inline __ATTRS_o_ai int
3375 vec_all_le(vector signed char __a, vector signed char __b) {
3377 __builtin_s390_vchbs(__a, __b, &__cc);
3381 // This prototype is deprecated.
3382 static inline __ATTRS_o_ai int
3383 vec_all_le(vector signed char __a, vector bool char __b) {
3385 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
3389 // This prototype is deprecated.
3390 static inline __ATTRS_o_ai int
3391 vec_all_le(vector bool char __a, vector signed char __b) {
3393 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
3397 static inline __ATTRS_o_ai int
3398 vec_all_le(vector unsigned char __a, vector unsigned char __b) {
3400 __builtin_s390_vchlbs(__a, __b, &__cc);
3404 // This prototype is deprecated.
3405 static inline __ATTRS_o_ai int
3406 vec_all_le(vector unsigned char __a, vector bool char __b) {
3408 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
3412 // This prototype is deprecated.
3413 static inline __ATTRS_o_ai int
3414 vec_all_le(vector bool char __a, vector unsigned char __b) {
3416 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
3420 // This prototype is deprecated.
3421 static inline __ATTRS_o_ai int
3422 vec_all_le(vector bool char __a, vector bool char __b) {
3424 __builtin_s390_vchlbs((vector unsigned char)__a,
3425 (vector unsigned char)__b, &__cc);
3429 static inline __ATTRS_o_ai int
3430 vec_all_le(vector signed short __a, vector signed short __b) {
3432 __builtin_s390_vchhs(__a, __b, &__cc);
3436 // This prototype is deprecated.
3437 static inline __ATTRS_o_ai int
3438 vec_all_le(vector signed short __a, vector bool short __b) {
3440 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
3444 // This prototype is deprecated.
3445 static inline __ATTRS_o_ai int
3446 vec_all_le(vector bool short __a, vector signed short __b) {
3448 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
3452 static inline __ATTRS_o_ai int
3453 vec_all_le(vector unsigned short __a, vector unsigned short __b) {
3455 __builtin_s390_vchlhs(__a, __b, &__cc);
3459 // This prototype is deprecated.
3460 static inline __ATTRS_o_ai int
3461 vec_all_le(vector unsigned short __a, vector bool short __b) {
3463 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3467 // This prototype is deprecated.
3468 static inline __ATTRS_o_ai int
3469 vec_all_le(vector bool short __a, vector unsigned short __b) {
3471 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3475 // This prototype is deprecated.
3476 static inline __ATTRS_o_ai int
3477 vec_all_le(vector bool short __a, vector bool short __b) {
3479 __builtin_s390_vchlhs((vector unsigned short)__a,
3480 (vector unsigned short)__b, &__cc);
3484 static inline __ATTRS_o_ai int
3485 vec_all_le(vector signed int __a, vector signed int __b) {
3487 __builtin_s390_vchfs(__a, __b, &__cc);
3491 // This prototype is deprecated.
3492 static inline __ATTRS_o_ai int
3493 vec_all_le(vector signed int __a, vector bool int __b) {
3495 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3499 // This prototype is deprecated.
3500 static inline __ATTRS_o_ai int
3501 vec_all_le(vector bool int __a, vector signed int __b) {
3503 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3507 static inline __ATTRS_o_ai int
3508 vec_all_le(vector unsigned int __a, vector unsigned int __b) {
3510 __builtin_s390_vchlfs(__a, __b, &__cc);
3514 // This prototype is deprecated.
3515 static inline __ATTRS_o_ai int
3516 vec_all_le(vector unsigned int __a, vector bool int __b) {
3518 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3522 // This prototype is deprecated.
3523 static inline __ATTRS_o_ai int
3524 vec_all_le(vector bool int __a, vector unsigned int __b) {
3526 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3530 // This prototype is deprecated.
3531 static inline __ATTRS_o_ai int
3532 vec_all_le(vector bool int __a, vector bool int __b) {
3534 __builtin_s390_vchlfs((vector unsigned int)__a,
3535 (vector unsigned int)__b, &__cc);
3539 static inline __ATTRS_o_ai int
3540 vec_all_le(vector signed long long __a, vector signed long long __b) {
3542 __builtin_s390_vchgs(__a, __b, &__cc);
3546 // This prototype is deprecated.
3547 static inline __ATTRS_o_ai int
3548 vec_all_le(vector signed long long __a, vector bool long long __b) {
3550 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3554 // This prototype is deprecated.
3555 static inline __ATTRS_o_ai int
3556 vec_all_le(vector bool long long __a, vector signed long long __b) {
3558 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3562 static inline __ATTRS_o_ai int
3563 vec_all_le(vector unsigned long long __a, vector unsigned long long __b) {
3565 __builtin_s390_vchlgs(__a, __b, &__cc);
3569 // This prototype is deprecated.
3570 static inline __ATTRS_o_ai int
3571 vec_all_le(vector unsigned long long __a, vector bool long long __b) {
3573 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3577 // This prototype is deprecated.
3578 static inline __ATTRS_o_ai int
3579 vec_all_le(vector bool long long __a, vector unsigned long long __b) {
3581 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3585 // This prototype is deprecated.
3586 static inline __ATTRS_o_ai int
3587 vec_all_le(vector bool long long __a, vector bool long long __b) {
3589 __builtin_s390_vchlgs((vector unsigned long long)__a,
3590 (vector unsigned long long)__b, &__cc);
3595 static inline __ATTRS_o_ai int
3596 vec_all_le(vector float __a, vector float __b) {
3598 __builtin_s390_vfchesbs(__b, __a, &__cc);
3603 static inline __ATTRS_o_ai int
3604 vec_all_le(vector double __a, vector double __b) {
3606 __builtin_s390_vfchedbs(__b, __a, &__cc);
3610 /*-- vec_all_lt -------------------------------------------------------------*/
3612 static inline __ATTRS_o_ai int
3613 vec_all_lt(vector signed char __a, vector signed char __b) {
3615 __builtin_s390_vchbs(__b, __a, &__cc);
3619 // This prototype is deprecated.
3620 static inline __ATTRS_o_ai int
3621 vec_all_lt(vector signed char __a, vector bool char __b) {
3623 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3627 // This prototype is deprecated.
3628 static inline __ATTRS_o_ai int
3629 vec_all_lt(vector bool char __a, vector signed char __b) {
3631 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3635 static inline __ATTRS_o_ai int
3636 vec_all_lt(vector unsigned char __a, vector unsigned char __b) {
3638 __builtin_s390_vchlbs(__b, __a, &__cc);
3642 // This prototype is deprecated.
3643 static inline __ATTRS_o_ai int
3644 vec_all_lt(vector unsigned char __a, vector bool char __b) {
3646 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3650 // This prototype is deprecated.
3651 static inline __ATTRS_o_ai int
3652 vec_all_lt(vector bool char __a, vector unsigned char __b) {
3654 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3658 // This prototype is deprecated.
3659 static inline __ATTRS_o_ai int
3660 vec_all_lt(vector bool char __a, vector bool char __b) {
3662 __builtin_s390_vchlbs((vector unsigned char)__b,
3663 (vector unsigned char)__a, &__cc);
3667 static inline __ATTRS_o_ai int
3668 vec_all_lt(vector signed short __a, vector signed short __b) {
3670 __builtin_s390_vchhs(__b, __a, &__cc);
3674 // This prototype is deprecated.
3675 static inline __ATTRS_o_ai int
3676 vec_all_lt(vector signed short __a, vector bool short __b) {
3678 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3682 // This prototype is deprecated.
3683 static inline __ATTRS_o_ai int
3684 vec_all_lt(vector bool short __a, vector signed short __b) {
3686 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3690 static inline __ATTRS_o_ai int
3691 vec_all_lt(vector unsigned short __a, vector unsigned short __b) {
3693 __builtin_s390_vchlhs(__b, __a, &__cc);
3697 // This prototype is deprecated.
3698 static inline __ATTRS_o_ai int
3699 vec_all_lt(vector unsigned short __a, vector bool short __b) {
3701 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3705 // This prototype is deprecated.
3706 static inline __ATTRS_o_ai int
3707 vec_all_lt(vector bool short __a, vector unsigned short __b) {
3709 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3713 // This prototype is deprecated.
3714 static inline __ATTRS_o_ai int
3715 vec_all_lt(vector bool short __a, vector bool short __b) {
3717 __builtin_s390_vchlhs((vector unsigned short)__b,
3718 (vector unsigned short)__a, &__cc);
3722 static inline __ATTRS_o_ai int
3723 vec_all_lt(vector signed int __a, vector signed int __b) {
3725 __builtin_s390_vchfs(__b, __a, &__cc);
3729 // This prototype is deprecated.
3730 static inline __ATTRS_o_ai int
3731 vec_all_lt(vector signed int __a, vector bool int __b) {
3733 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3737 // This prototype is deprecated.
3738 static inline __ATTRS_o_ai int
3739 vec_all_lt(vector bool int __a, vector signed int __b) {
3741 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3745 static inline __ATTRS_o_ai int
3746 vec_all_lt(vector unsigned int __a, vector unsigned int __b) {
3748 __builtin_s390_vchlfs(__b, __a, &__cc);
3752 // This prototype is deprecated.
3753 static inline __ATTRS_o_ai int
3754 vec_all_lt(vector unsigned int __a, vector bool int __b) {
3756 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3760 // This prototype is deprecated.
3761 static inline __ATTRS_o_ai int
3762 vec_all_lt(vector bool int __a, vector unsigned int __b) {
3764 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3768 // This prototype is deprecated.
3769 static inline __ATTRS_o_ai int
3770 vec_all_lt(vector bool int __a, vector bool int __b) {
3772 __builtin_s390_vchlfs((vector unsigned int)__b,
3773 (vector unsigned int)__a, &__cc);
3777 static inline __ATTRS_o_ai int
3778 vec_all_lt(vector signed long long __a, vector signed long long __b) {
3780 __builtin_s390_vchgs(__b, __a, &__cc);
3784 // This prototype is deprecated.
3785 static inline __ATTRS_o_ai int
3786 vec_all_lt(vector signed long long __a, vector bool long long __b) {
3788 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3792 // This prototype is deprecated.
3793 static inline __ATTRS_o_ai int
3794 vec_all_lt(vector bool long long __a, vector signed long long __b) {
3796 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3800 static inline __ATTRS_o_ai int
3801 vec_all_lt(vector unsigned long long __a, vector unsigned long long __b) {
3803 __builtin_s390_vchlgs(__b, __a, &__cc);
3807 // This prototype is deprecated.
3808 static inline __ATTRS_o_ai int
3809 vec_all_lt(vector unsigned long long __a, vector bool long long __b) {
3811 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3815 // This prototype is deprecated.
3816 static inline __ATTRS_o_ai int
3817 vec_all_lt(vector bool long long __a, vector unsigned long long __b) {
3819 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3823 // This prototype is deprecated.
3824 static inline __ATTRS_o_ai int
3825 vec_all_lt(vector bool long long __a, vector bool long long __b) {
3827 __builtin_s390_vchlgs((vector unsigned long long)__b,
3828 (vector unsigned long long)__a, &__cc);
3833 static inline __ATTRS_o_ai int
3834 vec_all_lt(vector float __a, vector float __b) {
3836 __builtin_s390_vfchsbs(__b, __a, &__cc);
3841 static inline __ATTRS_o_ai int
3842 vec_all_lt(vector double __a, vector double __b) {
3844 __builtin_s390_vfchdbs(__b, __a, &__cc);
3848 /*-- vec_all_nge ------------------------------------------------------------*/
3851 static inline __ATTRS_o_ai int
3852 vec_all_nge(vector float __a, vector float __b) {
3854 __builtin_s390_vfchesbs(__a, __b, &__cc);
3859 static inline __ATTRS_o_ai int
3860 vec_all_nge(vector double __a, vector double __b) {
3862 __builtin_s390_vfchedbs(__a, __b, &__cc);
3866 /*-- vec_all_ngt ------------------------------------------------------------*/
3869 static inline __ATTRS_o_ai int
3870 vec_all_ngt(vector float __a, vector float __b) {
3872 __builtin_s390_vfchsbs(__a, __b, &__cc);
3877 static inline __ATTRS_o_ai int
3878 vec_all_ngt(vector double __a, vector double __b) {
3880 __builtin_s390_vfchdbs(__a, __b, &__cc);
3884 /*-- vec_all_nle ------------------------------------------------------------*/
3887 static inline __ATTRS_o_ai int
3888 vec_all_nle(vector float __a, vector float __b) {
3890 __builtin_s390_vfchesbs(__b, __a, &__cc);
3895 static inline __ATTRS_o_ai int
3896 vec_all_nle(vector double __a, vector double __b) {
3898 __builtin_s390_vfchedbs(__b, __a, &__cc);
3902 /*-- vec_all_nlt ------------------------------------------------------------*/
3905 static inline __ATTRS_o_ai int
3906 vec_all_nlt(vector float __a, vector float __b) {
3908 __builtin_s390_vfchsbs(__b, __a, &__cc);
3913 static inline __ATTRS_o_ai int
3914 vec_all_nlt(vector double __a, vector double __b) {
3916 __builtin_s390_vfchdbs(__b, __a, &__cc);
3920 /*-- vec_all_nan ------------------------------------------------------------*/
3923 static inline __ATTRS_o_ai int
3924 vec_all_nan(vector float __a) {
3926 __builtin_s390_vftcisb(__a, 15, &__cc);
3931 static inline __ATTRS_o_ai int
3932 vec_all_nan(vector double __a) {
3934 __builtin_s390_vftcidb(__a, 15, &__cc);
3938 /*-- vec_all_numeric --------------------------------------------------------*/
3941 static inline __ATTRS_o_ai int
3942 vec_all_numeric(vector float __a) {
3944 __builtin_s390_vftcisb(__a, 15, &__cc);
3949 static inline __ATTRS_o_ai int
3950 vec_all_numeric(vector double __a) {
3952 __builtin_s390_vftcidb(__a, 15, &__cc);
3956 /*-- vec_any_eq -------------------------------------------------------------*/
3958 static inline __ATTRS_o_ai int
3959 vec_any_eq(vector signed char __a, vector signed char __b) {
3961 __builtin_s390_vceqbs(__a, __b, &__cc);
3965 // This prototype is deprecated.
3966 static inline __ATTRS_o_ai int
3967 vec_any_eq(vector signed char __a, vector bool char __b) {
3969 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
3973 // This prototype is deprecated.
3974 static inline __ATTRS_o_ai int
3975 vec_any_eq(vector bool char __a, vector signed char __b) {
3977 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
3981 static inline __ATTRS_o_ai int
3982 vec_any_eq(vector unsigned char __a, vector unsigned char __b) {
3984 __builtin_s390_vceqbs((vector signed char)__a,
3985 (vector signed char)__b, &__cc);
3989 // This prototype is deprecated.
3990 static inline __ATTRS_o_ai int
3991 vec_any_eq(vector unsigned char __a, vector bool char __b) {
3993 __builtin_s390_vceqbs((vector signed char)__a,
3994 (vector signed char)__b, &__cc);
3998 // This prototype is deprecated.
3999 static inline __ATTRS_o_ai int
4000 vec_any_eq(vector bool char __a, vector unsigned char __b) {
4002 __builtin_s390_vceqbs((vector signed char)__a,
4003 (vector signed char)__b, &__cc);
4007 static inline __ATTRS_o_ai int
4008 vec_any_eq(vector bool char __a, vector bool char __b) {
4010 __builtin_s390_vceqbs((vector signed char)__a,
4011 (vector signed char)__b, &__cc);
4015 static inline __ATTRS_o_ai int
4016 vec_any_eq(vector signed short __a, vector signed short __b) {
4018 __builtin_s390_vceqhs(__a, __b, &__cc);
4022 // This prototype is deprecated.
4023 static inline __ATTRS_o_ai int
4024 vec_any_eq(vector signed short __a, vector bool short __b) {
4026 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
4030 // This prototype is deprecated.
4031 static inline __ATTRS_o_ai int
4032 vec_any_eq(vector bool short __a, vector signed short __b) {
4034 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
4038 static inline __ATTRS_o_ai int
4039 vec_any_eq(vector unsigned short __a, vector unsigned short __b) {
4041 __builtin_s390_vceqhs((vector signed short)__a,
4042 (vector signed short)__b, &__cc);
4046 // This prototype is deprecated.
4047 static inline __ATTRS_o_ai int
4048 vec_any_eq(vector unsigned short __a, vector bool short __b) {
4050 __builtin_s390_vceqhs((vector signed short)__a,
4051 (vector signed short)__b, &__cc);
4055 // This prototype is deprecated.
4056 static inline __ATTRS_o_ai int
4057 vec_any_eq(vector bool short __a, vector unsigned short __b) {
4059 __builtin_s390_vceqhs((vector signed short)__a,
4060 (vector signed short)__b, &__cc);
4064 static inline __ATTRS_o_ai int
4065 vec_any_eq(vector bool short __a, vector bool short __b) {
4067 __builtin_s390_vceqhs((vector signed short)__a,
4068 (vector signed short)__b, &__cc);
4072 static inline __ATTRS_o_ai int
4073 vec_any_eq(vector signed int __a, vector signed int __b) {
4075 __builtin_s390_vceqfs(__a, __b, &__cc);
4079 // This prototype is deprecated.
4080 static inline __ATTRS_o_ai int
4081 vec_any_eq(vector signed int __a, vector bool int __b) {
4083 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
4087 // This prototype is deprecated.
4088 static inline __ATTRS_o_ai int
4089 vec_any_eq(vector bool int __a, vector signed int __b) {
4091 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
4095 static inline __ATTRS_o_ai int
4096 vec_any_eq(vector unsigned int __a, vector unsigned int __b) {
4098 __builtin_s390_vceqfs((vector signed int)__a,
4099 (vector signed int)__b, &__cc);
4103 // This prototype is deprecated.
4104 static inline __ATTRS_o_ai int
4105 vec_any_eq(vector unsigned int __a, vector bool int __b) {
4107 __builtin_s390_vceqfs((vector signed int)__a,
4108 (vector signed int)__b, &__cc);
4112 // This prototype is deprecated.
4113 static inline __ATTRS_o_ai int
4114 vec_any_eq(vector bool int __a, vector unsigned int __b) {
4116 __builtin_s390_vceqfs((vector signed int)__a,
4117 (vector signed int)__b, &__cc);
4121 static inline __ATTRS_o_ai int
4122 vec_any_eq(vector bool int __a, vector bool int __b) {
4124 __builtin_s390_vceqfs((vector signed int)__a,
4125 (vector signed int)__b, &__cc);
4129 static inline __ATTRS_o_ai int
4130 vec_any_eq(vector signed long long __a, vector signed long long __b) {
4132 __builtin_s390_vceqgs(__a, __b, &__cc);
4136 // This prototype is deprecated.
4137 static inline __ATTRS_o_ai int
4138 vec_any_eq(vector signed long long __a, vector bool long long __b) {
4140 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
4144 // This prototype is deprecated.
4145 static inline __ATTRS_o_ai int
4146 vec_any_eq(vector bool long long __a, vector signed long long __b) {
4148 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
4152 static inline __ATTRS_o_ai int
4153 vec_any_eq(vector unsigned long long __a, vector unsigned long long __b) {
4155 __builtin_s390_vceqgs((vector signed long long)__a,
4156 (vector signed long long)__b, &__cc);
4160 // This prototype is deprecated.
4161 static inline __ATTRS_o_ai int
4162 vec_any_eq(vector unsigned long long __a, vector bool long long __b) {
4164 __builtin_s390_vceqgs((vector signed long long)__a,
4165 (vector signed long long)__b, &__cc);
4169 // This prototype is deprecated.
4170 static inline __ATTRS_o_ai int
4171 vec_any_eq(vector bool long long __a, vector unsigned long long __b) {
4173 __builtin_s390_vceqgs((vector signed long long)__a,
4174 (vector signed long long)__b, &__cc);
4178 static inline __ATTRS_o_ai int
4179 vec_any_eq(vector bool long long __a, vector bool long long __b) {
4181 __builtin_s390_vceqgs((vector signed long long)__a,
4182 (vector signed long long)__b, &__cc);
4187 static inline __ATTRS_o_ai int
4188 vec_any_eq(vector float __a, vector float __b) {
4190 __builtin_s390_vfcesbs(__a, __b, &__cc);
4195 static inline __ATTRS_o_ai int
4196 vec_any_eq(vector double __a, vector double __b) {
4198 __builtin_s390_vfcedbs(__a, __b, &__cc);
4202 /*-- vec_any_ne -------------------------------------------------------------*/
4204 static inline __ATTRS_o_ai int
4205 vec_any_ne(vector signed char __a, vector signed char __b) {
4207 __builtin_s390_vceqbs(__a, __b, &__cc);
4211 // This prototype is deprecated.
4212 static inline __ATTRS_o_ai int
4213 vec_any_ne(vector signed char __a, vector bool char __b) {
4215 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
4219 // This prototype is deprecated.
4220 static inline __ATTRS_o_ai int
4221 vec_any_ne(vector bool char __a, vector signed char __b) {
4223 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
4227 static inline __ATTRS_o_ai int
4228 vec_any_ne(vector unsigned char __a, vector unsigned char __b) {
4230 __builtin_s390_vceqbs((vector signed char)__a,
4231 (vector signed char)__b, &__cc);
4235 // This prototype is deprecated.
4236 static inline __ATTRS_o_ai int
4237 vec_any_ne(vector unsigned char __a, vector bool char __b) {
4239 __builtin_s390_vceqbs((vector signed char)__a,
4240 (vector signed char)__b, &__cc);
4244 // This prototype is deprecated.
4245 static inline __ATTRS_o_ai int
4246 vec_any_ne(vector bool char __a, vector unsigned char __b) {
4248 __builtin_s390_vceqbs((vector signed char)__a,
4249 (vector signed char)__b, &__cc);
4253 static inline __ATTRS_o_ai int
4254 vec_any_ne(vector bool char __a, vector bool char __b) {
4256 __builtin_s390_vceqbs((vector signed char)__a,
4257 (vector signed char)__b, &__cc);
4261 static inline __ATTRS_o_ai int
4262 vec_any_ne(vector signed short __a, vector signed short __b) {
4264 __builtin_s390_vceqhs(__a, __b, &__cc);
4268 // This prototype is deprecated.
4269 static inline __ATTRS_o_ai int
4270 vec_any_ne(vector signed short __a, vector bool short __b) {
4272 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
4276 // This prototype is deprecated.
4277 static inline __ATTRS_o_ai int
4278 vec_any_ne(vector bool short __a, vector signed short __b) {
4280 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
4284 static inline __ATTRS_o_ai int
4285 vec_any_ne(vector unsigned short __a, vector unsigned short __b) {
4287 __builtin_s390_vceqhs((vector signed short)__a,
4288 (vector signed short)__b, &__cc);
4292 // This prototype is deprecated.
4293 static inline __ATTRS_o_ai int
4294 vec_any_ne(vector unsigned short __a, vector bool short __b) {
4296 __builtin_s390_vceqhs((vector signed short)__a,
4297 (vector signed short)__b, &__cc);
4301 // This prototype is deprecated.
4302 static inline __ATTRS_o_ai int
4303 vec_any_ne(vector bool short __a, vector unsigned short __b) {
4305 __builtin_s390_vceqhs((vector signed short)__a,
4306 (vector signed short)__b, &__cc);
4310 static inline __ATTRS_o_ai int
4311 vec_any_ne(vector bool short __a, vector bool short __b) {
4313 __builtin_s390_vceqhs((vector signed short)__a,
4314 (vector signed short)__b, &__cc);
4318 static inline __ATTRS_o_ai int
4319 vec_any_ne(vector signed int __a, vector signed int __b) {
4321 __builtin_s390_vceqfs(__a, __b, &__cc);
4325 // This prototype is deprecated.
4326 static inline __ATTRS_o_ai int
4327 vec_any_ne(vector signed int __a, vector bool int __b) {
4329 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
4333 // This prototype is deprecated.
4334 static inline __ATTRS_o_ai int
4335 vec_any_ne(vector bool int __a, vector signed int __b) {
4337 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
4341 static inline __ATTRS_o_ai int
4342 vec_any_ne(vector unsigned int __a, vector unsigned int __b) {
4344 __builtin_s390_vceqfs((vector signed int)__a,
4345 (vector signed int)__b, &__cc);
4349 // This prototype is deprecated.
4350 static inline __ATTRS_o_ai int
4351 vec_any_ne(vector unsigned int __a, vector bool int __b) {
4353 __builtin_s390_vceqfs((vector signed int)__a,
4354 (vector signed int)__b, &__cc);
4358 // This prototype is deprecated.
4359 static inline __ATTRS_o_ai int
4360 vec_any_ne(vector bool int __a, vector unsigned int __b) {
4362 __builtin_s390_vceqfs((vector signed int)__a,
4363 (vector signed int)__b, &__cc);
4367 static inline __ATTRS_o_ai int
4368 vec_any_ne(vector bool int __a, vector bool int __b) {
4370 __builtin_s390_vceqfs((vector signed int)__a,
4371 (vector signed int)__b, &__cc);
4375 static inline __ATTRS_o_ai int
4376 vec_any_ne(vector signed long long __a, vector signed long long __b) {
4378 __builtin_s390_vceqgs(__a, __b, &__cc);
4382 // This prototype is deprecated.
4383 static inline __ATTRS_o_ai int
4384 vec_any_ne(vector signed long long __a, vector bool long long __b) {
4386 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
4390 // This prototype is deprecated.
4391 static inline __ATTRS_o_ai int
4392 vec_any_ne(vector bool long long __a, vector signed long long __b) {
4394 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
4398 static inline __ATTRS_o_ai int
4399 vec_any_ne(vector unsigned long long __a, vector unsigned long long __b) {
4401 __builtin_s390_vceqgs((vector signed long long)__a,
4402 (vector signed long long)__b, &__cc);
4406 // This prototype is deprecated.
4407 static inline __ATTRS_o_ai int
4408 vec_any_ne(vector unsigned long long __a, vector bool long long __b) {
4410 __builtin_s390_vceqgs((vector signed long long)__a,
4411 (vector signed long long)__b, &__cc);
4415 // This prototype is deprecated.
4416 static inline __ATTRS_o_ai int
4417 vec_any_ne(vector bool long long __a, vector unsigned long long __b) {
4419 __builtin_s390_vceqgs((vector signed long long)__a,
4420 (vector signed long long)__b, &__cc);
4424 static inline __ATTRS_o_ai int
4425 vec_any_ne(vector bool long long __a, vector bool long long __b) {
4427 __builtin_s390_vceqgs((vector signed long long)__a,
4428 (vector signed long long)__b, &__cc);
4433 static inline __ATTRS_o_ai int
4434 vec_any_ne(vector float __a, vector float __b) {
4436 __builtin_s390_vfcesbs(__a, __b, &__cc);
4441 static inline __ATTRS_o_ai int
4442 vec_any_ne(vector double __a, vector double __b) {
4444 __builtin_s390_vfcedbs(__a, __b, &__cc);
4448 /*-- vec_any_ge -------------------------------------------------------------*/
4450 static inline __ATTRS_o_ai int
4451 vec_any_ge(vector signed char __a, vector signed char __b) {
4453 __builtin_s390_vchbs(__b, __a, &__cc);
4457 // This prototype is deprecated.
4458 static inline __ATTRS_o_ai int
4459 vec_any_ge(vector signed char __a, vector bool char __b) {
4461 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
4465 // This prototype is deprecated.
4466 static inline __ATTRS_o_ai int
4467 vec_any_ge(vector bool char __a, vector signed char __b) {
4469 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
4473 static inline __ATTRS_o_ai int
4474 vec_any_ge(vector unsigned char __a, vector unsigned char __b) {
4476 __builtin_s390_vchlbs(__b, __a, &__cc);
4480 // This prototype is deprecated.
4481 static inline __ATTRS_o_ai int
4482 vec_any_ge(vector unsigned char __a, vector bool char __b) {
4484 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
4488 // This prototype is deprecated.
4489 static inline __ATTRS_o_ai int
4490 vec_any_ge(vector bool char __a, vector unsigned char __b) {
4492 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
4496 // This prototype is deprecated.
4497 static inline __ATTRS_o_ai int
4498 vec_any_ge(vector bool char __a, vector bool char __b) {
4500 __builtin_s390_vchlbs((vector unsigned char)__b,
4501 (vector unsigned char)__a, &__cc);
4505 static inline __ATTRS_o_ai int
4506 vec_any_ge(vector signed short __a, vector signed short __b) {
4508 __builtin_s390_vchhs(__b, __a, &__cc);
4512 // This prototype is deprecated.
4513 static inline __ATTRS_o_ai int
4514 vec_any_ge(vector signed short __a, vector bool short __b) {
4516 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
4520 // This prototype is deprecated.
4521 static inline __ATTRS_o_ai int
4522 vec_any_ge(vector bool short __a, vector signed short __b) {
4524 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
4528 static inline __ATTRS_o_ai int
4529 vec_any_ge(vector unsigned short __a, vector unsigned short __b) {
4531 __builtin_s390_vchlhs(__b, __a, &__cc);
4535 // This prototype is deprecated.
4536 static inline __ATTRS_o_ai int
4537 vec_any_ge(vector unsigned short __a, vector bool short __b) {
4539 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
4543 // This prototype is deprecated.
4544 static inline __ATTRS_o_ai int
4545 vec_any_ge(vector bool short __a, vector unsigned short __b) {
4547 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
4551 // This prototype is deprecated.
4552 static inline __ATTRS_o_ai int
4553 vec_any_ge(vector bool short __a, vector bool short __b) {
4555 __builtin_s390_vchlhs((vector unsigned short)__b,
4556 (vector unsigned short)__a, &__cc);
4560 static inline __ATTRS_o_ai int
4561 vec_any_ge(vector signed int __a, vector signed int __b) {
4563 __builtin_s390_vchfs(__b, __a, &__cc);
4567 // This prototype is deprecated.
4568 static inline __ATTRS_o_ai int
4569 vec_any_ge(vector signed int __a, vector bool int __b) {
4571 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
4575 // This prototype is deprecated.
4576 static inline __ATTRS_o_ai int
4577 vec_any_ge(vector bool int __a, vector signed int __b) {
4579 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
4583 static inline __ATTRS_o_ai int
4584 vec_any_ge(vector unsigned int __a, vector unsigned int __b) {
4586 __builtin_s390_vchlfs(__b, __a, &__cc);
4590 // This prototype is deprecated.
4591 static inline __ATTRS_o_ai int
4592 vec_any_ge(vector unsigned int __a, vector bool int __b) {
4594 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
4598 // This prototype is deprecated.
4599 static inline __ATTRS_o_ai int
4600 vec_any_ge(vector bool int __a, vector unsigned int __b) {
4602 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
4606 // This prototype is deprecated.
4607 static inline __ATTRS_o_ai int
4608 vec_any_ge(vector bool int __a, vector bool int __b) {
4610 __builtin_s390_vchlfs((vector unsigned int)__b,
4611 (vector unsigned int)__a, &__cc);
4615 static inline __ATTRS_o_ai int
4616 vec_any_ge(vector signed long long __a, vector signed long long __b) {
4618 __builtin_s390_vchgs(__b, __a, &__cc);
4622 // This prototype is deprecated.
4623 static inline __ATTRS_o_ai int
4624 vec_any_ge(vector signed long long __a, vector bool long long __b) {
4626 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
4630 // This prototype is deprecated.
4631 static inline __ATTRS_o_ai int
4632 vec_any_ge(vector bool long long __a, vector signed long long __b) {
4634 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
4638 static inline __ATTRS_o_ai int
4639 vec_any_ge(vector unsigned long long __a, vector unsigned long long __b) {
4641 __builtin_s390_vchlgs(__b, __a, &__cc);
4645 // This prototype is deprecated.
4646 static inline __ATTRS_o_ai int
4647 vec_any_ge(vector unsigned long long __a, vector bool long long __b) {
4649 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
4653 // This prototype is deprecated.
4654 static inline __ATTRS_o_ai int
4655 vec_any_ge(vector bool long long __a, vector unsigned long long __b) {
4657 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
4661 // This prototype is deprecated.
4662 static inline __ATTRS_o_ai int
4663 vec_any_ge(vector bool long long __a, vector bool long long __b) {
4665 __builtin_s390_vchlgs((vector unsigned long long)__b,
4666 (vector unsigned long long)__a, &__cc);
4671 static inline __ATTRS_o_ai int
4672 vec_any_ge(vector float __a, vector float __b) {
4674 __builtin_s390_vfchesbs(__a, __b, &__cc);
4679 static inline __ATTRS_o_ai int
4680 vec_any_ge(vector double __a, vector double __b) {
4682 __builtin_s390_vfchedbs(__a, __b, &__cc);
4686 /*-- vec_any_gt -------------------------------------------------------------*/
4688 static inline __ATTRS_o_ai int
4689 vec_any_gt(vector signed char __a, vector signed char __b) {
4691 __builtin_s390_vchbs(__a, __b, &__cc);
4695 // This prototype is deprecated.
4696 static inline __ATTRS_o_ai int
4697 vec_any_gt(vector signed char __a, vector bool char __b) {
4699 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4703 // This prototype is deprecated.
4704 static inline __ATTRS_o_ai int
4705 vec_any_gt(vector bool char __a, vector signed char __b) {
4707 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4711 static inline __ATTRS_o_ai int
4712 vec_any_gt(vector unsigned char __a, vector unsigned char __b) {
4714 __builtin_s390_vchlbs(__a, __b, &__cc);
4718 // This prototype is deprecated.
4719 static inline __ATTRS_o_ai int
4720 vec_any_gt(vector unsigned char __a, vector bool char __b) {
4722 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4726 // This prototype is deprecated.
4727 static inline __ATTRS_o_ai int
4728 vec_any_gt(vector bool char __a, vector unsigned char __b) {
4730 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4734 // This prototype is deprecated.
4735 static inline __ATTRS_o_ai int
4736 vec_any_gt(vector bool char __a, vector bool char __b) {
4738 __builtin_s390_vchlbs((vector unsigned char)__a,
4739 (vector unsigned char)__b, &__cc);
4743 static inline __ATTRS_o_ai int
4744 vec_any_gt(vector signed short __a, vector signed short __b) {
4746 __builtin_s390_vchhs(__a, __b, &__cc);
4750 // This prototype is deprecated.
4751 static inline __ATTRS_o_ai int
4752 vec_any_gt(vector signed short __a, vector bool short __b) {
4754 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4758 // This prototype is deprecated.
4759 static inline __ATTRS_o_ai int
4760 vec_any_gt(vector bool short __a, vector signed short __b) {
4762 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
4766 static inline __ATTRS_o_ai int
4767 vec_any_gt(vector unsigned short __a, vector unsigned short __b) {
4769 __builtin_s390_vchlhs(__a, __b, &__cc);
4773 // This prototype is deprecated.
4774 static inline __ATTRS_o_ai int
4775 vec_any_gt(vector unsigned short __a, vector bool short __b) {
4777 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
4781 // This prototype is deprecated.
4782 static inline __ATTRS_o_ai int
4783 vec_any_gt(vector bool short __a, vector unsigned short __b) {
4785 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
4789 // This prototype is deprecated.
4790 static inline __ATTRS_o_ai int
4791 vec_any_gt(vector bool short __a, vector bool short __b) {
4793 __builtin_s390_vchlhs((vector unsigned short)__a,
4794 (vector unsigned short)__b, &__cc);
4798 static inline __ATTRS_o_ai int
4799 vec_any_gt(vector signed int __a, vector signed int __b) {
4801 __builtin_s390_vchfs(__a, __b, &__cc);
4805 // This prototype is deprecated.
4806 static inline __ATTRS_o_ai int
4807 vec_any_gt(vector signed int __a, vector bool int __b) {
4809 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
4813 // This prototype is deprecated.
4814 static inline __ATTRS_o_ai int
4815 vec_any_gt(vector bool int __a, vector signed int __b) {
4817 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
4821 static inline __ATTRS_o_ai int
4822 vec_any_gt(vector unsigned int __a, vector unsigned int __b) {
4824 __builtin_s390_vchlfs(__a, __b, &__cc);
4828 // This prototype is deprecated.
4829 static inline __ATTRS_o_ai int
4830 vec_any_gt(vector unsigned int __a, vector bool int __b) {
4832 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
4836 // This prototype is deprecated.
4837 static inline __ATTRS_o_ai int
4838 vec_any_gt(vector bool int __a, vector unsigned int __b) {
4840 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
4844 // This prototype is deprecated.
4845 static inline __ATTRS_o_ai int
4846 vec_any_gt(vector bool int __a, vector bool int __b) {
4848 __builtin_s390_vchlfs((vector unsigned int)__a,
4849 (vector unsigned int)__b, &__cc);
4853 static inline __ATTRS_o_ai int
4854 vec_any_gt(vector signed long long __a, vector signed long long __b) {
4856 __builtin_s390_vchgs(__a, __b, &__cc);
4860 // This prototype is deprecated.
4861 static inline __ATTRS_o_ai int
4862 vec_any_gt(vector signed long long __a, vector bool long long __b) {
4864 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
4868 // This prototype is deprecated.
4869 static inline __ATTRS_o_ai int
4870 vec_any_gt(vector bool long long __a, vector signed long long __b) {
4872 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
4876 static inline __ATTRS_o_ai int
4877 vec_any_gt(vector unsigned long long __a, vector unsigned long long __b) {
4879 __builtin_s390_vchlgs(__a, __b, &__cc);
4883 // This prototype is deprecated.
4884 static inline __ATTRS_o_ai int
4885 vec_any_gt(vector unsigned long long __a, vector bool long long __b) {
4887 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
4891 // This prototype is deprecated.
4892 static inline __ATTRS_o_ai int
4893 vec_any_gt(vector bool long long __a, vector unsigned long long __b) {
4895 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
4899 // This prototype is deprecated.
4900 static inline __ATTRS_o_ai int
4901 vec_any_gt(vector bool long long __a, vector bool long long __b) {
4903 __builtin_s390_vchlgs((vector unsigned long long)__a,
4904 (vector unsigned long long)__b, &__cc);
4909 static inline __ATTRS_o_ai int
4910 vec_any_gt(vector float __a, vector float __b) {
4912 __builtin_s390_vfchsbs(__a, __b, &__cc);
4917 static inline __ATTRS_o_ai int
4918 vec_any_gt(vector double __a, vector double __b) {
4920 __builtin_s390_vfchdbs(__a, __b, &__cc);
4924 /*-- vec_any_le -------------------------------------------------------------*/
4926 static inline __ATTRS_o_ai int
4927 vec_any_le(vector signed char __a, vector signed char __b) {
4929 __builtin_s390_vchbs(__a, __b, &__cc);
4933 // This prototype is deprecated.
4934 static inline __ATTRS_o_ai int
4935 vec_any_le(vector signed char __a, vector bool char __b) {
4937 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4941 // This prototype is deprecated.
4942 static inline __ATTRS_o_ai int
4943 vec_any_le(vector bool char __a, vector signed char __b) {
4945 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4949 static inline __ATTRS_o_ai int
4950 vec_any_le(vector unsigned char __a, vector unsigned char __b) {
4952 __builtin_s390_vchlbs(__a, __b, &__cc);
4956 // This prototype is deprecated.
4957 static inline __ATTRS_o_ai int
4958 vec_any_le(vector unsigned char __a, vector bool char __b) {
4960 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4964 // This prototype is deprecated.
4965 static inline __ATTRS_o_ai int
4966 vec_any_le(vector bool char __a, vector unsigned char __b) {
4968 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4972 // This prototype is deprecated.
4973 static inline __ATTRS_o_ai int
4974 vec_any_le(vector bool char __a, vector bool char __b) {
4976 __builtin_s390_vchlbs((vector unsigned char)__a,
4977 (vector unsigned char)__b, &__cc);
4981 static inline __ATTRS_o_ai int
4982 vec_any_le(vector signed short __a, vector signed short __b) {
4984 __builtin_s390_vchhs(__a, __b, &__cc);
4988 // This prototype is deprecated.
4989 static inline __ATTRS_o_ai int
4990 vec_any_le(vector signed short __a, vector bool short __b) {
4992 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4996 // This prototype is deprecated.
4997 static inline __ATTRS_o_ai int
4998 vec_any_le(vector bool short __a, vector signed short __b) {
5000 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
5004 static inline __ATTRS_o_ai int
5005 vec_any_le(vector unsigned short __a, vector unsigned short __b) {
5007 __builtin_s390_vchlhs(__a, __b, &__cc);
5011 // This prototype is deprecated.
5012 static inline __ATTRS_o_ai int
5013 vec_any_le(vector unsigned short __a, vector bool short __b) {
5015 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
5019 // This prototype is deprecated.
5020 static inline __ATTRS_o_ai int
5021 vec_any_le(vector bool short __a, vector unsigned short __b) {
5023 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
5027 // This prototype is deprecated.
5028 static inline __ATTRS_o_ai int
5029 vec_any_le(vector bool short __a, vector bool short __b) {
5031 __builtin_s390_vchlhs((vector unsigned short)__a,
5032 (vector unsigned short)__b, &__cc);
5036 static inline __ATTRS_o_ai int
5037 vec_any_le(vector signed int __a, vector signed int __b) {
5039 __builtin_s390_vchfs(__a, __b, &__cc);
5043 // This prototype is deprecated.
5044 static inline __ATTRS_o_ai int
5045 vec_any_le(vector signed int __a, vector bool int __b) {
5047 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
5051 // This prototype is deprecated.
5052 static inline __ATTRS_o_ai int
5053 vec_any_le(vector bool int __a, vector signed int __b) {
5055 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
5059 static inline __ATTRS_o_ai int
5060 vec_any_le(vector unsigned int __a, vector unsigned int __b) {
5062 __builtin_s390_vchlfs(__a, __b, &__cc);
5066 // This prototype is deprecated.
5067 static inline __ATTRS_o_ai int
5068 vec_any_le(vector unsigned int __a, vector bool int __b) {
5070 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
5074 // This prototype is deprecated.
5075 static inline __ATTRS_o_ai int
5076 vec_any_le(vector bool int __a, vector unsigned int __b) {
5078 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
5082 // This prototype is deprecated.
5083 static inline __ATTRS_o_ai int
5084 vec_any_le(vector bool int __a, vector bool int __b) {
5086 __builtin_s390_vchlfs((vector unsigned int)__a,
5087 (vector unsigned int)__b, &__cc);
5091 static inline __ATTRS_o_ai int
5092 vec_any_le(vector signed long long __a, vector signed long long __b) {
5094 __builtin_s390_vchgs(__a, __b, &__cc);
5098 // This prototype is deprecated.
5099 static inline __ATTRS_o_ai int
5100 vec_any_le(vector signed long long __a, vector bool long long __b) {
5102 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
5106 // This prototype is deprecated.
5107 static inline __ATTRS_o_ai int
5108 vec_any_le(vector bool long long __a, vector signed long long __b) {
5110 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
5114 static inline __ATTRS_o_ai int
5115 vec_any_le(vector unsigned long long __a, vector unsigned long long __b) {
5117 __builtin_s390_vchlgs(__a, __b, &__cc);
5121 // This prototype is deprecated.
5122 static inline __ATTRS_o_ai int
5123 vec_any_le(vector unsigned long long __a, vector bool long long __b) {
5125 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
5129 // This prototype is deprecated.
5130 static inline __ATTRS_o_ai int
5131 vec_any_le(vector bool long long __a, vector unsigned long long __b) {
5133 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
5137 // This prototype is deprecated.
5138 static inline __ATTRS_o_ai int
5139 vec_any_le(vector bool long long __a, vector bool long long __b) {
5141 __builtin_s390_vchlgs((vector unsigned long long)__a,
5142 (vector unsigned long long)__b, &__cc);
5147 static inline __ATTRS_o_ai int
5148 vec_any_le(vector float __a, vector float __b) {
5150 __builtin_s390_vfchesbs(__b, __a, &__cc);
5155 static inline __ATTRS_o_ai int
5156 vec_any_le(vector double __a, vector double __b) {
5158 __builtin_s390_vfchedbs(__b, __a, &__cc);
5162 /*-- vec_any_lt -------------------------------------------------------------*/
5164 static inline __ATTRS_o_ai int
5165 vec_any_lt(vector signed char __a, vector signed char __b) {
5167 __builtin_s390_vchbs(__b, __a, &__cc);
5171 // This prototype is deprecated.
5172 static inline __ATTRS_o_ai int
5173 vec_any_lt(vector signed char __a, vector bool char __b) {
5175 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
5179 // This prototype is deprecated.
5180 static inline __ATTRS_o_ai int
5181 vec_any_lt(vector bool char __a, vector signed char __b) {
5183 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
5187 static inline __ATTRS_o_ai int
5188 vec_any_lt(vector unsigned char __a, vector unsigned char __b) {
5190 __builtin_s390_vchlbs(__b, __a, &__cc);
5194 // This prototype is deprecated.
5195 static inline __ATTRS_o_ai int
5196 vec_any_lt(vector unsigned char __a, vector bool char __b) {
5198 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
5202 // This prototype is deprecated.
5203 static inline __ATTRS_o_ai int
5204 vec_any_lt(vector bool char __a, vector unsigned char __b) {
5206 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
5210 // This prototype is deprecated.
5211 static inline __ATTRS_o_ai int
5212 vec_any_lt(vector bool char __a, vector bool char __b) {
5214 __builtin_s390_vchlbs((vector unsigned char)__b,
5215 (vector unsigned char)__a, &__cc);
5219 static inline __ATTRS_o_ai int
5220 vec_any_lt(vector signed short __a, vector signed short __b) {
5222 __builtin_s390_vchhs(__b, __a, &__cc);
5226 // This prototype is deprecated.
5227 static inline __ATTRS_o_ai int
5228 vec_any_lt(vector signed short __a, vector bool short __b) {
5230 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
5234 // This prototype is deprecated.
5235 static inline __ATTRS_o_ai int
5236 vec_any_lt(vector bool short __a, vector signed short __b) {
5238 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
5242 static inline __ATTRS_o_ai int
5243 vec_any_lt(vector unsigned short __a, vector unsigned short __b) {
5245 __builtin_s390_vchlhs(__b, __a, &__cc);
5249 // This prototype is deprecated.
5250 static inline __ATTRS_o_ai int
5251 vec_any_lt(vector unsigned short __a, vector bool short __b) {
5253 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
5257 // This prototype is deprecated.
5258 static inline __ATTRS_o_ai int
5259 vec_any_lt(vector bool short __a, vector unsigned short __b) {
5261 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
5265 // This prototype is deprecated.
5266 static inline __ATTRS_o_ai int
5267 vec_any_lt(vector bool short __a, vector bool short __b) {
5269 __builtin_s390_vchlhs((vector unsigned short)__b,
5270 (vector unsigned short)__a, &__cc);
5274 static inline __ATTRS_o_ai int
5275 vec_any_lt(vector signed int __a, vector signed int __b) {
5277 __builtin_s390_vchfs(__b, __a, &__cc);
5281 // This prototype is deprecated.
5282 static inline __ATTRS_o_ai int
5283 vec_any_lt(vector signed int __a, vector bool int __b) {
5285 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
5289 // This prototype is deprecated.
5290 static inline __ATTRS_o_ai int
5291 vec_any_lt(vector bool int __a, vector signed int __b) {
5293 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
5297 static inline __ATTRS_o_ai int
5298 vec_any_lt(vector unsigned int __a, vector unsigned int __b) {
5300 __builtin_s390_vchlfs(__b, __a, &__cc);
5304 // This prototype is deprecated.
5305 static inline __ATTRS_o_ai int
5306 vec_any_lt(vector unsigned int __a, vector bool int __b) {
5308 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
5312 // This prototype is deprecated.
5313 static inline __ATTRS_o_ai int
5314 vec_any_lt(vector bool int __a, vector unsigned int __b) {
5316 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
5320 // This prototype is deprecated.
5321 static inline __ATTRS_o_ai int
5322 vec_any_lt(vector bool int __a, vector bool int __b) {
5324 __builtin_s390_vchlfs((vector unsigned int)__b,
5325 (vector unsigned int)__a, &__cc);
5329 static inline __ATTRS_o_ai int
5330 vec_any_lt(vector signed long long __a, vector signed long long __b) {
5332 __builtin_s390_vchgs(__b, __a, &__cc);
5336 // This prototype is deprecated.
5337 static inline __ATTRS_o_ai int
5338 vec_any_lt(vector signed long long __a, vector bool long long __b) {
5340 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
5344 // This prototype is deprecated.
5345 static inline __ATTRS_o_ai int
5346 vec_any_lt(vector bool long long __a, vector signed long long __b) {
5348 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
5352 static inline __ATTRS_o_ai int
5353 vec_any_lt(vector unsigned long long __a, vector unsigned long long __b) {
5355 __builtin_s390_vchlgs(__b, __a, &__cc);
5359 // This prototype is deprecated.
5360 static inline __ATTRS_o_ai int
5361 vec_any_lt(vector unsigned long long __a, vector bool long long __b) {
5363 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
5367 // This prototype is deprecated.
5368 static inline __ATTRS_o_ai int
5369 vec_any_lt(vector bool long long __a, vector unsigned long long __b) {
5371 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
5375 // This prototype is deprecated.
5376 static inline __ATTRS_o_ai int
5377 vec_any_lt(vector bool long long __a, vector bool long long __b) {
5379 __builtin_s390_vchlgs((vector unsigned long long)__b,
5380 (vector unsigned long long)__a, &__cc);
5385 static inline __ATTRS_o_ai int
5386 vec_any_lt(vector float __a, vector float __b) {
5388 __builtin_s390_vfchsbs(__b, __a, &__cc);
5393 static inline __ATTRS_o_ai int
5394 vec_any_lt(vector double __a, vector double __b) {
5396 __builtin_s390_vfchdbs(__b, __a, &__cc);
5400 /*-- vec_any_nge ------------------------------------------------------------*/
5403 static inline __ATTRS_o_ai int
5404 vec_any_nge(vector float __a, vector float __b) {
5406 __builtin_s390_vfchesbs(__a, __b, &__cc);
5411 static inline __ATTRS_o_ai int
5412 vec_any_nge(vector double __a, vector double __b) {
5414 __builtin_s390_vfchedbs(__a, __b, &__cc);
5418 /*-- vec_any_ngt ------------------------------------------------------------*/
5421 static inline __ATTRS_o_ai int
5422 vec_any_ngt(vector float __a, vector float __b) {
5424 __builtin_s390_vfchsbs(__a, __b, &__cc);
5429 static inline __ATTRS_o_ai int
5430 vec_any_ngt(vector double __a, vector double __b) {
5432 __builtin_s390_vfchdbs(__a, __b, &__cc);
5436 /*-- vec_any_nle ------------------------------------------------------------*/
5439 static inline __ATTRS_o_ai int
5440 vec_any_nle(vector float __a, vector float __b) {
5442 __builtin_s390_vfchesbs(__b, __a, &__cc);
5447 static inline __ATTRS_o_ai int
5448 vec_any_nle(vector double __a, vector double __b) {
5450 __builtin_s390_vfchedbs(__b, __a, &__cc);
5454 /*-- vec_any_nlt ------------------------------------------------------------*/
5457 static inline __ATTRS_o_ai int
5458 vec_any_nlt(vector float __a, vector float __b) {
5460 __builtin_s390_vfchsbs(__b, __a, &__cc);
5465 static inline __ATTRS_o_ai int
5466 vec_any_nlt(vector double __a, vector double __b) {
5468 __builtin_s390_vfchdbs(__b, __a, &__cc);
5472 /*-- vec_any_nan ------------------------------------------------------------*/
5475 static inline __ATTRS_o_ai int
5476 vec_any_nan(vector float __a) {
5478 __builtin_s390_vftcisb(__a, 15, &__cc);
5483 static inline __ATTRS_o_ai int
5484 vec_any_nan(vector double __a) {
5486 __builtin_s390_vftcidb(__a, 15, &__cc);
5490 /*-- vec_any_numeric --------------------------------------------------------*/
5493 static inline __ATTRS_o_ai int
5494 vec_any_numeric(vector float __a) {
5496 __builtin_s390_vftcisb(__a, 15, &__cc);
5501 static inline __ATTRS_o_ai int
5502 vec_any_numeric(vector double __a) {
5504 __builtin_s390_vftcidb(__a, 15, &__cc);
5508 /*-- vec_andc ---------------------------------------------------------------*/
5510 static inline __ATTRS_o_ai vector bool char
5511 vec_andc(vector bool char __a, vector bool char __b) {
5515 static inline __ATTRS_o_ai vector signed char
5516 vec_andc(vector signed char __a, vector signed char __b) {
5520 // This prototype is deprecated.
5521 static inline __ATTRS_o_ai vector signed char
5522 vec_andc(vector bool char __a, vector signed char __b) {
5526 // This prototype is deprecated.
5527 static inline __ATTRS_o_ai vector signed char
5528 vec_andc(vector signed char __a, vector bool char __b) {
5532 static inline __ATTRS_o_ai vector unsigned char
5533 vec_andc(vector unsigned char __a, vector unsigned char __b) {
5537 // This prototype is deprecated.
5538 static inline __ATTRS_o_ai vector unsigned char
5539 vec_andc(vector bool char __a, vector unsigned char __b) {
5543 // This prototype is deprecated.
5544 static inline __ATTRS_o_ai vector unsigned char
5545 vec_andc(vector unsigned char __a, vector bool char __b) {
5549 static inline __ATTRS_o_ai vector bool short
5550 vec_andc(vector bool short __a, vector bool short __b) {
5554 static inline __ATTRS_o_ai vector signed short
5555 vec_andc(vector signed short __a, vector signed short __b) {
5559 // This prototype is deprecated.
5560 static inline __ATTRS_o_ai vector signed short
5561 vec_andc(vector bool short __a, vector signed short __b) {
5565 // This prototype is deprecated.
5566 static inline __ATTRS_o_ai vector signed short
5567 vec_andc(vector signed short __a, vector bool short __b) {
5571 static inline __ATTRS_o_ai vector unsigned short
5572 vec_andc(vector unsigned short __a, vector unsigned short __b) {
5576 // This prototype is deprecated.
5577 static inline __ATTRS_o_ai vector unsigned short
5578 vec_andc(vector bool short __a, vector unsigned short __b) {
5582 // This prototype is deprecated.
5583 static inline __ATTRS_o_ai vector unsigned short
5584 vec_andc(vector unsigned short __a, vector bool short __b) {
5588 static inline __ATTRS_o_ai vector bool int
5589 vec_andc(vector bool int __a, vector bool int __b) {
5593 static inline __ATTRS_o_ai vector signed int
5594 vec_andc(vector signed int __a, vector signed int __b) {
5598 // This prototype is deprecated.
5599 static inline __ATTRS_o_ai vector signed int
5600 vec_andc(vector bool int __a, vector signed int __b) {
5604 // This prototype is deprecated.
5605 static inline __ATTRS_o_ai vector signed int
5606 vec_andc(vector signed int __a, vector bool int __b) {
5610 static inline __ATTRS_o_ai vector unsigned int
5611 vec_andc(vector unsigned int __a, vector unsigned int __b) {
5615 // This prototype is deprecated.
5616 static inline __ATTRS_o_ai vector unsigned int
5617 vec_andc(vector bool int __a, vector unsigned int __b) {
5621 // This prototype is deprecated.
5622 static inline __ATTRS_o_ai vector unsigned int
5623 vec_andc(vector unsigned int __a, vector bool int __b) {
5627 static inline __ATTRS_o_ai vector bool long long
5628 vec_andc(vector bool long long __a, vector bool long long __b) {
5632 static inline __ATTRS_o_ai vector signed long long
5633 vec_andc(vector signed long long __a, vector signed long long __b) {
5637 // This prototype is deprecated.
5638 static inline __ATTRS_o_ai vector signed long long
5639 vec_andc(vector bool long long __a, vector signed long long __b) {
5643 // This prototype is deprecated.
5644 static inline __ATTRS_o_ai vector signed long long
5645 vec_andc(vector signed long long __a, vector bool long long __b) {
5649 static inline __ATTRS_o_ai vector unsigned long long
5650 vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
5654 // This prototype is deprecated.
5655 static inline __ATTRS_o_ai vector unsigned long long
5656 vec_andc(vector bool long long __a, vector unsigned long long __b) {
5660 // This prototype is deprecated.
5661 static inline __ATTRS_o_ai vector unsigned long long
5662 vec_andc(vector unsigned long long __a, vector bool long long __b) {
5667 static inline __ATTRS_o_ai vector float
5668 vec_andc(vector float __a, vector float __b) {
5669 return (vector float)((vector unsigned int)__a &
5670 ~(vector unsigned int)__b);
5674 static inline __ATTRS_o_ai vector double
5675 vec_andc(vector double __a, vector double __b) {
5676 return (vector double)((vector unsigned long long)__a &
5677 ~(vector unsigned long long)__b);
5680 // This prototype is deprecated.
5681 static inline __ATTRS_o_ai vector double
5682 vec_andc(vector bool long long __a, vector double __b) {
5683 return (vector double)((vector unsigned long long)__a &
5684 ~(vector unsigned long long)__b);
5687 // This prototype is deprecated.
5688 static inline __ATTRS_o_ai vector double
5689 vec_andc(vector double __a, vector bool long long __b) {
5690 return (vector double)((vector unsigned long long)__a &
5691 ~(vector unsigned long long)__b);
5694 /*-- vec_nor ----------------------------------------------------------------*/
5696 static inline __ATTRS_o_ai vector bool char
5697 vec_nor(vector bool char __a, vector bool char __b) {
5698 return ~(__a | __b);
5701 static inline __ATTRS_o_ai vector signed char
5702 vec_nor(vector signed char __a, vector signed char __b) {
5703 return ~(__a | __b);
5706 // This prototype is deprecated.
5707 static inline __ATTRS_o_ai vector signed char
5708 vec_nor(vector bool char __a, vector signed char __b) {
5709 return ~(__a | __b);
5712 // This prototype is deprecated.
5713 static inline __ATTRS_o_ai vector signed char
5714 vec_nor(vector signed char __a, vector bool char __b) {
5715 return ~(__a | __b);
5718 static inline __ATTRS_o_ai vector unsigned char
5719 vec_nor(vector unsigned char __a, vector unsigned char __b) {
5720 return ~(__a | __b);
5723 // This prototype is deprecated.
5724 static inline __ATTRS_o_ai vector unsigned char
5725 vec_nor(vector bool char __a, vector unsigned char __b) {
5726 return ~(__a | __b);
5729 // This prototype is deprecated.
5730 static inline __ATTRS_o_ai vector unsigned char
5731 vec_nor(vector unsigned char __a, vector bool char __b) {
5732 return ~(__a | __b);
5735 static inline __ATTRS_o_ai vector bool short
5736 vec_nor(vector bool short __a, vector bool short __b) {
5737 return ~(__a | __b);
5740 static inline __ATTRS_o_ai vector signed short
5741 vec_nor(vector signed short __a, vector signed short __b) {
5742 return ~(__a | __b);
5745 // This prototype is deprecated.
5746 static inline __ATTRS_o_ai vector signed short
5747 vec_nor(vector bool short __a, vector signed short __b) {
5748 return ~(__a | __b);
5751 // This prototype is deprecated.
5752 static inline __ATTRS_o_ai vector signed short
5753 vec_nor(vector signed short __a, vector bool short __b) {
5754 return ~(__a | __b);
5757 static inline __ATTRS_o_ai vector unsigned short
5758 vec_nor(vector unsigned short __a, vector unsigned short __b) {
5759 return ~(__a | __b);
5762 // This prototype is deprecated.
5763 static inline __ATTRS_o_ai vector unsigned short
5764 vec_nor(vector bool short __a, vector unsigned short __b) {
5765 return ~(__a | __b);
5768 // This prototype is deprecated.
5769 static inline __ATTRS_o_ai vector unsigned short
5770 vec_nor(vector unsigned short __a, vector bool short __b) {
5771 return ~(__a | __b);
5774 static inline __ATTRS_o_ai vector bool int
5775 vec_nor(vector bool int __a, vector bool int __b) {
5776 return ~(__a | __b);
5779 static inline __ATTRS_o_ai vector signed int
5780 vec_nor(vector signed int __a, vector signed int __b) {
5781 return ~(__a | __b);
5784 // This prototype is deprecated.
5785 static inline __ATTRS_o_ai vector signed int
5786 vec_nor(vector bool int __a, vector signed int __b) {
5787 return ~(__a | __b);
5790 // This prototype is deprecated.
5791 static inline __ATTRS_o_ai vector signed int
5792 vec_nor(vector signed int __a, vector bool int __b) {
5793 return ~(__a | __b);
5796 static inline __ATTRS_o_ai vector unsigned int
5797 vec_nor(vector unsigned int __a, vector unsigned int __b) {
5798 return ~(__a | __b);
5801 // This prototype is deprecated.
5802 static inline __ATTRS_o_ai vector unsigned int
5803 vec_nor(vector bool int __a, vector unsigned int __b) {
5804 return ~(__a | __b);
5807 // This prototype is deprecated.
5808 static inline __ATTRS_o_ai vector unsigned int
5809 vec_nor(vector unsigned int __a, vector bool int __b) {
5810 return ~(__a | __b);
5813 static inline __ATTRS_o_ai vector bool long long
5814 vec_nor(vector bool long long __a, vector bool long long __b) {
5815 return ~(__a | __b);
5818 static inline __ATTRS_o_ai vector signed long long
5819 vec_nor(vector signed long long __a, vector signed long long __b) {
5820 return ~(__a | __b);
5823 // This prototype is deprecated.
5824 static inline __ATTRS_o_ai vector signed long long
5825 vec_nor(vector bool long long __a, vector signed long long __b) {
5826 return ~(__a | __b);
5829 // This prototype is deprecated.
5830 static inline __ATTRS_o_ai vector signed long long
5831 vec_nor(vector signed long long __a, vector bool long long __b) {
5832 return ~(__a | __b);
5835 static inline __ATTRS_o_ai vector unsigned long long
5836 vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
5837 return ~(__a | __b);
5840 // This prototype is deprecated.
5841 static inline __ATTRS_o_ai vector unsigned long long
5842 vec_nor(vector bool long long __a, vector unsigned long long __b) {
5843 return ~(__a | __b);
5846 // This prototype is deprecated.
5847 static inline __ATTRS_o_ai vector unsigned long long
5848 vec_nor(vector unsigned long long __a, vector bool long long __b) {
5849 return ~(__a | __b);
5853 static inline __ATTRS_o_ai vector float
5854 vec_nor(vector float __a, vector float __b) {
5855 return (vector float)~((vector unsigned int)__a |
5856 (vector unsigned int)__b);
5860 static inline __ATTRS_o_ai vector double
5861 vec_nor(vector double __a, vector double __b) {
5862 return (vector double)~((vector unsigned long long)__a |
5863 (vector unsigned long long)__b);
5866 // This prototype is deprecated.
5867 static inline __ATTRS_o_ai vector double
5868 vec_nor(vector bool long long __a, vector double __b) {
5869 return (vector double)~((vector unsigned long long)__a |
5870 (vector unsigned long long)__b);
5873 // This prototype is deprecated.
5874 static inline __ATTRS_o_ai vector double
5875 vec_nor(vector double __a, vector bool long long __b) {
5876 return (vector double)~((vector unsigned long long)__a |
5877 (vector unsigned long long)__b);
5880 /*-- vec_orc ----------------------------------------------------------------*/
5883 static inline __ATTRS_o_ai vector bool char
5884 vec_orc(vector bool char __a, vector bool char __b) {
5888 static inline __ATTRS_o_ai vector signed char
5889 vec_orc(vector signed char __a, vector signed char __b) {
5893 static inline __ATTRS_o_ai vector unsigned char
5894 vec_orc(vector unsigned char __a, vector unsigned char __b) {
5898 static inline __ATTRS_o_ai vector bool short
5899 vec_orc(vector bool short __a, vector bool short __b) {
5903 static inline __ATTRS_o_ai vector signed short
5904 vec_orc(vector signed short __a, vector signed short __b) {
5908 static inline __ATTRS_o_ai vector unsigned short
5909 vec_orc(vector unsigned short __a, vector unsigned short __b) {
5913 static inline __ATTRS_o_ai vector bool int
5914 vec_orc(vector bool int __a, vector bool int __b) {
5918 static inline __ATTRS_o_ai vector signed int
5919 vec_orc(vector signed int __a, vector signed int __b) {
5923 static inline __ATTRS_o_ai vector unsigned int
5924 vec_orc(vector unsigned int __a, vector unsigned int __b) {
5928 static inline __ATTRS_o_ai vector bool long long
5929 vec_orc(vector bool long long __a, vector bool long long __b) {
5933 static inline __ATTRS_o_ai vector signed long long
5934 vec_orc(vector signed long long __a, vector signed long long __b) {
5938 static inline __ATTRS_o_ai vector unsigned long long
5939 vec_orc(vector unsigned long long __a, vector unsigned long long __b) {
5943 static inline __ATTRS_o_ai vector float
5944 vec_orc(vector float __a, vector float __b) {
5945 return (vector float)((vector unsigned int)__a |
5946 ~(vector unsigned int)__b);
5949 static inline __ATTRS_o_ai vector double
5950 vec_orc(vector double __a, vector double __b) {
5951 return (vector double)((vector unsigned long long)__a |
5952 ~(vector unsigned long long)__b);
5956 /*-- vec_nand ---------------------------------------------------------------*/
5959 static inline __ATTRS_o_ai vector bool char
5960 vec_nand(vector bool char __a, vector bool char __b) {
5961 return ~(__a & __b);
5964 static inline __ATTRS_o_ai vector signed char
5965 vec_nand(vector signed char __a, vector signed char __b) {
5966 return ~(__a & __b);
5969 static inline __ATTRS_o_ai vector unsigned char
5970 vec_nand(vector unsigned char __a, vector unsigned char __b) {
5971 return ~(__a & __b);
5974 static inline __ATTRS_o_ai vector bool short
5975 vec_nand(vector bool short __a, vector bool short __b) {
5976 return ~(__a & __b);
5979 static inline __ATTRS_o_ai vector signed short
5980 vec_nand(vector signed short __a, vector signed short __b) {
5981 return ~(__a & __b);
5984 static inline __ATTRS_o_ai vector unsigned short
5985 vec_nand(vector unsigned short __a, vector unsigned short __b) {
5986 return ~(__a & __b);
5989 static inline __ATTRS_o_ai vector bool int
5990 vec_nand(vector bool int __a, vector bool int __b) {
5991 return ~(__a & __b);
5994 static inline __ATTRS_o_ai vector signed int
5995 vec_nand(vector signed int __a, vector signed int __b) {
5996 return ~(__a & __b);
5999 static inline __ATTRS_o_ai vector unsigned int
6000 vec_nand(vector unsigned int __a, vector unsigned int __b) {
6001 return ~(__a & __b);
6004 static inline __ATTRS_o_ai vector bool long long
6005 vec_nand(vector bool long long __a, vector bool long long __b) {
6006 return ~(__a & __b);
6009 static inline __ATTRS_o_ai vector signed long long
6010 vec_nand(vector signed long long __a, vector signed long long __b) {
6011 return ~(__a & __b);
6014 static inline __ATTRS_o_ai vector unsigned long long
6015 vec_nand(vector unsigned long long __a, vector unsigned long long __b) {
6016 return ~(__a & __b);
6019 static inline __ATTRS_o_ai vector float
6020 vec_nand(vector float __a, vector float __b) {
6021 return (vector float)~((vector unsigned int)__a &
6022 (vector unsigned int)__b);
6025 static inline __ATTRS_o_ai vector double
6026 vec_nand(vector double __a, vector double __b) {
6027 return (vector double)~((vector unsigned long long)__a &
6028 (vector unsigned long long)__b);
6032 /*-- vec_eqv ----------------------------------------------------------------*/
6035 static inline __ATTRS_o_ai vector bool char
6036 vec_eqv(vector bool char __a, vector bool char __b) {
6037 return ~(__a ^ __b);
6040 static inline __ATTRS_o_ai vector signed char
6041 vec_eqv(vector signed char __a, vector signed char __b) {
6042 return ~(__a ^ __b);
6045 static inline __ATTRS_o_ai vector unsigned char
6046 vec_eqv(vector unsigned char __a, vector unsigned char __b) {
6047 return ~(__a ^ __b);
6050 static inline __ATTRS_o_ai vector bool short
6051 vec_eqv(vector bool short __a, vector bool short __b) {
6052 return ~(__a ^ __b);
6055 static inline __ATTRS_o_ai vector signed short
6056 vec_eqv(vector signed short __a, vector signed short __b) {
6057 return ~(__a ^ __b);
6060 static inline __ATTRS_o_ai vector unsigned short
6061 vec_eqv(vector unsigned short __a, vector unsigned short __b) {
6062 return ~(__a ^ __b);
6065 static inline __ATTRS_o_ai vector bool int
6066 vec_eqv(vector bool int __a, vector bool int __b) {
6067 return ~(__a ^ __b);
6070 static inline __ATTRS_o_ai vector signed int
6071 vec_eqv(vector signed int __a, vector signed int __b) {
6072 return ~(__a ^ __b);
6075 static inline __ATTRS_o_ai vector unsigned int
6076 vec_eqv(vector unsigned int __a, vector unsigned int __b) {
6077 return ~(__a ^ __b);
6080 static inline __ATTRS_o_ai vector bool long long
6081 vec_eqv(vector bool long long __a, vector bool long long __b) {
6082 return ~(__a ^ __b);
6085 static inline __ATTRS_o_ai vector signed long long
6086 vec_eqv(vector signed long long __a, vector signed long long __b) {
6087 return ~(__a ^ __b);
6090 static inline __ATTRS_o_ai vector unsigned long long
6091 vec_eqv(vector unsigned long long __a, vector unsigned long long __b) {
6092 return ~(__a ^ __b);
6095 static inline __ATTRS_o_ai vector float
6096 vec_eqv(vector float __a, vector float __b) {
6097 return (vector float)~((vector unsigned int)__a ^
6098 (vector unsigned int)__b);
6101 static inline __ATTRS_o_ai vector double
6102 vec_eqv(vector double __a, vector double __b) {
6103 return (vector double)~((vector unsigned long long)__a ^
6104 (vector unsigned long long)__b);
6108 /*-- vec_cntlz --------------------------------------------------------------*/
6110 static inline __ATTRS_o_ai vector unsigned char
6111 vec_cntlz(vector signed char __a) {
6112 return __builtin_s390_vclzb((vector unsigned char)__a);
6115 static inline __ATTRS_o_ai vector unsigned char
6116 vec_cntlz(vector unsigned char __a) {
6117 return __builtin_s390_vclzb(__a);
6120 static inline __ATTRS_o_ai vector unsigned short
6121 vec_cntlz(vector signed short __a) {
6122 return __builtin_s390_vclzh((vector unsigned short)__a);
6125 static inline __ATTRS_o_ai vector unsigned short
6126 vec_cntlz(vector unsigned short __a) {
6127 return __builtin_s390_vclzh(__a);
6130 static inline __ATTRS_o_ai vector unsigned int
6131 vec_cntlz(vector signed int __a) {
6132 return __builtin_s390_vclzf((vector unsigned int)__a);
6135 static inline __ATTRS_o_ai vector unsigned int
6136 vec_cntlz(vector unsigned int __a) {
6137 return __builtin_s390_vclzf(__a);
6140 static inline __ATTRS_o_ai vector unsigned long long
6141 vec_cntlz(vector signed long long __a) {
6142 return __builtin_s390_vclzg((vector unsigned long long)__a);
6145 static inline __ATTRS_o_ai vector unsigned long long
6146 vec_cntlz(vector unsigned long long __a) {
6147 return __builtin_s390_vclzg(__a);
6150 /*-- vec_cnttz --------------------------------------------------------------*/
6152 static inline __ATTRS_o_ai vector unsigned char
6153 vec_cnttz(vector signed char __a) {
6154 return __builtin_s390_vctzb((vector unsigned char)__a);
6157 static inline __ATTRS_o_ai vector unsigned char
6158 vec_cnttz(vector unsigned char __a) {
6159 return __builtin_s390_vctzb(__a);
6162 static inline __ATTRS_o_ai vector unsigned short
6163 vec_cnttz(vector signed short __a) {
6164 return __builtin_s390_vctzh((vector unsigned short)__a);
6167 static inline __ATTRS_o_ai vector unsigned short
6168 vec_cnttz(vector unsigned short __a) {
6169 return __builtin_s390_vctzh(__a);
6172 static inline __ATTRS_o_ai vector unsigned int
6173 vec_cnttz(vector signed int __a) {
6174 return __builtin_s390_vctzf((vector unsigned int)__a);
6177 static inline __ATTRS_o_ai vector unsigned int
6178 vec_cnttz(vector unsigned int __a) {
6179 return __builtin_s390_vctzf(__a);
6182 static inline __ATTRS_o_ai vector unsigned long long
6183 vec_cnttz(vector signed long long __a) {
6184 return __builtin_s390_vctzg((vector unsigned long long)__a);
6187 static inline __ATTRS_o_ai vector unsigned long long
6188 vec_cnttz(vector unsigned long long __a) {
6189 return __builtin_s390_vctzg(__a);
6192 /*-- vec_popcnt -------------------------------------------------------------*/
6194 static inline __ATTRS_o_ai vector unsigned char
6195 vec_popcnt(vector signed char __a) {
6196 return __builtin_s390_vpopctb((vector unsigned char)__a);
6199 static inline __ATTRS_o_ai vector unsigned char
6200 vec_popcnt(vector unsigned char __a) {
6201 return __builtin_s390_vpopctb(__a);
6204 static inline __ATTRS_o_ai vector unsigned short
6205 vec_popcnt(vector signed short __a) {
6206 return __builtin_s390_vpopcth((vector unsigned short)__a);
6209 static inline __ATTRS_o_ai vector unsigned short
6210 vec_popcnt(vector unsigned short __a) {
6211 return __builtin_s390_vpopcth(__a);
6214 static inline __ATTRS_o_ai vector unsigned int
6215 vec_popcnt(vector signed int __a) {
6216 return __builtin_s390_vpopctf((vector unsigned int)__a);
6219 static inline __ATTRS_o_ai vector unsigned int
6220 vec_popcnt(vector unsigned int __a) {
6221 return __builtin_s390_vpopctf(__a);
6224 static inline __ATTRS_o_ai vector unsigned long long
6225 vec_popcnt(vector signed long long __a) {
6226 return __builtin_s390_vpopctg((vector unsigned long long)__a);
6229 static inline __ATTRS_o_ai vector unsigned long long
6230 vec_popcnt(vector unsigned long long __a) {
6231 return __builtin_s390_vpopctg(__a);
6234 /*-- vec_rl -----------------------------------------------------------------*/
6236 static inline __ATTRS_o_ai vector signed char
6237 vec_rl(vector signed char __a, vector unsigned char __b) {
6238 return (vector signed char)__builtin_s390_verllvb(
6239 (vector unsigned char)__a, __b);
6242 static inline __ATTRS_o_ai vector unsigned char
6243 vec_rl(vector unsigned char __a, vector unsigned char __b) {
6244 return __builtin_s390_verllvb(__a, __b);
6247 static inline __ATTRS_o_ai vector signed short
6248 vec_rl(vector signed short __a, vector unsigned short __b) {
6249 return (vector signed short)__builtin_s390_verllvh(
6250 (vector unsigned short)__a, __b);
6253 static inline __ATTRS_o_ai vector unsigned short
6254 vec_rl(vector unsigned short __a, vector unsigned short __b) {
6255 return __builtin_s390_verllvh(__a, __b);
6258 static inline __ATTRS_o_ai vector signed int
6259 vec_rl(vector signed int __a, vector unsigned int __b) {
6260 return (vector signed int)__builtin_s390_verllvf(
6261 (vector unsigned int)__a, __b);
6264 static inline __ATTRS_o_ai vector unsigned int
6265 vec_rl(vector unsigned int __a, vector unsigned int __b) {
6266 return __builtin_s390_verllvf(__a, __b);
6269 static inline __ATTRS_o_ai vector signed long long
6270 vec_rl(vector signed long long __a, vector unsigned long long __b) {
6271 return (vector signed long long)__builtin_s390_verllvg(
6272 (vector unsigned long long)__a, __b);
6275 static inline __ATTRS_o_ai vector unsigned long long
6276 vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
6277 return __builtin_s390_verllvg(__a, __b);
6280 /*-- vec_rli ----------------------------------------------------------------*/
6282 static inline __ATTRS_o_ai vector signed char
6283 vec_rli(vector signed char __a, unsigned long __b) {
6284 return (vector signed char)__builtin_s390_verllb(
6285 (vector unsigned char)__a, (int)__b);
6288 static inline __ATTRS_o_ai vector unsigned char
6289 vec_rli(vector unsigned char __a, unsigned long __b) {
6290 return __builtin_s390_verllb(__a, (int)__b);
6293 static inline __ATTRS_o_ai vector signed short
6294 vec_rli(vector signed short __a, unsigned long __b) {
6295 return (vector signed short)__builtin_s390_verllh(
6296 (vector unsigned short)__a, (int)__b);
6299 static inline __ATTRS_o_ai vector unsigned short
6300 vec_rli(vector unsigned short __a, unsigned long __b) {
6301 return __builtin_s390_verllh(__a, (int)__b);
6304 static inline __ATTRS_o_ai vector signed int
6305 vec_rli(vector signed int __a, unsigned long __b) {
6306 return (vector signed int)__builtin_s390_verllf(
6307 (vector unsigned int)__a, (int)__b);
6310 static inline __ATTRS_o_ai vector unsigned int
6311 vec_rli(vector unsigned int __a, unsigned long __b) {
6312 return __builtin_s390_verllf(__a, (int)__b);
6315 static inline __ATTRS_o_ai vector signed long long
6316 vec_rli(vector signed long long __a, unsigned long __b) {
6317 return (vector signed long long)__builtin_s390_verllg(
6318 (vector unsigned long long)__a, (int)__b);
6321 static inline __ATTRS_o_ai vector unsigned long long
6322 vec_rli(vector unsigned long long __a, unsigned long __b) {
6323 return __builtin_s390_verllg(__a, (int)__b);
6326 /*-- vec_rl_mask ------------------------------------------------------------*/
6328 extern __ATTRS_o vector signed char
6329 vec_rl_mask(vector signed char __a, vector unsigned char __b,
6330 unsigned char __c) __constant(__c);
6332 extern __ATTRS_o vector unsigned char
6333 vec_rl_mask(vector unsigned char __a, vector unsigned char __b,
6334 unsigned char __c) __constant(__c);
6336 extern __ATTRS_o vector signed short
6337 vec_rl_mask(vector signed short __a, vector unsigned short __b,
6338 unsigned char __c) __constant(__c);
6340 extern __ATTRS_o vector unsigned short
6341 vec_rl_mask(vector unsigned short __a, vector unsigned short __b,
6342 unsigned char __c) __constant(__c);
6344 extern __ATTRS_o vector signed int
6345 vec_rl_mask(vector signed int __a, vector unsigned int __b,
6346 unsigned char __c) __constant(__c);
6348 extern __ATTRS_o vector unsigned int
6349 vec_rl_mask(vector unsigned int __a, vector unsigned int __b,
6350 unsigned char __c) __constant(__c);
6352 extern __ATTRS_o vector signed long long
6353 vec_rl_mask(vector signed long long __a, vector unsigned long long __b,
6354 unsigned char __c) __constant(__c);
6356 extern __ATTRS_o vector unsigned long long
6357 vec_rl_mask(vector unsigned long long __a, vector unsigned long long __b,
6358 unsigned char __c) __constant(__c);
6360 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
6362 vector unsigned char __res; \
6363 vector unsigned char __x = (vector unsigned char)(X); \
6364 vector unsigned char __y = (vector unsigned char)(Y); \
6365 switch (sizeof ((X)[0])) { \
6366 case 1: __res = (vector unsigned char) __builtin_s390_verimb( \
6367 (vector unsigned char)__x, (vector unsigned char)__x, \
6368 (vector unsigned char)__y, (Z)); break; \
6369 case 2: __res = (vector unsigned char) __builtin_s390_verimh( \
6370 (vector unsigned short)__x, (vector unsigned short)__x, \
6371 (vector unsigned short)__y, (Z)); break; \
6372 case 4: __res = (vector unsigned char) __builtin_s390_verimf( \
6373 (vector unsigned int)__x, (vector unsigned int)__x, \
6374 (vector unsigned int)__y, (Z)); break; \
6375 default: __res = (vector unsigned char) __builtin_s390_verimg( \
6376 (vector unsigned long long)__x, (vector unsigned long long)__x, \
6377 (vector unsigned long long)__y, (Z)); break; \
6380 /*-- vec_sll ----------------------------------------------------------------*/
6382 static inline __ATTRS_o_ai vector signed char
6383 vec_sll(vector signed char __a, vector unsigned char __b) {
6384 return (vector signed char)__builtin_s390_vsl(
6385 (vector unsigned char)__a, __b);
6388 // This prototype is deprecated.
6389 static inline __ATTRS_o_ai vector signed char
6390 vec_sll(vector signed char __a, vector unsigned short __b) {
6391 return (vector signed char)__builtin_s390_vsl(
6392 (vector unsigned char)__a, (vector unsigned char)__b);
6395 // This prototype is deprecated.
6396 static inline __ATTRS_o_ai vector signed char
6397 vec_sll(vector signed char __a, vector unsigned int __b) {
6398 return (vector signed char)__builtin_s390_vsl(
6399 (vector unsigned char)__a, (vector unsigned char)__b);
6402 // This prototype is deprecated.
6403 static inline __ATTRS_o_ai vector bool char
6404 vec_sll(vector bool char __a, vector unsigned char __b) {
6405 return (vector bool char)__builtin_s390_vsl(
6406 (vector unsigned char)__a, __b);
6409 // This prototype is deprecated.
6410 static inline __ATTRS_o_ai vector bool char
6411 vec_sll(vector bool char __a, vector unsigned short __b) {
6412 return (vector bool char)__builtin_s390_vsl(
6413 (vector unsigned char)__a, (vector unsigned char)__b);
6416 // This prototype is deprecated.
6417 static inline __ATTRS_o_ai vector bool char
6418 vec_sll(vector bool char __a, vector unsigned int __b) {
6419 return (vector bool char)__builtin_s390_vsl(
6420 (vector unsigned char)__a, (vector unsigned char)__b);
6423 static inline __ATTRS_o_ai vector unsigned char
6424 vec_sll(vector unsigned char __a, vector unsigned char __b) {
6425 return __builtin_s390_vsl(__a, __b);
6428 // This prototype is deprecated.
6429 static inline __ATTRS_o_ai vector unsigned char
6430 vec_sll(vector unsigned char __a, vector unsigned short __b) {
6431 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6434 // This prototype is deprecated.
6435 static inline __ATTRS_o_ai vector unsigned char
6436 vec_sll(vector unsigned char __a, vector unsigned int __b) {
6437 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6440 static inline __ATTRS_o_ai vector signed short
6441 vec_sll(vector signed short __a, vector unsigned char __b) {
6442 return (vector signed short)__builtin_s390_vsl(
6443 (vector unsigned char)__a, __b);
6446 // This prototype is deprecated.
6447 static inline __ATTRS_o_ai vector signed short
6448 vec_sll(vector signed short __a, vector unsigned short __b) {
6449 return (vector signed short)__builtin_s390_vsl(
6450 (vector unsigned char)__a, (vector unsigned char)__b);
6453 // This prototype is deprecated.
6454 static inline __ATTRS_o_ai vector signed short
6455 vec_sll(vector signed short __a, vector unsigned int __b) {
6456 return (vector signed short)__builtin_s390_vsl(
6457 (vector unsigned char)__a, (vector unsigned char)__b);
6460 // This prototype is deprecated.
6461 static inline __ATTRS_o_ai vector bool short
6462 vec_sll(vector bool short __a, vector unsigned char __b) {
6463 return (vector bool short)__builtin_s390_vsl(
6464 (vector unsigned char)__a, __b);
6467 // This prototype is deprecated.
6468 static inline __ATTRS_o_ai vector bool short
6469 vec_sll(vector bool short __a, vector unsigned short __b) {
6470 return (vector bool short)__builtin_s390_vsl(
6471 (vector unsigned char)__a, (vector unsigned char)__b);
6474 // This prototype is deprecated.
6475 static inline __ATTRS_o_ai vector bool short
6476 vec_sll(vector bool short __a, vector unsigned int __b) {
6477 return (vector bool short)__builtin_s390_vsl(
6478 (vector unsigned char)__a, (vector unsigned char)__b);
6481 static inline __ATTRS_o_ai vector unsigned short
6482 vec_sll(vector unsigned short __a, vector unsigned char __b) {
6483 return (vector unsigned short)__builtin_s390_vsl(
6484 (vector unsigned char)__a, __b);
6487 // This prototype is deprecated.
6488 static inline __ATTRS_o_ai vector unsigned short
6489 vec_sll(vector unsigned short __a, vector unsigned short __b) {
6490 return (vector unsigned short)__builtin_s390_vsl(
6491 (vector unsigned char)__a, (vector unsigned char)__b);
6494 // This prototype is deprecated.
6495 static inline __ATTRS_o_ai vector unsigned short
6496 vec_sll(vector unsigned short __a, vector unsigned int __b) {
6497 return (vector unsigned short)__builtin_s390_vsl(
6498 (vector unsigned char)__a, (vector unsigned char)__b);
6501 static inline __ATTRS_o_ai vector signed int
6502 vec_sll(vector signed int __a, vector unsigned char __b) {
6503 return (vector signed int)__builtin_s390_vsl(
6504 (vector unsigned char)__a, __b);
6507 // This prototype is deprecated.
6508 static inline __ATTRS_o_ai vector signed int
6509 vec_sll(vector signed int __a, vector unsigned short __b) {
6510 return (vector signed int)__builtin_s390_vsl(
6511 (vector unsigned char)__a, (vector unsigned char)__b);
6514 // This prototype is deprecated.
6515 static inline __ATTRS_o_ai vector signed int
6516 vec_sll(vector signed int __a, vector unsigned int __b) {
6517 return (vector signed int)__builtin_s390_vsl(
6518 (vector unsigned char)__a, (vector unsigned char)__b);
6521 // This prototype is deprecated.
6522 static inline __ATTRS_o_ai vector bool int
6523 vec_sll(vector bool int __a, vector unsigned char __b) {
6524 return (vector bool int)__builtin_s390_vsl(
6525 (vector unsigned char)__a, __b);
6528 // This prototype is deprecated.
6529 static inline __ATTRS_o_ai vector bool int
6530 vec_sll(vector bool int __a, vector unsigned short __b) {
6531 return (vector bool int)__builtin_s390_vsl(
6532 (vector unsigned char)__a, (vector unsigned char)__b);
6535 // This prototype is deprecated.
6536 static inline __ATTRS_o_ai vector bool int
6537 vec_sll(vector bool int __a, vector unsigned int __b) {
6538 return (vector bool int)__builtin_s390_vsl(
6539 (vector unsigned char)__a, (vector unsigned char)__b);
6542 static inline __ATTRS_o_ai vector unsigned int
6543 vec_sll(vector unsigned int __a, vector unsigned char __b) {
6544 return (vector unsigned int)__builtin_s390_vsl(
6545 (vector unsigned char)__a, __b);
6548 // This prototype is deprecated.
6549 static inline __ATTRS_o_ai vector unsigned int
6550 vec_sll(vector unsigned int __a, vector unsigned short __b) {
6551 return (vector unsigned int)__builtin_s390_vsl(
6552 (vector unsigned char)__a, (vector unsigned char)__b);
6555 // This prototype is deprecated.
6556 static inline __ATTRS_o_ai vector unsigned int
6557 vec_sll(vector unsigned int __a, vector unsigned int __b) {
6558 return (vector unsigned int)__builtin_s390_vsl(
6559 (vector unsigned char)__a, (vector unsigned char)__b);
6562 static inline __ATTRS_o_ai vector signed long long
6563 vec_sll(vector signed long long __a, vector unsigned char __b) {
6564 return (vector signed long long)__builtin_s390_vsl(
6565 (vector unsigned char)__a, __b);
6568 // This prototype is deprecated.
6569 static inline __ATTRS_o_ai vector signed long long
6570 vec_sll(vector signed long long __a, vector unsigned short __b) {
6571 return (vector signed long long)__builtin_s390_vsl(
6572 (vector unsigned char)__a, (vector unsigned char)__b);
6575 // This prototype is deprecated.
6576 static inline __ATTRS_o_ai vector signed long long
6577 vec_sll(vector signed long long __a, vector unsigned int __b) {
6578 return (vector signed long long)__builtin_s390_vsl(
6579 (vector unsigned char)__a, (vector unsigned char)__b);
6582 // This prototype is deprecated.
6583 static inline __ATTRS_o_ai vector bool long long
6584 vec_sll(vector bool long long __a, vector unsigned char __b) {
6585 return (vector bool long long)__builtin_s390_vsl(
6586 (vector unsigned char)__a, __b);
6589 // This prototype is deprecated.
6590 static inline __ATTRS_o_ai vector bool long long
6591 vec_sll(vector bool long long __a, vector unsigned short __b) {
6592 return (vector bool long long)__builtin_s390_vsl(
6593 (vector unsigned char)__a, (vector unsigned char)__b);
6596 // This prototype is deprecated.
6597 static inline __ATTRS_o_ai vector bool long long
6598 vec_sll(vector bool long long __a, vector unsigned int __b) {
6599 return (vector bool long long)__builtin_s390_vsl(
6600 (vector unsigned char)__a, (vector unsigned char)__b);
6603 static inline __ATTRS_o_ai vector unsigned long long
6604 vec_sll(vector unsigned long long __a, vector unsigned char __b) {
6605 return (vector unsigned long long)__builtin_s390_vsl(
6606 (vector unsigned char)__a, __b);
6609 // This prototype is deprecated.
6610 static inline __ATTRS_o_ai vector unsigned long long
6611 vec_sll(vector unsigned long long __a, vector unsigned short __b) {
6612 return (vector unsigned long long)__builtin_s390_vsl(
6613 (vector unsigned char)__a, (vector unsigned char)__b);
6616 // This prototype is deprecated.
6617 static inline __ATTRS_o_ai vector unsigned long long
6618 vec_sll(vector unsigned long long __a, vector unsigned int __b) {
6619 return (vector unsigned long long)__builtin_s390_vsl(
6620 (vector unsigned char)__a, (vector unsigned char)__b);
6623 /*-- vec_slb ----------------------------------------------------------------*/
6625 static inline __ATTRS_o_ai vector signed char
6626 vec_slb(vector signed char __a, vector signed char __b) {
6627 return (vector signed char)__builtin_s390_vslb(
6628 (vector unsigned char)__a, (vector unsigned char)__b);
6631 static inline __ATTRS_o_ai vector signed char
6632 vec_slb(vector signed char __a, vector unsigned char __b) {
6633 return (vector signed char)__builtin_s390_vslb(
6634 (vector unsigned char)__a, __b);
6637 static inline __ATTRS_o_ai vector unsigned char
6638 vec_slb(vector unsigned char __a, vector signed char __b) {
6639 return __builtin_s390_vslb(__a, (vector unsigned char)__b);
6642 static inline __ATTRS_o_ai vector unsigned char
6643 vec_slb(vector unsigned char __a, vector unsigned char __b) {
6644 return __builtin_s390_vslb(__a, __b);
6647 static inline __ATTRS_o_ai vector signed short
6648 vec_slb(vector signed short __a, vector signed short __b) {
6649 return (vector signed short)__builtin_s390_vslb(
6650 (vector unsigned char)__a, (vector unsigned char)__b);
6653 static inline __ATTRS_o_ai vector signed short
6654 vec_slb(vector signed short __a, vector unsigned short __b) {
6655 return (vector signed short)__builtin_s390_vslb(
6656 (vector unsigned char)__a, (vector unsigned char)__b);
6659 static inline __ATTRS_o_ai vector unsigned short
6660 vec_slb(vector unsigned short __a, vector signed short __b) {
6661 return (vector unsigned short)__builtin_s390_vslb(
6662 (vector unsigned char)__a, (vector unsigned char)__b);
6665 static inline __ATTRS_o_ai vector unsigned short
6666 vec_slb(vector unsigned short __a, vector unsigned short __b) {
6667 return (vector unsigned short)__builtin_s390_vslb(
6668 (vector unsigned char)__a, (vector unsigned char)__b);
6671 static inline __ATTRS_o_ai vector signed int
6672 vec_slb(vector signed int __a, vector signed int __b) {
6673 return (vector signed int)__builtin_s390_vslb(
6674 (vector unsigned char)__a, (vector unsigned char)__b);
6677 static inline __ATTRS_o_ai vector signed int
6678 vec_slb(vector signed int __a, vector unsigned int __b) {
6679 return (vector signed int)__builtin_s390_vslb(
6680 (vector unsigned char)__a, (vector unsigned char)__b);
6683 static inline __ATTRS_o_ai vector unsigned int
6684 vec_slb(vector unsigned int __a, vector signed int __b) {
6685 return (vector unsigned int)__builtin_s390_vslb(
6686 (vector unsigned char)__a, (vector unsigned char)__b);
6689 static inline __ATTRS_o_ai vector unsigned int
6690 vec_slb(vector unsigned int __a, vector unsigned int __b) {
6691 return (vector unsigned int)__builtin_s390_vslb(
6692 (vector unsigned char)__a, (vector unsigned char)__b);
6695 static inline __ATTRS_o_ai vector signed long long
6696 vec_slb(vector signed long long __a, vector signed long long __b) {
6697 return (vector signed long long)__builtin_s390_vslb(
6698 (vector unsigned char)__a, (vector unsigned char)__b);
6701 static inline __ATTRS_o_ai vector signed long long
6702 vec_slb(vector signed long long __a, vector unsigned long long __b) {
6703 return (vector signed long long)__builtin_s390_vslb(
6704 (vector unsigned char)__a, (vector unsigned char)__b);
6707 static inline __ATTRS_o_ai vector unsigned long long
6708 vec_slb(vector unsigned long long __a, vector signed long long __b) {
6709 return (vector unsigned long long)__builtin_s390_vslb(
6710 (vector unsigned char)__a, (vector unsigned char)__b);
6713 static inline __ATTRS_o_ai vector unsigned long long
6714 vec_slb(vector unsigned long long __a, vector unsigned long long __b) {
6715 return (vector unsigned long long)__builtin_s390_vslb(
6716 (vector unsigned char)__a, (vector unsigned char)__b);
6720 static inline __ATTRS_o_ai vector float
6721 vec_slb(vector float __a, vector signed int __b) {
6722 return (vector float)__builtin_s390_vslb(
6723 (vector unsigned char)__a, (vector unsigned char)__b);
6726 static inline __ATTRS_o_ai vector float
6727 vec_slb(vector float __a, vector unsigned int __b) {
6728 return (vector float)__builtin_s390_vslb(
6729 (vector unsigned char)__a, (vector unsigned char)__b);
6733 static inline __ATTRS_o_ai vector double
6734 vec_slb(vector double __a, vector signed long long __b) {
6735 return (vector double)__builtin_s390_vslb(
6736 (vector unsigned char)__a, (vector unsigned char)__b);
6739 static inline __ATTRS_o_ai vector double
6740 vec_slb(vector double __a, vector unsigned long long __b) {
6741 return (vector double)__builtin_s390_vslb(
6742 (vector unsigned char)__a, (vector unsigned char)__b);
6745 /*-- vec_sld ----------------------------------------------------------------*/
6747 extern __ATTRS_o vector signed char
6748 vec_sld(vector signed char __a, vector signed char __b, int __c)
6749 __constant_range(__c, 0, 15);
6751 extern __ATTRS_o vector bool char
6752 vec_sld(vector bool char __a, vector bool char __b, int __c)
6753 __constant_range(__c, 0, 15);
6755 extern __ATTRS_o vector unsigned char
6756 vec_sld(vector unsigned char __a, vector unsigned char __b, int __c)
6757 __constant_range(__c, 0, 15);
6759 extern __ATTRS_o vector signed short
6760 vec_sld(vector signed short __a, vector signed short __b, int __c)
6761 __constant_range(__c, 0, 15);
6763 extern __ATTRS_o vector bool short
6764 vec_sld(vector bool short __a, vector bool short __b, int __c)
6765 __constant_range(__c, 0, 15);
6767 extern __ATTRS_o vector unsigned short
6768 vec_sld(vector unsigned short __a, vector unsigned short __b, int __c)
6769 __constant_range(__c, 0, 15);
6771 extern __ATTRS_o vector signed int
6772 vec_sld(vector signed int __a, vector signed int __b, int __c)
6773 __constant_range(__c, 0, 15);
6775 extern __ATTRS_o vector bool int
6776 vec_sld(vector bool int __a, vector bool int __b, int __c)
6777 __constant_range(__c, 0, 15);
6779 extern __ATTRS_o vector unsigned int
6780 vec_sld(vector unsigned int __a, vector unsigned int __b, int __c)
6781 __constant_range(__c, 0, 15);
6783 extern __ATTRS_o vector signed long long
6784 vec_sld(vector signed long long __a, vector signed long long __b, int __c)
6785 __constant_range(__c, 0, 15);
6787 extern __ATTRS_o vector bool long long
6788 vec_sld(vector bool long long __a, vector bool long long __b, int __c)
6789 __constant_range(__c, 0, 15);
6791 extern __ATTRS_o vector unsigned long long
6792 vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c)
6793 __constant_range(__c, 0, 15);
6796 extern __ATTRS_o vector float
6797 vec_sld(vector float __a, vector float __b, int __c)
6798 __constant_range(__c, 0, 15);
6801 extern __ATTRS_o vector double
6802 vec_sld(vector double __a, vector double __b, int __c)
6803 __constant_range(__c, 0, 15);
6805 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
6806 __builtin_s390_vsldb((vector unsigned char)(X), \
6807 (vector unsigned char)(Y), (Z)))
6809 /*-- vec_sldw ---------------------------------------------------------------*/
6811 extern __ATTRS_o vector signed char
6812 vec_sldw(vector signed char __a, vector signed char __b, int __c)
6813 __constant_range(__c, 0, 3);
6815 extern __ATTRS_o vector unsigned char
6816 vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c)
6817 __constant_range(__c, 0, 3);
6819 extern __ATTRS_o vector signed short
6820 vec_sldw(vector signed short __a, vector signed short __b, int __c)
6821 __constant_range(__c, 0, 3);
6823 extern __ATTRS_o vector unsigned short
6824 vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c)
6825 __constant_range(__c, 0, 3);
6827 extern __ATTRS_o vector signed int
6828 vec_sldw(vector signed int __a, vector signed int __b, int __c)
6829 __constant_range(__c, 0, 3);
6831 extern __ATTRS_o vector unsigned int
6832 vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c)
6833 __constant_range(__c, 0, 3);
6835 extern __ATTRS_o vector signed long long
6836 vec_sldw(vector signed long long __a, vector signed long long __b, int __c)
6837 __constant_range(__c, 0, 3);
6839 extern __ATTRS_o vector unsigned long long
6840 vec_sldw(vector unsigned long long __a, vector unsigned long long __b, int __c)
6841 __constant_range(__c, 0, 3);
6843 // This prototype is deprecated.
6844 extern __ATTRS_o vector double
6845 vec_sldw(vector double __a, vector double __b, int __c)
6846 __constant_range(__c, 0, 3);
6848 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
6849 __builtin_s390_vsldb((vector unsigned char)(X), \
6850 (vector unsigned char)(Y), (Z) * 4))
6852 /*-- vec_sral ---------------------------------------------------------------*/
6854 static inline __ATTRS_o_ai vector signed char
6855 vec_sral(vector signed char __a, vector unsigned char __b) {
6856 return (vector signed char)__builtin_s390_vsra(
6857 (vector unsigned char)__a, __b);
6860 // This prototype is deprecated.
6861 static inline __ATTRS_o_ai vector signed char
6862 vec_sral(vector signed char __a, vector unsigned short __b) {
6863 return (vector signed char)__builtin_s390_vsra(
6864 (vector unsigned char)__a, (vector unsigned char)__b);
6867 // This prototype is deprecated.
6868 static inline __ATTRS_o_ai vector signed char
6869 vec_sral(vector signed char __a, vector unsigned int __b) {
6870 return (vector signed char)__builtin_s390_vsra(
6871 (vector unsigned char)__a, (vector unsigned char)__b);
6874 // This prototype is deprecated.
6875 static inline __ATTRS_o_ai vector bool char
6876 vec_sral(vector bool char __a, vector unsigned char __b) {
6877 return (vector bool char)__builtin_s390_vsra(
6878 (vector unsigned char)__a, __b);
6881 // This prototype is deprecated.
6882 static inline __ATTRS_o_ai vector bool char
6883 vec_sral(vector bool char __a, vector unsigned short __b) {
6884 return (vector bool char)__builtin_s390_vsra(
6885 (vector unsigned char)__a, (vector unsigned char)__b);
6888 // This prototype is deprecated.
6889 static inline __ATTRS_o_ai vector bool char
6890 vec_sral(vector bool char __a, vector unsigned int __b) {
6891 return (vector bool char)__builtin_s390_vsra(
6892 (vector unsigned char)__a, (vector unsigned char)__b);
6895 static inline __ATTRS_o_ai vector unsigned char
6896 vec_sral(vector unsigned char __a, vector unsigned char __b) {
6897 return __builtin_s390_vsra(__a, __b);
6900 // This prototype is deprecated.
6901 static inline __ATTRS_o_ai vector unsigned char
6902 vec_sral(vector unsigned char __a, vector unsigned short __b) {
6903 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
6906 // This prototype is deprecated.
6907 static inline __ATTRS_o_ai vector unsigned char
6908 vec_sral(vector unsigned char __a, vector unsigned int __b) {
6909 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
6912 static inline __ATTRS_o_ai vector signed short
6913 vec_sral(vector signed short __a, vector unsigned char __b) {
6914 return (vector signed short)__builtin_s390_vsra(
6915 (vector unsigned char)__a, __b);
6918 // This prototype is deprecated.
6919 static inline __ATTRS_o_ai vector signed short
6920 vec_sral(vector signed short __a, vector unsigned short __b) {
6921 return (vector signed short)__builtin_s390_vsra(
6922 (vector unsigned char)__a, (vector unsigned char)__b);
6925 // This prototype is deprecated.
6926 static inline __ATTRS_o_ai vector signed short
6927 vec_sral(vector signed short __a, vector unsigned int __b) {
6928 return (vector signed short)__builtin_s390_vsra(
6929 (vector unsigned char)__a, (vector unsigned char)__b);
6932 // This prototype is deprecated.
6933 static inline __ATTRS_o_ai vector bool short
6934 vec_sral(vector bool short __a, vector unsigned char __b) {
6935 return (vector bool short)__builtin_s390_vsra(
6936 (vector unsigned char)__a, __b);
6939 // This prototype is deprecated.
6940 static inline __ATTRS_o_ai vector bool short
6941 vec_sral(vector bool short __a, vector unsigned short __b) {
6942 return (vector bool short)__builtin_s390_vsra(
6943 (vector unsigned char)__a, (vector unsigned char)__b);
6946 // This prototype is deprecated.
6947 static inline __ATTRS_o_ai vector bool short
6948 vec_sral(vector bool short __a, vector unsigned int __b) {
6949 return (vector bool short)__builtin_s390_vsra(
6950 (vector unsigned char)__a, (vector unsigned char)__b);
6953 static inline __ATTRS_o_ai vector unsigned short
6954 vec_sral(vector unsigned short __a, vector unsigned char __b) {
6955 return (vector unsigned short)__builtin_s390_vsra(
6956 (vector unsigned char)__a, __b);
6959 // This prototype is deprecated.
6960 static inline __ATTRS_o_ai vector unsigned short
6961 vec_sral(vector unsigned short __a, vector unsigned short __b) {
6962 return (vector unsigned short)__builtin_s390_vsra(
6963 (vector unsigned char)__a, (vector unsigned char)__b);
6966 // This prototype is deprecated.
6967 static inline __ATTRS_o_ai vector unsigned short
6968 vec_sral(vector unsigned short __a, vector unsigned int __b) {
6969 return (vector unsigned short)__builtin_s390_vsra(
6970 (vector unsigned char)__a, (vector unsigned char)__b);
6973 static inline __ATTRS_o_ai vector signed int
6974 vec_sral(vector signed int __a, vector unsigned char __b) {
6975 return (vector signed int)__builtin_s390_vsra(
6976 (vector unsigned char)__a, __b);
6979 // This prototype is deprecated.
6980 static inline __ATTRS_o_ai vector signed int
6981 vec_sral(vector signed int __a, vector unsigned short __b) {
6982 return (vector signed int)__builtin_s390_vsra(
6983 (vector unsigned char)__a, (vector unsigned char)__b);
6986 // This prototype is deprecated.
6987 static inline __ATTRS_o_ai vector signed int
6988 vec_sral(vector signed int __a, vector unsigned int __b) {
6989 return (vector signed int)__builtin_s390_vsra(
6990 (vector unsigned char)__a, (vector unsigned char)__b);
6993 // This prototype is deprecated.
6994 static inline __ATTRS_o_ai vector bool int
6995 vec_sral(vector bool int __a, vector unsigned char __b) {
6996 return (vector bool int)__builtin_s390_vsra(
6997 (vector unsigned char)__a, __b);
7000 // This prototype is deprecated.
7001 static inline __ATTRS_o_ai vector bool int
7002 vec_sral(vector bool int __a, vector unsigned short __b) {
7003 return (vector bool int)__builtin_s390_vsra(
7004 (vector unsigned char)__a, (vector unsigned char)__b);
7007 // This prototype is deprecated.
7008 static inline __ATTRS_o_ai vector bool int
7009 vec_sral(vector bool int __a, vector unsigned int __b) {
7010 return (vector bool int)__builtin_s390_vsra(
7011 (vector unsigned char)__a, (vector unsigned char)__b);
7014 static inline __ATTRS_o_ai vector unsigned int
7015 vec_sral(vector unsigned int __a, vector unsigned char __b) {
7016 return (vector unsigned int)__builtin_s390_vsra(
7017 (vector unsigned char)__a, __b);
7020 // This prototype is deprecated.
7021 static inline __ATTRS_o_ai vector unsigned int
7022 vec_sral(vector unsigned int __a, vector unsigned short __b) {
7023 return (vector unsigned int)__builtin_s390_vsra(
7024 (vector unsigned char)__a, (vector unsigned char)__b);
7027 // This prototype is deprecated.
7028 static inline __ATTRS_o_ai vector unsigned int
7029 vec_sral(vector unsigned int __a, vector unsigned int __b) {
7030 return (vector unsigned int)__builtin_s390_vsra(
7031 (vector unsigned char)__a, (vector unsigned char)__b);
7034 static inline __ATTRS_o_ai vector signed long long
7035 vec_sral(vector signed long long __a, vector unsigned char __b) {
7036 return (vector signed long long)__builtin_s390_vsra(
7037 (vector unsigned char)__a, __b);
7040 // This prototype is deprecated.
7041 static inline __ATTRS_o_ai vector signed long long
7042 vec_sral(vector signed long long __a, vector unsigned short __b) {
7043 return (vector signed long long)__builtin_s390_vsra(
7044 (vector unsigned char)__a, (vector unsigned char)__b);
7047 // This prototype is deprecated.
7048 static inline __ATTRS_o_ai vector signed long long
7049 vec_sral(vector signed long long __a, vector unsigned int __b) {
7050 return (vector signed long long)__builtin_s390_vsra(
7051 (vector unsigned char)__a, (vector unsigned char)__b);
7054 // This prototype is deprecated.
7055 static inline __ATTRS_o_ai vector bool long long
7056 vec_sral(vector bool long long __a, vector unsigned char __b) {
7057 return (vector bool long long)__builtin_s390_vsra(
7058 (vector unsigned char)__a, __b);
7061 // This prototype is deprecated.
7062 static inline __ATTRS_o_ai vector bool long long
7063 vec_sral(vector bool long long __a, vector unsigned short __b) {
7064 return (vector bool long long)__builtin_s390_vsra(
7065 (vector unsigned char)__a, (vector unsigned char)__b);
7068 // This prototype is deprecated.
7069 static inline __ATTRS_o_ai vector bool long long
7070 vec_sral(vector bool long long __a, vector unsigned int __b) {
7071 return (vector bool long long)__builtin_s390_vsra(
7072 (vector unsigned char)__a, (vector unsigned char)__b);
7075 static inline __ATTRS_o_ai vector unsigned long long
7076 vec_sral(vector unsigned long long __a, vector unsigned char __b) {
7077 return (vector unsigned long long)__builtin_s390_vsra(
7078 (vector unsigned char)__a, __b);
7081 // This prototype is deprecated.
7082 static inline __ATTRS_o_ai vector unsigned long long
7083 vec_sral(vector unsigned long long __a, vector unsigned short __b) {
7084 return (vector unsigned long long)__builtin_s390_vsra(
7085 (vector unsigned char)__a, (vector unsigned char)__b);
7088 // This prototype is deprecated.
7089 static inline __ATTRS_o_ai vector unsigned long long
7090 vec_sral(vector unsigned long long __a, vector unsigned int __b) {
7091 return (vector unsigned long long)__builtin_s390_vsra(
7092 (vector unsigned char)__a, (vector unsigned char)__b);
7095 /*-- vec_srab ---------------------------------------------------------------*/
7097 static inline __ATTRS_o_ai vector signed char
7098 vec_srab(vector signed char __a, vector signed char __b) {
7099 return (vector signed char)__builtin_s390_vsrab(
7100 (vector unsigned char)__a, (vector unsigned char)__b);
7103 static inline __ATTRS_o_ai vector signed char
7104 vec_srab(vector signed char __a, vector unsigned char __b) {
7105 return (vector signed char)__builtin_s390_vsrab(
7106 (vector unsigned char)__a, __b);
7109 static inline __ATTRS_o_ai vector unsigned char
7110 vec_srab(vector unsigned char __a, vector signed char __b) {
7111 return __builtin_s390_vsrab(__a, (vector unsigned char)__b);
7114 static inline __ATTRS_o_ai vector unsigned char
7115 vec_srab(vector unsigned char __a, vector unsigned char __b) {
7116 return __builtin_s390_vsrab(__a, __b);
7119 static inline __ATTRS_o_ai vector signed short
7120 vec_srab(vector signed short __a, vector signed short __b) {
7121 return (vector signed short)__builtin_s390_vsrab(
7122 (vector unsigned char)__a, (vector unsigned char)__b);
7125 static inline __ATTRS_o_ai vector signed short
7126 vec_srab(vector signed short __a, vector unsigned short __b) {
7127 return (vector signed short)__builtin_s390_vsrab(
7128 (vector unsigned char)__a, (vector unsigned char)__b);
7131 static inline __ATTRS_o_ai vector unsigned short
7132 vec_srab(vector unsigned short __a, vector signed short __b) {
7133 return (vector unsigned short)__builtin_s390_vsrab(
7134 (vector unsigned char)__a, (vector unsigned char)__b);
7137 static inline __ATTRS_o_ai vector unsigned short
7138 vec_srab(vector unsigned short __a, vector unsigned short __b) {
7139 return (vector unsigned short)__builtin_s390_vsrab(
7140 (vector unsigned char)__a, (vector unsigned char)__b);
7143 static inline __ATTRS_o_ai vector signed int
7144 vec_srab(vector signed int __a, vector signed int __b) {
7145 return (vector signed int)__builtin_s390_vsrab(
7146 (vector unsigned char)__a, (vector unsigned char)__b);
7149 static inline __ATTRS_o_ai vector signed int
7150 vec_srab(vector signed int __a, vector unsigned int __b) {
7151 return (vector signed int)__builtin_s390_vsrab(
7152 (vector unsigned char)__a, (vector unsigned char)__b);
7155 static inline __ATTRS_o_ai vector unsigned int
7156 vec_srab(vector unsigned int __a, vector signed int __b) {
7157 return (vector unsigned int)__builtin_s390_vsrab(
7158 (vector unsigned char)__a, (vector unsigned char)__b);
7161 static inline __ATTRS_o_ai vector unsigned int
7162 vec_srab(vector unsigned int __a, vector unsigned int __b) {
7163 return (vector unsigned int)__builtin_s390_vsrab(
7164 (vector unsigned char)__a, (vector unsigned char)__b);
7167 static inline __ATTRS_o_ai vector signed long long
7168 vec_srab(vector signed long long __a, vector signed long long __b) {
7169 return (vector signed long long)__builtin_s390_vsrab(
7170 (vector unsigned char)__a, (vector unsigned char)__b);
7173 static inline __ATTRS_o_ai vector signed long long
7174 vec_srab(vector signed long long __a, vector unsigned long long __b) {
7175 return (vector signed long long)__builtin_s390_vsrab(
7176 (vector unsigned char)__a, (vector unsigned char)__b);
7179 static inline __ATTRS_o_ai vector unsigned long long
7180 vec_srab(vector unsigned long long __a, vector signed long long __b) {
7181 return (vector unsigned long long)__builtin_s390_vsrab(
7182 (vector unsigned char)__a, (vector unsigned char)__b);
7185 static inline __ATTRS_o_ai vector unsigned long long
7186 vec_srab(vector unsigned long long __a, vector unsigned long long __b) {
7187 return (vector unsigned long long)__builtin_s390_vsrab(
7188 (vector unsigned char)__a, (vector unsigned char)__b);
7192 static inline __ATTRS_o_ai vector float
7193 vec_srab(vector float __a, vector signed int __b) {
7194 return (vector float)__builtin_s390_vsrab(
7195 (vector unsigned char)__a, (vector unsigned char)__b);
7198 static inline __ATTRS_o_ai vector float
7199 vec_srab(vector float __a, vector unsigned int __b) {
7200 return (vector float)__builtin_s390_vsrab(
7201 (vector unsigned char)__a, (vector unsigned char)__b);
7205 static inline __ATTRS_o_ai vector double
7206 vec_srab(vector double __a, vector signed long long __b) {
7207 return (vector double)__builtin_s390_vsrab(
7208 (vector unsigned char)__a, (vector unsigned char)__b);
7211 static inline __ATTRS_o_ai vector double
7212 vec_srab(vector double __a, vector unsigned long long __b) {
7213 return (vector double)__builtin_s390_vsrab(
7214 (vector unsigned char)__a, (vector unsigned char)__b);
7217 /*-- vec_srl ----------------------------------------------------------------*/
7219 static inline __ATTRS_o_ai vector signed char
7220 vec_srl(vector signed char __a, vector unsigned char __b) {
7221 return (vector signed char)__builtin_s390_vsrl(
7222 (vector unsigned char)__a, __b);
7225 // This prototype is deprecated.
7226 static inline __ATTRS_o_ai vector signed char
7227 vec_srl(vector signed char __a, vector unsigned short __b) {
7228 return (vector signed char)__builtin_s390_vsrl(
7229 (vector unsigned char)__a, (vector unsigned char)__b);
7232 // This prototype is deprecated.
7233 static inline __ATTRS_o_ai vector signed char
7234 vec_srl(vector signed char __a, vector unsigned int __b) {
7235 return (vector signed char)__builtin_s390_vsrl(
7236 (vector unsigned char)__a, (vector unsigned char)__b);
7239 // This prototype is deprecated.
7240 static inline __ATTRS_o_ai vector bool char
7241 vec_srl(vector bool char __a, vector unsigned char __b) {
7242 return (vector bool char)__builtin_s390_vsrl(
7243 (vector unsigned char)__a, __b);
7246 // This prototype is deprecated.
7247 static inline __ATTRS_o_ai vector bool char
7248 vec_srl(vector bool char __a, vector unsigned short __b) {
7249 return (vector bool char)__builtin_s390_vsrl(
7250 (vector unsigned char)__a, (vector unsigned char)__b);
7253 // This prototype is deprecated.
7254 static inline __ATTRS_o_ai vector bool char
7255 vec_srl(vector bool char __a, vector unsigned int __b) {
7256 return (vector bool char)__builtin_s390_vsrl(
7257 (vector unsigned char)__a, (vector unsigned char)__b);
7260 static inline __ATTRS_o_ai vector unsigned char
7261 vec_srl(vector unsigned char __a, vector unsigned char __b) {
7262 return __builtin_s390_vsrl(__a, __b);
7265 // This prototype is deprecated.
7266 static inline __ATTRS_o_ai vector unsigned char
7267 vec_srl(vector unsigned char __a, vector unsigned short __b) {
7268 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7271 // This prototype is deprecated.
7272 static inline __ATTRS_o_ai vector unsigned char
7273 vec_srl(vector unsigned char __a, vector unsigned int __b) {
7274 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7277 static inline __ATTRS_o_ai vector signed short
7278 vec_srl(vector signed short __a, vector unsigned char __b) {
7279 return (vector signed short)__builtin_s390_vsrl(
7280 (vector unsigned char)__a, __b);
7283 // This prototype is deprecated.
7284 static inline __ATTRS_o_ai vector signed short
7285 vec_srl(vector signed short __a, vector unsigned short __b) {
7286 return (vector signed short)__builtin_s390_vsrl(
7287 (vector unsigned char)__a, (vector unsigned char)__b);
7290 // This prototype is deprecated.
7291 static inline __ATTRS_o_ai vector signed short
7292 vec_srl(vector signed short __a, vector unsigned int __b) {
7293 return (vector signed short)__builtin_s390_vsrl(
7294 (vector unsigned char)__a, (vector unsigned char)__b);
7297 // This prototype is deprecated.
7298 static inline __ATTRS_o_ai vector bool short
7299 vec_srl(vector bool short __a, vector unsigned char __b) {
7300 return (vector bool short)__builtin_s390_vsrl(
7301 (vector unsigned char)__a, __b);
7304 // This prototype is deprecated.
7305 static inline __ATTRS_o_ai vector bool short
7306 vec_srl(vector bool short __a, vector unsigned short __b) {
7307 return (vector bool short)__builtin_s390_vsrl(
7308 (vector unsigned char)__a, (vector unsigned char)__b);
7311 // This prototype is deprecated.
7312 static inline __ATTRS_o_ai vector bool short
7313 vec_srl(vector bool short __a, vector unsigned int __b) {
7314 return (vector bool short)__builtin_s390_vsrl(
7315 (vector unsigned char)__a, (vector unsigned char)__b);
7318 static inline __ATTRS_o_ai vector unsigned short
7319 vec_srl(vector unsigned short __a, vector unsigned char __b) {
7320 return (vector unsigned short)__builtin_s390_vsrl(
7321 (vector unsigned char)__a, __b);
7324 // This prototype is deprecated.
7325 static inline __ATTRS_o_ai vector unsigned short
7326 vec_srl(vector unsigned short __a, vector unsigned short __b) {
7327 return (vector unsigned short)__builtin_s390_vsrl(
7328 (vector unsigned char)__a, (vector unsigned char)__b);
7331 // This prototype is deprecated.
7332 static inline __ATTRS_o_ai vector unsigned short
7333 vec_srl(vector unsigned short __a, vector unsigned int __b) {
7334 return (vector unsigned short)__builtin_s390_vsrl(
7335 (vector unsigned char)__a, (vector unsigned char)__b);
7338 static inline __ATTRS_o_ai vector signed int
7339 vec_srl(vector signed int __a, vector unsigned char __b) {
7340 return (vector signed int)__builtin_s390_vsrl(
7341 (vector unsigned char)__a, __b);
7344 // This prototype is deprecated.
7345 static inline __ATTRS_o_ai vector signed int
7346 vec_srl(vector signed int __a, vector unsigned short __b) {
7347 return (vector signed int)__builtin_s390_vsrl(
7348 (vector unsigned char)__a, (vector unsigned char)__b);
7351 // This prototype is deprecated.
7352 static inline __ATTRS_o_ai vector signed int
7353 vec_srl(vector signed int __a, vector unsigned int __b) {
7354 return (vector signed int)__builtin_s390_vsrl(
7355 (vector unsigned char)__a, (vector unsigned char)__b);
7358 // This prototype is deprecated.
7359 static inline __ATTRS_o_ai vector bool int
7360 vec_srl(vector bool int __a, vector unsigned char __b) {
7361 return (vector bool int)__builtin_s390_vsrl(
7362 (vector unsigned char)__a, __b);
7365 // This prototype is deprecated.
7366 static inline __ATTRS_o_ai vector bool int
7367 vec_srl(vector bool int __a, vector unsigned short __b) {
7368 return (vector bool int)__builtin_s390_vsrl(
7369 (vector unsigned char)__a, (vector unsigned char)__b);
7372 // This prototype is deprecated.
7373 static inline __ATTRS_o_ai vector bool int
7374 vec_srl(vector bool int __a, vector unsigned int __b) {
7375 return (vector bool int)__builtin_s390_vsrl(
7376 (vector unsigned char)__a, (vector unsigned char)__b);
7379 static inline __ATTRS_o_ai vector unsigned int
7380 vec_srl(vector unsigned int __a, vector unsigned char __b) {
7381 return (vector unsigned int)__builtin_s390_vsrl(
7382 (vector unsigned char)__a, __b);
7385 // This prototype is deprecated.
7386 static inline __ATTRS_o_ai vector unsigned int
7387 vec_srl(vector unsigned int __a, vector unsigned short __b) {
7388 return (vector unsigned int)__builtin_s390_vsrl(
7389 (vector unsigned char)__a, (vector unsigned char)__b);
7392 // This prototype is deprecated.
7393 static inline __ATTRS_o_ai vector unsigned int
7394 vec_srl(vector unsigned int __a, vector unsigned int __b) {
7395 return (vector unsigned int)__builtin_s390_vsrl(
7396 (vector unsigned char)__a, (vector unsigned char)__b);
7399 static inline __ATTRS_o_ai vector signed long long
7400 vec_srl(vector signed long long __a, vector unsigned char __b) {
7401 return (vector signed long long)__builtin_s390_vsrl(
7402 (vector unsigned char)__a, __b);
7405 // This prototype is deprecated.
7406 static inline __ATTRS_o_ai vector signed long long
7407 vec_srl(vector signed long long __a, vector unsigned short __b) {
7408 return (vector signed long long)__builtin_s390_vsrl(
7409 (vector unsigned char)__a, (vector unsigned char)__b);
7412 // This prototype is deprecated.
7413 static inline __ATTRS_o_ai vector signed long long
7414 vec_srl(vector signed long long __a, vector unsigned int __b) {
7415 return (vector signed long long)__builtin_s390_vsrl(
7416 (vector unsigned char)__a, (vector unsigned char)__b);
7419 // This prototype is deprecated.
7420 static inline __ATTRS_o_ai vector bool long long
7421 vec_srl(vector bool long long __a, vector unsigned char __b) {
7422 return (vector bool long long)__builtin_s390_vsrl(
7423 (vector unsigned char)__a, __b);
7426 // This prototype is deprecated.
7427 static inline __ATTRS_o_ai vector bool long long
7428 vec_srl(vector bool long long __a, vector unsigned short __b) {
7429 return (vector bool long long)__builtin_s390_vsrl(
7430 (vector unsigned char)__a, (vector unsigned char)__b);
7433 // This prototype is deprecated.
7434 static inline __ATTRS_o_ai vector bool long long
7435 vec_srl(vector bool long long __a, vector unsigned int __b) {
7436 return (vector bool long long)__builtin_s390_vsrl(
7437 (vector unsigned char)__a, (vector unsigned char)__b);
7440 static inline __ATTRS_o_ai vector unsigned long long
7441 vec_srl(vector unsigned long long __a, vector unsigned char __b) {
7442 return (vector unsigned long long)__builtin_s390_vsrl(
7443 (vector unsigned char)__a, __b);
7446 // This prototype is deprecated.
7447 static inline __ATTRS_o_ai vector unsigned long long
7448 vec_srl(vector unsigned long long __a, vector unsigned short __b) {
7449 return (vector unsigned long long)__builtin_s390_vsrl(
7450 (vector unsigned char)__a, (vector unsigned char)__b);
7453 // This prototype is deprecated.
7454 static inline __ATTRS_o_ai vector unsigned long long
7455 vec_srl(vector unsigned long long __a, vector unsigned int __b) {
7456 return (vector unsigned long long)__builtin_s390_vsrl(
7457 (vector unsigned char)__a, (vector unsigned char)__b);
7460 /*-- vec_srb ----------------------------------------------------------------*/
7462 static inline __ATTRS_o_ai vector signed char
7463 vec_srb(vector signed char __a, vector signed char __b) {
7464 return (vector signed char)__builtin_s390_vsrlb(
7465 (vector unsigned char)__a, (vector unsigned char)__b);
7468 static inline __ATTRS_o_ai vector signed char
7469 vec_srb(vector signed char __a, vector unsigned char __b) {
7470 return (vector signed char)__builtin_s390_vsrlb(
7471 (vector unsigned char)__a, __b);
7474 static inline __ATTRS_o_ai vector unsigned char
7475 vec_srb(vector unsigned char __a, vector signed char __b) {
7476 return __builtin_s390_vsrlb(__a, (vector unsigned char)__b);
7479 static inline __ATTRS_o_ai vector unsigned char
7480 vec_srb(vector unsigned char __a, vector unsigned char __b) {
7481 return __builtin_s390_vsrlb(__a, __b);
7484 static inline __ATTRS_o_ai vector signed short
7485 vec_srb(vector signed short __a, vector signed short __b) {
7486 return (vector signed short)__builtin_s390_vsrlb(
7487 (vector unsigned char)__a, (vector unsigned char)__b);
7490 static inline __ATTRS_o_ai vector signed short
7491 vec_srb(vector signed short __a, vector unsigned short __b) {
7492 return (vector signed short)__builtin_s390_vsrlb(
7493 (vector unsigned char)__a, (vector unsigned char)__b);
7496 static inline __ATTRS_o_ai vector unsigned short
7497 vec_srb(vector unsigned short __a, vector signed short __b) {
7498 return (vector unsigned short)__builtin_s390_vsrlb(
7499 (vector unsigned char)__a, (vector unsigned char)__b);
7502 static inline __ATTRS_o_ai vector unsigned short
7503 vec_srb(vector unsigned short __a, vector unsigned short __b) {
7504 return (vector unsigned short)__builtin_s390_vsrlb(
7505 (vector unsigned char)__a, (vector unsigned char)__b);
7508 static inline __ATTRS_o_ai vector signed int
7509 vec_srb(vector signed int __a, vector signed int __b) {
7510 return (vector signed int)__builtin_s390_vsrlb(
7511 (vector unsigned char)__a, (vector unsigned char)__b);
7514 static inline __ATTRS_o_ai vector signed int
7515 vec_srb(vector signed int __a, vector unsigned int __b) {
7516 return (vector signed int)__builtin_s390_vsrlb(
7517 (vector unsigned char)__a, (vector unsigned char)__b);
7520 static inline __ATTRS_o_ai vector unsigned int
7521 vec_srb(vector unsigned int __a, vector signed int __b) {
7522 return (vector unsigned int)__builtin_s390_vsrlb(
7523 (vector unsigned char)__a, (vector unsigned char)__b);
7526 static inline __ATTRS_o_ai vector unsigned int
7527 vec_srb(vector unsigned int __a, vector unsigned int __b) {
7528 return (vector unsigned int)__builtin_s390_vsrlb(
7529 (vector unsigned char)__a, (vector unsigned char)__b);
7532 static inline __ATTRS_o_ai vector signed long long
7533 vec_srb(vector signed long long __a, vector signed long long __b) {
7534 return (vector signed long long)__builtin_s390_vsrlb(
7535 (vector unsigned char)__a, (vector unsigned char)__b);
7538 static inline __ATTRS_o_ai vector signed long long
7539 vec_srb(vector signed long long __a, vector unsigned long long __b) {
7540 return (vector signed long long)__builtin_s390_vsrlb(
7541 (vector unsigned char)__a, (vector unsigned char)__b);
7544 static inline __ATTRS_o_ai vector unsigned long long
7545 vec_srb(vector unsigned long long __a, vector signed long long __b) {
7546 return (vector unsigned long long)__builtin_s390_vsrlb(
7547 (vector unsigned char)__a, (vector unsigned char)__b);
7550 static inline __ATTRS_o_ai vector unsigned long long
7551 vec_srb(vector unsigned long long __a, vector unsigned long long __b) {
7552 return (vector unsigned long long)__builtin_s390_vsrlb(
7553 (vector unsigned char)__a, (vector unsigned char)__b);
7557 static inline __ATTRS_o_ai vector float
7558 vec_srb(vector float __a, vector signed int __b) {
7559 return (vector float)__builtin_s390_vsrlb(
7560 (vector unsigned char)__a, (vector unsigned char)__b);
7563 static inline __ATTRS_o_ai vector float
7564 vec_srb(vector float __a, vector unsigned int __b) {
7565 return (vector float)__builtin_s390_vsrlb(
7566 (vector unsigned char)__a, (vector unsigned char)__b);
7570 static inline __ATTRS_o_ai vector double
7571 vec_srb(vector double __a, vector signed long long __b) {
7572 return (vector double)__builtin_s390_vsrlb(
7573 (vector unsigned char)__a, (vector unsigned char)__b);
7576 static inline __ATTRS_o_ai vector double
7577 vec_srb(vector double __a, vector unsigned long long __b) {
7578 return (vector double)__builtin_s390_vsrlb(
7579 (vector unsigned char)__a, (vector unsigned char)__b);
7582 /*-- vec_abs ----------------------------------------------------------------*/
7584 static inline __ATTRS_o_ai vector signed char
7585 vec_abs(vector signed char __a) {
7586 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0));
7589 static inline __ATTRS_o_ai vector signed short
7590 vec_abs(vector signed short __a) {
7591 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0));
7594 static inline __ATTRS_o_ai vector signed int
7595 vec_abs(vector signed int __a) {
7596 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0));
7599 static inline __ATTRS_o_ai vector signed long long
7600 vec_abs(vector signed long long __a) {
7601 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed long long)0));
7605 static inline __ATTRS_o_ai vector float
7606 vec_abs(vector float __a) {
7607 return __builtin_s390_vflpsb(__a);
7611 static inline __ATTRS_o_ai vector double
7612 vec_abs(vector double __a) {
7613 return __builtin_s390_vflpdb(__a);
7616 /*-- vec_nabs ---------------------------------------------------------------*/
7619 static inline __ATTRS_o_ai vector float
7620 vec_nabs(vector float __a) {
7621 return __builtin_s390_vflnsb(__a);
7625 static inline __ATTRS_o_ai vector double
7626 vec_nabs(vector double __a) {
7627 return __builtin_s390_vflndb(__a);
7630 /*-- vec_max ----------------------------------------------------------------*/
7632 static inline __ATTRS_o_ai vector signed char
7633 vec_max(vector signed char __a, vector signed char __b) {
7634 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7637 // This prototype is deprecated.
7638 static inline __ATTRS_o_ai vector signed char
7639 vec_max(vector signed char __a, vector bool char __b) {
7640 vector signed char __bc = (vector signed char)__b;
7641 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7644 // This prototype is deprecated.
7645 static inline __ATTRS_o_ai vector signed char
7646 vec_max(vector bool char __a, vector signed char __b) {
7647 vector signed char __ac = (vector signed char)__a;
7648 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7651 static inline __ATTRS_o_ai vector unsigned char
7652 vec_max(vector unsigned char __a, vector unsigned char __b) {
7653 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7656 // This prototype is deprecated.
7657 static inline __ATTRS_o_ai vector unsigned char
7658 vec_max(vector unsigned char __a, vector bool char __b) {
7659 vector unsigned char __bc = (vector unsigned char)__b;
7660 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7663 // This prototype is deprecated.
7664 static inline __ATTRS_o_ai vector unsigned char
7665 vec_max(vector bool char __a, vector unsigned char __b) {
7666 vector unsigned char __ac = (vector unsigned char)__a;
7667 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7670 static inline __ATTRS_o_ai vector signed short
7671 vec_max(vector signed short __a, vector signed short __b) {
7672 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7675 // This prototype is deprecated.
7676 static inline __ATTRS_o_ai vector signed short
7677 vec_max(vector signed short __a, vector bool short __b) {
7678 vector signed short __bc = (vector signed short)__b;
7679 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7682 // This prototype is deprecated.
7683 static inline __ATTRS_o_ai vector signed short
7684 vec_max(vector bool short __a, vector signed short __b) {
7685 vector signed short __ac = (vector signed short)__a;
7686 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7689 static inline __ATTRS_o_ai vector unsigned short
7690 vec_max(vector unsigned short __a, vector unsigned short __b) {
7691 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7694 // This prototype is deprecated.
7695 static inline __ATTRS_o_ai vector unsigned short
7696 vec_max(vector unsigned short __a, vector bool short __b) {
7697 vector unsigned short __bc = (vector unsigned short)__b;
7698 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7701 // This prototype is deprecated.
7702 static inline __ATTRS_o_ai vector unsigned short
7703 vec_max(vector bool short __a, vector unsigned short __b) {
7704 vector unsigned short __ac = (vector unsigned short)__a;
7705 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7708 static inline __ATTRS_o_ai vector signed int
7709 vec_max(vector signed int __a, vector signed int __b) {
7710 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7713 // This prototype is deprecated.
7714 static inline __ATTRS_o_ai vector signed int
7715 vec_max(vector signed int __a, vector bool int __b) {
7716 vector signed int __bc = (vector signed int)__b;
7717 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7720 // This prototype is deprecated.
7721 static inline __ATTRS_o_ai vector signed int
7722 vec_max(vector bool int __a, vector signed int __b) {
7723 vector signed int __ac = (vector signed int)__a;
7724 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7727 static inline __ATTRS_o_ai vector unsigned int
7728 vec_max(vector unsigned int __a, vector unsigned int __b) {
7729 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7732 // This prototype is deprecated.
7733 static inline __ATTRS_o_ai vector unsigned int
7734 vec_max(vector unsigned int __a, vector bool int __b) {
7735 vector unsigned int __bc = (vector unsigned int)__b;
7736 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7739 // This prototype is deprecated.
7740 static inline __ATTRS_o_ai vector unsigned int
7741 vec_max(vector bool int __a, vector unsigned int __b) {
7742 vector unsigned int __ac = (vector unsigned int)__a;
7743 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7746 static inline __ATTRS_o_ai vector signed long long
7747 vec_max(vector signed long long __a, vector signed long long __b) {
7748 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7751 // This prototype is deprecated.
7752 static inline __ATTRS_o_ai vector signed long long
7753 vec_max(vector signed long long __a, vector bool long long __b) {
7754 vector signed long long __bc = (vector signed long long)__b;
7755 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7758 // This prototype is deprecated.
7759 static inline __ATTRS_o_ai vector signed long long
7760 vec_max(vector bool long long __a, vector signed long long __b) {
7761 vector signed long long __ac = (vector signed long long)__a;
7762 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7765 static inline __ATTRS_o_ai vector unsigned long long
7766 vec_max(vector unsigned long long __a, vector unsigned long long __b) {
7767 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7770 // This prototype is deprecated.
7771 static inline __ATTRS_o_ai vector unsigned long long
7772 vec_max(vector unsigned long long __a, vector bool long long __b) {
7773 vector unsigned long long __bc = (vector unsigned long long)__b;
7774 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7777 // This prototype is deprecated.
7778 static inline __ATTRS_o_ai vector unsigned long long
7779 vec_max(vector bool long long __a, vector unsigned long long __b) {
7780 vector unsigned long long __ac = (vector unsigned long long)__a;
7781 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7785 static inline __ATTRS_o_ai vector float
7786 vec_max(vector float __a, vector float __b) {
7787 return __builtin_s390_vfmaxsb(__a, __b, 0);
7791 static inline __ATTRS_o_ai vector double
7792 vec_max(vector double __a, vector double __b) {
7794 return __builtin_s390_vfmaxdb(__a, __b, 0);
7796 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7800 /*-- vec_min ----------------------------------------------------------------*/
7802 static inline __ATTRS_o_ai vector signed char
7803 vec_min(vector signed char __a, vector signed char __b) {
7804 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7807 // This prototype is deprecated.
7808 static inline __ATTRS_o_ai vector signed char
7809 vec_min(vector signed char __a, vector bool char __b) {
7810 vector signed char __bc = (vector signed char)__b;
7811 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7814 // This prototype is deprecated.
7815 static inline __ATTRS_o_ai vector signed char
7816 vec_min(vector bool char __a, vector signed char __b) {
7817 vector signed char __ac = (vector signed char)__a;
7818 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7821 static inline __ATTRS_o_ai vector unsigned char
7822 vec_min(vector unsigned char __a, vector unsigned char __b) {
7823 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7826 // This prototype is deprecated.
7827 static inline __ATTRS_o_ai vector unsigned char
7828 vec_min(vector unsigned char __a, vector bool char __b) {
7829 vector unsigned char __bc = (vector unsigned char)__b;
7830 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7833 // This prototype is deprecated.
7834 static inline __ATTRS_o_ai vector unsigned char
7835 vec_min(vector bool char __a, vector unsigned char __b) {
7836 vector unsigned char __ac = (vector unsigned char)__a;
7837 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7840 static inline __ATTRS_o_ai vector signed short
7841 vec_min(vector signed short __a, vector signed short __b) {
7842 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7845 // This prototype is deprecated.
7846 static inline __ATTRS_o_ai vector signed short
7847 vec_min(vector signed short __a, vector bool short __b) {
7848 vector signed short __bc = (vector signed short)__b;
7849 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7852 // This prototype is deprecated.
7853 static inline __ATTRS_o_ai vector signed short
7854 vec_min(vector bool short __a, vector signed short __b) {
7855 vector signed short __ac = (vector signed short)__a;
7856 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7859 static inline __ATTRS_o_ai vector unsigned short
7860 vec_min(vector unsigned short __a, vector unsigned short __b) {
7861 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7864 // This prototype is deprecated.
7865 static inline __ATTRS_o_ai vector unsigned short
7866 vec_min(vector unsigned short __a, vector bool short __b) {
7867 vector unsigned short __bc = (vector unsigned short)__b;
7868 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7871 // This prototype is deprecated.
7872 static inline __ATTRS_o_ai vector unsigned short
7873 vec_min(vector bool short __a, vector unsigned short __b) {
7874 vector unsigned short __ac = (vector unsigned short)__a;
7875 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7878 static inline __ATTRS_o_ai vector signed int
7879 vec_min(vector signed int __a, vector signed int __b) {
7880 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7883 // This prototype is deprecated.
7884 static inline __ATTRS_o_ai vector signed int
7885 vec_min(vector signed int __a, vector bool int __b) {
7886 vector signed int __bc = (vector signed int)__b;
7887 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7890 // This prototype is deprecated.
7891 static inline __ATTRS_o_ai vector signed int
7892 vec_min(vector bool int __a, vector signed int __b) {
7893 vector signed int __ac = (vector signed int)__a;
7894 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7897 static inline __ATTRS_o_ai vector unsigned int
7898 vec_min(vector unsigned int __a, vector unsigned int __b) {
7899 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7902 // This prototype is deprecated.
7903 static inline __ATTRS_o_ai vector unsigned int
7904 vec_min(vector unsigned int __a, vector bool int __b) {
7905 vector unsigned int __bc = (vector unsigned int)__b;
7906 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7909 // This prototype is deprecated.
7910 static inline __ATTRS_o_ai vector unsigned int
7911 vec_min(vector bool int __a, vector unsigned int __b) {
7912 vector unsigned int __ac = (vector unsigned int)__a;
7913 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7916 static inline __ATTRS_o_ai vector signed long long
7917 vec_min(vector signed long long __a, vector signed long long __b) {
7918 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7921 // This prototype is deprecated.
7922 static inline __ATTRS_o_ai vector signed long long
7923 vec_min(vector signed long long __a, vector bool long long __b) {
7924 vector signed long long __bc = (vector signed long long)__b;
7925 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7928 // This prototype is deprecated.
7929 static inline __ATTRS_o_ai vector signed long long
7930 vec_min(vector bool long long __a, vector signed long long __b) {
7931 vector signed long long __ac = (vector signed long long)__a;
7932 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7935 static inline __ATTRS_o_ai vector unsigned long long
7936 vec_min(vector unsigned long long __a, vector unsigned long long __b) {
7937 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7940 // This prototype is deprecated.
7941 static inline __ATTRS_o_ai vector unsigned long long
7942 vec_min(vector unsigned long long __a, vector bool long long __b) {
7943 vector unsigned long long __bc = (vector unsigned long long)__b;
7944 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7947 // This prototype is deprecated.
7948 static inline __ATTRS_o_ai vector unsigned long long
7949 vec_min(vector bool long long __a, vector unsigned long long __b) {
7950 vector unsigned long long __ac = (vector unsigned long long)__a;
7951 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7955 static inline __ATTRS_o_ai vector float
7956 vec_min(vector float __a, vector float __b) {
7957 return __builtin_s390_vfminsb(__a, __b, 0);
7961 static inline __ATTRS_o_ai vector double
7962 vec_min(vector double __a, vector double __b) {
7964 return __builtin_s390_vfmindb(__a, __b, 0);
7966 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7970 /*-- vec_add_u128 -----------------------------------------------------------*/
7972 static inline __ATTRS_ai vector unsigned char
7973 vec_add_u128(vector unsigned char __a, vector unsigned char __b) {
7974 return __builtin_s390_vaq(__a, __b);
7977 /*-- vec_addc ---------------------------------------------------------------*/
7979 static inline __ATTRS_o_ai vector unsigned char
7980 vec_addc(vector unsigned char __a, vector unsigned char __b) {
7981 return __builtin_s390_vaccb(__a, __b);
7984 static inline __ATTRS_o_ai vector unsigned short
7985 vec_addc(vector unsigned short __a, vector unsigned short __b) {
7986 return __builtin_s390_vacch(__a, __b);
7989 static inline __ATTRS_o_ai vector unsigned int
7990 vec_addc(vector unsigned int __a, vector unsigned int __b) {
7991 return __builtin_s390_vaccf(__a, __b);
7994 static inline __ATTRS_o_ai vector unsigned long long
7995 vec_addc(vector unsigned long long __a, vector unsigned long long __b) {
7996 return __builtin_s390_vaccg(__a, __b);
7999 /*-- vec_addc_u128 ----------------------------------------------------------*/
8001 static inline __ATTRS_ai vector unsigned char
8002 vec_addc_u128(vector unsigned char __a, vector unsigned char __b) {
8003 return __builtin_s390_vaccq(__a, __b);
8006 /*-- vec_adde_u128 ----------------------------------------------------------*/
8008 static inline __ATTRS_ai vector unsigned char
8009 vec_adde_u128(vector unsigned char __a, vector unsigned char __b,
8010 vector unsigned char __c) {
8011 return __builtin_s390_vacq(__a, __b, __c);
8014 /*-- vec_addec_u128 ---------------------------------------------------------*/
8016 static inline __ATTRS_ai vector unsigned char
8017 vec_addec_u128(vector unsigned char __a, vector unsigned char __b,
8018 vector unsigned char __c) {
8019 return __builtin_s390_vacccq(__a, __b, __c);
8022 /*-- vec_avg ----------------------------------------------------------------*/
8024 static inline __ATTRS_o_ai vector signed char
8025 vec_avg(vector signed char __a, vector signed char __b) {
8026 return __builtin_s390_vavgb(__a, __b);
8029 static inline __ATTRS_o_ai vector signed short
8030 vec_avg(vector signed short __a, vector signed short __b) {
8031 return __builtin_s390_vavgh(__a, __b);
8034 static inline __ATTRS_o_ai vector signed int
8035 vec_avg(vector signed int __a, vector signed int __b) {
8036 return __builtin_s390_vavgf(__a, __b);
8039 static inline __ATTRS_o_ai vector signed long long
8040 vec_avg(vector signed long long __a, vector signed long long __b) {
8041 return __builtin_s390_vavgg(__a, __b);
8044 static inline __ATTRS_o_ai vector unsigned char
8045 vec_avg(vector unsigned char __a, vector unsigned char __b) {
8046 return __builtin_s390_vavglb(__a, __b);
8049 static inline __ATTRS_o_ai vector unsigned short
8050 vec_avg(vector unsigned short __a, vector unsigned short __b) {
8051 return __builtin_s390_vavglh(__a, __b);
8054 static inline __ATTRS_o_ai vector unsigned int
8055 vec_avg(vector unsigned int __a, vector unsigned int __b) {
8056 return __builtin_s390_vavglf(__a, __b);
8059 static inline __ATTRS_o_ai vector unsigned long long
8060 vec_avg(vector unsigned long long __a, vector unsigned long long __b) {
8061 return __builtin_s390_vavglg(__a, __b);
8064 /*-- vec_checksum -----------------------------------------------------------*/
8066 static inline __ATTRS_ai vector unsigned int
8067 vec_checksum(vector unsigned int __a, vector unsigned int __b) {
8068 return __builtin_s390_vcksm(__a, __b);
8071 /*-- vec_gfmsum -------------------------------------------------------------*/
8073 static inline __ATTRS_o_ai vector unsigned short
8074 vec_gfmsum(vector unsigned char __a, vector unsigned char __b) {
8075 return __builtin_s390_vgfmb(__a, __b);
8078 static inline __ATTRS_o_ai vector unsigned int
8079 vec_gfmsum(vector unsigned short __a, vector unsigned short __b) {
8080 return __builtin_s390_vgfmh(__a, __b);
8083 static inline __ATTRS_o_ai vector unsigned long long
8084 vec_gfmsum(vector unsigned int __a, vector unsigned int __b) {
8085 return __builtin_s390_vgfmf(__a, __b);
8088 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
8090 static inline __ATTRS_o_ai vector unsigned char
8091 vec_gfmsum_128(vector unsigned long long __a, vector unsigned long long __b) {
8092 return __builtin_s390_vgfmg(__a, __b);
8095 /*-- vec_gfmsum_accum -------------------------------------------------------*/
8097 static inline __ATTRS_o_ai vector unsigned short
8098 vec_gfmsum_accum(vector unsigned char __a, vector unsigned char __b,
8099 vector unsigned short __c) {
8100 return __builtin_s390_vgfmab(__a, __b, __c);
8103 static inline __ATTRS_o_ai vector unsigned int
8104 vec_gfmsum_accum(vector unsigned short __a, vector unsigned short __b,
8105 vector unsigned int __c) {
8106 return __builtin_s390_vgfmah(__a, __b, __c);
8109 static inline __ATTRS_o_ai vector unsigned long long
8110 vec_gfmsum_accum(vector unsigned int __a, vector unsigned int __b,
8111 vector unsigned long long __c) {
8112 return __builtin_s390_vgfmaf(__a, __b, __c);
8115 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
8117 static inline __ATTRS_o_ai vector unsigned char
8118 vec_gfmsum_accum_128(vector unsigned long long __a,
8119 vector unsigned long long __b,
8120 vector unsigned char __c) {
8121 return __builtin_s390_vgfmag(__a, __b, __c);
8124 /*-- vec_mladd --------------------------------------------------------------*/
8126 static inline __ATTRS_o_ai vector signed char
8127 vec_mladd(vector signed char __a, vector signed char __b,
8128 vector signed char __c) {
8129 return __a * __b + __c;
8132 static inline __ATTRS_o_ai vector signed char
8133 vec_mladd(vector unsigned char __a, vector signed char __b,
8134 vector signed char __c) {
8135 return (vector signed char)__a * __b + __c;
8138 static inline __ATTRS_o_ai vector signed char
8139 vec_mladd(vector signed char __a, vector unsigned char __b,
8140 vector unsigned char __c) {
8141 return __a * (vector signed char)__b + (vector signed char)__c;
8144 static inline __ATTRS_o_ai vector unsigned char
8145 vec_mladd(vector unsigned char __a, vector unsigned char __b,
8146 vector unsigned char __c) {
8147 return __a * __b + __c;
8150 static inline __ATTRS_o_ai vector signed short
8151 vec_mladd(vector signed short __a, vector signed short __b,
8152 vector signed short __c) {
8153 return __a * __b + __c;
8156 static inline __ATTRS_o_ai vector signed short
8157 vec_mladd(vector unsigned short __a, vector signed short __b,
8158 vector signed short __c) {
8159 return (vector signed short)__a * __b + __c;
8162 static inline __ATTRS_o_ai vector signed short
8163 vec_mladd(vector signed short __a, vector unsigned short __b,
8164 vector unsigned short __c) {
8165 return __a * (vector signed short)__b + (vector signed short)__c;
8168 static inline __ATTRS_o_ai vector unsigned short
8169 vec_mladd(vector unsigned short __a, vector unsigned short __b,
8170 vector unsigned short __c) {
8171 return __a * __b + __c;
8174 static inline __ATTRS_o_ai vector signed int
8175 vec_mladd(vector signed int __a, vector signed int __b,
8176 vector signed int __c) {
8177 return __a * __b + __c;
8180 static inline __ATTRS_o_ai vector signed int
8181 vec_mladd(vector unsigned int __a, vector signed int __b,
8182 vector signed int __c) {
8183 return (vector signed int)__a * __b + __c;
8186 static inline __ATTRS_o_ai vector signed int
8187 vec_mladd(vector signed int __a, vector unsigned int __b,
8188 vector unsigned int __c) {
8189 return __a * (vector signed int)__b + (vector signed int)__c;
8192 static inline __ATTRS_o_ai vector unsigned int
8193 vec_mladd(vector unsigned int __a, vector unsigned int __b,
8194 vector unsigned int __c) {
8195 return __a * __b + __c;
8198 /*-- vec_mhadd --------------------------------------------------------------*/
8200 static inline __ATTRS_o_ai vector signed char
8201 vec_mhadd(vector signed char __a, vector signed char __b,
8202 vector signed char __c) {
8203 return __builtin_s390_vmahb(__a, __b, __c);
8206 static inline __ATTRS_o_ai vector unsigned char
8207 vec_mhadd(vector unsigned char __a, vector unsigned char __b,
8208 vector unsigned char __c) {
8209 return __builtin_s390_vmalhb(__a, __b, __c);
8212 static inline __ATTRS_o_ai vector signed short
8213 vec_mhadd(vector signed short __a, vector signed short __b,
8214 vector signed short __c) {
8215 return __builtin_s390_vmahh(__a, __b, __c);
8218 static inline __ATTRS_o_ai vector unsigned short
8219 vec_mhadd(vector unsigned short __a, vector unsigned short __b,
8220 vector unsigned short __c) {
8221 return __builtin_s390_vmalhh(__a, __b, __c);
8224 static inline __ATTRS_o_ai vector signed int
8225 vec_mhadd(vector signed int __a, vector signed int __b,
8226 vector signed int __c) {
8227 return __builtin_s390_vmahf(__a, __b, __c);
8230 static inline __ATTRS_o_ai vector unsigned int
8231 vec_mhadd(vector unsigned int __a, vector unsigned int __b,
8232 vector unsigned int __c) {
8233 return __builtin_s390_vmalhf(__a, __b, __c);
8236 /*-- vec_meadd --------------------------------------------------------------*/
8238 static inline __ATTRS_o_ai vector signed short
8239 vec_meadd(vector signed char __a, vector signed char __b,
8240 vector signed short __c) {
8241 return __builtin_s390_vmaeb(__a, __b, __c);
8244 static inline __ATTRS_o_ai vector unsigned short
8245 vec_meadd(vector unsigned char __a, vector unsigned char __b,
8246 vector unsigned short __c) {
8247 return __builtin_s390_vmaleb(__a, __b, __c);
8250 static inline __ATTRS_o_ai vector signed int
8251 vec_meadd(vector signed short __a, vector signed short __b,
8252 vector signed int __c) {
8253 return __builtin_s390_vmaeh(__a, __b, __c);
8256 static inline __ATTRS_o_ai vector unsigned int
8257 vec_meadd(vector unsigned short __a, vector unsigned short __b,
8258 vector unsigned int __c) {
8259 return __builtin_s390_vmaleh(__a, __b, __c);
8262 static inline __ATTRS_o_ai vector signed long long
8263 vec_meadd(vector signed int __a, vector signed int __b,
8264 vector signed long long __c) {
8265 return __builtin_s390_vmaef(__a, __b, __c);
8268 static inline __ATTRS_o_ai vector unsigned long long
8269 vec_meadd(vector unsigned int __a, vector unsigned int __b,
8270 vector unsigned long long __c) {
8271 return __builtin_s390_vmalef(__a, __b, __c);
8274 /*-- vec_moadd --------------------------------------------------------------*/
8276 static inline __ATTRS_o_ai vector signed short
8277 vec_moadd(vector signed char __a, vector signed char __b,
8278 vector signed short __c) {
8279 return __builtin_s390_vmaob(__a, __b, __c);
8282 static inline __ATTRS_o_ai vector unsigned short
8283 vec_moadd(vector unsigned char __a, vector unsigned char __b,
8284 vector unsigned short __c) {
8285 return __builtin_s390_vmalob(__a, __b, __c);
8288 static inline __ATTRS_o_ai vector signed int
8289 vec_moadd(vector signed short __a, vector signed short __b,
8290 vector signed int __c) {
8291 return __builtin_s390_vmaoh(__a, __b, __c);
8294 static inline __ATTRS_o_ai vector unsigned int
8295 vec_moadd(vector unsigned short __a, vector unsigned short __b,
8296 vector unsigned int __c) {
8297 return __builtin_s390_vmaloh(__a, __b, __c);
8300 static inline __ATTRS_o_ai vector signed long long
8301 vec_moadd(vector signed int __a, vector signed int __b,
8302 vector signed long long __c) {
8303 return __builtin_s390_vmaof(__a, __b, __c);
8306 static inline __ATTRS_o_ai vector unsigned long long
8307 vec_moadd(vector unsigned int __a, vector unsigned int __b,
8308 vector unsigned long long __c) {
8309 return __builtin_s390_vmalof(__a, __b, __c);
8312 /*-- vec_mulh ---------------------------------------------------------------*/
8314 static inline __ATTRS_o_ai vector signed char
8315 vec_mulh(vector signed char __a, vector signed char __b) {
8316 return __builtin_s390_vmhb(__a, __b);
8319 static inline __ATTRS_o_ai vector unsigned char
8320 vec_mulh(vector unsigned char __a, vector unsigned char __b) {
8321 return __builtin_s390_vmlhb(__a, __b);
8324 static inline __ATTRS_o_ai vector signed short
8325 vec_mulh(vector signed short __a, vector signed short __b) {
8326 return __builtin_s390_vmhh(__a, __b);
8329 static inline __ATTRS_o_ai vector unsigned short
8330 vec_mulh(vector unsigned short __a, vector unsigned short __b) {
8331 return __builtin_s390_vmlhh(__a, __b);
8334 static inline __ATTRS_o_ai vector signed int
8335 vec_mulh(vector signed int __a, vector signed int __b) {
8336 return __builtin_s390_vmhf(__a, __b);
8339 static inline __ATTRS_o_ai vector unsigned int
8340 vec_mulh(vector unsigned int __a, vector unsigned int __b) {
8341 return __builtin_s390_vmlhf(__a, __b);
8344 /*-- vec_mule ---------------------------------------------------------------*/
8346 static inline __ATTRS_o_ai vector signed short
8347 vec_mule(vector signed char __a, vector signed char __b) {
8348 return __builtin_s390_vmeb(__a, __b);
8351 static inline __ATTRS_o_ai vector unsigned short
8352 vec_mule(vector unsigned char __a, vector unsigned char __b) {
8353 return __builtin_s390_vmleb(__a, __b);
8356 static inline __ATTRS_o_ai vector signed int
8357 vec_mule(vector signed short __a, vector signed short __b) {
8358 return __builtin_s390_vmeh(__a, __b);
8361 static inline __ATTRS_o_ai vector unsigned int
8362 vec_mule(vector unsigned short __a, vector unsigned short __b) {
8363 return __builtin_s390_vmleh(__a, __b);
8366 static inline __ATTRS_o_ai vector signed long long
8367 vec_mule(vector signed int __a, vector signed int __b) {
8368 return __builtin_s390_vmef(__a, __b);
8371 static inline __ATTRS_o_ai vector unsigned long long
8372 vec_mule(vector unsigned int __a, vector unsigned int __b) {
8373 return __builtin_s390_vmlef(__a, __b);
8376 /*-- vec_mulo ---------------------------------------------------------------*/
8378 static inline __ATTRS_o_ai vector signed short
8379 vec_mulo(vector signed char __a, vector signed char __b) {
8380 return __builtin_s390_vmob(__a, __b);
8383 static inline __ATTRS_o_ai vector unsigned short
8384 vec_mulo(vector unsigned char __a, vector unsigned char __b) {
8385 return __builtin_s390_vmlob(__a, __b);
8388 static inline __ATTRS_o_ai vector signed int
8389 vec_mulo(vector signed short __a, vector signed short __b) {
8390 return __builtin_s390_vmoh(__a, __b);
8393 static inline __ATTRS_o_ai vector unsigned int
8394 vec_mulo(vector unsigned short __a, vector unsigned short __b) {
8395 return __builtin_s390_vmloh(__a, __b);
8398 static inline __ATTRS_o_ai vector signed long long
8399 vec_mulo(vector signed int __a, vector signed int __b) {
8400 return __builtin_s390_vmof(__a, __b);
8403 static inline __ATTRS_o_ai vector unsigned long long
8404 vec_mulo(vector unsigned int __a, vector unsigned int __b) {
8405 return __builtin_s390_vmlof(__a, __b);
8408 /*-- vec_msum_u128 ----------------------------------------------------------*/
8411 #define vec_msum_u128(X, Y, Z, W) \
8412 ((vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W)));
8415 /*-- vec_sub_u128 -----------------------------------------------------------*/
8417 static inline __ATTRS_ai vector unsigned char
8418 vec_sub_u128(vector unsigned char __a, vector unsigned char __b) {
8419 return __builtin_s390_vsq(__a, __b);
8422 /*-- vec_subc ---------------------------------------------------------------*/
8424 static inline __ATTRS_o_ai vector unsigned char
8425 vec_subc(vector unsigned char __a, vector unsigned char __b) {
8426 return __builtin_s390_vscbib(__a, __b);
8429 static inline __ATTRS_o_ai vector unsigned short
8430 vec_subc(vector unsigned short __a, vector unsigned short __b) {
8431 return __builtin_s390_vscbih(__a, __b);
8434 static inline __ATTRS_o_ai vector unsigned int
8435 vec_subc(vector unsigned int __a, vector unsigned int __b) {
8436 return __builtin_s390_vscbif(__a, __b);
8439 static inline __ATTRS_o_ai vector unsigned long long
8440 vec_subc(vector unsigned long long __a, vector unsigned long long __b) {
8441 return __builtin_s390_vscbig(__a, __b);
8444 /*-- vec_subc_u128 ----------------------------------------------------------*/
8446 static inline __ATTRS_ai vector unsigned char
8447 vec_subc_u128(vector unsigned char __a, vector unsigned char __b) {
8448 return __builtin_s390_vscbiq(__a, __b);
8451 /*-- vec_sube_u128 ----------------------------------------------------------*/
8453 static inline __ATTRS_ai vector unsigned char
8454 vec_sube_u128(vector unsigned char __a, vector unsigned char __b,
8455 vector unsigned char __c) {
8456 return __builtin_s390_vsbiq(__a, __b, __c);
8459 /*-- vec_subec_u128 ---------------------------------------------------------*/
8461 static inline __ATTRS_ai vector unsigned char
8462 vec_subec_u128(vector unsigned char __a, vector unsigned char __b,
8463 vector unsigned char __c) {
8464 return __builtin_s390_vsbcbiq(__a, __b, __c);
8467 /*-- vec_sum2 ---------------------------------------------------------------*/
8469 static inline __ATTRS_o_ai vector unsigned long long
8470 vec_sum2(vector unsigned short __a, vector unsigned short __b) {
8471 return __builtin_s390_vsumgh(__a, __b);
8474 static inline __ATTRS_o_ai vector unsigned long long
8475 vec_sum2(vector unsigned int __a, vector unsigned int __b) {
8476 return __builtin_s390_vsumgf(__a, __b);
8479 /*-- vec_sum_u128 -----------------------------------------------------------*/
8481 static inline __ATTRS_o_ai vector unsigned char
8482 vec_sum_u128(vector unsigned int __a, vector unsigned int __b) {
8483 return __builtin_s390_vsumqf(__a, __b);
8486 static inline __ATTRS_o_ai vector unsigned char
8487 vec_sum_u128(vector unsigned long long __a, vector unsigned long long __b) {
8488 return __builtin_s390_vsumqg(__a, __b);
8491 /*-- vec_sum4 ---------------------------------------------------------------*/
8493 static inline __ATTRS_o_ai vector unsigned int
8494 vec_sum4(vector unsigned char __a, vector unsigned char __b) {
8495 return __builtin_s390_vsumb(__a, __b);
8498 static inline __ATTRS_o_ai vector unsigned int
8499 vec_sum4(vector unsigned short __a, vector unsigned short __b) {
8500 return __builtin_s390_vsumh(__a, __b);
8503 /*-- vec_test_mask ----------------------------------------------------------*/
8505 static inline __ATTRS_o_ai int
8506 vec_test_mask(vector signed char __a, vector unsigned char __b) {
8507 return __builtin_s390_vtm((vector unsigned char)__a,
8508 (vector unsigned char)__b);
8511 static inline __ATTRS_o_ai int
8512 vec_test_mask(vector unsigned char __a, vector unsigned char __b) {
8513 return __builtin_s390_vtm(__a, __b);
8516 static inline __ATTRS_o_ai int
8517 vec_test_mask(vector signed short __a, vector unsigned short __b) {
8518 return __builtin_s390_vtm((vector unsigned char)__a,
8519 (vector unsigned char)__b);
8522 static inline __ATTRS_o_ai int
8523 vec_test_mask(vector unsigned short __a, vector unsigned short __b) {
8524 return __builtin_s390_vtm((vector unsigned char)__a,
8525 (vector unsigned char)__b);
8528 static inline __ATTRS_o_ai int
8529 vec_test_mask(vector signed int __a, vector unsigned int __b) {
8530 return __builtin_s390_vtm((vector unsigned char)__a,
8531 (vector unsigned char)__b);
8534 static inline __ATTRS_o_ai int
8535 vec_test_mask(vector unsigned int __a, vector unsigned int __b) {
8536 return __builtin_s390_vtm((vector unsigned char)__a,
8537 (vector unsigned char)__b);
8540 static inline __ATTRS_o_ai int
8541 vec_test_mask(vector signed long long __a, vector unsigned long long __b) {
8542 return __builtin_s390_vtm((vector unsigned char)__a,
8543 (vector unsigned char)__b);
8546 static inline __ATTRS_o_ai int
8547 vec_test_mask(vector unsigned long long __a, vector unsigned long long __b) {
8548 return __builtin_s390_vtm((vector unsigned char)__a,
8549 (vector unsigned char)__b);
8553 static inline __ATTRS_o_ai int
8554 vec_test_mask(vector float __a, vector unsigned int __b) {
8555 return __builtin_s390_vtm((vector unsigned char)__a,
8556 (vector unsigned char)__b);
8560 static inline __ATTRS_o_ai int
8561 vec_test_mask(vector double __a, vector unsigned long long __b) {
8562 return __builtin_s390_vtm((vector unsigned char)__a,
8563 (vector unsigned char)__b);
8566 /*-- vec_madd ---------------------------------------------------------------*/
8569 static inline __ATTRS_o_ai vector float
8570 vec_madd(vector float __a, vector float __b, vector float __c) {
8571 return __builtin_s390_vfmasb(__a, __b, __c);
8575 static inline __ATTRS_o_ai vector double
8576 vec_madd(vector double __a, vector double __b, vector double __c) {
8577 return __builtin_s390_vfmadb(__a, __b, __c);
8580 /*-- vec_msub ---------------------------------------------------------------*/
8583 static inline __ATTRS_o_ai vector float
8584 vec_msub(vector float __a, vector float __b, vector float __c) {
8585 return __builtin_s390_vfmssb(__a, __b, __c);
8589 static inline __ATTRS_o_ai vector double
8590 vec_msub(vector double __a, vector double __b, vector double __c) {
8591 return __builtin_s390_vfmsdb(__a, __b, __c);
8594 /*-- vec_nmadd ---------------------------------------------------------------*/
8597 static inline __ATTRS_o_ai vector float
8598 vec_nmadd(vector float __a, vector float __b, vector float __c) {
8599 return __builtin_s390_vfnmasb(__a, __b, __c);
8602 static inline __ATTRS_o_ai vector double
8603 vec_nmadd(vector double __a, vector double __b, vector double __c) {
8604 return __builtin_s390_vfnmadb(__a, __b, __c);
8608 /*-- vec_nmsub ---------------------------------------------------------------*/
8611 static inline __ATTRS_o_ai vector float
8612 vec_nmsub(vector float __a, vector float __b, vector float __c) {
8613 return __builtin_s390_vfnmssb(__a, __b, __c);
8616 static inline __ATTRS_o_ai vector double
8617 vec_nmsub(vector double __a, vector double __b, vector double __c) {
8618 return __builtin_s390_vfnmsdb(__a, __b, __c);
8622 /*-- vec_sqrt ---------------------------------------------------------------*/
8625 static inline __ATTRS_o_ai vector float
8626 vec_sqrt(vector float __a) {
8627 return __builtin_s390_vfsqsb(__a);
8631 static inline __ATTRS_o_ai vector double
8632 vec_sqrt(vector double __a) {
8633 return __builtin_s390_vfsqdb(__a);
8636 /*-- vec_ld2f ---------------------------------------------------------------*/
8638 // This prototype is deprecated.
8639 static inline __ATTRS_ai vector double
8640 vec_ld2f(const float *__ptr) {
8641 typedef float __v2f32 __attribute__((__vector_size__(8)));
8642 return __builtin_convertvector(*(const __v2f32 *)__ptr, vector double);
8645 /*-- vec_st2f ---------------------------------------------------------------*/
8647 // This prototype is deprecated.
8648 static inline __ATTRS_ai void
8649 vec_st2f(vector double __a, float *__ptr) {
8650 typedef float __v2f32 __attribute__((__vector_size__(8)));
8651 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
8654 /*-- vec_ctd ----------------------------------------------------------------*/
8656 // This prototype is deprecated.
8657 static inline __ATTRS_o_ai vector double
8658 vec_ctd(vector signed long long __a, int __b)
8659 __constant_range(__b, 0, 31) {
8660 vector double __conv = __builtin_convertvector(__a, vector double);
8661 __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
8665 // This prototype is deprecated.
8666 static inline __ATTRS_o_ai vector double
8667 vec_ctd(vector unsigned long long __a, int __b)
8668 __constant_range(__b, 0, 31) {
8669 vector double __conv = __builtin_convertvector(__a, vector double);
8670 __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
8674 /*-- vec_ctsl ---------------------------------------------------------------*/
8676 // This prototype is deprecated.
8677 static inline __ATTRS_o_ai vector signed long long
8678 vec_ctsl(vector double __a, int __b)
8679 __constant_range(__b, 0, 31) {
8680 __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
8681 return __builtin_convertvector(__a, vector signed long long);
8684 /*-- vec_ctul ---------------------------------------------------------------*/
8686 // This prototype is deprecated.
8687 static inline __ATTRS_o_ai vector unsigned long long
8688 vec_ctul(vector double __a, int __b)
8689 __constant_range(__b, 0, 31) {
8690 __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
8691 return __builtin_convertvector(__a, vector unsigned long long);
8694 /*-- vec_doublee ------------------------------------------------------------*/
8697 static inline __ATTRS_ai vector double
8698 vec_doublee(vector float __a) {
8699 typedef float __v2f32 __attribute__((__vector_size__(8)));
8700 __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
8701 return __builtin_convertvector(__pack, vector double);
8705 /*-- vec_floate -------------------------------------------------------------*/
8708 static inline __ATTRS_ai vector float
8709 vec_floate(vector double __a) {
8710 typedef float __v2f32 __attribute__((__vector_size__(8)));
8711 __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
8712 return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
8716 /*-- vec_double -------------------------------------------------------------*/
8718 static inline __ATTRS_o_ai vector double
8719 vec_double(vector signed long long __a) {
8720 return __builtin_convertvector(__a, vector double);
8723 static inline __ATTRS_o_ai vector double
8724 vec_double(vector unsigned long long __a) {
8725 return __builtin_convertvector(__a, vector double);
8728 /*-- vec_signed -------------------------------------------------------------*/
8730 static inline __ATTRS_o_ai vector signed long long
8731 vec_signed(vector double __a) {
8732 return __builtin_convertvector(__a, vector signed long long);
8735 /*-- vec_unsigned -----------------------------------------------------------*/
8737 static inline __ATTRS_o_ai vector unsigned long long
8738 vec_unsigned(vector double __a) {
8739 return __builtin_convertvector(__a, vector unsigned long long);
8742 /*-- vec_roundp -------------------------------------------------------------*/
8745 static inline __ATTRS_o_ai vector float
8746 vec_roundp(vector float __a) {
8747 return __builtin_s390_vfisb(__a, 4, 6);
8751 static inline __ATTRS_o_ai vector double
8752 vec_roundp(vector double __a) {
8753 return __builtin_s390_vfidb(__a, 4, 6);
8756 /*-- vec_ceil ---------------------------------------------------------------*/
8759 static inline __ATTRS_o_ai vector float
8760 vec_ceil(vector float __a) {
8761 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
8762 return __builtin_s390_vfisb(__a, 4, 6);
8766 static inline __ATTRS_o_ai vector double
8767 vec_ceil(vector double __a) {
8768 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
8769 return __builtin_s390_vfidb(__a, 4, 6);
8772 /*-- vec_roundm -------------------------------------------------------------*/
8775 static inline __ATTRS_o_ai vector float
8776 vec_roundm(vector float __a) {
8777 return __builtin_s390_vfisb(__a, 4, 7);
8781 static inline __ATTRS_o_ai vector double
8782 vec_roundm(vector double __a) {
8783 return __builtin_s390_vfidb(__a, 4, 7);
8786 /*-- vec_floor --------------------------------------------------------------*/
8789 static inline __ATTRS_o_ai vector float
8790 vec_floor(vector float __a) {
8791 // On this platform, vec_floor never triggers the IEEE-inexact exception.
8792 return __builtin_s390_vfisb(__a, 4, 7);
8796 static inline __ATTRS_o_ai vector double
8797 vec_floor(vector double __a) {
8798 // On this platform, vec_floor never triggers the IEEE-inexact exception.
8799 return __builtin_s390_vfidb(__a, 4, 7);
8802 /*-- vec_roundz -------------------------------------------------------------*/
8805 static inline __ATTRS_o_ai vector float
8806 vec_roundz(vector float __a) {
8807 return __builtin_s390_vfisb(__a, 4, 5);
8811 static inline __ATTRS_o_ai vector double
8812 vec_roundz(vector double __a) {
8813 return __builtin_s390_vfidb(__a, 4, 5);
8816 /*-- vec_trunc --------------------------------------------------------------*/
8819 static inline __ATTRS_o_ai vector float
8820 vec_trunc(vector float __a) {
8821 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
8822 return __builtin_s390_vfisb(__a, 4, 5);
8826 static inline __ATTRS_o_ai vector double
8827 vec_trunc(vector double __a) {
8828 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
8829 return __builtin_s390_vfidb(__a, 4, 5);
8832 /*-- vec_roundc -------------------------------------------------------------*/
8835 static inline __ATTRS_o_ai vector float
8836 vec_roundc(vector float __a) {
8837 return __builtin_s390_vfisb(__a, 4, 0);
8841 static inline __ATTRS_o_ai vector double
8842 vec_roundc(vector double __a) {
8843 return __builtin_s390_vfidb(__a, 4, 0);
8846 /*-- vec_rint ---------------------------------------------------------------*/
8849 static inline __ATTRS_o_ai vector float
8850 vec_rint(vector float __a) {
8851 // vec_rint may trigger the IEEE-inexact exception.
8852 return __builtin_s390_vfisb(__a, 0, 0);
8856 static inline __ATTRS_o_ai vector double
8857 vec_rint(vector double __a) {
8858 // vec_rint may trigger the IEEE-inexact exception.
8859 return __builtin_s390_vfidb(__a, 0, 0);
8862 /*-- vec_round --------------------------------------------------------------*/
8865 static inline __ATTRS_o_ai vector float
8866 vec_round(vector float __a) {
8867 return __builtin_s390_vfisb(__a, 4, 4);
8871 static inline __ATTRS_o_ai vector double
8872 vec_round(vector double __a) {
8873 return __builtin_s390_vfidb(__a, 4, 4);
8876 /*-- vec_fp_test_data_class -------------------------------------------------*/
8879 extern __ATTRS_o vector bool int
8880 vec_fp_test_data_class(vector float __a, int __b, int *__c)
8881 __constant_range(__b, 0, 4095);
8883 extern __ATTRS_o vector bool long long
8884 vec_fp_test_data_class(vector double __a, int __b, int *__c)
8885 __constant_range(__b, 0, 4095);
8887 #define vec_fp_test_data_class(X, Y, Z) \
8888 ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
8890 vector unsigned char __res; \
8891 vector unsigned char __x = (vector unsigned char)(X); \
8893 switch (sizeof ((X)[0])) { \
8894 case 4: __res = (vector unsigned char) \
8895 __builtin_s390_vftcisb((vector float)__x, (Y), __z); \
8897 default: __res = (vector unsigned char) \
8898 __builtin_s390_vftcidb((vector double)__x, (Y), __z); \
8902 #define vec_fp_test_data_class(X, Y, Z) \
8903 ((vector bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
8906 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
8907 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
8908 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
8909 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
8910 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
8911 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
8912 __VEC_CLASS_FP_NORMAL_N)
8913 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
8914 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
8915 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
8916 __VEC_CLASS_FP_SUBNORMAL_N)
8917 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
8918 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
8919 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
8920 __VEC_CLASS_FP_INFINITY_N)
8921 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
8922 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
8923 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
8924 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
8925 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
8926 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
8927 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
8928 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
8929 __VEC_CLASS_FP_SUBNORMAL | \
8930 __VEC_CLASS_FP_ZERO | \
8931 __VEC_CLASS_FP_INFINITY)
8933 /*-- vec_cp_until_zero ------------------------------------------------------*/
8935 static inline __ATTRS_o_ai vector signed char
8936 vec_cp_until_zero(vector signed char __a) {
8937 return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a);
8940 static inline __ATTRS_o_ai vector bool char
8941 vec_cp_until_zero(vector bool char __a) {
8942 return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a);
8945 static inline __ATTRS_o_ai vector unsigned char
8946 vec_cp_until_zero(vector unsigned char __a) {
8947 return __builtin_s390_vistrb(__a);
8950 static inline __ATTRS_o_ai vector signed short
8951 vec_cp_until_zero(vector signed short __a) {
8952 return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a);
8955 static inline __ATTRS_o_ai vector bool short
8956 vec_cp_until_zero(vector bool short __a) {
8957 return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a);
8960 static inline __ATTRS_o_ai vector unsigned short
8961 vec_cp_until_zero(vector unsigned short __a) {
8962 return __builtin_s390_vistrh(__a);
8965 static inline __ATTRS_o_ai vector signed int
8966 vec_cp_until_zero(vector signed int __a) {
8967 return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a);
8970 static inline __ATTRS_o_ai vector bool int
8971 vec_cp_until_zero(vector bool int __a) {
8972 return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a);
8975 static inline __ATTRS_o_ai vector unsigned int
8976 vec_cp_until_zero(vector unsigned int __a) {
8977 return __builtin_s390_vistrf(__a);
8980 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
8982 static inline __ATTRS_o_ai vector signed char
8983 vec_cp_until_zero_cc(vector signed char __a, int *__cc) {
8984 return (vector signed char)
8985 __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
8988 static inline __ATTRS_o_ai vector bool char
8989 vec_cp_until_zero_cc(vector bool char __a, int *__cc) {
8990 return (vector bool char)
8991 __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
8994 static inline __ATTRS_o_ai vector unsigned char
8995 vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) {
8996 return __builtin_s390_vistrbs(__a, __cc);
8999 static inline __ATTRS_o_ai vector signed short
9000 vec_cp_until_zero_cc(vector signed short __a, int *__cc) {
9001 return (vector signed short)
9002 __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
9005 static inline __ATTRS_o_ai vector bool short
9006 vec_cp_until_zero_cc(vector bool short __a, int *__cc) {
9007 return (vector bool short)
9008 __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
9011 static inline __ATTRS_o_ai vector unsigned short
9012 vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) {
9013 return __builtin_s390_vistrhs(__a, __cc);
9016 static inline __ATTRS_o_ai vector signed int
9017 vec_cp_until_zero_cc(vector signed int __a, int *__cc) {
9018 return (vector signed int)
9019 __builtin_s390_vistrfs((vector unsigned int)__a, __cc);
9022 static inline __ATTRS_o_ai vector bool int
9023 vec_cp_until_zero_cc(vector bool int __a, int *__cc) {
9024 return (vector bool int)__builtin_s390_vistrfs((vector unsigned int)__a,
9028 static inline __ATTRS_o_ai vector unsigned int
9029 vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) {
9030 return __builtin_s390_vistrfs(__a, __cc);
9033 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
9035 static inline __ATTRS_o_ai vector signed char
9036 vec_cmpeq_idx(vector signed char __a, vector signed char __b) {
9037 return (vector signed char)
9038 __builtin_s390_vfeeb((vector unsigned char)__a,
9039 (vector unsigned char)__b);
9042 static inline __ATTRS_o_ai vector unsigned char
9043 vec_cmpeq_idx(vector bool char __a, vector bool char __b) {
9044 return __builtin_s390_vfeeb((vector unsigned char)__a,
9045 (vector unsigned char)__b);
9048 static inline __ATTRS_o_ai vector unsigned char
9049 vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) {
9050 return __builtin_s390_vfeeb(__a, __b);
9053 static inline __ATTRS_o_ai vector signed short
9054 vec_cmpeq_idx(vector signed short __a, vector signed short __b) {
9055 return (vector signed short)
9056 __builtin_s390_vfeeh((vector unsigned short)__a,
9057 (vector unsigned short)__b);
9060 static inline __ATTRS_o_ai vector unsigned short
9061 vec_cmpeq_idx(vector bool short __a, vector bool short __b) {
9062 return __builtin_s390_vfeeh((vector unsigned short)__a,
9063 (vector unsigned short)__b);
9066 static inline __ATTRS_o_ai vector unsigned short
9067 vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) {
9068 return __builtin_s390_vfeeh(__a, __b);
9071 static inline __ATTRS_o_ai vector signed int
9072 vec_cmpeq_idx(vector signed int __a, vector signed int __b) {
9073 return (vector signed int)
9074 __builtin_s390_vfeef((vector unsigned int)__a,
9075 (vector unsigned int)__b);
9078 static inline __ATTRS_o_ai vector unsigned int
9079 vec_cmpeq_idx(vector bool int __a, vector bool int __b) {
9080 return __builtin_s390_vfeef((vector unsigned int)__a,
9081 (vector unsigned int)__b);
9084 static inline __ATTRS_o_ai vector unsigned int
9085 vec_cmpeq_idx(vector unsigned int __a, vector unsigned int __b) {
9086 return __builtin_s390_vfeef(__a, __b);
9089 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
9091 static inline __ATTRS_o_ai vector signed char
9092 vec_cmpeq_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
9093 return (vector signed char)
9094 __builtin_s390_vfeebs((vector unsigned char)__a,
9095 (vector unsigned char)__b, __cc);
9098 static inline __ATTRS_o_ai vector unsigned char
9099 vec_cmpeq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9100 return __builtin_s390_vfeebs((vector unsigned char)__a,
9101 (vector unsigned char)__b, __cc);
9104 static inline __ATTRS_o_ai vector unsigned char
9105 vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b,
9107 return __builtin_s390_vfeebs(__a, __b, __cc);
9110 static inline __ATTRS_o_ai vector signed short
9111 vec_cmpeq_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
9112 return (vector signed short)
9113 __builtin_s390_vfeehs((vector unsigned short)__a,
9114 (vector unsigned short)__b, __cc);
9117 static inline __ATTRS_o_ai vector unsigned short
9118 vec_cmpeq_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9119 return __builtin_s390_vfeehs((vector unsigned short)__a,
9120 (vector unsigned short)__b, __cc);
9123 static inline __ATTRS_o_ai vector unsigned short
9124 vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b,
9126 return __builtin_s390_vfeehs(__a, __b, __cc);
9129 static inline __ATTRS_o_ai vector signed int
9130 vec_cmpeq_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9131 return (vector signed int)
9132 __builtin_s390_vfeefs((vector unsigned int)__a,
9133 (vector unsigned int)__b, __cc);
9136 static inline __ATTRS_o_ai vector unsigned int
9137 vec_cmpeq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9138 return __builtin_s390_vfeefs((vector unsigned int)__a,
9139 (vector unsigned int)__b, __cc);
9142 static inline __ATTRS_o_ai vector unsigned int
9143 vec_cmpeq_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
9144 return __builtin_s390_vfeefs(__a, __b, __cc);
9147 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
9149 static inline __ATTRS_o_ai vector signed char
9150 vec_cmpeq_or_0_idx(vector signed char __a, vector signed char __b) {
9151 return (vector signed char)
9152 __builtin_s390_vfeezb((vector unsigned char)__a,
9153 (vector unsigned char)__b);
9156 static inline __ATTRS_o_ai vector unsigned char
9157 vec_cmpeq_or_0_idx(vector bool char __a, vector bool char __b) {
9158 return __builtin_s390_vfeezb((vector unsigned char)__a,
9159 (vector unsigned char)__b);
9162 static inline __ATTRS_o_ai vector unsigned char
9163 vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9164 return __builtin_s390_vfeezb(__a, __b);
9167 static inline __ATTRS_o_ai vector signed short
9168 vec_cmpeq_or_0_idx(vector signed short __a, vector signed short __b) {
9169 return (vector signed short)
9170 __builtin_s390_vfeezh((vector unsigned short)__a,
9171 (vector unsigned short)__b);
9174 static inline __ATTRS_o_ai vector unsigned short
9175 vec_cmpeq_or_0_idx(vector bool short __a, vector bool short __b) {
9176 return __builtin_s390_vfeezh((vector unsigned short)__a,
9177 (vector unsigned short)__b);
9180 static inline __ATTRS_o_ai vector unsigned short
9181 vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9182 return __builtin_s390_vfeezh(__a, __b);
9185 static inline __ATTRS_o_ai vector signed int
9186 vec_cmpeq_or_0_idx(vector signed int __a, vector signed int __b) {
9187 return (vector signed int)
9188 __builtin_s390_vfeezf((vector unsigned int)__a,
9189 (vector unsigned int)__b);
9192 static inline __ATTRS_o_ai vector unsigned int
9193 vec_cmpeq_or_0_idx(vector bool int __a, vector bool int __b) {
9194 return __builtin_s390_vfeezf((vector unsigned int)__a,
9195 (vector unsigned int)__b);
9198 static inline __ATTRS_o_ai vector unsigned int
9199 vec_cmpeq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
9200 return __builtin_s390_vfeezf(__a, __b);
9203 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
9205 static inline __ATTRS_o_ai vector signed char
9206 vec_cmpeq_or_0_idx_cc(vector signed char __a, vector signed char __b,
9208 return (vector signed char)
9209 __builtin_s390_vfeezbs((vector unsigned char)__a,
9210 (vector unsigned char)__b, __cc);
9213 static inline __ATTRS_o_ai vector unsigned char
9214 vec_cmpeq_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9215 return __builtin_s390_vfeezbs((vector unsigned char)__a,
9216 (vector unsigned char)__b, __cc);
9219 static inline __ATTRS_o_ai vector unsigned char
9220 vec_cmpeq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9222 return __builtin_s390_vfeezbs(__a, __b, __cc);
9225 static inline __ATTRS_o_ai vector signed short
9226 vec_cmpeq_or_0_idx_cc(vector signed short __a, vector signed short __b,
9228 return (vector signed short)
9229 __builtin_s390_vfeezhs((vector unsigned short)__a,
9230 (vector unsigned short)__b, __cc);
9233 static inline __ATTRS_o_ai vector unsigned short
9234 vec_cmpeq_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9235 return __builtin_s390_vfeezhs((vector unsigned short)__a,
9236 (vector unsigned short)__b, __cc);
9239 static inline __ATTRS_o_ai vector unsigned short
9240 vec_cmpeq_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9242 return __builtin_s390_vfeezhs(__a, __b, __cc);
9245 static inline __ATTRS_o_ai vector signed int
9246 vec_cmpeq_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9247 return (vector signed int)
9248 __builtin_s390_vfeezfs((vector unsigned int)__a,
9249 (vector unsigned int)__b, __cc);
9252 static inline __ATTRS_o_ai vector unsigned int
9253 vec_cmpeq_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9254 return __builtin_s390_vfeezfs((vector unsigned int)__a,
9255 (vector unsigned int)__b, __cc);
9258 static inline __ATTRS_o_ai vector unsigned int
9259 vec_cmpeq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9261 return __builtin_s390_vfeezfs(__a, __b, __cc);
9264 /*-- vec_cmpne_idx ----------------------------------------------------------*/
9266 static inline __ATTRS_o_ai vector signed char
9267 vec_cmpne_idx(vector signed char __a, vector signed char __b) {
9268 return (vector signed char)
9269 __builtin_s390_vfeneb((vector unsigned char)__a,
9270 (vector unsigned char)__b);
9273 static inline __ATTRS_o_ai vector unsigned char
9274 vec_cmpne_idx(vector bool char __a, vector bool char __b) {
9275 return __builtin_s390_vfeneb((vector unsigned char)__a,
9276 (vector unsigned char)__b);
9279 static inline __ATTRS_o_ai vector unsigned char
9280 vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) {
9281 return __builtin_s390_vfeneb(__a, __b);
9284 static inline __ATTRS_o_ai vector signed short
9285 vec_cmpne_idx(vector signed short __a, vector signed short __b) {
9286 return (vector signed short)
9287 __builtin_s390_vfeneh((vector unsigned short)__a,
9288 (vector unsigned short)__b);
9291 static inline __ATTRS_o_ai vector unsigned short
9292 vec_cmpne_idx(vector bool short __a, vector bool short __b) {
9293 return __builtin_s390_vfeneh((vector unsigned short)__a,
9294 (vector unsigned short)__b);
9297 static inline __ATTRS_o_ai vector unsigned short
9298 vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) {
9299 return __builtin_s390_vfeneh(__a, __b);
9302 static inline __ATTRS_o_ai vector signed int
9303 vec_cmpne_idx(vector signed int __a, vector signed int __b) {
9304 return (vector signed int)
9305 __builtin_s390_vfenef((vector unsigned int)__a,
9306 (vector unsigned int)__b);
9309 static inline __ATTRS_o_ai vector unsigned int
9310 vec_cmpne_idx(vector bool int __a, vector bool int __b) {
9311 return __builtin_s390_vfenef((vector unsigned int)__a,
9312 (vector unsigned int)__b);
9315 static inline __ATTRS_o_ai vector unsigned int
9316 vec_cmpne_idx(vector unsigned int __a, vector unsigned int __b) {
9317 return __builtin_s390_vfenef(__a, __b);
9320 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
9322 static inline __ATTRS_o_ai vector signed char
9323 vec_cmpne_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
9324 return (vector signed char)
9325 __builtin_s390_vfenebs((vector unsigned char)__a,
9326 (vector unsigned char)__b, __cc);
9329 static inline __ATTRS_o_ai vector unsigned char
9330 vec_cmpne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9331 return __builtin_s390_vfenebs((vector unsigned char)__a,
9332 (vector unsigned char)__b, __cc);
9335 static inline __ATTRS_o_ai vector unsigned char
9336 vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b,
9338 return __builtin_s390_vfenebs(__a, __b, __cc);
9341 static inline __ATTRS_o_ai vector signed short
9342 vec_cmpne_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
9343 return (vector signed short)
9344 __builtin_s390_vfenehs((vector unsigned short)__a,
9345 (vector unsigned short)__b, __cc);
9348 static inline __ATTRS_o_ai vector unsigned short
9349 vec_cmpne_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9350 return __builtin_s390_vfenehs((vector unsigned short)__a,
9351 (vector unsigned short)__b, __cc);
9354 static inline __ATTRS_o_ai vector unsigned short
9355 vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b,
9357 return __builtin_s390_vfenehs(__a, __b, __cc);
9360 static inline __ATTRS_o_ai vector signed int
9361 vec_cmpne_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9362 return (vector signed int)
9363 __builtin_s390_vfenefs((vector unsigned int)__a,
9364 (vector unsigned int)__b, __cc);
9367 static inline __ATTRS_o_ai vector unsigned int
9368 vec_cmpne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9369 return __builtin_s390_vfenefs((vector unsigned int)__a,
9370 (vector unsigned int)__b, __cc);
9373 static inline __ATTRS_o_ai vector unsigned int
9374 vec_cmpne_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
9375 return __builtin_s390_vfenefs(__a, __b, __cc);
9378 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
9380 static inline __ATTRS_o_ai vector signed char
9381 vec_cmpne_or_0_idx(vector signed char __a, vector signed char __b) {
9382 return (vector signed char)
9383 __builtin_s390_vfenezb((vector unsigned char)__a,
9384 (vector unsigned char)__b);
9387 static inline __ATTRS_o_ai vector unsigned char
9388 vec_cmpne_or_0_idx(vector bool char __a, vector bool char __b) {
9389 return __builtin_s390_vfenezb((vector unsigned char)__a,
9390 (vector unsigned char)__b);
9393 static inline __ATTRS_o_ai vector unsigned char
9394 vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9395 return __builtin_s390_vfenezb(__a, __b);
9398 static inline __ATTRS_o_ai vector signed short
9399 vec_cmpne_or_0_idx(vector signed short __a, vector signed short __b) {
9400 return (vector signed short)
9401 __builtin_s390_vfenezh((vector unsigned short)__a,
9402 (vector unsigned short)__b);
9405 static inline __ATTRS_o_ai vector unsigned short
9406 vec_cmpne_or_0_idx(vector bool short __a, vector bool short __b) {
9407 return __builtin_s390_vfenezh((vector unsigned short)__a,
9408 (vector unsigned short)__b);
9411 static inline __ATTRS_o_ai vector unsigned short
9412 vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9413 return __builtin_s390_vfenezh(__a, __b);
9416 static inline __ATTRS_o_ai vector signed int
9417 vec_cmpne_or_0_idx(vector signed int __a, vector signed int __b) {
9418 return (vector signed int)
9419 __builtin_s390_vfenezf((vector unsigned int)__a,
9420 (vector unsigned int)__b);
9423 static inline __ATTRS_o_ai vector unsigned int
9424 vec_cmpne_or_0_idx(vector bool int __a, vector bool int __b) {
9425 return __builtin_s390_vfenezf((vector unsigned int)__a,
9426 (vector unsigned int)__b);
9429 static inline __ATTRS_o_ai vector unsigned int
9430 vec_cmpne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
9431 return __builtin_s390_vfenezf(__a, __b);
9434 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
9436 static inline __ATTRS_o_ai vector signed char
9437 vec_cmpne_or_0_idx_cc(vector signed char __a, vector signed char __b,
9439 return (vector signed char)
9440 __builtin_s390_vfenezbs((vector unsigned char)__a,
9441 (vector unsigned char)__b, __cc);
9444 static inline __ATTRS_o_ai vector unsigned char
9445 vec_cmpne_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9446 return __builtin_s390_vfenezbs((vector unsigned char)__a,
9447 (vector unsigned char)__b, __cc);
9450 static inline __ATTRS_o_ai vector unsigned char
9451 vec_cmpne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9453 return __builtin_s390_vfenezbs(__a, __b, __cc);
9456 static inline __ATTRS_o_ai vector signed short
9457 vec_cmpne_or_0_idx_cc(vector signed short __a, vector signed short __b,
9459 return (vector signed short)
9460 __builtin_s390_vfenezhs((vector unsigned short)__a,
9461 (vector unsigned short)__b, __cc);
9464 static inline __ATTRS_o_ai vector unsigned short
9465 vec_cmpne_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9466 return __builtin_s390_vfenezhs((vector unsigned short)__a,
9467 (vector unsigned short)__b, __cc);
9470 static inline __ATTRS_o_ai vector unsigned short
9471 vec_cmpne_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9473 return __builtin_s390_vfenezhs(__a, __b, __cc);
9476 static inline __ATTRS_o_ai vector signed int
9477 vec_cmpne_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9478 return (vector signed int)
9479 __builtin_s390_vfenezfs((vector unsigned int)__a,
9480 (vector unsigned int)__b, __cc);
9483 static inline __ATTRS_o_ai vector unsigned int
9484 vec_cmpne_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9485 return __builtin_s390_vfenezfs((vector unsigned int)__a,
9486 (vector unsigned int)__b, __cc);
9489 static inline __ATTRS_o_ai vector unsigned int
9490 vec_cmpne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9492 return __builtin_s390_vfenezfs(__a, __b, __cc);
9495 /*-- vec_cmprg --------------------------------------------------------------*/
9497 static inline __ATTRS_o_ai vector bool char
9498 vec_cmprg(vector unsigned char __a, vector unsigned char __b,
9499 vector unsigned char __c) {
9500 return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
9503 static inline __ATTRS_o_ai vector bool short
9504 vec_cmprg(vector unsigned short __a, vector unsigned short __b,
9505 vector unsigned short __c) {
9506 return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
9509 static inline __ATTRS_o_ai vector bool int
9510 vec_cmprg(vector unsigned int __a, vector unsigned int __b,
9511 vector unsigned int __c) {
9512 return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
9515 /*-- vec_cmprg_cc -----------------------------------------------------------*/
9517 static inline __ATTRS_o_ai vector bool char
9518 vec_cmprg_cc(vector unsigned char __a, vector unsigned char __b,
9519 vector unsigned char __c, int *__cc) {
9520 return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
9523 static inline __ATTRS_o_ai vector bool short
9524 vec_cmprg_cc(vector unsigned short __a, vector unsigned short __b,
9525 vector unsigned short __c, int *__cc) {
9526 return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
9529 static inline __ATTRS_o_ai vector bool int
9530 vec_cmprg_cc(vector unsigned int __a, vector unsigned int __b,
9531 vector unsigned int __c, int *__cc) {
9532 return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
9535 /*-- vec_cmprg_idx ----------------------------------------------------------*/
9537 static inline __ATTRS_o_ai vector unsigned char
9538 vec_cmprg_idx(vector unsigned char __a, vector unsigned char __b,
9539 vector unsigned char __c) {
9540 return __builtin_s390_vstrcb(__a, __b, __c, 0);
9543 static inline __ATTRS_o_ai vector unsigned short
9544 vec_cmprg_idx(vector unsigned short __a, vector unsigned short __b,
9545 vector unsigned short __c) {
9546 return __builtin_s390_vstrch(__a, __b, __c, 0);
9549 static inline __ATTRS_o_ai vector unsigned int
9550 vec_cmprg_idx(vector unsigned int __a, vector unsigned int __b,
9551 vector unsigned int __c) {
9552 return __builtin_s390_vstrcf(__a, __b, __c, 0);
9555 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
9557 static inline __ATTRS_o_ai vector unsigned char
9558 vec_cmprg_idx_cc(vector unsigned char __a, vector unsigned char __b,
9559 vector unsigned char __c, int *__cc) {
9560 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
9563 static inline __ATTRS_o_ai vector unsigned short
9564 vec_cmprg_idx_cc(vector unsigned short __a, vector unsigned short __b,
9565 vector unsigned short __c, int *__cc) {
9566 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
9569 static inline __ATTRS_o_ai vector unsigned int
9570 vec_cmprg_idx_cc(vector unsigned int __a, vector unsigned int __b,
9571 vector unsigned int __c, int *__cc) {
9572 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
9575 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
9577 static inline __ATTRS_o_ai vector unsigned char
9578 vec_cmprg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
9579 vector unsigned char __c) {
9580 return __builtin_s390_vstrczb(__a, __b, __c, 0);
9583 static inline __ATTRS_o_ai vector unsigned short
9584 vec_cmprg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
9585 vector unsigned short __c) {
9586 return __builtin_s390_vstrczh(__a, __b, __c, 0);
9589 static inline __ATTRS_o_ai vector unsigned int
9590 vec_cmprg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
9591 vector unsigned int __c) {
9592 return __builtin_s390_vstrczf(__a, __b, __c, 0);
9595 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
9597 static inline __ATTRS_o_ai vector unsigned char
9598 vec_cmprg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9599 vector unsigned char __c, int *__cc) {
9600 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
9603 static inline __ATTRS_o_ai vector unsigned short
9604 vec_cmprg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9605 vector unsigned short __c, int *__cc) {
9606 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
9609 static inline __ATTRS_o_ai vector unsigned int
9610 vec_cmprg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9611 vector unsigned int __c, int *__cc) {
9612 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
9615 /*-- vec_cmpnrg -------------------------------------------------------------*/
9617 static inline __ATTRS_o_ai vector bool char
9618 vec_cmpnrg(vector unsigned char __a, vector unsigned char __b,
9619 vector unsigned char __c) {
9620 return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
9623 static inline __ATTRS_o_ai vector bool short
9624 vec_cmpnrg(vector unsigned short __a, vector unsigned short __b,
9625 vector unsigned short __c) {
9626 return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
9629 static inline __ATTRS_o_ai vector bool int
9630 vec_cmpnrg(vector unsigned int __a, vector unsigned int __b,
9631 vector unsigned int __c) {
9632 return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
9635 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
9637 static inline __ATTRS_o_ai vector bool char
9638 vec_cmpnrg_cc(vector unsigned char __a, vector unsigned char __b,
9639 vector unsigned char __c, int *__cc) {
9640 return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
9643 static inline __ATTRS_o_ai vector bool short
9644 vec_cmpnrg_cc(vector unsigned short __a, vector unsigned short __b,
9645 vector unsigned short __c, int *__cc) {
9646 return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
9649 static inline __ATTRS_o_ai vector bool int
9650 vec_cmpnrg_cc(vector unsigned int __a, vector unsigned int __b,
9651 vector unsigned int __c, int *__cc) {
9652 return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
9655 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
9657 static inline __ATTRS_o_ai vector unsigned char
9658 vec_cmpnrg_idx(vector unsigned char __a, vector unsigned char __b,
9659 vector unsigned char __c) {
9660 return __builtin_s390_vstrcb(__a, __b, __c, 8);
9663 static inline __ATTRS_o_ai vector unsigned short
9664 vec_cmpnrg_idx(vector unsigned short __a, vector unsigned short __b,
9665 vector unsigned short __c) {
9666 return __builtin_s390_vstrch(__a, __b, __c, 8);
9669 static inline __ATTRS_o_ai vector unsigned int
9670 vec_cmpnrg_idx(vector unsigned int __a, vector unsigned int __b,
9671 vector unsigned int __c) {
9672 return __builtin_s390_vstrcf(__a, __b, __c, 8);
9675 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
9677 static inline __ATTRS_o_ai vector unsigned char
9678 vec_cmpnrg_idx_cc(vector unsigned char __a, vector unsigned char __b,
9679 vector unsigned char __c, int *__cc) {
9680 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
9683 static inline __ATTRS_o_ai vector unsigned short
9684 vec_cmpnrg_idx_cc(vector unsigned short __a, vector unsigned short __b,
9685 vector unsigned short __c, int *__cc) {
9686 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
9689 static inline __ATTRS_o_ai vector unsigned int
9690 vec_cmpnrg_idx_cc(vector unsigned int __a, vector unsigned int __b,
9691 vector unsigned int __c, int *__cc) {
9692 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
9695 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
9697 static inline __ATTRS_o_ai vector unsigned char
9698 vec_cmpnrg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
9699 vector unsigned char __c) {
9700 return __builtin_s390_vstrczb(__a, __b, __c, 8);
9703 static inline __ATTRS_o_ai vector unsigned short
9704 vec_cmpnrg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
9705 vector unsigned short __c) {
9706 return __builtin_s390_vstrczh(__a, __b, __c, 8);
9709 static inline __ATTRS_o_ai vector unsigned int
9710 vec_cmpnrg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
9711 vector unsigned int __c) {
9712 return __builtin_s390_vstrczf(__a, __b, __c, 8);
9715 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
9717 static inline __ATTRS_o_ai vector unsigned char
9718 vec_cmpnrg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9719 vector unsigned char __c, int *__cc) {
9720 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
9723 static inline __ATTRS_o_ai vector unsigned short
9724 vec_cmpnrg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9725 vector unsigned short __c, int *__cc) {
9726 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
9729 static inline __ATTRS_o_ai vector unsigned int
9730 vec_cmpnrg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9731 vector unsigned int __c, int *__cc) {
9732 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
9735 /*-- vec_find_any_eq --------------------------------------------------------*/
9737 static inline __ATTRS_o_ai vector bool char
9738 vec_find_any_eq(vector signed char __a, vector signed char __b) {
9739 return (vector bool char)
9740 __builtin_s390_vfaeb((vector unsigned char)__a,
9741 (vector unsigned char)__b, 4);
9744 static inline __ATTRS_o_ai vector bool char
9745 vec_find_any_eq(vector bool char __a, vector bool char __b) {
9746 return (vector bool char)
9747 __builtin_s390_vfaeb((vector unsigned char)__a,
9748 (vector unsigned char)__b, 4);
9751 static inline __ATTRS_o_ai vector bool char
9752 vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) {
9753 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4);
9756 static inline __ATTRS_o_ai vector bool short
9757 vec_find_any_eq(vector signed short __a, vector signed short __b) {
9758 return (vector bool short)
9759 __builtin_s390_vfaeh((vector unsigned short)__a,
9760 (vector unsigned short)__b, 4);
9763 static inline __ATTRS_o_ai vector bool short
9764 vec_find_any_eq(vector bool short __a, vector bool short __b) {
9765 return (vector bool short)
9766 __builtin_s390_vfaeh((vector unsigned short)__a,
9767 (vector unsigned short)__b, 4);
9770 static inline __ATTRS_o_ai vector bool short
9771 vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) {
9772 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4);
9775 static inline __ATTRS_o_ai vector bool int
9776 vec_find_any_eq(vector signed int __a, vector signed int __b) {
9777 return (vector bool int)
9778 __builtin_s390_vfaef((vector unsigned int)__a,
9779 (vector unsigned int)__b, 4);
9782 static inline __ATTRS_o_ai vector bool int
9783 vec_find_any_eq(vector bool int __a, vector bool int __b) {
9784 return (vector bool int)
9785 __builtin_s390_vfaef((vector unsigned int)__a,
9786 (vector unsigned int)__b, 4);
9789 static inline __ATTRS_o_ai vector bool int
9790 vec_find_any_eq(vector unsigned int __a, vector unsigned int __b) {
9791 return (vector bool int)__builtin_s390_vfaef(__a, __b, 4);
9794 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
9796 static inline __ATTRS_o_ai vector bool char
9797 vec_find_any_eq_cc(vector signed char __a, vector signed char __b, int *__cc) {
9798 return (vector bool char)
9799 __builtin_s390_vfaebs((vector unsigned char)__a,
9800 (vector unsigned char)__b, 4, __cc);
9803 static inline __ATTRS_o_ai vector bool char
9804 vec_find_any_eq_cc(vector bool char __a, vector bool char __b, int *__cc) {
9805 return (vector bool char)
9806 __builtin_s390_vfaebs((vector unsigned char)__a,
9807 (vector unsigned char)__b, 4, __cc);
9810 static inline __ATTRS_o_ai vector bool char
9811 vec_find_any_eq_cc(vector unsigned char __a, vector unsigned char __b,
9813 return (vector bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
9816 static inline __ATTRS_o_ai vector bool short
9817 vec_find_any_eq_cc(vector signed short __a, vector signed short __b,
9819 return (vector bool short)
9820 __builtin_s390_vfaehs((vector unsigned short)__a,
9821 (vector unsigned short)__b, 4, __cc);
9824 static inline __ATTRS_o_ai vector bool short
9825 vec_find_any_eq_cc(vector bool short __a, vector bool short __b, int *__cc) {
9826 return (vector bool short)
9827 __builtin_s390_vfaehs((vector unsigned short)__a,
9828 (vector unsigned short)__b, 4, __cc);
9831 static inline __ATTRS_o_ai vector bool short
9832 vec_find_any_eq_cc(vector unsigned short __a, vector unsigned short __b,
9834 return (vector bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
9837 static inline __ATTRS_o_ai vector bool int
9838 vec_find_any_eq_cc(vector signed int __a, vector signed int __b, int *__cc) {
9839 return (vector bool int)
9840 __builtin_s390_vfaefs((vector unsigned int)__a,
9841 (vector unsigned int)__b, 4, __cc);
9844 static inline __ATTRS_o_ai vector bool int
9845 vec_find_any_eq_cc(vector bool int __a, vector bool int __b, int *__cc) {
9846 return (vector bool int)
9847 __builtin_s390_vfaefs((vector unsigned int)__a,
9848 (vector unsigned int)__b, 4, __cc);
9851 static inline __ATTRS_o_ai vector bool int
9852 vec_find_any_eq_cc(vector unsigned int __a, vector unsigned int __b,
9854 return (vector bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
9857 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
9859 static inline __ATTRS_o_ai vector signed char
9860 vec_find_any_eq_idx(vector signed char __a, vector signed char __b) {
9861 return (vector signed char)
9862 __builtin_s390_vfaeb((vector unsigned char)__a,
9863 (vector unsigned char)__b, 0);
9866 static inline __ATTRS_o_ai vector unsigned char
9867 vec_find_any_eq_idx(vector bool char __a, vector bool char __b) {
9868 return __builtin_s390_vfaeb((vector unsigned char)__a,
9869 (vector unsigned char)__b, 0);
9872 static inline __ATTRS_o_ai vector unsigned char
9873 vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) {
9874 return __builtin_s390_vfaeb(__a, __b, 0);
9877 static inline __ATTRS_o_ai vector signed short
9878 vec_find_any_eq_idx(vector signed short __a, vector signed short __b) {
9879 return (vector signed short)
9880 __builtin_s390_vfaeh((vector unsigned short)__a,
9881 (vector unsigned short)__b, 0);
9884 static inline __ATTRS_o_ai vector unsigned short
9885 vec_find_any_eq_idx(vector bool short __a, vector bool short __b) {
9886 return __builtin_s390_vfaeh((vector unsigned short)__a,
9887 (vector unsigned short)__b, 0);
9890 static inline __ATTRS_o_ai vector unsigned short
9891 vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) {
9892 return __builtin_s390_vfaeh(__a, __b, 0);
9895 static inline __ATTRS_o_ai vector signed int
9896 vec_find_any_eq_idx(vector signed int __a, vector signed int __b) {
9897 return (vector signed int)
9898 __builtin_s390_vfaef((vector unsigned int)__a,
9899 (vector unsigned int)__b, 0);
9902 static inline __ATTRS_o_ai vector unsigned int
9903 vec_find_any_eq_idx(vector bool int __a, vector bool int __b) {
9904 return __builtin_s390_vfaef((vector unsigned int)__a,
9905 (vector unsigned int)__b, 0);
9908 static inline __ATTRS_o_ai vector unsigned int
9909 vec_find_any_eq_idx(vector unsigned int __a, vector unsigned int __b) {
9910 return __builtin_s390_vfaef(__a, __b, 0);
9913 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
9915 static inline __ATTRS_o_ai vector signed char
9916 vec_find_any_eq_idx_cc(vector signed char __a, vector signed char __b,
9918 return (vector signed char)
9919 __builtin_s390_vfaebs((vector unsigned char)__a,
9920 (vector unsigned char)__b, 0, __cc);
9923 static inline __ATTRS_o_ai vector unsigned char
9924 vec_find_any_eq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9925 return __builtin_s390_vfaebs((vector unsigned char)__a,
9926 (vector unsigned char)__b, 0, __cc);
9929 static inline __ATTRS_o_ai vector unsigned char
9930 vec_find_any_eq_idx_cc(vector unsigned char __a, vector unsigned char __b,
9932 return __builtin_s390_vfaebs(__a, __b, 0, __cc);
9935 static inline __ATTRS_o_ai vector signed short
9936 vec_find_any_eq_idx_cc(vector signed short __a, vector signed short __b,
9938 return (vector signed short)
9939 __builtin_s390_vfaehs((vector unsigned short)__a,
9940 (vector unsigned short)__b, 0, __cc);
9943 static inline __ATTRS_o_ai vector unsigned short
9944 vec_find_any_eq_idx_cc(vector bool short __a, vector bool short __b,
9946 return __builtin_s390_vfaehs((vector unsigned short)__a,
9947 (vector unsigned short)__b, 0, __cc);
9950 static inline __ATTRS_o_ai vector unsigned short
9951 vec_find_any_eq_idx_cc(vector unsigned short __a, vector unsigned short __b,
9953 return __builtin_s390_vfaehs(__a, __b, 0, __cc);
9956 static inline __ATTRS_o_ai vector signed int
9957 vec_find_any_eq_idx_cc(vector signed int __a, vector signed int __b,
9959 return (vector signed int)
9960 __builtin_s390_vfaefs((vector unsigned int)__a,
9961 (vector unsigned int)__b, 0, __cc);
9964 static inline __ATTRS_o_ai vector unsigned int
9965 vec_find_any_eq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9966 return __builtin_s390_vfaefs((vector unsigned int)__a,
9967 (vector unsigned int)__b, 0, __cc);
9970 static inline __ATTRS_o_ai vector unsigned int
9971 vec_find_any_eq_idx_cc(vector unsigned int __a, vector unsigned int __b,
9973 return __builtin_s390_vfaefs(__a, __b, 0, __cc);
9976 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
9978 static inline __ATTRS_o_ai vector signed char
9979 vec_find_any_eq_or_0_idx(vector signed char __a, vector signed char __b) {
9980 return (vector signed char)
9981 __builtin_s390_vfaezb((vector unsigned char)__a,
9982 (vector unsigned char)__b, 0);
9985 static inline __ATTRS_o_ai vector unsigned char
9986 vec_find_any_eq_or_0_idx(vector bool char __a, vector bool char __b) {
9987 return __builtin_s390_vfaezb((vector unsigned char)__a,
9988 (vector unsigned char)__b, 0);
9991 static inline __ATTRS_o_ai vector unsigned char
9992 vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9993 return __builtin_s390_vfaezb(__a, __b, 0);
9996 static inline __ATTRS_o_ai vector signed short
9997 vec_find_any_eq_or_0_idx(vector signed short __a, vector signed short __b) {
9998 return (vector signed short)
9999 __builtin_s390_vfaezh((vector unsigned short)__a,
10000 (vector unsigned short)__b, 0);
10003 static inline __ATTRS_o_ai vector unsigned short
10004 vec_find_any_eq_or_0_idx(vector bool short __a, vector bool short __b) {
10005 return __builtin_s390_vfaezh((vector unsigned short)__a,
10006 (vector unsigned short)__b, 0);
10009 static inline __ATTRS_o_ai vector unsigned short
10010 vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10011 return __builtin_s390_vfaezh(__a, __b, 0);
10014 static inline __ATTRS_o_ai vector signed int
10015 vec_find_any_eq_or_0_idx(vector signed int __a, vector signed int __b) {
10016 return (vector signed int)
10017 __builtin_s390_vfaezf((vector unsigned int)__a,
10018 (vector unsigned int)__b, 0);
10021 static inline __ATTRS_o_ai vector unsigned int
10022 vec_find_any_eq_or_0_idx(vector bool int __a, vector bool int __b) {
10023 return __builtin_s390_vfaezf((vector unsigned int)__a,
10024 (vector unsigned int)__b, 0);
10027 static inline __ATTRS_o_ai vector unsigned int
10028 vec_find_any_eq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
10029 return __builtin_s390_vfaezf(__a, __b, 0);
10032 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
10034 static inline __ATTRS_o_ai vector signed char
10035 vec_find_any_eq_or_0_idx_cc(vector signed char __a, vector signed char __b,
10037 return (vector signed char)
10038 __builtin_s390_vfaezbs((vector unsigned char)__a,
10039 (vector unsigned char)__b, 0, __cc);
10042 static inline __ATTRS_o_ai vector unsigned char
10043 vec_find_any_eq_or_0_idx_cc(vector bool char __a, vector bool char __b,
10045 return __builtin_s390_vfaezbs((vector unsigned char)__a,
10046 (vector unsigned char)__b, 0, __cc);
10049 static inline __ATTRS_o_ai vector unsigned char
10050 vec_find_any_eq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
10052 return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
10055 static inline __ATTRS_o_ai vector signed short
10056 vec_find_any_eq_or_0_idx_cc(vector signed short __a, vector signed short __b,
10058 return (vector signed short)
10059 __builtin_s390_vfaezhs((vector unsigned short)__a,
10060 (vector unsigned short)__b, 0, __cc);
10063 static inline __ATTRS_o_ai vector unsigned short
10064 vec_find_any_eq_or_0_idx_cc(vector bool short __a, vector bool short __b,
10066 return __builtin_s390_vfaezhs((vector unsigned short)__a,
10067 (vector unsigned short)__b, 0, __cc);
10070 static inline __ATTRS_o_ai vector unsigned short
10071 vec_find_any_eq_or_0_idx_cc(vector unsigned short __a,
10072 vector unsigned short __b, int *__cc) {
10073 return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
10076 static inline __ATTRS_o_ai vector signed int
10077 vec_find_any_eq_or_0_idx_cc(vector signed int __a, vector signed int __b,
10079 return (vector signed int)
10080 __builtin_s390_vfaezfs((vector unsigned int)__a,
10081 (vector unsigned int)__b, 0, __cc);
10084 static inline __ATTRS_o_ai vector unsigned int
10085 vec_find_any_eq_or_0_idx_cc(vector bool int __a, vector bool int __b,
10087 return __builtin_s390_vfaezfs((vector unsigned int)__a,
10088 (vector unsigned int)__b, 0, __cc);
10091 static inline __ATTRS_o_ai vector unsigned int
10092 vec_find_any_eq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
10094 return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
10097 /*-- vec_find_any_ne --------------------------------------------------------*/
10099 static inline __ATTRS_o_ai vector bool char
10100 vec_find_any_ne(vector signed char __a, vector signed char __b) {
10101 return (vector bool char)
10102 __builtin_s390_vfaeb((vector unsigned char)__a,
10103 (vector unsigned char)__b, 12);
10106 static inline __ATTRS_o_ai vector bool char
10107 vec_find_any_ne(vector bool char __a, vector bool char __b) {
10108 return (vector bool char)
10109 __builtin_s390_vfaeb((vector unsigned char)__a,
10110 (vector unsigned char)__b, 12);
10113 static inline __ATTRS_o_ai vector bool char
10114 vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) {
10115 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12);
10118 static inline __ATTRS_o_ai vector bool short
10119 vec_find_any_ne(vector signed short __a, vector signed short __b) {
10120 return (vector bool short)
10121 __builtin_s390_vfaeh((vector unsigned short)__a,
10122 (vector unsigned short)__b, 12);
10125 static inline __ATTRS_o_ai vector bool short
10126 vec_find_any_ne(vector bool short __a, vector bool short __b) {
10127 return (vector bool short)
10128 __builtin_s390_vfaeh((vector unsigned short)__a,
10129 (vector unsigned short)__b, 12);
10132 static inline __ATTRS_o_ai vector bool short
10133 vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) {
10134 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12);
10137 static inline __ATTRS_o_ai vector bool int
10138 vec_find_any_ne(vector signed int __a, vector signed int __b) {
10139 return (vector bool int)
10140 __builtin_s390_vfaef((vector unsigned int)__a,
10141 (vector unsigned int)__b, 12);
10144 static inline __ATTRS_o_ai vector bool int
10145 vec_find_any_ne(vector bool int __a, vector bool int __b) {
10146 return (vector bool int)
10147 __builtin_s390_vfaef((vector unsigned int)__a,
10148 (vector unsigned int)__b, 12);
10151 static inline __ATTRS_o_ai vector bool int
10152 vec_find_any_ne(vector unsigned int __a, vector unsigned int __b) {
10153 return (vector bool int)__builtin_s390_vfaef(__a, __b, 12);
10156 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
10158 static inline __ATTRS_o_ai vector bool char
10159 vec_find_any_ne_cc(vector signed char __a, vector signed char __b, int *__cc) {
10160 return (vector bool char)
10161 __builtin_s390_vfaebs((vector unsigned char)__a,
10162 (vector unsigned char)__b, 12, __cc);
10165 static inline __ATTRS_o_ai vector bool char
10166 vec_find_any_ne_cc(vector bool char __a, vector bool char __b, int *__cc) {
10167 return (vector bool char)
10168 __builtin_s390_vfaebs((vector unsigned char)__a,
10169 (vector unsigned char)__b, 12, __cc);
10172 static inline __ATTRS_o_ai vector bool char
10173 vec_find_any_ne_cc(vector unsigned char __a, vector unsigned char __b,
10175 return (vector bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
10178 static inline __ATTRS_o_ai vector bool short
10179 vec_find_any_ne_cc(vector signed short __a, vector signed short __b,
10181 return (vector bool short)
10182 __builtin_s390_vfaehs((vector unsigned short)__a,
10183 (vector unsigned short)__b, 12, __cc);
10186 static inline __ATTRS_o_ai vector bool short
10187 vec_find_any_ne_cc(vector bool short __a, vector bool short __b, int *__cc) {
10188 return (vector bool short)
10189 __builtin_s390_vfaehs((vector unsigned short)__a,
10190 (vector unsigned short)__b, 12, __cc);
10193 static inline __ATTRS_o_ai vector bool short
10194 vec_find_any_ne_cc(vector unsigned short __a, vector unsigned short __b,
10196 return (vector bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
10199 static inline __ATTRS_o_ai vector bool int
10200 vec_find_any_ne_cc(vector signed int __a, vector signed int __b, int *__cc) {
10201 return (vector bool int)
10202 __builtin_s390_vfaefs((vector unsigned int)__a,
10203 (vector unsigned int)__b, 12, __cc);
10206 static inline __ATTRS_o_ai vector bool int
10207 vec_find_any_ne_cc(vector bool int __a, vector bool int __b, int *__cc) {
10208 return (vector bool int)
10209 __builtin_s390_vfaefs((vector unsigned int)__a,
10210 (vector unsigned int)__b, 12, __cc);
10213 static inline __ATTRS_o_ai vector bool int
10214 vec_find_any_ne_cc(vector unsigned int __a, vector unsigned int __b,
10216 return (vector bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
10219 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
10221 static inline __ATTRS_o_ai vector signed char
10222 vec_find_any_ne_idx(vector signed char __a, vector signed char __b) {
10223 return (vector signed char)
10224 __builtin_s390_vfaeb((vector unsigned char)__a,
10225 (vector unsigned char)__b, 8);
10228 static inline __ATTRS_o_ai vector unsigned char
10229 vec_find_any_ne_idx(vector bool char __a, vector bool char __b) {
10230 return __builtin_s390_vfaeb((vector unsigned char)__a,
10231 (vector unsigned char)__b, 8);
10234 static inline __ATTRS_o_ai vector unsigned char
10235 vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) {
10236 return __builtin_s390_vfaeb(__a, __b, 8);
10239 static inline __ATTRS_o_ai vector signed short
10240 vec_find_any_ne_idx(vector signed short __a, vector signed short __b) {
10241 return (vector signed short)
10242 __builtin_s390_vfaeh((vector unsigned short)__a,
10243 (vector unsigned short)__b, 8);
10246 static inline __ATTRS_o_ai vector unsigned short
10247 vec_find_any_ne_idx(vector bool short __a, vector bool short __b) {
10248 return __builtin_s390_vfaeh((vector unsigned short)__a,
10249 (vector unsigned short)__b, 8);
10252 static inline __ATTRS_o_ai vector unsigned short
10253 vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) {
10254 return __builtin_s390_vfaeh(__a, __b, 8);
10257 static inline __ATTRS_o_ai vector signed int
10258 vec_find_any_ne_idx(vector signed int __a, vector signed int __b) {
10259 return (vector signed int)
10260 __builtin_s390_vfaef((vector unsigned int)__a,
10261 (vector unsigned int)__b, 8);
10264 static inline __ATTRS_o_ai vector unsigned int
10265 vec_find_any_ne_idx(vector bool int __a, vector bool int __b) {
10266 return __builtin_s390_vfaef((vector unsigned int)__a,
10267 (vector unsigned int)__b, 8);
10270 static inline __ATTRS_o_ai vector unsigned int
10271 vec_find_any_ne_idx(vector unsigned int __a, vector unsigned int __b) {
10272 return __builtin_s390_vfaef(__a, __b, 8);
10275 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
10277 static inline __ATTRS_o_ai vector signed char
10278 vec_find_any_ne_idx_cc(vector signed char __a, vector signed char __b,
10280 return (vector signed char)
10281 __builtin_s390_vfaebs((vector unsigned char)__a,
10282 (vector unsigned char)__b, 8, __cc);
10285 static inline __ATTRS_o_ai vector unsigned char
10286 vec_find_any_ne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
10287 return __builtin_s390_vfaebs((vector unsigned char)__a,
10288 (vector unsigned char)__b, 8, __cc);
10291 static inline __ATTRS_o_ai vector unsigned char
10292 vec_find_any_ne_idx_cc(vector unsigned char __a, vector unsigned char __b,
10294 return __builtin_s390_vfaebs(__a, __b, 8, __cc);
10297 static inline __ATTRS_o_ai vector signed short
10298 vec_find_any_ne_idx_cc(vector signed short __a, vector signed short __b,
10300 return (vector signed short)
10301 __builtin_s390_vfaehs((vector unsigned short)__a,
10302 (vector unsigned short)__b, 8, __cc);
10305 static inline __ATTRS_o_ai vector unsigned short
10306 vec_find_any_ne_idx_cc(vector bool short __a, vector bool short __b,
10308 return __builtin_s390_vfaehs((vector unsigned short)__a,
10309 (vector unsigned short)__b, 8, __cc);
10312 static inline __ATTRS_o_ai vector unsigned short
10313 vec_find_any_ne_idx_cc(vector unsigned short __a, vector unsigned short __b,
10315 return __builtin_s390_vfaehs(__a, __b, 8, __cc);
10318 static inline __ATTRS_o_ai vector signed int
10319 vec_find_any_ne_idx_cc(vector signed int __a, vector signed int __b,
10321 return (vector signed int)
10322 __builtin_s390_vfaefs((vector unsigned int)__a,
10323 (vector unsigned int)__b, 8, __cc);
10326 static inline __ATTRS_o_ai vector unsigned int
10327 vec_find_any_ne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
10328 return __builtin_s390_vfaefs((vector unsigned int)__a,
10329 (vector unsigned int)__b, 8, __cc);
10332 static inline __ATTRS_o_ai vector unsigned int
10333 vec_find_any_ne_idx_cc(vector unsigned int __a, vector unsigned int __b,
10335 return __builtin_s390_vfaefs(__a, __b, 8, __cc);
10338 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
10340 static inline __ATTRS_o_ai vector signed char
10341 vec_find_any_ne_or_0_idx(vector signed char __a, vector signed char __b) {
10342 return (vector signed char)
10343 __builtin_s390_vfaezb((vector unsigned char)__a,
10344 (vector unsigned char)__b, 8);
10347 static inline __ATTRS_o_ai vector unsigned char
10348 vec_find_any_ne_or_0_idx(vector bool char __a, vector bool char __b) {
10349 return __builtin_s390_vfaezb((vector unsigned char)__a,
10350 (vector unsigned char)__b, 8);
10353 static inline __ATTRS_o_ai vector unsigned char
10354 vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
10355 return __builtin_s390_vfaezb(__a, __b, 8);
10358 static inline __ATTRS_o_ai vector signed short
10359 vec_find_any_ne_or_0_idx(vector signed short __a, vector signed short __b) {
10360 return (vector signed short)
10361 __builtin_s390_vfaezh((vector unsigned short)__a,
10362 (vector unsigned short)__b, 8);
10365 static inline __ATTRS_o_ai vector unsigned short
10366 vec_find_any_ne_or_0_idx(vector bool short __a, vector bool short __b) {
10367 return __builtin_s390_vfaezh((vector unsigned short)__a,
10368 (vector unsigned short)__b, 8);
10371 static inline __ATTRS_o_ai vector unsigned short
10372 vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10373 return __builtin_s390_vfaezh(__a, __b, 8);
10376 static inline __ATTRS_o_ai vector signed int
10377 vec_find_any_ne_or_0_idx(vector signed int __a, vector signed int __b) {
10378 return (vector signed int)
10379 __builtin_s390_vfaezf((vector unsigned int)__a,
10380 (vector unsigned int)__b, 8);
10383 static inline __ATTRS_o_ai vector unsigned int
10384 vec_find_any_ne_or_0_idx(vector bool int __a, vector bool int __b) {
10385 return __builtin_s390_vfaezf((vector unsigned int)__a,
10386 (vector unsigned int)__b, 8);
10389 static inline __ATTRS_o_ai vector unsigned int
10390 vec_find_any_ne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
10391 return __builtin_s390_vfaezf(__a, __b, 8);
10394 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
10396 static inline __ATTRS_o_ai vector signed char
10397 vec_find_any_ne_or_0_idx_cc(vector signed char __a, vector signed char __b,
10399 return (vector signed char)
10400 __builtin_s390_vfaezbs((vector unsigned char)__a,
10401 (vector unsigned char)__b, 8, __cc);
10404 static inline __ATTRS_o_ai vector unsigned char
10405 vec_find_any_ne_or_0_idx_cc(vector bool char __a, vector bool char __b,
10407 return __builtin_s390_vfaezbs((vector unsigned char)__a,
10408 (vector unsigned char)__b, 8, __cc);
10411 static inline __ATTRS_o_ai vector unsigned char
10412 vec_find_any_ne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
10414 return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
10417 static inline __ATTRS_o_ai vector signed short
10418 vec_find_any_ne_or_0_idx_cc(vector signed short __a, vector signed short __b,
10420 return (vector signed short)
10421 __builtin_s390_vfaezhs((vector unsigned short)__a,
10422 (vector unsigned short)__b, 8, __cc);
10425 static inline __ATTRS_o_ai vector unsigned short
10426 vec_find_any_ne_or_0_idx_cc(vector bool short __a, vector bool short __b,
10428 return __builtin_s390_vfaezhs((vector unsigned short)__a,
10429 (vector unsigned short)__b, 8, __cc);
10432 static inline __ATTRS_o_ai vector unsigned short
10433 vec_find_any_ne_or_0_idx_cc(vector unsigned short __a,
10434 vector unsigned short __b, int *__cc) {
10435 return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
10438 static inline __ATTRS_o_ai vector signed int
10439 vec_find_any_ne_or_0_idx_cc(vector signed int __a, vector signed int __b,
10441 return (vector signed int)
10442 __builtin_s390_vfaezfs((vector unsigned int)__a,
10443 (vector unsigned int)__b, 8, __cc);
10446 static inline __ATTRS_o_ai vector unsigned int
10447 vec_find_any_ne_or_0_idx_cc(vector bool int __a, vector bool int __b,
10449 return __builtin_s390_vfaezfs((vector unsigned int)__a,
10450 (vector unsigned int)__b, 8, __cc);
10453 static inline __ATTRS_o_ai vector unsigned int
10454 vec_find_any_ne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
10456 return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
10459 #undef __constant_pow2_range
10460 #undef __constant_range
10463 #undef __ATTRS_o_ai
10468 #error "Use -fzvector to enable vector extensions"