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];
119 static inline __ATTRS_o_ai
double
120 vec_extract(vector
double __vec
, int __index
) {
121 return __vec
[__index
& 1];
124 /*-- vec_insert -------------------------------------------------------------*/
126 static inline __ATTRS_o_ai vector
signed char
127 vec_insert(signed char __scalar
, vector
signed char __vec
, int __index
) {
128 __vec
[__index
& 15] = __scalar
;
132 static inline __ATTRS_o_ai vector
unsigned char
133 vec_insert(unsigned char __scalar
, vector
bool char __vec
, int __index
) {
134 vector
unsigned char __newvec
= (vector
unsigned char)__vec
;
135 __newvec
[__index
& 15] = (unsigned char)__scalar
;
139 static inline __ATTRS_o_ai vector
unsigned char
140 vec_insert(unsigned char __scalar
, vector
unsigned char __vec
, int __index
) {
141 __vec
[__index
& 15] = __scalar
;
145 static inline __ATTRS_o_ai vector
signed short
146 vec_insert(signed short __scalar
, vector
signed short __vec
, int __index
) {
147 __vec
[__index
& 7] = __scalar
;
151 static inline __ATTRS_o_ai vector
unsigned short
152 vec_insert(unsigned short __scalar
, vector
bool short __vec
, int __index
) {
153 vector
unsigned short __newvec
= (vector
unsigned short)__vec
;
154 __newvec
[__index
& 7] = (unsigned short)__scalar
;
158 static inline __ATTRS_o_ai vector
unsigned short
159 vec_insert(unsigned short __scalar
, vector
unsigned short __vec
, int __index
) {
160 __vec
[__index
& 7] = __scalar
;
164 static inline __ATTRS_o_ai vector
signed int
165 vec_insert(signed int __scalar
, vector
signed int __vec
, int __index
) {
166 __vec
[__index
& 3] = __scalar
;
170 static inline __ATTRS_o_ai vector
unsigned int
171 vec_insert(unsigned int __scalar
, vector
bool int __vec
, int __index
) {
172 vector
unsigned int __newvec
= (vector
unsigned int)__vec
;
173 __newvec
[__index
& 3] = __scalar
;
177 static inline __ATTRS_o_ai vector
unsigned int
178 vec_insert(unsigned int __scalar
, vector
unsigned int __vec
, int __index
) {
179 __vec
[__index
& 3] = __scalar
;
183 static inline __ATTRS_o_ai vector
signed long long
184 vec_insert(signed long long __scalar
, vector
signed long long __vec
,
186 __vec
[__index
& 1] = __scalar
;
190 static inline __ATTRS_o_ai vector
unsigned long long
191 vec_insert(unsigned long long __scalar
, vector
bool long long __vec
,
193 vector
unsigned long long __newvec
= (vector
unsigned long long)__vec
;
194 __newvec
[__index
& 1] = __scalar
;
198 static inline __ATTRS_o_ai vector
unsigned long long
199 vec_insert(unsigned long long __scalar
, vector
unsigned long long __vec
,
201 __vec
[__index
& 1] = __scalar
;
205 static inline __ATTRS_o_ai vector
double
206 vec_insert(double __scalar
, vector
double __vec
, int __index
) {
207 __vec
[__index
& 1] = __scalar
;
211 /*-- vec_promote ------------------------------------------------------------*/
213 static inline __ATTRS_o_ai vector
signed char
214 vec_promote(signed char __scalar
, int __index
) {
215 const vector
signed char __zero
= (vector
signed char)0;
216 vector
signed char __vec
= __builtin_shufflevector(__zero
, __zero
,
217 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
218 __vec
[__index
& 15] = __scalar
;
222 static inline __ATTRS_o_ai vector
unsigned char
223 vec_promote(unsigned char __scalar
, int __index
) {
224 const vector
unsigned char __zero
= (vector
unsigned char)0;
225 vector
unsigned char __vec
= __builtin_shufflevector(__zero
, __zero
,
226 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
227 __vec
[__index
& 15] = __scalar
;
231 static inline __ATTRS_o_ai vector
signed short
232 vec_promote(signed short __scalar
, int __index
) {
233 const vector
signed short __zero
= (vector
signed short)0;
234 vector
signed short __vec
= __builtin_shufflevector(__zero
, __zero
,
235 -1, -1, -1, -1, -1, -1, -1, -1);
236 __vec
[__index
& 7] = __scalar
;
240 static inline __ATTRS_o_ai vector
unsigned short
241 vec_promote(unsigned short __scalar
, int __index
) {
242 const vector
unsigned short __zero
= (vector
unsigned short)0;
243 vector
unsigned short __vec
= __builtin_shufflevector(__zero
, __zero
,
244 -1, -1, -1, -1, -1, -1, -1, -1);
245 __vec
[__index
& 7] = __scalar
;
249 static inline __ATTRS_o_ai vector
signed int
250 vec_promote(signed int __scalar
, int __index
) {
251 const vector
signed int __zero
= (vector
signed int)0;
252 vector
signed int __vec
= __builtin_shufflevector(__zero
, __zero
,
254 __vec
[__index
& 3] = __scalar
;
258 static inline __ATTRS_o_ai vector
unsigned int
259 vec_promote(unsigned int __scalar
, int __index
) {
260 const vector
unsigned int __zero
= (vector
unsigned int)0;
261 vector
unsigned int __vec
= __builtin_shufflevector(__zero
, __zero
,
263 __vec
[__index
& 3] = __scalar
;
267 static inline __ATTRS_o_ai vector
signed long long
268 vec_promote(signed long long __scalar
, int __index
) {
269 const vector
signed long long __zero
= (vector
signed long long)0;
270 vector
signed long long __vec
= __builtin_shufflevector(__zero
, __zero
,
272 __vec
[__index
& 1] = __scalar
;
276 static inline __ATTRS_o_ai vector
unsigned long long
277 vec_promote(unsigned long long __scalar
, int __index
) {
278 const vector
unsigned long long __zero
= (vector
unsigned long long)0;
279 vector
unsigned long long __vec
= __builtin_shufflevector(__zero
, __zero
,
281 __vec
[__index
& 1] = __scalar
;
285 static inline __ATTRS_o_ai vector
double
286 vec_promote(double __scalar
, int __index
) {
287 const vector
double __zero
= (vector
double)0;
288 vector
double __vec
= __builtin_shufflevector(__zero
, __zero
, -1, -1);
289 __vec
[__index
& 1] = __scalar
;
293 /*-- vec_insert_and_zero ----------------------------------------------------*/
295 static inline __ATTRS_o_ai vector
signed char
296 vec_insert_and_zero(const signed char *__ptr
) {
297 vector
signed char __vec
= (vector
signed char)0;
302 static inline __ATTRS_o_ai vector
unsigned char
303 vec_insert_and_zero(const unsigned char *__ptr
) {
304 vector
unsigned char __vec
= (vector
unsigned char)0;
309 static inline __ATTRS_o_ai vector
signed short
310 vec_insert_and_zero(const signed short *__ptr
) {
311 vector
signed short __vec
= (vector
signed short)0;
316 static inline __ATTRS_o_ai vector
unsigned short
317 vec_insert_and_zero(const unsigned short *__ptr
) {
318 vector
unsigned short __vec
= (vector
unsigned short)0;
323 static inline __ATTRS_o_ai vector
signed int
324 vec_insert_and_zero(const signed int *__ptr
) {
325 vector
signed int __vec
= (vector
signed int)0;
330 static inline __ATTRS_o_ai vector
unsigned int
331 vec_insert_and_zero(const unsigned int *__ptr
) {
332 vector
unsigned int __vec
= (vector
unsigned int)0;
337 static inline __ATTRS_o_ai vector
signed long long
338 vec_insert_and_zero(const signed long long *__ptr
) {
339 vector
signed long long __vec
= (vector
signed long long)0;
344 static inline __ATTRS_o_ai vector
unsigned long long
345 vec_insert_and_zero(const unsigned long long *__ptr
) {
346 vector
unsigned long long __vec
= (vector
unsigned long long)0;
351 static inline __ATTRS_o_ai vector
double
352 vec_insert_and_zero(const double *__ptr
) {
353 vector
double __vec
= (vector
double)0;
358 /*-- vec_perm ---------------------------------------------------------------*/
360 static inline __ATTRS_o_ai vector
signed char
361 vec_perm(vector
signed char __a
, vector
signed char __b
,
362 vector
unsigned char __c
) {
363 return (vector
signed char)__builtin_s390_vperm(
364 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
367 static inline __ATTRS_o_ai vector
unsigned char
368 vec_perm(vector
unsigned char __a
, vector
unsigned char __b
,
369 vector
unsigned char __c
) {
370 return (vector
unsigned char)__builtin_s390_vperm(
371 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
374 static inline __ATTRS_o_ai vector
bool char
375 vec_perm(vector
bool char __a
, vector
bool char __b
,
376 vector
unsigned char __c
) {
377 return (vector
bool char)__builtin_s390_vperm(
378 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
381 static inline __ATTRS_o_ai vector
signed short
382 vec_perm(vector
signed short __a
, vector
signed short __b
,
383 vector
unsigned char __c
) {
384 return (vector
signed short)__builtin_s390_vperm(
385 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
388 static inline __ATTRS_o_ai vector
unsigned short
389 vec_perm(vector
unsigned short __a
, vector
unsigned short __b
,
390 vector
unsigned char __c
) {
391 return (vector
unsigned short)__builtin_s390_vperm(
392 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
395 static inline __ATTRS_o_ai vector
bool short
396 vec_perm(vector
bool short __a
, vector
bool short __b
,
397 vector
unsigned char __c
) {
398 return (vector
bool short)__builtin_s390_vperm(
399 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
402 static inline __ATTRS_o_ai vector
signed int
403 vec_perm(vector
signed int __a
, vector
signed int __b
,
404 vector
unsigned char __c
) {
405 return (vector
signed int)__builtin_s390_vperm(
406 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
409 static inline __ATTRS_o_ai vector
unsigned int
410 vec_perm(vector
unsigned int __a
, vector
unsigned int __b
,
411 vector
unsigned char __c
) {
412 return (vector
unsigned int)__builtin_s390_vperm(
413 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
416 static inline __ATTRS_o_ai vector
bool int
417 vec_perm(vector
bool int __a
, vector
bool int __b
,
418 vector
unsigned char __c
) {
419 return (vector
bool int)__builtin_s390_vperm(
420 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
423 static inline __ATTRS_o_ai vector
signed long long
424 vec_perm(vector
signed long long __a
, vector
signed long long __b
,
425 vector
unsigned char __c
) {
426 return (vector
signed long long)__builtin_s390_vperm(
427 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
430 static inline __ATTRS_o_ai vector
unsigned long long
431 vec_perm(vector
unsigned long long __a
, vector
unsigned long long __b
,
432 vector
unsigned char __c
) {
433 return (vector
unsigned long long)__builtin_s390_vperm(
434 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
437 static inline __ATTRS_o_ai vector
bool long long
438 vec_perm(vector
bool long long __a
, vector
bool long long __b
,
439 vector
unsigned char __c
) {
440 return (vector
bool long long)__builtin_s390_vperm(
441 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
444 static inline __ATTRS_o_ai vector
double
445 vec_perm(vector
double __a
, vector
double __b
,
446 vector
unsigned char __c
) {
447 return (vector
double)__builtin_s390_vperm(
448 (vector
unsigned char)__a
, (vector
unsigned char)__b
, __c
);
451 /*-- vec_permi --------------------------------------------------------------*/
453 extern __ATTRS_o vector
signed long long
454 vec_permi(vector
signed long long __a
, vector
signed long long __b
, int __c
)
455 __constant_range(__c
, 0, 3);
457 extern __ATTRS_o vector
unsigned long long
458 vec_permi(vector
unsigned long long __a
, vector
unsigned long long __b
, int __c
)
459 __constant_range(__c
, 0, 3);
461 extern __ATTRS_o vector
bool long long
462 vec_permi(vector
bool long long __a
, vector
bool long long __b
, int __c
)
463 __constant_range(__c
, 0, 3);
465 extern __ATTRS_o vector
double
466 vec_permi(vector
double __a
, vector
double __b
, int __c
)
467 __constant_range(__c
, 0, 3);
469 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
470 __builtin_s390_vpdi((vector unsigned long long)(X), \
471 (vector unsigned long long)(Y), \
472 (((Z) & 2) << 1) | ((Z) & 1)))
474 /*-- vec_sel ----------------------------------------------------------------*/
476 static inline __ATTRS_o_ai vector
signed char
477 vec_sel(vector
signed char __a
, vector
signed char __b
,
478 vector
unsigned char __c
) {
479 return ((vector
signed char)__c
& __b
) | (~(vector
signed char)__c
& __a
);
482 static inline __ATTRS_o_ai vector
signed char
483 vec_sel(vector
signed char __a
, vector
signed char __b
, vector
bool char __c
) {
484 return ((vector
signed char)__c
& __b
) | (~(vector
signed char)__c
& __a
);
487 static inline __ATTRS_o_ai vector
bool char
488 vec_sel(vector
bool char __a
, vector
bool char __b
, vector
unsigned char __c
) {
489 return ((vector
bool char)__c
& __b
) | (~(vector
bool char)__c
& __a
);
492 static inline __ATTRS_o_ai vector
bool char
493 vec_sel(vector
bool char __a
, vector
bool char __b
, vector
bool char __c
) {
494 return (__c
& __b
) | (~__c
& __a
);
497 static inline __ATTRS_o_ai vector
unsigned char
498 vec_sel(vector
unsigned char __a
, vector
unsigned char __b
,
499 vector
unsigned char __c
) {
500 return (__c
& __b
) | (~__c
& __a
);
503 static inline __ATTRS_o_ai vector
unsigned char
504 vec_sel(vector
unsigned char __a
, vector
unsigned char __b
,
505 vector
bool char __c
) {
506 return ((vector
unsigned char)__c
& __b
) | (~(vector
unsigned char)__c
& __a
);
509 static inline __ATTRS_o_ai vector
signed short
510 vec_sel(vector
signed short __a
, vector
signed short __b
,
511 vector
unsigned short __c
) {
512 return ((vector
signed short)__c
& __b
) | (~(vector
signed short)__c
& __a
);
515 static inline __ATTRS_o_ai vector
signed short
516 vec_sel(vector
signed short __a
, vector
signed short __b
,
517 vector
bool short __c
) {
518 return ((vector
signed short)__c
& __b
) | (~(vector
signed short)__c
& __a
);
521 static inline __ATTRS_o_ai vector
bool short
522 vec_sel(vector
bool short __a
, vector
bool short __b
,
523 vector
unsigned short __c
) {
524 return ((vector
bool short)__c
& __b
) | (~(vector
bool short)__c
& __a
);
527 static inline __ATTRS_o_ai vector
bool short
528 vec_sel(vector
bool short __a
, vector
bool short __b
, vector
bool short __c
) {
529 return (__c
& __b
) | (~__c
& __a
);
532 static inline __ATTRS_o_ai vector
unsigned short
533 vec_sel(vector
unsigned short __a
, vector
unsigned short __b
,
534 vector
unsigned short __c
) {
535 return (__c
& __b
) | (~__c
& __a
);
538 static inline __ATTRS_o_ai vector
unsigned short
539 vec_sel(vector
unsigned short __a
, vector
unsigned short __b
,
540 vector
bool short __c
) {
541 return (((vector
unsigned short)__c
& __b
) |
542 (~(vector
unsigned short)__c
& __a
));
545 static inline __ATTRS_o_ai vector
signed int
546 vec_sel(vector
signed int __a
, vector
signed int __b
,
547 vector
unsigned int __c
) {
548 return ((vector
signed int)__c
& __b
) | (~(vector
signed int)__c
& __a
);
551 static inline __ATTRS_o_ai vector
signed int
552 vec_sel(vector
signed int __a
, vector
signed int __b
, vector
bool int __c
) {
553 return ((vector
signed int)__c
& __b
) | (~(vector
signed int)__c
& __a
);
556 static inline __ATTRS_o_ai vector
bool int
557 vec_sel(vector
bool int __a
, vector
bool int __b
, vector
unsigned int __c
) {
558 return ((vector
bool int)__c
& __b
) | (~(vector
bool int)__c
& __a
);
561 static inline __ATTRS_o_ai vector
bool int
562 vec_sel(vector
bool int __a
, vector
bool int __b
, vector
bool int __c
) {
563 return (__c
& __b
) | (~__c
& __a
);
566 static inline __ATTRS_o_ai vector
unsigned int
567 vec_sel(vector
unsigned int __a
, vector
unsigned int __b
,
568 vector
unsigned int __c
) {
569 return (__c
& __b
) | (~__c
& __a
);
572 static inline __ATTRS_o_ai vector
unsigned int
573 vec_sel(vector
unsigned int __a
, vector
unsigned int __b
, vector
bool int __c
) {
574 return ((vector
unsigned int)__c
& __b
) | (~(vector
unsigned int)__c
& __a
);
577 static inline __ATTRS_o_ai vector
signed long long
578 vec_sel(vector
signed long long __a
, vector
signed long long __b
,
579 vector
unsigned long long __c
) {
580 return (((vector
signed long long)__c
& __b
) |
581 (~(vector
signed long long)__c
& __a
));
584 static inline __ATTRS_o_ai vector
signed long long
585 vec_sel(vector
signed long long __a
, vector
signed long long __b
,
586 vector
bool long long __c
) {
587 return (((vector
signed long long)__c
& __b
) |
588 (~(vector
signed long long)__c
& __a
));
591 static inline __ATTRS_o_ai vector
bool long long
592 vec_sel(vector
bool long long __a
, vector
bool long long __b
,
593 vector
unsigned long long __c
) {
594 return (((vector
bool long long)__c
& __b
) |
595 (~(vector
bool long long)__c
& __a
));
598 static inline __ATTRS_o_ai vector
bool long long
599 vec_sel(vector
bool long long __a
, vector
bool long long __b
,
600 vector
bool long long __c
) {
601 return (__c
& __b
) | (~__c
& __a
);
604 static inline __ATTRS_o_ai vector
unsigned long long
605 vec_sel(vector
unsigned long long __a
, vector
unsigned long long __b
,
606 vector
unsigned long long __c
) {
607 return (__c
& __b
) | (~__c
& __a
);
610 static inline __ATTRS_o_ai vector
unsigned long long
611 vec_sel(vector
unsigned long long __a
, vector
unsigned long long __b
,
612 vector
bool long long __c
) {
613 return (((vector
unsigned long long)__c
& __b
) |
614 (~(vector
unsigned long long)__c
& __a
));
617 static inline __ATTRS_o_ai vector
double
618 vec_sel(vector
double __a
, vector
double __b
, vector
unsigned long long __c
) {
619 return (vector
double)((__c
& (vector
unsigned long long)__b
) |
620 (~__c
& (vector
unsigned long long)__a
));
623 static inline __ATTRS_o_ai vector
double
624 vec_sel(vector
double __a
, vector
double __b
, vector
bool long long __c
) {
625 vector
unsigned long long __ac
= (vector
unsigned long long)__a
;
626 vector
unsigned long long __bc
= (vector
unsigned long long)__b
;
627 vector
unsigned long long __cc
= (vector
unsigned long long)__c
;
628 return (vector
double)((__cc
& __bc
) | (~__cc
& __ac
));
631 /*-- vec_gather_element -----------------------------------------------------*/
633 static inline __ATTRS_o_ai vector
signed int
634 vec_gather_element(vector
signed int __vec
, vector
unsigned int __offset
,
635 const signed int *__ptr
, int __index
)
636 __constant_range(__index
, 0, 3) {
637 __vec
[__index
] = *(const signed int *)(
638 (__INTPTR_TYPE__
)__ptr
+ (__INTPTR_TYPE__
)__offset
[__index
]);
642 static inline __ATTRS_o_ai vector
bool int
643 vec_gather_element(vector
bool int __vec
, vector
unsigned int __offset
,
644 const unsigned int *__ptr
, int __index
)
645 __constant_range(__index
, 0, 3) {
646 __vec
[__index
] = *(const unsigned int *)(
647 (__INTPTR_TYPE__
)__ptr
+ (__INTPTR_TYPE__
)__offset
[__index
]);
651 static inline __ATTRS_o_ai vector
unsigned int
652 vec_gather_element(vector
unsigned int __vec
, vector
unsigned int __offset
,
653 const unsigned int *__ptr
, int __index
)
654 __constant_range(__index
, 0, 3) {
655 __vec
[__index
] = *(const unsigned int *)(
656 (__INTPTR_TYPE__
)__ptr
+ (__INTPTR_TYPE__
)__offset
[__index
]);
660 static inline __ATTRS_o_ai vector
signed long long
661 vec_gather_element(vector
signed long long __vec
,
662 vector
unsigned long long __offset
,
663 const signed long long *__ptr
, int __index
)
664 __constant_range(__index
, 0, 1) {
665 __vec
[__index
] = *(const signed long long *)(
666 (__INTPTR_TYPE__
)__ptr
+ (__INTPTR_TYPE__
)__offset
[__index
]);
670 static inline __ATTRS_o_ai vector
bool long long
671 vec_gather_element(vector
bool long long __vec
,
672 vector
unsigned long long __offset
,
673 const unsigned long long *__ptr
, int __index
)
674 __constant_range(__index
, 0, 1) {
675 __vec
[__index
] = *(const unsigned long long *)(
676 (__INTPTR_TYPE__
)__ptr
+ (__INTPTR_TYPE__
)__offset
[__index
]);
680 static inline __ATTRS_o_ai vector
unsigned long long
681 vec_gather_element(vector
unsigned long long __vec
,
682 vector
unsigned long long __offset
,
683 const unsigned long long *__ptr
, int __index
)
684 __constant_range(__index
, 0, 1) {
685 __vec
[__index
] = *(const unsigned long long *)(
686 (__INTPTR_TYPE__
)__ptr
+ (__INTPTR_TYPE__
)__offset
[__index
]);
690 static inline __ATTRS_o_ai vector
double
691 vec_gather_element(vector
double __vec
, vector
unsigned long long __offset
,
692 const double *__ptr
, int __index
)
693 __constant_range(__index
, 0, 1) {
694 __vec
[__index
] = *(const double *)(
695 (__INTPTR_TYPE__
)__ptr
+ (__INTPTR_TYPE__
)__offset
[__index
]);
699 /*-- vec_scatter_element ----------------------------------------------------*/
701 static inline __ATTRS_o_ai
void
702 vec_scatter_element(vector
signed int __vec
, vector
unsigned int __offset
,
703 signed int *__ptr
, int __index
)
704 __constant_range(__index
, 0, 3) {
705 *(signed int *)((__INTPTR_TYPE__
)__ptr
+ __offset
[__index
]) =
709 static inline __ATTRS_o_ai
void
710 vec_scatter_element(vector
bool int __vec
, vector
unsigned int __offset
,
711 unsigned int *__ptr
, int __index
)
712 __constant_range(__index
, 0, 3) {
713 *(unsigned int *)((__INTPTR_TYPE__
)__ptr
+ __offset
[__index
]) =
717 static inline __ATTRS_o_ai
void
718 vec_scatter_element(vector
unsigned int __vec
, vector
unsigned int __offset
,
719 unsigned int *__ptr
, int __index
)
720 __constant_range(__index
, 0, 3) {
721 *(unsigned int *)((__INTPTR_TYPE__
)__ptr
+ __offset
[__index
]) =
725 static inline __ATTRS_o_ai
void
726 vec_scatter_element(vector
signed long long __vec
,
727 vector
unsigned long long __offset
,
728 signed long long *__ptr
, int __index
)
729 __constant_range(__index
, 0, 1) {
730 *(signed long long *)((__INTPTR_TYPE__
)__ptr
+ __offset
[__index
]) =
734 static inline __ATTRS_o_ai
void
735 vec_scatter_element(vector
bool long long __vec
,
736 vector
unsigned long long __offset
,
737 unsigned long long *__ptr
, int __index
)
738 __constant_range(__index
, 0, 1) {
739 *(unsigned long long *)((__INTPTR_TYPE__
)__ptr
+ __offset
[__index
]) =
743 static inline __ATTRS_o_ai
void
744 vec_scatter_element(vector
unsigned long long __vec
,
745 vector
unsigned long long __offset
,
746 unsigned long long *__ptr
, int __index
)
747 __constant_range(__index
, 0, 1) {
748 *(unsigned long long *)((__INTPTR_TYPE__
)__ptr
+ __offset
[__index
]) =
752 static inline __ATTRS_o_ai
void
753 vec_scatter_element(vector
double __vec
, vector
unsigned long long __offset
,
754 double *__ptr
, int __index
)
755 __constant_range(__index
, 0, 1) {
756 *(double *)((__INTPTR_TYPE__
)__ptr
+ __offset
[__index
]) =
760 /*-- vec_xld2 ---------------------------------------------------------------*/
762 static inline __ATTRS_o_ai vector
signed char
763 vec_xld2(long __offset
, const signed char *__ptr
) {
764 return *(const vector
signed char *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
767 static inline __ATTRS_o_ai vector
unsigned char
768 vec_xld2(long __offset
, const unsigned char *__ptr
) {
769 return *(const vector
unsigned char *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
772 static inline __ATTRS_o_ai vector
signed short
773 vec_xld2(long __offset
, const signed short *__ptr
) {
774 return *(const vector
signed short *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
777 static inline __ATTRS_o_ai vector
unsigned short
778 vec_xld2(long __offset
, const unsigned short *__ptr
) {
779 return *(const vector
unsigned short *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
782 static inline __ATTRS_o_ai vector
signed int
783 vec_xld2(long __offset
, const signed int *__ptr
) {
784 return *(const vector
signed int *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
787 static inline __ATTRS_o_ai vector
unsigned int
788 vec_xld2(long __offset
, const unsigned int *__ptr
) {
789 return *(const vector
unsigned int *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
792 static inline __ATTRS_o_ai vector
signed long long
793 vec_xld2(long __offset
, const signed long long *__ptr
) {
794 return *(const vector
signed long long *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
797 static inline __ATTRS_o_ai vector
unsigned long long
798 vec_xld2(long __offset
, const unsigned long long *__ptr
) {
799 return *(const vector
unsigned long long *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
802 static inline __ATTRS_o_ai vector
double
803 vec_xld2(long __offset
, const double *__ptr
) {
804 return *(const vector
double *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
807 /*-- vec_xlw4 ---------------------------------------------------------------*/
809 static inline __ATTRS_o_ai vector
signed char
810 vec_xlw4(long __offset
, const signed char *__ptr
) {
811 return *(const vector
signed char *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
814 static inline __ATTRS_o_ai vector
unsigned char
815 vec_xlw4(long __offset
, const unsigned char *__ptr
) {
816 return *(const vector
unsigned char *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
819 static inline __ATTRS_o_ai vector
signed short
820 vec_xlw4(long __offset
, const signed short *__ptr
) {
821 return *(const vector
signed short *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
824 static inline __ATTRS_o_ai vector
unsigned short
825 vec_xlw4(long __offset
, const unsigned short *__ptr
) {
826 return *(const vector
unsigned short *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
829 static inline __ATTRS_o_ai vector
signed int
830 vec_xlw4(long __offset
, const signed int *__ptr
) {
831 return *(const vector
signed int *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
834 static inline __ATTRS_o_ai vector
unsigned int
835 vec_xlw4(long __offset
, const unsigned int *__ptr
) {
836 return *(const vector
unsigned int *)((__INTPTR_TYPE__
)__ptr
+ __offset
);
839 /*-- vec_xstd2 --------------------------------------------------------------*/
841 static inline __ATTRS_o_ai
void
842 vec_xstd2(vector
signed char __vec
, long __offset
, signed char *__ptr
) {
843 *(vector
signed char *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
846 static inline __ATTRS_o_ai
void
847 vec_xstd2(vector
unsigned char __vec
, long __offset
, unsigned char *__ptr
) {
848 *(vector
unsigned char *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
851 static inline __ATTRS_o_ai
void
852 vec_xstd2(vector
signed short __vec
, long __offset
, signed short *__ptr
) {
853 *(vector
signed short *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
856 static inline __ATTRS_o_ai
void
857 vec_xstd2(vector
unsigned short __vec
, long __offset
, unsigned short *__ptr
) {
858 *(vector
unsigned short *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
861 static inline __ATTRS_o_ai
void
862 vec_xstd2(vector
signed int __vec
, long __offset
, signed int *__ptr
) {
863 *(vector
signed int *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
866 static inline __ATTRS_o_ai
void
867 vec_xstd2(vector
unsigned int __vec
, long __offset
, unsigned int *__ptr
) {
868 *(vector
unsigned int *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
871 static inline __ATTRS_o_ai
void
872 vec_xstd2(vector
signed long long __vec
, long __offset
,
873 signed long long *__ptr
) {
874 *(vector
signed long long *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
877 static inline __ATTRS_o_ai
void
878 vec_xstd2(vector
unsigned long long __vec
, long __offset
,
879 unsigned long long *__ptr
) {
880 *(vector
unsigned long long *)((__INTPTR_TYPE__
)__ptr
+ __offset
) =
884 static inline __ATTRS_o_ai
void
885 vec_xstd2(vector
double __vec
, long __offset
, double *__ptr
) {
886 *(vector
double *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
889 /*-- vec_xstw4 --------------------------------------------------------------*/
891 static inline __ATTRS_o_ai
void
892 vec_xstw4(vector
signed char __vec
, long __offset
, signed char *__ptr
) {
893 *(vector
signed char *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
896 static inline __ATTRS_o_ai
void
897 vec_xstw4(vector
unsigned char __vec
, long __offset
, unsigned char *__ptr
) {
898 *(vector
unsigned char *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
901 static inline __ATTRS_o_ai
void
902 vec_xstw4(vector
signed short __vec
, long __offset
, signed short *__ptr
) {
903 *(vector
signed short *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
906 static inline __ATTRS_o_ai
void
907 vec_xstw4(vector
unsigned short __vec
, long __offset
, unsigned short *__ptr
) {
908 *(vector
unsigned short *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
911 static inline __ATTRS_o_ai
void
912 vec_xstw4(vector
signed int __vec
, long __offset
, signed int *__ptr
) {
913 *(vector
signed int *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
916 static inline __ATTRS_o_ai
void
917 vec_xstw4(vector
unsigned int __vec
, long __offset
, unsigned int *__ptr
) {
918 *(vector
unsigned int *)((__INTPTR_TYPE__
)__ptr
+ __offset
) = __vec
;
921 /*-- vec_load_bndry ---------------------------------------------------------*/
923 extern __ATTRS_o vector
signed char
924 vec_load_bndry(const signed char *__ptr
, unsigned short __len
)
925 __constant_pow2_range(__len
, 64, 4096);
927 extern __ATTRS_o vector
unsigned char
928 vec_load_bndry(const unsigned char *__ptr
, unsigned short __len
)
929 __constant_pow2_range(__len
, 64, 4096);
931 extern __ATTRS_o vector
signed short
932 vec_load_bndry(const signed short *__ptr
, unsigned short __len
)
933 __constant_pow2_range(__len
, 64, 4096);
935 extern __ATTRS_o vector
unsigned short
936 vec_load_bndry(const unsigned short *__ptr
, unsigned short __len
)
937 __constant_pow2_range(__len
, 64, 4096);
939 extern __ATTRS_o vector
signed int
940 vec_load_bndry(const signed int *__ptr
, unsigned short __len
)
941 __constant_pow2_range(__len
, 64, 4096);
943 extern __ATTRS_o vector
unsigned int
944 vec_load_bndry(const unsigned int *__ptr
, unsigned short __len
)
945 __constant_pow2_range(__len
, 64, 4096);
947 extern __ATTRS_o vector
signed long long
948 vec_load_bndry(const signed long long *__ptr
, unsigned short __len
)
949 __constant_pow2_range(__len
, 64, 4096);
951 extern __ATTRS_o vector
unsigned long long
952 vec_load_bndry(const unsigned long long *__ptr
, unsigned short __len
)
953 __constant_pow2_range(__len
, 64, 4096);
955 extern __ATTRS_o vector
double
956 vec_load_bndry(const double *__ptr
, unsigned short __len
)
957 __constant_pow2_range(__len
, 64, 4096);
959 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
960 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
966 (Y) == 4096 ? 6 : -1)))
968 /*-- vec_load_len -----------------------------------------------------------*/
970 static inline __ATTRS_o_ai vector
signed char
971 vec_load_len(const signed char *__ptr
, unsigned int __len
) {
972 return (vector
signed char)__builtin_s390_vll(__len
, __ptr
);
975 static inline __ATTRS_o_ai vector
unsigned char
976 vec_load_len(const unsigned char *__ptr
, unsigned int __len
) {
977 return (vector
unsigned char)__builtin_s390_vll(__len
, __ptr
);
980 static inline __ATTRS_o_ai vector
signed short
981 vec_load_len(const signed short *__ptr
, unsigned int __len
) {
982 return (vector
signed short)__builtin_s390_vll(__len
, __ptr
);
985 static inline __ATTRS_o_ai vector
unsigned short
986 vec_load_len(const unsigned short *__ptr
, unsigned int __len
) {
987 return (vector
unsigned short)__builtin_s390_vll(__len
, __ptr
);
990 static inline __ATTRS_o_ai vector
signed int
991 vec_load_len(const signed int *__ptr
, unsigned int __len
) {
992 return (vector
signed int)__builtin_s390_vll(__len
, __ptr
);
995 static inline __ATTRS_o_ai vector
unsigned int
996 vec_load_len(const unsigned int *__ptr
, unsigned int __len
) {
997 return (vector
unsigned int)__builtin_s390_vll(__len
, __ptr
);
1000 static inline __ATTRS_o_ai vector
signed long long
1001 vec_load_len(const signed long long *__ptr
, unsigned int __len
) {
1002 return (vector
signed long long)__builtin_s390_vll(__len
, __ptr
);
1005 static inline __ATTRS_o_ai vector
unsigned long long
1006 vec_load_len(const unsigned long long *__ptr
, unsigned int __len
) {
1007 return (vector
unsigned long long)__builtin_s390_vll(__len
, __ptr
);
1010 static inline __ATTRS_o_ai vector
double
1011 vec_load_len(const double *__ptr
, unsigned int __len
) {
1012 return (vector
double)__builtin_s390_vll(__len
, __ptr
);
1015 /*-- vec_store_len ----------------------------------------------------------*/
1017 static inline __ATTRS_o_ai
void
1018 vec_store_len(vector
signed char __vec
, signed char *__ptr
,
1019 unsigned int __len
) {
1020 __builtin_s390_vstl((vector
signed char)__vec
, __len
, __ptr
);
1023 static inline __ATTRS_o_ai
void
1024 vec_store_len(vector
unsigned char __vec
, unsigned char *__ptr
,
1025 unsigned int __len
) {
1026 __builtin_s390_vstl((vector
signed char)__vec
, __len
, __ptr
);
1029 static inline __ATTRS_o_ai
void
1030 vec_store_len(vector
signed short __vec
, signed short *__ptr
,
1031 unsigned int __len
) {
1032 __builtin_s390_vstl((vector
signed char)__vec
, __len
, __ptr
);
1035 static inline __ATTRS_o_ai
void
1036 vec_store_len(vector
unsigned short __vec
, unsigned short *__ptr
,
1037 unsigned int __len
) {
1038 __builtin_s390_vstl((vector
signed char)__vec
, __len
, __ptr
);
1041 static inline __ATTRS_o_ai
void
1042 vec_store_len(vector
signed int __vec
, signed int *__ptr
,
1043 unsigned int __len
) {
1044 __builtin_s390_vstl((vector
signed char)__vec
, __len
, __ptr
);
1047 static inline __ATTRS_o_ai
void
1048 vec_store_len(vector
unsigned int __vec
, unsigned int *__ptr
,
1049 unsigned int __len
) {
1050 __builtin_s390_vstl((vector
signed char)__vec
, __len
, __ptr
);
1053 static inline __ATTRS_o_ai
void
1054 vec_store_len(vector
signed long long __vec
, signed long long *__ptr
,
1055 unsigned int __len
) {
1056 __builtin_s390_vstl((vector
signed char)__vec
, __len
, __ptr
);
1059 static inline __ATTRS_o_ai
void
1060 vec_store_len(vector
unsigned long long __vec
, unsigned long long *__ptr
,
1061 unsigned int __len
) {
1062 __builtin_s390_vstl((vector
signed char)__vec
, __len
, __ptr
);
1065 static inline __ATTRS_o_ai
void
1066 vec_store_len(vector
double __vec
, double *__ptr
,
1067 unsigned int __len
) {
1068 __builtin_s390_vstl((vector
signed char)__vec
, __len
, __ptr
);
1071 /*-- vec_load_pair ----------------------------------------------------------*/
1073 static inline __ATTRS_o_ai vector
signed long long
1074 vec_load_pair(signed long long __a
, signed long long __b
) {
1075 return (vector
signed long long)(__a
, __b
);
1078 static inline __ATTRS_o_ai vector
unsigned long long
1079 vec_load_pair(unsigned long long __a
, unsigned long long __b
) {
1080 return (vector
unsigned long long)(__a
, __b
);
1083 /*-- vec_genmask ------------------------------------------------------------*/
1085 static inline __ATTRS_o_ai vector
unsigned char
1086 vec_genmask(unsigned short __mask
)
1087 __constant(__mask
) {
1088 return (vector
unsigned char)(
1089 __mask
& 0x8000 ? 0xff : 0,
1090 __mask
& 0x4000 ? 0xff : 0,
1091 __mask
& 0x2000 ? 0xff : 0,
1092 __mask
& 0x1000 ? 0xff : 0,
1093 __mask
& 0x0800 ? 0xff : 0,
1094 __mask
& 0x0400 ? 0xff : 0,
1095 __mask
& 0x0200 ? 0xff : 0,
1096 __mask
& 0x0100 ? 0xff : 0,
1097 __mask
& 0x0080 ? 0xff : 0,
1098 __mask
& 0x0040 ? 0xff : 0,
1099 __mask
& 0x0020 ? 0xff : 0,
1100 __mask
& 0x0010 ? 0xff : 0,
1101 __mask
& 0x0008 ? 0xff : 0,
1102 __mask
& 0x0004 ? 0xff : 0,
1103 __mask
& 0x0002 ? 0xff : 0,
1104 __mask
& 0x0001 ? 0xff : 0);
1107 /*-- vec_genmasks_* ---------------------------------------------------------*/
1109 static inline __ATTRS_o_ai vector
unsigned char
1110 vec_genmasks_8(unsigned char __first
, unsigned char __last
)
1111 __constant(__first
) __constant(__last
) {
1112 unsigned char __bit1
= __first
& 7;
1113 unsigned char __bit2
= __last
& 7;
1114 unsigned char __mask1
= (unsigned char)(1U << (7 - __bit1
) << 1) - 1;
1115 unsigned char __mask2
= (unsigned char)(1U << (7 - __bit2
)) - 1;
1116 unsigned char __value
= (__bit1
<= __bit2
?
1117 __mask1
& ~__mask2
:
1118 __mask1
| ~__mask2
);
1119 return (vector
unsigned char)__value
;
1122 static inline __ATTRS_o_ai vector
unsigned short
1123 vec_genmasks_16(unsigned char __first
, unsigned char __last
)
1124 __constant(__first
) __constant(__last
) {
1125 unsigned char __bit1
= __first
& 15;
1126 unsigned char __bit2
= __last
& 15;
1127 unsigned short __mask1
= (unsigned short)(1U << (15 - __bit1
) << 1) - 1;
1128 unsigned short __mask2
= (unsigned short)(1U << (15 - __bit2
)) - 1;
1129 unsigned short __value
= (__bit1
<= __bit2
?
1130 __mask1
& ~__mask2
:
1131 __mask1
| ~__mask2
);
1132 return (vector
unsigned short)__value
;
1135 static inline __ATTRS_o_ai vector
unsigned int
1136 vec_genmasks_32(unsigned char __first
, unsigned char __last
)
1137 __constant(__first
) __constant(__last
) {
1138 unsigned char __bit1
= __first
& 31;
1139 unsigned char __bit2
= __last
& 31;
1140 unsigned int __mask1
= (1U << (31 - __bit1
) << 1) - 1;
1141 unsigned int __mask2
= (1U << (31 - __bit2
)) - 1;
1142 unsigned int __value
= (__bit1
<= __bit2
?
1143 __mask1
& ~__mask2
:
1144 __mask1
| ~__mask2
);
1145 return (vector
unsigned int)__value
;
1148 static inline __ATTRS_o_ai vector
unsigned long long
1149 vec_genmasks_64(unsigned char __first
, unsigned char __last
)
1150 __constant(__first
) __constant(__last
) {
1151 unsigned char __bit1
= __first
& 63;
1152 unsigned char __bit2
= __last
& 63;
1153 unsigned long long __mask1
= (1ULL << (63 - __bit1
) << 1) - 1;
1154 unsigned long long __mask2
= (1ULL << (63 - __bit2
)) - 1;
1155 unsigned long long __value
= (__bit1
<= __bit2
?
1156 __mask1
& ~__mask2
:
1157 __mask1
| ~__mask2
);
1158 return (vector
unsigned long long)__value
;
1161 /*-- vec_splat --------------------------------------------------------------*/
1163 static inline __ATTRS_o_ai vector
signed char
1164 vec_splat(vector
signed char __vec
, int __index
)
1165 __constant_range(__index
, 0, 15) {
1166 return (vector
signed char)__vec
[__index
];
1169 static inline __ATTRS_o_ai vector
bool char
1170 vec_splat(vector
bool char __vec
, int __index
)
1171 __constant_range(__index
, 0, 15) {
1172 return (vector
bool char)(vector
unsigned char)__vec
[__index
];
1175 static inline __ATTRS_o_ai vector
unsigned char
1176 vec_splat(vector
unsigned char __vec
, int __index
)
1177 __constant_range(__index
, 0, 15) {
1178 return (vector
unsigned char)__vec
[__index
];
1181 static inline __ATTRS_o_ai vector
signed short
1182 vec_splat(vector
signed short __vec
, int __index
)
1183 __constant_range(__index
, 0, 7) {
1184 return (vector
signed short)__vec
[__index
];
1187 static inline __ATTRS_o_ai vector
bool short
1188 vec_splat(vector
bool short __vec
, int __index
)
1189 __constant_range(__index
, 0, 7) {
1190 return (vector
bool short)(vector
unsigned short)__vec
[__index
];
1193 static inline __ATTRS_o_ai vector
unsigned short
1194 vec_splat(vector
unsigned short __vec
, int __index
)
1195 __constant_range(__index
, 0, 7) {
1196 return (vector
unsigned short)__vec
[__index
];
1199 static inline __ATTRS_o_ai vector
signed int
1200 vec_splat(vector
signed int __vec
, int __index
)
1201 __constant_range(__index
, 0, 3) {
1202 return (vector
signed int)__vec
[__index
];
1205 static inline __ATTRS_o_ai vector
bool int
1206 vec_splat(vector
bool int __vec
, int __index
)
1207 __constant_range(__index
, 0, 3) {
1208 return (vector
bool int)(vector
unsigned int)__vec
[__index
];
1211 static inline __ATTRS_o_ai vector
unsigned int
1212 vec_splat(vector
unsigned int __vec
, int __index
)
1213 __constant_range(__index
, 0, 3) {
1214 return (vector
unsigned int)__vec
[__index
];
1217 static inline __ATTRS_o_ai vector
signed long long
1218 vec_splat(vector
signed long long __vec
, int __index
)
1219 __constant_range(__index
, 0, 1) {
1220 return (vector
signed long long)__vec
[__index
];
1223 static inline __ATTRS_o_ai vector
bool long long
1224 vec_splat(vector
bool long long __vec
, int __index
)
1225 __constant_range(__index
, 0, 1) {
1226 return (vector
bool long long)(vector
unsigned long long)__vec
[__index
];
1229 static inline __ATTRS_o_ai vector
unsigned long long
1230 vec_splat(vector
unsigned long long __vec
, int __index
)
1231 __constant_range(__index
, 0, 1) {
1232 return (vector
unsigned long long)__vec
[__index
];
1235 static inline __ATTRS_o_ai vector
double
1236 vec_splat(vector
double __vec
, int __index
)
1237 __constant_range(__index
, 0, 1) {
1238 return (vector
double)__vec
[__index
];
1241 /*-- vec_splat_s* -----------------------------------------------------------*/
1243 static inline __ATTRS_ai vector
signed char
1244 vec_splat_s8(signed char __scalar
)
1245 __constant(__scalar
) {
1246 return (vector
signed char)__scalar
;
1249 static inline __ATTRS_ai vector
signed short
1250 vec_splat_s16(signed short __scalar
)
1251 __constant(__scalar
) {
1252 return (vector
signed short)__scalar
;
1255 static inline __ATTRS_ai vector
signed int
1256 vec_splat_s32(signed short __scalar
)
1257 __constant(__scalar
) {
1258 return (vector
signed int)(signed int)__scalar
;
1261 static inline __ATTRS_ai vector
signed long long
1262 vec_splat_s64(signed short __scalar
)
1263 __constant(__scalar
) {
1264 return (vector
signed long long)(signed long)__scalar
;
1267 /*-- vec_splat_u* -----------------------------------------------------------*/
1269 static inline __ATTRS_ai vector
unsigned char
1270 vec_splat_u8(unsigned char __scalar
)
1271 __constant(__scalar
) {
1272 return (vector
unsigned char)__scalar
;
1275 static inline __ATTRS_ai vector
unsigned short
1276 vec_splat_u16(unsigned short __scalar
)
1277 __constant(__scalar
) {
1278 return (vector
unsigned short)__scalar
;
1281 static inline __ATTRS_ai vector
unsigned int
1282 vec_splat_u32(signed short __scalar
)
1283 __constant(__scalar
) {
1284 return (vector
unsigned int)(signed int)__scalar
;
1287 static inline __ATTRS_ai vector
unsigned long long
1288 vec_splat_u64(signed short __scalar
)
1289 __constant(__scalar
) {
1290 return (vector
unsigned long long)(signed long long)__scalar
;
1293 /*-- vec_splats -------------------------------------------------------------*/
1295 static inline __ATTRS_o_ai vector
signed char
1296 vec_splats(signed char __scalar
) {
1297 return (vector
signed char)__scalar
;
1300 static inline __ATTRS_o_ai vector
unsigned char
1301 vec_splats(unsigned char __scalar
) {
1302 return (vector
unsigned char)__scalar
;
1305 static inline __ATTRS_o_ai vector
signed short
1306 vec_splats(signed short __scalar
) {
1307 return (vector
signed short)__scalar
;
1310 static inline __ATTRS_o_ai vector
unsigned short
1311 vec_splats(unsigned short __scalar
) {
1312 return (vector
unsigned short)__scalar
;
1315 static inline __ATTRS_o_ai vector
signed int
1316 vec_splats(signed int __scalar
) {
1317 return (vector
signed int)__scalar
;
1320 static inline __ATTRS_o_ai vector
unsigned int
1321 vec_splats(unsigned int __scalar
) {
1322 return (vector
unsigned int)__scalar
;
1325 static inline __ATTRS_o_ai vector
signed long long
1326 vec_splats(signed long long __scalar
) {
1327 return (vector
signed long long)__scalar
;
1330 static inline __ATTRS_o_ai vector
unsigned long long
1331 vec_splats(unsigned long long __scalar
) {
1332 return (vector
unsigned long long)__scalar
;
1335 static inline __ATTRS_o_ai vector
double
1336 vec_splats(double __scalar
) {
1337 return (vector
double)__scalar
;
1340 /*-- vec_extend_s64 ---------------------------------------------------------*/
1342 static inline __ATTRS_o_ai vector
signed long long
1343 vec_extend_s64(vector
signed char __a
) {
1344 return (vector
signed long long)(__a
[7], __a
[15]);
1347 static inline __ATTRS_o_ai vector
signed long long
1348 vec_extend_s64(vector
signed short __a
) {
1349 return (vector
signed long long)(__a
[3], __a
[7]);
1352 static inline __ATTRS_o_ai vector
signed long long
1353 vec_extend_s64(vector
signed int __a
) {
1354 return (vector
signed long long)(__a
[1], __a
[3]);
1357 /*-- vec_mergeh -------------------------------------------------------------*/
1359 static inline __ATTRS_o_ai vector
signed char
1360 vec_mergeh(vector
signed char __a
, vector
signed char __b
) {
1361 return (vector
signed char)(
1362 __a
[0], __b
[0], __a
[1], __b
[1], __a
[2], __b
[2], __a
[3], __b
[3],
1363 __a
[4], __b
[4], __a
[5], __b
[5], __a
[6], __b
[6], __a
[7], __b
[7]);
1366 static inline __ATTRS_o_ai vector
bool char
1367 vec_mergeh(vector
bool char __a
, vector
bool char __b
) {
1368 return (vector
bool char)(
1369 __a
[0], __b
[0], __a
[1], __b
[1], __a
[2], __b
[2], __a
[3], __b
[3],
1370 __a
[4], __b
[4], __a
[5], __b
[5], __a
[6], __b
[6], __a
[7], __b
[7]);
1373 static inline __ATTRS_o_ai vector
unsigned char
1374 vec_mergeh(vector
unsigned char __a
, vector
unsigned char __b
) {
1375 return (vector
unsigned char)(
1376 __a
[0], __b
[0], __a
[1], __b
[1], __a
[2], __b
[2], __a
[3], __b
[3],
1377 __a
[4], __b
[4], __a
[5], __b
[5], __a
[6], __b
[6], __a
[7], __b
[7]);
1380 static inline __ATTRS_o_ai vector
signed short
1381 vec_mergeh(vector
signed short __a
, vector
signed short __b
) {
1382 return (vector
signed short)(
1383 __a
[0], __b
[0], __a
[1], __b
[1], __a
[2], __b
[2], __a
[3], __b
[3]);
1386 static inline __ATTRS_o_ai vector
bool short
1387 vec_mergeh(vector
bool short __a
, vector
bool short __b
) {
1388 return (vector
bool short)(
1389 __a
[0], __b
[0], __a
[1], __b
[1], __a
[2], __b
[2], __a
[3], __b
[3]);
1392 static inline __ATTRS_o_ai vector
unsigned short
1393 vec_mergeh(vector
unsigned short __a
, vector
unsigned short __b
) {
1394 return (vector
unsigned short)(
1395 __a
[0], __b
[0], __a
[1], __b
[1], __a
[2], __b
[2], __a
[3], __b
[3]);
1398 static inline __ATTRS_o_ai vector
signed int
1399 vec_mergeh(vector
signed int __a
, vector
signed int __b
) {
1400 return (vector
signed int)(__a
[0], __b
[0], __a
[1], __b
[1]);
1403 static inline __ATTRS_o_ai vector
bool int
1404 vec_mergeh(vector
bool int __a
, vector
bool int __b
) {
1405 return (vector
bool int)(__a
[0], __b
[0], __a
[1], __b
[1]);
1408 static inline __ATTRS_o_ai vector
unsigned int
1409 vec_mergeh(vector
unsigned int __a
, vector
unsigned int __b
) {
1410 return (vector
unsigned int)(__a
[0], __b
[0], __a
[1], __b
[1]);
1413 static inline __ATTRS_o_ai vector
signed long long
1414 vec_mergeh(vector
signed long long __a
, vector
signed long long __b
) {
1415 return (vector
signed long long)(__a
[0], __b
[0]);
1418 static inline __ATTRS_o_ai vector
bool long long
1419 vec_mergeh(vector
bool long long __a
, vector
bool long long __b
) {
1420 return (vector
bool long long)(__a
[0], __b
[0]);
1423 static inline __ATTRS_o_ai vector
unsigned long long
1424 vec_mergeh(vector
unsigned long long __a
, vector
unsigned long long __b
) {
1425 return (vector
unsigned long long)(__a
[0], __b
[0]);
1428 static inline __ATTRS_o_ai vector
double
1429 vec_mergeh(vector
double __a
, vector
double __b
) {
1430 return (vector
double)(__a
[0], __b
[0]);
1433 /*-- vec_mergel -------------------------------------------------------------*/
1435 static inline __ATTRS_o_ai vector
signed char
1436 vec_mergel(vector
signed char __a
, vector
signed char __b
) {
1437 return (vector
signed char)(
1438 __a
[8], __b
[8], __a
[9], __b
[9], __a
[10], __b
[10], __a
[11], __b
[11],
1439 __a
[12], __b
[12], __a
[13], __b
[13], __a
[14], __b
[14], __a
[15], __b
[15]);
1442 static inline __ATTRS_o_ai vector
bool char
1443 vec_mergel(vector
bool char __a
, vector
bool char __b
) {
1444 return (vector
bool char)(
1445 __a
[8], __b
[8], __a
[9], __b
[9], __a
[10], __b
[10], __a
[11], __b
[11],
1446 __a
[12], __b
[12], __a
[13], __b
[13], __a
[14], __b
[14], __a
[15], __b
[15]);
1449 static inline __ATTRS_o_ai vector
unsigned char
1450 vec_mergel(vector
unsigned char __a
, vector
unsigned char __b
) {
1451 return (vector
unsigned char)(
1452 __a
[8], __b
[8], __a
[9], __b
[9], __a
[10], __b
[10], __a
[11], __b
[11],
1453 __a
[12], __b
[12], __a
[13], __b
[13], __a
[14], __b
[14], __a
[15], __b
[15]);
1456 static inline __ATTRS_o_ai vector
signed short
1457 vec_mergel(vector
signed short __a
, vector
signed short __b
) {
1458 return (vector
signed short)(
1459 __a
[4], __b
[4], __a
[5], __b
[5], __a
[6], __b
[6], __a
[7], __b
[7]);
1462 static inline __ATTRS_o_ai vector
bool short
1463 vec_mergel(vector
bool short __a
, vector
bool short __b
) {
1464 return (vector
bool short)(
1465 __a
[4], __b
[4], __a
[5], __b
[5], __a
[6], __b
[6], __a
[7], __b
[7]);
1468 static inline __ATTRS_o_ai vector
unsigned short
1469 vec_mergel(vector
unsigned short __a
, vector
unsigned short __b
) {
1470 return (vector
unsigned short)(
1471 __a
[4], __b
[4], __a
[5], __b
[5], __a
[6], __b
[6], __a
[7], __b
[7]);
1474 static inline __ATTRS_o_ai vector
signed int
1475 vec_mergel(vector
signed int __a
, vector
signed int __b
) {
1476 return (vector
signed int)(__a
[2], __b
[2], __a
[3], __b
[3]);
1479 static inline __ATTRS_o_ai vector
bool int
1480 vec_mergel(vector
bool int __a
, vector
bool int __b
) {
1481 return (vector
bool int)(__a
[2], __b
[2], __a
[3], __b
[3]);
1484 static inline __ATTRS_o_ai vector
unsigned int
1485 vec_mergel(vector
unsigned int __a
, vector
unsigned int __b
) {
1486 return (vector
unsigned int)(__a
[2], __b
[2], __a
[3], __b
[3]);
1489 static inline __ATTRS_o_ai vector
signed long long
1490 vec_mergel(vector
signed long long __a
, vector
signed long long __b
) {
1491 return (vector
signed long long)(__a
[1], __b
[1]);
1494 static inline __ATTRS_o_ai vector
bool long long
1495 vec_mergel(vector
bool long long __a
, vector
bool long long __b
) {
1496 return (vector
bool long long)(__a
[1], __b
[1]);
1499 static inline __ATTRS_o_ai vector
unsigned long long
1500 vec_mergel(vector
unsigned long long __a
, vector
unsigned long long __b
) {
1501 return (vector
unsigned long long)(__a
[1], __b
[1]);
1504 static inline __ATTRS_o_ai vector
double
1505 vec_mergel(vector
double __a
, vector
double __b
) {
1506 return (vector
double)(__a
[1], __b
[1]);
1509 /*-- vec_pack ---------------------------------------------------------------*/
1511 static inline __ATTRS_o_ai vector
signed char
1512 vec_pack(vector
signed short __a
, vector
signed short __b
) {
1513 vector
signed char __ac
= (vector
signed char)__a
;
1514 vector
signed char __bc
= (vector
signed char)__b
;
1515 return (vector
signed char)(
1516 __ac
[1], __ac
[3], __ac
[5], __ac
[7], __ac
[9], __ac
[11], __ac
[13], __ac
[15],
1517 __bc
[1], __bc
[3], __bc
[5], __bc
[7], __bc
[9], __bc
[11], __bc
[13], __bc
[15]);
1520 static inline __ATTRS_o_ai vector
bool char
1521 vec_pack(vector
bool short __a
, vector
bool short __b
) {
1522 vector
bool char __ac
= (vector
bool char)__a
;
1523 vector
bool char __bc
= (vector
bool char)__b
;
1524 return (vector
bool char)(
1525 __ac
[1], __ac
[3], __ac
[5], __ac
[7], __ac
[9], __ac
[11], __ac
[13], __ac
[15],
1526 __bc
[1], __bc
[3], __bc
[5], __bc
[7], __bc
[9], __bc
[11], __bc
[13], __bc
[15]);
1529 static inline __ATTRS_o_ai vector
unsigned char
1530 vec_pack(vector
unsigned short __a
, vector
unsigned short __b
) {
1531 vector
unsigned char __ac
= (vector
unsigned char)__a
;
1532 vector
unsigned char __bc
= (vector
unsigned char)__b
;
1533 return (vector
unsigned char)(
1534 __ac
[1], __ac
[3], __ac
[5], __ac
[7], __ac
[9], __ac
[11], __ac
[13], __ac
[15],
1535 __bc
[1], __bc
[3], __bc
[5], __bc
[7], __bc
[9], __bc
[11], __bc
[13], __bc
[15]);
1538 static inline __ATTRS_o_ai vector
signed short
1539 vec_pack(vector
signed int __a
, vector
signed int __b
) {
1540 vector
signed short __ac
= (vector
signed short)__a
;
1541 vector
signed short __bc
= (vector
signed short)__b
;
1542 return (vector
signed short)(
1543 __ac
[1], __ac
[3], __ac
[5], __ac
[7],
1544 __bc
[1], __bc
[3], __bc
[5], __bc
[7]);
1547 static inline __ATTRS_o_ai vector
bool short
1548 vec_pack(vector
bool int __a
, vector
bool int __b
) {
1549 vector
bool short __ac
= (vector
bool short)__a
;
1550 vector
bool short __bc
= (vector
bool short)__b
;
1551 return (vector
bool short)(
1552 __ac
[1], __ac
[3], __ac
[5], __ac
[7],
1553 __bc
[1], __bc
[3], __bc
[5], __bc
[7]);
1556 static inline __ATTRS_o_ai vector
unsigned short
1557 vec_pack(vector
unsigned int __a
, vector
unsigned int __b
) {
1558 vector
unsigned short __ac
= (vector
unsigned short)__a
;
1559 vector
unsigned short __bc
= (vector
unsigned short)__b
;
1560 return (vector
unsigned short)(
1561 __ac
[1], __ac
[3], __ac
[5], __ac
[7],
1562 __bc
[1], __bc
[3], __bc
[5], __bc
[7]);
1565 static inline __ATTRS_o_ai vector
signed int
1566 vec_pack(vector
signed long long __a
, vector
signed long long __b
) {
1567 vector
signed int __ac
= (vector
signed int)__a
;
1568 vector
signed int __bc
= (vector
signed int)__b
;
1569 return (vector
signed int)(__ac
[1], __ac
[3], __bc
[1], __bc
[3]);
1572 static inline __ATTRS_o_ai vector
bool int
1573 vec_pack(vector
bool long long __a
, vector
bool long long __b
) {
1574 vector
bool int __ac
= (vector
bool int)__a
;
1575 vector
bool int __bc
= (vector
bool int)__b
;
1576 return (vector
bool int)(__ac
[1], __ac
[3], __bc
[1], __bc
[3]);
1579 static inline __ATTRS_o_ai vector
unsigned int
1580 vec_pack(vector
unsigned long long __a
, vector
unsigned long long __b
) {
1581 vector
unsigned int __ac
= (vector
unsigned int)__a
;
1582 vector
unsigned int __bc
= (vector
unsigned int)__b
;
1583 return (vector
unsigned int)(__ac
[1], __ac
[3], __bc
[1], __bc
[3]);
1586 /*-- vec_packs --------------------------------------------------------------*/
1588 static inline __ATTRS_o_ai vector
signed char
1589 vec_packs(vector
signed short __a
, vector
signed short __b
) {
1590 return __builtin_s390_vpksh(__a
, __b
);
1593 static inline __ATTRS_o_ai vector
unsigned char
1594 vec_packs(vector
unsigned short __a
, vector
unsigned short __b
) {
1595 return __builtin_s390_vpklsh(__a
, __b
);
1598 static inline __ATTRS_o_ai vector
signed short
1599 vec_packs(vector
signed int __a
, vector
signed int __b
) {
1600 return __builtin_s390_vpksf(__a
, __b
);
1603 static inline __ATTRS_o_ai vector
unsigned short
1604 vec_packs(vector
unsigned int __a
, vector
unsigned int __b
) {
1605 return __builtin_s390_vpklsf(__a
, __b
);
1608 static inline __ATTRS_o_ai vector
signed int
1609 vec_packs(vector
signed long long __a
, vector
signed long long __b
) {
1610 return __builtin_s390_vpksg(__a
, __b
);
1613 static inline __ATTRS_o_ai vector
unsigned int
1614 vec_packs(vector
unsigned long long __a
, vector
unsigned long long __b
) {
1615 return __builtin_s390_vpklsg(__a
, __b
);
1618 /*-- vec_packs_cc -----------------------------------------------------------*/
1620 static inline __ATTRS_o_ai vector
signed char
1621 vec_packs_cc(vector
signed short __a
, vector
signed short __b
, int *__cc
) {
1622 return __builtin_s390_vpkshs(__a
, __b
, __cc
);
1625 static inline __ATTRS_o_ai vector
unsigned char
1626 vec_packs_cc(vector
unsigned short __a
, vector
unsigned short __b
, int *__cc
) {
1627 return __builtin_s390_vpklshs(__a
, __b
, __cc
);
1630 static inline __ATTRS_o_ai vector
signed short
1631 vec_packs_cc(vector
signed int __a
, vector
signed int __b
, int *__cc
) {
1632 return __builtin_s390_vpksfs(__a
, __b
, __cc
);
1635 static inline __ATTRS_o_ai vector
unsigned short
1636 vec_packs_cc(vector
unsigned int __a
, vector
unsigned int __b
, int *__cc
) {
1637 return __builtin_s390_vpklsfs(__a
, __b
, __cc
);
1640 static inline __ATTRS_o_ai vector
signed int
1641 vec_packs_cc(vector
signed long long __a
, vector
signed long long __b
,
1643 return __builtin_s390_vpksgs(__a
, __b
, __cc
);
1646 static inline __ATTRS_o_ai vector
unsigned int
1647 vec_packs_cc(vector
unsigned long long __a
, vector
unsigned long long __b
,
1649 return __builtin_s390_vpklsgs(__a
, __b
, __cc
);
1652 /*-- vec_packsu -------------------------------------------------------------*/
1654 static inline __ATTRS_o_ai vector
unsigned char
1655 vec_packsu(vector
signed short __a
, vector
signed short __b
) {
1656 const vector
signed short __zero
= (vector
signed short)0;
1657 return __builtin_s390_vpklsh(
1658 (vector
unsigned short)(__a
>= __zero
) & (vector
unsigned short)__a
,
1659 (vector
unsigned short)(__b
>= __zero
) & (vector
unsigned short)__b
);
1662 static inline __ATTRS_o_ai vector
unsigned char
1663 vec_packsu(vector
unsigned short __a
, vector
unsigned short __b
) {
1664 return __builtin_s390_vpklsh(__a
, __b
);
1667 static inline __ATTRS_o_ai vector
unsigned short
1668 vec_packsu(vector
signed int __a
, vector
signed int __b
) {
1669 const vector
signed int __zero
= (vector
signed int)0;
1670 return __builtin_s390_vpklsf(
1671 (vector
unsigned int)(__a
>= __zero
) & (vector
unsigned int)__a
,
1672 (vector
unsigned int)(__b
>= __zero
) & (vector
unsigned int)__b
);
1675 static inline __ATTRS_o_ai vector
unsigned short
1676 vec_packsu(vector
unsigned int __a
, vector
unsigned int __b
) {
1677 return __builtin_s390_vpklsf(__a
, __b
);
1680 static inline __ATTRS_o_ai vector
unsigned int
1681 vec_packsu(vector
signed long long __a
, vector
signed long long __b
) {
1682 const vector
signed long long __zero
= (vector
signed long long)0;
1683 return __builtin_s390_vpklsg(
1684 (vector
unsigned long long)(__a
>= __zero
) &
1685 (vector
unsigned long long)__a
,
1686 (vector
unsigned long long)(__b
>= __zero
) &
1687 (vector
unsigned long long)__b
);
1690 static inline __ATTRS_o_ai vector
unsigned int
1691 vec_packsu(vector
unsigned long long __a
, vector
unsigned long long __b
) {
1692 return __builtin_s390_vpklsg(__a
, __b
);
1695 /*-- vec_packsu_cc ----------------------------------------------------------*/
1697 static inline __ATTRS_o_ai vector
unsigned char
1698 vec_packsu_cc(vector
unsigned short __a
, vector
unsigned short __b
, int *__cc
) {
1699 return __builtin_s390_vpklshs(__a
, __b
, __cc
);
1702 static inline __ATTRS_o_ai vector
unsigned short
1703 vec_packsu_cc(vector
unsigned int __a
, vector
unsigned int __b
, int *__cc
) {
1704 return __builtin_s390_vpklsfs(__a
, __b
, __cc
);
1707 static inline __ATTRS_o_ai vector
unsigned int
1708 vec_packsu_cc(vector
unsigned long long __a
, vector
unsigned long long __b
,
1710 return __builtin_s390_vpklsgs(__a
, __b
, __cc
);
1713 /*-- vec_unpackh ------------------------------------------------------------*/
1715 static inline __ATTRS_o_ai vector
signed short
1716 vec_unpackh(vector
signed char __a
) {
1717 return __builtin_s390_vuphb(__a
);
1720 static inline __ATTRS_o_ai vector
bool short
1721 vec_unpackh(vector
bool char __a
) {
1722 return (vector
bool short)__builtin_s390_vuphb((vector
signed char)__a
);
1725 static inline __ATTRS_o_ai vector
unsigned short
1726 vec_unpackh(vector
unsigned char __a
) {
1727 return __builtin_s390_vuplhb(__a
);
1730 static inline __ATTRS_o_ai vector
signed int
1731 vec_unpackh(vector
signed short __a
) {
1732 return __builtin_s390_vuphh(__a
);
1735 static inline __ATTRS_o_ai vector
bool int
1736 vec_unpackh(vector
bool short __a
) {
1737 return (vector
bool int)__builtin_s390_vuphh((vector
signed short)__a
);
1740 static inline __ATTRS_o_ai vector
unsigned int
1741 vec_unpackh(vector
unsigned short __a
) {
1742 return __builtin_s390_vuplhh(__a
);
1745 static inline __ATTRS_o_ai vector
signed long long
1746 vec_unpackh(vector
signed int __a
) {
1747 return __builtin_s390_vuphf(__a
);
1750 static inline __ATTRS_o_ai vector
bool long long
1751 vec_unpackh(vector
bool int __a
) {
1752 return (vector
bool long long)__builtin_s390_vuphf((vector
signed int)__a
);
1755 static inline __ATTRS_o_ai vector
unsigned long long
1756 vec_unpackh(vector
unsigned int __a
) {
1757 return __builtin_s390_vuplhf(__a
);
1760 /*-- vec_unpackl ------------------------------------------------------------*/
1762 static inline __ATTRS_o_ai vector
signed short
1763 vec_unpackl(vector
signed char __a
) {
1764 return __builtin_s390_vuplb(__a
);
1767 static inline __ATTRS_o_ai vector
bool short
1768 vec_unpackl(vector
bool char __a
) {
1769 return (vector
bool short)__builtin_s390_vuplb((vector
signed char)__a
);
1772 static inline __ATTRS_o_ai vector
unsigned short
1773 vec_unpackl(vector
unsigned char __a
) {
1774 return __builtin_s390_vupllb(__a
);
1777 static inline __ATTRS_o_ai vector
signed int
1778 vec_unpackl(vector
signed short __a
) {
1779 return __builtin_s390_vuplhw(__a
);
1782 static inline __ATTRS_o_ai vector
bool int
1783 vec_unpackl(vector
bool short __a
) {
1784 return (vector
bool int)__builtin_s390_vuplhw((vector
signed short)__a
);
1787 static inline __ATTRS_o_ai vector
unsigned int
1788 vec_unpackl(vector
unsigned short __a
) {
1789 return __builtin_s390_vupllh(__a
);
1792 static inline __ATTRS_o_ai vector
signed long long
1793 vec_unpackl(vector
signed int __a
) {
1794 return __builtin_s390_vuplf(__a
);
1797 static inline __ATTRS_o_ai vector
bool long long
1798 vec_unpackl(vector
bool int __a
) {
1799 return (vector
bool long long)__builtin_s390_vuplf((vector
signed int)__a
);
1802 static inline __ATTRS_o_ai vector
unsigned long long
1803 vec_unpackl(vector
unsigned int __a
) {
1804 return __builtin_s390_vupllf(__a
);
1807 /*-- vec_cmpeq --------------------------------------------------------------*/
1809 static inline __ATTRS_o_ai vector
bool char
1810 vec_cmpeq(vector
bool char __a
, vector
bool char __b
) {
1811 return (vector
bool char)(__a
== __b
);
1814 static inline __ATTRS_o_ai vector
bool char
1815 vec_cmpeq(vector
signed char __a
, vector
signed char __b
) {
1816 return (vector
bool char)(__a
== __b
);
1819 static inline __ATTRS_o_ai vector
bool char
1820 vec_cmpeq(vector
unsigned char __a
, vector
unsigned char __b
) {
1821 return (vector
bool char)(__a
== __b
);
1824 static inline __ATTRS_o_ai vector
bool short
1825 vec_cmpeq(vector
bool short __a
, vector
bool short __b
) {
1826 return (vector
bool short)(__a
== __b
);
1829 static inline __ATTRS_o_ai vector
bool short
1830 vec_cmpeq(vector
signed short __a
, vector
signed short __b
) {
1831 return (vector
bool short)(__a
== __b
);
1834 static inline __ATTRS_o_ai vector
bool short
1835 vec_cmpeq(vector
unsigned short __a
, vector
unsigned short __b
) {
1836 return (vector
bool short)(__a
== __b
);
1839 static inline __ATTRS_o_ai vector
bool int
1840 vec_cmpeq(vector
bool int __a
, vector
bool int __b
) {
1841 return (vector
bool int)(__a
== __b
);
1844 static inline __ATTRS_o_ai vector
bool int
1845 vec_cmpeq(vector
signed int __a
, vector
signed int __b
) {
1846 return (vector
bool int)(__a
== __b
);
1849 static inline __ATTRS_o_ai vector
bool int
1850 vec_cmpeq(vector
unsigned int __a
, vector
unsigned int __b
) {
1851 return (vector
bool int)(__a
== __b
);
1854 static inline __ATTRS_o_ai vector
bool long long
1855 vec_cmpeq(vector
bool long long __a
, vector
bool long long __b
) {
1856 return (vector
bool long long)(__a
== __b
);
1859 static inline __ATTRS_o_ai vector
bool long long
1860 vec_cmpeq(vector
signed long long __a
, vector
signed long long __b
) {
1861 return (vector
bool long long)(__a
== __b
);
1864 static inline __ATTRS_o_ai vector
bool long long
1865 vec_cmpeq(vector
unsigned long long __a
, vector
unsigned long long __b
) {
1866 return (vector
bool long long)(__a
== __b
);
1869 static inline __ATTRS_o_ai vector
bool long long
1870 vec_cmpeq(vector
double __a
, vector
double __b
) {
1871 return (vector
bool long long)(__a
== __b
);
1874 /*-- vec_cmpge --------------------------------------------------------------*/
1876 static inline __ATTRS_o_ai vector
bool char
1877 vec_cmpge(vector
signed char __a
, vector
signed char __b
) {
1878 return (vector
bool char)(__a
>= __b
);
1881 static inline __ATTRS_o_ai vector
bool char
1882 vec_cmpge(vector
unsigned char __a
, vector
unsigned char __b
) {
1883 return (vector
bool char)(__a
>= __b
);
1886 static inline __ATTRS_o_ai vector
bool short
1887 vec_cmpge(vector
signed short __a
, vector
signed short __b
) {
1888 return (vector
bool short)(__a
>= __b
);
1891 static inline __ATTRS_o_ai vector
bool short
1892 vec_cmpge(vector
unsigned short __a
, vector
unsigned short __b
) {
1893 return (vector
bool short)(__a
>= __b
);
1896 static inline __ATTRS_o_ai vector
bool int
1897 vec_cmpge(vector
signed int __a
, vector
signed int __b
) {
1898 return (vector
bool int)(__a
>= __b
);
1901 static inline __ATTRS_o_ai vector
bool int
1902 vec_cmpge(vector
unsigned int __a
, vector
unsigned int __b
) {
1903 return (vector
bool int)(__a
>= __b
);
1906 static inline __ATTRS_o_ai vector
bool long long
1907 vec_cmpge(vector
signed long long __a
, vector
signed long long __b
) {
1908 return (vector
bool long long)(__a
>= __b
);
1911 static inline __ATTRS_o_ai vector
bool long long
1912 vec_cmpge(vector
unsigned long long __a
, vector
unsigned long long __b
) {
1913 return (vector
bool long long)(__a
>= __b
);
1916 static inline __ATTRS_o_ai vector
bool long long
1917 vec_cmpge(vector
double __a
, vector
double __b
) {
1918 return (vector
bool long long)(__a
>= __b
);
1921 /*-- vec_cmpgt --------------------------------------------------------------*/
1923 static inline __ATTRS_o_ai vector
bool char
1924 vec_cmpgt(vector
signed char __a
, vector
signed char __b
) {
1925 return (vector
bool char)(__a
> __b
);
1928 static inline __ATTRS_o_ai vector
bool char
1929 vec_cmpgt(vector
unsigned char __a
, vector
unsigned char __b
) {
1930 return (vector
bool char)(__a
> __b
);
1933 static inline __ATTRS_o_ai vector
bool short
1934 vec_cmpgt(vector
signed short __a
, vector
signed short __b
) {
1935 return (vector
bool short)(__a
> __b
);
1938 static inline __ATTRS_o_ai vector
bool short
1939 vec_cmpgt(vector
unsigned short __a
, vector
unsigned short __b
) {
1940 return (vector
bool short)(__a
> __b
);
1943 static inline __ATTRS_o_ai vector
bool int
1944 vec_cmpgt(vector
signed int __a
, vector
signed int __b
) {
1945 return (vector
bool int)(__a
> __b
);
1948 static inline __ATTRS_o_ai vector
bool int
1949 vec_cmpgt(vector
unsigned int __a
, vector
unsigned int __b
) {
1950 return (vector
bool int)(__a
> __b
);
1953 static inline __ATTRS_o_ai vector
bool long long
1954 vec_cmpgt(vector
signed long long __a
, vector
signed long long __b
) {
1955 return (vector
bool long long)(__a
> __b
);
1958 static inline __ATTRS_o_ai vector
bool long long
1959 vec_cmpgt(vector
unsigned long long __a
, vector
unsigned long long __b
) {
1960 return (vector
bool long long)(__a
> __b
);
1963 static inline __ATTRS_o_ai vector
bool long long
1964 vec_cmpgt(vector
double __a
, vector
double __b
) {
1965 return (vector
bool long long)(__a
> __b
);
1968 /*-- vec_cmple --------------------------------------------------------------*/
1970 static inline __ATTRS_o_ai vector
bool char
1971 vec_cmple(vector
signed char __a
, vector
signed char __b
) {
1972 return (vector
bool char)(__a
<= __b
);
1975 static inline __ATTRS_o_ai vector
bool char
1976 vec_cmple(vector
unsigned char __a
, vector
unsigned char __b
) {
1977 return (vector
bool char)(__a
<= __b
);
1980 static inline __ATTRS_o_ai vector
bool short
1981 vec_cmple(vector
signed short __a
, vector
signed short __b
) {
1982 return (vector
bool short)(__a
<= __b
);
1985 static inline __ATTRS_o_ai vector
bool short
1986 vec_cmple(vector
unsigned short __a
, vector
unsigned short __b
) {
1987 return (vector
bool short)(__a
<= __b
);
1990 static inline __ATTRS_o_ai vector
bool int
1991 vec_cmple(vector
signed int __a
, vector
signed int __b
) {
1992 return (vector
bool int)(__a
<= __b
);
1995 static inline __ATTRS_o_ai vector
bool int
1996 vec_cmple(vector
unsigned int __a
, vector
unsigned int __b
) {
1997 return (vector
bool int)(__a
<= __b
);
2000 static inline __ATTRS_o_ai vector
bool long long
2001 vec_cmple(vector
signed long long __a
, vector
signed long long __b
) {
2002 return (vector
bool long long)(__a
<= __b
);
2005 static inline __ATTRS_o_ai vector
bool long long
2006 vec_cmple(vector
unsigned long long __a
, vector
unsigned long long __b
) {
2007 return (vector
bool long long)(__a
<= __b
);
2010 static inline __ATTRS_o_ai vector
bool long long
2011 vec_cmple(vector
double __a
, vector
double __b
) {
2012 return (vector
bool long long)(__a
<= __b
);
2015 /*-- vec_cmplt --------------------------------------------------------------*/
2017 static inline __ATTRS_o_ai vector
bool char
2018 vec_cmplt(vector
signed char __a
, vector
signed char __b
) {
2019 return (vector
bool char)(__a
< __b
);
2022 static inline __ATTRS_o_ai vector
bool char
2023 vec_cmplt(vector
unsigned char __a
, vector
unsigned char __b
) {
2024 return (vector
bool char)(__a
< __b
);
2027 static inline __ATTRS_o_ai vector
bool short
2028 vec_cmplt(vector
signed short __a
, vector
signed short __b
) {
2029 return (vector
bool short)(__a
< __b
);
2032 static inline __ATTRS_o_ai vector
bool short
2033 vec_cmplt(vector
unsigned short __a
, vector
unsigned short __b
) {
2034 return (vector
bool short)(__a
< __b
);
2037 static inline __ATTRS_o_ai vector
bool int
2038 vec_cmplt(vector
signed int __a
, vector
signed int __b
) {
2039 return (vector
bool int)(__a
< __b
);
2042 static inline __ATTRS_o_ai vector
bool int
2043 vec_cmplt(vector
unsigned int __a
, vector
unsigned int __b
) {
2044 return (vector
bool int)(__a
< __b
);
2047 static inline __ATTRS_o_ai vector
bool long long
2048 vec_cmplt(vector
signed long long __a
, vector
signed long long __b
) {
2049 return (vector
bool long long)(__a
< __b
);
2052 static inline __ATTRS_o_ai vector
bool long long
2053 vec_cmplt(vector
unsigned long long __a
, vector
unsigned long long __b
) {
2054 return (vector
bool long long)(__a
< __b
);
2057 static inline __ATTRS_o_ai vector
bool long long
2058 vec_cmplt(vector
double __a
, vector
double __b
) {
2059 return (vector
bool long long)(__a
< __b
);
2062 /*-- vec_all_eq -------------------------------------------------------------*/
2064 static inline __ATTRS_o_ai
int
2065 vec_all_eq(vector
signed char __a
, vector
signed char __b
) {
2067 __builtin_s390_vceqbs(__a
, __b
, &__cc
);
2071 static inline __ATTRS_o_ai
int
2072 vec_all_eq(vector
signed char __a
, vector
bool char __b
) {
2074 __builtin_s390_vceqbs(__a
, (vector
signed char)__b
, &__cc
);
2078 static inline __ATTRS_o_ai
int
2079 vec_all_eq(vector
bool char __a
, vector
signed char __b
) {
2081 __builtin_s390_vceqbs((vector
signed char)__a
, __b
, &__cc
);
2085 static inline __ATTRS_o_ai
int
2086 vec_all_eq(vector
unsigned char __a
, vector
unsigned char __b
) {
2088 __builtin_s390_vceqbs((vector
signed char)__a
,
2089 (vector
signed char)__b
, &__cc
);
2093 static inline __ATTRS_o_ai
int
2094 vec_all_eq(vector
unsigned char __a
, vector
bool char __b
) {
2096 __builtin_s390_vceqbs((vector
signed char)__a
,
2097 (vector
signed char)__b
, &__cc
);
2101 static inline __ATTRS_o_ai
int
2102 vec_all_eq(vector
bool char __a
, vector
unsigned char __b
) {
2104 __builtin_s390_vceqbs((vector
signed char)__a
,
2105 (vector
signed char)__b
, &__cc
);
2109 static inline __ATTRS_o_ai
int
2110 vec_all_eq(vector
bool char __a
, vector
bool char __b
) {
2112 __builtin_s390_vceqbs((vector
signed char)__a
,
2113 (vector
signed char)__b
, &__cc
);
2117 static inline __ATTRS_o_ai
int
2118 vec_all_eq(vector
signed short __a
, vector
signed short __b
) {
2120 __builtin_s390_vceqhs(__a
, __b
, &__cc
);
2124 static inline __ATTRS_o_ai
int
2125 vec_all_eq(vector
signed short __a
, vector
bool short __b
) {
2127 __builtin_s390_vceqhs(__a
, (vector
signed short)__b
, &__cc
);
2131 static inline __ATTRS_o_ai
int
2132 vec_all_eq(vector
bool short __a
, vector
signed short __b
) {
2134 __builtin_s390_vceqhs((vector
signed short)__a
, __b
, &__cc
);
2138 static inline __ATTRS_o_ai
int
2139 vec_all_eq(vector
unsigned short __a
, vector
unsigned short __b
) {
2141 __builtin_s390_vceqhs((vector
signed short)__a
,
2142 (vector
signed short)__b
, &__cc
);
2146 static inline __ATTRS_o_ai
int
2147 vec_all_eq(vector
unsigned short __a
, vector
bool short __b
) {
2149 __builtin_s390_vceqhs((vector
signed short)__a
,
2150 (vector
signed short)__b
, &__cc
);
2154 static inline __ATTRS_o_ai
int
2155 vec_all_eq(vector
bool short __a
, vector
unsigned short __b
) {
2157 __builtin_s390_vceqhs((vector
signed short)__a
,
2158 (vector
signed short)__b
, &__cc
);
2162 static inline __ATTRS_o_ai
int
2163 vec_all_eq(vector
bool short __a
, vector
bool short __b
) {
2165 __builtin_s390_vceqhs((vector
signed short)__a
,
2166 (vector
signed short)__b
, &__cc
);
2170 static inline __ATTRS_o_ai
int
2171 vec_all_eq(vector
signed int __a
, vector
signed int __b
) {
2173 __builtin_s390_vceqfs(__a
, __b
, &__cc
);
2177 static inline __ATTRS_o_ai
int
2178 vec_all_eq(vector
signed int __a
, vector
bool int __b
) {
2180 __builtin_s390_vceqfs(__a
, (vector
signed int)__b
, &__cc
);
2184 static inline __ATTRS_o_ai
int
2185 vec_all_eq(vector
bool int __a
, vector
signed int __b
) {
2187 __builtin_s390_vceqfs((vector
signed int)__a
, __b
, &__cc
);
2191 static inline __ATTRS_o_ai
int
2192 vec_all_eq(vector
unsigned int __a
, vector
unsigned int __b
) {
2194 __builtin_s390_vceqfs((vector
signed int)__a
,
2195 (vector
signed int)__b
, &__cc
);
2199 static inline __ATTRS_o_ai
int
2200 vec_all_eq(vector
unsigned int __a
, vector
bool int __b
) {
2202 __builtin_s390_vceqfs((vector
signed int)__a
,
2203 (vector
signed int)__b
, &__cc
);
2207 static inline __ATTRS_o_ai
int
2208 vec_all_eq(vector
bool int __a
, vector
unsigned int __b
) {
2210 __builtin_s390_vceqfs((vector
signed int)__a
,
2211 (vector
signed int)__b
, &__cc
);
2215 static inline __ATTRS_o_ai
int
2216 vec_all_eq(vector
bool int __a
, vector
bool int __b
) {
2218 __builtin_s390_vceqfs((vector
signed int)__a
,
2219 (vector
signed int)__b
, &__cc
);
2223 static inline __ATTRS_o_ai
int
2224 vec_all_eq(vector
signed long long __a
, vector
signed long long __b
) {
2226 __builtin_s390_vceqgs(__a
, __b
, &__cc
);
2230 static inline __ATTRS_o_ai
int
2231 vec_all_eq(vector
signed long long __a
, vector
bool long long __b
) {
2233 __builtin_s390_vceqgs(__a
, (vector
signed long long)__b
, &__cc
);
2237 static inline __ATTRS_o_ai
int
2238 vec_all_eq(vector
bool long long __a
, vector
signed long long __b
) {
2240 __builtin_s390_vceqgs((vector
signed long long)__a
, __b
, &__cc
);
2244 static inline __ATTRS_o_ai
int
2245 vec_all_eq(vector
unsigned long long __a
, vector
unsigned long long __b
) {
2247 __builtin_s390_vceqgs((vector
signed long long)__a
,
2248 (vector
signed long long)__b
, &__cc
);
2252 static inline __ATTRS_o_ai
int
2253 vec_all_eq(vector
unsigned long long __a
, vector
bool long long __b
) {
2255 __builtin_s390_vceqgs((vector
signed long long)__a
,
2256 (vector
signed long long)__b
, &__cc
);
2260 static inline __ATTRS_o_ai
int
2261 vec_all_eq(vector
bool long long __a
, vector
unsigned long long __b
) {
2263 __builtin_s390_vceqgs((vector
signed long long)__a
,
2264 (vector
signed long long)__b
, &__cc
);
2268 static inline __ATTRS_o_ai
int
2269 vec_all_eq(vector
bool long long __a
, vector
bool long long __b
) {
2271 __builtin_s390_vceqgs((vector
signed long long)__a
,
2272 (vector
signed long long)__b
, &__cc
);
2276 static inline __ATTRS_o_ai
int
2277 vec_all_eq(vector
double __a
, vector
double __b
) {
2279 __builtin_s390_vfcedbs(__a
, __b
, &__cc
);
2283 /*-- vec_all_ne -------------------------------------------------------------*/
2285 static inline __ATTRS_o_ai
int
2286 vec_all_ne(vector
signed char __a
, vector
signed char __b
) {
2288 __builtin_s390_vceqbs(__a
, __b
, &__cc
);
2292 static inline __ATTRS_o_ai
int
2293 vec_all_ne(vector
signed char __a
, vector
bool char __b
) {
2295 __builtin_s390_vceqbs(__a
, (vector
signed char)__b
, &__cc
);
2299 static inline __ATTRS_o_ai
int
2300 vec_all_ne(vector
bool char __a
, vector
signed char __b
) {
2302 __builtin_s390_vceqbs((vector
signed char)__a
, __b
, &__cc
);
2306 static inline __ATTRS_o_ai
int
2307 vec_all_ne(vector
unsigned char __a
, vector
unsigned char __b
) {
2309 __builtin_s390_vceqbs((vector
signed char)__a
,
2310 (vector
signed char)__b
, &__cc
);
2314 static inline __ATTRS_o_ai
int
2315 vec_all_ne(vector
unsigned char __a
, vector
bool char __b
) {
2317 __builtin_s390_vceqbs((vector
signed char)__a
,
2318 (vector
signed char)__b
, &__cc
);
2322 static inline __ATTRS_o_ai
int
2323 vec_all_ne(vector
bool char __a
, vector
unsigned char __b
) {
2325 __builtin_s390_vceqbs((vector
signed char)__a
,
2326 (vector
signed char)__b
, &__cc
);
2330 static inline __ATTRS_o_ai
int
2331 vec_all_ne(vector
bool char __a
, vector
bool char __b
) {
2333 __builtin_s390_vceqbs((vector
signed char)__a
,
2334 (vector
signed char)__b
, &__cc
);
2338 static inline __ATTRS_o_ai
int
2339 vec_all_ne(vector
signed short __a
, vector
signed short __b
) {
2341 __builtin_s390_vceqhs(__a
, __b
, &__cc
);
2345 static inline __ATTRS_o_ai
int
2346 vec_all_ne(vector
signed short __a
, vector
bool short __b
) {
2348 __builtin_s390_vceqhs(__a
, (vector
signed short)__b
, &__cc
);
2352 static inline __ATTRS_o_ai
int
2353 vec_all_ne(vector
bool short __a
, vector
signed short __b
) {
2355 __builtin_s390_vceqhs((vector
signed short)__a
, __b
, &__cc
);
2359 static inline __ATTRS_o_ai
int
2360 vec_all_ne(vector
unsigned short __a
, vector
unsigned short __b
) {
2362 __builtin_s390_vceqhs((vector
signed short)__a
,
2363 (vector
signed short)__b
, &__cc
);
2367 static inline __ATTRS_o_ai
int
2368 vec_all_ne(vector
unsigned short __a
, vector
bool short __b
) {
2370 __builtin_s390_vceqhs((vector
signed short)__a
,
2371 (vector
signed short)__b
, &__cc
);
2375 static inline __ATTRS_o_ai
int
2376 vec_all_ne(vector
bool short __a
, vector
unsigned short __b
) {
2378 __builtin_s390_vceqhs((vector
signed short)__a
,
2379 (vector
signed short)__b
, &__cc
);
2383 static inline __ATTRS_o_ai
int
2384 vec_all_ne(vector
bool short __a
, vector
bool short __b
) {
2386 __builtin_s390_vceqhs((vector
signed short)__a
,
2387 (vector
signed short)__b
, &__cc
);
2391 static inline __ATTRS_o_ai
int
2392 vec_all_ne(vector
signed int __a
, vector
signed int __b
) {
2394 __builtin_s390_vceqfs(__a
, __b
, &__cc
);
2398 static inline __ATTRS_o_ai
int
2399 vec_all_ne(vector
signed int __a
, vector
bool int __b
) {
2401 __builtin_s390_vceqfs(__a
, (vector
signed int)__b
, &__cc
);
2405 static inline __ATTRS_o_ai
int
2406 vec_all_ne(vector
bool int __a
, vector
signed int __b
) {
2408 __builtin_s390_vceqfs((vector
signed int)__a
, __b
, &__cc
);
2412 static inline __ATTRS_o_ai
int
2413 vec_all_ne(vector
unsigned int __a
, vector
unsigned int __b
) {
2415 __builtin_s390_vceqfs((vector
signed int)__a
,
2416 (vector
signed int)__b
, &__cc
);
2420 static inline __ATTRS_o_ai
int
2421 vec_all_ne(vector
unsigned int __a
, vector
bool int __b
) {
2423 __builtin_s390_vceqfs((vector
signed int)__a
,
2424 (vector
signed int)__b
, &__cc
);
2428 static inline __ATTRS_o_ai
int
2429 vec_all_ne(vector
bool int __a
, vector
unsigned int __b
) {
2431 __builtin_s390_vceqfs((vector
signed int)__a
,
2432 (vector
signed int)__b
, &__cc
);
2436 static inline __ATTRS_o_ai
int
2437 vec_all_ne(vector
bool int __a
, vector
bool int __b
) {
2439 __builtin_s390_vceqfs((vector
signed int)__a
,
2440 (vector
signed int)__b
, &__cc
);
2444 static inline __ATTRS_o_ai
int
2445 vec_all_ne(vector
signed long long __a
, vector
signed long long __b
) {
2447 __builtin_s390_vceqgs(__a
, __b
, &__cc
);
2451 static inline __ATTRS_o_ai
int
2452 vec_all_ne(vector
signed long long __a
, vector
bool long long __b
) {
2454 __builtin_s390_vceqgs(__a
, (vector
signed long long)__b
, &__cc
);
2458 static inline __ATTRS_o_ai
int
2459 vec_all_ne(vector
bool long long __a
, vector
signed long long __b
) {
2461 __builtin_s390_vceqgs((vector
signed long long)__a
, __b
, &__cc
);
2465 static inline __ATTRS_o_ai
int
2466 vec_all_ne(vector
unsigned long long __a
, vector
unsigned long long __b
) {
2468 __builtin_s390_vceqgs((vector
signed long long)__a
,
2469 (vector
signed long long)__b
, &__cc
);
2473 static inline __ATTRS_o_ai
int
2474 vec_all_ne(vector
unsigned long long __a
, vector
bool long long __b
) {
2476 __builtin_s390_vceqgs((vector
signed long long)__a
,
2477 (vector
signed long long)__b
, &__cc
);
2481 static inline __ATTRS_o_ai
int
2482 vec_all_ne(vector
bool long long __a
, vector
unsigned long long __b
) {
2484 __builtin_s390_vceqgs((vector
signed long long)__a
,
2485 (vector
signed long long)__b
, &__cc
);
2489 static inline __ATTRS_o_ai
int
2490 vec_all_ne(vector
bool long long __a
, vector
bool long long __b
) {
2492 __builtin_s390_vceqgs((vector
signed long long)__a
,
2493 (vector
signed long long)__b
, &__cc
);
2497 static inline __ATTRS_o_ai
int
2498 vec_all_ne(vector
double __a
, vector
double __b
) {
2500 __builtin_s390_vfcedbs(__a
, __b
, &__cc
);
2504 /*-- vec_all_ge -------------------------------------------------------------*/
2506 static inline __ATTRS_o_ai
int
2507 vec_all_ge(vector
signed char __a
, vector
signed char __b
) {
2509 __builtin_s390_vchbs(__b
, __a
, &__cc
);
2513 static inline __ATTRS_o_ai
int
2514 vec_all_ge(vector
signed char __a
, vector
bool char __b
) {
2516 __builtin_s390_vchbs((vector
signed char)__b
, __a
, &__cc
);
2520 static inline __ATTRS_o_ai
int
2521 vec_all_ge(vector
bool char __a
, vector
signed char __b
) {
2523 __builtin_s390_vchbs(__b
, (vector
signed char)__a
, &__cc
);
2527 static inline __ATTRS_o_ai
int
2528 vec_all_ge(vector
unsigned char __a
, vector
unsigned char __b
) {
2530 __builtin_s390_vchlbs(__b
, __a
, &__cc
);
2534 static inline __ATTRS_o_ai
int
2535 vec_all_ge(vector
unsigned char __a
, vector
bool char __b
) {
2537 __builtin_s390_vchlbs((vector
unsigned char)__b
, __a
, &__cc
);
2541 static inline __ATTRS_o_ai
int
2542 vec_all_ge(vector
bool char __a
, vector
unsigned char __b
) {
2544 __builtin_s390_vchlbs(__b
, (vector
unsigned char)__a
, &__cc
);
2548 static inline __ATTRS_o_ai
int
2549 vec_all_ge(vector
bool char __a
, vector
bool char __b
) {
2551 __builtin_s390_vchlbs((vector
unsigned char)__b
,
2552 (vector
unsigned char)__a
, &__cc
);
2556 static inline __ATTRS_o_ai
int
2557 vec_all_ge(vector
signed short __a
, vector
signed short __b
) {
2559 __builtin_s390_vchhs(__b
, __a
, &__cc
);
2563 static inline __ATTRS_o_ai
int
2564 vec_all_ge(vector
signed short __a
, vector
bool short __b
) {
2566 __builtin_s390_vchhs((vector
signed short)__b
, __a
, &__cc
);
2570 static inline __ATTRS_o_ai
int
2571 vec_all_ge(vector
bool short __a
, vector
signed short __b
) {
2573 __builtin_s390_vchhs(__b
, (vector
signed short)__a
, &__cc
);
2577 static inline __ATTRS_o_ai
int
2578 vec_all_ge(vector
unsigned short __a
, vector
unsigned short __b
) {
2580 __builtin_s390_vchlhs(__b
, __a
, &__cc
);
2584 static inline __ATTRS_o_ai
int
2585 vec_all_ge(vector
unsigned short __a
, vector
bool short __b
) {
2587 __builtin_s390_vchlhs((vector
unsigned short)__b
, __a
, &__cc
);
2591 static inline __ATTRS_o_ai
int
2592 vec_all_ge(vector
bool short __a
, vector
unsigned short __b
) {
2594 __builtin_s390_vchlhs(__b
, (vector
unsigned short)__a
, &__cc
);
2598 static inline __ATTRS_o_ai
int
2599 vec_all_ge(vector
bool short __a
, vector
bool short __b
) {
2601 __builtin_s390_vchlhs((vector
unsigned short)__b
,
2602 (vector
unsigned short)__a
, &__cc
);
2606 static inline __ATTRS_o_ai
int
2607 vec_all_ge(vector
signed int __a
, vector
signed int __b
) {
2609 __builtin_s390_vchfs(__b
, __a
, &__cc
);
2613 static inline __ATTRS_o_ai
int
2614 vec_all_ge(vector
signed int __a
, vector
bool int __b
) {
2616 __builtin_s390_vchfs((vector
signed int)__b
, __a
, &__cc
);
2620 static inline __ATTRS_o_ai
int
2621 vec_all_ge(vector
bool int __a
, vector
signed int __b
) {
2623 __builtin_s390_vchfs(__b
, (vector
signed int)__a
, &__cc
);
2627 static inline __ATTRS_o_ai
int
2628 vec_all_ge(vector
unsigned int __a
, vector
unsigned int __b
) {
2630 __builtin_s390_vchlfs(__b
, __a
, &__cc
);
2634 static inline __ATTRS_o_ai
int
2635 vec_all_ge(vector
unsigned int __a
, vector
bool int __b
) {
2637 __builtin_s390_vchlfs((vector
unsigned int)__b
, __a
, &__cc
);
2641 static inline __ATTRS_o_ai
int
2642 vec_all_ge(vector
bool int __a
, vector
unsigned int __b
) {
2644 __builtin_s390_vchlfs(__b
, (vector
unsigned int)__a
, &__cc
);
2648 static inline __ATTRS_o_ai
int
2649 vec_all_ge(vector
bool int __a
, vector
bool int __b
) {
2651 __builtin_s390_vchlfs((vector
unsigned int)__b
,
2652 (vector
unsigned int)__a
, &__cc
);
2656 static inline __ATTRS_o_ai
int
2657 vec_all_ge(vector
signed long long __a
, vector
signed long long __b
) {
2659 __builtin_s390_vchgs(__b
, __a
, &__cc
);
2663 static inline __ATTRS_o_ai
int
2664 vec_all_ge(vector
signed long long __a
, vector
bool long long __b
) {
2666 __builtin_s390_vchgs((vector
signed long long)__b
, __a
, &__cc
);
2670 static inline __ATTRS_o_ai
int
2671 vec_all_ge(vector
bool long long __a
, vector
signed long long __b
) {
2673 __builtin_s390_vchgs(__b
, (vector
signed long long)__a
, &__cc
);
2677 static inline __ATTRS_o_ai
int
2678 vec_all_ge(vector
unsigned long long __a
, vector
unsigned long long __b
) {
2680 __builtin_s390_vchlgs(__b
, __a
, &__cc
);
2684 static inline __ATTRS_o_ai
int
2685 vec_all_ge(vector
unsigned long long __a
, vector
bool long long __b
) {
2687 __builtin_s390_vchlgs((vector
unsigned long long)__b
, __a
, &__cc
);
2691 static inline __ATTRS_o_ai
int
2692 vec_all_ge(vector
bool long long __a
, vector
unsigned long long __b
) {
2694 __builtin_s390_vchlgs(__b
, (vector
unsigned long long)__a
, &__cc
);
2698 static inline __ATTRS_o_ai
int
2699 vec_all_ge(vector
bool long long __a
, vector
bool long long __b
) {
2701 __builtin_s390_vchlgs((vector
unsigned long long)__b
,
2702 (vector
unsigned long long)__a
, &__cc
);
2706 static inline __ATTRS_o_ai
int
2707 vec_all_ge(vector
double __a
, vector
double __b
) {
2709 __builtin_s390_vfchedbs(__a
, __b
, &__cc
);
2713 /*-- vec_all_gt -------------------------------------------------------------*/
2715 static inline __ATTRS_o_ai
int
2716 vec_all_gt(vector
signed char __a
, vector
signed char __b
) {
2718 __builtin_s390_vchbs(__a
, __b
, &__cc
);
2722 static inline __ATTRS_o_ai
int
2723 vec_all_gt(vector
signed char __a
, vector
bool char __b
) {
2725 __builtin_s390_vchbs(__a
, (vector
signed char)__b
, &__cc
);
2729 static inline __ATTRS_o_ai
int
2730 vec_all_gt(vector
bool char __a
, vector
signed char __b
) {
2732 __builtin_s390_vchbs((vector
signed char)__a
, __b
, &__cc
);
2736 static inline __ATTRS_o_ai
int
2737 vec_all_gt(vector
unsigned char __a
, vector
unsigned char __b
) {
2739 __builtin_s390_vchlbs(__a
, __b
, &__cc
);
2743 static inline __ATTRS_o_ai
int
2744 vec_all_gt(vector
unsigned char __a
, vector
bool char __b
) {
2746 __builtin_s390_vchlbs(__a
, (vector
unsigned char)__b
, &__cc
);
2750 static inline __ATTRS_o_ai
int
2751 vec_all_gt(vector
bool char __a
, vector
unsigned char __b
) {
2753 __builtin_s390_vchlbs((vector
unsigned char)__a
, __b
, &__cc
);
2757 static inline __ATTRS_o_ai
int
2758 vec_all_gt(vector
bool char __a
, vector
bool char __b
) {
2760 __builtin_s390_vchlbs((vector
unsigned char)__a
,
2761 (vector
unsigned char)__b
, &__cc
);
2765 static inline __ATTRS_o_ai
int
2766 vec_all_gt(vector
signed short __a
, vector
signed short __b
) {
2768 __builtin_s390_vchhs(__a
, __b
, &__cc
);
2772 static inline __ATTRS_o_ai
int
2773 vec_all_gt(vector
signed short __a
, vector
bool short __b
) {
2775 __builtin_s390_vchhs(__a
, (vector
signed short)__b
, &__cc
);
2779 static inline __ATTRS_o_ai
int
2780 vec_all_gt(vector
bool short __a
, vector
signed short __b
) {
2782 __builtin_s390_vchhs((vector
signed short)__a
, __b
, &__cc
);
2786 static inline __ATTRS_o_ai
int
2787 vec_all_gt(vector
unsigned short __a
, vector
unsigned short __b
) {
2789 __builtin_s390_vchlhs(__a
, __b
, &__cc
);
2793 static inline __ATTRS_o_ai
int
2794 vec_all_gt(vector
unsigned short __a
, vector
bool short __b
) {
2796 __builtin_s390_vchlhs(__a
, (vector
unsigned short)__b
, &__cc
);
2800 static inline __ATTRS_o_ai
int
2801 vec_all_gt(vector
bool short __a
, vector
unsigned short __b
) {
2803 __builtin_s390_vchlhs((vector
unsigned short)__a
, __b
, &__cc
);
2807 static inline __ATTRS_o_ai
int
2808 vec_all_gt(vector
bool short __a
, vector
bool short __b
) {
2810 __builtin_s390_vchlhs((vector
unsigned short)__a
,
2811 (vector
unsigned short)__b
, &__cc
);
2815 static inline __ATTRS_o_ai
int
2816 vec_all_gt(vector
signed int __a
, vector
signed int __b
) {
2818 __builtin_s390_vchfs(__a
, __b
, &__cc
);
2822 static inline __ATTRS_o_ai
int
2823 vec_all_gt(vector
signed int __a
, vector
bool int __b
) {
2825 __builtin_s390_vchfs(__a
, (vector
signed int)__b
, &__cc
);
2829 static inline __ATTRS_o_ai
int
2830 vec_all_gt(vector
bool int __a
, vector
signed int __b
) {
2832 __builtin_s390_vchfs((vector
signed int)__a
, __b
, &__cc
);
2836 static inline __ATTRS_o_ai
int
2837 vec_all_gt(vector
unsigned int __a
, vector
unsigned int __b
) {
2839 __builtin_s390_vchlfs(__a
, __b
, &__cc
);
2843 static inline __ATTRS_o_ai
int
2844 vec_all_gt(vector
unsigned int __a
, vector
bool int __b
) {
2846 __builtin_s390_vchlfs(__a
, (vector
unsigned int)__b
, &__cc
);
2850 static inline __ATTRS_o_ai
int
2851 vec_all_gt(vector
bool int __a
, vector
unsigned int __b
) {
2853 __builtin_s390_vchlfs((vector
unsigned int)__a
, __b
, &__cc
);
2857 static inline __ATTRS_o_ai
int
2858 vec_all_gt(vector
bool int __a
, vector
bool int __b
) {
2860 __builtin_s390_vchlfs((vector
unsigned int)__a
,
2861 (vector
unsigned int)__b
, &__cc
);
2865 static inline __ATTRS_o_ai
int
2866 vec_all_gt(vector
signed long long __a
, vector
signed long long __b
) {
2868 __builtin_s390_vchgs(__a
, __b
, &__cc
);
2872 static inline __ATTRS_o_ai
int
2873 vec_all_gt(vector
signed long long __a
, vector
bool long long __b
) {
2875 __builtin_s390_vchgs(__a
, (vector
signed long long)__b
, &__cc
);
2879 static inline __ATTRS_o_ai
int
2880 vec_all_gt(vector
bool long long __a
, vector
signed long long __b
) {
2882 __builtin_s390_vchgs((vector
signed long long)__a
, __b
, &__cc
);
2886 static inline __ATTRS_o_ai
int
2887 vec_all_gt(vector
unsigned long long __a
, vector
unsigned long long __b
) {
2889 __builtin_s390_vchlgs(__a
, __b
, &__cc
);
2893 static inline __ATTRS_o_ai
int
2894 vec_all_gt(vector
unsigned long long __a
, vector
bool long long __b
) {
2896 __builtin_s390_vchlgs(__a
, (vector
unsigned long long)__b
, &__cc
);
2900 static inline __ATTRS_o_ai
int
2901 vec_all_gt(vector
bool long long __a
, vector
unsigned long long __b
) {
2903 __builtin_s390_vchlgs((vector
unsigned long long)__a
, __b
, &__cc
);
2907 static inline __ATTRS_o_ai
int
2908 vec_all_gt(vector
bool long long __a
, vector
bool long long __b
) {
2910 __builtin_s390_vchlgs((vector
unsigned long long)__a
,
2911 (vector
unsigned long long)__b
, &__cc
);
2915 static inline __ATTRS_o_ai
int
2916 vec_all_gt(vector
double __a
, vector
double __b
) {
2918 __builtin_s390_vfchdbs(__a
, __b
, &__cc
);
2922 /*-- vec_all_le -------------------------------------------------------------*/
2924 static inline __ATTRS_o_ai
int
2925 vec_all_le(vector
signed char __a
, vector
signed char __b
) {
2927 __builtin_s390_vchbs(__a
, __b
, &__cc
);
2931 static inline __ATTRS_o_ai
int
2932 vec_all_le(vector
signed char __a
, vector
bool char __b
) {
2934 __builtin_s390_vchbs(__a
, (vector
signed char)__b
, &__cc
);
2938 static inline __ATTRS_o_ai
int
2939 vec_all_le(vector
bool char __a
, vector
signed char __b
) {
2941 __builtin_s390_vchbs((vector
signed char)__a
, __b
, &__cc
);
2945 static inline __ATTRS_o_ai
int
2946 vec_all_le(vector
unsigned char __a
, vector
unsigned char __b
) {
2948 __builtin_s390_vchlbs(__a
, __b
, &__cc
);
2952 static inline __ATTRS_o_ai
int
2953 vec_all_le(vector
unsigned char __a
, vector
bool char __b
) {
2955 __builtin_s390_vchlbs(__a
, (vector
unsigned char)__b
, &__cc
);
2959 static inline __ATTRS_o_ai
int
2960 vec_all_le(vector
bool char __a
, vector
unsigned char __b
) {
2962 __builtin_s390_vchlbs((vector
unsigned char)__a
, __b
, &__cc
);
2966 static inline __ATTRS_o_ai
int
2967 vec_all_le(vector
bool char __a
, vector
bool char __b
) {
2969 __builtin_s390_vchlbs((vector
unsigned char)__a
,
2970 (vector
unsigned char)__b
, &__cc
);
2974 static inline __ATTRS_o_ai
int
2975 vec_all_le(vector
signed short __a
, vector
signed short __b
) {
2977 __builtin_s390_vchhs(__a
, __b
, &__cc
);
2981 static inline __ATTRS_o_ai
int
2982 vec_all_le(vector
signed short __a
, vector
bool short __b
) {
2984 __builtin_s390_vchhs(__a
, (vector
signed short)__b
, &__cc
);
2988 static inline __ATTRS_o_ai
int
2989 vec_all_le(vector
bool short __a
, vector
signed short __b
) {
2991 __builtin_s390_vchhs((vector
signed short)__a
, __b
, &__cc
);
2995 static inline __ATTRS_o_ai
int
2996 vec_all_le(vector
unsigned short __a
, vector
unsigned short __b
) {
2998 __builtin_s390_vchlhs(__a
, __b
, &__cc
);
3002 static inline __ATTRS_o_ai
int
3003 vec_all_le(vector
unsigned short __a
, vector
bool short __b
) {
3005 __builtin_s390_vchlhs(__a
, (vector
unsigned short)__b
, &__cc
);
3009 static inline __ATTRS_o_ai
int
3010 vec_all_le(vector
bool short __a
, vector
unsigned short __b
) {
3012 __builtin_s390_vchlhs((vector
unsigned short)__a
, __b
, &__cc
);
3016 static inline __ATTRS_o_ai
int
3017 vec_all_le(vector
bool short __a
, vector
bool short __b
) {
3019 __builtin_s390_vchlhs((vector
unsigned short)__a
,
3020 (vector
unsigned short)__b
, &__cc
);
3024 static inline __ATTRS_o_ai
int
3025 vec_all_le(vector
signed int __a
, vector
signed int __b
) {
3027 __builtin_s390_vchfs(__a
, __b
, &__cc
);
3031 static inline __ATTRS_o_ai
int
3032 vec_all_le(vector
signed int __a
, vector
bool int __b
) {
3034 __builtin_s390_vchfs(__a
, (vector
signed int)__b
, &__cc
);
3038 static inline __ATTRS_o_ai
int
3039 vec_all_le(vector
bool int __a
, vector
signed int __b
) {
3041 __builtin_s390_vchfs((vector
signed int)__a
, __b
, &__cc
);
3045 static inline __ATTRS_o_ai
int
3046 vec_all_le(vector
unsigned int __a
, vector
unsigned int __b
) {
3048 __builtin_s390_vchlfs(__a
, __b
, &__cc
);
3052 static inline __ATTRS_o_ai
int
3053 vec_all_le(vector
unsigned int __a
, vector
bool int __b
) {
3055 __builtin_s390_vchlfs(__a
, (vector
unsigned int)__b
, &__cc
);
3059 static inline __ATTRS_o_ai
int
3060 vec_all_le(vector
bool int __a
, vector
unsigned int __b
) {
3062 __builtin_s390_vchlfs((vector
unsigned int)__a
, __b
, &__cc
);
3066 static inline __ATTRS_o_ai
int
3067 vec_all_le(vector
bool int __a
, vector
bool int __b
) {
3069 __builtin_s390_vchlfs((vector
unsigned int)__a
,
3070 (vector
unsigned int)__b
, &__cc
);
3074 static inline __ATTRS_o_ai
int
3075 vec_all_le(vector
signed long long __a
, vector
signed long long __b
) {
3077 __builtin_s390_vchgs(__a
, __b
, &__cc
);
3081 static inline __ATTRS_o_ai
int
3082 vec_all_le(vector
signed long long __a
, vector
bool long long __b
) {
3084 __builtin_s390_vchgs(__a
, (vector
signed long long)__b
, &__cc
);
3088 static inline __ATTRS_o_ai
int
3089 vec_all_le(vector
bool long long __a
, vector
signed long long __b
) {
3091 __builtin_s390_vchgs((vector
signed long long)__a
, __b
, &__cc
);
3095 static inline __ATTRS_o_ai
int
3096 vec_all_le(vector
unsigned long long __a
, vector
unsigned long long __b
) {
3098 __builtin_s390_vchlgs(__a
, __b
, &__cc
);
3102 static inline __ATTRS_o_ai
int
3103 vec_all_le(vector
unsigned long long __a
, vector
bool long long __b
) {
3105 __builtin_s390_vchlgs(__a
, (vector
unsigned long long)__b
, &__cc
);
3109 static inline __ATTRS_o_ai
int
3110 vec_all_le(vector
bool long long __a
, vector
unsigned long long __b
) {
3112 __builtin_s390_vchlgs((vector
unsigned long long)__a
, __b
, &__cc
);
3116 static inline __ATTRS_o_ai
int
3117 vec_all_le(vector
bool long long __a
, vector
bool long long __b
) {
3119 __builtin_s390_vchlgs((vector
unsigned long long)__a
,
3120 (vector
unsigned long long)__b
, &__cc
);
3124 static inline __ATTRS_o_ai
int
3125 vec_all_le(vector
double __a
, vector
double __b
) {
3127 __builtin_s390_vfchedbs(__b
, __a
, &__cc
);
3131 /*-- vec_all_lt -------------------------------------------------------------*/
3133 static inline __ATTRS_o_ai
int
3134 vec_all_lt(vector
signed char __a
, vector
signed char __b
) {
3136 __builtin_s390_vchbs(__b
, __a
, &__cc
);
3140 static inline __ATTRS_o_ai
int
3141 vec_all_lt(vector
signed char __a
, vector
bool char __b
) {
3143 __builtin_s390_vchbs((vector
signed char)__b
, __a
, &__cc
);
3147 static inline __ATTRS_o_ai
int
3148 vec_all_lt(vector
bool char __a
, vector
signed char __b
) {
3150 __builtin_s390_vchbs(__b
, (vector
signed char)__a
, &__cc
);
3154 static inline __ATTRS_o_ai
int
3155 vec_all_lt(vector
unsigned char __a
, vector
unsigned char __b
) {
3157 __builtin_s390_vchlbs(__b
, __a
, &__cc
);
3161 static inline __ATTRS_o_ai
int
3162 vec_all_lt(vector
unsigned char __a
, vector
bool char __b
) {
3164 __builtin_s390_vchlbs((vector
unsigned char)__b
, __a
, &__cc
);
3168 static inline __ATTRS_o_ai
int
3169 vec_all_lt(vector
bool char __a
, vector
unsigned char __b
) {
3171 __builtin_s390_vchlbs(__b
, (vector
unsigned char)__a
, &__cc
);
3175 static inline __ATTRS_o_ai
int
3176 vec_all_lt(vector
bool char __a
, vector
bool char __b
) {
3178 __builtin_s390_vchlbs((vector
unsigned char)__b
,
3179 (vector
unsigned char)__a
, &__cc
);
3183 static inline __ATTRS_o_ai
int
3184 vec_all_lt(vector
signed short __a
, vector
signed short __b
) {
3186 __builtin_s390_vchhs(__b
, __a
, &__cc
);
3190 static inline __ATTRS_o_ai
int
3191 vec_all_lt(vector
signed short __a
, vector
bool short __b
) {
3193 __builtin_s390_vchhs((vector
signed short)__b
, __a
, &__cc
);
3197 static inline __ATTRS_o_ai
int
3198 vec_all_lt(vector
bool short __a
, vector
signed short __b
) {
3200 __builtin_s390_vchhs(__b
, (vector
signed short)__a
, &__cc
);
3204 static inline __ATTRS_o_ai
int
3205 vec_all_lt(vector
unsigned short __a
, vector
unsigned short __b
) {
3207 __builtin_s390_vchlhs(__b
, __a
, &__cc
);
3211 static inline __ATTRS_o_ai
int
3212 vec_all_lt(vector
unsigned short __a
, vector
bool short __b
) {
3214 __builtin_s390_vchlhs((vector
unsigned short)__b
, __a
, &__cc
);
3218 static inline __ATTRS_o_ai
int
3219 vec_all_lt(vector
bool short __a
, vector
unsigned short __b
) {
3221 __builtin_s390_vchlhs(__b
, (vector
unsigned short)__a
, &__cc
);
3225 static inline __ATTRS_o_ai
int
3226 vec_all_lt(vector
bool short __a
, vector
bool short __b
) {
3228 __builtin_s390_vchlhs((vector
unsigned short)__b
,
3229 (vector
unsigned short)__a
, &__cc
);
3233 static inline __ATTRS_o_ai
int
3234 vec_all_lt(vector
signed int __a
, vector
signed int __b
) {
3236 __builtin_s390_vchfs(__b
, __a
, &__cc
);
3240 static inline __ATTRS_o_ai
int
3241 vec_all_lt(vector
signed int __a
, vector
bool int __b
) {
3243 __builtin_s390_vchfs((vector
signed int)__b
, __a
, &__cc
);
3247 static inline __ATTRS_o_ai
int
3248 vec_all_lt(vector
bool int __a
, vector
signed int __b
) {
3250 __builtin_s390_vchfs(__b
, (vector
signed int)__a
, &__cc
);
3254 static inline __ATTRS_o_ai
int
3255 vec_all_lt(vector
unsigned int __a
, vector
unsigned int __b
) {
3257 __builtin_s390_vchlfs(__b
, __a
, &__cc
);
3261 static inline __ATTRS_o_ai
int
3262 vec_all_lt(vector
unsigned int __a
, vector
bool int __b
) {
3264 __builtin_s390_vchlfs((vector
unsigned int)__b
, __a
, &__cc
);
3268 static inline __ATTRS_o_ai
int
3269 vec_all_lt(vector
bool int __a
, vector
unsigned int __b
) {
3271 __builtin_s390_vchlfs(__b
, (vector
unsigned int)__a
, &__cc
);
3275 static inline __ATTRS_o_ai
int
3276 vec_all_lt(vector
bool int __a
, vector
bool int __b
) {
3278 __builtin_s390_vchlfs((vector
unsigned int)__b
,
3279 (vector
unsigned int)__a
, &__cc
);
3283 static inline __ATTRS_o_ai
int
3284 vec_all_lt(vector
signed long long __a
, vector
signed long long __b
) {
3286 __builtin_s390_vchgs(__b
, __a
, &__cc
);
3290 static inline __ATTRS_o_ai
int
3291 vec_all_lt(vector
signed long long __a
, vector
bool long long __b
) {
3293 __builtin_s390_vchgs((vector
signed long long)__b
, __a
, &__cc
);
3297 static inline __ATTRS_o_ai
int
3298 vec_all_lt(vector
bool long long __a
, vector
signed long long __b
) {
3300 __builtin_s390_vchgs(__b
, (vector
signed long long)__a
, &__cc
);
3304 static inline __ATTRS_o_ai
int
3305 vec_all_lt(vector
unsigned long long __a
, vector
unsigned long long __b
) {
3307 __builtin_s390_vchlgs(__b
, __a
, &__cc
);
3311 static inline __ATTRS_o_ai
int
3312 vec_all_lt(vector
unsigned long long __a
, vector
bool long long __b
) {
3314 __builtin_s390_vchlgs((vector
unsigned long long)__b
, __a
, &__cc
);
3318 static inline __ATTRS_o_ai
int
3319 vec_all_lt(vector
bool long long __a
, vector
unsigned long long __b
) {
3321 __builtin_s390_vchlgs(__b
, (vector
unsigned long long)__a
, &__cc
);
3325 static inline __ATTRS_o_ai
int
3326 vec_all_lt(vector
bool long long __a
, vector
bool long long __b
) {
3328 __builtin_s390_vchlgs((vector
unsigned long long)__b
,
3329 (vector
unsigned long long)__a
, &__cc
);
3333 static inline __ATTRS_o_ai
int
3334 vec_all_lt(vector
double __a
, vector
double __b
) {
3336 __builtin_s390_vfchdbs(__b
, __a
, &__cc
);
3340 /*-- vec_all_nge ------------------------------------------------------------*/
3342 static inline __ATTRS_ai
int
3343 vec_all_nge(vector
double __a
, vector
double __b
) {
3345 __builtin_s390_vfchedbs(__a
, __b
, &__cc
);
3349 /*-- vec_all_ngt ------------------------------------------------------------*/
3351 static inline __ATTRS_ai
int
3352 vec_all_ngt(vector
double __a
, vector
double __b
) {
3354 __builtin_s390_vfchdbs(__a
, __b
, &__cc
);
3358 /*-- vec_all_nle ------------------------------------------------------------*/
3360 static inline __ATTRS_ai
int
3361 vec_all_nle(vector
double __a
, vector
double __b
) {
3363 __builtin_s390_vfchedbs(__b
, __a
, &__cc
);
3367 /*-- vec_all_nlt ------------------------------------------------------------*/
3369 static inline __ATTRS_ai
int
3370 vec_all_nlt(vector
double __a
, vector
double __b
) {
3372 __builtin_s390_vfchdbs(__b
, __a
, &__cc
);
3376 /*-- vec_all_nan ------------------------------------------------------------*/
3378 static inline __ATTRS_ai
int
3379 vec_all_nan(vector
double __a
) {
3381 __builtin_s390_vftcidb(__a
, 15, &__cc
);
3385 /*-- vec_all_numeric --------------------------------------------------------*/
3387 static inline __ATTRS_ai
int
3388 vec_all_numeric(vector
double __a
) {
3390 __builtin_s390_vftcidb(__a
, 15, &__cc
);
3394 /*-- vec_any_eq -------------------------------------------------------------*/
3396 static inline __ATTRS_o_ai
int
3397 vec_any_eq(vector
signed char __a
, vector
signed char __b
) {
3399 __builtin_s390_vceqbs(__a
, __b
, &__cc
);
3403 static inline __ATTRS_o_ai
int
3404 vec_any_eq(vector
signed char __a
, vector
bool char __b
) {
3406 __builtin_s390_vceqbs(__a
, (vector
signed char)__b
, &__cc
);
3410 static inline __ATTRS_o_ai
int
3411 vec_any_eq(vector
bool char __a
, vector
signed char __b
) {
3413 __builtin_s390_vceqbs((vector
signed char)__a
, __b
, &__cc
);
3417 static inline __ATTRS_o_ai
int
3418 vec_any_eq(vector
unsigned char __a
, vector
unsigned char __b
) {
3420 __builtin_s390_vceqbs((vector
signed char)__a
,
3421 (vector
signed char)__b
, &__cc
);
3425 static inline __ATTRS_o_ai
int
3426 vec_any_eq(vector
unsigned char __a
, vector
bool char __b
) {
3428 __builtin_s390_vceqbs((vector
signed char)__a
,
3429 (vector
signed char)__b
, &__cc
);
3433 static inline __ATTRS_o_ai
int
3434 vec_any_eq(vector
bool char __a
, vector
unsigned char __b
) {
3436 __builtin_s390_vceqbs((vector
signed char)__a
,
3437 (vector
signed char)__b
, &__cc
);
3441 static inline __ATTRS_o_ai
int
3442 vec_any_eq(vector
bool char __a
, vector
bool char __b
) {
3444 __builtin_s390_vceqbs((vector
signed char)__a
,
3445 (vector
signed char)__b
, &__cc
);
3449 static inline __ATTRS_o_ai
int
3450 vec_any_eq(vector
signed short __a
, vector
signed short __b
) {
3452 __builtin_s390_vceqhs(__a
, __b
, &__cc
);
3456 static inline __ATTRS_o_ai
int
3457 vec_any_eq(vector
signed short __a
, vector
bool short __b
) {
3459 __builtin_s390_vceqhs(__a
, (vector
signed short)__b
, &__cc
);
3463 static inline __ATTRS_o_ai
int
3464 vec_any_eq(vector
bool short __a
, vector
signed short __b
) {
3466 __builtin_s390_vceqhs((vector
signed short)__a
, __b
, &__cc
);
3470 static inline __ATTRS_o_ai
int
3471 vec_any_eq(vector
unsigned short __a
, vector
unsigned short __b
) {
3473 __builtin_s390_vceqhs((vector
signed short)__a
,
3474 (vector
signed short)__b
, &__cc
);
3478 static inline __ATTRS_o_ai
int
3479 vec_any_eq(vector
unsigned short __a
, vector
bool short __b
) {
3481 __builtin_s390_vceqhs((vector
signed short)__a
,
3482 (vector
signed short)__b
, &__cc
);
3486 static inline __ATTRS_o_ai
int
3487 vec_any_eq(vector
bool short __a
, vector
unsigned short __b
) {
3489 __builtin_s390_vceqhs((vector
signed short)__a
,
3490 (vector
signed short)__b
, &__cc
);
3494 static inline __ATTRS_o_ai
int
3495 vec_any_eq(vector
bool short __a
, vector
bool short __b
) {
3497 __builtin_s390_vceqhs((vector
signed short)__a
,
3498 (vector
signed short)__b
, &__cc
);
3502 static inline __ATTRS_o_ai
int
3503 vec_any_eq(vector
signed int __a
, vector
signed int __b
) {
3505 __builtin_s390_vceqfs(__a
, __b
, &__cc
);
3509 static inline __ATTRS_o_ai
int
3510 vec_any_eq(vector
signed int __a
, vector
bool int __b
) {
3512 __builtin_s390_vceqfs(__a
, (vector
signed int)__b
, &__cc
);
3516 static inline __ATTRS_o_ai
int
3517 vec_any_eq(vector
bool int __a
, vector
signed int __b
) {
3519 __builtin_s390_vceqfs((vector
signed int)__a
, __b
, &__cc
);
3523 static inline __ATTRS_o_ai
int
3524 vec_any_eq(vector
unsigned int __a
, vector
unsigned int __b
) {
3526 __builtin_s390_vceqfs((vector
signed int)__a
,
3527 (vector
signed int)__b
, &__cc
);
3531 static inline __ATTRS_o_ai
int
3532 vec_any_eq(vector
unsigned int __a
, vector
bool int __b
) {
3534 __builtin_s390_vceqfs((vector
signed int)__a
,
3535 (vector
signed int)__b
, &__cc
);
3539 static inline __ATTRS_o_ai
int
3540 vec_any_eq(vector
bool int __a
, vector
unsigned int __b
) {
3542 __builtin_s390_vceqfs((vector
signed int)__a
,
3543 (vector
signed int)__b
, &__cc
);
3547 static inline __ATTRS_o_ai
int
3548 vec_any_eq(vector
bool int __a
, vector
bool int __b
) {
3550 __builtin_s390_vceqfs((vector
signed int)__a
,
3551 (vector
signed int)__b
, &__cc
);
3555 static inline __ATTRS_o_ai
int
3556 vec_any_eq(vector
signed long long __a
, vector
signed long long __b
) {
3558 __builtin_s390_vceqgs(__a
, __b
, &__cc
);
3562 static inline __ATTRS_o_ai
int
3563 vec_any_eq(vector
signed long long __a
, vector
bool long long __b
) {
3565 __builtin_s390_vceqgs(__a
, (vector
signed long long)__b
, &__cc
);
3569 static inline __ATTRS_o_ai
int
3570 vec_any_eq(vector
bool long long __a
, vector
signed long long __b
) {
3572 __builtin_s390_vceqgs((vector
signed long long)__a
, __b
, &__cc
);
3576 static inline __ATTRS_o_ai
int
3577 vec_any_eq(vector
unsigned long long __a
, vector
unsigned long long __b
) {
3579 __builtin_s390_vceqgs((vector
signed long long)__a
,
3580 (vector
signed long long)__b
, &__cc
);
3584 static inline __ATTRS_o_ai
int
3585 vec_any_eq(vector
unsigned long long __a
, vector
bool long long __b
) {
3587 __builtin_s390_vceqgs((vector
signed long long)__a
,
3588 (vector
signed long long)__b
, &__cc
);
3592 static inline __ATTRS_o_ai
int
3593 vec_any_eq(vector
bool long long __a
, vector
unsigned long long __b
) {
3595 __builtin_s390_vceqgs((vector
signed long long)__a
,
3596 (vector
signed long long)__b
, &__cc
);
3600 static inline __ATTRS_o_ai
int
3601 vec_any_eq(vector
bool long long __a
, vector
bool long long __b
) {
3603 __builtin_s390_vceqgs((vector
signed long long)__a
,
3604 (vector
signed long long)__b
, &__cc
);
3608 static inline __ATTRS_o_ai
int
3609 vec_any_eq(vector
double __a
, vector
double __b
) {
3611 __builtin_s390_vfcedbs(__a
, __b
, &__cc
);
3615 /*-- vec_any_ne -------------------------------------------------------------*/
3617 static inline __ATTRS_o_ai
int
3618 vec_any_ne(vector
signed char __a
, vector
signed char __b
) {
3620 __builtin_s390_vceqbs(__a
, __b
, &__cc
);
3624 static inline __ATTRS_o_ai
int
3625 vec_any_ne(vector
signed char __a
, vector
bool char __b
) {
3627 __builtin_s390_vceqbs(__a
, (vector
signed char)__b
, &__cc
);
3631 static inline __ATTRS_o_ai
int
3632 vec_any_ne(vector
bool char __a
, vector
signed char __b
) {
3634 __builtin_s390_vceqbs((vector
signed char)__a
, __b
, &__cc
);
3638 static inline __ATTRS_o_ai
int
3639 vec_any_ne(vector
unsigned char __a
, vector
unsigned char __b
) {
3641 __builtin_s390_vceqbs((vector
signed char)__a
,
3642 (vector
signed char)__b
, &__cc
);
3646 static inline __ATTRS_o_ai
int
3647 vec_any_ne(vector
unsigned char __a
, vector
bool char __b
) {
3649 __builtin_s390_vceqbs((vector
signed char)__a
,
3650 (vector
signed char)__b
, &__cc
);
3654 static inline __ATTRS_o_ai
int
3655 vec_any_ne(vector
bool char __a
, vector
unsigned char __b
) {
3657 __builtin_s390_vceqbs((vector
signed char)__a
,
3658 (vector
signed char)__b
, &__cc
);
3662 static inline __ATTRS_o_ai
int
3663 vec_any_ne(vector
bool char __a
, vector
bool char __b
) {
3665 __builtin_s390_vceqbs((vector
signed char)__a
,
3666 (vector
signed char)__b
, &__cc
);
3670 static inline __ATTRS_o_ai
int
3671 vec_any_ne(vector
signed short __a
, vector
signed short __b
) {
3673 __builtin_s390_vceqhs(__a
, __b
, &__cc
);
3677 static inline __ATTRS_o_ai
int
3678 vec_any_ne(vector
signed short __a
, vector
bool short __b
) {
3680 __builtin_s390_vceqhs(__a
, (vector
signed short)__b
, &__cc
);
3684 static inline __ATTRS_o_ai
int
3685 vec_any_ne(vector
bool short __a
, vector
signed short __b
) {
3687 __builtin_s390_vceqhs((vector
signed short)__a
, __b
, &__cc
);
3691 static inline __ATTRS_o_ai
int
3692 vec_any_ne(vector
unsigned short __a
, vector
unsigned short __b
) {
3694 __builtin_s390_vceqhs((vector
signed short)__a
,
3695 (vector
signed short)__b
, &__cc
);
3699 static inline __ATTRS_o_ai
int
3700 vec_any_ne(vector
unsigned short __a
, vector
bool short __b
) {
3702 __builtin_s390_vceqhs((vector
signed short)__a
,
3703 (vector
signed short)__b
, &__cc
);
3707 static inline __ATTRS_o_ai
int
3708 vec_any_ne(vector
bool short __a
, vector
unsigned short __b
) {
3710 __builtin_s390_vceqhs((vector
signed short)__a
,
3711 (vector
signed short)__b
, &__cc
);
3715 static inline __ATTRS_o_ai
int
3716 vec_any_ne(vector
bool short __a
, vector
bool short __b
) {
3718 __builtin_s390_vceqhs((vector
signed short)__a
,
3719 (vector
signed short)__b
, &__cc
);
3723 static inline __ATTRS_o_ai
int
3724 vec_any_ne(vector
signed int __a
, vector
signed int __b
) {
3726 __builtin_s390_vceqfs(__a
, __b
, &__cc
);
3730 static inline __ATTRS_o_ai
int
3731 vec_any_ne(vector
signed int __a
, vector
bool int __b
) {
3733 __builtin_s390_vceqfs(__a
, (vector
signed int)__b
, &__cc
);
3737 static inline __ATTRS_o_ai
int
3738 vec_any_ne(vector
bool int __a
, vector
signed int __b
) {
3740 __builtin_s390_vceqfs((vector
signed int)__a
, __b
, &__cc
);
3744 static inline __ATTRS_o_ai
int
3745 vec_any_ne(vector
unsigned int __a
, vector
unsigned int __b
) {
3747 __builtin_s390_vceqfs((vector
signed int)__a
,
3748 (vector
signed int)__b
, &__cc
);
3752 static inline __ATTRS_o_ai
int
3753 vec_any_ne(vector
unsigned int __a
, vector
bool int __b
) {
3755 __builtin_s390_vceqfs((vector
signed int)__a
,
3756 (vector
signed int)__b
, &__cc
);
3760 static inline __ATTRS_o_ai
int
3761 vec_any_ne(vector
bool int __a
, vector
unsigned int __b
) {
3763 __builtin_s390_vceqfs((vector
signed int)__a
,
3764 (vector
signed int)__b
, &__cc
);
3768 static inline __ATTRS_o_ai
int
3769 vec_any_ne(vector
bool int __a
, vector
bool int __b
) {
3771 __builtin_s390_vceqfs((vector
signed int)__a
,
3772 (vector
signed int)__b
, &__cc
);
3776 static inline __ATTRS_o_ai
int
3777 vec_any_ne(vector
signed long long __a
, vector
signed long long __b
) {
3779 __builtin_s390_vceqgs(__a
, __b
, &__cc
);
3783 static inline __ATTRS_o_ai
int
3784 vec_any_ne(vector
signed long long __a
, vector
bool long long __b
) {
3786 __builtin_s390_vceqgs(__a
, (vector
signed long long)__b
, &__cc
);
3790 static inline __ATTRS_o_ai
int
3791 vec_any_ne(vector
bool long long __a
, vector
signed long long __b
) {
3793 __builtin_s390_vceqgs((vector
signed long long)__a
, __b
, &__cc
);
3797 static inline __ATTRS_o_ai
int
3798 vec_any_ne(vector
unsigned long long __a
, vector
unsigned long long __b
) {
3800 __builtin_s390_vceqgs((vector
signed long long)__a
,
3801 (vector
signed long long)__b
, &__cc
);
3805 static inline __ATTRS_o_ai
int
3806 vec_any_ne(vector
unsigned long long __a
, vector
bool long long __b
) {
3808 __builtin_s390_vceqgs((vector
signed long long)__a
,
3809 (vector
signed long long)__b
, &__cc
);
3813 static inline __ATTRS_o_ai
int
3814 vec_any_ne(vector
bool long long __a
, vector
unsigned long long __b
) {
3816 __builtin_s390_vceqgs((vector
signed long long)__a
,
3817 (vector
signed long long)__b
, &__cc
);
3821 static inline __ATTRS_o_ai
int
3822 vec_any_ne(vector
bool long long __a
, vector
bool long long __b
) {
3824 __builtin_s390_vceqgs((vector
signed long long)__a
,
3825 (vector
signed long long)__b
, &__cc
);
3829 static inline __ATTRS_o_ai
int
3830 vec_any_ne(vector
double __a
, vector
double __b
) {
3832 __builtin_s390_vfcedbs(__a
, __b
, &__cc
);
3836 /*-- vec_any_ge -------------------------------------------------------------*/
3838 static inline __ATTRS_o_ai
int
3839 vec_any_ge(vector
signed char __a
, vector
signed char __b
) {
3841 __builtin_s390_vchbs(__b
, __a
, &__cc
);
3845 static inline __ATTRS_o_ai
int
3846 vec_any_ge(vector
signed char __a
, vector
bool char __b
) {
3848 __builtin_s390_vchbs((vector
signed char)__b
, __a
, &__cc
);
3852 static inline __ATTRS_o_ai
int
3853 vec_any_ge(vector
bool char __a
, vector
signed char __b
) {
3855 __builtin_s390_vchbs(__b
, (vector
signed char)__a
, &__cc
);
3859 static inline __ATTRS_o_ai
int
3860 vec_any_ge(vector
unsigned char __a
, vector
unsigned char __b
) {
3862 __builtin_s390_vchlbs(__b
, __a
, &__cc
);
3866 static inline __ATTRS_o_ai
int
3867 vec_any_ge(vector
unsigned char __a
, vector
bool char __b
) {
3869 __builtin_s390_vchlbs((vector
unsigned char)__b
, __a
, &__cc
);
3873 static inline __ATTRS_o_ai
int
3874 vec_any_ge(vector
bool char __a
, vector
unsigned char __b
) {
3876 __builtin_s390_vchlbs(__b
, (vector
unsigned char)__a
, &__cc
);
3880 static inline __ATTRS_o_ai
int
3881 vec_any_ge(vector
bool char __a
, vector
bool char __b
) {
3883 __builtin_s390_vchlbs((vector
unsigned char)__b
,
3884 (vector
unsigned char)__a
, &__cc
);
3888 static inline __ATTRS_o_ai
int
3889 vec_any_ge(vector
signed short __a
, vector
signed short __b
) {
3891 __builtin_s390_vchhs(__b
, __a
, &__cc
);
3895 static inline __ATTRS_o_ai
int
3896 vec_any_ge(vector
signed short __a
, vector
bool short __b
) {
3898 __builtin_s390_vchhs((vector
signed short)__b
, __a
, &__cc
);
3902 static inline __ATTRS_o_ai
int
3903 vec_any_ge(vector
bool short __a
, vector
signed short __b
) {
3905 __builtin_s390_vchhs(__b
, (vector
signed short)__a
, &__cc
);
3909 static inline __ATTRS_o_ai
int
3910 vec_any_ge(vector
unsigned short __a
, vector
unsigned short __b
) {
3912 __builtin_s390_vchlhs(__b
, __a
, &__cc
);
3916 static inline __ATTRS_o_ai
int
3917 vec_any_ge(vector
unsigned short __a
, vector
bool short __b
) {
3919 __builtin_s390_vchlhs((vector
unsigned short)__b
, __a
, &__cc
);
3923 static inline __ATTRS_o_ai
int
3924 vec_any_ge(vector
bool short __a
, vector
unsigned short __b
) {
3926 __builtin_s390_vchlhs(__b
, (vector
unsigned short)__a
, &__cc
);
3930 static inline __ATTRS_o_ai
int
3931 vec_any_ge(vector
bool short __a
, vector
bool short __b
) {
3933 __builtin_s390_vchlhs((vector
unsigned short)__b
,
3934 (vector
unsigned short)__a
, &__cc
);
3938 static inline __ATTRS_o_ai
int
3939 vec_any_ge(vector
signed int __a
, vector
signed int __b
) {
3941 __builtin_s390_vchfs(__b
, __a
, &__cc
);
3945 static inline __ATTRS_o_ai
int
3946 vec_any_ge(vector
signed int __a
, vector
bool int __b
) {
3948 __builtin_s390_vchfs((vector
signed int)__b
, __a
, &__cc
);
3952 static inline __ATTRS_o_ai
int
3953 vec_any_ge(vector
bool int __a
, vector
signed int __b
) {
3955 __builtin_s390_vchfs(__b
, (vector
signed int)__a
, &__cc
);
3959 static inline __ATTRS_o_ai
int
3960 vec_any_ge(vector
unsigned int __a
, vector
unsigned int __b
) {
3962 __builtin_s390_vchlfs(__b
, __a
, &__cc
);
3966 static inline __ATTRS_o_ai
int
3967 vec_any_ge(vector
unsigned int __a
, vector
bool int __b
) {
3969 __builtin_s390_vchlfs((vector
unsigned int)__b
, __a
, &__cc
);
3973 static inline __ATTRS_o_ai
int
3974 vec_any_ge(vector
bool int __a
, vector
unsigned int __b
) {
3976 __builtin_s390_vchlfs(__b
, (vector
unsigned int)__a
, &__cc
);
3980 static inline __ATTRS_o_ai
int
3981 vec_any_ge(vector
bool int __a
, vector
bool int __b
) {
3983 __builtin_s390_vchlfs((vector
unsigned int)__b
,
3984 (vector
unsigned int)__a
, &__cc
);
3988 static inline __ATTRS_o_ai
int
3989 vec_any_ge(vector
signed long long __a
, vector
signed long long __b
) {
3991 __builtin_s390_vchgs(__b
, __a
, &__cc
);
3995 static inline __ATTRS_o_ai
int
3996 vec_any_ge(vector
signed long long __a
, vector
bool long long __b
) {
3998 __builtin_s390_vchgs((vector
signed long long)__b
, __a
, &__cc
);
4002 static inline __ATTRS_o_ai
int
4003 vec_any_ge(vector
bool long long __a
, vector
signed long long __b
) {
4005 __builtin_s390_vchgs(__b
, (vector
signed long long)__a
, &__cc
);
4009 static inline __ATTRS_o_ai
int
4010 vec_any_ge(vector
unsigned long long __a
, vector
unsigned long long __b
) {
4012 __builtin_s390_vchlgs(__b
, __a
, &__cc
);
4016 static inline __ATTRS_o_ai
int
4017 vec_any_ge(vector
unsigned long long __a
, vector
bool long long __b
) {
4019 __builtin_s390_vchlgs((vector
unsigned long long)__b
, __a
, &__cc
);
4023 static inline __ATTRS_o_ai
int
4024 vec_any_ge(vector
bool long long __a
, vector
unsigned long long __b
) {
4026 __builtin_s390_vchlgs(__b
, (vector
unsigned long long)__a
, &__cc
);
4030 static inline __ATTRS_o_ai
int
4031 vec_any_ge(vector
bool long long __a
, vector
bool long long __b
) {
4033 __builtin_s390_vchlgs((vector
unsigned long long)__b
,
4034 (vector
unsigned long long)__a
, &__cc
);
4038 static inline __ATTRS_o_ai
int
4039 vec_any_ge(vector
double __a
, vector
double __b
) {
4041 __builtin_s390_vfchedbs(__a
, __b
, &__cc
);
4045 /*-- vec_any_gt -------------------------------------------------------------*/
4047 static inline __ATTRS_o_ai
int
4048 vec_any_gt(vector
signed char __a
, vector
signed char __b
) {
4050 __builtin_s390_vchbs(__a
, __b
, &__cc
);
4054 static inline __ATTRS_o_ai
int
4055 vec_any_gt(vector
signed char __a
, vector
bool char __b
) {
4057 __builtin_s390_vchbs(__a
, (vector
signed char)__b
, &__cc
);
4061 static inline __ATTRS_o_ai
int
4062 vec_any_gt(vector
bool char __a
, vector
signed char __b
) {
4064 __builtin_s390_vchbs((vector
signed char)__a
, __b
, &__cc
);
4068 static inline __ATTRS_o_ai
int
4069 vec_any_gt(vector
unsigned char __a
, vector
unsigned char __b
) {
4071 __builtin_s390_vchlbs(__a
, __b
, &__cc
);
4075 static inline __ATTRS_o_ai
int
4076 vec_any_gt(vector
unsigned char __a
, vector
bool char __b
) {
4078 __builtin_s390_vchlbs(__a
, (vector
unsigned char)__b
, &__cc
);
4082 static inline __ATTRS_o_ai
int
4083 vec_any_gt(vector
bool char __a
, vector
unsigned char __b
) {
4085 __builtin_s390_vchlbs((vector
unsigned char)__a
, __b
, &__cc
);
4089 static inline __ATTRS_o_ai
int
4090 vec_any_gt(vector
bool char __a
, vector
bool char __b
) {
4092 __builtin_s390_vchlbs((vector
unsigned char)__a
,
4093 (vector
unsigned char)__b
, &__cc
);
4097 static inline __ATTRS_o_ai
int
4098 vec_any_gt(vector
signed short __a
, vector
signed short __b
) {
4100 __builtin_s390_vchhs(__a
, __b
, &__cc
);
4104 static inline __ATTRS_o_ai
int
4105 vec_any_gt(vector
signed short __a
, vector
bool short __b
) {
4107 __builtin_s390_vchhs(__a
, (vector
signed short)__b
, &__cc
);
4111 static inline __ATTRS_o_ai
int
4112 vec_any_gt(vector
bool short __a
, vector
signed short __b
) {
4114 __builtin_s390_vchhs((vector
signed short)__a
, __b
, &__cc
);
4118 static inline __ATTRS_o_ai
int
4119 vec_any_gt(vector
unsigned short __a
, vector
unsigned short __b
) {
4121 __builtin_s390_vchlhs(__a
, __b
, &__cc
);
4125 static inline __ATTRS_o_ai
int
4126 vec_any_gt(vector
unsigned short __a
, vector
bool short __b
) {
4128 __builtin_s390_vchlhs(__a
, (vector
unsigned short)__b
, &__cc
);
4132 static inline __ATTRS_o_ai
int
4133 vec_any_gt(vector
bool short __a
, vector
unsigned short __b
) {
4135 __builtin_s390_vchlhs((vector
unsigned short)__a
, __b
, &__cc
);
4139 static inline __ATTRS_o_ai
int
4140 vec_any_gt(vector
bool short __a
, vector
bool short __b
) {
4142 __builtin_s390_vchlhs((vector
unsigned short)__a
,
4143 (vector
unsigned short)__b
, &__cc
);
4147 static inline __ATTRS_o_ai
int
4148 vec_any_gt(vector
signed int __a
, vector
signed int __b
) {
4150 __builtin_s390_vchfs(__a
, __b
, &__cc
);
4154 static inline __ATTRS_o_ai
int
4155 vec_any_gt(vector
signed int __a
, vector
bool int __b
) {
4157 __builtin_s390_vchfs(__a
, (vector
signed int)__b
, &__cc
);
4161 static inline __ATTRS_o_ai
int
4162 vec_any_gt(vector
bool int __a
, vector
signed int __b
) {
4164 __builtin_s390_vchfs((vector
signed int)__a
, __b
, &__cc
);
4168 static inline __ATTRS_o_ai
int
4169 vec_any_gt(vector
unsigned int __a
, vector
unsigned int __b
) {
4171 __builtin_s390_vchlfs(__a
, __b
, &__cc
);
4175 static inline __ATTRS_o_ai
int
4176 vec_any_gt(vector
unsigned int __a
, vector
bool int __b
) {
4178 __builtin_s390_vchlfs(__a
, (vector
unsigned int)__b
, &__cc
);
4182 static inline __ATTRS_o_ai
int
4183 vec_any_gt(vector
bool int __a
, vector
unsigned int __b
) {
4185 __builtin_s390_vchlfs((vector
unsigned int)__a
, __b
, &__cc
);
4189 static inline __ATTRS_o_ai
int
4190 vec_any_gt(vector
bool int __a
, vector
bool int __b
) {
4192 __builtin_s390_vchlfs((vector
unsigned int)__a
,
4193 (vector
unsigned int)__b
, &__cc
);
4197 static inline __ATTRS_o_ai
int
4198 vec_any_gt(vector
signed long long __a
, vector
signed long long __b
) {
4200 __builtin_s390_vchgs(__a
, __b
, &__cc
);
4204 static inline __ATTRS_o_ai
int
4205 vec_any_gt(vector
signed long long __a
, vector
bool long long __b
) {
4207 __builtin_s390_vchgs(__a
, (vector
signed long long)__b
, &__cc
);
4211 static inline __ATTRS_o_ai
int
4212 vec_any_gt(vector
bool long long __a
, vector
signed long long __b
) {
4214 __builtin_s390_vchgs((vector
signed long long)__a
, __b
, &__cc
);
4218 static inline __ATTRS_o_ai
int
4219 vec_any_gt(vector
unsigned long long __a
, vector
unsigned long long __b
) {
4221 __builtin_s390_vchlgs(__a
, __b
, &__cc
);
4225 static inline __ATTRS_o_ai
int
4226 vec_any_gt(vector
unsigned long long __a
, vector
bool long long __b
) {
4228 __builtin_s390_vchlgs(__a
, (vector
unsigned long long)__b
, &__cc
);
4232 static inline __ATTRS_o_ai
int
4233 vec_any_gt(vector
bool long long __a
, vector
unsigned long long __b
) {
4235 __builtin_s390_vchlgs((vector
unsigned long long)__a
, __b
, &__cc
);
4239 static inline __ATTRS_o_ai
int
4240 vec_any_gt(vector
bool long long __a
, vector
bool long long __b
) {
4242 __builtin_s390_vchlgs((vector
unsigned long long)__a
,
4243 (vector
unsigned long long)__b
, &__cc
);
4247 static inline __ATTRS_o_ai
int
4248 vec_any_gt(vector
double __a
, vector
double __b
) {
4250 __builtin_s390_vfchdbs(__a
, __b
, &__cc
);
4254 /*-- vec_any_le -------------------------------------------------------------*/
4256 static inline __ATTRS_o_ai
int
4257 vec_any_le(vector
signed char __a
, vector
signed char __b
) {
4259 __builtin_s390_vchbs(__a
, __b
, &__cc
);
4263 static inline __ATTRS_o_ai
int
4264 vec_any_le(vector
signed char __a
, vector
bool char __b
) {
4266 __builtin_s390_vchbs(__a
, (vector
signed char)__b
, &__cc
);
4270 static inline __ATTRS_o_ai
int
4271 vec_any_le(vector
bool char __a
, vector
signed char __b
) {
4273 __builtin_s390_vchbs((vector
signed char)__a
, __b
, &__cc
);
4277 static inline __ATTRS_o_ai
int
4278 vec_any_le(vector
unsigned char __a
, vector
unsigned char __b
) {
4280 __builtin_s390_vchlbs(__a
, __b
, &__cc
);
4284 static inline __ATTRS_o_ai
int
4285 vec_any_le(vector
unsigned char __a
, vector
bool char __b
) {
4287 __builtin_s390_vchlbs(__a
, (vector
unsigned char)__b
, &__cc
);
4291 static inline __ATTRS_o_ai
int
4292 vec_any_le(vector
bool char __a
, vector
unsigned char __b
) {
4294 __builtin_s390_vchlbs((vector
unsigned char)__a
, __b
, &__cc
);
4298 static inline __ATTRS_o_ai
int
4299 vec_any_le(vector
bool char __a
, vector
bool char __b
) {
4301 __builtin_s390_vchlbs((vector
unsigned char)__a
,
4302 (vector
unsigned char)__b
, &__cc
);
4306 static inline __ATTRS_o_ai
int
4307 vec_any_le(vector
signed short __a
, vector
signed short __b
) {
4309 __builtin_s390_vchhs(__a
, __b
, &__cc
);
4313 static inline __ATTRS_o_ai
int
4314 vec_any_le(vector
signed short __a
, vector
bool short __b
) {
4316 __builtin_s390_vchhs(__a
, (vector
signed short)__b
, &__cc
);
4320 static inline __ATTRS_o_ai
int
4321 vec_any_le(vector
bool short __a
, vector
signed short __b
) {
4323 __builtin_s390_vchhs((vector
signed short)__a
, __b
, &__cc
);
4327 static inline __ATTRS_o_ai
int
4328 vec_any_le(vector
unsigned short __a
, vector
unsigned short __b
) {
4330 __builtin_s390_vchlhs(__a
, __b
, &__cc
);
4334 static inline __ATTRS_o_ai
int
4335 vec_any_le(vector
unsigned short __a
, vector
bool short __b
) {
4337 __builtin_s390_vchlhs(__a
, (vector
unsigned short)__b
, &__cc
);
4341 static inline __ATTRS_o_ai
int
4342 vec_any_le(vector
bool short __a
, vector
unsigned short __b
) {
4344 __builtin_s390_vchlhs((vector
unsigned short)__a
, __b
, &__cc
);
4348 static inline __ATTRS_o_ai
int
4349 vec_any_le(vector
bool short __a
, vector
bool short __b
) {
4351 __builtin_s390_vchlhs((vector
unsigned short)__a
,
4352 (vector
unsigned short)__b
, &__cc
);
4356 static inline __ATTRS_o_ai
int
4357 vec_any_le(vector
signed int __a
, vector
signed int __b
) {
4359 __builtin_s390_vchfs(__a
, __b
, &__cc
);
4363 static inline __ATTRS_o_ai
int
4364 vec_any_le(vector
signed int __a
, vector
bool int __b
) {
4366 __builtin_s390_vchfs(__a
, (vector
signed int)__b
, &__cc
);
4370 static inline __ATTRS_o_ai
int
4371 vec_any_le(vector
bool int __a
, vector
signed int __b
) {
4373 __builtin_s390_vchfs((vector
signed int)__a
, __b
, &__cc
);
4377 static inline __ATTRS_o_ai
int
4378 vec_any_le(vector
unsigned int __a
, vector
unsigned int __b
) {
4380 __builtin_s390_vchlfs(__a
, __b
, &__cc
);
4384 static inline __ATTRS_o_ai
int
4385 vec_any_le(vector
unsigned int __a
, vector
bool int __b
) {
4387 __builtin_s390_vchlfs(__a
, (vector
unsigned int)__b
, &__cc
);
4391 static inline __ATTRS_o_ai
int
4392 vec_any_le(vector
bool int __a
, vector
unsigned int __b
) {
4394 __builtin_s390_vchlfs((vector
unsigned int)__a
, __b
, &__cc
);
4398 static inline __ATTRS_o_ai
int
4399 vec_any_le(vector
bool int __a
, vector
bool int __b
) {
4401 __builtin_s390_vchlfs((vector
unsigned int)__a
,
4402 (vector
unsigned int)__b
, &__cc
);
4406 static inline __ATTRS_o_ai
int
4407 vec_any_le(vector
signed long long __a
, vector
signed long long __b
) {
4409 __builtin_s390_vchgs(__a
, __b
, &__cc
);
4413 static inline __ATTRS_o_ai
int
4414 vec_any_le(vector
signed long long __a
, vector
bool long long __b
) {
4416 __builtin_s390_vchgs(__a
, (vector
signed long long)__b
, &__cc
);
4420 static inline __ATTRS_o_ai
int
4421 vec_any_le(vector
bool long long __a
, vector
signed long long __b
) {
4423 __builtin_s390_vchgs((vector
signed long long)__a
, __b
, &__cc
);
4427 static inline __ATTRS_o_ai
int
4428 vec_any_le(vector
unsigned long long __a
, vector
unsigned long long __b
) {
4430 __builtin_s390_vchlgs(__a
, __b
, &__cc
);
4434 static inline __ATTRS_o_ai
int
4435 vec_any_le(vector
unsigned long long __a
, vector
bool long long __b
) {
4437 __builtin_s390_vchlgs(__a
, (vector
unsigned long long)__b
, &__cc
);
4441 static inline __ATTRS_o_ai
int
4442 vec_any_le(vector
bool long long __a
, vector
unsigned long long __b
) {
4444 __builtin_s390_vchlgs((vector
unsigned long long)__a
, __b
, &__cc
);
4448 static inline __ATTRS_o_ai
int
4449 vec_any_le(vector
bool long long __a
, vector
bool long long __b
) {
4451 __builtin_s390_vchlgs((vector
unsigned long long)__a
,
4452 (vector
unsigned long long)__b
, &__cc
);
4456 static inline __ATTRS_o_ai
int
4457 vec_any_le(vector
double __a
, vector
double __b
) {
4459 __builtin_s390_vfchedbs(__b
, __a
, &__cc
);
4463 /*-- vec_any_lt -------------------------------------------------------------*/
4465 static inline __ATTRS_o_ai
int
4466 vec_any_lt(vector
signed char __a
, vector
signed char __b
) {
4468 __builtin_s390_vchbs(__b
, __a
, &__cc
);
4472 static inline __ATTRS_o_ai
int
4473 vec_any_lt(vector
signed char __a
, vector
bool char __b
) {
4475 __builtin_s390_vchbs((vector
signed char)__b
, __a
, &__cc
);
4479 static inline __ATTRS_o_ai
int
4480 vec_any_lt(vector
bool char __a
, vector
signed char __b
) {
4482 __builtin_s390_vchbs(__b
, (vector
signed char)__a
, &__cc
);
4486 static inline __ATTRS_o_ai
int
4487 vec_any_lt(vector
unsigned char __a
, vector
unsigned char __b
) {
4489 __builtin_s390_vchlbs(__b
, __a
, &__cc
);
4493 static inline __ATTRS_o_ai
int
4494 vec_any_lt(vector
unsigned char __a
, vector
bool char __b
) {
4496 __builtin_s390_vchlbs((vector
unsigned char)__b
, __a
, &__cc
);
4500 static inline __ATTRS_o_ai
int
4501 vec_any_lt(vector
bool char __a
, vector
unsigned char __b
) {
4503 __builtin_s390_vchlbs(__b
, (vector
unsigned char)__a
, &__cc
);
4507 static inline __ATTRS_o_ai
int
4508 vec_any_lt(vector
bool char __a
, vector
bool char __b
) {
4510 __builtin_s390_vchlbs((vector
unsigned char)__b
,
4511 (vector
unsigned char)__a
, &__cc
);
4515 static inline __ATTRS_o_ai
int
4516 vec_any_lt(vector
signed short __a
, vector
signed short __b
) {
4518 __builtin_s390_vchhs(__b
, __a
, &__cc
);
4522 static inline __ATTRS_o_ai
int
4523 vec_any_lt(vector
signed short __a
, vector
bool short __b
) {
4525 __builtin_s390_vchhs((vector
signed short)__b
, __a
, &__cc
);
4529 static inline __ATTRS_o_ai
int
4530 vec_any_lt(vector
bool short __a
, vector
signed short __b
) {
4532 __builtin_s390_vchhs(__b
, (vector
signed short)__a
, &__cc
);
4536 static inline __ATTRS_o_ai
int
4537 vec_any_lt(vector
unsigned short __a
, vector
unsigned short __b
) {
4539 __builtin_s390_vchlhs(__b
, __a
, &__cc
);
4543 static inline __ATTRS_o_ai
int
4544 vec_any_lt(vector
unsigned short __a
, vector
bool short __b
) {
4546 __builtin_s390_vchlhs((vector
unsigned short)__b
, __a
, &__cc
);
4550 static inline __ATTRS_o_ai
int
4551 vec_any_lt(vector
bool short __a
, vector
unsigned short __b
) {
4553 __builtin_s390_vchlhs(__b
, (vector
unsigned short)__a
, &__cc
);
4557 static inline __ATTRS_o_ai
int
4558 vec_any_lt(vector
bool short __a
, vector
bool short __b
) {
4560 __builtin_s390_vchlhs((vector
unsigned short)__b
,
4561 (vector
unsigned short)__a
, &__cc
);
4565 static inline __ATTRS_o_ai
int
4566 vec_any_lt(vector
signed int __a
, vector
signed int __b
) {
4568 __builtin_s390_vchfs(__b
, __a
, &__cc
);
4572 static inline __ATTRS_o_ai
int
4573 vec_any_lt(vector
signed int __a
, vector
bool int __b
) {
4575 __builtin_s390_vchfs((vector
signed int)__b
, __a
, &__cc
);
4579 static inline __ATTRS_o_ai
int
4580 vec_any_lt(vector
bool int __a
, vector
signed int __b
) {
4582 __builtin_s390_vchfs(__b
, (vector
signed int)__a
, &__cc
);
4586 static inline __ATTRS_o_ai
int
4587 vec_any_lt(vector
unsigned int __a
, vector
unsigned int __b
) {
4589 __builtin_s390_vchlfs(__b
, __a
, &__cc
);
4593 static inline __ATTRS_o_ai
int
4594 vec_any_lt(vector
unsigned int __a
, vector
bool int __b
) {
4596 __builtin_s390_vchlfs((vector
unsigned int)__b
, __a
, &__cc
);
4600 static inline __ATTRS_o_ai
int
4601 vec_any_lt(vector
bool int __a
, vector
unsigned int __b
) {
4603 __builtin_s390_vchlfs(__b
, (vector
unsigned int)__a
, &__cc
);
4607 static inline __ATTRS_o_ai
int
4608 vec_any_lt(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_lt(vector
signed long long __a
, vector
signed long long __b
) {
4618 __builtin_s390_vchgs(__b
, __a
, &__cc
);
4622 static inline __ATTRS_o_ai
int
4623 vec_any_lt(vector
signed long long __a
, vector
bool long long __b
) {
4625 __builtin_s390_vchgs((vector
signed long long)__b
, __a
, &__cc
);
4629 static inline __ATTRS_o_ai
int
4630 vec_any_lt(vector
bool long long __a
, vector
signed long long __b
) {
4632 __builtin_s390_vchgs(__b
, (vector
signed long long)__a
, &__cc
);
4636 static inline __ATTRS_o_ai
int
4637 vec_any_lt(vector
unsigned long long __a
, vector
unsigned long long __b
) {
4639 __builtin_s390_vchlgs(__b
, __a
, &__cc
);
4643 static inline __ATTRS_o_ai
int
4644 vec_any_lt(vector
unsigned long long __a
, vector
bool long long __b
) {
4646 __builtin_s390_vchlgs((vector
unsigned long long)__b
, __a
, &__cc
);
4650 static inline __ATTRS_o_ai
int
4651 vec_any_lt(vector
bool long long __a
, vector
unsigned long long __b
) {
4653 __builtin_s390_vchlgs(__b
, (vector
unsigned long long)__a
, &__cc
);
4657 static inline __ATTRS_o_ai
int
4658 vec_any_lt(vector
bool long long __a
, vector
bool long long __b
) {
4660 __builtin_s390_vchlgs((vector
unsigned long long)__b
,
4661 (vector
unsigned long long)__a
, &__cc
);
4665 static inline __ATTRS_o_ai
int
4666 vec_any_lt(vector
double __a
, vector
double __b
) {
4668 __builtin_s390_vfchdbs(__b
, __a
, &__cc
);
4672 /*-- vec_any_nge ------------------------------------------------------------*/
4674 static inline __ATTRS_ai
int
4675 vec_any_nge(vector
double __a
, vector
double __b
) {
4677 __builtin_s390_vfchedbs(__a
, __b
, &__cc
);
4681 /*-- vec_any_ngt ------------------------------------------------------------*/
4683 static inline __ATTRS_ai
int
4684 vec_any_ngt(vector
double __a
, vector
double __b
) {
4686 __builtin_s390_vfchdbs(__a
, __b
, &__cc
);
4690 /*-- vec_any_nle ------------------------------------------------------------*/
4692 static inline __ATTRS_ai
int
4693 vec_any_nle(vector
double __a
, vector
double __b
) {
4695 __builtin_s390_vfchedbs(__b
, __a
, &__cc
);
4699 /*-- vec_any_nlt ------------------------------------------------------------*/
4701 static inline __ATTRS_ai
int
4702 vec_any_nlt(vector
double __a
, vector
double __b
) {
4704 __builtin_s390_vfchdbs(__b
, __a
, &__cc
);
4708 /*-- vec_any_nan ------------------------------------------------------------*/
4710 static inline __ATTRS_ai
int
4711 vec_any_nan(vector
double __a
) {
4713 __builtin_s390_vftcidb(__a
, 15, &__cc
);
4717 /*-- vec_any_numeric --------------------------------------------------------*/
4719 static inline __ATTRS_ai
int
4720 vec_any_numeric(vector
double __a
) {
4722 __builtin_s390_vftcidb(__a
, 15, &__cc
);
4726 /*-- vec_andc ---------------------------------------------------------------*/
4728 static inline __ATTRS_o_ai vector
bool char
4729 vec_andc(vector
bool char __a
, vector
bool char __b
) {
4733 static inline __ATTRS_o_ai vector
signed char
4734 vec_andc(vector
signed char __a
, vector
signed char __b
) {
4738 static inline __ATTRS_o_ai vector
signed char
4739 vec_andc(vector
bool char __a
, vector
signed char __b
) {
4743 static inline __ATTRS_o_ai vector
signed char
4744 vec_andc(vector
signed char __a
, vector
bool char __b
) {
4748 static inline __ATTRS_o_ai vector
unsigned char
4749 vec_andc(vector
unsigned char __a
, vector
unsigned char __b
) {
4753 static inline __ATTRS_o_ai vector
unsigned char
4754 vec_andc(vector
bool char __a
, vector
unsigned char __b
) {
4758 static inline __ATTRS_o_ai vector
unsigned char
4759 vec_andc(vector
unsigned char __a
, vector
bool char __b
) {
4763 static inline __ATTRS_o_ai vector
bool short
4764 vec_andc(vector
bool short __a
, vector
bool short __b
) {
4768 static inline __ATTRS_o_ai vector
signed short
4769 vec_andc(vector
signed short __a
, vector
signed short __b
) {
4773 static inline __ATTRS_o_ai vector
signed short
4774 vec_andc(vector
bool short __a
, vector
signed short __b
) {
4778 static inline __ATTRS_o_ai vector
signed short
4779 vec_andc(vector
signed short __a
, vector
bool short __b
) {
4783 static inline __ATTRS_o_ai vector
unsigned short
4784 vec_andc(vector
unsigned short __a
, vector
unsigned short __b
) {
4788 static inline __ATTRS_o_ai vector
unsigned short
4789 vec_andc(vector
bool short __a
, vector
unsigned short __b
) {
4793 static inline __ATTRS_o_ai vector
unsigned short
4794 vec_andc(vector
unsigned short __a
, vector
bool short __b
) {
4798 static inline __ATTRS_o_ai vector
bool int
4799 vec_andc(vector
bool int __a
, vector
bool int __b
) {
4803 static inline __ATTRS_o_ai vector
signed int
4804 vec_andc(vector
signed int __a
, vector
signed int __b
) {
4808 static inline __ATTRS_o_ai vector
signed int
4809 vec_andc(vector
bool int __a
, vector
signed int __b
) {
4813 static inline __ATTRS_o_ai vector
signed int
4814 vec_andc(vector
signed int __a
, vector
bool int __b
) {
4818 static inline __ATTRS_o_ai vector
unsigned int
4819 vec_andc(vector
unsigned int __a
, vector
unsigned int __b
) {
4823 static inline __ATTRS_o_ai vector
unsigned int
4824 vec_andc(vector
bool int __a
, vector
unsigned int __b
) {
4828 static inline __ATTRS_o_ai vector
unsigned int
4829 vec_andc(vector
unsigned int __a
, vector
bool int __b
) {
4833 static inline __ATTRS_o_ai vector
bool long long
4834 vec_andc(vector
bool long long __a
, vector
bool long long __b
) {
4838 static inline __ATTRS_o_ai vector
signed long long
4839 vec_andc(vector
signed long long __a
, vector
signed long long __b
) {
4843 static inline __ATTRS_o_ai vector
signed long long
4844 vec_andc(vector
bool long long __a
, vector
signed long long __b
) {
4848 static inline __ATTRS_o_ai vector
signed long long
4849 vec_andc(vector
signed long long __a
, vector
bool long long __b
) {
4853 static inline __ATTRS_o_ai vector
unsigned long long
4854 vec_andc(vector
unsigned long long __a
, vector
unsigned long long __b
) {
4858 static inline __ATTRS_o_ai vector
unsigned long long
4859 vec_andc(vector
bool long long __a
, vector
unsigned long long __b
) {
4863 static inline __ATTRS_o_ai vector
unsigned long long
4864 vec_andc(vector
unsigned long long __a
, vector
bool long long __b
) {
4868 static inline __ATTRS_o_ai vector
double
4869 vec_andc(vector
double __a
, vector
double __b
) {
4870 return (vector
double)((vector
unsigned long long)__a
&
4871 ~(vector
unsigned long long)__b
);
4874 static inline __ATTRS_o_ai vector
double
4875 vec_andc(vector
bool long long __a
, vector
double __b
) {
4876 return (vector
double)((vector
unsigned long long)__a
&
4877 ~(vector
unsigned long long)__b
);
4880 static inline __ATTRS_o_ai vector
double
4881 vec_andc(vector
double __a
, vector
bool long long __b
) {
4882 return (vector
double)((vector
unsigned long long)__a
&
4883 ~(vector
unsigned long long)__b
);
4886 /*-- vec_nor ----------------------------------------------------------------*/
4888 static inline __ATTRS_o_ai vector
bool char
4889 vec_nor(vector
bool char __a
, vector
bool char __b
) {
4890 return ~(__a
| __b
);
4893 static inline __ATTRS_o_ai vector
signed char
4894 vec_nor(vector
signed char __a
, vector
signed char __b
) {
4895 return ~(__a
| __b
);
4898 static inline __ATTRS_o_ai vector
signed char
4899 vec_nor(vector
bool char __a
, vector
signed char __b
) {
4900 return ~(__a
| __b
);
4903 static inline __ATTRS_o_ai vector
signed char
4904 vec_nor(vector
signed char __a
, vector
bool char __b
) {
4905 return ~(__a
| __b
);
4908 static inline __ATTRS_o_ai vector
unsigned char
4909 vec_nor(vector
unsigned char __a
, vector
unsigned char __b
) {
4910 return ~(__a
| __b
);
4913 static inline __ATTRS_o_ai vector
unsigned char
4914 vec_nor(vector
bool char __a
, vector
unsigned char __b
) {
4915 return ~(__a
| __b
);
4918 static inline __ATTRS_o_ai vector
unsigned char
4919 vec_nor(vector
unsigned char __a
, vector
bool char __b
) {
4920 return ~(__a
| __b
);
4923 static inline __ATTRS_o_ai vector
bool short
4924 vec_nor(vector
bool short __a
, vector
bool short __b
) {
4925 return ~(__a
| __b
);
4928 static inline __ATTRS_o_ai vector
signed short
4929 vec_nor(vector
signed short __a
, vector
signed short __b
) {
4930 return ~(__a
| __b
);
4933 static inline __ATTRS_o_ai vector
signed short
4934 vec_nor(vector
bool short __a
, vector
signed short __b
) {
4935 return ~(__a
| __b
);
4938 static inline __ATTRS_o_ai vector
signed short
4939 vec_nor(vector
signed short __a
, vector
bool short __b
) {
4940 return ~(__a
| __b
);
4943 static inline __ATTRS_o_ai vector
unsigned short
4944 vec_nor(vector
unsigned short __a
, vector
unsigned short __b
) {
4945 return ~(__a
| __b
);
4948 static inline __ATTRS_o_ai vector
unsigned short
4949 vec_nor(vector
bool short __a
, vector
unsigned short __b
) {
4950 return ~(__a
| __b
);
4953 static inline __ATTRS_o_ai vector
unsigned short
4954 vec_nor(vector
unsigned short __a
, vector
bool short __b
) {
4955 return ~(__a
| __b
);
4958 static inline __ATTRS_o_ai vector
bool int
4959 vec_nor(vector
bool int __a
, vector
bool int __b
) {
4960 return ~(__a
| __b
);
4963 static inline __ATTRS_o_ai vector
signed int
4964 vec_nor(vector
signed int __a
, vector
signed int __b
) {
4965 return ~(__a
| __b
);
4968 static inline __ATTRS_o_ai vector
signed int
4969 vec_nor(vector
bool int __a
, vector
signed int __b
) {
4970 return ~(__a
| __b
);
4973 static inline __ATTRS_o_ai vector
signed int
4974 vec_nor(vector
signed int __a
, vector
bool int __b
) {
4975 return ~(__a
| __b
);
4978 static inline __ATTRS_o_ai vector
unsigned int
4979 vec_nor(vector
unsigned int __a
, vector
unsigned int __b
) {
4980 return ~(__a
| __b
);
4983 static inline __ATTRS_o_ai vector
unsigned int
4984 vec_nor(vector
bool int __a
, vector
unsigned int __b
) {
4985 return ~(__a
| __b
);
4988 static inline __ATTRS_o_ai vector
unsigned int
4989 vec_nor(vector
unsigned int __a
, vector
bool int __b
) {
4990 return ~(__a
| __b
);
4993 static inline __ATTRS_o_ai vector
bool long long
4994 vec_nor(vector
bool long long __a
, vector
bool long long __b
) {
4995 return ~(__a
| __b
);
4998 static inline __ATTRS_o_ai vector
signed long long
4999 vec_nor(vector
signed long long __a
, vector
signed long long __b
) {
5000 return ~(__a
| __b
);
5003 static inline __ATTRS_o_ai vector
signed long long
5004 vec_nor(vector
bool long long __a
, vector
signed long long __b
) {
5005 return ~(__a
| __b
);
5008 static inline __ATTRS_o_ai vector
signed long long
5009 vec_nor(vector
signed long long __a
, vector
bool long long __b
) {
5010 return ~(__a
| __b
);
5013 static inline __ATTRS_o_ai vector
unsigned long long
5014 vec_nor(vector
unsigned long long __a
, vector
unsigned long long __b
) {
5015 return ~(__a
| __b
);
5018 static inline __ATTRS_o_ai vector
unsigned long long
5019 vec_nor(vector
bool long long __a
, vector
unsigned long long __b
) {
5020 return ~(__a
| __b
);
5023 static inline __ATTRS_o_ai vector
unsigned long long
5024 vec_nor(vector
unsigned long long __a
, vector
bool long long __b
) {
5025 return ~(__a
| __b
);
5028 static inline __ATTRS_o_ai vector
double
5029 vec_nor(vector
double __a
, vector
double __b
) {
5030 return (vector
double)~((vector
unsigned long long)__a
|
5031 (vector
unsigned long long)__b
);
5034 static inline __ATTRS_o_ai vector
double
5035 vec_nor(vector
bool long long __a
, vector
double __b
) {
5036 return (vector
double)~((vector
unsigned long long)__a
|
5037 (vector
unsigned long long)__b
);
5040 static inline __ATTRS_o_ai vector
double
5041 vec_nor(vector
double __a
, vector
bool long long __b
) {
5042 return (vector
double)~((vector
unsigned long long)__a
|
5043 (vector
unsigned long long)__b
);
5046 /*-- vec_cntlz --------------------------------------------------------------*/
5048 static inline __ATTRS_o_ai vector
unsigned char
5049 vec_cntlz(vector
signed char __a
) {
5050 return __builtin_s390_vclzb((vector
unsigned char)__a
);
5053 static inline __ATTRS_o_ai vector
unsigned char
5054 vec_cntlz(vector
unsigned char __a
) {
5055 return __builtin_s390_vclzb(__a
);
5058 static inline __ATTRS_o_ai vector
unsigned short
5059 vec_cntlz(vector
signed short __a
) {
5060 return __builtin_s390_vclzh((vector
unsigned short)__a
);
5063 static inline __ATTRS_o_ai vector
unsigned short
5064 vec_cntlz(vector
unsigned short __a
) {
5065 return __builtin_s390_vclzh(__a
);
5068 static inline __ATTRS_o_ai vector
unsigned int
5069 vec_cntlz(vector
signed int __a
) {
5070 return __builtin_s390_vclzf((vector
unsigned int)__a
);
5073 static inline __ATTRS_o_ai vector
unsigned int
5074 vec_cntlz(vector
unsigned int __a
) {
5075 return __builtin_s390_vclzf(__a
);
5078 static inline __ATTRS_o_ai vector
unsigned long long
5079 vec_cntlz(vector
signed long long __a
) {
5080 return __builtin_s390_vclzg((vector
unsigned long long)__a
);
5083 static inline __ATTRS_o_ai vector
unsigned long long
5084 vec_cntlz(vector
unsigned long long __a
) {
5085 return __builtin_s390_vclzg(__a
);
5088 /*-- vec_cnttz --------------------------------------------------------------*/
5090 static inline __ATTRS_o_ai vector
unsigned char
5091 vec_cnttz(vector
signed char __a
) {
5092 return __builtin_s390_vctzb((vector
unsigned char)__a
);
5095 static inline __ATTRS_o_ai vector
unsigned char
5096 vec_cnttz(vector
unsigned char __a
) {
5097 return __builtin_s390_vctzb(__a
);
5100 static inline __ATTRS_o_ai vector
unsigned short
5101 vec_cnttz(vector
signed short __a
) {
5102 return __builtin_s390_vctzh((vector
unsigned short)__a
);
5105 static inline __ATTRS_o_ai vector
unsigned short
5106 vec_cnttz(vector
unsigned short __a
) {
5107 return __builtin_s390_vctzh(__a
);
5110 static inline __ATTRS_o_ai vector
unsigned int
5111 vec_cnttz(vector
signed int __a
) {
5112 return __builtin_s390_vctzf((vector
unsigned int)__a
);
5115 static inline __ATTRS_o_ai vector
unsigned int
5116 vec_cnttz(vector
unsigned int __a
) {
5117 return __builtin_s390_vctzf(__a
);
5120 static inline __ATTRS_o_ai vector
unsigned long long
5121 vec_cnttz(vector
signed long long __a
) {
5122 return __builtin_s390_vctzg((vector
unsigned long long)__a
);
5125 static inline __ATTRS_o_ai vector
unsigned long long
5126 vec_cnttz(vector
unsigned long long __a
) {
5127 return __builtin_s390_vctzg(__a
);
5130 /*-- vec_popcnt -------------------------------------------------------------*/
5132 static inline __ATTRS_o_ai vector
unsigned char
5133 vec_popcnt(vector
signed char __a
) {
5134 return __builtin_s390_vpopctb((vector
unsigned char)__a
);
5137 static inline __ATTRS_o_ai vector
unsigned char
5138 vec_popcnt(vector
unsigned char __a
) {
5139 return __builtin_s390_vpopctb(__a
);
5142 static inline __ATTRS_o_ai vector
unsigned short
5143 vec_popcnt(vector
signed short __a
) {
5144 return __builtin_s390_vpopcth((vector
unsigned short)__a
);
5147 static inline __ATTRS_o_ai vector
unsigned short
5148 vec_popcnt(vector
unsigned short __a
) {
5149 return __builtin_s390_vpopcth(__a
);
5152 static inline __ATTRS_o_ai vector
unsigned int
5153 vec_popcnt(vector
signed int __a
) {
5154 return __builtin_s390_vpopctf((vector
unsigned int)__a
);
5157 static inline __ATTRS_o_ai vector
unsigned int
5158 vec_popcnt(vector
unsigned int __a
) {
5159 return __builtin_s390_vpopctf(__a
);
5162 static inline __ATTRS_o_ai vector
unsigned long long
5163 vec_popcnt(vector
signed long long __a
) {
5164 return __builtin_s390_vpopctg((vector
unsigned long long)__a
);
5167 static inline __ATTRS_o_ai vector
unsigned long long
5168 vec_popcnt(vector
unsigned long long __a
) {
5169 return __builtin_s390_vpopctg(__a
);
5172 /*-- vec_rl -----------------------------------------------------------------*/
5174 static inline __ATTRS_o_ai vector
signed char
5175 vec_rl(vector
signed char __a
, vector
unsigned char __b
) {
5176 return (vector
signed char)__builtin_s390_verllvb(
5177 (vector
unsigned char)__a
, __b
);
5180 static inline __ATTRS_o_ai vector
unsigned char
5181 vec_rl(vector
unsigned char __a
, vector
unsigned char __b
) {
5182 return __builtin_s390_verllvb(__a
, __b
);
5185 static inline __ATTRS_o_ai vector
signed short
5186 vec_rl(vector
signed short __a
, vector
unsigned short __b
) {
5187 return (vector
signed short)__builtin_s390_verllvh(
5188 (vector
unsigned short)__a
, __b
);
5191 static inline __ATTRS_o_ai vector
unsigned short
5192 vec_rl(vector
unsigned short __a
, vector
unsigned short __b
) {
5193 return __builtin_s390_verllvh(__a
, __b
);
5196 static inline __ATTRS_o_ai vector
signed int
5197 vec_rl(vector
signed int __a
, vector
unsigned int __b
) {
5198 return (vector
signed int)__builtin_s390_verllvf(
5199 (vector
unsigned int)__a
, __b
);
5202 static inline __ATTRS_o_ai vector
unsigned int
5203 vec_rl(vector
unsigned int __a
, vector
unsigned int __b
) {
5204 return __builtin_s390_verllvf(__a
, __b
);
5207 static inline __ATTRS_o_ai vector
signed long long
5208 vec_rl(vector
signed long long __a
, vector
unsigned long long __b
) {
5209 return (vector
signed long long)__builtin_s390_verllvg(
5210 (vector
unsigned long long)__a
, __b
);
5213 static inline __ATTRS_o_ai vector
unsigned long long
5214 vec_rl(vector
unsigned long long __a
, vector
unsigned long long __b
) {
5215 return __builtin_s390_verllvg(__a
, __b
);
5218 /*-- vec_rli ----------------------------------------------------------------*/
5220 static inline __ATTRS_o_ai vector
signed char
5221 vec_rli(vector
signed char __a
, unsigned long __b
) {
5222 return (vector
signed char)__builtin_s390_verllb(
5223 (vector
unsigned char)__a
, (int)__b
);
5226 static inline __ATTRS_o_ai vector
unsigned char
5227 vec_rli(vector
unsigned char __a
, unsigned long __b
) {
5228 return __builtin_s390_verllb(__a
, (int)__b
);
5231 static inline __ATTRS_o_ai vector
signed short
5232 vec_rli(vector
signed short __a
, unsigned long __b
) {
5233 return (vector
signed short)__builtin_s390_verllh(
5234 (vector
unsigned short)__a
, (int)__b
);
5237 static inline __ATTRS_o_ai vector
unsigned short
5238 vec_rli(vector
unsigned short __a
, unsigned long __b
) {
5239 return __builtin_s390_verllh(__a
, (int)__b
);
5242 static inline __ATTRS_o_ai vector
signed int
5243 vec_rli(vector
signed int __a
, unsigned long __b
) {
5244 return (vector
signed int)__builtin_s390_verllf(
5245 (vector
unsigned int)__a
, (int)__b
);
5248 static inline __ATTRS_o_ai vector
unsigned int
5249 vec_rli(vector
unsigned int __a
, unsigned long __b
) {
5250 return __builtin_s390_verllf(__a
, (int)__b
);
5253 static inline __ATTRS_o_ai vector
signed long long
5254 vec_rli(vector
signed long long __a
, unsigned long __b
) {
5255 return (vector
signed long long)__builtin_s390_verllg(
5256 (vector
unsigned long long)__a
, (int)__b
);
5259 static inline __ATTRS_o_ai vector
unsigned long long
5260 vec_rli(vector
unsigned long long __a
, unsigned long __b
) {
5261 return __builtin_s390_verllg(__a
, (int)__b
);
5264 /*-- vec_rl_mask ------------------------------------------------------------*/
5266 extern __ATTRS_o vector
signed char
5267 vec_rl_mask(vector
signed char __a
, vector
unsigned char __b
,
5268 unsigned char __c
) __constant(__c
);
5270 extern __ATTRS_o vector
unsigned char
5271 vec_rl_mask(vector
unsigned char __a
, vector
unsigned char __b
,
5272 unsigned char __c
) __constant(__c
);
5274 extern __ATTRS_o vector
signed short
5275 vec_rl_mask(vector
signed short __a
, vector
unsigned short __b
,
5276 unsigned char __c
) __constant(__c
);
5278 extern __ATTRS_o vector
unsigned short
5279 vec_rl_mask(vector
unsigned short __a
, vector
unsigned short __b
,
5280 unsigned char __c
) __constant(__c
);
5282 extern __ATTRS_o vector
signed int
5283 vec_rl_mask(vector
signed int __a
, vector
unsigned int __b
,
5284 unsigned char __c
) __constant(__c
);
5286 extern __ATTRS_o vector
unsigned int
5287 vec_rl_mask(vector
unsigned int __a
, vector
unsigned int __b
,
5288 unsigned char __c
) __constant(__c
);
5290 extern __ATTRS_o vector
signed long long
5291 vec_rl_mask(vector
signed long long __a
, vector
unsigned long long __b
,
5292 unsigned char __c
) __constant(__c
);
5294 extern __ATTRS_o vector
unsigned long long
5295 vec_rl_mask(vector
unsigned long long __a
, vector
unsigned long long __b
,
5296 unsigned char __c
) __constant(__c
);
5298 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
5300 vector unsigned char __res; \
5301 vector unsigned char __x = (vector unsigned char)(X); \
5302 vector unsigned char __y = (vector unsigned char)(Y); \
5303 switch (sizeof ((X)[0])) { \
5304 case 1: __res = (vector unsigned char) __builtin_s390_verimb( \
5305 (vector unsigned char)__x, (vector unsigned char)__x, \
5306 (vector unsigned char)__y, (Z)); break; \
5307 case 2: __res = (vector unsigned char) __builtin_s390_verimh( \
5308 (vector unsigned short)__x, (vector unsigned short)__x, \
5309 (vector unsigned short)__y, (Z)); break; \
5310 case 4: __res = (vector unsigned char) __builtin_s390_verimf( \
5311 (vector unsigned int)__x, (vector unsigned int)__x, \
5312 (vector unsigned int)__y, (Z)); break; \
5313 default: __res = (vector unsigned char) __builtin_s390_verimg( \
5314 (vector unsigned long long)__x, (vector unsigned long long)__x, \
5315 (vector unsigned long long)__y, (Z)); break; \
5318 /*-- vec_sll ----------------------------------------------------------------*/
5320 static inline __ATTRS_o_ai vector
signed char
5321 vec_sll(vector
signed char __a
, vector
unsigned char __b
) {
5322 return (vector
signed char)__builtin_s390_vsl(
5323 (vector
unsigned char)__a
, __b
);
5326 static inline __ATTRS_o_ai vector
signed char
5327 vec_sll(vector
signed char __a
, vector
unsigned short __b
) {
5328 return (vector
signed char)__builtin_s390_vsl(
5329 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5332 static inline __ATTRS_o_ai vector
signed char
5333 vec_sll(vector
signed char __a
, vector
unsigned int __b
) {
5334 return (vector
signed char)__builtin_s390_vsl(
5335 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5338 static inline __ATTRS_o_ai vector
bool char
5339 vec_sll(vector
bool char __a
, vector
unsigned char __b
) {
5340 return (vector
bool char)__builtin_s390_vsl(
5341 (vector
unsigned char)__a
, __b
);
5344 static inline __ATTRS_o_ai vector
bool char
5345 vec_sll(vector
bool char __a
, vector
unsigned short __b
) {
5346 return (vector
bool char)__builtin_s390_vsl(
5347 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5350 static inline __ATTRS_o_ai vector
bool char
5351 vec_sll(vector
bool char __a
, vector
unsigned int __b
) {
5352 return (vector
bool char)__builtin_s390_vsl(
5353 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5356 static inline __ATTRS_o_ai vector
unsigned char
5357 vec_sll(vector
unsigned char __a
, vector
unsigned char __b
) {
5358 return __builtin_s390_vsl(__a
, __b
);
5361 static inline __ATTRS_o_ai vector
unsigned char
5362 vec_sll(vector
unsigned char __a
, vector
unsigned short __b
) {
5363 return __builtin_s390_vsl(__a
, (vector
unsigned char)__b
);
5366 static inline __ATTRS_o_ai vector
unsigned char
5367 vec_sll(vector
unsigned char __a
, vector
unsigned int __b
) {
5368 return __builtin_s390_vsl(__a
, (vector
unsigned char)__b
);
5371 static inline __ATTRS_o_ai vector
signed short
5372 vec_sll(vector
signed short __a
, vector
unsigned char __b
) {
5373 return (vector
signed short)__builtin_s390_vsl(
5374 (vector
unsigned char)__a
, __b
);
5377 static inline __ATTRS_o_ai vector
signed short
5378 vec_sll(vector
signed short __a
, vector
unsigned short __b
) {
5379 return (vector
signed short)__builtin_s390_vsl(
5380 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5383 static inline __ATTRS_o_ai vector
signed short
5384 vec_sll(vector
signed short __a
, vector
unsigned int __b
) {
5385 return (vector
signed short)__builtin_s390_vsl(
5386 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5389 static inline __ATTRS_o_ai vector
bool short
5390 vec_sll(vector
bool short __a
, vector
unsigned char __b
) {
5391 return (vector
bool short)__builtin_s390_vsl(
5392 (vector
unsigned char)__a
, __b
);
5395 static inline __ATTRS_o_ai vector
bool short
5396 vec_sll(vector
bool short __a
, vector
unsigned short __b
) {
5397 return (vector
bool short)__builtin_s390_vsl(
5398 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5401 static inline __ATTRS_o_ai vector
bool short
5402 vec_sll(vector
bool short __a
, vector
unsigned int __b
) {
5403 return (vector
bool short)__builtin_s390_vsl(
5404 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5407 static inline __ATTRS_o_ai vector
unsigned short
5408 vec_sll(vector
unsigned short __a
, vector
unsigned char __b
) {
5409 return (vector
unsigned short)__builtin_s390_vsl(
5410 (vector
unsigned char)__a
, __b
);
5413 static inline __ATTRS_o_ai vector
unsigned short
5414 vec_sll(vector
unsigned short __a
, vector
unsigned short __b
) {
5415 return (vector
unsigned short)__builtin_s390_vsl(
5416 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5419 static inline __ATTRS_o_ai vector
unsigned short
5420 vec_sll(vector
unsigned short __a
, vector
unsigned int __b
) {
5421 return (vector
unsigned short)__builtin_s390_vsl(
5422 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5425 static inline __ATTRS_o_ai vector
signed int
5426 vec_sll(vector
signed int __a
, vector
unsigned char __b
) {
5427 return (vector
signed int)__builtin_s390_vsl(
5428 (vector
unsigned char)__a
, __b
);
5431 static inline __ATTRS_o_ai vector
signed int
5432 vec_sll(vector
signed int __a
, vector
unsigned short __b
) {
5433 return (vector
signed int)__builtin_s390_vsl(
5434 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5437 static inline __ATTRS_o_ai vector
signed int
5438 vec_sll(vector
signed int __a
, vector
unsigned int __b
) {
5439 return (vector
signed int)__builtin_s390_vsl(
5440 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5443 static inline __ATTRS_o_ai vector
bool int
5444 vec_sll(vector
bool int __a
, vector
unsigned char __b
) {
5445 return (vector
bool int)__builtin_s390_vsl(
5446 (vector
unsigned char)__a
, __b
);
5449 static inline __ATTRS_o_ai vector
bool int
5450 vec_sll(vector
bool int __a
, vector
unsigned short __b
) {
5451 return (vector
bool int)__builtin_s390_vsl(
5452 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5455 static inline __ATTRS_o_ai vector
bool int
5456 vec_sll(vector
bool int __a
, vector
unsigned int __b
) {
5457 return (vector
bool int)__builtin_s390_vsl(
5458 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5461 static inline __ATTRS_o_ai vector
unsigned int
5462 vec_sll(vector
unsigned int __a
, vector
unsigned char __b
) {
5463 return (vector
unsigned int)__builtin_s390_vsl(
5464 (vector
unsigned char)__a
, __b
);
5467 static inline __ATTRS_o_ai vector
unsigned int
5468 vec_sll(vector
unsigned int __a
, vector
unsigned short __b
) {
5469 return (vector
unsigned int)__builtin_s390_vsl(
5470 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5473 static inline __ATTRS_o_ai vector
unsigned int
5474 vec_sll(vector
unsigned int __a
, vector
unsigned int __b
) {
5475 return (vector
unsigned int)__builtin_s390_vsl(
5476 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5479 static inline __ATTRS_o_ai vector
signed long long
5480 vec_sll(vector
signed long long __a
, vector
unsigned char __b
) {
5481 return (vector
signed long long)__builtin_s390_vsl(
5482 (vector
unsigned char)__a
, __b
);
5485 static inline __ATTRS_o_ai vector
signed long long
5486 vec_sll(vector
signed long long __a
, vector
unsigned short __b
) {
5487 return (vector
signed long long)__builtin_s390_vsl(
5488 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5491 static inline __ATTRS_o_ai vector
signed long long
5492 vec_sll(vector
signed long long __a
, vector
unsigned int __b
) {
5493 return (vector
signed long long)__builtin_s390_vsl(
5494 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5497 static inline __ATTRS_o_ai vector
bool long long
5498 vec_sll(vector
bool long long __a
, vector
unsigned char __b
) {
5499 return (vector
bool long long)__builtin_s390_vsl(
5500 (vector
unsigned char)__a
, __b
);
5503 static inline __ATTRS_o_ai vector
bool long long
5504 vec_sll(vector
bool long long __a
, vector
unsigned short __b
) {
5505 return (vector
bool long long)__builtin_s390_vsl(
5506 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5509 static inline __ATTRS_o_ai vector
bool long long
5510 vec_sll(vector
bool long long __a
, vector
unsigned int __b
) {
5511 return (vector
bool long long)__builtin_s390_vsl(
5512 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5515 static inline __ATTRS_o_ai vector
unsigned long long
5516 vec_sll(vector
unsigned long long __a
, vector
unsigned char __b
) {
5517 return (vector
unsigned long long)__builtin_s390_vsl(
5518 (vector
unsigned char)__a
, __b
);
5521 static inline __ATTRS_o_ai vector
unsigned long long
5522 vec_sll(vector
unsigned long long __a
, vector
unsigned short __b
) {
5523 return (vector
unsigned long long)__builtin_s390_vsl(
5524 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5527 static inline __ATTRS_o_ai vector
unsigned long long
5528 vec_sll(vector
unsigned long long __a
, vector
unsigned int __b
) {
5529 return (vector
unsigned long long)__builtin_s390_vsl(
5530 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5533 /*-- vec_slb ----------------------------------------------------------------*/
5535 static inline __ATTRS_o_ai vector
signed char
5536 vec_slb(vector
signed char __a
, vector
signed char __b
) {
5537 return (vector
signed char)__builtin_s390_vslb(
5538 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5541 static inline __ATTRS_o_ai vector
signed char
5542 vec_slb(vector
signed char __a
, vector
unsigned char __b
) {
5543 return (vector
signed char)__builtin_s390_vslb(
5544 (vector
unsigned char)__a
, __b
);
5547 static inline __ATTRS_o_ai vector
unsigned char
5548 vec_slb(vector
unsigned char __a
, vector
signed char __b
) {
5549 return __builtin_s390_vslb(__a
, (vector
unsigned char)__b
);
5552 static inline __ATTRS_o_ai vector
unsigned char
5553 vec_slb(vector
unsigned char __a
, vector
unsigned char __b
) {
5554 return __builtin_s390_vslb(__a
, __b
);
5557 static inline __ATTRS_o_ai vector
signed short
5558 vec_slb(vector
signed short __a
, vector
signed short __b
) {
5559 return (vector
signed short)__builtin_s390_vslb(
5560 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5563 static inline __ATTRS_o_ai vector
signed short
5564 vec_slb(vector
signed short __a
, vector
unsigned short __b
) {
5565 return (vector
signed short)__builtin_s390_vslb(
5566 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5569 static inline __ATTRS_o_ai vector
unsigned short
5570 vec_slb(vector
unsigned short __a
, vector
signed short __b
) {
5571 return (vector
unsigned short)__builtin_s390_vslb(
5572 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5575 static inline __ATTRS_o_ai vector
unsigned short
5576 vec_slb(vector
unsigned short __a
, vector
unsigned short __b
) {
5577 return (vector
unsigned short)__builtin_s390_vslb(
5578 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5581 static inline __ATTRS_o_ai vector
signed int
5582 vec_slb(vector
signed int __a
, vector
signed int __b
) {
5583 return (vector
signed int)__builtin_s390_vslb(
5584 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5587 static inline __ATTRS_o_ai vector
signed int
5588 vec_slb(vector
signed int __a
, vector
unsigned int __b
) {
5589 return (vector
signed int)__builtin_s390_vslb(
5590 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5593 static inline __ATTRS_o_ai vector
unsigned int
5594 vec_slb(vector
unsigned int __a
, vector
signed int __b
) {
5595 return (vector
unsigned int)__builtin_s390_vslb(
5596 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5599 static inline __ATTRS_o_ai vector
unsigned int
5600 vec_slb(vector
unsigned int __a
, vector
unsigned int __b
) {
5601 return (vector
unsigned int)__builtin_s390_vslb(
5602 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5605 static inline __ATTRS_o_ai vector
signed long long
5606 vec_slb(vector
signed long long __a
, vector
signed long long __b
) {
5607 return (vector
signed long long)__builtin_s390_vslb(
5608 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5611 static inline __ATTRS_o_ai vector
signed long long
5612 vec_slb(vector
signed long long __a
, vector
unsigned long long __b
) {
5613 return (vector
signed long long)__builtin_s390_vslb(
5614 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5617 static inline __ATTRS_o_ai vector
unsigned long long
5618 vec_slb(vector
unsigned long long __a
, vector
signed long long __b
) {
5619 return (vector
unsigned long long)__builtin_s390_vslb(
5620 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5623 static inline __ATTRS_o_ai vector
unsigned long long
5624 vec_slb(vector
unsigned long long __a
, vector
unsigned long long __b
) {
5625 return (vector
unsigned long long)__builtin_s390_vslb(
5626 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5629 static inline __ATTRS_o_ai vector
double
5630 vec_slb(vector
double __a
, vector
signed long long __b
) {
5631 return (vector
double)__builtin_s390_vslb(
5632 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5635 static inline __ATTRS_o_ai vector
double
5636 vec_slb(vector
double __a
, vector
unsigned long long __b
) {
5637 return (vector
double)__builtin_s390_vslb(
5638 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5641 /*-- vec_sld ----------------------------------------------------------------*/
5643 extern __ATTRS_o vector
signed char
5644 vec_sld(vector
signed char __a
, vector
signed char __b
, int __c
)
5645 __constant_range(__c
, 0, 15);
5647 extern __ATTRS_o vector
unsigned char
5648 vec_sld(vector
unsigned char __a
, vector
unsigned char __b
, int __c
)
5649 __constant_range(__c
, 0, 15);
5651 extern __ATTRS_o vector
signed short
5652 vec_sld(vector
signed short __a
, vector
signed short __b
, int __c
)
5653 __constant_range(__c
, 0, 15);
5655 extern __ATTRS_o vector
unsigned short
5656 vec_sld(vector
unsigned short __a
, vector
unsigned short __b
, int __c
)
5657 __constant_range(__c
, 0, 15);
5659 extern __ATTRS_o vector
signed int
5660 vec_sld(vector
signed int __a
, vector
signed int __b
, int __c
)
5661 __constant_range(__c
, 0, 15);
5663 extern __ATTRS_o vector
unsigned int
5664 vec_sld(vector
unsigned int __a
, vector
unsigned int __b
, int __c
)
5665 __constant_range(__c
, 0, 15);
5667 extern __ATTRS_o vector
signed long long
5668 vec_sld(vector
signed long long __a
, vector
signed long long __b
, int __c
)
5669 __constant_range(__c
, 0, 15);
5671 extern __ATTRS_o vector
unsigned long long
5672 vec_sld(vector
unsigned long long __a
, vector
unsigned long long __b
, int __c
)
5673 __constant_range(__c
, 0, 15);
5675 extern __ATTRS_o vector
double
5676 vec_sld(vector
double __a
, vector
double __b
, int __c
)
5677 __constant_range(__c
, 0, 15);
5679 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
5680 __builtin_s390_vsldb((vector unsigned char)(X), \
5681 (vector unsigned char)(Y), (Z)))
5683 /*-- vec_sldw ---------------------------------------------------------------*/
5685 extern __ATTRS_o vector
signed char
5686 vec_sldw(vector
signed char __a
, vector
signed char __b
, int __c
)
5687 __constant_range(__c
, 0, 3);
5689 extern __ATTRS_o vector
unsigned char
5690 vec_sldw(vector
unsigned char __a
, vector
unsigned char __b
, int __c
)
5691 __constant_range(__c
, 0, 3);
5693 extern __ATTRS_o vector
signed short
5694 vec_sldw(vector
signed short __a
, vector
signed short __b
, int __c
)
5695 __constant_range(__c
, 0, 3);
5697 extern __ATTRS_o vector
unsigned short
5698 vec_sldw(vector
unsigned short __a
, vector
unsigned short __b
, int __c
)
5699 __constant_range(__c
, 0, 3);
5701 extern __ATTRS_o vector
signed int
5702 vec_sldw(vector
signed int __a
, vector
signed int __b
, int __c
)
5703 __constant_range(__c
, 0, 3);
5705 extern __ATTRS_o vector
unsigned int
5706 vec_sldw(vector
unsigned int __a
, vector
unsigned int __b
, int __c
)
5707 __constant_range(__c
, 0, 3);
5709 extern __ATTRS_o vector
signed long long
5710 vec_sldw(vector
signed long long __a
, vector
signed long long __b
, int __c
)
5711 __constant_range(__c
, 0, 3);
5713 extern __ATTRS_o vector
unsigned long long
5714 vec_sldw(vector
unsigned long long __a
, vector
unsigned long long __b
, int __c
)
5715 __constant_range(__c
, 0, 3);
5717 extern __ATTRS_o vector
double
5718 vec_sldw(vector
double __a
, vector
double __b
, int __c
)
5719 __constant_range(__c
, 0, 3);
5721 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
5722 __builtin_s390_vsldb((vector unsigned char)(X), \
5723 (vector unsigned char)(Y), (Z) * 4))
5725 /*-- vec_sral ---------------------------------------------------------------*/
5727 static inline __ATTRS_o_ai vector
signed char
5728 vec_sral(vector
signed char __a
, vector
unsigned char __b
) {
5729 return (vector
signed char)__builtin_s390_vsra(
5730 (vector
unsigned char)__a
, __b
);
5733 static inline __ATTRS_o_ai vector
signed char
5734 vec_sral(vector
signed char __a
, vector
unsigned short __b
) {
5735 return (vector
signed char)__builtin_s390_vsra(
5736 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5739 static inline __ATTRS_o_ai vector
signed char
5740 vec_sral(vector
signed char __a
, vector
unsigned int __b
) {
5741 return (vector
signed char)__builtin_s390_vsra(
5742 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5745 static inline __ATTRS_o_ai vector
bool char
5746 vec_sral(vector
bool char __a
, vector
unsigned char __b
) {
5747 return (vector
bool char)__builtin_s390_vsra(
5748 (vector
unsigned char)__a
, __b
);
5751 static inline __ATTRS_o_ai vector
bool char
5752 vec_sral(vector
bool char __a
, vector
unsigned short __b
) {
5753 return (vector
bool char)__builtin_s390_vsra(
5754 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5757 static inline __ATTRS_o_ai vector
bool char
5758 vec_sral(vector
bool char __a
, vector
unsigned int __b
) {
5759 return (vector
bool char)__builtin_s390_vsra(
5760 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5763 static inline __ATTRS_o_ai vector
unsigned char
5764 vec_sral(vector
unsigned char __a
, vector
unsigned char __b
) {
5765 return __builtin_s390_vsra(__a
, __b
);
5768 static inline __ATTRS_o_ai vector
unsigned char
5769 vec_sral(vector
unsigned char __a
, vector
unsigned short __b
) {
5770 return __builtin_s390_vsra(__a
, (vector
unsigned char)__b
);
5773 static inline __ATTRS_o_ai vector
unsigned char
5774 vec_sral(vector
unsigned char __a
, vector
unsigned int __b
) {
5775 return __builtin_s390_vsra(__a
, (vector
unsigned char)__b
);
5778 static inline __ATTRS_o_ai vector
signed short
5779 vec_sral(vector
signed short __a
, vector
unsigned char __b
) {
5780 return (vector
signed short)__builtin_s390_vsra(
5781 (vector
unsigned char)__a
, __b
);
5784 static inline __ATTRS_o_ai vector
signed short
5785 vec_sral(vector
signed short __a
, vector
unsigned short __b
) {
5786 return (vector
signed short)__builtin_s390_vsra(
5787 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5790 static inline __ATTRS_o_ai vector
signed short
5791 vec_sral(vector
signed short __a
, vector
unsigned int __b
) {
5792 return (vector
signed short)__builtin_s390_vsra(
5793 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5796 static inline __ATTRS_o_ai vector
bool short
5797 vec_sral(vector
bool short __a
, vector
unsigned char __b
) {
5798 return (vector
bool short)__builtin_s390_vsra(
5799 (vector
unsigned char)__a
, __b
);
5802 static inline __ATTRS_o_ai vector
bool short
5803 vec_sral(vector
bool short __a
, vector
unsigned short __b
) {
5804 return (vector
bool short)__builtin_s390_vsra(
5805 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5808 static inline __ATTRS_o_ai vector
bool short
5809 vec_sral(vector
bool short __a
, vector
unsigned int __b
) {
5810 return (vector
bool short)__builtin_s390_vsra(
5811 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5814 static inline __ATTRS_o_ai vector
unsigned short
5815 vec_sral(vector
unsigned short __a
, vector
unsigned char __b
) {
5816 return (vector
unsigned short)__builtin_s390_vsra(
5817 (vector
unsigned char)__a
, __b
);
5820 static inline __ATTRS_o_ai vector
unsigned short
5821 vec_sral(vector
unsigned short __a
, vector
unsigned short __b
) {
5822 return (vector
unsigned short)__builtin_s390_vsra(
5823 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5826 static inline __ATTRS_o_ai vector
unsigned short
5827 vec_sral(vector
unsigned short __a
, vector
unsigned int __b
) {
5828 return (vector
unsigned short)__builtin_s390_vsra(
5829 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5832 static inline __ATTRS_o_ai vector
signed int
5833 vec_sral(vector
signed int __a
, vector
unsigned char __b
) {
5834 return (vector
signed int)__builtin_s390_vsra(
5835 (vector
unsigned char)__a
, __b
);
5838 static inline __ATTRS_o_ai vector
signed int
5839 vec_sral(vector
signed int __a
, vector
unsigned short __b
) {
5840 return (vector
signed int)__builtin_s390_vsra(
5841 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5844 static inline __ATTRS_o_ai vector
signed int
5845 vec_sral(vector
signed int __a
, vector
unsigned int __b
) {
5846 return (vector
signed int)__builtin_s390_vsra(
5847 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5850 static inline __ATTRS_o_ai vector
bool int
5851 vec_sral(vector
bool int __a
, vector
unsigned char __b
) {
5852 return (vector
bool int)__builtin_s390_vsra(
5853 (vector
unsigned char)__a
, __b
);
5856 static inline __ATTRS_o_ai vector
bool int
5857 vec_sral(vector
bool int __a
, vector
unsigned short __b
) {
5858 return (vector
bool int)__builtin_s390_vsra(
5859 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5862 static inline __ATTRS_o_ai vector
bool int
5863 vec_sral(vector
bool int __a
, vector
unsigned int __b
) {
5864 return (vector
bool int)__builtin_s390_vsra(
5865 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5868 static inline __ATTRS_o_ai vector
unsigned int
5869 vec_sral(vector
unsigned int __a
, vector
unsigned char __b
) {
5870 return (vector
unsigned int)__builtin_s390_vsra(
5871 (vector
unsigned char)__a
, __b
);
5874 static inline __ATTRS_o_ai vector
unsigned int
5875 vec_sral(vector
unsigned int __a
, vector
unsigned short __b
) {
5876 return (vector
unsigned int)__builtin_s390_vsra(
5877 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5880 static inline __ATTRS_o_ai vector
unsigned int
5881 vec_sral(vector
unsigned int __a
, vector
unsigned int __b
) {
5882 return (vector
unsigned int)__builtin_s390_vsra(
5883 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5886 static inline __ATTRS_o_ai vector
signed long long
5887 vec_sral(vector
signed long long __a
, vector
unsigned char __b
) {
5888 return (vector
signed long long)__builtin_s390_vsra(
5889 (vector
unsigned char)__a
, __b
);
5892 static inline __ATTRS_o_ai vector
signed long long
5893 vec_sral(vector
signed long long __a
, vector
unsigned short __b
) {
5894 return (vector
signed long long)__builtin_s390_vsra(
5895 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5898 static inline __ATTRS_o_ai vector
signed long long
5899 vec_sral(vector
signed long long __a
, vector
unsigned int __b
) {
5900 return (vector
signed long long)__builtin_s390_vsra(
5901 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5904 static inline __ATTRS_o_ai vector
bool long long
5905 vec_sral(vector
bool long long __a
, vector
unsigned char __b
) {
5906 return (vector
bool long long)__builtin_s390_vsra(
5907 (vector
unsigned char)__a
, __b
);
5910 static inline __ATTRS_o_ai vector
bool long long
5911 vec_sral(vector
bool long long __a
, vector
unsigned short __b
) {
5912 return (vector
bool long long)__builtin_s390_vsra(
5913 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5916 static inline __ATTRS_o_ai vector
bool long long
5917 vec_sral(vector
bool long long __a
, vector
unsigned int __b
) {
5918 return (vector
bool long long)__builtin_s390_vsra(
5919 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5922 static inline __ATTRS_o_ai vector
unsigned long long
5923 vec_sral(vector
unsigned long long __a
, vector
unsigned char __b
) {
5924 return (vector
unsigned long long)__builtin_s390_vsra(
5925 (vector
unsigned char)__a
, __b
);
5928 static inline __ATTRS_o_ai vector
unsigned long long
5929 vec_sral(vector
unsigned long long __a
, vector
unsigned short __b
) {
5930 return (vector
unsigned long long)__builtin_s390_vsra(
5931 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5934 static inline __ATTRS_o_ai vector
unsigned long long
5935 vec_sral(vector
unsigned long long __a
, vector
unsigned int __b
) {
5936 return (vector
unsigned long long)__builtin_s390_vsra(
5937 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5940 /*-- vec_srab ---------------------------------------------------------------*/
5942 static inline __ATTRS_o_ai vector
signed char
5943 vec_srab(vector
signed char __a
, vector
signed char __b
) {
5944 return (vector
signed char)__builtin_s390_vsrab(
5945 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5948 static inline __ATTRS_o_ai vector
signed char
5949 vec_srab(vector
signed char __a
, vector
unsigned char __b
) {
5950 return (vector
signed char)__builtin_s390_vsrab(
5951 (vector
unsigned char)__a
, __b
);
5954 static inline __ATTRS_o_ai vector
unsigned char
5955 vec_srab(vector
unsigned char __a
, vector
signed char __b
) {
5956 return __builtin_s390_vsrab(__a
, (vector
unsigned char)__b
);
5959 static inline __ATTRS_o_ai vector
unsigned char
5960 vec_srab(vector
unsigned char __a
, vector
unsigned char __b
) {
5961 return __builtin_s390_vsrab(__a
, __b
);
5964 static inline __ATTRS_o_ai vector
signed short
5965 vec_srab(vector
signed short __a
, vector
signed short __b
) {
5966 return (vector
signed short)__builtin_s390_vsrab(
5967 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5970 static inline __ATTRS_o_ai vector
signed short
5971 vec_srab(vector
signed short __a
, vector
unsigned short __b
) {
5972 return (vector
signed short)__builtin_s390_vsrab(
5973 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5976 static inline __ATTRS_o_ai vector
unsigned short
5977 vec_srab(vector
unsigned short __a
, vector
signed short __b
) {
5978 return (vector
unsigned short)__builtin_s390_vsrab(
5979 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5982 static inline __ATTRS_o_ai vector
unsigned short
5983 vec_srab(vector
unsigned short __a
, vector
unsigned short __b
) {
5984 return (vector
unsigned short)__builtin_s390_vsrab(
5985 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5988 static inline __ATTRS_o_ai vector
signed int
5989 vec_srab(vector
signed int __a
, vector
signed int __b
) {
5990 return (vector
signed int)__builtin_s390_vsrab(
5991 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
5994 static inline __ATTRS_o_ai vector
signed int
5995 vec_srab(vector
signed int __a
, vector
unsigned int __b
) {
5996 return (vector
signed int)__builtin_s390_vsrab(
5997 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6000 static inline __ATTRS_o_ai vector
unsigned int
6001 vec_srab(vector
unsigned int __a
, vector
signed int __b
) {
6002 return (vector
unsigned int)__builtin_s390_vsrab(
6003 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6006 static inline __ATTRS_o_ai vector
unsigned int
6007 vec_srab(vector
unsigned int __a
, vector
unsigned int __b
) {
6008 return (vector
unsigned int)__builtin_s390_vsrab(
6009 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6012 static inline __ATTRS_o_ai vector
signed long long
6013 vec_srab(vector
signed long long __a
, vector
signed long long __b
) {
6014 return (vector
signed long long)__builtin_s390_vsrab(
6015 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6018 static inline __ATTRS_o_ai vector
signed long long
6019 vec_srab(vector
signed long long __a
, vector
unsigned long long __b
) {
6020 return (vector
signed long long)__builtin_s390_vsrab(
6021 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6024 static inline __ATTRS_o_ai vector
unsigned long long
6025 vec_srab(vector
unsigned long long __a
, vector
signed long long __b
) {
6026 return (vector
unsigned long long)__builtin_s390_vsrab(
6027 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6030 static inline __ATTRS_o_ai vector
unsigned long long
6031 vec_srab(vector
unsigned long long __a
, vector
unsigned long long __b
) {
6032 return (vector
unsigned long long)__builtin_s390_vsrab(
6033 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6036 static inline __ATTRS_o_ai vector
double
6037 vec_srab(vector
double __a
, vector
signed long long __b
) {
6038 return (vector
double)__builtin_s390_vsrab(
6039 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6042 static inline __ATTRS_o_ai vector
double
6043 vec_srab(vector
double __a
, vector
unsigned long long __b
) {
6044 return (vector
double)__builtin_s390_vsrab(
6045 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6048 /*-- vec_srl ----------------------------------------------------------------*/
6050 static inline __ATTRS_o_ai vector
signed char
6051 vec_srl(vector
signed char __a
, vector
unsigned char __b
) {
6052 return (vector
signed char)__builtin_s390_vsrl(
6053 (vector
unsigned char)__a
, __b
);
6056 static inline __ATTRS_o_ai vector
signed char
6057 vec_srl(vector
signed char __a
, vector
unsigned short __b
) {
6058 return (vector
signed char)__builtin_s390_vsrl(
6059 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6062 static inline __ATTRS_o_ai vector
signed char
6063 vec_srl(vector
signed char __a
, vector
unsigned int __b
) {
6064 return (vector
signed char)__builtin_s390_vsrl(
6065 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6068 static inline __ATTRS_o_ai vector
bool char
6069 vec_srl(vector
bool char __a
, vector
unsigned char __b
) {
6070 return (vector
bool char)__builtin_s390_vsrl(
6071 (vector
unsigned char)__a
, __b
);
6074 static inline __ATTRS_o_ai vector
bool char
6075 vec_srl(vector
bool char __a
, vector
unsigned short __b
) {
6076 return (vector
bool char)__builtin_s390_vsrl(
6077 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6080 static inline __ATTRS_o_ai vector
bool char
6081 vec_srl(vector
bool char __a
, vector
unsigned int __b
) {
6082 return (vector
bool char)__builtin_s390_vsrl(
6083 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6086 static inline __ATTRS_o_ai vector
unsigned char
6087 vec_srl(vector
unsigned char __a
, vector
unsigned char __b
) {
6088 return __builtin_s390_vsrl(__a
, __b
);
6091 static inline __ATTRS_o_ai vector
unsigned char
6092 vec_srl(vector
unsigned char __a
, vector
unsigned short __b
) {
6093 return __builtin_s390_vsrl(__a
, (vector
unsigned char)__b
);
6096 static inline __ATTRS_o_ai vector
unsigned char
6097 vec_srl(vector
unsigned char __a
, vector
unsigned int __b
) {
6098 return __builtin_s390_vsrl(__a
, (vector
unsigned char)__b
);
6101 static inline __ATTRS_o_ai vector
signed short
6102 vec_srl(vector
signed short __a
, vector
unsigned char __b
) {
6103 return (vector
signed short)__builtin_s390_vsrl(
6104 (vector
unsigned char)__a
, __b
);
6107 static inline __ATTRS_o_ai vector
signed short
6108 vec_srl(vector
signed short __a
, vector
unsigned short __b
) {
6109 return (vector
signed short)__builtin_s390_vsrl(
6110 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6113 static inline __ATTRS_o_ai vector
signed short
6114 vec_srl(vector
signed short __a
, vector
unsigned int __b
) {
6115 return (vector
signed short)__builtin_s390_vsrl(
6116 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6119 static inline __ATTRS_o_ai vector
bool short
6120 vec_srl(vector
bool short __a
, vector
unsigned char __b
) {
6121 return (vector
bool short)__builtin_s390_vsrl(
6122 (vector
unsigned char)__a
, __b
);
6125 static inline __ATTRS_o_ai vector
bool short
6126 vec_srl(vector
bool short __a
, vector
unsigned short __b
) {
6127 return (vector
bool short)__builtin_s390_vsrl(
6128 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6131 static inline __ATTRS_o_ai vector
bool short
6132 vec_srl(vector
bool short __a
, vector
unsigned int __b
) {
6133 return (vector
bool short)__builtin_s390_vsrl(
6134 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6137 static inline __ATTRS_o_ai vector
unsigned short
6138 vec_srl(vector
unsigned short __a
, vector
unsigned char __b
) {
6139 return (vector
unsigned short)__builtin_s390_vsrl(
6140 (vector
unsigned char)__a
, __b
);
6143 static inline __ATTRS_o_ai vector
unsigned short
6144 vec_srl(vector
unsigned short __a
, vector
unsigned short __b
) {
6145 return (vector
unsigned short)__builtin_s390_vsrl(
6146 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6149 static inline __ATTRS_o_ai vector
unsigned short
6150 vec_srl(vector
unsigned short __a
, vector
unsigned int __b
) {
6151 return (vector
unsigned short)__builtin_s390_vsrl(
6152 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6155 static inline __ATTRS_o_ai vector
signed int
6156 vec_srl(vector
signed int __a
, vector
unsigned char __b
) {
6157 return (vector
signed int)__builtin_s390_vsrl(
6158 (vector
unsigned char)__a
, __b
);
6161 static inline __ATTRS_o_ai vector
signed int
6162 vec_srl(vector
signed int __a
, vector
unsigned short __b
) {
6163 return (vector
signed int)__builtin_s390_vsrl(
6164 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6167 static inline __ATTRS_o_ai vector
signed int
6168 vec_srl(vector
signed int __a
, vector
unsigned int __b
) {
6169 return (vector
signed int)__builtin_s390_vsrl(
6170 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6173 static inline __ATTRS_o_ai vector
bool int
6174 vec_srl(vector
bool int __a
, vector
unsigned char __b
) {
6175 return (vector
bool int)__builtin_s390_vsrl(
6176 (vector
unsigned char)__a
, __b
);
6179 static inline __ATTRS_o_ai vector
bool int
6180 vec_srl(vector
bool int __a
, vector
unsigned short __b
) {
6181 return (vector
bool int)__builtin_s390_vsrl(
6182 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6185 static inline __ATTRS_o_ai vector
bool int
6186 vec_srl(vector
bool int __a
, vector
unsigned int __b
) {
6187 return (vector
bool int)__builtin_s390_vsrl(
6188 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6191 static inline __ATTRS_o_ai vector
unsigned int
6192 vec_srl(vector
unsigned int __a
, vector
unsigned char __b
) {
6193 return (vector
unsigned int)__builtin_s390_vsrl(
6194 (vector
unsigned char)__a
, __b
);
6197 static inline __ATTRS_o_ai vector
unsigned int
6198 vec_srl(vector
unsigned int __a
, vector
unsigned short __b
) {
6199 return (vector
unsigned int)__builtin_s390_vsrl(
6200 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6203 static inline __ATTRS_o_ai vector
unsigned int
6204 vec_srl(vector
unsigned int __a
, vector
unsigned int __b
) {
6205 return (vector
unsigned int)__builtin_s390_vsrl(
6206 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6209 static inline __ATTRS_o_ai vector
signed long long
6210 vec_srl(vector
signed long long __a
, vector
unsigned char __b
) {
6211 return (vector
signed long long)__builtin_s390_vsrl(
6212 (vector
unsigned char)__a
, __b
);
6215 static inline __ATTRS_o_ai vector
signed long long
6216 vec_srl(vector
signed long long __a
, vector
unsigned short __b
) {
6217 return (vector
signed long long)__builtin_s390_vsrl(
6218 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6221 static inline __ATTRS_o_ai vector
signed long long
6222 vec_srl(vector
signed long long __a
, vector
unsigned int __b
) {
6223 return (vector
signed long long)__builtin_s390_vsrl(
6224 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6227 static inline __ATTRS_o_ai vector
bool long long
6228 vec_srl(vector
bool long long __a
, vector
unsigned char __b
) {
6229 return (vector
bool long long)__builtin_s390_vsrl(
6230 (vector
unsigned char)__a
, __b
);
6233 static inline __ATTRS_o_ai vector
bool long long
6234 vec_srl(vector
bool long long __a
, vector
unsigned short __b
) {
6235 return (vector
bool long long)__builtin_s390_vsrl(
6236 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6239 static inline __ATTRS_o_ai vector
bool long long
6240 vec_srl(vector
bool long long __a
, vector
unsigned int __b
) {
6241 return (vector
bool long long)__builtin_s390_vsrl(
6242 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6245 static inline __ATTRS_o_ai vector
unsigned long long
6246 vec_srl(vector
unsigned long long __a
, vector
unsigned char __b
) {
6247 return (vector
unsigned long long)__builtin_s390_vsrl(
6248 (vector
unsigned char)__a
, __b
);
6251 static inline __ATTRS_o_ai vector
unsigned long long
6252 vec_srl(vector
unsigned long long __a
, vector
unsigned short __b
) {
6253 return (vector
unsigned long long)__builtin_s390_vsrl(
6254 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6257 static inline __ATTRS_o_ai vector
unsigned long long
6258 vec_srl(vector
unsigned long long __a
, vector
unsigned int __b
) {
6259 return (vector
unsigned long long)__builtin_s390_vsrl(
6260 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6263 /*-- vec_srb ----------------------------------------------------------------*/
6265 static inline __ATTRS_o_ai vector
signed char
6266 vec_srb(vector
signed char __a
, vector
signed char __b
) {
6267 return (vector
signed char)__builtin_s390_vsrlb(
6268 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6271 static inline __ATTRS_o_ai vector
signed char
6272 vec_srb(vector
signed char __a
, vector
unsigned char __b
) {
6273 return (vector
signed char)__builtin_s390_vsrlb(
6274 (vector
unsigned char)__a
, __b
);
6277 static inline __ATTRS_o_ai vector
unsigned char
6278 vec_srb(vector
unsigned char __a
, vector
signed char __b
) {
6279 return __builtin_s390_vsrlb(__a
, (vector
unsigned char)__b
);
6282 static inline __ATTRS_o_ai vector
unsigned char
6283 vec_srb(vector
unsigned char __a
, vector
unsigned char __b
) {
6284 return __builtin_s390_vsrlb(__a
, __b
);
6287 static inline __ATTRS_o_ai vector
signed short
6288 vec_srb(vector
signed short __a
, vector
signed short __b
) {
6289 return (vector
signed short)__builtin_s390_vsrlb(
6290 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6293 static inline __ATTRS_o_ai vector
signed short
6294 vec_srb(vector
signed short __a
, vector
unsigned short __b
) {
6295 return (vector
signed short)__builtin_s390_vsrlb(
6296 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6299 static inline __ATTRS_o_ai vector
unsigned short
6300 vec_srb(vector
unsigned short __a
, vector
signed short __b
) {
6301 return (vector
unsigned short)__builtin_s390_vsrlb(
6302 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6305 static inline __ATTRS_o_ai vector
unsigned short
6306 vec_srb(vector
unsigned short __a
, vector
unsigned short __b
) {
6307 return (vector
unsigned short)__builtin_s390_vsrlb(
6308 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6311 static inline __ATTRS_o_ai vector
signed int
6312 vec_srb(vector
signed int __a
, vector
signed int __b
) {
6313 return (vector
signed int)__builtin_s390_vsrlb(
6314 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6317 static inline __ATTRS_o_ai vector
signed int
6318 vec_srb(vector
signed int __a
, vector
unsigned int __b
) {
6319 return (vector
signed int)__builtin_s390_vsrlb(
6320 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6323 static inline __ATTRS_o_ai vector
unsigned int
6324 vec_srb(vector
unsigned int __a
, vector
signed int __b
) {
6325 return (vector
unsigned int)__builtin_s390_vsrlb(
6326 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6329 static inline __ATTRS_o_ai vector
unsigned int
6330 vec_srb(vector
unsigned int __a
, vector
unsigned int __b
) {
6331 return (vector
unsigned int)__builtin_s390_vsrlb(
6332 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6335 static inline __ATTRS_o_ai vector
signed long long
6336 vec_srb(vector
signed long long __a
, vector
signed long long __b
) {
6337 return (vector
signed long long)__builtin_s390_vsrlb(
6338 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6341 static inline __ATTRS_o_ai vector
signed long long
6342 vec_srb(vector
signed long long __a
, vector
unsigned long long __b
) {
6343 return (vector
signed long long)__builtin_s390_vsrlb(
6344 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6347 static inline __ATTRS_o_ai vector
unsigned long long
6348 vec_srb(vector
unsigned long long __a
, vector
signed long long __b
) {
6349 return (vector
unsigned long long)__builtin_s390_vsrlb(
6350 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6353 static inline __ATTRS_o_ai vector
unsigned long long
6354 vec_srb(vector
unsigned long long __a
, vector
unsigned long long __b
) {
6355 return (vector
unsigned long long)__builtin_s390_vsrlb(
6356 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6359 static inline __ATTRS_o_ai vector
double
6360 vec_srb(vector
double __a
, vector
signed long long __b
) {
6361 return (vector
double)__builtin_s390_vsrlb(
6362 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6365 static inline __ATTRS_o_ai vector
double
6366 vec_srb(vector
double __a
, vector
unsigned long long __b
) {
6367 return (vector
double)__builtin_s390_vsrlb(
6368 (vector
unsigned char)__a
, (vector
unsigned char)__b
);
6371 /*-- vec_abs ----------------------------------------------------------------*/
6373 static inline __ATTRS_o_ai vector
signed char
6374 vec_abs(vector
signed char __a
) {
6375 return vec_sel(__a
, -__a
, vec_cmplt(__a
, (vector
signed char)0));
6378 static inline __ATTRS_o_ai vector
signed short
6379 vec_abs(vector
signed short __a
) {
6380 return vec_sel(__a
, -__a
, vec_cmplt(__a
, (vector
signed short)0));
6383 static inline __ATTRS_o_ai vector
signed int
6384 vec_abs(vector
signed int __a
) {
6385 return vec_sel(__a
, -__a
, vec_cmplt(__a
, (vector
signed int)0));
6388 static inline __ATTRS_o_ai vector
signed long long
6389 vec_abs(vector
signed long long __a
) {
6390 return vec_sel(__a
, -__a
, vec_cmplt(__a
, (vector
signed long long)0));
6393 static inline __ATTRS_o_ai vector
double
6394 vec_abs(vector
double __a
) {
6395 return __builtin_s390_vflpdb(__a
);
6398 /*-- vec_nabs ---------------------------------------------------------------*/
6400 static inline __ATTRS_ai vector
double
6401 vec_nabs(vector
double __a
) {
6402 return __builtin_s390_vflndb(__a
);
6405 /*-- vec_max ----------------------------------------------------------------*/
6407 static inline __ATTRS_o_ai vector
signed char
6408 vec_max(vector
signed char __a
, vector
signed char __b
) {
6409 return vec_sel(__b
, __a
, vec_cmpgt(__a
, __b
));
6412 static inline __ATTRS_o_ai vector
signed char
6413 vec_max(vector
signed char __a
, vector
bool char __b
) {
6414 vector
signed char __bc
= (vector
signed char)__b
;
6415 return vec_sel(__bc
, __a
, vec_cmpgt(__a
, __bc
));
6418 static inline __ATTRS_o_ai vector
signed char
6419 vec_max(vector
bool char __a
, vector
signed char __b
) {
6420 vector
signed char __ac
= (vector
signed char)__a
;
6421 return vec_sel(__b
, __ac
, vec_cmpgt(__ac
, __b
));
6424 static inline __ATTRS_o_ai vector
unsigned char
6425 vec_max(vector
unsigned char __a
, vector
unsigned char __b
) {
6426 return vec_sel(__b
, __a
, vec_cmpgt(__a
, __b
));
6429 static inline __ATTRS_o_ai vector
unsigned char
6430 vec_max(vector
unsigned char __a
, vector
bool char __b
) {
6431 vector
unsigned char __bc
= (vector
unsigned char)__b
;
6432 return vec_sel(__bc
, __a
, vec_cmpgt(__a
, __bc
));
6435 static inline __ATTRS_o_ai vector
unsigned char
6436 vec_max(vector
bool char __a
, vector
unsigned char __b
) {
6437 vector
unsigned char __ac
= (vector
unsigned char)__a
;
6438 return vec_sel(__b
, __ac
, vec_cmpgt(__ac
, __b
));
6441 static inline __ATTRS_o_ai vector
signed short
6442 vec_max(vector
signed short __a
, vector
signed short __b
) {
6443 return vec_sel(__b
, __a
, vec_cmpgt(__a
, __b
));
6446 static inline __ATTRS_o_ai vector
signed short
6447 vec_max(vector
signed short __a
, vector
bool short __b
) {
6448 vector
signed short __bc
= (vector
signed short)__b
;
6449 return vec_sel(__bc
, __a
, vec_cmpgt(__a
, __bc
));
6452 static inline __ATTRS_o_ai vector
signed short
6453 vec_max(vector
bool short __a
, vector
signed short __b
) {
6454 vector
signed short __ac
= (vector
signed short)__a
;
6455 return vec_sel(__b
, __ac
, vec_cmpgt(__ac
, __b
));
6458 static inline __ATTRS_o_ai vector
unsigned short
6459 vec_max(vector
unsigned short __a
, vector
unsigned short __b
) {
6460 return vec_sel(__b
, __a
, vec_cmpgt(__a
, __b
));
6463 static inline __ATTRS_o_ai vector
unsigned short
6464 vec_max(vector
unsigned short __a
, vector
bool short __b
) {
6465 vector
unsigned short __bc
= (vector
unsigned short)__b
;
6466 return vec_sel(__bc
, __a
, vec_cmpgt(__a
, __bc
));
6469 static inline __ATTRS_o_ai vector
unsigned short
6470 vec_max(vector
bool short __a
, vector
unsigned short __b
) {
6471 vector
unsigned short __ac
= (vector
unsigned short)__a
;
6472 return vec_sel(__b
, __ac
, vec_cmpgt(__ac
, __b
));
6475 static inline __ATTRS_o_ai vector
signed int
6476 vec_max(vector
signed int __a
, vector
signed int __b
) {
6477 return vec_sel(__b
, __a
, vec_cmpgt(__a
, __b
));
6480 static inline __ATTRS_o_ai vector
signed int
6481 vec_max(vector
signed int __a
, vector
bool int __b
) {
6482 vector
signed int __bc
= (vector
signed int)__b
;
6483 return vec_sel(__bc
, __a
, vec_cmpgt(__a
, __bc
));
6486 static inline __ATTRS_o_ai vector
signed int
6487 vec_max(vector
bool int __a
, vector
signed int __b
) {
6488 vector
signed int __ac
= (vector
signed int)__a
;
6489 return vec_sel(__b
, __ac
, vec_cmpgt(__ac
, __b
));
6492 static inline __ATTRS_o_ai vector
unsigned int
6493 vec_max(vector
unsigned int __a
, vector
unsigned int __b
) {
6494 return vec_sel(__b
, __a
, vec_cmpgt(__a
, __b
));
6497 static inline __ATTRS_o_ai vector
unsigned int
6498 vec_max(vector
unsigned int __a
, vector
bool int __b
) {
6499 vector
unsigned int __bc
= (vector
unsigned int)__b
;
6500 return vec_sel(__bc
, __a
, vec_cmpgt(__a
, __bc
));
6503 static inline __ATTRS_o_ai vector
unsigned int
6504 vec_max(vector
bool int __a
, vector
unsigned int __b
) {
6505 vector
unsigned int __ac
= (vector
unsigned int)__a
;
6506 return vec_sel(__b
, __ac
, vec_cmpgt(__ac
, __b
));
6509 static inline __ATTRS_o_ai vector
signed long long
6510 vec_max(vector
signed long long __a
, vector
signed long long __b
) {
6511 return vec_sel(__b
, __a
, vec_cmpgt(__a
, __b
));
6514 static inline __ATTRS_o_ai vector
signed long long
6515 vec_max(vector
signed long long __a
, vector
bool long long __b
) {
6516 vector
signed long long __bc
= (vector
signed long long)__b
;
6517 return vec_sel(__bc
, __a
, vec_cmpgt(__a
, __bc
));
6520 static inline __ATTRS_o_ai vector
signed long long
6521 vec_max(vector
bool long long __a
, vector
signed long long __b
) {
6522 vector
signed long long __ac
= (vector
signed long long)__a
;
6523 return vec_sel(__b
, __ac
, vec_cmpgt(__ac
, __b
));
6526 static inline __ATTRS_o_ai vector
unsigned long long
6527 vec_max(vector
unsigned long long __a
, vector
unsigned long long __b
) {
6528 return vec_sel(__b
, __a
, vec_cmpgt(__a
, __b
));
6531 static inline __ATTRS_o_ai vector
unsigned long long
6532 vec_max(vector
unsigned long long __a
, vector
bool long long __b
) {
6533 vector
unsigned long long __bc
= (vector
unsigned long long)__b
;
6534 return vec_sel(__bc
, __a
, vec_cmpgt(__a
, __bc
));
6537 static inline __ATTRS_o_ai vector
unsigned long long
6538 vec_max(vector
bool long long __a
, vector
unsigned long long __b
) {
6539 vector
unsigned long long __ac
= (vector
unsigned long long)__a
;
6540 return vec_sel(__b
, __ac
, vec_cmpgt(__ac
, __b
));
6543 static inline __ATTRS_o_ai vector
double
6544 vec_max(vector
double __a
, vector
double __b
) {
6545 return vec_sel(__b
, __a
, vec_cmpgt(__a
, __b
));
6548 /*-- vec_min ----------------------------------------------------------------*/
6550 static inline __ATTRS_o_ai vector
signed char
6551 vec_min(vector
signed char __a
, vector
signed char __b
) {
6552 return vec_sel(__a
, __b
, vec_cmpgt(__a
, __b
));
6555 static inline __ATTRS_o_ai vector
signed char
6556 vec_min(vector
signed char __a
, vector
bool char __b
) {
6557 vector
signed char __bc
= (vector
signed char)__b
;
6558 return vec_sel(__a
, __bc
, vec_cmpgt(__a
, __bc
));
6561 static inline __ATTRS_o_ai vector
signed char
6562 vec_min(vector
bool char __a
, vector
signed char __b
) {
6563 vector
signed char __ac
= (vector
signed char)__a
;
6564 return vec_sel(__ac
, __b
, vec_cmpgt(__ac
, __b
));
6567 static inline __ATTRS_o_ai vector
unsigned char
6568 vec_min(vector
unsigned char __a
, vector
unsigned char __b
) {
6569 return vec_sel(__a
, __b
, vec_cmpgt(__a
, __b
));
6572 static inline __ATTRS_o_ai vector
unsigned char
6573 vec_min(vector
unsigned char __a
, vector
bool char __b
) {
6574 vector
unsigned char __bc
= (vector
unsigned char)__b
;
6575 return vec_sel(__a
, __bc
, vec_cmpgt(__a
, __bc
));
6578 static inline __ATTRS_o_ai vector
unsigned char
6579 vec_min(vector
bool char __a
, vector
unsigned char __b
) {
6580 vector
unsigned char __ac
= (vector
unsigned char)__a
;
6581 return vec_sel(__ac
, __b
, vec_cmpgt(__ac
, __b
));
6584 static inline __ATTRS_o_ai vector
signed short
6585 vec_min(vector
signed short __a
, vector
signed short __b
) {
6586 return vec_sel(__a
, __b
, vec_cmpgt(__a
, __b
));
6589 static inline __ATTRS_o_ai vector
signed short
6590 vec_min(vector
signed short __a
, vector
bool short __b
) {
6591 vector
signed short __bc
= (vector
signed short)__b
;
6592 return vec_sel(__a
, __bc
, vec_cmpgt(__a
, __bc
));
6595 static inline __ATTRS_o_ai vector
signed short
6596 vec_min(vector
bool short __a
, vector
signed short __b
) {
6597 vector
signed short __ac
= (vector
signed short)__a
;
6598 return vec_sel(__ac
, __b
, vec_cmpgt(__ac
, __b
));
6601 static inline __ATTRS_o_ai vector
unsigned short
6602 vec_min(vector
unsigned short __a
, vector
unsigned short __b
) {
6603 return vec_sel(__a
, __b
, vec_cmpgt(__a
, __b
));
6606 static inline __ATTRS_o_ai vector
unsigned short
6607 vec_min(vector
unsigned short __a
, vector
bool short __b
) {
6608 vector
unsigned short __bc
= (vector
unsigned short)__b
;
6609 return vec_sel(__a
, __bc
, vec_cmpgt(__a
, __bc
));
6612 static inline __ATTRS_o_ai vector
unsigned short
6613 vec_min(vector
bool short __a
, vector
unsigned short __b
) {
6614 vector
unsigned short __ac
= (vector
unsigned short)__a
;
6615 return vec_sel(__ac
, __b
, vec_cmpgt(__ac
, __b
));
6618 static inline __ATTRS_o_ai vector
signed int
6619 vec_min(vector
signed int __a
, vector
signed int __b
) {
6620 return vec_sel(__a
, __b
, vec_cmpgt(__a
, __b
));
6623 static inline __ATTRS_o_ai vector
signed int
6624 vec_min(vector
signed int __a
, vector
bool int __b
) {
6625 vector
signed int __bc
= (vector
signed int)__b
;
6626 return vec_sel(__a
, __bc
, vec_cmpgt(__a
, __bc
));
6629 static inline __ATTRS_o_ai vector
signed int
6630 vec_min(vector
bool int __a
, vector
signed int __b
) {
6631 vector
signed int __ac
= (vector
signed int)__a
;
6632 return vec_sel(__ac
, __b
, vec_cmpgt(__ac
, __b
));
6635 static inline __ATTRS_o_ai vector
unsigned int
6636 vec_min(vector
unsigned int __a
, vector
unsigned int __b
) {
6637 return vec_sel(__a
, __b
, vec_cmpgt(__a
, __b
));
6640 static inline __ATTRS_o_ai vector
unsigned int
6641 vec_min(vector
unsigned int __a
, vector
bool int __b
) {
6642 vector
unsigned int __bc
= (vector
unsigned int)__b
;
6643 return vec_sel(__a
, __bc
, vec_cmpgt(__a
, __bc
));
6646 static inline __ATTRS_o_ai vector
unsigned int
6647 vec_min(vector
bool int __a
, vector
unsigned int __b
) {
6648 vector
unsigned int __ac
= (vector
unsigned int)__a
;
6649 return vec_sel(__ac
, __b
, vec_cmpgt(__ac
, __b
));
6652 static inline __ATTRS_o_ai vector
signed long long
6653 vec_min(vector
signed long long __a
, vector
signed long long __b
) {
6654 return vec_sel(__a
, __b
, vec_cmpgt(__a
, __b
));
6657 static inline __ATTRS_o_ai vector
signed long long
6658 vec_min(vector
signed long long __a
, vector
bool long long __b
) {
6659 vector
signed long long __bc
= (vector
signed long long)__b
;
6660 return vec_sel(__a
, __bc
, vec_cmpgt(__a
, __bc
));
6663 static inline __ATTRS_o_ai vector
signed long long
6664 vec_min(vector
bool long long __a
, vector
signed long long __b
) {
6665 vector
signed long long __ac
= (vector
signed long long)__a
;
6666 return vec_sel(__ac
, __b
, vec_cmpgt(__ac
, __b
));
6669 static inline __ATTRS_o_ai vector
unsigned long long
6670 vec_min(vector
unsigned long long __a
, vector
unsigned long long __b
) {
6671 return vec_sel(__a
, __b
, vec_cmpgt(__a
, __b
));
6674 static inline __ATTRS_o_ai vector
unsigned long long
6675 vec_min(vector
unsigned long long __a
, vector
bool long long __b
) {
6676 vector
unsigned long long __bc
= (vector
unsigned long long)__b
;
6677 return vec_sel(__a
, __bc
, vec_cmpgt(__a
, __bc
));
6680 static inline __ATTRS_o_ai vector
unsigned long long
6681 vec_min(vector
bool long long __a
, vector
unsigned long long __b
) {
6682 vector
unsigned long long __ac
= (vector
unsigned long long)__a
;
6683 return vec_sel(__ac
, __b
, vec_cmpgt(__ac
, __b
));
6686 static inline __ATTRS_o_ai vector
double
6687 vec_min(vector
double __a
, vector
double __b
) {
6688 return vec_sel(__a
, __b
, vec_cmpgt(__a
, __b
));
6691 /*-- vec_add_u128 -----------------------------------------------------------*/
6693 static inline __ATTRS_ai vector
unsigned char
6694 vec_add_u128(vector
unsigned char __a
, vector
unsigned char __b
) {
6695 return __builtin_s390_vaq(__a
, __b
);
6698 /*-- vec_addc ---------------------------------------------------------------*/
6700 static inline __ATTRS_o_ai vector
unsigned char
6701 vec_addc(vector
unsigned char __a
, vector
unsigned char __b
) {
6702 return __builtin_s390_vaccb(__a
, __b
);
6705 static inline __ATTRS_o_ai vector
unsigned short
6706 vec_addc(vector
unsigned short __a
, vector
unsigned short __b
) {
6707 return __builtin_s390_vacch(__a
, __b
);
6710 static inline __ATTRS_o_ai vector
unsigned int
6711 vec_addc(vector
unsigned int __a
, vector
unsigned int __b
) {
6712 return __builtin_s390_vaccf(__a
, __b
);
6715 static inline __ATTRS_o_ai vector
unsigned long long
6716 vec_addc(vector
unsigned long long __a
, vector
unsigned long long __b
) {
6717 return __builtin_s390_vaccg(__a
, __b
);
6720 /*-- vec_addc_u128 ----------------------------------------------------------*/
6722 static inline __ATTRS_ai vector
unsigned char
6723 vec_addc_u128(vector
unsigned char __a
, vector
unsigned char __b
) {
6724 return __builtin_s390_vaccq(__a
, __b
);
6727 /*-- vec_adde_u128 ----------------------------------------------------------*/
6729 static inline __ATTRS_ai vector
unsigned char
6730 vec_adde_u128(vector
unsigned char __a
, vector
unsigned char __b
,
6731 vector
unsigned char __c
) {
6732 return __builtin_s390_vacq(__a
, __b
, __c
);
6735 /*-- vec_addec_u128 ---------------------------------------------------------*/
6737 static inline __ATTRS_ai vector
unsigned char
6738 vec_addec_u128(vector
unsigned char __a
, vector
unsigned char __b
,
6739 vector
unsigned char __c
) {
6740 return __builtin_s390_vacccq(__a
, __b
, __c
);
6743 /*-- vec_avg ----------------------------------------------------------------*/
6745 static inline __ATTRS_o_ai vector
signed char
6746 vec_avg(vector
signed char __a
, vector
signed char __b
) {
6747 return __builtin_s390_vavgb(__a
, __b
);
6750 static inline __ATTRS_o_ai vector
signed short
6751 vec_avg(vector
signed short __a
, vector
signed short __b
) {
6752 return __builtin_s390_vavgh(__a
, __b
);
6755 static inline __ATTRS_o_ai vector
signed int
6756 vec_avg(vector
signed int __a
, vector
signed int __b
) {
6757 return __builtin_s390_vavgf(__a
, __b
);
6760 static inline __ATTRS_o_ai vector
signed long long
6761 vec_avg(vector
signed long long __a
, vector
signed long long __b
) {
6762 return __builtin_s390_vavgg(__a
, __b
);
6765 static inline __ATTRS_o_ai vector
unsigned char
6766 vec_avg(vector
unsigned char __a
, vector
unsigned char __b
) {
6767 return __builtin_s390_vavglb(__a
, __b
);
6770 static inline __ATTRS_o_ai vector
unsigned short
6771 vec_avg(vector
unsigned short __a
, vector
unsigned short __b
) {
6772 return __builtin_s390_vavglh(__a
, __b
);
6775 static inline __ATTRS_o_ai vector
unsigned int
6776 vec_avg(vector
unsigned int __a
, vector
unsigned int __b
) {
6777 return __builtin_s390_vavglf(__a
, __b
);
6780 static inline __ATTRS_o_ai vector
unsigned long long
6781 vec_avg(vector
unsigned long long __a
, vector
unsigned long long __b
) {
6782 return __builtin_s390_vavglg(__a
, __b
);
6785 /*-- vec_checksum -----------------------------------------------------------*/
6787 static inline __ATTRS_ai vector
unsigned int
6788 vec_checksum(vector
unsigned int __a
, vector
unsigned int __b
) {
6789 return __builtin_s390_vcksm(__a
, __b
);
6792 /*-- vec_gfmsum -------------------------------------------------------------*/
6794 static inline __ATTRS_o_ai vector
unsigned short
6795 vec_gfmsum(vector
unsigned char __a
, vector
unsigned char __b
) {
6796 return __builtin_s390_vgfmb(__a
, __b
);
6799 static inline __ATTRS_o_ai vector
unsigned int
6800 vec_gfmsum(vector
unsigned short __a
, vector
unsigned short __b
) {
6801 return __builtin_s390_vgfmh(__a
, __b
);
6804 static inline __ATTRS_o_ai vector
unsigned long long
6805 vec_gfmsum(vector
unsigned int __a
, vector
unsigned int __b
) {
6806 return __builtin_s390_vgfmf(__a
, __b
);
6809 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
6811 static inline __ATTRS_o_ai vector
unsigned char
6812 vec_gfmsum_128(vector
unsigned long long __a
, vector
unsigned long long __b
) {
6813 return __builtin_s390_vgfmg(__a
, __b
);
6816 /*-- vec_gfmsum_accum -------------------------------------------------------*/
6818 static inline __ATTRS_o_ai vector
unsigned short
6819 vec_gfmsum_accum(vector
unsigned char __a
, vector
unsigned char __b
,
6820 vector
unsigned short __c
) {
6821 return __builtin_s390_vgfmab(__a
, __b
, __c
);
6824 static inline __ATTRS_o_ai vector
unsigned int
6825 vec_gfmsum_accum(vector
unsigned short __a
, vector
unsigned short __b
,
6826 vector
unsigned int __c
) {
6827 return __builtin_s390_vgfmah(__a
, __b
, __c
);
6830 static inline __ATTRS_o_ai vector
unsigned long long
6831 vec_gfmsum_accum(vector
unsigned int __a
, vector
unsigned int __b
,
6832 vector
unsigned long long __c
) {
6833 return __builtin_s390_vgfmaf(__a
, __b
, __c
);
6836 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
6838 static inline __ATTRS_o_ai vector
unsigned char
6839 vec_gfmsum_accum_128(vector
unsigned long long __a
,
6840 vector
unsigned long long __b
,
6841 vector
unsigned char __c
) {
6842 return __builtin_s390_vgfmag(__a
, __b
, __c
);
6845 /*-- vec_mladd --------------------------------------------------------------*/
6847 static inline __ATTRS_o_ai vector
signed char
6848 vec_mladd(vector
signed char __a
, vector
signed char __b
,
6849 vector
signed char __c
) {
6850 return __a
* __b
+ __c
;
6853 static inline __ATTRS_o_ai vector
signed char
6854 vec_mladd(vector
unsigned char __a
, vector
signed char __b
,
6855 vector
signed char __c
) {
6856 return (vector
signed char)__a
* __b
+ __c
;
6859 static inline __ATTRS_o_ai vector
signed char
6860 vec_mladd(vector
signed char __a
, vector
unsigned char __b
,
6861 vector
unsigned char __c
) {
6862 return __a
* (vector
signed char)__b
+ (vector
signed char)__c
;
6865 static inline __ATTRS_o_ai vector
unsigned char
6866 vec_mladd(vector
unsigned char __a
, vector
unsigned char __b
,
6867 vector
unsigned char __c
) {
6868 return __a
* __b
+ __c
;
6871 static inline __ATTRS_o_ai vector
signed short
6872 vec_mladd(vector
signed short __a
, vector
signed short __b
,
6873 vector
signed short __c
) {
6874 return __a
* __b
+ __c
;
6877 static inline __ATTRS_o_ai vector
signed short
6878 vec_mladd(vector
unsigned short __a
, vector
signed short __b
,
6879 vector
signed short __c
) {
6880 return (vector
signed short)__a
* __b
+ __c
;
6883 static inline __ATTRS_o_ai vector
signed short
6884 vec_mladd(vector
signed short __a
, vector
unsigned short __b
,
6885 vector
unsigned short __c
) {
6886 return __a
* (vector
signed short)__b
+ (vector
signed short)__c
;
6889 static inline __ATTRS_o_ai vector
unsigned short
6890 vec_mladd(vector
unsigned short __a
, vector
unsigned short __b
,
6891 vector
unsigned short __c
) {
6892 return __a
* __b
+ __c
;
6895 static inline __ATTRS_o_ai vector
signed int
6896 vec_mladd(vector
signed int __a
, vector
signed int __b
,
6897 vector
signed int __c
) {
6898 return __a
* __b
+ __c
;
6901 static inline __ATTRS_o_ai vector
signed int
6902 vec_mladd(vector
unsigned int __a
, vector
signed int __b
,
6903 vector
signed int __c
) {
6904 return (vector
signed int)__a
* __b
+ __c
;
6907 static inline __ATTRS_o_ai vector
signed int
6908 vec_mladd(vector
signed int __a
, vector
unsigned int __b
,
6909 vector
unsigned int __c
) {
6910 return __a
* (vector
signed int)__b
+ (vector
signed int)__c
;
6913 static inline __ATTRS_o_ai vector
unsigned int
6914 vec_mladd(vector
unsigned int __a
, vector
unsigned int __b
,
6915 vector
unsigned int __c
) {
6916 return __a
* __b
+ __c
;
6919 /*-- vec_mhadd --------------------------------------------------------------*/
6921 static inline __ATTRS_o_ai vector
signed char
6922 vec_mhadd(vector
signed char __a
, vector
signed char __b
,
6923 vector
signed char __c
) {
6924 return __builtin_s390_vmahb(__a
, __b
, __c
);
6927 static inline __ATTRS_o_ai vector
unsigned char
6928 vec_mhadd(vector
unsigned char __a
, vector
unsigned char __b
,
6929 vector
unsigned char __c
) {
6930 return __builtin_s390_vmalhb(__a
, __b
, __c
);
6933 static inline __ATTRS_o_ai vector
signed short
6934 vec_mhadd(vector
signed short __a
, vector
signed short __b
,
6935 vector
signed short __c
) {
6936 return __builtin_s390_vmahh(__a
, __b
, __c
);
6939 static inline __ATTRS_o_ai vector
unsigned short
6940 vec_mhadd(vector
unsigned short __a
, vector
unsigned short __b
,
6941 vector
unsigned short __c
) {
6942 return __builtin_s390_vmalhh(__a
, __b
, __c
);
6945 static inline __ATTRS_o_ai vector
signed int
6946 vec_mhadd(vector
signed int __a
, vector
signed int __b
,
6947 vector
signed int __c
) {
6948 return __builtin_s390_vmahf(__a
, __b
, __c
);
6951 static inline __ATTRS_o_ai vector
unsigned int
6952 vec_mhadd(vector
unsigned int __a
, vector
unsigned int __b
,
6953 vector
unsigned int __c
) {
6954 return __builtin_s390_vmalhf(__a
, __b
, __c
);
6957 /*-- vec_meadd --------------------------------------------------------------*/
6959 static inline __ATTRS_o_ai vector
signed short
6960 vec_meadd(vector
signed char __a
, vector
signed char __b
,
6961 vector
signed short __c
) {
6962 return __builtin_s390_vmaeb(__a
, __b
, __c
);
6965 static inline __ATTRS_o_ai vector
unsigned short
6966 vec_meadd(vector
unsigned char __a
, vector
unsigned char __b
,
6967 vector
unsigned short __c
) {
6968 return __builtin_s390_vmaleb(__a
, __b
, __c
);
6971 static inline __ATTRS_o_ai vector
signed int
6972 vec_meadd(vector
signed short __a
, vector
signed short __b
,
6973 vector
signed int __c
) {
6974 return __builtin_s390_vmaeh(__a
, __b
, __c
);
6977 static inline __ATTRS_o_ai vector
unsigned int
6978 vec_meadd(vector
unsigned short __a
, vector
unsigned short __b
,
6979 vector
unsigned int __c
) {
6980 return __builtin_s390_vmaleh(__a
, __b
, __c
);
6983 static inline __ATTRS_o_ai vector
signed long long
6984 vec_meadd(vector
signed int __a
, vector
signed int __b
,
6985 vector
signed long long __c
) {
6986 return __builtin_s390_vmaef(__a
, __b
, __c
);
6989 static inline __ATTRS_o_ai vector
unsigned long long
6990 vec_meadd(vector
unsigned int __a
, vector
unsigned int __b
,
6991 vector
unsigned long long __c
) {
6992 return __builtin_s390_vmalef(__a
, __b
, __c
);
6995 /*-- vec_moadd --------------------------------------------------------------*/
6997 static inline __ATTRS_o_ai vector
signed short
6998 vec_moadd(vector
signed char __a
, vector
signed char __b
,
6999 vector
signed short __c
) {
7000 return __builtin_s390_vmaob(__a
, __b
, __c
);
7003 static inline __ATTRS_o_ai vector
unsigned short
7004 vec_moadd(vector
unsigned char __a
, vector
unsigned char __b
,
7005 vector
unsigned short __c
) {
7006 return __builtin_s390_vmalob(__a
, __b
, __c
);
7009 static inline __ATTRS_o_ai vector
signed int
7010 vec_moadd(vector
signed short __a
, vector
signed short __b
,
7011 vector
signed int __c
) {
7012 return __builtin_s390_vmaoh(__a
, __b
, __c
);
7015 static inline __ATTRS_o_ai vector
unsigned int
7016 vec_moadd(vector
unsigned short __a
, vector
unsigned short __b
,
7017 vector
unsigned int __c
) {
7018 return __builtin_s390_vmaloh(__a
, __b
, __c
);
7021 static inline __ATTRS_o_ai vector
signed long long
7022 vec_moadd(vector
signed int __a
, vector
signed int __b
,
7023 vector
signed long long __c
) {
7024 return __builtin_s390_vmaof(__a
, __b
, __c
);
7027 static inline __ATTRS_o_ai vector
unsigned long long
7028 vec_moadd(vector
unsigned int __a
, vector
unsigned int __b
,
7029 vector
unsigned long long __c
) {
7030 return __builtin_s390_vmalof(__a
, __b
, __c
);
7033 /*-- vec_mulh ---------------------------------------------------------------*/
7035 static inline __ATTRS_o_ai vector
signed char
7036 vec_mulh(vector
signed char __a
, vector
signed char __b
) {
7037 return __builtin_s390_vmhb(__a
, __b
);
7040 static inline __ATTRS_o_ai vector
unsigned char
7041 vec_mulh(vector
unsigned char __a
, vector
unsigned char __b
) {
7042 return __builtin_s390_vmlhb(__a
, __b
);
7045 static inline __ATTRS_o_ai vector
signed short
7046 vec_mulh(vector
signed short __a
, vector
signed short __b
) {
7047 return __builtin_s390_vmhh(__a
, __b
);
7050 static inline __ATTRS_o_ai vector
unsigned short
7051 vec_mulh(vector
unsigned short __a
, vector
unsigned short __b
) {
7052 return __builtin_s390_vmlhh(__a
, __b
);
7055 static inline __ATTRS_o_ai vector
signed int
7056 vec_mulh(vector
signed int __a
, vector
signed int __b
) {
7057 return __builtin_s390_vmhf(__a
, __b
);
7060 static inline __ATTRS_o_ai vector
unsigned int
7061 vec_mulh(vector
unsigned int __a
, vector
unsigned int __b
) {
7062 return __builtin_s390_vmlhf(__a
, __b
);
7065 /*-- vec_mule ---------------------------------------------------------------*/
7067 static inline __ATTRS_o_ai vector
signed short
7068 vec_mule(vector
signed char __a
, vector
signed char __b
) {
7069 return __builtin_s390_vmeb(__a
, __b
);
7072 static inline __ATTRS_o_ai vector
unsigned short
7073 vec_mule(vector
unsigned char __a
, vector
unsigned char __b
) {
7074 return __builtin_s390_vmleb(__a
, __b
);
7077 static inline __ATTRS_o_ai vector
signed int
7078 vec_mule(vector
signed short __a
, vector
signed short __b
) {
7079 return __builtin_s390_vmeh(__a
, __b
);
7082 static inline __ATTRS_o_ai vector
unsigned int
7083 vec_mule(vector
unsigned short __a
, vector
unsigned short __b
) {
7084 return __builtin_s390_vmleh(__a
, __b
);
7087 static inline __ATTRS_o_ai vector
signed long long
7088 vec_mule(vector
signed int __a
, vector
signed int __b
) {
7089 return __builtin_s390_vmef(__a
, __b
);
7092 static inline __ATTRS_o_ai vector
unsigned long long
7093 vec_mule(vector
unsigned int __a
, vector
unsigned int __b
) {
7094 return __builtin_s390_vmlef(__a
, __b
);
7097 /*-- vec_mulo ---------------------------------------------------------------*/
7099 static inline __ATTRS_o_ai vector
signed short
7100 vec_mulo(vector
signed char __a
, vector
signed char __b
) {
7101 return __builtin_s390_vmob(__a
, __b
);
7104 static inline __ATTRS_o_ai vector
unsigned short
7105 vec_mulo(vector
unsigned char __a
, vector
unsigned char __b
) {
7106 return __builtin_s390_vmlob(__a
, __b
);
7109 static inline __ATTRS_o_ai vector
signed int
7110 vec_mulo(vector
signed short __a
, vector
signed short __b
) {
7111 return __builtin_s390_vmoh(__a
, __b
);
7114 static inline __ATTRS_o_ai vector
unsigned int
7115 vec_mulo(vector
unsigned short __a
, vector
unsigned short __b
) {
7116 return __builtin_s390_vmloh(__a
, __b
);
7119 static inline __ATTRS_o_ai vector
signed long long
7120 vec_mulo(vector
signed int __a
, vector
signed int __b
) {
7121 return __builtin_s390_vmof(__a
, __b
);
7124 static inline __ATTRS_o_ai vector
unsigned long long
7125 vec_mulo(vector
unsigned int __a
, vector
unsigned int __b
) {
7126 return __builtin_s390_vmlof(__a
, __b
);
7129 /*-- vec_sub_u128 -----------------------------------------------------------*/
7131 static inline __ATTRS_ai vector
unsigned char
7132 vec_sub_u128(vector
unsigned char __a
, vector
unsigned char __b
) {
7133 return __builtin_s390_vsq(__a
, __b
);
7136 /*-- vec_subc ---------------------------------------------------------------*/
7138 static inline __ATTRS_o_ai vector
unsigned char
7139 vec_subc(vector
unsigned char __a
, vector
unsigned char __b
) {
7140 return __builtin_s390_vscbib(__a
, __b
);
7143 static inline __ATTRS_o_ai vector
unsigned short
7144 vec_subc(vector
unsigned short __a
, vector
unsigned short __b
) {
7145 return __builtin_s390_vscbih(__a
, __b
);
7148 static inline __ATTRS_o_ai vector
unsigned int
7149 vec_subc(vector
unsigned int __a
, vector
unsigned int __b
) {
7150 return __builtin_s390_vscbif(__a
, __b
);
7153 static inline __ATTRS_o_ai vector
unsigned long long
7154 vec_subc(vector
unsigned long long __a
, vector
unsigned long long __b
) {
7155 return __builtin_s390_vscbig(__a
, __b
);
7158 /*-- vec_subc_u128 ----------------------------------------------------------*/
7160 static inline __ATTRS_ai vector
unsigned char
7161 vec_subc_u128(vector
unsigned char __a
, vector
unsigned char __b
) {
7162 return __builtin_s390_vscbiq(__a
, __b
);
7165 /*-- vec_sube_u128 ----------------------------------------------------------*/
7167 static inline __ATTRS_ai vector
unsigned char
7168 vec_sube_u128(vector
unsigned char __a
, vector
unsigned char __b
,
7169 vector
unsigned char __c
) {
7170 return __builtin_s390_vsbiq(__a
, __b
, __c
);
7173 /*-- vec_subec_u128 ---------------------------------------------------------*/
7175 static inline __ATTRS_ai vector
unsigned char
7176 vec_subec_u128(vector
unsigned char __a
, vector
unsigned char __b
,
7177 vector
unsigned char __c
) {
7178 return __builtin_s390_vsbcbiq(__a
, __b
, __c
);
7181 /*-- vec_sum2 ---------------------------------------------------------------*/
7183 static inline __ATTRS_o_ai vector
unsigned long long
7184 vec_sum2(vector
unsigned short __a
, vector
unsigned short __b
) {
7185 return __builtin_s390_vsumgh(__a
, __b
);
7188 static inline __ATTRS_o_ai vector
unsigned long long
7189 vec_sum2(vector
unsigned int __a
, vector
unsigned int __b
) {
7190 return __builtin_s390_vsumgf(__a
, __b
);
7193 /*-- vec_sum_u128 -----------------------------------------------------------*/
7195 static inline __ATTRS_o_ai vector
unsigned char
7196 vec_sum_u128(vector
unsigned int __a
, vector
unsigned int __b
) {
7197 return __builtin_s390_vsumqf(__a
, __b
);
7200 static inline __ATTRS_o_ai vector
unsigned char
7201 vec_sum_u128(vector
unsigned long long __a
, vector
unsigned long long __b
) {
7202 return __builtin_s390_vsumqg(__a
, __b
);
7205 /*-- vec_sum4 ---------------------------------------------------------------*/
7207 static inline __ATTRS_o_ai vector
unsigned int
7208 vec_sum4(vector
unsigned char __a
, vector
unsigned char __b
) {
7209 return __builtin_s390_vsumb(__a
, __b
);
7212 static inline __ATTRS_o_ai vector
unsigned int
7213 vec_sum4(vector
unsigned short __a
, vector
unsigned short __b
) {
7214 return __builtin_s390_vsumh(__a
, __b
);
7217 /*-- vec_test_mask ----------------------------------------------------------*/
7219 static inline __ATTRS_o_ai
int
7220 vec_test_mask(vector
signed char __a
, vector
unsigned char __b
) {
7221 return __builtin_s390_vtm((vector
unsigned char)__a
,
7222 (vector
unsigned char)__b
);
7225 static inline __ATTRS_o_ai
int
7226 vec_test_mask(vector
unsigned char __a
, vector
unsigned char __b
) {
7227 return __builtin_s390_vtm(__a
, __b
);
7230 static inline __ATTRS_o_ai
int
7231 vec_test_mask(vector
signed short __a
, vector
unsigned short __b
) {
7232 return __builtin_s390_vtm((vector
unsigned char)__a
,
7233 (vector
unsigned char)__b
);
7236 static inline __ATTRS_o_ai
int
7237 vec_test_mask(vector
unsigned short __a
, vector
unsigned short __b
) {
7238 return __builtin_s390_vtm((vector
unsigned char)__a
,
7239 (vector
unsigned char)__b
);
7242 static inline __ATTRS_o_ai
int
7243 vec_test_mask(vector
signed int __a
, vector
unsigned int __b
) {
7244 return __builtin_s390_vtm((vector
unsigned char)__a
,
7245 (vector
unsigned char)__b
);
7248 static inline __ATTRS_o_ai
int
7249 vec_test_mask(vector
unsigned int __a
, vector
unsigned int __b
) {
7250 return __builtin_s390_vtm((vector
unsigned char)__a
,
7251 (vector
unsigned char)__b
);
7254 static inline __ATTRS_o_ai
int
7255 vec_test_mask(vector
signed long long __a
, vector
unsigned long long __b
) {
7256 return __builtin_s390_vtm((vector
unsigned char)__a
,
7257 (vector
unsigned char)__b
);
7260 static inline __ATTRS_o_ai
int
7261 vec_test_mask(vector
unsigned long long __a
, vector
unsigned long long __b
) {
7262 return __builtin_s390_vtm((vector
unsigned char)__a
,
7263 (vector
unsigned char)__b
);
7266 static inline __ATTRS_o_ai
int
7267 vec_test_mask(vector
double __a
, vector
unsigned long long __b
) {
7268 return __builtin_s390_vtm((vector
unsigned char)__a
,
7269 (vector
unsigned char)__b
);
7272 /*-- vec_madd ---------------------------------------------------------------*/
7274 static inline __ATTRS_ai vector
double
7275 vec_madd(vector
double __a
, vector
double __b
, vector
double __c
) {
7276 return __builtin_s390_vfmadb(__a
, __b
, __c
);
7279 /*-- vec_msub ---------------------------------------------------------------*/
7281 static inline __ATTRS_ai vector
double
7282 vec_msub(vector
double __a
, vector
double __b
, vector
double __c
) {
7283 return __builtin_s390_vfmsdb(__a
, __b
, __c
);
7286 /*-- vec_sqrt ---------------------------------------------------------------*/
7288 static inline __ATTRS_ai vector
double
7289 vec_sqrt(vector
double __a
) {
7290 return __builtin_s390_vfsqdb(__a
);
7293 /*-- vec_ld2f ---------------------------------------------------------------*/
7295 static inline __ATTRS_ai vector
double
7296 vec_ld2f(const float *__ptr
) {
7297 typedef float __v2f32
__attribute__((__vector_size__(8)));
7298 return __builtin_convertvector(*(const __v2f32
*)__ptr
, vector
double);
7301 /*-- vec_st2f ---------------------------------------------------------------*/
7303 static inline __ATTRS_ai
void
7304 vec_st2f(vector
double __a
, float *__ptr
) {
7305 typedef float __v2f32
__attribute__((__vector_size__(8)));
7306 *(__v2f32
*)__ptr
= __builtin_convertvector(__a
, __v2f32
);
7309 /*-- vec_ctd ----------------------------------------------------------------*/
7311 static inline __ATTRS_o_ai vector
double
7312 vec_ctd(vector
signed long long __a
, int __b
)
7313 __constant_range(__b
, 0, 31) {
7314 vector
double __conv
= __builtin_convertvector(__a
, vector
double);
7315 __conv
*= (vector
double)(vector
unsigned long long)((0x3ffULL
- __b
) << 52);
7319 static inline __ATTRS_o_ai vector
double
7320 vec_ctd(vector
unsigned long long __a
, int __b
)
7321 __constant_range(__b
, 0, 31) {
7322 vector
double __conv
= __builtin_convertvector(__a
, vector
double);
7323 __conv
*= (vector
double)(vector
unsigned long long)((0x3ffULL
- __b
) << 52);
7327 /*-- vec_ctsl ---------------------------------------------------------------*/
7329 static inline __ATTRS_o_ai vector
signed long long
7330 vec_ctsl(vector
double __a
, int __b
)
7331 __constant_range(__b
, 0, 31) {
7332 __a
*= (vector
double)(vector
unsigned long long)((0x3ffULL
+ __b
) << 52);
7333 return __builtin_convertvector(__a
, vector
signed long long);
7336 /*-- vec_ctul ---------------------------------------------------------------*/
7338 static inline __ATTRS_o_ai vector
unsigned long long
7339 vec_ctul(vector
double __a
, int __b
)
7340 __constant_range(__b
, 0, 31) {
7341 __a
*= (vector
double)(vector
unsigned long long)((0x3ffULL
+ __b
) << 52);
7342 return __builtin_convertvector(__a
, vector
unsigned long long);
7345 /*-- vec_roundp -------------------------------------------------------------*/
7347 static inline __ATTRS_ai vector
double
7348 vec_roundp(vector
double __a
) {
7349 return __builtin_s390_vfidb(__a
, 4, 6);
7352 /*-- vec_ceil ---------------------------------------------------------------*/
7354 static inline __ATTRS_ai vector
double
7355 vec_ceil(vector
double __a
) {
7356 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
7357 return __builtin_s390_vfidb(__a
, 4, 6);
7360 /*-- vec_roundm -------------------------------------------------------------*/
7362 static inline __ATTRS_ai vector
double
7363 vec_roundm(vector
double __a
) {
7364 return __builtin_s390_vfidb(__a
, 4, 7);
7367 /*-- vec_floor --------------------------------------------------------------*/
7369 static inline __ATTRS_ai vector
double
7370 vec_floor(vector
double __a
) {
7371 // On this platform, vec_floor never triggers the IEEE-inexact exception.
7372 return __builtin_s390_vfidb(__a
, 4, 7);
7375 /*-- vec_roundz -------------------------------------------------------------*/
7377 static inline __ATTRS_ai vector
double
7378 vec_roundz(vector
double __a
) {
7379 return __builtin_s390_vfidb(__a
, 4, 5);
7382 /*-- vec_trunc --------------------------------------------------------------*/
7384 static inline __ATTRS_ai vector
double
7385 vec_trunc(vector
double __a
) {
7386 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
7387 return __builtin_s390_vfidb(__a
, 4, 5);
7390 /*-- vec_roundc -------------------------------------------------------------*/
7392 static inline __ATTRS_ai vector
double
7393 vec_roundc(vector
double __a
) {
7394 return __builtin_s390_vfidb(__a
, 4, 0);
7397 /*-- vec_round --------------------------------------------------------------*/
7399 static inline __ATTRS_ai vector
double
7400 vec_round(vector
double __a
) {
7401 return __builtin_s390_vfidb(__a
, 4, 4);
7404 /*-- vec_fp_test_data_class -------------------------------------------------*/
7406 #define vec_fp_test_data_class(X, Y, Z) \
7407 ((vector bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
7409 /*-- vec_cp_until_zero ------------------------------------------------------*/
7411 static inline __ATTRS_o_ai vector
signed char
7412 vec_cp_until_zero(vector
signed char __a
) {
7413 return (vector
signed char)__builtin_s390_vistrb((vector
unsigned char)__a
);
7416 static inline __ATTRS_o_ai vector
bool char
7417 vec_cp_until_zero(vector
bool char __a
) {
7418 return (vector
bool char)__builtin_s390_vistrb((vector
unsigned char)__a
);
7421 static inline __ATTRS_o_ai vector
unsigned char
7422 vec_cp_until_zero(vector
unsigned char __a
) {
7423 return __builtin_s390_vistrb(__a
);
7426 static inline __ATTRS_o_ai vector
signed short
7427 vec_cp_until_zero(vector
signed short __a
) {
7428 return (vector
signed short)__builtin_s390_vistrh((vector
unsigned short)__a
);
7431 static inline __ATTRS_o_ai vector
bool short
7432 vec_cp_until_zero(vector
bool short __a
) {
7433 return (vector
bool short)__builtin_s390_vistrh((vector
unsigned short)__a
);
7436 static inline __ATTRS_o_ai vector
unsigned short
7437 vec_cp_until_zero(vector
unsigned short __a
) {
7438 return __builtin_s390_vistrh(__a
);
7441 static inline __ATTRS_o_ai vector
signed int
7442 vec_cp_until_zero(vector
signed int __a
) {
7443 return (vector
signed int)__builtin_s390_vistrf((vector
unsigned int)__a
);
7446 static inline __ATTRS_o_ai vector
bool int
7447 vec_cp_until_zero(vector
bool int __a
) {
7448 return (vector
bool int)__builtin_s390_vistrf((vector
unsigned int)__a
);
7451 static inline __ATTRS_o_ai vector
unsigned int
7452 vec_cp_until_zero(vector
unsigned int __a
) {
7453 return __builtin_s390_vistrf(__a
);
7456 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
7458 static inline __ATTRS_o_ai vector
signed char
7459 vec_cp_until_zero_cc(vector
signed char __a
, int *__cc
) {
7460 return (vector
signed char)
7461 __builtin_s390_vistrbs((vector
unsigned char)__a
, __cc
);
7464 static inline __ATTRS_o_ai vector
bool char
7465 vec_cp_until_zero_cc(vector
bool char __a
, int *__cc
) {
7466 return (vector
bool char)
7467 __builtin_s390_vistrbs((vector
unsigned char)__a
, __cc
);
7470 static inline __ATTRS_o_ai vector
unsigned char
7471 vec_cp_until_zero_cc(vector
unsigned char __a
, int *__cc
) {
7472 return __builtin_s390_vistrbs(__a
, __cc
);
7475 static inline __ATTRS_o_ai vector
signed short
7476 vec_cp_until_zero_cc(vector
signed short __a
, int *__cc
) {
7477 return (vector
signed short)
7478 __builtin_s390_vistrhs((vector
unsigned short)__a
, __cc
);
7481 static inline __ATTRS_o_ai vector
bool short
7482 vec_cp_until_zero_cc(vector
bool short __a
, int *__cc
) {
7483 return (vector
bool short)
7484 __builtin_s390_vistrhs((vector
unsigned short)__a
, __cc
);
7487 static inline __ATTRS_o_ai vector
unsigned short
7488 vec_cp_until_zero_cc(vector
unsigned short __a
, int *__cc
) {
7489 return __builtin_s390_vistrhs(__a
, __cc
);
7492 static inline __ATTRS_o_ai vector
signed int
7493 vec_cp_until_zero_cc(vector
signed int __a
, int *__cc
) {
7494 return (vector
signed int)
7495 __builtin_s390_vistrfs((vector
unsigned int)__a
, __cc
);
7498 static inline __ATTRS_o_ai vector
bool int
7499 vec_cp_until_zero_cc(vector
bool int __a
, int *__cc
) {
7500 return (vector
bool int)__builtin_s390_vistrfs((vector
unsigned int)__a
,
7504 static inline __ATTRS_o_ai vector
unsigned int
7505 vec_cp_until_zero_cc(vector
unsigned int __a
, int *__cc
) {
7506 return __builtin_s390_vistrfs(__a
, __cc
);
7509 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
7511 static inline __ATTRS_o_ai vector
signed char
7512 vec_cmpeq_idx(vector
signed char __a
, vector
signed char __b
) {
7513 return (vector
signed char)
7514 __builtin_s390_vfeeb((vector
unsigned char)__a
,
7515 (vector
unsigned char)__b
);
7518 static inline __ATTRS_o_ai vector
unsigned char
7519 vec_cmpeq_idx(vector
bool char __a
, vector
bool char __b
) {
7520 return __builtin_s390_vfeeb((vector
unsigned char)__a
,
7521 (vector
unsigned char)__b
);
7524 static inline __ATTRS_o_ai vector
unsigned char
7525 vec_cmpeq_idx(vector
unsigned char __a
, vector
unsigned char __b
) {
7526 return __builtin_s390_vfeeb(__a
, __b
);
7529 static inline __ATTRS_o_ai vector
signed short
7530 vec_cmpeq_idx(vector
signed short __a
, vector
signed short __b
) {
7531 return (vector
signed short)
7532 __builtin_s390_vfeeh((vector
unsigned short)__a
,
7533 (vector
unsigned short)__b
);
7536 static inline __ATTRS_o_ai vector
unsigned short
7537 vec_cmpeq_idx(vector
bool short __a
, vector
bool short __b
) {
7538 return __builtin_s390_vfeeh((vector
unsigned short)__a
,
7539 (vector
unsigned short)__b
);
7542 static inline __ATTRS_o_ai vector
unsigned short
7543 vec_cmpeq_idx(vector
unsigned short __a
, vector
unsigned short __b
) {
7544 return __builtin_s390_vfeeh(__a
, __b
);
7547 static inline __ATTRS_o_ai vector
signed int
7548 vec_cmpeq_idx(vector
signed int __a
, vector
signed int __b
) {
7549 return (vector
signed int)
7550 __builtin_s390_vfeef((vector
unsigned int)__a
,
7551 (vector
unsigned int)__b
);
7554 static inline __ATTRS_o_ai vector
unsigned int
7555 vec_cmpeq_idx(vector
bool int __a
, vector
bool int __b
) {
7556 return __builtin_s390_vfeef((vector
unsigned int)__a
,
7557 (vector
unsigned int)__b
);
7560 static inline __ATTRS_o_ai vector
unsigned int
7561 vec_cmpeq_idx(vector
unsigned int __a
, vector
unsigned int __b
) {
7562 return __builtin_s390_vfeef(__a
, __b
);
7565 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
7567 static inline __ATTRS_o_ai vector
signed char
7568 vec_cmpeq_idx_cc(vector
signed char __a
, vector
signed char __b
, int *__cc
) {
7569 return (vector
signed char)
7570 __builtin_s390_vfeebs((vector
unsigned char)__a
,
7571 (vector
unsigned char)__b
, __cc
);
7574 static inline __ATTRS_o_ai vector
unsigned char
7575 vec_cmpeq_idx_cc(vector
bool char __a
, vector
bool char __b
, int *__cc
) {
7576 return __builtin_s390_vfeebs((vector
unsigned char)__a
,
7577 (vector
unsigned char)__b
, __cc
);
7580 static inline __ATTRS_o_ai vector
unsigned char
7581 vec_cmpeq_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
7583 return __builtin_s390_vfeebs(__a
, __b
, __cc
);
7586 static inline __ATTRS_o_ai vector
signed short
7587 vec_cmpeq_idx_cc(vector
signed short __a
, vector
signed short __b
, int *__cc
) {
7588 return (vector
signed short)
7589 __builtin_s390_vfeehs((vector
unsigned short)__a
,
7590 (vector
unsigned short)__b
, __cc
);
7593 static inline __ATTRS_o_ai vector
unsigned short
7594 vec_cmpeq_idx_cc(vector
bool short __a
, vector
bool short __b
, int *__cc
) {
7595 return __builtin_s390_vfeehs((vector
unsigned short)__a
,
7596 (vector
unsigned short)__b
, __cc
);
7599 static inline __ATTRS_o_ai vector
unsigned short
7600 vec_cmpeq_idx_cc(vector
unsigned short __a
, vector
unsigned short __b
,
7602 return __builtin_s390_vfeehs(__a
, __b
, __cc
);
7605 static inline __ATTRS_o_ai vector
signed int
7606 vec_cmpeq_idx_cc(vector
signed int __a
, vector
signed int __b
, int *__cc
) {
7607 return (vector
signed int)
7608 __builtin_s390_vfeefs((vector
unsigned int)__a
,
7609 (vector
unsigned int)__b
, __cc
);
7612 static inline __ATTRS_o_ai vector
unsigned int
7613 vec_cmpeq_idx_cc(vector
bool int __a
, vector
bool int __b
, int *__cc
) {
7614 return __builtin_s390_vfeefs((vector
unsigned int)__a
,
7615 (vector
unsigned int)__b
, __cc
);
7618 static inline __ATTRS_o_ai vector
unsigned int
7619 vec_cmpeq_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
, int *__cc
) {
7620 return __builtin_s390_vfeefs(__a
, __b
, __cc
);
7623 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
7625 static inline __ATTRS_o_ai vector
signed char
7626 vec_cmpeq_or_0_idx(vector
signed char __a
, vector
signed char __b
) {
7627 return (vector
signed char)
7628 __builtin_s390_vfeezb((vector
unsigned char)__a
,
7629 (vector
unsigned char)__b
);
7632 static inline __ATTRS_o_ai vector
unsigned char
7633 vec_cmpeq_or_0_idx(vector
bool char __a
, vector
bool char __b
) {
7634 return __builtin_s390_vfeezb((vector
unsigned char)__a
,
7635 (vector
unsigned char)__b
);
7638 static inline __ATTRS_o_ai vector
unsigned char
7639 vec_cmpeq_or_0_idx(vector
unsigned char __a
, vector
unsigned char __b
) {
7640 return __builtin_s390_vfeezb(__a
, __b
);
7643 static inline __ATTRS_o_ai vector
signed short
7644 vec_cmpeq_or_0_idx(vector
signed short __a
, vector
signed short __b
) {
7645 return (vector
signed short)
7646 __builtin_s390_vfeezh((vector
unsigned short)__a
,
7647 (vector
unsigned short)__b
);
7650 static inline __ATTRS_o_ai vector
unsigned short
7651 vec_cmpeq_or_0_idx(vector
bool short __a
, vector
bool short __b
) {
7652 return __builtin_s390_vfeezh((vector
unsigned short)__a
,
7653 (vector
unsigned short)__b
);
7656 static inline __ATTRS_o_ai vector
unsigned short
7657 vec_cmpeq_or_0_idx(vector
unsigned short __a
, vector
unsigned short __b
) {
7658 return __builtin_s390_vfeezh(__a
, __b
);
7661 static inline __ATTRS_o_ai vector
signed int
7662 vec_cmpeq_or_0_idx(vector
signed int __a
, vector
signed int __b
) {
7663 return (vector
signed int)
7664 __builtin_s390_vfeezf((vector
unsigned int)__a
,
7665 (vector
unsigned int)__b
);
7668 static inline __ATTRS_o_ai vector
unsigned int
7669 vec_cmpeq_or_0_idx(vector
bool int __a
, vector
bool int __b
) {
7670 return __builtin_s390_vfeezf((vector
unsigned int)__a
,
7671 (vector
unsigned int)__b
);
7674 static inline __ATTRS_o_ai vector
unsigned int
7675 vec_cmpeq_or_0_idx(vector
unsigned int __a
, vector
unsigned int __b
) {
7676 return __builtin_s390_vfeezf(__a
, __b
);
7679 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
7681 static inline __ATTRS_o_ai vector
signed char
7682 vec_cmpeq_or_0_idx_cc(vector
signed char __a
, vector
signed char __b
,
7684 return (vector
signed char)
7685 __builtin_s390_vfeezbs((vector
unsigned char)__a
,
7686 (vector
unsigned char)__b
, __cc
);
7689 static inline __ATTRS_o_ai vector
unsigned char
7690 vec_cmpeq_or_0_idx_cc(vector
bool char __a
, vector
bool char __b
, int *__cc
) {
7691 return __builtin_s390_vfeezbs((vector
unsigned char)__a
,
7692 (vector
unsigned char)__b
, __cc
);
7695 static inline __ATTRS_o_ai vector
unsigned char
7696 vec_cmpeq_or_0_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
7698 return __builtin_s390_vfeezbs(__a
, __b
, __cc
);
7701 static inline __ATTRS_o_ai vector
signed short
7702 vec_cmpeq_or_0_idx_cc(vector
signed short __a
, vector
signed short __b
,
7704 return (vector
signed short)
7705 __builtin_s390_vfeezhs((vector
unsigned short)__a
,
7706 (vector
unsigned short)__b
, __cc
);
7709 static inline __ATTRS_o_ai vector
unsigned short
7710 vec_cmpeq_or_0_idx_cc(vector
bool short __a
, vector
bool short __b
, int *__cc
) {
7711 return __builtin_s390_vfeezhs((vector
unsigned short)__a
,
7712 (vector
unsigned short)__b
, __cc
);
7715 static inline __ATTRS_o_ai vector
unsigned short
7716 vec_cmpeq_or_0_idx_cc(vector
unsigned short __a
, vector
unsigned short __b
,
7718 return __builtin_s390_vfeezhs(__a
, __b
, __cc
);
7721 static inline __ATTRS_o_ai vector
signed int
7722 vec_cmpeq_or_0_idx_cc(vector
signed int __a
, vector
signed int __b
, int *__cc
) {
7723 return (vector
signed int)
7724 __builtin_s390_vfeezfs((vector
unsigned int)__a
,
7725 (vector
unsigned int)__b
, __cc
);
7728 static inline __ATTRS_o_ai vector
unsigned int
7729 vec_cmpeq_or_0_idx_cc(vector
bool int __a
, vector
bool int __b
, int *__cc
) {
7730 return __builtin_s390_vfeezfs((vector
unsigned int)__a
,
7731 (vector
unsigned int)__b
, __cc
);
7734 static inline __ATTRS_o_ai vector
unsigned int
7735 vec_cmpeq_or_0_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
,
7737 return __builtin_s390_vfeezfs(__a
, __b
, __cc
);
7740 /*-- vec_cmpne_idx ----------------------------------------------------------*/
7742 static inline __ATTRS_o_ai vector
signed char
7743 vec_cmpne_idx(vector
signed char __a
, vector
signed char __b
) {
7744 return (vector
signed char)
7745 __builtin_s390_vfeneb((vector
unsigned char)__a
,
7746 (vector
unsigned char)__b
);
7749 static inline __ATTRS_o_ai vector
unsigned char
7750 vec_cmpne_idx(vector
bool char __a
, vector
bool char __b
) {
7751 return __builtin_s390_vfeneb((vector
unsigned char)__a
,
7752 (vector
unsigned char)__b
);
7755 static inline __ATTRS_o_ai vector
unsigned char
7756 vec_cmpne_idx(vector
unsigned char __a
, vector
unsigned char __b
) {
7757 return __builtin_s390_vfeneb(__a
, __b
);
7760 static inline __ATTRS_o_ai vector
signed short
7761 vec_cmpne_idx(vector
signed short __a
, vector
signed short __b
) {
7762 return (vector
signed short)
7763 __builtin_s390_vfeneh((vector
unsigned short)__a
,
7764 (vector
unsigned short)__b
);
7767 static inline __ATTRS_o_ai vector
unsigned short
7768 vec_cmpne_idx(vector
bool short __a
, vector
bool short __b
) {
7769 return __builtin_s390_vfeneh((vector
unsigned short)__a
,
7770 (vector
unsigned short)__b
);
7773 static inline __ATTRS_o_ai vector
unsigned short
7774 vec_cmpne_idx(vector
unsigned short __a
, vector
unsigned short __b
) {
7775 return __builtin_s390_vfeneh(__a
, __b
);
7778 static inline __ATTRS_o_ai vector
signed int
7779 vec_cmpne_idx(vector
signed int __a
, vector
signed int __b
) {
7780 return (vector
signed int)
7781 __builtin_s390_vfenef((vector
unsigned int)__a
,
7782 (vector
unsigned int)__b
);
7785 static inline __ATTRS_o_ai vector
unsigned int
7786 vec_cmpne_idx(vector
bool int __a
, vector
bool int __b
) {
7787 return __builtin_s390_vfenef((vector
unsigned int)__a
,
7788 (vector
unsigned int)__b
);
7791 static inline __ATTRS_o_ai vector
unsigned int
7792 vec_cmpne_idx(vector
unsigned int __a
, vector
unsigned int __b
) {
7793 return __builtin_s390_vfenef(__a
, __b
);
7796 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
7798 static inline __ATTRS_o_ai vector
signed char
7799 vec_cmpne_idx_cc(vector
signed char __a
, vector
signed char __b
, int *__cc
) {
7800 return (vector
signed char)
7801 __builtin_s390_vfenebs((vector
unsigned char)__a
,
7802 (vector
unsigned char)__b
, __cc
);
7805 static inline __ATTRS_o_ai vector
unsigned char
7806 vec_cmpne_idx_cc(vector
bool char __a
, vector
bool char __b
, int *__cc
) {
7807 return __builtin_s390_vfenebs((vector
unsigned char)__a
,
7808 (vector
unsigned char)__b
, __cc
);
7811 static inline __ATTRS_o_ai vector
unsigned char
7812 vec_cmpne_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
7814 return __builtin_s390_vfenebs(__a
, __b
, __cc
);
7817 static inline __ATTRS_o_ai vector
signed short
7818 vec_cmpne_idx_cc(vector
signed short __a
, vector
signed short __b
, int *__cc
) {
7819 return (vector
signed short)
7820 __builtin_s390_vfenehs((vector
unsigned short)__a
,
7821 (vector
unsigned short)__b
, __cc
);
7824 static inline __ATTRS_o_ai vector
unsigned short
7825 vec_cmpne_idx_cc(vector
bool short __a
, vector
bool short __b
, int *__cc
) {
7826 return __builtin_s390_vfenehs((vector
unsigned short)__a
,
7827 (vector
unsigned short)__b
, __cc
);
7830 static inline __ATTRS_o_ai vector
unsigned short
7831 vec_cmpne_idx_cc(vector
unsigned short __a
, vector
unsigned short __b
,
7833 return __builtin_s390_vfenehs(__a
, __b
, __cc
);
7836 static inline __ATTRS_o_ai vector
signed int
7837 vec_cmpne_idx_cc(vector
signed int __a
, vector
signed int __b
, int *__cc
) {
7838 return (vector
signed int)
7839 __builtin_s390_vfenefs((vector
unsigned int)__a
,
7840 (vector
unsigned int)__b
, __cc
);
7843 static inline __ATTRS_o_ai vector
unsigned int
7844 vec_cmpne_idx_cc(vector
bool int __a
, vector
bool int __b
, int *__cc
) {
7845 return __builtin_s390_vfenefs((vector
unsigned int)__a
,
7846 (vector
unsigned int)__b
, __cc
);
7849 static inline __ATTRS_o_ai vector
unsigned int
7850 vec_cmpne_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
, int *__cc
) {
7851 return __builtin_s390_vfenefs(__a
, __b
, __cc
);
7854 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
7856 static inline __ATTRS_o_ai vector
signed char
7857 vec_cmpne_or_0_idx(vector
signed char __a
, vector
signed char __b
) {
7858 return (vector
signed char)
7859 __builtin_s390_vfenezb((vector
unsigned char)__a
,
7860 (vector
unsigned char)__b
);
7863 static inline __ATTRS_o_ai vector
unsigned char
7864 vec_cmpne_or_0_idx(vector
bool char __a
, vector
bool char __b
) {
7865 return __builtin_s390_vfenezb((vector
unsigned char)__a
,
7866 (vector
unsigned char)__b
);
7869 static inline __ATTRS_o_ai vector
unsigned char
7870 vec_cmpne_or_0_idx(vector
unsigned char __a
, vector
unsigned char __b
) {
7871 return __builtin_s390_vfenezb(__a
, __b
);
7874 static inline __ATTRS_o_ai vector
signed short
7875 vec_cmpne_or_0_idx(vector
signed short __a
, vector
signed short __b
) {
7876 return (vector
signed short)
7877 __builtin_s390_vfenezh((vector
unsigned short)__a
,
7878 (vector
unsigned short)__b
);
7881 static inline __ATTRS_o_ai vector
unsigned short
7882 vec_cmpne_or_0_idx(vector
bool short __a
, vector
bool short __b
) {
7883 return __builtin_s390_vfenezh((vector
unsigned short)__a
,
7884 (vector
unsigned short)__b
);
7887 static inline __ATTRS_o_ai vector
unsigned short
7888 vec_cmpne_or_0_idx(vector
unsigned short __a
, vector
unsigned short __b
) {
7889 return __builtin_s390_vfenezh(__a
, __b
);
7892 static inline __ATTRS_o_ai vector
signed int
7893 vec_cmpne_or_0_idx(vector
signed int __a
, vector
signed int __b
) {
7894 return (vector
signed int)
7895 __builtin_s390_vfenezf((vector
unsigned int)__a
,
7896 (vector
unsigned int)__b
);
7899 static inline __ATTRS_o_ai vector
unsigned int
7900 vec_cmpne_or_0_idx(vector
bool int __a
, vector
bool int __b
) {
7901 return __builtin_s390_vfenezf((vector
unsigned int)__a
,
7902 (vector
unsigned int)__b
);
7905 static inline __ATTRS_o_ai vector
unsigned int
7906 vec_cmpne_or_0_idx(vector
unsigned int __a
, vector
unsigned int __b
) {
7907 return __builtin_s390_vfenezf(__a
, __b
);
7910 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
7912 static inline __ATTRS_o_ai vector
signed char
7913 vec_cmpne_or_0_idx_cc(vector
signed char __a
, vector
signed char __b
,
7915 return (vector
signed char)
7916 __builtin_s390_vfenezbs((vector
unsigned char)__a
,
7917 (vector
unsigned char)__b
, __cc
);
7920 static inline __ATTRS_o_ai vector
unsigned char
7921 vec_cmpne_or_0_idx_cc(vector
bool char __a
, vector
bool char __b
, int *__cc
) {
7922 return __builtin_s390_vfenezbs((vector
unsigned char)__a
,
7923 (vector
unsigned char)__b
, __cc
);
7926 static inline __ATTRS_o_ai vector
unsigned char
7927 vec_cmpne_or_0_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
7929 return __builtin_s390_vfenezbs(__a
, __b
, __cc
);
7932 static inline __ATTRS_o_ai vector
signed short
7933 vec_cmpne_or_0_idx_cc(vector
signed short __a
, vector
signed short __b
,
7935 return (vector
signed short)
7936 __builtin_s390_vfenezhs((vector
unsigned short)__a
,
7937 (vector
unsigned short)__b
, __cc
);
7940 static inline __ATTRS_o_ai vector
unsigned short
7941 vec_cmpne_or_0_idx_cc(vector
bool short __a
, vector
bool short __b
, int *__cc
) {
7942 return __builtin_s390_vfenezhs((vector
unsigned short)__a
,
7943 (vector
unsigned short)__b
, __cc
);
7946 static inline __ATTRS_o_ai vector
unsigned short
7947 vec_cmpne_or_0_idx_cc(vector
unsigned short __a
, vector
unsigned short __b
,
7949 return __builtin_s390_vfenezhs(__a
, __b
, __cc
);
7952 static inline __ATTRS_o_ai vector
signed int
7953 vec_cmpne_or_0_idx_cc(vector
signed int __a
, vector
signed int __b
, int *__cc
) {
7954 return (vector
signed int)
7955 __builtin_s390_vfenezfs((vector
unsigned int)__a
,
7956 (vector
unsigned int)__b
, __cc
);
7959 static inline __ATTRS_o_ai vector
unsigned int
7960 vec_cmpne_or_0_idx_cc(vector
bool int __a
, vector
bool int __b
, int *__cc
) {
7961 return __builtin_s390_vfenezfs((vector
unsigned int)__a
,
7962 (vector
unsigned int)__b
, __cc
);
7965 static inline __ATTRS_o_ai vector
unsigned int
7966 vec_cmpne_or_0_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
,
7968 return __builtin_s390_vfenezfs(__a
, __b
, __cc
);
7971 /*-- vec_cmprg --------------------------------------------------------------*/
7973 static inline __ATTRS_o_ai vector
bool char
7974 vec_cmprg(vector
unsigned char __a
, vector
unsigned char __b
,
7975 vector
unsigned char __c
) {
7976 return (vector
bool char)__builtin_s390_vstrcb(__a
, __b
, __c
, 4);
7979 static inline __ATTRS_o_ai vector
bool short
7980 vec_cmprg(vector
unsigned short __a
, vector
unsigned short __b
,
7981 vector
unsigned short __c
) {
7982 return (vector
bool short)__builtin_s390_vstrch(__a
, __b
, __c
, 4);
7985 static inline __ATTRS_o_ai vector
bool int
7986 vec_cmprg(vector
unsigned int __a
, vector
unsigned int __b
,
7987 vector
unsigned int __c
) {
7988 return (vector
bool int)__builtin_s390_vstrcf(__a
, __b
, __c
, 4);
7991 /*-- vec_cmprg_cc -----------------------------------------------------------*/
7993 static inline __ATTRS_o_ai vector
bool char
7994 vec_cmprg_cc(vector
unsigned char __a
, vector
unsigned char __b
,
7995 vector
unsigned char __c
, int *__cc
) {
7996 return (vector
bool char)__builtin_s390_vstrcbs(__a
, __b
, __c
, 4, __cc
);
7999 static inline __ATTRS_o_ai vector
bool short
8000 vec_cmprg_cc(vector
unsigned short __a
, vector
unsigned short __b
,
8001 vector
unsigned short __c
, int *__cc
) {
8002 return (vector
bool short)__builtin_s390_vstrchs(__a
, __b
, __c
, 4, __cc
);
8005 static inline __ATTRS_o_ai vector
bool int
8006 vec_cmprg_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8007 vector
unsigned int __c
, int *__cc
) {
8008 return (vector
bool int)__builtin_s390_vstrcfs(__a
, __b
, __c
, 4, __cc
);
8011 /*-- vec_cmprg_idx ----------------------------------------------------------*/
8013 static inline __ATTRS_o_ai vector
unsigned char
8014 vec_cmprg_idx(vector
unsigned char __a
, vector
unsigned char __b
,
8015 vector
unsigned char __c
) {
8016 return __builtin_s390_vstrcb(__a
, __b
, __c
, 0);
8019 static inline __ATTRS_o_ai vector
unsigned short
8020 vec_cmprg_idx(vector
unsigned short __a
, vector
unsigned short __b
,
8021 vector
unsigned short __c
) {
8022 return __builtin_s390_vstrch(__a
, __b
, __c
, 0);
8025 static inline __ATTRS_o_ai vector
unsigned int
8026 vec_cmprg_idx(vector
unsigned int __a
, vector
unsigned int __b
,
8027 vector
unsigned int __c
) {
8028 return __builtin_s390_vstrcf(__a
, __b
, __c
, 0);
8031 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
8033 static inline __ATTRS_o_ai vector
unsigned char
8034 vec_cmprg_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8035 vector
unsigned char __c
, int *__cc
) {
8036 return __builtin_s390_vstrcbs(__a
, __b
, __c
, 0, __cc
);
8039 static inline __ATTRS_o_ai vector
unsigned short
8040 vec_cmprg_idx_cc(vector
unsigned short __a
, vector
unsigned short __b
,
8041 vector
unsigned short __c
, int *__cc
) {
8042 return __builtin_s390_vstrchs(__a
, __b
, __c
, 0, __cc
);
8045 static inline __ATTRS_o_ai vector
unsigned int
8046 vec_cmprg_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8047 vector
unsigned int __c
, int *__cc
) {
8048 return __builtin_s390_vstrcfs(__a
, __b
, __c
, 0, __cc
);
8051 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
8053 static inline __ATTRS_o_ai vector
unsigned char
8054 vec_cmprg_or_0_idx(vector
unsigned char __a
, vector
unsigned char __b
,
8055 vector
unsigned char __c
) {
8056 return __builtin_s390_vstrczb(__a
, __b
, __c
, 0);
8059 static inline __ATTRS_o_ai vector
unsigned short
8060 vec_cmprg_or_0_idx(vector
unsigned short __a
, vector
unsigned short __b
,
8061 vector
unsigned short __c
) {
8062 return __builtin_s390_vstrczh(__a
, __b
, __c
, 0);
8065 static inline __ATTRS_o_ai vector
unsigned int
8066 vec_cmprg_or_0_idx(vector
unsigned int __a
, vector
unsigned int __b
,
8067 vector
unsigned int __c
) {
8068 return __builtin_s390_vstrczf(__a
, __b
, __c
, 0);
8071 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
8073 static inline __ATTRS_o_ai vector
unsigned char
8074 vec_cmprg_or_0_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8075 vector
unsigned char __c
, int *__cc
) {
8076 return __builtin_s390_vstrczbs(__a
, __b
, __c
, 0, __cc
);
8079 static inline __ATTRS_o_ai vector
unsigned short
8080 vec_cmprg_or_0_idx_cc(vector
unsigned short __a
, vector
unsigned short __b
,
8081 vector
unsigned short __c
, int *__cc
) {
8082 return __builtin_s390_vstrczhs(__a
, __b
, __c
, 0, __cc
);
8085 static inline __ATTRS_o_ai vector
unsigned int
8086 vec_cmprg_or_0_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8087 vector
unsigned int __c
, int *__cc
) {
8088 return __builtin_s390_vstrczfs(__a
, __b
, __c
, 0, __cc
);
8091 /*-- vec_cmpnrg -------------------------------------------------------------*/
8093 static inline __ATTRS_o_ai vector
bool char
8094 vec_cmpnrg(vector
unsigned char __a
, vector
unsigned char __b
,
8095 vector
unsigned char __c
) {
8096 return (vector
bool char)__builtin_s390_vstrcb(__a
, __b
, __c
, 12);
8099 static inline __ATTRS_o_ai vector
bool short
8100 vec_cmpnrg(vector
unsigned short __a
, vector
unsigned short __b
,
8101 vector
unsigned short __c
) {
8102 return (vector
bool short)__builtin_s390_vstrch(__a
, __b
, __c
, 12);
8105 static inline __ATTRS_o_ai vector
bool int
8106 vec_cmpnrg(vector
unsigned int __a
, vector
unsigned int __b
,
8107 vector
unsigned int __c
) {
8108 return (vector
bool int)__builtin_s390_vstrcf(__a
, __b
, __c
, 12);
8111 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
8113 static inline __ATTRS_o_ai vector
bool char
8114 vec_cmpnrg_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8115 vector
unsigned char __c
, int *__cc
) {
8116 return (vector
bool char)__builtin_s390_vstrcbs(__a
, __b
, __c
, 12, __cc
);
8119 static inline __ATTRS_o_ai vector
bool short
8120 vec_cmpnrg_cc(vector
unsigned short __a
, vector
unsigned short __b
,
8121 vector
unsigned short __c
, int *__cc
) {
8122 return (vector
bool short)__builtin_s390_vstrchs(__a
, __b
, __c
, 12, __cc
);
8125 static inline __ATTRS_o_ai vector
bool int
8126 vec_cmpnrg_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8127 vector
unsigned int __c
, int *__cc
) {
8128 return (vector
bool int)__builtin_s390_vstrcfs(__a
, __b
, __c
, 12, __cc
);
8131 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
8133 static inline __ATTRS_o_ai vector
unsigned char
8134 vec_cmpnrg_idx(vector
unsigned char __a
, vector
unsigned char __b
,
8135 vector
unsigned char __c
) {
8136 return __builtin_s390_vstrcb(__a
, __b
, __c
, 8);
8139 static inline __ATTRS_o_ai vector
unsigned short
8140 vec_cmpnrg_idx(vector
unsigned short __a
, vector
unsigned short __b
,
8141 vector
unsigned short __c
) {
8142 return __builtin_s390_vstrch(__a
, __b
, __c
, 8);
8145 static inline __ATTRS_o_ai vector
unsigned int
8146 vec_cmpnrg_idx(vector
unsigned int __a
, vector
unsigned int __b
,
8147 vector
unsigned int __c
) {
8148 return __builtin_s390_vstrcf(__a
, __b
, __c
, 8);
8151 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
8153 static inline __ATTRS_o_ai vector
unsigned char
8154 vec_cmpnrg_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8155 vector
unsigned char __c
, int *__cc
) {
8156 return __builtin_s390_vstrcbs(__a
, __b
, __c
, 8, __cc
);
8159 static inline __ATTRS_o_ai vector
unsigned short
8160 vec_cmpnrg_idx_cc(vector
unsigned short __a
, vector
unsigned short __b
,
8161 vector
unsigned short __c
, int *__cc
) {
8162 return __builtin_s390_vstrchs(__a
, __b
, __c
, 8, __cc
);
8165 static inline __ATTRS_o_ai vector
unsigned int
8166 vec_cmpnrg_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8167 vector
unsigned int __c
, int *__cc
) {
8168 return __builtin_s390_vstrcfs(__a
, __b
, __c
, 8, __cc
);
8171 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
8173 static inline __ATTRS_o_ai vector
unsigned char
8174 vec_cmpnrg_or_0_idx(vector
unsigned char __a
, vector
unsigned char __b
,
8175 vector
unsigned char __c
) {
8176 return __builtin_s390_vstrczb(__a
, __b
, __c
, 8);
8179 static inline __ATTRS_o_ai vector
unsigned short
8180 vec_cmpnrg_or_0_idx(vector
unsigned short __a
, vector
unsigned short __b
,
8181 vector
unsigned short __c
) {
8182 return __builtin_s390_vstrczh(__a
, __b
, __c
, 8);
8185 static inline __ATTRS_o_ai vector
unsigned int
8186 vec_cmpnrg_or_0_idx(vector
unsigned int __a
, vector
unsigned int __b
,
8187 vector
unsigned int __c
) {
8188 return __builtin_s390_vstrczf(__a
, __b
, __c
, 8);
8191 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
8193 static inline __ATTRS_o_ai vector
unsigned char
8194 vec_cmpnrg_or_0_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8195 vector
unsigned char __c
, int *__cc
) {
8196 return __builtin_s390_vstrczbs(__a
, __b
, __c
, 8, __cc
);
8199 static inline __ATTRS_o_ai vector
unsigned short
8200 vec_cmpnrg_or_0_idx_cc(vector
unsigned short __a
, vector
unsigned short __b
,
8201 vector
unsigned short __c
, int *__cc
) {
8202 return __builtin_s390_vstrczhs(__a
, __b
, __c
, 8, __cc
);
8205 static inline __ATTRS_o_ai vector
unsigned int
8206 vec_cmpnrg_or_0_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8207 vector
unsigned int __c
, int *__cc
) {
8208 return __builtin_s390_vstrczfs(__a
, __b
, __c
, 8, __cc
);
8211 /*-- vec_find_any_eq --------------------------------------------------------*/
8213 static inline __ATTRS_o_ai vector
bool char
8214 vec_find_any_eq(vector
signed char __a
, vector
signed char __b
) {
8215 return (vector
bool char)
8216 __builtin_s390_vfaeb((vector
unsigned char)__a
,
8217 (vector
unsigned char)__b
, 4);
8220 static inline __ATTRS_o_ai vector
bool char
8221 vec_find_any_eq(vector
bool char __a
, vector
bool char __b
) {
8222 return (vector
bool char)
8223 __builtin_s390_vfaeb((vector
unsigned char)__a
,
8224 (vector
unsigned char)__b
, 4);
8227 static inline __ATTRS_o_ai vector
bool char
8228 vec_find_any_eq(vector
unsigned char __a
, vector
unsigned char __b
) {
8229 return (vector
bool char)__builtin_s390_vfaeb(__a
, __b
, 4);
8232 static inline __ATTRS_o_ai vector
bool short
8233 vec_find_any_eq(vector
signed short __a
, vector
signed short __b
) {
8234 return (vector
bool short)
8235 __builtin_s390_vfaeh((vector
unsigned short)__a
,
8236 (vector
unsigned short)__b
, 4);
8239 static inline __ATTRS_o_ai vector
bool short
8240 vec_find_any_eq(vector
bool short __a
, vector
bool short __b
) {
8241 return (vector
bool short)
8242 __builtin_s390_vfaeh((vector
unsigned short)__a
,
8243 (vector
unsigned short)__b
, 4);
8246 static inline __ATTRS_o_ai vector
bool short
8247 vec_find_any_eq(vector
unsigned short __a
, vector
unsigned short __b
) {
8248 return (vector
bool short)__builtin_s390_vfaeh(__a
, __b
, 4);
8251 static inline __ATTRS_o_ai vector
bool int
8252 vec_find_any_eq(vector
signed int __a
, vector
signed int __b
) {
8253 return (vector
bool int)
8254 __builtin_s390_vfaef((vector
unsigned int)__a
,
8255 (vector
unsigned int)__b
, 4);
8258 static inline __ATTRS_o_ai vector
bool int
8259 vec_find_any_eq(vector
bool int __a
, vector
bool int __b
) {
8260 return (vector
bool int)
8261 __builtin_s390_vfaef((vector
unsigned int)__a
,
8262 (vector
unsigned int)__b
, 4);
8265 static inline __ATTRS_o_ai vector
bool int
8266 vec_find_any_eq(vector
unsigned int __a
, vector
unsigned int __b
) {
8267 return (vector
bool int)__builtin_s390_vfaef(__a
, __b
, 4);
8270 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
8272 static inline __ATTRS_o_ai vector
bool char
8273 vec_find_any_eq_cc(vector
signed char __a
, vector
signed char __b
, int *__cc
) {
8274 return (vector
bool char)
8275 __builtin_s390_vfaebs((vector
unsigned char)__a
,
8276 (vector
unsigned char)__b
, 4, __cc
);
8279 static inline __ATTRS_o_ai vector
bool char
8280 vec_find_any_eq_cc(vector
bool char __a
, vector
bool char __b
, int *__cc
) {
8281 return (vector
bool char)
8282 __builtin_s390_vfaebs((vector
unsigned char)__a
,
8283 (vector
unsigned char)__b
, 4, __cc
);
8286 static inline __ATTRS_o_ai vector
bool char
8287 vec_find_any_eq_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8289 return (vector
bool char)__builtin_s390_vfaebs(__a
, __b
, 4, __cc
);
8292 static inline __ATTRS_o_ai vector
bool short
8293 vec_find_any_eq_cc(vector
signed short __a
, vector
signed short __b
,
8295 return (vector
bool short)
8296 __builtin_s390_vfaehs((vector
unsigned short)__a
,
8297 (vector
unsigned short)__b
, 4, __cc
);
8300 static inline __ATTRS_o_ai vector
bool short
8301 vec_find_any_eq_cc(vector
bool short __a
, vector
bool short __b
, int *__cc
) {
8302 return (vector
bool short)
8303 __builtin_s390_vfaehs((vector
unsigned short)__a
,
8304 (vector
unsigned short)__b
, 4, __cc
);
8307 static inline __ATTRS_o_ai vector
bool short
8308 vec_find_any_eq_cc(vector
unsigned short __a
, vector
unsigned short __b
,
8310 return (vector
bool short)__builtin_s390_vfaehs(__a
, __b
, 4, __cc
);
8313 static inline __ATTRS_o_ai vector
bool int
8314 vec_find_any_eq_cc(vector
signed int __a
, vector
signed int __b
, int *__cc
) {
8315 return (vector
bool int)
8316 __builtin_s390_vfaefs((vector
unsigned int)__a
,
8317 (vector
unsigned int)__b
, 4, __cc
);
8320 static inline __ATTRS_o_ai vector
bool int
8321 vec_find_any_eq_cc(vector
bool int __a
, vector
bool int __b
, int *__cc
) {
8322 return (vector
bool int)
8323 __builtin_s390_vfaefs((vector
unsigned int)__a
,
8324 (vector
unsigned int)__b
, 4, __cc
);
8327 static inline __ATTRS_o_ai vector
bool int
8328 vec_find_any_eq_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8330 return (vector
bool int)__builtin_s390_vfaefs(__a
, __b
, 4, __cc
);
8333 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
8335 static inline __ATTRS_o_ai vector
signed char
8336 vec_find_any_eq_idx(vector
signed char __a
, vector
signed char __b
) {
8337 return (vector
signed char)
8338 __builtin_s390_vfaeb((vector
unsigned char)__a
,
8339 (vector
unsigned char)__b
, 0);
8342 static inline __ATTRS_o_ai vector
unsigned char
8343 vec_find_any_eq_idx(vector
bool char __a
, vector
bool char __b
) {
8344 return __builtin_s390_vfaeb((vector
unsigned char)__a
,
8345 (vector
unsigned char)__b
, 0);
8348 static inline __ATTRS_o_ai vector
unsigned char
8349 vec_find_any_eq_idx(vector
unsigned char __a
, vector
unsigned char __b
) {
8350 return __builtin_s390_vfaeb(__a
, __b
, 0);
8353 static inline __ATTRS_o_ai vector
signed short
8354 vec_find_any_eq_idx(vector
signed short __a
, vector
signed short __b
) {
8355 return (vector
signed short)
8356 __builtin_s390_vfaeh((vector
unsigned short)__a
,
8357 (vector
unsigned short)__b
, 0);
8360 static inline __ATTRS_o_ai vector
unsigned short
8361 vec_find_any_eq_idx(vector
bool short __a
, vector
bool short __b
) {
8362 return __builtin_s390_vfaeh((vector
unsigned short)__a
,
8363 (vector
unsigned short)__b
, 0);
8366 static inline __ATTRS_o_ai vector
unsigned short
8367 vec_find_any_eq_idx(vector
unsigned short __a
, vector
unsigned short __b
) {
8368 return __builtin_s390_vfaeh(__a
, __b
, 0);
8371 static inline __ATTRS_o_ai vector
signed int
8372 vec_find_any_eq_idx(vector
signed int __a
, vector
signed int __b
) {
8373 return (vector
signed int)
8374 __builtin_s390_vfaef((vector
unsigned int)__a
,
8375 (vector
unsigned int)__b
, 0);
8378 static inline __ATTRS_o_ai vector
unsigned int
8379 vec_find_any_eq_idx(vector
bool int __a
, vector
bool int __b
) {
8380 return __builtin_s390_vfaef((vector
unsigned int)__a
,
8381 (vector
unsigned int)__b
, 0);
8384 static inline __ATTRS_o_ai vector
unsigned int
8385 vec_find_any_eq_idx(vector
unsigned int __a
, vector
unsigned int __b
) {
8386 return __builtin_s390_vfaef(__a
, __b
, 0);
8389 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
8391 static inline __ATTRS_o_ai vector
signed char
8392 vec_find_any_eq_idx_cc(vector
signed char __a
, vector
signed char __b
,
8394 return (vector
signed char)
8395 __builtin_s390_vfaebs((vector
unsigned char)__a
,
8396 (vector
unsigned char)__b
, 0, __cc
);
8399 static inline __ATTRS_o_ai vector
unsigned char
8400 vec_find_any_eq_idx_cc(vector
bool char __a
, vector
bool char __b
, int *__cc
) {
8401 return __builtin_s390_vfaebs((vector
unsigned char)__a
,
8402 (vector
unsigned char)__b
, 0, __cc
);
8405 static inline __ATTRS_o_ai vector
unsigned char
8406 vec_find_any_eq_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8408 return __builtin_s390_vfaebs(__a
, __b
, 0, __cc
);
8411 static inline __ATTRS_o_ai vector
signed short
8412 vec_find_any_eq_idx_cc(vector
signed short __a
, vector
signed short __b
,
8414 return (vector
signed short)
8415 __builtin_s390_vfaehs((vector
unsigned short)__a
,
8416 (vector
unsigned short)__b
, 0, __cc
);
8419 static inline __ATTRS_o_ai vector
unsigned short
8420 vec_find_any_eq_idx_cc(vector
bool short __a
, vector
bool short __b
,
8422 return __builtin_s390_vfaehs((vector
unsigned short)__a
,
8423 (vector
unsigned short)__b
, 0, __cc
);
8426 static inline __ATTRS_o_ai vector
unsigned short
8427 vec_find_any_eq_idx_cc(vector
unsigned short __a
, vector
unsigned short __b
,
8429 return __builtin_s390_vfaehs(__a
, __b
, 0, __cc
);
8432 static inline __ATTRS_o_ai vector
signed int
8433 vec_find_any_eq_idx_cc(vector
signed int __a
, vector
signed int __b
,
8435 return (vector
signed int)
8436 __builtin_s390_vfaefs((vector
unsigned int)__a
,
8437 (vector
unsigned int)__b
, 0, __cc
);
8440 static inline __ATTRS_o_ai vector
unsigned int
8441 vec_find_any_eq_idx_cc(vector
bool int __a
, vector
bool int __b
, int *__cc
) {
8442 return __builtin_s390_vfaefs((vector
unsigned int)__a
,
8443 (vector
unsigned int)__b
, 0, __cc
);
8446 static inline __ATTRS_o_ai vector
unsigned int
8447 vec_find_any_eq_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8449 return __builtin_s390_vfaefs(__a
, __b
, 0, __cc
);
8452 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
8454 static inline __ATTRS_o_ai vector
signed char
8455 vec_find_any_eq_or_0_idx(vector
signed char __a
, vector
signed char __b
) {
8456 return (vector
signed char)
8457 __builtin_s390_vfaezb((vector
unsigned char)__a
,
8458 (vector
unsigned char)__b
, 0);
8461 static inline __ATTRS_o_ai vector
unsigned char
8462 vec_find_any_eq_or_0_idx(vector
bool char __a
, vector
bool char __b
) {
8463 return __builtin_s390_vfaezb((vector
unsigned char)__a
,
8464 (vector
unsigned char)__b
, 0);
8467 static inline __ATTRS_o_ai vector
unsigned char
8468 vec_find_any_eq_or_0_idx(vector
unsigned char __a
, vector
unsigned char __b
) {
8469 return __builtin_s390_vfaezb(__a
, __b
, 0);
8472 static inline __ATTRS_o_ai vector
signed short
8473 vec_find_any_eq_or_0_idx(vector
signed short __a
, vector
signed short __b
) {
8474 return (vector
signed short)
8475 __builtin_s390_vfaezh((vector
unsigned short)__a
,
8476 (vector
unsigned short)__b
, 0);
8479 static inline __ATTRS_o_ai vector
unsigned short
8480 vec_find_any_eq_or_0_idx(vector
bool short __a
, vector
bool short __b
) {
8481 return __builtin_s390_vfaezh((vector
unsigned short)__a
,
8482 (vector
unsigned short)__b
, 0);
8485 static inline __ATTRS_o_ai vector
unsigned short
8486 vec_find_any_eq_or_0_idx(vector
unsigned short __a
, vector
unsigned short __b
) {
8487 return __builtin_s390_vfaezh(__a
, __b
, 0);
8490 static inline __ATTRS_o_ai vector
signed int
8491 vec_find_any_eq_or_0_idx(vector
signed int __a
, vector
signed int __b
) {
8492 return (vector
signed int)
8493 __builtin_s390_vfaezf((vector
unsigned int)__a
,
8494 (vector
unsigned int)__b
, 0);
8497 static inline __ATTRS_o_ai vector
unsigned int
8498 vec_find_any_eq_or_0_idx(vector
bool int __a
, vector
bool int __b
) {
8499 return __builtin_s390_vfaezf((vector
unsigned int)__a
,
8500 (vector
unsigned int)__b
, 0);
8503 static inline __ATTRS_o_ai vector
unsigned int
8504 vec_find_any_eq_or_0_idx(vector
unsigned int __a
, vector
unsigned int __b
) {
8505 return __builtin_s390_vfaezf(__a
, __b
, 0);
8508 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
8510 static inline __ATTRS_o_ai vector
signed char
8511 vec_find_any_eq_or_0_idx_cc(vector
signed char __a
, vector
signed char __b
,
8513 return (vector
signed char)
8514 __builtin_s390_vfaezbs((vector
unsigned char)__a
,
8515 (vector
unsigned char)__b
, 0, __cc
);
8518 static inline __ATTRS_o_ai vector
unsigned char
8519 vec_find_any_eq_or_0_idx_cc(vector
bool char __a
, vector
bool char __b
,
8521 return __builtin_s390_vfaezbs((vector
unsigned char)__a
,
8522 (vector
unsigned char)__b
, 0, __cc
);
8525 static inline __ATTRS_o_ai vector
unsigned char
8526 vec_find_any_eq_or_0_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8528 return __builtin_s390_vfaezbs(__a
, __b
, 0, __cc
);
8531 static inline __ATTRS_o_ai vector
signed short
8532 vec_find_any_eq_or_0_idx_cc(vector
signed short __a
, vector
signed short __b
,
8534 return (vector
signed short)
8535 __builtin_s390_vfaezhs((vector
unsigned short)__a
,
8536 (vector
unsigned short)__b
, 0, __cc
);
8539 static inline __ATTRS_o_ai vector
unsigned short
8540 vec_find_any_eq_or_0_idx_cc(vector
bool short __a
, vector
bool short __b
,
8542 return __builtin_s390_vfaezhs((vector
unsigned short)__a
,
8543 (vector
unsigned short)__b
, 0, __cc
);
8546 static inline __ATTRS_o_ai vector
unsigned short
8547 vec_find_any_eq_or_0_idx_cc(vector
unsigned short __a
,
8548 vector
unsigned short __b
, int *__cc
) {
8549 return __builtin_s390_vfaezhs(__a
, __b
, 0, __cc
);
8552 static inline __ATTRS_o_ai vector
signed int
8553 vec_find_any_eq_or_0_idx_cc(vector
signed int __a
, vector
signed int __b
,
8555 return (vector
signed int)
8556 __builtin_s390_vfaezfs((vector
unsigned int)__a
,
8557 (vector
unsigned int)__b
, 0, __cc
);
8560 static inline __ATTRS_o_ai vector
unsigned int
8561 vec_find_any_eq_or_0_idx_cc(vector
bool int __a
, vector
bool int __b
,
8563 return __builtin_s390_vfaezfs((vector
unsigned int)__a
,
8564 (vector
unsigned int)__b
, 0, __cc
);
8567 static inline __ATTRS_o_ai vector
unsigned int
8568 vec_find_any_eq_or_0_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8570 return __builtin_s390_vfaezfs(__a
, __b
, 0, __cc
);
8573 /*-- vec_find_any_ne --------------------------------------------------------*/
8575 static inline __ATTRS_o_ai vector
bool char
8576 vec_find_any_ne(vector
signed char __a
, vector
signed char __b
) {
8577 return (vector
bool char)
8578 __builtin_s390_vfaeb((vector
unsigned char)__a
,
8579 (vector
unsigned char)__b
, 12);
8582 static inline __ATTRS_o_ai vector
bool char
8583 vec_find_any_ne(vector
bool char __a
, vector
bool char __b
) {
8584 return (vector
bool char)
8585 __builtin_s390_vfaeb((vector
unsigned char)__a
,
8586 (vector
unsigned char)__b
, 12);
8589 static inline __ATTRS_o_ai vector
bool char
8590 vec_find_any_ne(vector
unsigned char __a
, vector
unsigned char __b
) {
8591 return (vector
bool char)__builtin_s390_vfaeb(__a
, __b
, 12);
8594 static inline __ATTRS_o_ai vector
bool short
8595 vec_find_any_ne(vector
signed short __a
, vector
signed short __b
) {
8596 return (vector
bool short)
8597 __builtin_s390_vfaeh((vector
unsigned short)__a
,
8598 (vector
unsigned short)__b
, 12);
8601 static inline __ATTRS_o_ai vector
bool short
8602 vec_find_any_ne(vector
bool short __a
, vector
bool short __b
) {
8603 return (vector
bool short)
8604 __builtin_s390_vfaeh((vector
unsigned short)__a
,
8605 (vector
unsigned short)__b
, 12);
8608 static inline __ATTRS_o_ai vector
bool short
8609 vec_find_any_ne(vector
unsigned short __a
, vector
unsigned short __b
) {
8610 return (vector
bool short)__builtin_s390_vfaeh(__a
, __b
, 12);
8613 static inline __ATTRS_o_ai vector
bool int
8614 vec_find_any_ne(vector
signed int __a
, vector
signed int __b
) {
8615 return (vector
bool int)
8616 __builtin_s390_vfaef((vector
unsigned int)__a
,
8617 (vector
unsigned int)__b
, 12);
8620 static inline __ATTRS_o_ai vector
bool int
8621 vec_find_any_ne(vector
bool int __a
, vector
bool int __b
) {
8622 return (vector
bool int)
8623 __builtin_s390_vfaef((vector
unsigned int)__a
,
8624 (vector
unsigned int)__b
, 12);
8627 static inline __ATTRS_o_ai vector
bool int
8628 vec_find_any_ne(vector
unsigned int __a
, vector
unsigned int __b
) {
8629 return (vector
bool int)__builtin_s390_vfaef(__a
, __b
, 12);
8632 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
8634 static inline __ATTRS_o_ai vector
bool char
8635 vec_find_any_ne_cc(vector
signed char __a
, vector
signed char __b
, int *__cc
) {
8636 return (vector
bool char)
8637 __builtin_s390_vfaebs((vector
unsigned char)__a
,
8638 (vector
unsigned char)__b
, 12, __cc
);
8641 static inline __ATTRS_o_ai vector
bool char
8642 vec_find_any_ne_cc(vector
bool char __a
, vector
bool char __b
, int *__cc
) {
8643 return (vector
bool char)
8644 __builtin_s390_vfaebs((vector
unsigned char)__a
,
8645 (vector
unsigned char)__b
, 12, __cc
);
8648 static inline __ATTRS_o_ai vector
bool char
8649 vec_find_any_ne_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8651 return (vector
bool char)__builtin_s390_vfaebs(__a
, __b
, 12, __cc
);
8654 static inline __ATTRS_o_ai vector
bool short
8655 vec_find_any_ne_cc(vector
signed short __a
, vector
signed short __b
,
8657 return (vector
bool short)
8658 __builtin_s390_vfaehs((vector
unsigned short)__a
,
8659 (vector
unsigned short)__b
, 12, __cc
);
8662 static inline __ATTRS_o_ai vector
bool short
8663 vec_find_any_ne_cc(vector
bool short __a
, vector
bool short __b
, int *__cc
) {
8664 return (vector
bool short)
8665 __builtin_s390_vfaehs((vector
unsigned short)__a
,
8666 (vector
unsigned short)__b
, 12, __cc
);
8669 static inline __ATTRS_o_ai vector
bool short
8670 vec_find_any_ne_cc(vector
unsigned short __a
, vector
unsigned short __b
,
8672 return (vector
bool short)__builtin_s390_vfaehs(__a
, __b
, 12, __cc
);
8675 static inline __ATTRS_o_ai vector
bool int
8676 vec_find_any_ne_cc(vector
signed int __a
, vector
signed int __b
, int *__cc
) {
8677 return (vector
bool int)
8678 __builtin_s390_vfaefs((vector
unsigned int)__a
,
8679 (vector
unsigned int)__b
, 12, __cc
);
8682 static inline __ATTRS_o_ai vector
bool int
8683 vec_find_any_ne_cc(vector
bool int __a
, vector
bool int __b
, int *__cc
) {
8684 return (vector
bool int)
8685 __builtin_s390_vfaefs((vector
unsigned int)__a
,
8686 (vector
unsigned int)__b
, 12, __cc
);
8689 static inline __ATTRS_o_ai vector
bool int
8690 vec_find_any_ne_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8692 return (vector
bool int)__builtin_s390_vfaefs(__a
, __b
, 12, __cc
);
8695 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
8697 static inline __ATTRS_o_ai vector
signed char
8698 vec_find_any_ne_idx(vector
signed char __a
, vector
signed char __b
) {
8699 return (vector
signed char)
8700 __builtin_s390_vfaeb((vector
unsigned char)__a
,
8701 (vector
unsigned char)__b
, 8);
8704 static inline __ATTRS_o_ai vector
unsigned char
8705 vec_find_any_ne_idx(vector
bool char __a
, vector
bool char __b
) {
8706 return __builtin_s390_vfaeb((vector
unsigned char)__a
,
8707 (vector
unsigned char)__b
, 8);
8710 static inline __ATTRS_o_ai vector
unsigned char
8711 vec_find_any_ne_idx(vector
unsigned char __a
, vector
unsigned char __b
) {
8712 return __builtin_s390_vfaeb(__a
, __b
, 8);
8715 static inline __ATTRS_o_ai vector
signed short
8716 vec_find_any_ne_idx(vector
signed short __a
, vector
signed short __b
) {
8717 return (vector
signed short)
8718 __builtin_s390_vfaeh((vector
unsigned short)__a
,
8719 (vector
unsigned short)__b
, 8);
8722 static inline __ATTRS_o_ai vector
unsigned short
8723 vec_find_any_ne_idx(vector
bool short __a
, vector
bool short __b
) {
8724 return __builtin_s390_vfaeh((vector
unsigned short)__a
,
8725 (vector
unsigned short)__b
, 8);
8728 static inline __ATTRS_o_ai vector
unsigned short
8729 vec_find_any_ne_idx(vector
unsigned short __a
, vector
unsigned short __b
) {
8730 return __builtin_s390_vfaeh(__a
, __b
, 8);
8733 static inline __ATTRS_o_ai vector
signed int
8734 vec_find_any_ne_idx(vector
signed int __a
, vector
signed int __b
) {
8735 return (vector
signed int)
8736 __builtin_s390_vfaef((vector
unsigned int)__a
,
8737 (vector
unsigned int)__b
, 8);
8740 static inline __ATTRS_o_ai vector
unsigned int
8741 vec_find_any_ne_idx(vector
bool int __a
, vector
bool int __b
) {
8742 return __builtin_s390_vfaef((vector
unsigned int)__a
,
8743 (vector
unsigned int)__b
, 8);
8746 static inline __ATTRS_o_ai vector
unsigned int
8747 vec_find_any_ne_idx(vector
unsigned int __a
, vector
unsigned int __b
) {
8748 return __builtin_s390_vfaef(__a
, __b
, 8);
8751 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
8753 static inline __ATTRS_o_ai vector
signed char
8754 vec_find_any_ne_idx_cc(vector
signed char __a
, vector
signed char __b
,
8756 return (vector
signed char)
8757 __builtin_s390_vfaebs((vector
unsigned char)__a
,
8758 (vector
unsigned char)__b
, 8, __cc
);
8761 static inline __ATTRS_o_ai vector
unsigned char
8762 vec_find_any_ne_idx_cc(vector
bool char __a
, vector
bool char __b
, int *__cc
) {
8763 return __builtin_s390_vfaebs((vector
unsigned char)__a
,
8764 (vector
unsigned char)__b
, 8, __cc
);
8767 static inline __ATTRS_o_ai vector
unsigned char
8768 vec_find_any_ne_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8770 return __builtin_s390_vfaebs(__a
, __b
, 8, __cc
);
8773 static inline __ATTRS_o_ai vector
signed short
8774 vec_find_any_ne_idx_cc(vector
signed short __a
, vector
signed short __b
,
8776 return (vector
signed short)
8777 __builtin_s390_vfaehs((vector
unsigned short)__a
,
8778 (vector
unsigned short)__b
, 8, __cc
);
8781 static inline __ATTRS_o_ai vector
unsigned short
8782 vec_find_any_ne_idx_cc(vector
bool short __a
, vector
bool short __b
,
8784 return __builtin_s390_vfaehs((vector
unsigned short)__a
,
8785 (vector
unsigned short)__b
, 8, __cc
);
8788 static inline __ATTRS_o_ai vector
unsigned short
8789 vec_find_any_ne_idx_cc(vector
unsigned short __a
, vector
unsigned short __b
,
8791 return __builtin_s390_vfaehs(__a
, __b
, 8, __cc
);
8794 static inline __ATTRS_o_ai vector
signed int
8795 vec_find_any_ne_idx_cc(vector
signed int __a
, vector
signed int __b
,
8797 return (vector
signed int)
8798 __builtin_s390_vfaefs((vector
unsigned int)__a
,
8799 (vector
unsigned int)__b
, 8, __cc
);
8802 static inline __ATTRS_o_ai vector
unsigned int
8803 vec_find_any_ne_idx_cc(vector
bool int __a
, vector
bool int __b
, int *__cc
) {
8804 return __builtin_s390_vfaefs((vector
unsigned int)__a
,
8805 (vector
unsigned int)__b
, 8, __cc
);
8808 static inline __ATTRS_o_ai vector
unsigned int
8809 vec_find_any_ne_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8811 return __builtin_s390_vfaefs(__a
, __b
, 8, __cc
);
8814 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
8816 static inline __ATTRS_o_ai vector
signed char
8817 vec_find_any_ne_or_0_idx(vector
signed char __a
, vector
signed char __b
) {
8818 return (vector
signed char)
8819 __builtin_s390_vfaezb((vector
unsigned char)__a
,
8820 (vector
unsigned char)__b
, 8);
8823 static inline __ATTRS_o_ai vector
unsigned char
8824 vec_find_any_ne_or_0_idx(vector
bool char __a
, vector
bool char __b
) {
8825 return __builtin_s390_vfaezb((vector
unsigned char)__a
,
8826 (vector
unsigned char)__b
, 8);
8829 static inline __ATTRS_o_ai vector
unsigned char
8830 vec_find_any_ne_or_0_idx(vector
unsigned char __a
, vector
unsigned char __b
) {
8831 return __builtin_s390_vfaezb(__a
, __b
, 8);
8834 static inline __ATTRS_o_ai vector
signed short
8835 vec_find_any_ne_or_0_idx(vector
signed short __a
, vector
signed short __b
) {
8836 return (vector
signed short)
8837 __builtin_s390_vfaezh((vector
unsigned short)__a
,
8838 (vector
unsigned short)__b
, 8);
8841 static inline __ATTRS_o_ai vector
unsigned short
8842 vec_find_any_ne_or_0_idx(vector
bool short __a
, vector
bool short __b
) {
8843 return __builtin_s390_vfaezh((vector
unsigned short)__a
,
8844 (vector
unsigned short)__b
, 8);
8847 static inline __ATTRS_o_ai vector
unsigned short
8848 vec_find_any_ne_or_0_idx(vector
unsigned short __a
, vector
unsigned short __b
) {
8849 return __builtin_s390_vfaezh(__a
, __b
, 8);
8852 static inline __ATTRS_o_ai vector
signed int
8853 vec_find_any_ne_or_0_idx(vector
signed int __a
, vector
signed int __b
) {
8854 return (vector
signed int)
8855 __builtin_s390_vfaezf((vector
unsigned int)__a
,
8856 (vector
unsigned int)__b
, 8);
8859 static inline __ATTRS_o_ai vector
unsigned int
8860 vec_find_any_ne_or_0_idx(vector
bool int __a
, vector
bool int __b
) {
8861 return __builtin_s390_vfaezf((vector
unsigned int)__a
,
8862 (vector
unsigned int)__b
, 8);
8865 static inline __ATTRS_o_ai vector
unsigned int
8866 vec_find_any_ne_or_0_idx(vector
unsigned int __a
, vector
unsigned int __b
) {
8867 return __builtin_s390_vfaezf(__a
, __b
, 8);
8870 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
8872 static inline __ATTRS_o_ai vector
signed char
8873 vec_find_any_ne_or_0_idx_cc(vector
signed char __a
, vector
signed char __b
,
8875 return (vector
signed char)
8876 __builtin_s390_vfaezbs((vector
unsigned char)__a
,
8877 (vector
unsigned char)__b
, 8, __cc
);
8880 static inline __ATTRS_o_ai vector
unsigned char
8881 vec_find_any_ne_or_0_idx_cc(vector
bool char __a
, vector
bool char __b
,
8883 return __builtin_s390_vfaezbs((vector
unsigned char)__a
,
8884 (vector
unsigned char)__b
, 8, __cc
);
8887 static inline __ATTRS_o_ai vector
unsigned char
8888 vec_find_any_ne_or_0_idx_cc(vector
unsigned char __a
, vector
unsigned char __b
,
8890 return __builtin_s390_vfaezbs(__a
, __b
, 8, __cc
);
8893 static inline __ATTRS_o_ai vector
signed short
8894 vec_find_any_ne_or_0_idx_cc(vector
signed short __a
, vector
signed short __b
,
8896 return (vector
signed short)
8897 __builtin_s390_vfaezhs((vector
unsigned short)__a
,
8898 (vector
unsigned short)__b
, 8, __cc
);
8901 static inline __ATTRS_o_ai vector
unsigned short
8902 vec_find_any_ne_or_0_idx_cc(vector
bool short __a
, vector
bool short __b
,
8904 return __builtin_s390_vfaezhs((vector
unsigned short)__a
,
8905 (vector
unsigned short)__b
, 8, __cc
);
8908 static inline __ATTRS_o_ai vector
unsigned short
8909 vec_find_any_ne_or_0_idx_cc(vector
unsigned short __a
,
8910 vector
unsigned short __b
, int *__cc
) {
8911 return __builtin_s390_vfaezhs(__a
, __b
, 8, __cc
);
8914 static inline __ATTRS_o_ai vector
signed int
8915 vec_find_any_ne_or_0_idx_cc(vector
signed int __a
, vector
signed int __b
,
8917 return (vector
signed int)
8918 __builtin_s390_vfaezfs((vector
unsigned int)__a
,
8919 (vector
unsigned int)__b
, 8, __cc
);
8922 static inline __ATTRS_o_ai vector
unsigned int
8923 vec_find_any_ne_or_0_idx_cc(vector
bool int __a
, vector
bool int __b
,
8925 return __builtin_s390_vfaezfs((vector
unsigned int)__a
,
8926 (vector
unsigned int)__b
, 8, __cc
);
8929 static inline __ATTRS_o_ai vector
unsigned int
8930 vec_find_any_ne_or_0_idx_cc(vector
unsigned int __a
, vector
unsigned int __b
,
8932 return __builtin_s390_vfaezfs(__a
, __b
, 8, __cc
);
8935 #undef __constant_pow2_range
8936 #undef __constant_range
8944 #error "Use -fzvector to enable vector extensions"