clang 10.0.0git

vecintrin.h
Go to the documentation of this file.
1 /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2 *
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 *
7 *===-----------------------------------------------------------------------===
8 */
9
10 #if defined(__s390x__) && defined(__VEC__)
11
12 #define __ATTRS_ai __attribute__((__always_inline__))
13 #define __ATTRS_o __attribute__((__overloadable__))
14 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
15
16 #define __constant(PARM) \
17 __attribute__((__enable_if__ ((PARM) == (PARM), \
18 "argument must be a constant integer")))
19 #define __constant_range(PARM, LOW, HIGH) \
20 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
21 "argument must be a constant integer from " #LOW " to " #HIGH)))
22 #define __constant_pow2_range(PARM, LOW, HIGH) \
23 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
24 ((PARM) & ((PARM) - 1)) == 0, \
25 "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
26
27 /*-- __lcbb -----------------------------------------------------------------*/
28
29 extern __ATTRS_o unsigned int
30 __lcbb(const void *__ptr, unsigned short __len)
31 __constant_pow2_range(__len, 64, 4096);
32
33 #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
34 __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
35 ((Y) == 64 ? 0 : \
36 (Y) == 128 ? 1 : \
37 (Y) == 256 ? 2 : \
38 (Y) == 512 ? 3 : \
39 (Y) == 1024 ? 4 : \
40 (Y) == 2048 ? 5 : \
41 (Y) == 4096 ? 6 : 0) : 0))
42
43 /*-- vec_extract ------------------------------------------------------------*/
44
45 static inline __ATTRS_o_ai signed char
46 vec_extract(vector signed char __vec, int __index) {
47 return __vec[__index & 15];
48 }
49
50 static inline __ATTRS_o_ai unsigned char
51 vec_extract(vector bool char __vec, int __index) {
52 return __vec[__index & 15];
53 }
54
55 static inline __ATTRS_o_ai unsigned char
56 vec_extract(vector unsigned char __vec, int __index) {
57 return __vec[__index & 15];
58 }
59
60 static inline __ATTRS_o_ai signed short
61 vec_extract(vector signed short __vec, int __index) {
62 return __vec[__index & 7];
63 }
64
65 static inline __ATTRS_o_ai unsigned short
66 vec_extract(vector bool short __vec, int __index) {
67 return __vec[__index & 7];
68 }
69
70 static inline __ATTRS_o_ai unsigned short
71 vec_extract(vector unsigned short __vec, int __index) {
72 return __vec[__index & 7];
73 }
74
75 static inline __ATTRS_o_ai signed int
76 vec_extract(vector signed int __vec, int __index) {
77 return __vec[__index & 3];
78 }
79
80 static inline __ATTRS_o_ai unsigned int
81 vec_extract(vector bool int __vec, int __index) {
82 return __vec[__index & 3];
83 }
84
85 static inline __ATTRS_o_ai unsigned int
86 vec_extract(vector unsigned int __vec, int __index) {
87 return __vec[__index & 3];
88 }
89
90 static inline __ATTRS_o_ai signed long long
91 vec_extract(vector signed long long __vec, int __index) {
92 return __vec[__index & 1];
93 }
94
95 static inline __ATTRS_o_ai unsigned long long
96 vec_extract(vector bool long long __vec, int __index) {
97 return __vec[__index & 1];
98 }
99
100 static inline __ATTRS_o_ai unsigned long long
101 vec_extract(vector unsigned long long __vec, int __index) {
102 return __vec[__index & 1];
103 }
104
105 #if __ARCH__ >= 12
106 static inline __ATTRS_o_ai float
107 vec_extract(vector float __vec, int __index) {
108 return __vec[__index & 3];
109 }
110 #endif
111
112 static inline __ATTRS_o_ai double
113 vec_extract(vector double __vec, int __index) {
114 return __vec[__index & 1];
115 }
116
117 /*-- vec_insert -------------------------------------------------------------*/
118
119 static inline __ATTRS_o_ai vector signed char
120 vec_insert(signed char __scalar, vector signed char __vec, int __index) {
121 __vec[__index & 15] = __scalar;
122 return __vec;
123 }
124
125 // This prototype is deprecated.
126 static inline __ATTRS_o_ai vector unsigned char
127 vec_insert(unsigned char __scalar, vector bool char __vec, int __index) {
128 vector unsigned char __newvec = (vector unsigned char)__vec;
129 __newvec[__index & 15] = (unsigned char)__scalar;
130 return __newvec;
131 }
132
133 static inline __ATTRS_o_ai vector unsigned char
134 vec_insert(unsigned char __scalar, vector unsigned char __vec, int __index) {
135 __vec[__index & 15] = __scalar;
136 return __vec;
137 }
138
139 static inline __ATTRS_o_ai vector signed short
140 vec_insert(signed short __scalar, vector signed short __vec, int __index) {
141 __vec[__index & 7] = __scalar;
142 return __vec;
143 }
144
145 // This prototype is deprecated.
146 static inline __ATTRS_o_ai vector unsigned short
147 vec_insert(unsigned short __scalar, vector bool short __vec, int __index) {
148 vector unsigned short __newvec = (vector unsigned short)__vec;
149 __newvec[__index & 7] = (unsigned short)__scalar;
150 return __newvec;
151 }
152
153 static inline __ATTRS_o_ai vector unsigned short
154 vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) {
155 __vec[__index & 7] = __scalar;
156 return __vec;
157 }
158
159 static inline __ATTRS_o_ai vector signed int
160 vec_insert(signed int __scalar, vector signed int __vec, int __index) {
161 __vec[__index & 3] = __scalar;
162 return __vec;
163 }
164
165 // This prototype is deprecated.
166 static inline __ATTRS_o_ai vector unsigned int
167 vec_insert(unsigned int __scalar, vector bool int __vec, int __index) {
168 vector unsigned int __newvec = (vector unsigned int)__vec;
169 __newvec[__index & 3] = __scalar;
170 return __newvec;
171 }
172
173 static inline __ATTRS_o_ai vector unsigned int
174 vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) {
175 __vec[__index & 3] = __scalar;
176 return __vec;
177 }
178
179 static inline __ATTRS_o_ai vector signed long long
180 vec_insert(signed long long __scalar, vector signed long long __vec,
181 int __index) {
182 __vec[__index & 1] = __scalar;
183 return __vec;
184 }
185
186 // This prototype is deprecated.
187 static inline __ATTRS_o_ai vector unsigned long long
188 vec_insert(unsigned long long __scalar, vector bool long long __vec,
189 int __index) {
190 vector unsigned long long __newvec = (vector unsigned long long)__vec;
191 __newvec[__index & 1] = __scalar;
192 return __newvec;
193 }
194
195 static inline __ATTRS_o_ai vector unsigned long long
196 vec_insert(unsigned long long __scalar, vector unsigned long long __vec,
197 int __index) {
198 __vec[__index & 1] = __scalar;
199 return __vec;
200 }
201
202 #if __ARCH__ >= 12
203 static inline __ATTRS_o_ai vector float
204 vec_insert(float __scalar, vector float __vec, int __index) {
205 __vec[__index & 1] = __scalar;
206 return __vec;
207 }
208 #endif
209
210 static inline __ATTRS_o_ai vector double
211 vec_insert(double __scalar, vector double __vec, int __index) {
212 __vec[__index & 1] = __scalar;
213 return __vec;
214 }
215
216 /*-- vec_promote ------------------------------------------------------------*/
217
218 static inline __ATTRS_o_ai vector signed char
219 vec_promote(signed char __scalar, int __index) {
220 const vector signed char __zero = (vector signed char)0;
221 vector signed char __vec = __builtin_shufflevector(__zero, __zero,
222 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
223 __vec[__index & 15] = __scalar;
224 return __vec;
225 }
226
227 static inline __ATTRS_o_ai vector unsigned char
228 vec_promote(unsigned char __scalar, int __index) {
229 const vector unsigned char __zero = (vector unsigned char)0;
230 vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
232 __vec[__index & 15] = __scalar;
233 return __vec;
234 }
235
236 static inline __ATTRS_o_ai vector signed short
237 vec_promote(signed short __scalar, int __index) {
238 const vector signed short __zero = (vector signed short)0;
239 vector signed short __vec = __builtin_shufflevector(__zero, __zero,
240 -1, -1, -1, -1, -1, -1, -1, -1);
241 __vec[__index & 7] = __scalar;
242 return __vec;
243 }
244
245 static inline __ATTRS_o_ai vector unsigned short
246 vec_promote(unsigned short __scalar, int __index) {
247 const vector unsigned short __zero = (vector unsigned short)0;
248 vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
249 -1, -1, -1, -1, -1, -1, -1, -1);
250 __vec[__index & 7] = __scalar;
251 return __vec;
252 }
253
254 static inline __ATTRS_o_ai vector signed int
255 vec_promote(signed int __scalar, int __index) {
256 const vector signed int __zero = (vector signed int)0;
257 vector signed int __vec = __builtin_shufflevector(__zero, __zero,
258 -1, -1, -1, -1);
259 __vec[__index & 3] = __scalar;
260 return __vec;
261 }
262
263 static inline __ATTRS_o_ai vector unsigned int
264 vec_promote(unsigned int __scalar, int __index) {
265 const vector unsigned int __zero = (vector unsigned int)0;
266 vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
267 -1, -1, -1, -1);
268 __vec[__index & 3] = __scalar;
269 return __vec;
270 }
271
272 static inline __ATTRS_o_ai vector signed long long
273 vec_promote(signed long long __scalar, int __index) {
274 const vector signed long long __zero = (vector signed long long)0;
275 vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
276 -1, -1);
277 __vec[__index & 1] = __scalar;
278 return __vec;
279 }
280
281 static inline __ATTRS_o_ai vector unsigned long long
282 vec_promote(unsigned long long __scalar, int __index) {
283 const vector unsigned long long __zero = (vector unsigned long long)0;
284 vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
285 -1, -1);
286 __vec[__index & 1] = __scalar;
287 return __vec;
288 }
289
290 #if __ARCH__ >= 12
291 static inline __ATTRS_o_ai vector float
292 vec_promote(float __scalar, int __index) {
293 const vector float __zero = (vector float)0;
294 vector float __vec = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
295 __vec[__index & 3] = __scalar;
296 return __vec;
297 }
298 #endif
299
300 static inline __ATTRS_o_ai vector double
301 vec_promote(double __scalar, int __index) {
302 const vector double __zero = (vector double)0;
303 vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
304 __vec[__index & 1] = __scalar;
305 return __vec;
306 }
307
308 /*-- vec_insert_and_zero ----------------------------------------------------*/
309
310 static inline __ATTRS_o_ai vector signed char
311 vec_insert_and_zero(const signed char *__ptr) {
312 vector signed char __vec = (vector signed char)0;
313 __vec[7] = *__ptr;
314 return __vec;
315 }
316
317 static inline __ATTRS_o_ai vector unsigned char
318 vec_insert_and_zero(const unsigned char *__ptr) {
319 vector unsigned char __vec = (vector unsigned char)0;
320 __vec[7] = *__ptr;
321 return __vec;
322 }
323
324 static inline __ATTRS_o_ai vector signed short
325 vec_insert_and_zero(const signed short *__ptr) {
326 vector signed short __vec = (vector signed short)0;
327 __vec[3] = *__ptr;
328 return __vec;
329 }
330
331 static inline __ATTRS_o_ai vector unsigned short
332 vec_insert_and_zero(const unsigned short *__ptr) {
333 vector unsigned short __vec = (vector unsigned short)0;
334 __vec[3] = *__ptr;
335 return __vec;
336 }
337
338 static inline __ATTRS_o_ai vector signed int
339 vec_insert_and_zero(const signed int *__ptr) {
340 vector signed int __vec = (vector signed int)0;
341 __vec[1] = *__ptr;
342 return __vec;
343 }
344
345 static inline __ATTRS_o_ai vector unsigned int
346 vec_insert_and_zero(const unsigned int *__ptr) {
347 vector unsigned int __vec = (vector unsigned int)0;
348 __vec[1] = *__ptr;
349 return __vec;
350 }
351
352 static inline __ATTRS_o_ai vector signed long long
353 vec_insert_and_zero(const signed long long *__ptr) {
354 vector signed long long __vec = (vector signed long long)0;
355 __vec[0] = *__ptr;
356 return __vec;
357 }
358
359 static inline __ATTRS_o_ai vector unsigned long long
360 vec_insert_and_zero(const unsigned long long *__ptr) {
361 vector unsigned long long __vec = (vector unsigned long long)0;
362 __vec[0] = *__ptr;
363 return __vec;
364 }
365
366 #if __ARCH__ >= 12
367 static inline __ATTRS_o_ai vector float
368 vec_insert_and_zero(const float *__ptr) {
369 vector float __vec = (vector float)0;
370 __vec[1] = *__ptr;
371 return __vec;
372 }
373 #endif
374
375 static inline __ATTRS_o_ai vector double
376 vec_insert_and_zero(const double *__ptr) {
377 vector double __vec = (vector double)0;
378 __vec[0] = *__ptr;
379 return __vec;
380 }
381
382 /*-- vec_perm ---------------------------------------------------------------*/
383
384 static inline __ATTRS_o_ai vector signed char
385 vec_perm(vector signed char __a, vector signed char __b,
386 vector unsigned char __c) {
387 return (vector signed char)__builtin_s390_vperm(
388 (vector unsigned char)__a, (vector unsigned char)__b, __c);
389 }
390
391 static inline __ATTRS_o_ai vector unsigned char
392 vec_perm(vector unsigned char __a, vector unsigned char __b,
393 vector unsigned char __c) {
394 return (vector unsigned char)__builtin_s390_vperm(
395 (vector unsigned char)__a, (vector unsigned char)__b, __c);
396 }
397
398 static inline __ATTRS_o_ai vector bool char
399 vec_perm(vector bool char __a, vector bool char __b,
400 vector unsigned char __c) {
401 return (vector bool char)__builtin_s390_vperm(
402 (vector unsigned char)__a, (vector unsigned char)__b, __c);
403 }
404
405 static inline __ATTRS_o_ai vector signed short
406 vec_perm(vector signed short __a, vector signed short __b,
407 vector unsigned char __c) {
408 return (vector signed short)__builtin_s390_vperm(
409 (vector unsigned char)__a, (vector unsigned char)__b, __c);
410 }
411
412 static inline __ATTRS_o_ai vector unsigned short
413 vec_perm(vector unsigned short __a, vector unsigned short __b,
414 vector unsigned char __c) {
415 return (vector unsigned short)__builtin_s390_vperm(
416 (vector unsigned char)__a, (vector unsigned char)__b, __c);
417 }
418
419 static inline __ATTRS_o_ai vector bool short
420 vec_perm(vector bool short __a, vector bool short __b,
421 vector unsigned char __c) {
422 return (vector bool short)__builtin_s390_vperm(
423 (vector unsigned char)__a, (vector unsigned char)__b, __c);
424 }
425
426 static inline __ATTRS_o_ai vector signed int
427 vec_perm(vector signed int __a, vector signed int __b,
428 vector unsigned char __c) {
429 return (vector signed int)__builtin_s390_vperm(
430 (vector unsigned char)__a, (vector unsigned char)__b, __c);
431 }
432
433 static inline __ATTRS_o_ai vector unsigned int
434 vec_perm(vector unsigned int __a, vector unsigned int __b,
435 vector unsigned char __c) {
436 return (vector unsigned int)__builtin_s390_vperm(
437 (vector unsigned char)__a, (vector unsigned char)__b, __c);
438 }
439
440 static inline __ATTRS_o_ai vector bool int
441 vec_perm(vector bool int __a, vector bool int __b,
442 vector unsigned char __c) {
443 return (vector bool int)__builtin_s390_vperm(
444 (vector unsigned char)__a, (vector unsigned char)__b, __c);
445 }
446
447 static inline __ATTRS_o_ai vector signed long long
448 vec_perm(vector signed long long __a, vector signed long long __b,
449 vector unsigned char __c) {
450 return (vector signed long long)__builtin_s390_vperm(
451 (vector unsigned char)__a, (vector unsigned char)__b, __c);
452 }
453
454 static inline __ATTRS_o_ai vector unsigned long long
455 vec_perm(vector unsigned long long __a, vector unsigned long long __b,
456 vector unsigned char __c) {
457 return (vector unsigned long long)__builtin_s390_vperm(
458 (vector unsigned char)__a, (vector unsigned char)__b, __c);
459 }
460
461 static inline __ATTRS_o_ai vector bool long long
462 vec_perm(vector bool long long __a, vector bool long long __b,
463 vector unsigned char __c) {
464 return (vector bool long long)__builtin_s390_vperm(
465 (vector unsigned char)__a, (vector unsigned char)__b, __c);
466 }
467
468 #if __ARCH__ >= 12
469 static inline __ATTRS_o_ai vector float
470 vec_perm(vector float __a, vector float __b,
471 vector unsigned char __c) {
472 return (vector float)__builtin_s390_vperm(
473 (vector unsigned char)__a, (vector unsigned char)__b, __c);
474 }
475 #endif
476
477 static inline __ATTRS_o_ai vector double
478 vec_perm(vector double __a, vector double __b,
479 vector unsigned char __c) {
480 return (vector double)__builtin_s390_vperm(
481 (vector unsigned char)__a, (vector unsigned char)__b, __c);
482 }
483
484 /*-- vec_permi --------------------------------------------------------------*/
485
486 // This prototype is deprecated.
487 extern __ATTRS_o vector signed long long
488 vec_permi(vector signed long long __a, vector signed long long __b, int __c)
489 __constant_range(__c, 0, 3);
490
491 // This prototype is deprecated.
492 extern __ATTRS_o vector unsigned long long
493 vec_permi(vector unsigned long long __a, vector unsigned long long __b, int __c)
494 __constant_range(__c, 0, 3);
495
496 // This prototype is deprecated.
497 extern __ATTRS_o vector bool long long
498 vec_permi(vector bool long long __a, vector bool long long __b, int __c)
499 __constant_range(__c, 0, 3);
500
501 // This prototype is deprecated.
502 extern __ATTRS_o vector double
503 vec_permi(vector double __a, vector double __b, int __c)
504 __constant_range(__c, 0, 3);
505
506 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
507 __builtin_s390_vpdi((vector unsigned long long)(X), \
508 (vector unsigned long long)(Y), \
509 (((Z) & 2) << 1) | ((Z) & 1)))
510
511 /*-- vec_bperm_u128 ---------------------------------------------------------*/
512
513 #if __ARCH__ >= 12
514 static inline __ATTRS_ai vector unsigned long long
515 vec_bperm_u128(vector unsigned char __a, vector unsigned char __b) {
516 return __builtin_s390_vbperm(__a, __b);
517 }
518 #endif
519
520 /*-- vec_revb ---------------------------------------------------------------*/
521
522 static inline __ATTRS_o_ai vector signed short
523 vec_revb(vector signed short __vec) {
524 return (vector signed short)
525 __builtin_s390_vlbrh((vector unsigned short)__vec);
526 }
527
528 static inline __ATTRS_o_ai vector unsigned short
529 vec_revb(vector unsigned short __vec) {
530 return __builtin_s390_vlbrh(__vec);
531 }
532
533 static inline __ATTRS_o_ai vector signed int
534 vec_revb(vector signed int __vec) {
535 return (vector signed int)
536 __builtin_s390_vlbrf((vector unsigned int)__vec);
537 }
538
539 static inline __ATTRS_o_ai vector unsigned int
540 vec_revb(vector unsigned int __vec) {
541 return __builtin_s390_vlbrf(__vec);
542 }
543
544 static inline __ATTRS_o_ai vector signed long long
545 vec_revb(vector signed long long __vec) {
546 return (vector signed long long)
547 __builtin_s390_vlbrg((vector unsigned long long)__vec);
548 }
549
550 static inline __ATTRS_o_ai vector unsigned long long
551 vec_revb(vector unsigned long long __vec) {
552 return __builtin_s390_vlbrg(__vec);
553 }
554
555 #if __ARCH__ >= 12
556 static inline __ATTRS_o_ai vector float
557 vec_revb(vector float __vec) {
558 return (vector float)
559 __builtin_s390_vlbrf((vector unsigned int)__vec);
560 }
561 #endif
562
563 static inline __ATTRS_o_ai vector double
564 vec_revb(vector double __vec) {
565 return (vector double)
566 __builtin_s390_vlbrg((vector unsigned long long)__vec);
567 }
568
569 /*-- vec_reve ---------------------------------------------------------------*/
570
571 static inline __ATTRS_o_ai vector signed char
572 vec_reve(vector signed char __vec) {
573 return (vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
574 __vec[11], __vec[10], __vec[9], __vec[8],
575 __vec[7], __vec[6], __vec[5], __vec[4],
576 __vec[3], __vec[2], __vec[1], __vec[0] };
577 }
578
579 static inline __ATTRS_o_ai vector unsigned char
580 vec_reve(vector unsigned char __vec) {
581 return (vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
582 __vec[11], __vec[10], __vec[9], __vec[8],
583 __vec[7], __vec[6], __vec[5], __vec[4],
584 __vec[3], __vec[2], __vec[1], __vec[0] };
585 }
586
587 static inline __ATTRS_o_ai vector bool char
588 vec_reve(vector bool char __vec) {
589 return (vector bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
590 __vec[11], __vec[10], __vec[9], __vec[8],
591 __vec[7], __vec[6], __vec[5], __vec[4],
592 __vec[3], __vec[2], __vec[1], __vec[0] };
593 }
594
595 static inline __ATTRS_o_ai vector signed short
596 vec_reve(vector signed short __vec) {
597 return (vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
598 __vec[3], __vec[2], __vec[1], __vec[0] };
599 }
600
601 static inline __ATTRS_o_ai vector unsigned short
602 vec_reve(vector unsigned short __vec) {
603 return (vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
604 __vec[3], __vec[2], __vec[1], __vec[0] };
605 }
606
607 static inline __ATTRS_o_ai vector bool short
608 vec_reve(vector bool short __vec) {
609 return (vector bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
610 __vec[3], __vec[2], __vec[1], __vec[0] };
611 }
612
613 static inline __ATTRS_o_ai vector signed int
614 vec_reve(vector signed int __vec) {
615 return (vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
616 }
617
618 static inline __ATTRS_o_ai vector unsigned int
619 vec_reve(vector unsigned int __vec) {
620 return (vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
621 }
622
623 static inline __ATTRS_o_ai vector bool int
624 vec_reve(vector bool int __vec) {
625 return (vector bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
626 }
627
628 static inline __ATTRS_o_ai vector signed long long
629 vec_reve(vector signed long long __vec) {
630 return (vector signed long long) { __vec[1], __vec[0] };
631 }
632
633 static inline __ATTRS_o_ai vector unsigned long long
634 vec_reve(vector unsigned long long __vec) {
635 return (vector unsigned long long) { __vec[1], __vec[0] };
636 }
637
638 static inline __ATTRS_o_ai vector bool long long
639 vec_reve(vector bool long long __vec) {
640 return (vector bool long long) { __vec[1], __vec[0] };
641 }
642
643 #if __ARCH__ >= 12
644 static inline __ATTRS_o_ai vector float
645 vec_reve(vector float __vec) {
646 return (vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
647 }
648 #endif
649
650 static inline __ATTRS_o_ai vector double
651 vec_reve(vector double __vec) {
652 return (vector double) { __vec[1], __vec[0] };
653 }
654
655 /*-- vec_sel ----------------------------------------------------------------*/
656
657 static inline __ATTRS_o_ai vector signed char
658 vec_sel(vector signed char __a, vector signed char __b,
659 vector unsigned char __c) {
660 return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
661 }
662
663 static inline __ATTRS_o_ai vector signed char
664 vec_sel(vector signed char __a, vector signed char __b, vector bool char __c) {
665 return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
666 }
667
668 static inline __ATTRS_o_ai vector bool char
669 vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) {
670 return ((vector bool char)__c & __b) | (~(vector bool char)__c & __a);
671 }
672
673 static inline __ATTRS_o_ai vector bool char
674 vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) {
675 return (__c & __b) | (~__c & __a);
676 }
677
678 static inline __ATTRS_o_ai vector unsigned char
679 vec_sel(vector unsigned char __a, vector unsigned char __b,
680 vector unsigned char __c) {
681 return (__c & __b) | (~__c & __a);
682 }
683
684 static inline __ATTRS_o_ai vector unsigned char
685 vec_sel(vector unsigned char __a, vector unsigned char __b,
686 vector bool char __c) {
687 return ((vector unsigned char)__c & __b) | (~(vector unsigned char)__c & __a);
688 }
689
690 static inline __ATTRS_o_ai vector signed short
691 vec_sel(vector signed short __a, vector signed short __b,
692 vector unsigned short __c) {
693 return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
694 }
695
696 static inline __ATTRS_o_ai vector signed short
697 vec_sel(vector signed short __a, vector signed short __b,
698 vector bool short __c) {
699 return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
700 }
701
702 static inline __ATTRS_o_ai vector bool short
703 vec_sel(vector bool short __a, vector bool short __b,
704 vector unsigned short __c) {
705 return ((vector bool short)__c & __b) | (~(vector bool short)__c & __a);
706 }
707
708 static inline __ATTRS_o_ai vector bool short
709 vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) {
710 return (__c & __b) | (~__c & __a);
711 }
712
713 static inline __ATTRS_o_ai vector unsigned short
714 vec_sel(vector unsigned short __a, vector unsigned short __b,
715 vector unsigned short __c) {
716 return (__c & __b) | (~__c & __a);
717 }
718
719 static inline __ATTRS_o_ai vector unsigned short
720 vec_sel(vector unsigned short __a, vector unsigned short __b,
721 vector bool short __c) {
722 return (((vector unsigned short)__c & __b) |
723 (~(vector unsigned short)__c & __a));
724 }
725
726 static inline __ATTRS_o_ai vector signed int
727 vec_sel(vector signed int __a, vector signed int __b,
728 vector unsigned int __c) {
729 return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
730 }
731
732 static inline __ATTRS_o_ai vector signed int
733 vec_sel(vector signed int __a, vector signed int __b, vector bool int __c) {
734 return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
735 }
736
737 static inline __ATTRS_o_ai vector bool int
738 vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) {
739 return ((vector bool int)__c & __b) | (~(vector bool int)__c & __a);
740 }
741
742 static inline __ATTRS_o_ai vector bool int
743 vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) {
744 return (__c & __b) | (~__c & __a);
745 }
746
747 static inline __ATTRS_o_ai vector unsigned int
748 vec_sel(vector unsigned int __a, vector unsigned int __b,
749 vector unsigned int __c) {
750 return (__c & __b) | (~__c & __a);
751 }
752
753 static inline __ATTRS_o_ai vector unsigned int
754 vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) {
755 return ((vector unsigned int)__c & __b) | (~(vector unsigned int)__c & __a);
756 }
757
758 static inline __ATTRS_o_ai vector signed long long
759 vec_sel(vector signed long long __a, vector signed long long __b,
760 vector unsigned long long __c) {
761 return (((vector signed long long)__c & __b) |
762 (~(vector signed long long)__c & __a));
763 }
764
765 static inline __ATTRS_o_ai vector signed long long
766 vec_sel(vector signed long long __a, vector signed long long __b,
767 vector bool long long __c) {
768 return (((vector signed long long)__c & __b) |
769 (~(vector signed long long)__c & __a));
770 }
771
772 static inline __ATTRS_o_ai vector bool long long
773 vec_sel(vector bool long long __a, vector bool long long __b,
774 vector unsigned long long __c) {
775 return (((vector bool long long)__c & __b) |
776 (~(vector bool long long)__c & __a));
777 }
778
779 static inline __ATTRS_o_ai vector bool long long
780 vec_sel(vector bool long long __a, vector bool long long __b,
781 vector bool long long __c) {
782 return (__c & __b) | (~__c & __a);
783 }
784
785 static inline __ATTRS_o_ai vector unsigned long long
786 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
787 vector unsigned long long __c) {
788 return (__c & __b) | (~__c & __a);
789 }
790
791 static inline __ATTRS_o_ai vector unsigned long long
792 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
793 vector bool long long __c) {
794 return (((vector unsigned long long)__c & __b) |
795 (~(vector unsigned long long)__c & __a));
796 }
797
798 #if __ARCH__ >= 12
799 static inline __ATTRS_o_ai vector float
800 vec_sel(vector float __a, vector float __b, vector unsigned int __c) {
801 return (vector float)((__c & (vector unsigned int)__b) |
802 (~__c & (vector unsigned int)__a));
803 }
804
805 static inline __ATTRS_o_ai vector float
806 vec_sel(vector float __a, vector float __b, vector bool int __c) {
807 vector unsigned int __ac = (vector unsigned int)__a;
808 vector unsigned int __bc = (vector unsigned int)__b;
809 vector unsigned int __cc = (vector unsigned int)__c;
810 return (vector float)((__cc & __bc) | (~__cc & __ac));
811 }
812 #endif
813
814 static inline __ATTRS_o_ai vector double
815 vec_sel(vector double __a, vector double __b, vector unsigned long long __c) {
816 return (vector double)((__c & (vector unsigned long long)__b) |
817 (~__c & (vector unsigned long long)__a));
818 }
819
820 static inline __ATTRS_o_ai vector double
821 vec_sel(vector double __a, vector double __b, vector bool long long __c) {
822 vector unsigned long long __ac = (vector unsigned long long)__a;
823 vector unsigned long long __bc = (vector unsigned long long)__b;
824 vector unsigned long long __cc = (vector unsigned long long)__c;
825 return (vector double)((__cc & __bc) | (~__cc & __ac));
826 }
827
828 /*-- vec_gather_element -----------------------------------------------------*/
829
830 static inline __ATTRS_o_ai vector signed int
831 vec_gather_element(vector signed int __vec, vector unsigned int __offset,
832 const signed int *__ptr, int __index)
833 __constant_range(__index, 0, 3) {
834 __vec[__index] = *(const signed int *)(
835 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
836 return __vec;
837 }
838
839 static inline __ATTRS_o_ai vector bool int
840 vec_gather_element(vector bool int __vec, vector unsigned int __offset,
841 const unsigned int *__ptr, int __index)
842 __constant_range(__index, 0, 3) {
843 __vec[__index] = *(const unsigned int *)(
844 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
845 return __vec;
846 }
847
848 static inline __ATTRS_o_ai vector unsigned int
849 vec_gather_element(vector unsigned int __vec, vector unsigned int __offset,
850 const unsigned int *__ptr, int __index)
851 __constant_range(__index, 0, 3) {
852 __vec[__index] = *(const unsigned int *)(
853 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
854 return __vec;
855 }
856
857 static inline __ATTRS_o_ai vector signed long long
858 vec_gather_element(vector signed long long __vec,
859 vector unsigned long long __offset,
860 const signed long long *__ptr, int __index)
861 __constant_range(__index, 0, 1) {
862 __vec[__index] = *(const signed long long *)(
863 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
864 return __vec;
865 }
866
867 static inline __ATTRS_o_ai vector bool long long
868 vec_gather_element(vector bool long long __vec,
869 vector unsigned long long __offset,
870 const unsigned long long *__ptr, int __index)
871 __constant_range(__index, 0, 1) {
872 __vec[__index] = *(const unsigned long long *)(
873 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
874 return __vec;
875 }
876
877 static inline __ATTRS_o_ai vector unsigned long long
878 vec_gather_element(vector unsigned long long __vec,
879 vector unsigned long long __offset,
880 const unsigned long long *__ptr, int __index)
881 __constant_range(__index, 0, 1) {
882 __vec[__index] = *(const unsigned long long *)(
883 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
884 return __vec;
885 }
886
887 #if __ARCH__ >= 12
888 static inline __ATTRS_o_ai vector float
889 vec_gather_element(vector float __vec, vector unsigned int __offset,
890 const float *__ptr, int __index)
891 __constant_range(__index, 0, 3) {
892 __vec[__index] = *(const float *)(
893 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
894 return __vec;
895 }
896 #endif
897
898 static inline __ATTRS_o_ai vector double
899 vec_gather_element(vector double __vec, vector unsigned long long __offset,
900 const double *__ptr, int __index)
901 __constant_range(__index, 0, 1) {
902 __vec[__index] = *(const double *)(
903 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
904 return __vec;
905 }
906
907 /*-- vec_scatter_element ----------------------------------------------------*/
908
909 static inline __ATTRS_o_ai void
910 vec_scatter_element(vector signed int __vec, vector unsigned int __offset,
911 signed int *__ptr, int __index)
912 __constant_range(__index, 0, 3) {
913 *(signed int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
914 __vec[__index];
915 }
916
917 static inline __ATTRS_o_ai void
918 vec_scatter_element(vector bool int __vec, vector unsigned int __offset,
919 unsigned int *__ptr, int __index)
920 __constant_range(__index, 0, 3) {
921 *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
922 __vec[__index];
923 }
924
925 static inline __ATTRS_o_ai void
926 vec_scatter_element(vector unsigned int __vec, vector unsigned int __offset,
927 unsigned int *__ptr, int __index)
928 __constant_range(__index, 0, 3) {
929 *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
930 __vec[__index];
931 }
932
933 static inline __ATTRS_o_ai void
934 vec_scatter_element(vector signed long long __vec,
935 vector unsigned long long __offset,
936 signed long long *__ptr, int __index)
937 __constant_range(__index, 0, 1) {
938 *(signed long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
939 __vec[__index];
940 }
941
942 static inline __ATTRS_o_ai void
943 vec_scatter_element(vector bool long long __vec,
944 vector unsigned long long __offset,
945 unsigned long long *__ptr, int __index)
946 __constant_range(__index, 0, 1) {
947 *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
948 __vec[__index];
949 }
950
951 static inline __ATTRS_o_ai void
952 vec_scatter_element(vector unsigned long long __vec,
953 vector unsigned long long __offset,
954 unsigned long long *__ptr, int __index)
955 __constant_range(__index, 0, 1) {
956 *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
957 __vec[__index];
958 }
959
960 #if __ARCH__ >= 12
961 static inline __ATTRS_o_ai void
962 vec_scatter_element(vector float __vec, vector unsigned int __offset,
963 float *__ptr, int __index)
964 __constant_range(__index, 0, 3) {
965 *(float *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
966 __vec[__index];
967 }
968 #endif
969
970 static inline __ATTRS_o_ai void
971 vec_scatter_element(vector double __vec, vector unsigned long long __offset,
972 double *__ptr, int __index)
973 __constant_range(__index, 0, 1) {
974 *(double *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
975 __vec[__index];
976 }
977
978 /*-- vec_xl -----------------------------------------------------------------*/
979
980 static inline __ATTRS_o_ai vector signed char
981 vec_xl(long __offset, const signed char *__ptr) {
982 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
983 }
984
985 static inline __ATTRS_o_ai vector unsigned char
986 vec_xl(long __offset, const unsigned char *__ptr) {
987 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
988 }
989
990 static inline __ATTRS_o_ai vector signed short
991 vec_xl(long __offset, const signed short *__ptr) {
992 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
993 }
994
995 static inline __ATTRS_o_ai vector unsigned short
996 vec_xl(long __offset, const unsigned short *__ptr) {
997 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
998 }
999
1000 static inline __ATTRS_o_ai vector signed int
1001 vec_xl(long __offset, const signed int *__ptr) {
1002 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1003 }
1004
1005 static inline __ATTRS_o_ai vector unsigned int
1006 vec_xl(long __offset, const unsigned int *__ptr) {
1007 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1008 }
1009
1010 static inline __ATTRS_o_ai vector signed long long
1011 vec_xl(long __offset, const signed long long *__ptr) {
1012 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
1013 }
1014
1015 static inline __ATTRS_o_ai vector unsigned long long
1016 vec_xl(long __offset, const unsigned long long *__ptr) {
1017 return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
1018 }
1019
1020 #if __ARCH__ >= 12
1021 static inline __ATTRS_o_ai vector float
1022 vec_xl(long __offset, const float *__ptr) {
1023 return *(const vector float *)((__INTPTR_TYPE__)__ptr + __offset);
1024 }
1025 #endif
1026
1027 static inline __ATTRS_o_ai vector double
1028 vec_xl(long __offset, const double *__ptr) {
1029 return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
1030 }
1031
1032 /*-- vec_xld2 ---------------------------------------------------------------*/
1033
1034 // This prototype is deprecated.
1035 static inline __ATTRS_o_ai vector signed char
1036 vec_xld2(long __offset, const signed char *__ptr) {
1037 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
1038 }
1039
1040 // This prototype is deprecated.
1041 static inline __ATTRS_o_ai vector unsigned char
1042 vec_xld2(long __offset, const unsigned char *__ptr) {
1043 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
1044 }
1045
1046 // This prototype is deprecated.
1047 static inline __ATTRS_o_ai vector signed short
1048 vec_xld2(long __offset, const signed short *__ptr) {
1049 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
1050 }
1051
1052 // This prototype is deprecated.
1053 static inline __ATTRS_o_ai vector unsigned short
1054 vec_xld2(long __offset, const unsigned short *__ptr) {
1055 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
1056 }
1057
1058 // This prototype is deprecated.
1059 static inline __ATTRS_o_ai vector signed int
1060 vec_xld2(long __offset, const signed int *__ptr) {
1061 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1062 }
1063
1064 // This prototype is deprecated.
1065 static inline __ATTRS_o_ai vector unsigned int
1066 vec_xld2(long __offset, const unsigned int *__ptr) {
1067 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1068 }
1069
1070 // This prototype is deprecated.
1071 static inline __ATTRS_o_ai vector signed long long
1072 vec_xld2(long __offset, const signed long long *__ptr) {
1073 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
1074 }
1075
1076 // This prototype is deprecated.
1077 static inline __ATTRS_o_ai vector unsigned long long
1078 vec_xld2(long __offset, const unsigned long long *__ptr) {
1079 return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
1080 }
1081
1082 // This prototype is deprecated.
1083 static inline __ATTRS_o_ai vector double
1084 vec_xld2(long __offset, const double *__ptr) {
1085 return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
1086 }
1087
1088 /*-- vec_xlw4 ---------------------------------------------------------------*/
1089
1090 // This prototype is deprecated.
1091 static inline __ATTRS_o_ai vector signed char
1092 vec_xlw4(long __offset, const signed char *__ptr) {
1093 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
1094 }
1095
1096 // This prototype is deprecated.
1097 static inline __ATTRS_o_ai vector unsigned char
1098 vec_xlw4(long __offset, const unsigned char *__ptr) {
1099 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
1100 }
1101
1102 // This prototype is deprecated.
1103 static inline __ATTRS_o_ai vector signed short
1104 vec_xlw4(long __offset, const signed short *__ptr) {
1105 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
1106 }
1107
1108 // This prototype is deprecated.
1109 static inline __ATTRS_o_ai vector unsigned short
1110 vec_xlw4(long __offset, const unsigned short *__ptr) {
1111 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
1112 }
1113
1114 // This prototype is deprecated.
1115 static inline __ATTRS_o_ai vector signed int
1116 vec_xlw4(long __offset, const signed int *__ptr) {
1117 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
1118 }
1119
1120 // This prototype is deprecated.
1121 static inline __ATTRS_o_ai vector unsigned int
1122 vec_xlw4(long __offset, const unsigned int *__ptr) {
1123 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1124 }
1125
1126 /*-- vec_xst ----------------------------------------------------------------*/
1127
1128 static inline __ATTRS_o_ai void
1129 vec_xst(vector signed char __vec, long __offset, signed char *__ptr) {
1130 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1131 }
1132
1133 static inline __ATTRS_o_ai void
1134 vec_xst(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1135 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1136 }
1137
1138 static inline __ATTRS_o_ai void
1139 vec_xst(vector signed short __vec, long __offset, signed short *__ptr) {
1140 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1141 }
1142
1143 static inline __ATTRS_o_ai void
1144 vec_xst(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1145 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1146 }
1147
1148 static inline __ATTRS_o_ai void
1149 vec_xst(vector signed int __vec, long __offset, signed int *__ptr) {
1150 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1151 }
1152
1153 static inline __ATTRS_o_ai void
1154 vec_xst(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1155 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1156 }
1157
1158 static inline __ATTRS_o_ai void
1159 vec_xst(vector signed long long __vec, long __offset,
1160 signed long long *__ptr) {
1161 *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1162 }
1163
1164 static inline __ATTRS_o_ai void
1165 vec_xst(vector unsigned long long __vec, long __offset,
1166 unsigned long long *__ptr) {
1167 *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
1168 __vec;
1169 }
1170
1171 #if __ARCH__ >= 12
1172 static inline __ATTRS_o_ai void
1173 vec_xst(vector float __vec, long __offset, float *__ptr) {
1174 *(vector float *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1175 }
1176 #endif
1177
1178 static inline __ATTRS_o_ai void
1179 vec_xst(vector double __vec, long __offset, double *__ptr) {
1180 *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1181 }
1182
1183 /*-- vec_xstd2 --------------------------------------------------------------*/
1184
1185 // This prototype is deprecated.
1186 static inline __ATTRS_o_ai void
1187 vec_xstd2(vector signed char __vec, long __offset, signed char *__ptr) {
1188 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1189 }
1190
1191 // This prototype is deprecated.
1192 static inline __ATTRS_o_ai void
1193 vec_xstd2(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1194 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1195 }
1196
1197 // This prototype is deprecated.
1198 static inline __ATTRS_o_ai void
1199 vec_xstd2(vector signed short __vec, long __offset, signed short *__ptr) {
1200 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1201 }
1202
1203 // This prototype is deprecated.
1204 static inline __ATTRS_o_ai void
1205 vec_xstd2(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1206 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1207 }
1208
1209 // This prototype is deprecated.
1210 static inline __ATTRS_o_ai void
1211 vec_xstd2(vector signed int __vec, long __offset, signed int *__ptr) {
1212 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1213 }
1214
1215 // This prototype is deprecated.
1216 static inline __ATTRS_o_ai void
1217 vec_xstd2(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1218 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1219 }
1220
1221 // This prototype is deprecated.
1222 static inline __ATTRS_o_ai void
1223 vec_xstd2(vector signed long long __vec, long __offset,
1224 signed long long *__ptr) {
1225 *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1226 }
1227
1228 // This prototype is deprecated.
1229 static inline __ATTRS_o_ai void
1230 vec_xstd2(vector unsigned long long __vec, long __offset,
1231 unsigned long long *__ptr) {
1232 *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
1233 __vec;
1234 }
1235
1236 // This prototype is deprecated.
1237 static inline __ATTRS_o_ai void
1238 vec_xstd2(vector double __vec, long __offset, double *__ptr) {
1239 *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1240 }
1241
1242 /*-- vec_xstw4 --------------------------------------------------------------*/
1243
1244 // This prototype is deprecated.
1245 static inline __ATTRS_o_ai void
1246 vec_xstw4(vector signed char __vec, long __offset, signed char *__ptr) {
1247 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1248 }
1249
1250 // This prototype is deprecated.
1251 static inline __ATTRS_o_ai void
1252 vec_xstw4(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1253 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1254 }
1255
1256 // This prototype is deprecated.
1257 static inline __ATTRS_o_ai void
1258 vec_xstw4(vector signed short __vec, long __offset, signed short *__ptr) {
1259 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1260 }
1261
1262 // This prototype is deprecated.
1263 static inline __ATTRS_o_ai void
1264 vec_xstw4(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1265 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1266 }
1267
1268 // This prototype is deprecated.
1269 static inline __ATTRS_o_ai void
1270 vec_xstw4(vector signed int __vec, long __offset, signed int *__ptr) {
1271 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1272 }
1273
1274 // This prototype is deprecated.
1275 static inline __ATTRS_o_ai void
1276 vec_xstw4(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1277 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1278 }
1279
1280 /*-- vec_load_bndry ---------------------------------------------------------*/
1281
1282 extern __ATTRS_o vector signed char
1283 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1284 __constant_pow2_range(__len, 64, 4096);
1285
1286 extern __ATTRS_o vector unsigned char
1287 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1288 __constant_pow2_range(__len, 64, 4096);
1289
1290 extern __ATTRS_o vector signed short
1291 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1292 __constant_pow2_range(__len, 64, 4096);
1293
1294 extern __ATTRS_o vector unsigned short
1295 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1296 __constant_pow2_range(__len, 64, 4096);
1297
1298 extern __ATTRS_o vector signed int
1299 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1300 __constant_pow2_range(__len, 64, 4096);
1301
1302 extern __ATTRS_o vector unsigned int
1303 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1304 __constant_pow2_range(__len, 64, 4096);
1305
1306 extern __ATTRS_o vector signed long long
1307 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1308 __constant_pow2_range(__len, 64, 4096);
1309
1310 extern __ATTRS_o vector unsigned long long
1311 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1312 __constant_pow2_range(__len, 64, 4096);
1313
1314 #if __ARCH__ >= 12
1315 extern __ATTRS_o vector float
1316 vec_load_bndry(const float *__ptr, unsigned short __len)
1317 __constant_pow2_range(__len, 64, 4096);
1318 #endif
1319
1320 extern __ATTRS_o vector double
1321 vec_load_bndry(const double *__ptr, unsigned short __len)
1322 __constant_pow2_range(__len, 64, 4096);
1323
1324 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1325 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1326 (Y) == 128 ? 1 : \
1327 (Y) == 256 ? 2 : \
1328 (Y) == 512 ? 3 : \
1329 (Y) == 1024 ? 4 : \
1330 (Y) == 2048 ? 5 : \
1331 (Y) == 4096 ? 6 : -1)))
1332
1333 /*-- vec_load_len -----------------------------------------------------------*/
1334
1335 static inline __ATTRS_o_ai vector signed char
1336 vec_load_len(const signed char *__ptr, unsigned int __len) {
1337 return (vector signed char)__builtin_s390_vll(__len, __ptr);
1338 }
1339
1340 static inline __ATTRS_o_ai vector unsigned char
1341 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1342 return (vector unsigned char)__builtin_s390_vll(__len, __ptr);
1343 }
1344
1345 static inline __ATTRS_o_ai vector signed short
1346 vec_load_len(const signed short *__ptr, unsigned int __len) {
1347 return (vector signed short)__builtin_s390_vll(__len, __ptr);
1348 }
1349
1350 static inline __ATTRS_o_ai vector unsigned short
1351 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1352 return (vector unsigned short)__builtin_s390_vll(__len, __ptr);
1353 }
1354
1355 static inline __ATTRS_o_ai vector signed int
1356 vec_load_len(const signed int *__ptr, unsigned int __len) {
1357 return (vector signed int)__builtin_s390_vll(__len, __ptr);
1358 }
1359
1360 static inline __ATTRS_o_ai vector unsigned int
1361 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1362 return (vector unsigned int)__builtin_s390_vll(__len, __ptr);
1363 }
1364
1365 static inline __ATTRS_o_ai vector signed long long
1366 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1367 return (vector signed long long)__builtin_s390_vll(__len, __ptr);
1368 }
1369
1370 static inline __ATTRS_o_ai vector unsigned long long
1371 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1372 return (vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1373 }
1374
1375 #if __ARCH__ >= 12
1376 static inline __ATTRS_o_ai vector float
1377 vec_load_len(const float *__ptr, unsigned int __len) {
1378 return (vector float)__builtin_s390_vll(__len, __ptr);
1379 }
1380 #endif
1381
1382 static inline __ATTRS_o_ai vector double
1383 vec_load_len(const double *__ptr, unsigned int __len) {
1384 return (vector double)__builtin_s390_vll(__len, __ptr);
1385 }
1386
1387 /*-- vec_load_len_r ---------------------------------------------------------*/
1388
1389 #if __ARCH__ >= 12
1390 static inline __ATTRS_ai vector unsigned char
1391 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1392 return (vector unsigned char)__builtin_s390_vlrl(__len, __ptr);
1393 }
1394 #endif
1395
1396 /*-- vec_store_len ----------------------------------------------------------*/
1397
1398 static inline __ATTRS_o_ai void
1399 vec_store_len(vector signed char __vec, signed char *__ptr,
1400 unsigned int __len) {
1401 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1402 }
1403
1404 static inline __ATTRS_o_ai void
1405 vec_store_len(vector unsigned char __vec, unsigned char *__ptr,
1406 unsigned int __len) {
1407 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1408 }
1409
1410 static inline __ATTRS_o_ai void
1411 vec_store_len(vector signed short __vec, signed short *__ptr,
1412 unsigned int __len) {
1413 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1414 }
1415
1416 static inline __ATTRS_o_ai void
1417 vec_store_len(vector unsigned short __vec, unsigned short *__ptr,
1418 unsigned int __len) {
1419 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1420 }
1421
1422 static inline __ATTRS_o_ai void
1423 vec_store_len(vector signed int __vec, signed int *__ptr,
1424 unsigned int __len) {
1425 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1426 }
1427
1428 static inline __ATTRS_o_ai void
1429 vec_store_len(vector unsigned int __vec, unsigned int *__ptr,
1430 unsigned int __len) {
1431 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1432 }
1433
1434 static inline __ATTRS_o_ai void
1435 vec_store_len(vector signed long long __vec, signed long long *__ptr,
1436 unsigned int __len) {
1437 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1438 }
1439
1440 static inline __ATTRS_o_ai void
1441 vec_store_len(vector unsigned long long __vec, unsigned long long *__ptr,
1442 unsigned int __len) {
1443 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1444 }
1445
1446 #if __ARCH__ >= 12
1447 static inline __ATTRS_o_ai void
1448 vec_store_len(vector float __vec, float *__ptr,
1449 unsigned int __len) {
1450 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1451 }
1452 #endif
1453
1454 static inline __ATTRS_o_ai void
1455 vec_store_len(vector double __vec, double *__ptr,
1456 unsigned int __len) {
1457 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1458 }
1459
1460 /*-- vec_store_len_r --------------------------------------------------------*/
1461
1462 #if __ARCH__ >= 12
1463 static inline __ATTRS_ai void
1464 vec_store_len_r(vector unsigned char __vec, unsigned char *__ptr,
1465 unsigned int __len) {
1466 __builtin_s390_vstrl((vector signed char)__vec, __len, __ptr);
1467 }
1468 #endif
1469
1470 /*-- vec_load_pair ----------------------------------------------------------*/
1471
1472 static inline __ATTRS_o_ai vector signed long long
1473 vec_load_pair(signed long long __a, signed long long __b) {
1474 return (vector signed long long)(__a, __b);
1475 }
1476
1477 static inline __ATTRS_o_ai vector unsigned long long
1478 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1479 return (vector unsigned long long)(__a, __b);
1480 }
1481
1482 /*-- vec_genmask ------------------------------------------------------------*/
1483
1484 static inline __ATTRS_o_ai vector unsigned char
1485 vec_genmask(unsigned short __mask)
1486 __constant(__mask) {
1487 return (vector unsigned char)(
1488 __mask & 0x8000 ? 0xff : 0,
1489 __mask & 0x4000 ? 0xff : 0,
1490 __mask & 0x2000 ? 0xff : 0,
1491 __mask & 0x1000 ? 0xff : 0,
1492 __mask & 0x0800 ? 0xff : 0,
1493 __mask & 0x0400 ? 0xff : 0,
1494 __mask & 0x0200 ? 0xff : 0,
1495 __mask & 0x0100 ? 0xff : 0,
1496 __mask & 0x0080 ? 0xff : 0,
1497 __mask & 0x0040 ? 0xff : 0,
1498 __mask & 0x0020 ? 0xff : 0,
1499 __mask & 0x0010 ? 0xff : 0,
1500 __mask & 0x0008 ? 0xff : 0,
1501 __mask & 0x0004 ? 0xff : 0,
1502 __mask & 0x0002 ? 0xff : 0,
1503 __mask & 0x0001 ? 0xff : 0);
1504 }
1505
1506 /*-- vec_genmasks_* ---------------------------------------------------------*/
1507
1508 static inline __ATTRS_o_ai vector unsigned char
1509 vec_genmasks_8(unsigned char __first, unsigned char __last)
1510 __constant(__first) __constant(__last) {
1511 unsigned char __bit1 = __first & 7;
1512 unsigned char __bit2 = __last & 7;
1513 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1514 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1515 unsigned char __value = (__bit1 <= __bit2 ?
1516 __mask1 & ~__mask2 :
1517 __mask1 | ~__mask2);
1518 return (vector unsigned char)__value;
1519 }
1520
1521 static inline __ATTRS_o_ai vector unsigned short
1522 vec_genmasks_16(unsigned char __first, unsigned char __last)
1523 __constant(__first) __constant(__last) {
1524 unsigned char __bit1 = __first & 15;
1525 unsigned char __bit2 = __last & 15;
1526 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1527 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1528 unsigned short __value = (__bit1 <= __bit2 ?
1529 __mask1 & ~__mask2 :
1530 __mask1 | ~__mask2);
1531 return (vector unsigned short)__value;
1532 }
1533
1534 static inline __ATTRS_o_ai vector unsigned int
1535 vec_genmasks_32(unsigned char __first, unsigned char __last)
1536 __constant(__first) __constant(__last) {
1537 unsigned char __bit1 = __first & 31;
1538 unsigned char __bit2 = __last & 31;
1539 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1540 unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1541 unsigned int __value = (__bit1 <= __bit2 ?
1542 __mask1 & ~__mask2 :
1543 __mask1 | ~__mask2);
1544 return (vector unsigned int)__value;
1545 }
1546
1547 static inline __ATTRS_o_ai vector unsigned long long
1548 vec_genmasks_64(unsigned char __first, unsigned char __last)
1549 __constant(__first) __constant(__last) {
1550 unsigned char __bit1 = __first & 63;
1551 unsigned char __bit2 = __last & 63;
1552 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1553 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1554 unsigned long long __value = (__bit1 <= __bit2 ?
1555 __mask1 & ~__mask2 :
1556 __mask1 | ~__mask2);
1557 return (vector unsigned long long)__value;
1558 }
1559
1560 /*-- vec_splat --------------------------------------------------------------*/
1561
1562 static inline __ATTRS_o_ai vector signed char
1563 vec_splat(vector signed char __vec, int __index)
1564 __constant_range(__index, 0, 15) {
1565 return (vector signed char)__vec[__index];
1566 }
1567
1568 static inline __ATTRS_o_ai vector bool char
1569 vec_splat(vector bool char __vec, int __index)
1570 __constant_range(__index, 0, 15) {
1571 return (vector bool char)(vector unsigned char)__vec[__index];
1572 }
1573
1574 static inline __ATTRS_o_ai vector unsigned char
1575 vec_splat(vector unsigned char __vec, int __index)
1576 __constant_range(__index, 0, 15) {
1577 return (vector unsigned char)__vec[__index];
1578 }
1579
1580 static inline __ATTRS_o_ai vector signed short
1581 vec_splat(vector signed short __vec, int __index)
1582 __constant_range(__index, 0, 7) {
1583 return (vector signed short)__vec[__index];
1584 }
1585
1586 static inline __ATTRS_o_ai vector bool short
1587 vec_splat(vector bool short __vec, int __index)
1588 __constant_range(__index, 0, 7) {
1589 return (vector bool short)(vector unsigned short)__vec[__index];
1590 }
1591
1592 static inline __ATTRS_o_ai vector unsigned short
1593 vec_splat(vector unsigned short __vec, int __index)
1594 __constant_range(__index, 0, 7) {
1595 return (vector unsigned short)__vec[__index];
1596 }
1597
1598 static inline __ATTRS_o_ai vector signed int
1599 vec_splat(vector signed int __vec, int __index)
1600 __constant_range(__index, 0, 3) {
1601 return (vector signed int)__vec[__index];
1602 }
1603
1604 static inline __ATTRS_o_ai vector bool int
1605 vec_splat(vector bool int __vec, int __index)
1606 __constant_range(__index, 0, 3) {
1607 return (vector bool int)(vector unsigned int)__vec[__index];
1608 }
1609
1610 static inline __ATTRS_o_ai vector unsigned int
1611 vec_splat(vector unsigned int __vec, int __index)
1612 __constant_range(__index, 0, 3) {
1613 return (vector unsigned int)__vec[__index];
1614 }
1615
1616 static inline __ATTRS_o_ai vector signed long long
1617 vec_splat(vector signed long long __vec, int __index)
1618 __constant_range(__index, 0, 1) {
1619 return (vector signed long long)__vec[__index];
1620 }
1621
1622 static inline __ATTRS_o_ai vector bool long long
1623 vec_splat(vector bool long long __vec, int __index)
1624 __constant_range(__index, 0, 1) {
1625 return (vector bool long long)(vector unsigned long long)__vec[__index];
1626 }
1627
1628 static inline __ATTRS_o_ai vector unsigned long long
1629 vec_splat(vector unsigned long long __vec, int __index)
1630 __constant_range(__index, 0, 1) {
1631 return (vector unsigned long long)__vec[__index];
1632 }
1633
1634 #if __ARCH__ >= 12
1635 static inline __ATTRS_o_ai vector float
1636 vec_splat(vector float __vec, int __index)
1637 __constant_range(__index, 0, 3) {
1638 return (vector float)__vec[__index];
1639 }
1640 #endif
1641
1642 static inline __ATTRS_o_ai vector double
1643 vec_splat(vector double __vec, int __index)
1644 __constant_range(__index, 0, 1) {
1645 return (vector double)__vec[__index];
1646 }
1647
1648 /*-- vec_splat_s* -----------------------------------------------------------*/
1649
1650 static inline __ATTRS_ai vector signed char
1651 vec_splat_s8(signed char __scalar)
1652 __constant(__scalar) {
1653 return (vector signed char)__scalar;
1654 }
1655
1656 static inline __ATTRS_ai vector signed short
1657 vec_splat_s16(signed short __scalar)
1658 __constant(__scalar) {
1659 return (vector signed short)__scalar;
1660 }
1661
1662 static inline __ATTRS_ai vector signed int
1663 vec_splat_s32(signed short __scalar)
1664 __constant(__scalar) {
1665 return (vector signed int)(signed int)__scalar;
1666 }
1667
1668 static inline __ATTRS_ai vector signed long long
1669 vec_splat_s64(signed short __scalar)
1670 __constant(__scalar) {
1671 return (vector signed long long)(signed long)__scalar;
1672 }
1673
1674 /*-- vec_splat_u* -----------------------------------------------------------*/
1675
1676 static inline __ATTRS_ai vector unsigned char
1677 vec_splat_u8(unsigned char __scalar)
1678 __constant(__scalar) {
1679 return (vector unsigned char)__scalar;
1680 }
1681
1682 static inline __ATTRS_ai vector unsigned short
1683 vec_splat_u16(unsigned short __scalar)
1684 __constant(__scalar) {
1685 return (vector unsigned short)__scalar;
1686 }
1687
1688 static inline __ATTRS_ai vector unsigned int
1689 vec_splat_u32(signed short __scalar)
1690 __constant(__scalar) {
1691 return (vector unsigned int)(signed int)__scalar;
1692 }
1693
1694 static inline __ATTRS_ai vector unsigned long long
1695 vec_splat_u64(signed short __scalar)
1696 __constant(__scalar) {
1697 return (vector unsigned long long)(signed long long)__scalar;
1698 }
1699
1700 /*-- vec_splats -------------------------------------------------------------*/
1701
1702 static inline __ATTRS_o_ai vector signed char
1703 vec_splats(signed char __scalar) {
1704 return (vector signed char)__scalar;
1705 }
1706
1707 static inline __ATTRS_o_ai vector unsigned char
1708 vec_splats(unsigned char __scalar) {
1709 return (vector unsigned char)__scalar;
1710 }
1711
1712 static inline __ATTRS_o_ai vector signed short
1713 vec_splats(signed short __scalar) {
1714 return (vector signed short)__scalar;
1715 }
1716
1717 static inline __ATTRS_o_ai vector unsigned short
1718 vec_splats(unsigned short __scalar) {
1719 return (vector unsigned short)__scalar;
1720 }
1721
1722 static inline __ATTRS_o_ai vector signed int
1723 vec_splats(signed int __scalar) {
1724 return (vector signed int)__scalar;
1725 }
1726
1727 static inline __ATTRS_o_ai vector unsigned int
1728 vec_splats(unsigned int __scalar) {
1729 return (vector unsigned int)__scalar;
1730 }
1731
1732 static inline __ATTRS_o_ai vector signed long long
1733 vec_splats(signed long long __scalar) {
1734 return (vector signed long long)__scalar;
1735 }
1736
1737 static inline __ATTRS_o_ai vector unsigned long long
1738 vec_splats(unsigned long long __scalar) {
1739 return (vector unsigned long long)__scalar;
1740 }
1741
1742 #if __ARCH__ >= 12
1743 static inline __ATTRS_o_ai vector float
1744 vec_splats(float __scalar) {
1745 return (vector float)__scalar;
1746 }
1747 #endif
1748
1749 static inline __ATTRS_o_ai vector double
1750 vec_splats(double __scalar) {
1751 return (vector double)__scalar;
1752 }
1753
1754 /*-- vec_extend_s64 ---------------------------------------------------------*/
1755
1756 static inline __ATTRS_o_ai vector signed long long
1757 vec_extend_s64(vector signed char __a) {
1758 return (vector signed long long)(__a[7], __a[15]);
1759 }
1760
1761 static inline __ATTRS_o_ai vector signed long long
1762 vec_extend_s64(vector signed short __a) {
1763 return (vector signed long long)(__a[3], __a[7]);
1764 }
1765
1766 static inline __ATTRS_o_ai vector signed long long
1767 vec_extend_s64(vector signed int __a) {
1768 return (vector signed long long)(__a[1], __a[3]);
1769 }
1770
1771 /*-- vec_mergeh -------------------------------------------------------------*/
1772
1773 static inline __ATTRS_o_ai vector signed char
1774 vec_mergeh(vector signed char __a, vector signed char __b) {
1775 return (vector signed char)(
1776 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1777 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1778 }
1779
1780 static inline __ATTRS_o_ai vector bool char
1781 vec_mergeh(vector bool char __a, vector bool char __b) {
1782 return (vector bool char)(
1783 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1784 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1785 }
1786
1787 static inline __ATTRS_o_ai vector unsigned char
1788 vec_mergeh(vector unsigned char __a, vector unsigned char __b) {
1789 return (vector unsigned char)(
1790 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1791 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1792 }
1793
1794 static inline __ATTRS_o_ai vector signed short
1795 vec_mergeh(vector signed short __a, vector signed short __b) {
1796 return (vector signed short)(
1797 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1798 }
1799
1800 static inline __ATTRS_o_ai vector bool short
1801 vec_mergeh(vector bool short __a, vector bool short __b) {
1802 return (vector bool short)(
1803 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1804 }
1805
1806 static inline __ATTRS_o_ai vector unsigned short
1807 vec_mergeh(vector unsigned short __a, vector unsigned short __b) {
1808 return (vector unsigned short)(
1809 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1810 }
1811
1812 static inline __ATTRS_o_ai vector signed int
1813 vec_mergeh(vector signed int __a, vector signed int __b) {
1814 return (vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1815 }
1816
1817 static inline __ATTRS_o_ai vector bool int
1818 vec_mergeh(vector bool int __a, vector bool int __b) {
1819 return (vector bool int)(__a[0], __b[0], __a[1], __b[1]);
1820 }
1821
1822 static inline __ATTRS_o_ai vector unsigned int
1823 vec_mergeh(vector unsigned int __a, vector unsigned int __b) {
1824 return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1825 }
1826
1827 static inline __ATTRS_o_ai vector signed long long
1828 vec_mergeh(vector signed long long __a, vector signed long long __b) {
1829 return (vector signed long long)(__a[0], __b[0]);
1830 }
1831
1832 static inline __ATTRS_o_ai vector bool long long
1833 vec_mergeh(vector bool long long __a, vector bool long long __b) {
1834 return (vector bool long long)(__a[0], __b[0]);
1835 }
1836
1837 static inline __ATTRS_o_ai vector unsigned long long
1838 vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) {
1839 return (vector unsigned long long)(__a[0], __b[0]);
1840 }
1841
1842 #if __ARCH__ >= 12
1843 static inline __ATTRS_o_ai vector float
1844 vec_mergeh(vector float __a, vector float __b) {
1845 return (vector float)(__a[0], __b[0], __a[1], __b[1]);
1846 }
1847 #endif
1848
1849 static inline __ATTRS_o_ai vector double
1850 vec_mergeh(vector double __a, vector double __b) {
1851 return (vector double)(__a[0], __b[0]);
1852 }
1853
1854 /*-- vec_mergel -------------------------------------------------------------*/
1855
1856 static inline __ATTRS_o_ai vector signed char
1857 vec_mergel(vector signed char __a, vector signed char __b) {
1858 return (vector signed char)(
1859 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1860 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1861 }
1862
1863 static inline __ATTRS_o_ai vector bool char
1864 vec_mergel(vector bool char __a, vector bool char __b) {
1865 return (vector bool char)(
1866 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1867 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1868 }
1869
1870 static inline __ATTRS_o_ai vector unsigned char
1871 vec_mergel(vector unsigned char __a, vector unsigned char __b) {
1872 return (vector unsigned char)(
1873 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1874 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1875 }
1876
1877 static inline __ATTRS_o_ai vector signed short
1878 vec_mergel(vector signed short __a, vector signed short __b) {
1879 return (vector signed short)(
1880 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1881 }
1882
1883 static inline __ATTRS_o_ai vector bool short
1884 vec_mergel(vector bool short __a, vector bool short __b) {
1885 return (vector bool short)(
1886 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1887 }
1888
1889 static inline __ATTRS_o_ai vector unsigned short
1890 vec_mergel(vector unsigned short __a, vector unsigned short __b) {
1891 return (vector unsigned short)(
1892 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1893 }
1894
1895 static inline __ATTRS_o_ai vector signed int
1896 vec_mergel(vector signed int __a, vector signed int __b) {
1897 return (vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1898 }
1899
1900 static inline __ATTRS_o_ai vector bool int
1901 vec_mergel(vector bool int __a, vector bool int __b) {
1902 return (vector bool int)(__a[2], __b[2], __a[3], __b[3]);
1903 }
1904
1905 static inline __ATTRS_o_ai vector unsigned int
1906 vec_mergel(vector unsigned int __a, vector unsigned int __b) {
1907 return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1908 }
1909
1910 static inline __ATTRS_o_ai vector signed long long
1911 vec_mergel(vector signed long long __a, vector signed long long __b) {
1912 return (vector signed long long)(__a[1], __b[1]);
1913 }
1914
1915 static inline __ATTRS_o_ai vector bool long long
1916 vec_mergel(vector bool long long __a, vector bool long long __b) {
1917 return (vector bool long long)(__a[1], __b[1]);
1918 }
1919
1920 static inline __ATTRS_o_ai vector unsigned long long
1921 vec_mergel(vector unsigned long long __a, vector unsigned long long __b) {
1922 return (vector unsigned long long)(__a[1], __b[1]);
1923 }
1924
1925 #if __ARCH__ >= 12
1926 static inline __ATTRS_o_ai vector float
1927 vec_mergel(vector float __a, vector float __b) {
1928 return (vector float)(__a[2], __b[2], __a[3], __b[3]);
1929 }
1930 #endif
1931
1932 static inline __ATTRS_o_ai vector double
1933 vec_mergel(vector double __a, vector double __b) {
1934 return (vector double)(__a[1], __b[1]);
1935 }
1936
1937 /*-- vec_pack ---------------------------------------------------------------*/
1938
1939 static inline __ATTRS_o_ai vector signed char
1940 vec_pack(vector signed short __a, vector signed short __b) {
1941 vector signed char __ac = (vector signed char)__a;
1942 vector signed char __bc = (vector signed char)__b;
1943 return (vector signed char)(
1944 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1945 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1946 }
1947
1948 static inline __ATTRS_o_ai vector bool char
1949 vec_pack(vector bool short __a, vector bool short __b) {
1950 vector bool char __ac = (vector bool char)__a;
1951 vector bool char __bc = (vector bool char)__b;
1952 return (vector bool char)(
1953 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1954 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1955 }
1956
1957 static inline __ATTRS_o_ai vector unsigned char
1958 vec_pack(vector unsigned short __a, vector unsigned short __b) {
1959 vector unsigned char __ac = (vector unsigned char)__a;
1960 vector unsigned char __bc = (vector unsigned char)__b;
1961 return (vector unsigned char)(
1962 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1963 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1964 }
1965
1966 static inline __ATTRS_o_ai vector signed short
1967 vec_pack(vector signed int __a, vector signed int __b) {
1968 vector signed short __ac = (vector signed short)__a;
1969 vector signed short __bc = (vector signed short)__b;
1970 return (vector signed short)(
1971 __ac[1], __ac[3], __ac[5], __ac[7],
1972 __bc[1], __bc[3], __bc[5], __bc[7]);
1973 }
1974
1975 static inline __ATTRS_o_ai vector bool short
1976 vec_pack(vector bool int __a, vector bool int __b) {
1977 vector bool short __ac = (vector bool short)__a;
1978 vector bool short __bc = (vector bool short)__b;
1979 return (vector bool short)(
1980 __ac[1], __ac[3], __ac[5], __ac[7],
1981 __bc[1], __bc[3], __bc[5], __bc[7]);
1982 }
1983
1984 static inline __ATTRS_o_ai vector unsigned short
1985 vec_pack(vector unsigned int __a, vector unsigned int __b) {
1986 vector unsigned short __ac = (vector unsigned short)__a;
1987 vector unsigned short __bc = (vector unsigned short)__b;
1988 return (vector unsigned short)(
1989 __ac[1], __ac[3], __ac[5], __ac[7],
1990 __bc[1], __bc[3], __bc[5], __bc[7]);
1991 }
1992
1993 static inline __ATTRS_o_ai vector signed int
1994 vec_pack(vector signed long long __a, vector signed long long __b) {
1995 vector signed int __ac = (vector signed int)__a;
1996 vector signed int __bc = (vector signed int)__b;
1997 return (vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1998 }
1999
2000 static inline __ATTRS_o_ai vector bool int
2001 vec_pack(vector bool long long __a, vector bool long long __b) {
2002 vector bool int __ac = (vector bool int)__a;
2003 vector bool int __bc = (vector bool int)__b;
2004 return (vector bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2005 }
2006
2007 static inline __ATTRS_o_ai vector unsigned int
2008 vec_pack(vector unsigned long long __a, vector unsigned long long __b) {
2009 vector unsigned int __ac = (vector unsigned int)__a;
2010 vector unsigned int __bc = (vector unsigned int)__b;
2011 return (vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2012 }
2013
2014 /*-- vec_packs --------------------------------------------------------------*/
2015
2016 static inline __ATTRS_o_ai vector signed char
2017 vec_packs(vector signed short __a, vector signed short __b) {
2018 return __builtin_s390_vpksh(__a, __b);
2019 }
2020
2021 static inline __ATTRS_o_ai vector unsigned char
2022 vec_packs(vector unsigned short __a, vector unsigned short __b) {
2023 return __builtin_s390_vpklsh(__a, __b);
2024 }
2025
2026 static inline __ATTRS_o_ai vector signed short
2027 vec_packs(vector signed int __a, vector signed int __b) {
2028 return __builtin_s390_vpksf(__a, __b);
2029 }
2030
2031 static inline __ATTRS_o_ai vector unsigned short
2032 vec_packs(vector unsigned int __a, vector unsigned int __b) {
2033 return __builtin_s390_vpklsf(__a, __b);
2034 }
2035
2036 static inline __ATTRS_o_ai vector signed int
2037 vec_packs(vector signed long long __a, vector signed long long __b) {
2038 return __builtin_s390_vpksg(__a, __b);
2039 }
2040
2041 static inline __ATTRS_o_ai vector unsigned int
2042 vec_packs(vector unsigned long long __a, vector unsigned long long __b) {
2043 return __builtin_s390_vpklsg(__a, __b);
2044 }
2045
2046 /*-- vec_packs_cc -----------------------------------------------------------*/
2047
2048 static inline __ATTRS_o_ai vector signed char
2049 vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) {
2050 return __builtin_s390_vpkshs(__a, __b, __cc);
2051 }
2052
2053 static inline __ATTRS_o_ai vector unsigned char
2054 vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
2055 return __builtin_s390_vpklshs(__a, __b, __cc);
2056 }
2057
2058 static inline __ATTRS_o_ai vector signed short
2059 vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) {
2060 return __builtin_s390_vpksfs(__a, __b, __cc);
2061 }
2062
2063 static inline __ATTRS_o_ai vector unsigned short
2064 vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
2065 return __builtin_s390_vpklsfs(__a, __b, __cc);
2066 }
2067
2068 static inline __ATTRS_o_ai vector signed int
2069 vec_packs_cc(vector signed long long __a, vector signed long long __b,
2070 int *__cc) {
2071 return __builtin_s390_vpksgs(__a, __b, __cc);
2072 }
2073
2074 static inline __ATTRS_o_ai vector unsigned int
2075 vec_packs_cc(vector unsigned long long __a, vector unsigned long long __b,
2076 int *__cc) {
2077 return __builtin_s390_vpklsgs(__a, __b, __cc);
2078 }
2079
2080 /*-- vec_packsu -------------------------------------------------------------*/
2081
2082 static inline __ATTRS_o_ai vector unsigned char
2083 vec_packsu(vector signed short __a, vector signed short __b) {
2084 const vector signed short __zero = (vector signed short)0;
2085 return __builtin_s390_vpklsh(
2086 (vector unsigned short)(__a >= __zero) & (vector unsigned short)__a,
2087 (vector unsigned short)(__b >= __zero) & (vector unsigned short)__b);
2088 }
2089
2090 static inline __ATTRS_o_ai vector unsigned char
2091 vec_packsu(vector unsigned short __a, vector unsigned short __b) {
2092 return __builtin_s390_vpklsh(__a, __b);
2093 }
2094
2095 static inline __ATTRS_o_ai vector unsigned short
2096 vec_packsu(vector signed int __a, vector signed int __b) {
2097 const vector signed int __zero = (vector signed int)0;
2098 return __builtin_s390_vpklsf(
2099 (vector unsigned int)(__a >= __zero) & (vector unsigned int)__a,
2100 (vector unsigned int)(__b >= __zero) & (vector unsigned int)__b);
2101 }
2102
2103 static inline __ATTRS_o_ai vector unsigned short
2104 vec_packsu(vector unsigned int __a, vector unsigned int __b) {
2105 return __builtin_s390_vpklsf(__a, __b);
2106 }
2107
2108 static inline __ATTRS_o_ai vector unsigned int
2109 vec_packsu(vector signed long long __a, vector signed long long __b) {
2110 const vector signed long long __zero = (vector signed long long)0;
2111 return __builtin_s390_vpklsg(
2112 (vector unsigned long long)(__a >= __zero) &
2113 (vector unsigned long long)__a,
2114 (vector unsigned long long)(__b >= __zero) &
2115 (vector unsigned long long)__b);
2116 }
2117
2118 static inline __ATTRS_o_ai vector unsigned int
2119 vec_packsu(vector unsigned long long __a, vector unsigned long long __b) {
2120 return __builtin_s390_vpklsg(__a, __b);
2121 }
2122
2123 /*-- vec_packsu_cc ----------------------------------------------------------*/
2124
2125 static inline __ATTRS_o_ai vector unsigned char
2126 vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
2127 return __builtin_s390_vpklshs(__a, __b, __cc);
2128 }
2129
2130 static inline __ATTRS_o_ai vector unsigned short
2131 vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
2132 return __builtin_s390_vpklsfs(__a, __b, __cc);
2133 }
2134
2135 static inline __ATTRS_o_ai vector unsigned int
2136 vec_packsu_cc(vector unsigned long long __a, vector unsigned long long __b,
2137 int *__cc) {
2138 return __builtin_s390_vpklsgs(__a, __b, __cc);
2139 }
2140
2141 /*-- vec_unpackh ------------------------------------------------------------*/
2142
2143 static inline __ATTRS_o_ai vector signed short
2144 vec_unpackh(vector signed char __a) {
2145 return __builtin_s390_vuphb(__a);
2146 }
2147
2148 static inline __ATTRS_o_ai vector bool short
2149 vec_unpackh(vector bool char __a) {
2150 return (vector bool short)__builtin_s390_vuphb((vector signed char)__a);
2151 }
2152
2153 static inline __ATTRS_o_ai vector unsigned short
2154 vec_unpackh(vector unsigned char __a) {
2155 return __builtin_s390_vuplhb(__a);
2156 }
2157
2158 static inline __ATTRS_o_ai vector signed int
2159 vec_unpackh(vector signed short __a) {
2160 return __builtin_s390_vuphh(__a);
2161 }
2162
2163 static inline __ATTRS_o_ai vector bool int
2164 vec_unpackh(vector bool short __a) {
2165 return (vector bool int)__builtin_s390_vuphh((vector signed short)__a);
2166 }
2167
2168 static inline __ATTRS_o_ai vector unsigned int
2169 vec_unpackh(vector unsigned short __a) {
2170 return __builtin_s390_vuplhh(__a);
2171 }
2172
2173 static inline __ATTRS_o_ai vector signed long long
2174 vec_unpackh(vector signed int __a) {
2175 return __builtin_s390_vuphf(__a);
2176 }
2177
2178 static inline __ATTRS_o_ai vector bool long long
2179 vec_unpackh(vector bool int __a) {
2180 return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a);
2181 }
2182
2183 static inline __ATTRS_o_ai vector unsigned long long
2184 vec_unpackh(vector unsigned int __a) {
2185 return __builtin_s390_vuplhf(__a);
2186 }
2187
2188 /*-- vec_unpackl ------------------------------------------------------------*/
2189
2190 static inline __ATTRS_o_ai vector signed short
2191 vec_unpackl(vector signed char __a) {
2192 return __builtin_s390_vuplb(__a);
2193 }
2194
2195 static inline __ATTRS_o_ai vector bool short
2196 vec_unpackl(vector bool char __a) {
2197 return (vector bool short)__builtin_s390_vuplb((vector signed char)__a);
2198 }
2199
2200 static inline __ATTRS_o_ai vector unsigned short
2201 vec_unpackl(vector unsigned char __a) {
2202 return __builtin_s390_vupllb(__a);
2203 }
2204
2205 static inline __ATTRS_o_ai vector signed int
2206 vec_unpackl(vector signed short __a) {
2207 return __builtin_s390_vuplhw(__a);
2208 }
2209
2210 static inline __ATTRS_o_ai vector bool int
2211 vec_unpackl(vector bool short __a) {
2212 return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a);
2213 }
2214
2215 static inline __ATTRS_o_ai vector unsigned int
2216 vec_unpackl(vector unsigned short __a) {
2217 return __builtin_s390_vupllh(__a);
2218 }
2219
2220 static inline __ATTRS_o_ai vector signed long long
2221 vec_unpackl(vector signed int __a) {
2222 return __builtin_s390_vuplf(__a);
2223 }
2224
2225 static inline __ATTRS_o_ai vector bool long long
2226 vec_unpackl(vector bool int __a) {
2227 return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a);
2228 }
2229
2230 static inline __ATTRS_o_ai vector unsigned long long
2231 vec_unpackl(vector unsigned int __a) {
2232 return __builtin_s390_vupllf(__a);
2233 }
2234
2235 /*-- vec_cmpeq --------------------------------------------------------------*/
2236
2237 static inline __ATTRS_o_ai vector bool char
2238 vec_cmpeq(vector bool char __a, vector bool char __b) {
2239 return (vector bool char)(__a == __b);
2240 }
2241
2242 static inline __ATTRS_o_ai vector bool char
2243 vec_cmpeq(vector signed char __a, vector signed char __b) {
2244 return (vector bool char)(__a == __b);
2245 }
2246
2247 static inline __ATTRS_o_ai vector bool char
2248 vec_cmpeq(vector unsigned char __a, vector unsigned char __b) {
2249 return (vector bool char)(__a == __b);
2250 }
2251
2252 static inline __ATTRS_o_ai vector bool short
2253 vec_cmpeq(vector bool short __a, vector bool short __b) {
2254 return (vector bool short)(__a == __b);
2255 }
2256
2257 static inline __ATTRS_o_ai vector bool short
2258 vec_cmpeq(vector signed short __a, vector signed short __b) {
2259 return (vector bool short)(__a == __b);
2260 }
2261
2262 static inline __ATTRS_o_ai vector bool short
2263 vec_cmpeq(vector unsigned short __a, vector unsigned short __b) {
2264 return (vector bool short)(__a == __b);
2265 }
2266
2267 static inline __ATTRS_o_ai vector bool int
2268 vec_cmpeq(vector bool int __a, vector bool int __b) {
2269 return (vector bool int)(__a == __b);
2270 }
2271
2272 static inline __ATTRS_o_ai vector bool int
2273 vec_cmpeq(vector signed int __a, vector signed int __b) {
2274 return (vector bool int)(__a == __b);
2275 }
2276
2277 static inline __ATTRS_o_ai vector bool int
2278 vec_cmpeq(vector unsigned int __a, vector unsigned int __b) {
2279 return (vector bool int)(__a == __b);
2280 }
2281
2282 static inline __ATTRS_o_ai vector bool long long
2283 vec_cmpeq(vector bool long long __a, vector bool long long __b) {
2284 return (vector bool long long)(__a == __b);
2285 }
2286
2287 static inline __ATTRS_o_ai vector bool long long
2288 vec_cmpeq(vector signed long long __a, vector signed long long __b) {
2289 return (vector bool long long)(__a == __b);
2290 }
2291
2292 static inline __ATTRS_o_ai vector bool long long
2293 vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
2294 return (vector bool long long)(__a == __b);
2295 }
2296
2297 #if __ARCH__ >= 12
2298 static inline __ATTRS_o_ai vector bool int
2299 vec_cmpeq(vector float __a, vector float __b) {
2300 return (vector bool int)(__a == __b);
2301 }
2302 #endif
2303
2304 static inline __ATTRS_o_ai vector bool long long
2305 vec_cmpeq(vector double __a, vector double __b) {
2306 return (vector bool long long)(__a == __b);
2307 }
2308
2309 /*-- vec_cmpge --------------------------------------------------------------*/
2310
2311 static inline __ATTRS_o_ai vector bool char
2312 vec_cmpge(vector signed char __a, vector signed char __b) {
2313 return (vector bool char)(__a >= __b);
2314 }
2315
2316 static inline __ATTRS_o_ai vector bool char
2317 vec_cmpge(vector unsigned char __a, vector unsigned char __b) {
2318 return (vector bool char)(__a >= __b);
2319 }
2320
2321 static inline __ATTRS_o_ai vector bool short
2322 vec_cmpge(vector signed short __a, vector signed short __b) {
2323 return (vector bool short)(__a >= __b);
2324 }
2325
2326 static inline __ATTRS_o_ai vector bool short
2327 vec_cmpge(vector unsigned short __a, vector unsigned short __b) {
2328 return (vector bool short)(__a >= __b);
2329 }
2330
2331 static inline __ATTRS_o_ai vector bool int
2332 vec_cmpge(vector signed int __a, vector signed int __b) {
2333 return (vector bool int)(__a >= __b);
2334 }
2335
2336 static inline __ATTRS_o_ai vector bool int
2337 vec_cmpge(vector unsigned int __a, vector unsigned int __b) {
2338 return (vector bool int)(__a >= __b);
2339 }
2340
2341 static inline __ATTRS_o_ai vector bool long long
2342 vec_cmpge(vector signed long long __a, vector signed long long __b) {
2343 return (vector bool long long)(__a >= __b);
2344 }
2345
2346 static inline __ATTRS_o_ai vector bool long long
2347 vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) {
2348 return (vector bool long long)(__a >= __b);
2349 }
2350
2351 #if __ARCH__ >= 12
2352 static inline __ATTRS_o_ai vector bool int
2353 vec_cmpge(vector float __a, vector float __b) {
2354 return (vector bool int)(__a >= __b);
2355 }
2356 #endif
2357
2358 static inline __ATTRS_o_ai vector bool long long
2359 vec_cmpge(vector double __a, vector double __b) {
2360 return (vector bool long long)(__a >= __b);
2361 }
2362
2363 /*-- vec_cmpgt --------------------------------------------------------------*/
2364
2365 static inline __ATTRS_o_ai vector bool char
2366 vec_cmpgt(vector signed char __a, vector signed char __b) {
2367 return (vector bool char)(__a > __b);
2368 }
2369
2370 static inline __ATTRS_o_ai vector bool char
2371 vec_cmpgt(vector unsigned char __a, vector unsigned char __b) {
2372 return (vector bool char)(__a > __b);
2373 }
2374
2375 static inline __ATTRS_o_ai vector bool short
2376 vec_cmpgt(vector signed short __a, vector signed short __b) {
2377 return (vector bool short)(__a > __b);
2378 }
2379
2380 static inline __ATTRS_o_ai vector bool short
2381 vec_cmpgt(vector unsigned short __a, vector unsigned short __b) {
2382 return (vector bool short)(__a > __b);
2383 }
2384
2385 static inline __ATTRS_o_ai vector bool int
2386 vec_cmpgt(vector signed int __a, vector signed int __b) {
2387 return (vector bool int)(__a > __b);
2388 }
2389
2390 static inline __ATTRS_o_ai vector bool int
2391 vec_cmpgt(vector unsigned int __a, vector unsigned int __b) {
2392 return (vector bool int)(__a > __b);
2393 }
2394
2395 static inline __ATTRS_o_ai vector bool long long
2396 vec_cmpgt(vector signed long long __a, vector signed long long __b) {
2397 return (vector bool long long)(__a > __b);
2398 }
2399
2400 static inline __ATTRS_o_ai vector bool long long
2401 vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
2402 return (vector bool long long)(__a > __b);
2403 }
2404
2405 #if __ARCH__ >= 12
2406 static inline __ATTRS_o_ai vector bool int
2407 vec_cmpgt(vector float __a, vector float __b) {
2408 return (vector bool int)(__a > __b);
2409 }
2410 #endif
2411
2412 static inline __ATTRS_o_ai vector bool long long
2413 vec_cmpgt(vector double __a, vector double __b) {
2414 return (vector bool long long)(__a > __b);
2415 }
2416
2417 /*-- vec_cmple --------------------------------------------------------------*/
2418
2419 static inline __ATTRS_o_ai vector bool char
2420 vec_cmple(vector signed char __a, vector signed char __b) {
2421 return (vector bool char)(__a <= __b);
2422 }
2423
2424 static inline __ATTRS_o_ai vector bool char
2425 vec_cmple(vector unsigned char __a, vector unsigned char __b) {
2426 return (vector bool char)(__a <= __b);
2427 }
2428
2429 static inline __ATTRS_o_ai vector bool short
2430 vec_cmple(vector signed short __a, vector signed short __b) {
2431 return (vector bool short)(__a <= __b);
2432 }
2433
2434 static inline __ATTRS_o_ai vector bool short
2435 vec_cmple(vector unsigned short __a, vector unsigned short __b) {
2436 return (vector bool short)(__a <= __b);
2437 }
2438
2439 static inline __ATTRS_o_ai vector bool int
2440 vec_cmple(vector signed int __a, vector signed int __b) {
2441 return (vector bool int)(__a <= __b);
2442 }
2443
2444 static inline __ATTRS_o_ai vector bool int
2445 vec_cmple(vector unsigned int __a, vector unsigned int __b) {
2446 return (vector bool int)(__a <= __b);
2447 }
2448
2449 static inline __ATTRS_o_ai vector bool long long
2450 vec_cmple(vector signed long long __a, vector signed long long __b) {
2451 return (vector bool long long)(__a <= __b);
2452 }
2453
2454 static inline __ATTRS_o_ai vector bool long long
2455 vec_cmple(vector unsigned long long __a, vector unsigned long long __b) {
2456 return (vector bool long long)(__a <= __b);
2457 }
2458
2459 #if __ARCH__ >= 12
2460 static inline __ATTRS_o_ai vector bool int
2461 vec_cmple(vector float __a, vector float __b) {
2462 return (vector bool int)(__a <= __b);
2463 }
2464 #endif
2465
2466 static inline __ATTRS_o_ai vector bool long long
2467 vec_cmple(vector double __a, vector double __b) {
2468 return (vector bool long long)(__a <= __b);
2469 }
2470
2471 /*-- vec_cmplt --------------------------------------------------------------*/
2472
2473 static inline __ATTRS_o_ai vector bool char
2474 vec_cmplt(vector signed char __a, vector signed char __b) {
2475 return (vector bool char)(__a < __b);
2476 }
2477
2478 static inline __ATTRS_o_ai vector bool char
2479 vec_cmplt(vector unsigned char __a, vector unsigned char __b) {
2480 return (vector bool char)(__a < __b);
2481 }
2482
2483 static inline __ATTRS_o_ai vector bool short
2484 vec_cmplt(vector signed short __a, vector signed short __b) {
2485 return (vector bool short)(__a < __b);
2486 }
2487
2488 static inline __ATTRS_o_ai vector bool short
2489 vec_cmplt(vector unsigned short __a, vector unsigned short __b) {
2490 return (vector bool short)(__a < __b);
2491 }
2492
2493 static inline __ATTRS_o_ai vector bool int
2494 vec_cmplt(vector signed int __a, vector signed int __b) {
2495 return (vector bool int)(__a < __b);
2496 }
2497
2498 static inline __ATTRS_o_ai vector bool int
2499 vec_cmplt(vector unsigned int __a, vector unsigned int __b) {
2500 return (vector bool int)(__a < __b);
2501 }
2502
2503 static inline __ATTRS_o_ai vector bool long long
2504 vec_cmplt(vector signed long long __a, vector signed long long __b) {
2505 return (vector bool long long)(__a < __b);
2506 }
2507
2508 static inline __ATTRS_o_ai vector bool long long
2509 vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
2510 return (vector bool long long)(__a < __b);
2511 }
2512
2513 #if __ARCH__ >= 12
2514 static inline __ATTRS_o_ai vector bool int
2515 vec_cmplt(vector float __a, vector float __b) {
2516 return (vector bool int)(__a < __b);
2517 }
2518 #endif
2519
2520 static inline __ATTRS_o_ai vector bool long long
2521 vec_cmplt(vector double __a, vector double __b) {
2522 return (vector bool long long)(__a < __b);
2523 }
2524
2525 /*-- vec_all_eq -------------------------------------------------------------*/
2526
2527 static inline __ATTRS_o_ai int
2528 vec_all_eq(vector signed char __a, vector signed char __b) {
2529 int __cc;
2530 __builtin_s390_vceqbs(__a, __b, &__cc);
2531 return __cc == 0;
2532 }
2533
2534 // This prototype is deprecated.
2535 static inline __ATTRS_o_ai int
2536 vec_all_eq(vector signed char __a, vector bool char __b) {
2537 int __cc;
2538 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2539 return __cc == 0;
2540 }
2541
2542 // This prototype is deprecated.
2543 static inline __ATTRS_o_ai int
2544 vec_all_eq(vector bool char __a, vector signed char __b) {
2545 int __cc;
2546 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2547 return __cc == 0;
2548 }
2549
2550 static inline __ATTRS_o_ai int
2551 vec_all_eq(vector unsigned char __a, vector unsigned char __b) {
2552 int __cc;
2553 __builtin_s390_vceqbs((vector signed char)__a,
2554 (vector signed char)__b, &__cc);
2555 return __cc == 0;
2556 }
2557
2558 // This prototype is deprecated.
2559 static inline __ATTRS_o_ai int
2560 vec_all_eq(vector unsigned char __a, vector bool char __b) {
2561 int __cc;
2562 __builtin_s390_vceqbs((vector signed char)__a,
2563 (vector signed char)__b, &__cc);
2564 return __cc == 0;
2565 }
2566
2567 // This prototype is deprecated.
2568 static inline __ATTRS_o_ai int
2569 vec_all_eq(vector bool char __a, vector unsigned char __b) {
2570 int __cc;
2571 __builtin_s390_vceqbs((vector signed char)__a,
2572 (vector signed char)__b, &__cc);
2573 return __cc == 0;
2574 }
2575
2576 static inline __ATTRS_o_ai int
2577 vec_all_eq(vector bool char __a, vector bool char __b) {
2578 int __cc;
2579 __builtin_s390_vceqbs((vector signed char)__a,
2580 (vector signed char)__b, &__cc);
2581 return __cc == 0;
2582 }
2583
2584 static inline __ATTRS_o_ai int
2585 vec_all_eq(vector signed short __a, vector signed short __b) {
2586 int __cc;
2587 __builtin_s390_vceqhs(__a, __b, &__cc);
2588 return __cc == 0;
2589 }
2590
2591 // This prototype is deprecated.
2592 static inline __ATTRS_o_ai int
2593 vec_all_eq(vector signed short __a, vector bool short __b) {
2594 int __cc;
2595 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2596 return __cc == 0;
2597 }
2598
2599 // This prototype is deprecated.
2600 static inline __ATTRS_o_ai int
2601 vec_all_eq(vector bool short __a, vector signed short __b) {
2602 int __cc;
2603 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2604 return __cc == 0;
2605 }
2606
2607 static inline __ATTRS_o_ai int
2608 vec_all_eq(vector unsigned short __a, vector unsigned short __b) {
2609 int __cc;
2610 __builtin_s390_vceqhs((vector signed short)__a,
2611 (vector signed short)__b, &__cc);
2612 return __cc == 0;
2613 }
2614
2615 // This prototype is deprecated.
2616 static inline __ATTRS_o_ai int
2617 vec_all_eq(vector unsigned short __a, vector bool short __b) {
2618 int __cc;
2619 __builtin_s390_vceqhs((vector signed short)__a,
2620 (vector signed short)__b, &__cc);
2621 return __cc == 0;
2622 }
2623
2624 // This prototype is deprecated.
2625 static inline __ATTRS_o_ai int
2626 vec_all_eq(vector bool short __a, vector unsigned short __b) {
2627 int __cc;
2628 __builtin_s390_vceqhs((vector signed short)__a,
2629 (vector signed short)__b, &__cc);
2630 return __cc == 0;
2631 }
2632
2633 static inline __ATTRS_o_ai int
2634 vec_all_eq(vector bool short __a, vector bool short __b) {
2635 int __cc;
2636 __builtin_s390_vceqhs((vector signed short)__a,
2637 (vector signed short)__b, &__cc);
2638 return __cc == 0;
2639 }
2640
2641 static inline __ATTRS_o_ai int
2642 vec_all_eq(vector signed int __a, vector signed int __b) {
2643 int __cc;
2644 __builtin_s390_vceqfs(__a, __b, &__cc);
2645 return __cc == 0;
2646 }
2647
2648 // This prototype is deprecated.
2649 static inline __ATTRS_o_ai int
2650 vec_all_eq(vector signed int __a, vector bool int __b) {
2651 int __cc;
2652 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2653 return __cc == 0;
2654 }
2655
2656 // This prototype is deprecated.
2657 static inline __ATTRS_o_ai int
2658 vec_all_eq(vector bool int __a, vector signed int __b) {
2659 int __cc;
2660 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2661 return __cc == 0;
2662 }
2663
2664 static inline __ATTRS_o_ai int
2665 vec_all_eq(vector unsigned int __a, vector unsigned int __b) {
2666 int __cc;
2667 __builtin_s390_vceqfs((vector signed int)__a,
2668 (vector signed int)__b, &__cc);
2669 return __cc == 0;
2670 }
2671
2672 // This prototype is deprecated.
2673 static inline __ATTRS_o_ai int
2674 vec_all_eq(vector unsigned int __a, vector bool int __b) {
2675 int __cc;
2676 __builtin_s390_vceqfs((vector signed int)__a,
2677 (vector signed int)__b, &__cc);
2678 return __cc == 0;
2679 }
2680
2681 // This prototype is deprecated.
2682 static inline __ATTRS_o_ai int
2683 vec_all_eq(vector bool int __a, vector unsigned int __b) {
2684 int __cc;
2685 __builtin_s390_vceqfs((vector signed int)__a,
2686 (vector signed int)__b, &__cc);
2687 return __cc == 0;
2688 }
2689
2690 static inline __ATTRS_o_ai int
2691 vec_all_eq(vector bool int __a, vector bool int __b) {
2692 int __cc;
2693 __builtin_s390_vceqfs((vector signed int)__a,
2694 (vector signed int)__b, &__cc);
2695 return __cc == 0;
2696 }
2697
2698 static inline __ATTRS_o_ai int
2699 vec_all_eq(vector signed long long __a, vector signed long long __b) {
2700 int __cc;
2701 __builtin_s390_vceqgs(__a, __b, &__cc);
2702 return __cc == 0;
2703 }
2704
2705 // This prototype is deprecated.
2706 static inline __ATTRS_o_ai int
2707 vec_all_eq(vector signed long long __a, vector bool long long __b) {
2708 int __cc;
2709 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2710 return __cc == 0;
2711 }
2712
2713 // This prototype is deprecated.
2714 static inline __ATTRS_o_ai int
2715 vec_all_eq(vector bool long long __a, vector signed long long __b) {
2716 int __cc;
2717 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2718 return __cc == 0;
2719 }
2720
2721 static inline __ATTRS_o_ai int
2722 vec_all_eq(vector unsigned long long __a, vector unsigned long long __b) {
2723 int __cc;
2724 __builtin_s390_vceqgs((vector signed long long)__a,
2725 (vector signed long long)__b, &__cc);
2726 return __cc == 0;
2727 }
2728
2729 // This prototype is deprecated.
2730 static inline __ATTRS_o_ai int
2731 vec_all_eq(vector unsigned long long __a, vector bool long long __b) {
2732 int __cc;
2733 __builtin_s390_vceqgs((vector signed long long)__a,
2734 (vector signed long long)__b, &__cc);
2735 return __cc == 0;
2736 }
2737
2738 // This prototype is deprecated.
2739 static inline __ATTRS_o_ai int
2740 vec_all_eq(vector bool long long __a, vector unsigned long long __b) {
2741 int __cc;
2742 __builtin_s390_vceqgs((vector signed long long)__a,
2743 (vector signed long long)__b, &__cc);
2744 return __cc == 0;
2745 }
2746
2747 static inline __ATTRS_o_ai int
2748 vec_all_eq(vector bool long long __a, vector bool long long __b) {
2749 int __cc;
2750 __builtin_s390_vceqgs((vector signed long long)__a,
2751 (vector signed long long)__b, &__cc);
2752 return __cc == 0;
2753 }
2754
2755 #if __ARCH__ >= 12
2756 static inline __ATTRS_o_ai int
2757 vec_all_eq(vector float __a, vector float __b) {
2758 int __cc;
2759 __builtin_s390_vfcesbs(__a, __b, &__cc);
2760 return __cc == 0;
2761 }
2762 #endif
2763
2764 static inline __ATTRS_o_ai int
2765 vec_all_eq(vector double __a, vector double __b) {
2766 int __cc;
2767 __builtin_s390_vfcedbs(__a, __b, &__cc);
2768 return __cc == 0;
2769 }
2770
2771 /*-- vec_all_ne -------------------------------------------------------------*/
2772
2773 static inline __ATTRS_o_ai int
2774 vec_all_ne(vector signed char __a, vector signed char __b) {
2775 int __cc;
2776 __builtin_s390_vceqbs(__a, __b, &__cc);
2777 return __cc == 3;
2778 }
2779
2780 // This prototype is deprecated.
2781 static inline __ATTRS_o_ai int
2782 vec_all_ne(vector signed char __a, vector bool char __b) {
2783 int __cc;
2784 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2785 return __cc == 3;
2786 }
2787
2788 // This prototype is deprecated.
2789 static inline __ATTRS_o_ai int
2790 vec_all_ne(vector bool char __a, vector signed char __b) {
2791 int __cc;
2792 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2793 return __cc == 3;
2794 }
2795
2796 static inline __ATTRS_o_ai int
2797 vec_all_ne(vector unsigned char __a, vector unsigned char __b) {
2798 int __cc;
2799 __builtin_s390_vceqbs((vector signed char)__a,
2800 (vector signed char)__b, &__cc);
2801 return __cc == 3;
2802 }
2803
2804 // This prototype is deprecated.
2805 static inline __ATTRS_o_ai int
2806 vec_all_ne(vector unsigned char __a, vector bool char __b) {
2807 int __cc;
2808 __builtin_s390_vceqbs((vector signed char)__a,
2809 (vector signed char)__b, &__cc);
2810 return __cc == 3;
2811 }
2812
2813 // This prototype is deprecated.
2814 static inline __ATTRS_o_ai int
2815 vec_all_ne(vector bool char __a, vector unsigned char __b) {
2816 int __cc;
2817 __builtin_s390_vceqbs((vector signed char)__a,
2818 (vector signed char)__b, &__cc);
2819 return __cc == 3;
2820 }
2821
2822 static inline __ATTRS_o_ai int
2823 vec_all_ne(vector bool char __a, vector bool char __b) {
2824 int __cc;
2825 __builtin_s390_vceqbs((vector signed char)__a,
2826 (vector signed char)__b, &__cc);
2827 return __cc == 3;
2828 }
2829
2830 static inline __ATTRS_o_ai int
2831 vec_all_ne(vector signed short __a, vector signed short __b) {
2832 int __cc;
2833 __builtin_s390_vceqhs(__a, __b, &__cc);
2834 return __cc == 3;
2835 }
2836
2837 // This prototype is deprecated.
2838 static inline __ATTRS_o_ai int
2839 vec_all_ne(vector signed short __a, vector bool short __b) {
2840 int __cc;
2841 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2842 return __cc == 3;
2843 }
2844
2845 // This prototype is deprecated.
2846 static inline __ATTRS_o_ai int
2847 vec_all_ne(vector bool short __a, vector signed short __b) {
2848 int __cc;
2849 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2850 return __cc == 3;
2851 }
2852
2853 static inline __ATTRS_o_ai int
2854 vec_all_ne(vector unsigned short __a, vector unsigned short __b) {
2855 int __cc;
2856 __builtin_s390_vceqhs((vector signed short)__a,
2857 (vector signed short)__b, &__cc);
2858 return __cc == 3;
2859 }
2860
2861 // This prototype is deprecated.
2862 static inline __ATTRS_o_ai int
2863 vec_all_ne(vector unsigned short __a, vector bool short __b) {
2864 int __cc;
2865 __builtin_s390_vceqhs((vector signed short)__a,
2866 (vector signed short)__b, &__cc);
2867 return __cc == 3;
2868 }
2869
2870 // This prototype is deprecated.
2871 static inline __ATTRS_o_ai int
2872 vec_all_ne(vector bool short __a, vector unsigned short __b) {
2873 int __cc;
2874 __builtin_s390_vceqhs((vector signed short)__a,
2875 (vector signed short)__b, &__cc);
2876 return __cc == 3;
2877 }
2878
2879 static inline __ATTRS_o_ai int
2880 vec_all_ne(vector bool short __a, vector bool short __b) {
2881 int __cc;
2882 __builtin_s390_vceqhs((vector signed short)__a,
2883 (vector signed short)__b, &__cc);
2884 return __cc == 3;
2885 }
2886
2887 static inline __ATTRS_o_ai int
2888 vec_all_ne(vector signed int __a, vector signed int __b) {
2889 int __cc;
2890 __builtin_s390_vceqfs(__a, __b, &__cc);
2891 return __cc == 3;
2892 }
2893
2894 // This prototype is deprecated.
2895 static inline __ATTRS_o_ai int
2896 vec_all_ne(vector signed int __a, vector bool int __b) {
2897 int __cc;
2898 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2899 return __cc == 3;
2900 }
2901
2902 // This prototype is deprecated.
2903 static inline __ATTRS_o_ai int
2904 vec_all_ne(vector bool int __a, vector signed int __b) {
2905 int __cc;
2906 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2907 return __cc == 3;
2908 }
2909
2910 static inline __ATTRS_o_ai int
2911 vec_all_ne(vector unsigned int __a, vector unsigned int __b) {
2912 int __cc;
2913 __builtin_s390_vceqfs((vector signed int)__a,
2914 (vector signed int)__b, &__cc);
2915 return __cc == 3;
2916 }
2917
2918 // This prototype is deprecated.
2919 static inline __ATTRS_o_ai int
2920 vec_all_ne(vector unsigned int __a, vector bool int __b) {
2921 int __cc;
2922 __builtin_s390_vceqfs((vector signed int)__a,
2923 (vector signed int)__b, &__cc);
2924 return __cc == 3;
2925 }
2926
2927 // This prototype is deprecated.
2928 static inline __ATTRS_o_ai int
2929 vec_all_ne(vector bool int __a, vector unsigned int __b) {
2930 int __cc;
2931 __builtin_s390_vceqfs((vector signed int)__a,
2932 (vector signed int)__b, &__cc);
2933 return __cc == 3;
2934 }
2935
2936 static inline __ATTRS_o_ai int
2937 vec_all_ne(vector bool int __a, vector bool int __b) {
2938 int __cc;
2939 __builtin_s390_vceqfs((vector signed int)__a,
2940 (vector signed int)__b, &__cc);
2941 return __cc == 3;
2942 }
2943
2944 static inline __ATTRS_o_ai int
2945 vec_all_ne(vector signed long long __a, vector signed long long __b) {
2946 int __cc;
2947 __builtin_s390_vceqgs(__a, __b, &__cc);
2948 return __cc == 3;
2949 }
2950
2951 // This prototype is deprecated.
2952 static inline __ATTRS_o_ai int
2953 vec_all_ne(vector signed long long __a, vector bool long long __b) {
2954 int __cc;
2955 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2956 return __cc == 3;
2957 }
2958
2959 // This prototype is deprecated.
2960 static inline __ATTRS_o_ai int
2961 vec_all_ne(vector bool long long __a, vector signed long long __b) {
2962 int __cc;
2963 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2964 return __cc == 3;
2965 }
2966
2967 static inline __ATTRS_o_ai int
2968 vec_all_ne(vector unsigned long long __a, vector unsigned long long __b) {
2969 int __cc;
2970 __builtin_s390_vceqgs((vector signed long long)__a,
2971 (vector signed long long)__b, &__cc);
2972 return __cc == 3;
2973 }
2974
2975 // This prototype is deprecated.
2976 static inline __ATTRS_o_ai int
2977 vec_all_ne(vector unsigned long long __a, vector bool long long __b) {
2978 int __cc;
2979 __builtin_s390_vceqgs((vector signed long long)__a,
2980 (vector signed long long)__b, &__cc);
2981 return __cc == 3;
2982 }
2983
2984 // This prototype is deprecated.
2985 static inline __ATTRS_o_ai int
2986 vec_all_ne(vector bool long long __a, vector unsigned long long __b) {
2987 int __cc;
2988 __builtin_s390_vceqgs((vector signed long long)__a,
2989 (vector signed long long)__b, &__cc);
2990 return __cc == 3;
2991 }
2992
2993 static inline __ATTRS_o_ai int
2994 vec_all_ne(vector bool long long __a, vector bool long long __b) {
2995 int __cc;
2996 __builtin_s390_vceqgs((vector signed long long)__a,
2997 (vector signed long long)__b, &__cc);
2998 return __cc == 3;
2999 }
3000
3001 #if __ARCH__ >= 12
3002 static inline __ATTRS_o_ai int
3003 vec_all_ne(vector float __a, vector float __b) {
3004 int __cc;
3005 __builtin_s390_vfcesbs(__a, __b, &__cc);
3006 return __cc == 3;
3007 }
3008 #endif
3009
3010 static inline __ATTRS_o_ai int
3011 vec_all_ne(vector double __a, vector double __b) {
3012 int __cc;
3013 __builtin_s390_vfcedbs(__a, __b, &__cc);
3014 return __cc == 3;
3015 }
3016
3017 /*-- vec_all_ge -------------------------------------------------------------*/
3018
3019 static inline __ATTRS_o_ai int
3020 vec_all_ge(vector signed char __a, vector signed char __b) {
3021 int __cc;
3022 __builtin_s390_vchbs(__b, __a, &__cc);
3023 return __cc == 3;
3024 }
3025
3026 // This prototype is deprecated.
3027 static inline __ATTRS_o_ai int
3028 vec_all_ge(vector signed char __a, vector bool char __b) {
3029 int __cc;
3030 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3031 return __cc == 3;
3032 }
3033
3034 // This prototype is deprecated.
3035 static inline __ATTRS_o_ai int
3036 vec_all_ge(vector bool char __a, vector signed char __b) {
3037 int __cc;
3038 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3039 return __cc == 3;
3040 }
3041
3042 static inline __ATTRS_o_ai int
3043 vec_all_ge(vector unsigned char __a, vector unsigned char __b) {
3044 int __cc;
3045 __builtin_s390_vchlbs(__b, __a, &__cc);
3046 return __cc == 3;
3047 }
3048
3049 // This prototype is deprecated.
3050 static inline __ATTRS_o_ai int
3051 vec_all_ge(vector unsigned char __a, vector bool char __b) {
3052 int __cc;
3053 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3054 return __cc == 3;
3055 }
3056
3057 // This prototype is deprecated.
3058 static inline __ATTRS_o_ai int
3059 vec_all_ge(vector bool char __a, vector unsigned char __b) {
3060 int __cc;
3061 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3062 return __cc == 3;
3063 }
3064
3065 // This prototype is deprecated.
3066 static inline __ATTRS_o_ai int
3067 vec_all_ge(vector bool char __a, vector bool char __b) {
3068 int __cc;
3069 __builtin_s390_vchlbs((vector unsigned char)__b,
3070 (vector unsigned char)__a, &__cc);
3071 return __cc == 3;
3072 }
3073
3074 static inline __ATTRS_o_ai int
3075 vec_all_ge(vector signed short __a, vector signed short __b) {
3076 int __cc;
3077 __builtin_s390_vchhs(__b, __a, &__cc);
3078 return __cc == 3;
3079 }
3080
3081 // This prototype is deprecated.
3082 static inline __ATTRS_o_ai int
3083 vec_all_ge(vector signed short __a, vector bool short __b) {
3084 int __cc;
3085 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3086 return __cc == 3;
3087 }
3088
3089 // This prototype is deprecated.
3090 static inline __ATTRS_o_ai int
3091 vec_all_ge(vector bool short __a, vector signed short __b) {
3092 int __cc;
3093 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3094 return __cc == 3;
3095 }
3096
3097 static inline __ATTRS_o_ai int
3098 vec_all_ge(vector unsigned short __a, vector unsigned short __b) {
3099 int __cc;
3100 __builtin_s390_vchlhs(__b, __a, &__cc);
3101 return __cc == 3;
3102 }
3103
3104 // This prototype is deprecated.
3105 static inline __ATTRS_o_ai int
3106 vec_all_ge(vector unsigned short __a, vector bool short __b) {
3107 int __cc;
3108 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3109 return __cc == 3;
3110 }
3111
3112 // This prototype is deprecated.
3113 static inline __ATTRS_o_ai int
3114 vec_all_ge(vector bool short __a, vector unsigned short __b) {
3115 int __cc;
3116 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3117 return __cc == 3;
3118 }
3119
3120 // This prototype is deprecated.
3121 static inline __ATTRS_o_ai int
3122 vec_all_ge(vector bool short __a, vector bool short __b) {
3123 int __cc;
3124 __builtin_s390_vchlhs((vector unsigned short)__b,
3125 (vector unsigned short)__a, &__cc);
3126 return __cc == 3;
3127 }
3128
3129 static inline __ATTRS_o_ai int
3130 vec_all_ge(vector signed int __a, vector signed int __b) {
3131 int __cc;
3132 __builtin_s390_vchfs(__b, __a, &__cc);
3133 return __cc == 3;
3134 }
3135
3136 // This prototype is deprecated.
3137 static inline __ATTRS_o_ai int
3138 vec_all_ge(vector signed int __a, vector bool int __b) {
3139 int __cc;
3140 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3141 return __cc == 3;
3142 }
3143
3144 // This prototype is deprecated.
3145 static inline __ATTRS_o_ai int
3146 vec_all_ge(vector bool int __a, vector signed int __b) {
3147 int __cc;
3148 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3149 return __cc == 3;
3150 }
3151
3152 static inline __ATTRS_o_ai int
3153 vec_all_ge(vector unsigned int __a, vector unsigned int __b) {
3154 int __cc;
3155 __builtin_s390_vchlfs(__b, __a, &__cc);
3156 return __cc == 3;
3157 }
3158
3159 // This prototype is deprecated.
3160 static inline __ATTRS_o_ai int
3161 vec_all_ge(vector unsigned int __a, vector bool int __b) {
3162 int __cc;
3163 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3164 return __cc == 3;
3165 }
3166
3167 // This prototype is deprecated.
3168 static inline __ATTRS_o_ai int
3169 vec_all_ge(vector bool int __a, vector unsigned int __b) {
3170 int __cc;
3171 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3172 return __cc == 3;
3173 }
3174
3175 // This prototype is deprecated.
3176 static inline __ATTRS_o_ai int
3177 vec_all_ge(vector bool int __a, vector bool int __b) {
3178 int __cc;
3179 __builtin_s390_vchlfs((vector unsigned int)__b,
3180 (vector unsigned int)__a, &__cc);
3181 return __cc == 3;
3182 }
3183
3184 static inline __ATTRS_o_ai int
3185 vec_all_ge(vector signed long long __a, vector signed long long __b) {
3186 int __cc;
3187 __builtin_s390_vchgs(__b, __a, &__cc);
3188 return __cc == 3;
3189 }
3190
3191 // This prototype is deprecated.
3192 static inline __ATTRS_o_ai int
3193 vec_all_ge(vector signed long long __a, vector bool long long __b) {
3194 int __cc;
3195 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3196 return __cc == 3;
3197 }
3198
3199 // This prototype is deprecated.
3200 static inline __ATTRS_o_ai int
3201 vec_all_ge(vector bool long long __a, vector signed long long __b) {
3202 int __cc;
3203 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3204 return __cc == 3;
3205 }
3206
3207 static inline __ATTRS_o_ai int
3208 vec_all_ge(vector unsigned long long __a, vector unsigned long long __b) {
3209 int __cc;
3210 __builtin_s390_vchlgs(__b, __a, &__cc);
3211 return __cc == 3;
3212 }
3213
3214 // This prototype is deprecated.
3215 static inline __ATTRS_o_ai int
3216 vec_all_ge(vector unsigned long long __a, vector bool long long __b) {
3217 int __cc;
3218 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3219 return __cc == 3;
3220 }
3221
3222 // This prototype is deprecated.
3223 static inline __ATTRS_o_ai int
3224 vec_all_ge(vector bool long long __a, vector unsigned long long __b) {
3225 int __cc;
3226 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3227 return __cc == 3;
3228 }
3229
3230 // This prototype is deprecated.
3231 static inline __ATTRS_o_ai int
3232 vec_all_ge(vector bool long long __a, vector bool long long __b) {
3233 int __cc;
3234 __builtin_s390_vchlgs((vector unsigned long long)__b,
3235 (vector unsigned long long)__a, &__cc);
3236 return __cc == 3;
3237 }
3238
3239 #if __ARCH__ >= 12
3240 static inline __ATTRS_o_ai int
3241 vec_all_ge(vector float __a, vector float __b) {
3242 int __cc;
3243 __builtin_s390_vfchesbs(__a, __b, &__cc);
3244 return __cc == 0;
3245 }
3246 #endif
3247
3248 static inline __ATTRS_o_ai int
3249 vec_all_ge(vector double __a, vector double __b) {
3250 int __cc;
3251 __builtin_s390_vfchedbs(__a, __b, &__cc);
3252 return __cc == 0;
3253 }
3254
3255 /*-- vec_all_gt -------------------------------------------------------------*/
3256
3257 static inline __ATTRS_o_ai int
3258 vec_all_gt(vector signed char __a, vector signed char __b) {
3259 int __cc;
3260 __builtin_s390_vchbs(__a, __b, &__cc);
3261 return __cc == 0;
3262 }
3263
3264 // This prototype is deprecated.
3265 static inline __ATTRS_o_ai int
3266 vec_all_gt(vector signed char __a, vector bool char __b) {
3267 int __cc;
3268 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
3269 return __cc == 0;
3270 }
3271
3272 // This prototype is deprecated.
3273 static inline __ATTRS_o_ai int
3274 vec_all_gt(vector bool char __a, vector signed char __b) {
3275 int __cc;
3276 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
3277 return __cc == 0;
3278 }
3279
3280 static inline __ATTRS_o_ai int
3281 vec_all_gt(vector unsigned char __a, vector unsigned char __b) {
3282 int __cc;
3283 __builtin_s390_vchlbs(__a, __b, &__cc);
3284 return __cc == 0;
3285 }
3286
3287 // This prototype is deprecated.
3288 static inline __ATTRS_o_ai int
3289 vec_all_gt(vector unsigned char __a, vector bool char __b) {
3290 int __cc;
3291 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
3292 return __cc == 0;
3293 }
3294
3295 // This prototype is deprecated.
3296 static inline __ATTRS_o_ai int
3297 vec_all_gt(vector bool char __a, vector unsigned char __b) {
3298 int __cc;
3299 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
3300 return __cc == 0;
3301 }
3302
3303 // This prototype is deprecated.
3304 static inline __ATTRS_o_ai int
3305 vec_all_gt(vector bool char __a, vector bool char __b) {
3306 int __cc;
3307 __builtin_s390_vchlbs((vector unsigned char)__a,
3308 (vector unsigned char)__b, &__cc);
3309 return __cc == 0;
3310 }
3311
3312 static inline __ATTRS_o_ai int
3313 vec_all_gt(vector signed short __a, vector signed short __b) {
3314 int __cc;
3315 __builtin_s390_vchhs(__a, __b, &__cc);
3316 return __cc == 0;
3317 }
3318
3319 // This prototype is deprecated.
3320 static inline __ATTRS_o_ai int
3321 vec_all_gt(vector signed short __a, vector bool short __b) {
3322 int __cc;
3323 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
3324 return __cc == 0;
3325 }
3326
3327 // This prototype is deprecated.
3328 static inline __ATTRS_o_ai int
3329 vec_all_gt(vector bool short __a, vector signed short __b) {
3330 int __cc;
3331 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
3332 return __cc == 0;
3333 }
3334
3335 static inline __ATTRS_o_ai int
3336 vec_all_gt(vector unsigned short __a, vector unsigned short __b) {
3337 int __cc;
3338 __builtin_s390_vchlhs(__a, __b, &__cc);
3339 return __cc == 0;
3340 }
3341
3342 // This prototype is deprecated.
3343 static inline __ATTRS_o_ai int
3344 vec_all_gt(vector unsigned short __a, vector bool short __b) {
3345 int __cc;
3346 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3347 return __cc == 0;
3348 }
3349
3350 // This prototype is deprecated.
3351 static inline __ATTRS_o_ai int
3352 vec_all_gt(vector bool short __a, vector unsigned short __b) {
3353 int __cc;
3354 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3355 return __cc == 0;
3356 }
3357
3358 // This prototype is deprecated.
3359 static inline __ATTRS_o_ai int
3360 vec_all_gt(vector bool short __a, vector bool short __b) {
3361 int __cc;
3362 __builtin_s390_vchlhs((vector unsigned short)__a,
3363 (vector unsigned short)__b, &__cc);
3364 return __cc == 0;
3365 }
3366
3367 static inline __ATTRS_o_ai int
3368 vec_all_gt(vector signed int __a, vector signed int __b) {
3369 int __cc;
3370 __builtin_s390_vchfs(__a, __b, &__cc);
3371 return __cc == 0;
3372 }
3373
3374 // This prototype is deprecated.
3375 static inline __ATTRS_o_ai int
3376 vec_all_gt(vector signed int __a, vector bool int __b) {
3377 int __cc;
3378 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3379 return __cc == 0;
3380 }
3381
3382 // This prototype is deprecated.
3383 static inline __ATTRS_o_ai int
3384 vec_all_gt(vector bool int __a, vector signed int __b) {
3385 int __cc;
3386 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3387 return __cc == 0;
3388 }
3389
3390 static inline __ATTRS_o_ai int
3391 vec_all_gt(vector unsigned int __a, vector unsigned int __b) {
3392 int __cc;
3393 __builtin_s390_vchlfs(__a, __b, &__cc);
3394 return __cc == 0;
3395 }
3396
3397 // This prototype is deprecated.
3398 static inline __ATTRS_o_ai int
3399 vec_all_gt(vector unsigned int __a, vector bool int __b) {
3400 int __cc;
3401 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3402 return __cc == 0;
3403 }
3404
3405 // This prototype is deprecated.
3406 static inline __ATTRS_o_ai int
3407 vec_all_gt(vector bool int __a, vector unsigned int __b) {
3408 int __cc;
3409 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3410 return __cc == 0;
3411 }
3412
3413 // This prototype is deprecated.
3414 static inline __ATTRS_o_ai int
3415 vec_all_gt(vector bool int __a, vector bool int __b) {
3416 int __cc;
3417 __builtin_s390_vchlfs((vector unsigned int)__a,
3418 (vector unsigned int)__b, &__cc);
3419 return __cc == 0;
3420 }
3421
3422 static inline __ATTRS_o_ai int
3423 vec_all_gt(vector signed long long __a, vector signed long long __b) {
3424 int __cc;
3425 __builtin_s390_vchgs(__a, __b, &__cc);
3426 return __cc == 0;
3427 }
3428
3429 // This prototype is deprecated.
3430 static inline __ATTRS_o_ai int
3431 vec_all_gt(vector signed long long __a, vector bool long long __b) {
3432 int __cc;
3433 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3434 return __cc == 0;
3435 }
3436
3437 // This prototype is deprecated.
3438 static inline __ATTRS_o_ai int
3439 vec_all_gt(vector bool long long __a, vector signed long long __b) {
3440 int __cc;
3441 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3442 return __cc == 0;
3443 }
3444
3445 static inline __ATTRS_o_ai int
3446 vec_all_gt(vector unsigned long long __a, vector unsigned long long __b) {
3447 int __cc;
3448 __builtin_s390_vchlgs(__a, __b, &__cc);
3449 return __cc == 0;
3450 }
3451
3452 // This prototype is deprecated.
3453 static inline __ATTRS_o_ai int
3454 vec_all_gt(vector unsigned long long __a, vector bool long long __b) {
3455 int __cc;
3456 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3457 return __cc == 0;
3458 }
3459
3460 // This prototype is deprecated.
3461 static inline __ATTRS_o_ai int
3462 vec_all_gt(vector bool long long __a, vector unsigned long long __b) {
3463 int __cc;
3464 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3465 return __cc == 0;
3466 }
3467
3468 // This prototype is deprecated.
3469 static inline __ATTRS_o_ai int
3470 vec_all_gt(vector bool long long __a, vector bool long long __b) {
3471 int __cc;
3472 __builtin_s390_vchlgs((vector unsigned long long)__a,
3473 (vector unsigned long long)__b, &__cc);
3474 return __cc == 0;
3475 }
3476
3477 #if __ARCH__ >= 12
3478 static inline __ATTRS_o_ai int
3479 vec_all_gt(vector float __a, vector float __b) {
3480 int __cc;
3481 __builtin_s390_vfchsbs(__a, __b, &__cc);
3482 return __cc == 0;
3483 }
3484 #endif
3485
3486 static inline __ATTRS_o_ai int
3487 vec_all_gt(vector double __a, vector double __b) {
3488 int __cc;
3489 __builtin_s390_vfchdbs(__a, __b, &__cc);
3490 return __cc == 0;
3491 }
3492
3493 /*-- vec_all_le -------------------------------------------------------------*/
3494
3495 static inline __ATTRS_o_ai int
3496 vec_all_le(vector signed char __a, vector signed char __b) {
3497 int __cc;
3498 __builtin_s390_vchbs(__a, __b, &__cc);
3499 return __cc == 3;
3500 }
3501
3502 // This prototype is deprecated.
3503 static inline __ATTRS_o_ai int
3504 vec_all_le(vector signed char __a, vector bool char __b) {
3505 int __cc;
3506 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
3507 return __cc == 3;
3508 }
3509
3510 // This prototype is deprecated.
3511 static inline __ATTRS_o_ai int
3512 vec_all_le(vector bool char __a, vector signed char __b) {
3513 int __cc;
3514 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
3515 return __cc == 3;
3516 }
3517
3518 static inline __ATTRS_o_ai int
3519 vec_all_le(vector unsigned char __a, vector unsigned char __b) {
3520 int __cc;
3521 __builtin_s390_vchlbs(__a, __b, &__cc);
3522 return __cc == 3;
3523 }
3524
3525 // This prototype is deprecated.
3526 static inline __ATTRS_o_ai int
3527 vec_all_le(vector unsigned char __a, vector bool char __b) {
3528 int __cc;
3529 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
3530 return __cc == 3;
3531 }
3532
3533 // This prototype is deprecated.
3534 static inline __ATTRS_o_ai int
3535 vec_all_le(vector bool char __a, vector unsigned char __b) {
3536 int __cc;
3537 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
3538 return __cc == 3;
3539 }
3540
3541 // This prototype is deprecated.
3542 static inline __ATTRS_o_ai int
3543 vec_all_le(vector bool char __a, vector bool char __b) {
3544 int __cc;
3545 __builtin_s390_vchlbs((vector unsigned char)__a,
3546 (vector unsigned char)__b, &__cc);
3547 return __cc == 3;
3548 }
3549
3550 static inline __ATTRS_o_ai int
3551 vec_all_le(vector signed short __a, vector signed short __b) {
3552 int __cc;
3553 __builtin_s390_vchhs(__a, __b, &__cc);
3554 return __cc == 3;
3555 }
3556
3557 // This prototype is deprecated.
3558 static inline __ATTRS_o_ai int
3559 vec_all_le(vector signed short __a, vector bool short __b) {
3560 int __cc;
3561 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
3562 return __cc == 3;
3563 }
3564
3565 // This prototype is deprecated.
3566 static inline __ATTRS_o_ai int
3567 vec_all_le(vector bool short __a, vector signed short __b) {
3568 int __cc;
3569 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
3570 return __cc == 3;
3571 }
3572
3573 static inline __ATTRS_o_ai int
3574 vec_all_le(vector unsigned short __a, vector unsigned short __b) {
3575 int __cc;
3576 __builtin_s390_vchlhs(__a, __b, &__cc);
3577 return __cc == 3;
3578 }
3579
3580 // This prototype is deprecated.
3581 static inline __ATTRS_o_ai int
3582 vec_all_le(vector unsigned short __a, vector bool short __b) {
3583 int __cc;
3584 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3585 return __cc == 3;
3586 }
3587
3588 // This prototype is deprecated.
3589 static inline __ATTRS_o_ai int
3590 vec_all_le(vector bool short __a, vector unsigned short __b) {
3591 int __cc;
3592 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3593 return __cc == 3;
3594 }
3595
3596 // This prototype is deprecated.
3597 static inline __ATTRS_o_ai int
3598 vec_all_le(vector bool short __a, vector bool short __b) {
3599 int __cc;
3600 __builtin_s390_vchlhs((vector unsigned short)__a,
3601 (vector unsigned short)__b, &__cc);
3602 return __cc == 3;
3603 }
3604
3605 static inline __ATTRS_o_ai int
3606 vec_all_le(vector signed int __a, vector signed int __b) {
3607 int __cc;
3608 __builtin_s390_vchfs(__a, __b, &__cc);
3609 return __cc == 3;
3610 }
3611
3612 // This prototype is deprecated.
3613 static inline __ATTRS_o_ai int
3614 vec_all_le(vector signed int __a, vector bool int __b) {
3615 int __cc;
3616 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3617 return __cc == 3;
3618 }
3619
3620 // This prototype is deprecated.
3621 static inline __ATTRS_o_ai int
3622 vec_all_le(vector bool int __a, vector signed int __b) {
3623 int __cc;
3624 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3625 return __cc == 3;
3626 }
3627
3628 static inline __ATTRS_o_ai int
3629 vec_all_le(vector unsigned int __a, vector unsigned int __b) {
3630 int __cc;
3631 __builtin_s390_vchlfs(__a, __b, &__cc);
3632 return __cc == 3;
3633 }
3634
3635 // This prototype is deprecated.
3636 static inline __ATTRS_o_ai int
3637 vec_all_le(vector unsigned int __a, vector bool int __b) {
3638 int __cc;
3639 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3640 return __cc == 3;
3641 }
3642
3643 // This prototype is deprecated.
3644 static inline __ATTRS_o_ai int
3645 vec_all_le(vector bool int __a, vector unsigned int __b) {
3646 int __cc;
3647 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3648 return __cc == 3;
3649 }
3650
3651 // This prototype is deprecated.
3652 static inline __ATTRS_o_ai int
3653 vec_all_le(vector bool int __a, vector bool int __b) {
3654 int __cc;
3655 __builtin_s390_vchlfs((vector unsigned int)__a,
3656 (vector unsigned int)__b, &__cc);
3657 return __cc == 3;
3658 }
3659
3660 static inline __ATTRS_o_ai int
3661 vec_all_le(vector signed long long __a, vector signed long long __b) {
3662 int __cc;
3663 __builtin_s390_vchgs(__a, __b, &__cc);
3664 return __cc == 3;
3665 }
3666
3667 // This prototype is deprecated.
3668 static inline __ATTRS_o_ai int
3669 vec_all_le(vector signed long long __a, vector bool long long __b) {
3670 int __cc;
3671 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3672 return __cc == 3;
3673 }
3674
3675 // This prototype is deprecated.
3676 static inline __ATTRS_o_ai int
3677 vec_all_le(vector bool long long __a, vector signed long long __b) {
3678 int __cc;
3679 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3680 return __cc == 3;
3681 }
3682
3683 static inline __ATTRS_o_ai int
3684 vec_all_le(vector unsigned long long __a, vector unsigned long long __b) {
3685 int __cc;
3686 __builtin_s390_vchlgs(__a, __b, &__cc);
3687 return __cc == 3;
3688 }
3689
3690 // This prototype is deprecated.
3691 static inline __ATTRS_o_ai int
3692 vec_all_le(vector unsigned long long __a, vector bool long long __b) {
3693 int __cc;
3694 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3695 return __cc == 3;
3696 }
3697
3698 // This prototype is deprecated.
3699 static inline __ATTRS_o_ai int
3700 vec_all_le(vector bool long long __a, vector unsigned long long __b) {
3701 int __cc;
3702 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3703 return __cc == 3;
3704 }
3705
3706 // This prototype is deprecated.
3707 static inline __ATTRS_o_ai int
3708 vec_all_le(vector bool long long __a, vector bool long long __b) {
3709 int __cc;
3710 __builtin_s390_vchlgs((vector unsigned long long)__a,
3711 (vector unsigned long long)__b, &__cc);
3712 return __cc == 3;
3713 }
3714
3715 #if __ARCH__ >= 12
3716 static inline __ATTRS_o_ai int
3717 vec_all_le(vector float __a, vector float __b) {
3718 int __cc;
3719 __builtin_s390_vfchesbs(__b, __a, &__cc);
3720 return __cc == 0;
3721 }
3722 #endif
3723
3724 static inline __ATTRS_o_ai int
3725 vec_all_le(vector double __a, vector double __b) {
3726 int __cc;
3727 __builtin_s390_vfchedbs(__b, __a, &__cc);
3728 return __cc == 0;
3729 }
3730
3731 /*-- vec_all_lt -------------------------------------------------------------*/
3732
3733 static inline __ATTRS_o_ai int
3734 vec_all_lt(vector signed char __a, vector signed char __b) {
3735 int __cc;
3736 __builtin_s390_vchbs(__b, __a, &__cc);
3737 return __cc == 0;
3738 }
3739
3740 // This prototype is deprecated.
3741 static inline __ATTRS_o_ai int
3742 vec_all_lt(vector signed char __a, vector bool char __b) {
3743 int __cc;
3744 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3745 return __cc == 0;
3746 }
3747
3748 // This prototype is deprecated.
3749 static inline __ATTRS_o_ai int
3750 vec_all_lt(vector bool char __a, vector signed char __b) {
3751 int __cc;
3752 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3753 return __cc == 0;
3754 }
3755
3756 static inline __ATTRS_o_ai int
3757 vec_all_lt(vector unsigned char __a, vector unsigned char __b) {
3758 int __cc;
3759 __builtin_s390_vchlbs(__b, __a, &__cc);
3760 return __cc == 0;
3761 }
3762
3763 // This prototype is deprecated.
3764 static inline __ATTRS_o_ai int
3765 vec_all_lt(vector unsigned char __a, vector bool char __b) {
3766 int __cc;
3767 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3768 return __cc == 0;
3769 }
3770
3771 // This prototype is deprecated.
3772 static inline __ATTRS_o_ai int
3773 vec_all_lt(vector bool char __a, vector unsigned char __b) {
3774 int __cc;
3775 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3776 return __cc == 0;
3777 }
3778
3779 // This prototype is deprecated.
3780 static inline __ATTRS_o_ai int
3781 vec_all_lt(vector bool char __a, vector bool char __b) {
3782 int __cc;
3783 __builtin_s390_vchlbs((vector unsigned char)__b,
3784 (vector unsigned char)__a, &__cc);
3785 return __cc == 0;
3786 }
3787
3788 static inline __ATTRS_o_ai int
3789 vec_all_lt(vector signed short __a, vector signed short __b) {
3790 int __cc;
3791 __builtin_s390_vchhs(__b, __a, &__cc);
3792 return __cc == 0;
3793 }
3794
3795 // This prototype is deprecated.
3796 static inline __ATTRS_o_ai int
3797 vec_all_lt(vector signed short __a, vector bool short __b) {
3798 int __cc;
3799 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3800 return __cc == 0;
3801 }
3802
3803 // This prototype is deprecated.
3804 static inline __ATTRS_o_ai int
3805 vec_all_lt(vector bool short __a, vector signed short __b) {
3806 int __cc;
3807 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3808 return __cc == 0;
3809 }
3810
3811 static inline __ATTRS_o_ai int
3812 vec_all_lt(vector unsigned short __a, vector unsigned short __b) {
3813 int __cc;
3814 __builtin_s390_vchlhs(__b, __a, &__cc);
3815 return __cc == 0;
3816 }
3817
3818 // This prototype is deprecated.
3819 static inline __ATTRS_o_ai int
3820 vec_all_lt(vector unsigned short __a, vector bool short __b) {
3821 int __cc;
3822 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3823 return __cc == 0;
3824 }
3825
3826 // This prototype is deprecated.
3827 static inline __ATTRS_o_ai int
3828 vec_all_lt(vector bool short __a, vector unsigned short __b) {
3829 int __cc;
3830 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3831 return __cc == 0;
3832 }
3833
3834 // This prototype is deprecated.
3835 static inline __ATTRS_o_ai int
3836 vec_all_lt(vector bool short __a, vector bool short __b) {
3837 int __cc;
3838 __builtin_s390_vchlhs((vector unsigned short)__b,
3839 (vector unsigned short)__a, &__cc);
3840 return __cc == 0;
3841 }
3842
3843 static inline __ATTRS_o_ai int
3844 vec_all_lt(vector signed int __a, vector signed int __b) {
3845 int __cc;
3846 __builtin_s390_vchfs(__b, __a, &__cc);
3847 return __cc == 0;
3848 }
3849
3850 // This prototype is deprecated.
3851 static inline __ATTRS_o_ai int
3852 vec_all_lt(vector signed int __a, vector bool int __b) {
3853 int __cc;
3854 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3855 return __cc == 0;
3856 }
3857
3858 // This prototype is deprecated.
3859 static inline __ATTRS_o_ai int
3860 vec_all_lt(vector bool int __a, vector signed int __b) {
3861 int __cc;
3862 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3863 return __cc == 0;
3864 }
3865
3866 static inline __ATTRS_o_ai int
3867 vec_all_lt(vector unsigned int __a, vector unsigned int __b) {
3868 int __cc;
3869 __builtin_s390_vchlfs(__b, __a, &__cc);
3870 return __cc == 0;
3871 }
3872
3873 // This prototype is deprecated.
3874 static inline __ATTRS_o_ai int
3875 vec_all_lt(vector unsigned int __a, vector bool int __b) {
3876 int __cc;
3877 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3878 return __cc == 0;
3879 }
3880
3881 // This prototype is deprecated.
3882 static inline __ATTRS_o_ai int
3883 vec_all_lt(vector bool int __a, vector unsigned int __b) {
3884 int __cc;
3885 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3886 return __cc == 0;
3887 }
3888
3889 // This prototype is deprecated.
3890 static inline __ATTRS_o_ai int
3891 vec_all_lt(vector bool int __a, vector bool int __b) {
3892 int __cc;
3893 __builtin_s390_vchlfs((vector unsigned int)__b,
3894 (vector unsigned int)__a, &__cc);
3895 return __cc == 0;
3896 }
3897
3898 static inline __ATTRS_o_ai int
3899 vec_all_lt(vector signed long long __a, vector signed long long __b) {
3900 int __cc;
3901 __builtin_s390_vchgs(__b, __a, &__cc);
3902 return __cc == 0;
3903 }
3904
3905 // This prototype is deprecated.
3906 static inline __ATTRS_o_ai int
3907 vec_all_lt(vector signed long long __a, vector bool long long __b) {
3908 int __cc;
3909 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3910 return __cc == 0;
3911 }
3912
3913 // This prototype is deprecated.
3914 static inline __ATTRS_o_ai int
3915 vec_all_lt(vector bool long long __a, vector signed long long __b) {
3916 int __cc;
3917 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3918 return __cc == 0;
3919 }
3920
3921 static inline __ATTRS_o_ai int
3922 vec_all_lt(vector unsigned long long __a, vector unsigned long long __b) {
3923 int __cc;
3924 __builtin_s390_vchlgs(__b, __a, &__cc);
3925 return __cc == 0;
3926 }
3927
3928 // This prototype is deprecated.
3929 static inline __ATTRS_o_ai int
3930 vec_all_lt(vector unsigned long long __a, vector bool long long __b) {
3931 int __cc;
3932 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3933 return __cc == 0;
3934 }
3935
3936 // This prototype is deprecated.
3937 static inline __ATTRS_o_ai int
3938 vec_all_lt(vector bool long long __a, vector unsigned long long __b) {
3939 int __cc;
3940 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3941 return __cc == 0;
3942 }
3943
3944 // This prototype is deprecated.
3945 static inline __ATTRS_o_ai int
3946 vec_all_lt(vector bool long long __a, vector bool long long __b) {
3947 int __cc;
3948 __builtin_s390_vchlgs((vector unsigned long long)__b,
3949 (vector unsigned long long)__a, &__cc);
3950 return __cc == 0;
3951 }
3952
3953 #if __ARCH__ >= 12
3954 static inline __ATTRS_o_ai int
3955 vec_all_lt(vector float __a, vector float __b) {
3956 int __cc;
3957 __builtin_s390_vfchsbs(__b, __a, &__cc);
3958 return __cc == 0;
3959 }
3960 #endif
3961
3962 static inline __ATTRS_o_ai int
3963 vec_all_lt(vector double __a, vector double __b) {
3964 int __cc;
3965 __builtin_s390_vfchdbs(__b, __a, &__cc);
3966 return __cc == 0;
3967 }
3968
3969 /*-- vec_all_nge ------------------------------------------------------------*/
3970
3971 #if __ARCH__ >= 12
3972 static inline __ATTRS_o_ai int
3973 vec_all_nge(vector float __a, vector float __b) {
3974 int __cc;
3975 __builtin_s390_vfchesbs(__a, __b, &__cc);
3976 return __cc == 3;
3977 }
3978 #endif
3979
3980 static inline __ATTRS_o_ai int
3981 vec_all_nge(vector double __a, vector double __b) {
3982 int __cc;
3983 __builtin_s390_vfchedbs(__a, __b, &__cc);
3984 return __cc == 3;
3985 }
3986
3987 /*-- vec_all_ngt ------------------------------------------------------------*/
3988
3989 #if __ARCH__ >= 12
3990 static inline __ATTRS_o_ai int
3991 vec_all_ngt(vector float __a, vector float __b) {
3992 int __cc;
3993 __builtin_s390_vfchsbs(__a, __b, &__cc);
3994 return __cc == 3;
3995 }
3996 #endif
3997
3998 static inline __ATTRS_o_ai int
3999 vec_all_ngt(vector double __a, vector double __b) {
4000 int __cc;
4001 __builtin_s390_vfchdbs(__a, __b, &__cc);
4002 return __cc == 3;
4003 }
4004
4005 /*-- vec_all_nle ------------------------------------------------------------*/
4006
4007 #if __ARCH__ >= 12
4008 static inline __ATTRS_o_ai int
4009 vec_all_nle(vector float __a, vector float __b) {
4010 int __cc;
4011 __builtin_s390_vfchesbs(__b, __a, &__cc);
4012 return __cc == 3;
4013 }
4014 #endif
4015
4016 static inline __ATTRS_o_ai int
4017 vec_all_nle(vector double __a, vector double __b) {
4018 int __cc;
4019 __builtin_s390_vfchedbs(__b, __a, &__cc);
4020 return __cc == 3;
4021 }
4022
4023 /*-- vec_all_nlt ------------------------------------------------------------*/
4024
4025 #if __ARCH__ >= 12
4026 static inline __ATTRS_o_ai int
4027 vec_all_nlt(vector float __a, vector float __b) {
4028 int __cc;
4029 __builtin_s390_vfchsbs(__b, __a, &__cc);
4030 return __cc == 3;
4031 }
4032 #endif
4033
4034 static inline __ATTRS_o_ai int
4035 vec_all_nlt(vector double __a, vector double __b) {
4036 int __cc;
4037 __builtin_s390_vfchdbs(__b, __a, &__cc);
4038 return __cc == 3;
4039 }
4040
4041 /*-- vec_all_nan ------------------------------------------------------------*/
4042
4043 #if __ARCH__ >= 12
4044 static inline __ATTRS_o_ai int
4045 vec_all_nan(vector float __a) {
4046 int __cc;
4047 __builtin_s390_vftcisb(__a, 15, &__cc);
4048 return __cc == 0;
4049 }
4050 #endif
4051
4052 static inline __ATTRS_o_ai int
4053 vec_all_nan(vector double __a) {
4054 int __cc;
4055 __builtin_s390_vftcidb(__a, 15, &__cc);
4056 return __cc == 0;
4057 }
4058
4059 /*-- vec_all_numeric --------------------------------------------------------*/
4060
4061 #if __ARCH__ >= 12
4062 static inline __ATTRS_o_ai int
4063 vec_all_numeric(vector float __a) {
4064 int __cc;
4065 __builtin_s390_vftcisb(__a, 15, &__cc);
4066 return __cc == 3;
4067 }
4068 #endif
4069
4070 static inline __ATTRS_o_ai int
4071 vec_all_numeric(vector double __a) {
4072 int __cc;
4073 __builtin_s390_vftcidb(__a, 15, &__cc);
4074 return __cc == 3;
4075 }
4076
4077 /*-- vec_any_eq -------------------------------------------------------------*/
4078
4079 static inline __ATTRS_o_ai int
4080 vec_any_eq(vector signed char __a, vector signed char __b) {
4081 int __cc;
4082 __builtin_s390_vceqbs(__a, __b, &__cc);
4083 return __cc <= 1;
4084 }
4085
4086 // This prototype is deprecated.
4087 static inline __ATTRS_o_ai int
4088 vec_any_eq(vector signed char __a, vector bool char __b) {
4089 int __cc;
4090 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
4091 return __cc <= 1;
4092 }
4093
4094 // This prototype is deprecated.
4095 static inline __ATTRS_o_ai int
4096 vec_any_eq(vector bool char __a, vector signed char __b) {
4097 int __cc;
4098 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
4099 return __cc <= 1;
4100 }
4101
4102 static inline __ATTRS_o_ai int
4103 vec_any_eq(vector unsigned char __a, vector unsigned char __b) {
4104 int __cc;
4105 __builtin_s390_vceqbs((vector signed char)__a,
4106 (vector signed char)__b, &__cc);
4107 return __cc <= 1;
4108 }
4109
4110 // This prototype is deprecated.
4111 static inline __ATTRS_o_ai int
4112 vec_any_eq(vector unsigned char __a, vector bool char __b) {
4113 int __cc;
4114 __builtin_s390_vceqbs((vector signed char)__a,
4115 (vector signed char)__b, &__cc);
4116 return __cc <= 1;
4117 }
4118
4119 // This prototype is deprecated.
4120 static inline __ATTRS_o_ai int
4121 vec_any_eq(vector bool char __a, vector unsigned char __b) {
4122 int __cc;
4123 __builtin_s390_vceqbs((vector signed char)__a,
4124 (vector signed char)__b, &__cc);
4125 return __cc <= 1;
4126 }
4127
4128 static inline __ATTRS_o_ai int
4129 vec_any_eq(vector bool char __a, vector bool char __b) {
4130 int __cc;
4131 __builtin_s390_vceqbs((vector signed char)__a,
4132 (vector signed char)__b, &__cc);
4133 return __cc <= 1;
4134 }
4135
4136 static inline __ATTRS_o_ai int
4137 vec_any_eq(vector signed short __a, vector signed short __b) {
4138 int __cc;
4139 __builtin_s390_vceqhs(__a, __b, &__cc);
4140 return __cc <= 1;
4141 }
4142
4143 // This prototype is deprecated.
4144 static inline __ATTRS_o_ai int
4145 vec_any_eq(vector signed short __a, vector bool short __b) {
4146 int __cc;
4147 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
4148 return __cc <= 1;
4149 }
4150
4151 // This prototype is deprecated.
4152 static inline __ATTRS_o_ai int
4153 vec_any_eq(vector bool short __a, vector signed short __b) {
4154 int __cc;
4155 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
4156 return __cc <= 1;
4157 }
4158
4159 static inline __ATTRS_o_ai int
4160 vec_any_eq(vector unsigned short __a, vector unsigned short __b) {
4161 int __cc;
4162 __builtin_s390_vceqhs((vector signed short)__a,
4163 (vector signed short)__b, &__cc);
4164 return __cc <= 1;
4165 }
4166
4167 // This prototype is deprecated.
4168 static inline __ATTRS_o_ai int
4169 vec_any_eq(vector unsigned short __a, vector bool short __b) {
4170 int __cc;
4171 __builtin_s390_vceqhs((vector signed short)__a,
4172 (vector signed short)__b, &__cc);
4173 return __cc <= 1;
4174 }
4175
4176 // This prototype is deprecated.
4177 static inline __ATTRS_o_ai int
4178 vec_any_eq(vector bool short __a, vector unsigned short __b) {
4179 int __cc;
4180 __builtin_s390_vceqhs((vector signed short)__a,
4181 (vector signed short)__b, &__cc);
4182 return __cc <= 1;
4183 }
4184
4185 static inline __ATTRS_o_ai int
4186 vec_any_eq(vector bool short __a, vector bool short __b) {
4187 int __cc;
4188 __builtin_s390_vceqhs((vector signed short)__a,
4189 (vector signed short)__b, &__cc);
4190 return __cc <= 1;
4191 }
4192
4193 static inline __ATTRS_o_ai int
4194 vec_any_eq(vector signed int __a, vector signed int __b) {
4195 int __cc;
4196 __builtin_s390_vceqfs(__a, __b, &__cc);
4197 return __cc <= 1;
4198 }
4199
4200 // This prototype is deprecated.
4201 static inline __ATTRS_o_ai int
4202 vec_any_eq(vector signed int __a, vector bool int __b) {
4203 int __cc;
4204 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
4205 return __cc <= 1;
4206 }
4207
4208 // This prototype is deprecated.
4209 static inline __ATTRS_o_ai int
4210 vec_any_eq(vector bool int __a, vector signed int __b) {
4211 int __cc;
4212 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
4213 return __cc <= 1;
4214 }
4215
4216 static inline __ATTRS_o_ai int
4217 vec_any_eq(vector unsigned int __a, vector unsigned int __b) {
4218 int __cc;
4219 __builtin_s390_vceqfs((vector signed int)__a,
4220 (vector signed int)__b, &__cc);
4221 return __cc <= 1;
4222 }
4223
4224 // This prototype is deprecated.
4225 static inline __ATTRS_o_ai int
4226 vec_any_eq(vector unsigned int __a, vector bool int __b) {
4227 int __cc;
4228 __builtin_s390_vceqfs((vector signed int)__a,
4229 (vector signed int)__b, &__cc);
4230 return __cc <= 1;
4231 }
4232
4233 // This prototype is deprecated.
4234 static inline __ATTRS_o_ai int
4235 vec_any_eq(vector bool int __a, vector unsigned int __b) {
4236 int __cc;
4237 __builtin_s390_vceqfs((vector signed int)__a,
4238 (vector signed int)__b, &__cc);
4239 return __cc <= 1;
4240 }
4241
4242 static inline __ATTRS_o_ai int
4243 vec_any_eq(vector bool int __a, vector bool int __b) {
4244 int __cc;
4245 __builtin_s390_vceqfs((vector signed int)__a,
4246 (vector signed int)__b, &__cc);
4247 return __cc <= 1;
4248 }
4249
4250 static inline __ATTRS_o_ai int
4251 vec_any_eq(vector signed long long __a, vector signed long long __b) {
4252 int __cc;
4253 __builtin_s390_vceqgs(__a, __b, &__cc);
4254 return __cc <= 1;
4255 }
4256
4257 // This prototype is deprecated.
4258 static inline __ATTRS_o_ai int
4259 vec_any_eq(vector signed long long __a, vector bool long long __b) {
4260 int __cc;
4261 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
4262 return __cc <= 1;
4263 }
4264
4265 // This prototype is deprecated.
4266 static inline __ATTRS_o_ai int
4267 vec_any_eq(vector bool long long __a, vector signed long long __b) {
4268 int __cc;
4269 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
4270 return __cc <= 1;
4271 }
4272
4273 static inline __ATTRS_o_ai int
4274 vec_any_eq(vector unsigned long long __a, vector unsigned long long __b) {
4275 int __cc;
4276 __builtin_s390_vceqgs((vector signed long long)__a,
4277 (vector signed long long)__b, &__cc);
4278 return __cc <= 1;
4279 }
4280
4281 // This prototype is deprecated.
4282 static inline __ATTRS_o_ai int
4283 vec_any_eq(vector unsigned long long __a, vector bool long long __b) {
4284 int __cc;
4285 __builtin_s390_vceqgs((vector signed long long)__a,
4286 (vector signed long long)__b, &__cc);
4287 return __cc <= 1;
4288 }
4289
4290 // This prototype is deprecated.
4291 static inline __ATTRS_o_ai int
4292 vec_any_eq(vector bool long long __a, vector unsigned long long __b) {
4293 int __cc;
4294 __builtin_s390_vceqgs((vector signed long long)__a,
4295 (vector signed long long)__b, &__cc);
4296 return __cc <= 1;
4297 }
4298
4299 static inline __ATTRS_o_ai int
4300 vec_any_eq(vector bool long long __a, vector bool long long __b) {
4301 int __cc;
4302 __builtin_s390_vceqgs((vector signed long long)__a,
4303 (vector signed long long)__b, &__cc);
4304 return __cc <= 1;
4305 }
4306
4307 #if __ARCH__ >= 12
4308 static inline __ATTRS_o_ai int
4309 vec_any_eq(vector float __a, vector float __b) {
4310 int __cc;
4311 __builtin_s390_vfcesbs(__a, __b, &__cc);
4312 return __cc <= 1;
4313 }
4314 #endif
4315
4316 static inline __ATTRS_o_ai int
4317 vec_any_eq(vector double __a, vector double __b) {
4318 int __cc;
4319 __builtin_s390_vfcedbs(__a, __b, &__cc);
4320 return __cc <= 1;
4321 }
4322
4323 /*-- vec_any_ne -------------------------------------------------------------*/
4324
4325 static inline __ATTRS_o_ai int
4326 vec_any_ne(vector signed char __a, vector signed char __b) {
4327 int __cc;
4328 __builtin_s390_vceqbs(__a, __b, &__cc);
4329 return __cc != 0;
4330 }
4331
4332 // This prototype is deprecated.
4333 static inline __ATTRS_o_ai int
4334 vec_any_ne(vector signed char __a, vector bool char __b) {
4335 int __cc;
4336 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
4337 return __cc != 0;
4338 }
4339
4340 // This prototype is deprecated.
4341 static inline __ATTRS_o_ai int
4342 vec_any_ne(vector bool char __a, vector signed char __b) {
4343 int __cc;
4344 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
4345 return __cc != 0;
4346 }
4347
4348 static inline __ATTRS_o_ai int
4349 vec_any_ne(vector unsigned char __a, vector unsigned char __b) {
4350 int __cc;
4351 __builtin_s390_vceqbs((vector signed char)__a,
4352 (vector signed char)__b, &__cc);
4353 return __cc != 0;
4354 }
4355
4356 // This prototype is deprecated.
4357 static inline __ATTRS_o_ai int
4358 vec_any_ne(vector unsigned char __a, vector bool char __b) {
4359 int __cc;
4360 __builtin_s390_vceqbs((vector signed char)__a,
4361 (vector signed char)__b, &__cc);
4362 return __cc != 0;
4363 }
4364
4365 // This prototype is deprecated.
4366 static inline __ATTRS_o_ai int
4367 vec_any_ne(vector bool char __a, vector unsigned char __b) {
4368 int __cc;
4369 __builtin_s390_vceqbs((vector signed char)__a,
4370 (vector signed char)__b, &__cc);
4371 return __cc != 0;
4372 }
4373
4374 static inline __ATTRS_o_ai int
4375 vec_any_ne(vector bool char __a, vector bool char __b) {
4376 int __cc;
4377 __builtin_s390_vceqbs((vector signed char)__a,
4378 (vector signed char)__b, &__cc);
4379 return __cc != 0;
4380 }
4381
4382 static inline __ATTRS_o_ai int
4383 vec_any_ne(vector signed short __a, vector signed short __b) {
4384 int __cc;
4385 __builtin_s390_vceqhs(__a, __b, &__cc);
4386 return __cc != 0;
4387 }
4388
4389 // This prototype is deprecated.
4390 static inline __ATTRS_o_ai int
4391 vec_any_ne(vector signed short __a, vector bool short __b) {
4392 int __cc;
4393 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
4394 return __cc != 0;
4395 }
4396
4397 // This prototype is deprecated.
4398 static inline __ATTRS_o_ai int
4399 vec_any_ne(vector bool short __a, vector signed short __b) {
4400 int __cc;
4401 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
4402 return __cc != 0;
4403 }
4404
4405 static inline __ATTRS_o_ai int
4406 vec_any_ne(vector unsigned short __a, vector unsigned short __b) {
4407 int __cc;
4408 __builtin_s390_vceqhs((vector signed short)__a,
4409 (vector signed short)__b, &__cc);
4410 return __cc != 0;
4411 }
4412
4413 // This prototype is deprecated.
4414 static inline __ATTRS_o_ai int
4415 vec_any_ne(vector unsigned short __a, vector bool short __b) {
4416 int __cc;
4417 __builtin_s390_vceqhs((vector signed short)__a,
4418 (vector signed short)__b, &__cc);
4419 return __cc != 0;
4420 }
4421
4422 // This prototype is deprecated.
4423 static inline __ATTRS_o_ai int
4424 vec_any_ne(vector bool short __a, vector unsigned short __b) {
4425 int __cc;
4426 __builtin_s390_vceqhs((vector signed short)__a,
4427 (vector signed short)__b, &__cc);
4428 return __cc != 0;
4429 }
4430
4431 static inline __ATTRS_o_ai int
4432 vec_any_ne(vector bool short __a, vector bool short __b) {
4433 int __cc;
4434 __builtin_s390_vceqhs((vector signed short)__a,
4435 (vector signed short)__b, &__cc);
4436 return __cc != 0;
4437 }
4438
4439 static inline __ATTRS_o_ai int
4440 vec_any_ne(vector signed int __a, vector signed int __b) {
4441 int __cc;
4442 __builtin_s390_vceqfs(__a, __b, &__cc);
4443 return __cc != 0;
4444 }
4445
4446 // This prototype is deprecated.
4447 static inline __ATTRS_o_ai int
4448 vec_any_ne(vector signed int __a, vector bool int __b) {
4449 int __cc;
4450 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
4451 return __cc != 0;
4452 }
4453
4454 // This prototype is deprecated.
4455 static inline __ATTRS_o_ai int
4456 vec_any_ne(vector bool int __a, vector signed int __b) {
4457 int __cc;
4458 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
4459 return __cc != 0;
4460 }
4461
4462 static inline __ATTRS_o_ai int
4463 vec_any_ne(vector unsigned int __a, vector unsigned int __b) {
4464 int __cc;
4465 __builtin_s390_vceqfs((vector signed int)__a,
4466 (vector signed int)__b, &__cc);
4467 return __cc != 0;
4468 }
4469
4470 // This prototype is deprecated.
4471 static inline __ATTRS_o_ai int
4472 vec_any_ne(vector unsigned int __a, vector bool int __b) {
4473 int __cc;
4474 __builtin_s390_vceqfs((vector signed int)__a,
4475 (vector signed int)__b, &__cc);
4476 return __cc != 0;
4477 }
4478
4479 // This prototype is deprecated.
4480 static inline __ATTRS_o_ai int
4481 vec_any_ne(vector bool int __a, vector unsigned int __b) {
4482 int __cc;
4483 __builtin_s390_vceqfs((vector signed int)__a,
4484 (vector signed int)__b, &__cc);
4485 return __cc != 0;
4486 }
4487
4488 static inline __ATTRS_o_ai int
4489 vec_any_ne(vector bool int __a, vector bool int __b) {
4490 int __cc;
4491 __builtin_s390_vceqfs((vector signed int)__a,
4492 (vector signed int)__b, &__cc);
4493 return __cc != 0;
4494 }
4495
4496 static inline __ATTRS_o_ai int
4497 vec_any_ne(vector signed long long __a, vector signed long long __b) {
4498 int __cc;
4499 __builtin_s390_vceqgs(__a, __b, &__cc);
4500 return __cc != 0;
4501 }
4502
4503 // This prototype is deprecated.
4504 static inline __ATTRS_o_ai int
4505 vec_any_ne(vector signed long long __a, vector bool long long __b) {
4506 int __cc;
4507 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
4508 return __cc != 0;
4509 }
4510
4511 // This prototype is deprecated.
4512 static inline __ATTRS_o_ai int
4513 vec_any_ne(vector bool long long __a, vector signed long long __b) {
4514 int __cc;
4515 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
4516 return __cc != 0;
4517 }
4518
4519 static inline __ATTRS_o_ai int
4520 vec_any_ne(vector unsigned long long __a, vector unsigned long long __b) {
4521 int __cc;
4522 __builtin_s390_vceqgs((vector signed long long)__a,
4523 (vector signed long long)__b, &__cc);
4524 return __cc != 0;
4525 }
4526
4527 // This prototype is deprecated.
4528 static inline __ATTRS_o_ai int
4529 vec_any_ne(vector unsigned long long __a, vector bool long long __b) {
4530 int __cc;
4531 __builtin_s390_vceqgs((vector signed long long)__a,
4532 (vector signed long long)__b, &__cc);
4533 return __cc != 0;
4534 }
4535
4536 // This prototype is deprecated.
4537 static inline __ATTRS_o_ai int
4538 vec_any_ne(vector bool long long __a, vector unsigned long long __b) {
4539 int __cc;
4540 __builtin_s390_vceqgs((vector signed long long)__a,
4541 (vector signed long long)__b, &__cc);
4542 return __cc != 0;
4543 }
4544
4545 static inline __ATTRS_o_ai int
4546 vec_any_ne(vector bool long long __a, vector bool long long __b) {
4547 int __cc;
4548 __builtin_s390_vceqgs((vector signed long long)__a,
4549 (vector signed long long)__b, &__cc);
4550 return __cc != 0;
4551 }
4552
4553 #if __ARCH__ >= 12
4554 static inline __ATTRS_o_ai int
4555 vec_any_ne(vector float __a, vector float __b) {
4556 int __cc;
4557 __builtin_s390_vfcesbs(__a, __b, &__cc);
4558 return __cc != 0;
4559 }
4560 #endif
4561
4562 static inline __ATTRS_o_ai int
4563 vec_any_ne(vector double __a, vector double __b) {
4564 int __cc;
4565 __builtin_s390_vfcedbs(__a, __b, &__cc);
4566 return __cc != 0;
4567 }
4568
4569 /*-- vec_any_ge -------------------------------------------------------------*/
4570
4571 static inline __ATTRS_o_ai int
4572 vec_any_ge(vector signed char __a, vector signed char __b) {
4573 int __cc;
4574 __builtin_s390_vchbs(__b, __a, &__cc);
4575 return __cc != 0;
4576 }
4577
4578 // This prototype is deprecated.
4579 static inline __ATTRS_o_ai int
4580 vec_any_ge(vector signed char __a, vector bool char __b) {
4581 int __cc;
4582 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
4583 return __cc != 0;
4584 }
4585
4586 // This prototype is deprecated.
4587 static inline __ATTRS_o_ai int
4588 vec_any_ge(vector bool char __a, vector signed char __b) {
4589 int __cc;
4590 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
4591 return __cc != 0;
4592 }
4593
4594 static inline __ATTRS_o_ai int
4595 vec_any_ge(vector unsigned char __a, vector unsigned char __b) {
4596 int __cc;
4597 __builtin_s390_vchlbs(__b, __a, &__cc);
4598 return __cc != 0;
4599 }
4600
4601 // This prototype is deprecated.
4602 static inline __ATTRS_o_ai int
4603 vec_any_ge(vector unsigned char __a, vector bool char __b) {
4604 int __cc;
4605 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
4606 return __cc != 0;
4607 }
4608
4609 // This prototype is deprecated.
4610 static inline __ATTRS_o_ai int
4611 vec_any_ge(vector bool char __a, vector unsigned char __b) {
4612 int __cc;
4613 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
4614 return __cc != 0;
4615 }
4616
4617 // This prototype is deprecated.
4618 static inline __ATTRS_o_ai int
4619 vec_any_ge(vector bool char __a, vector bool char __b) {
4620 int __cc;
4621 __builtin_s390_vchlbs((vector unsigned char)__b,
4622 (vector unsigned char)__a, &__cc);
4623 return __cc != 0;
4624 }
4625
4626 static inline __ATTRS_o_ai int
4627 vec_any_ge(vector signed short __a, vector signed short __b) {
4628 int __cc;
4629 __builtin_s390_vchhs(__b, __a, &__cc);
4630 return __cc != 0;
4631 }
4632
4633 // This prototype is deprecated.
4634 static inline __ATTRS_o_ai int
4635 vec_any_ge(vector signed short __a, vector bool short __b) {
4636 int __cc;
4637 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
4638 return __cc != 0;
4639 }
4640
4641 // This prototype is deprecated.
4642 static inline __ATTRS_o_ai int
4643 vec_any_ge(vector bool short __a, vector signed short __b) {
4644 int __cc;
4645 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
4646 return __cc != 0;
4647 }
4648
4649 static inline __ATTRS_o_ai int
4650 vec_any_ge(vector unsigned short __a, vector unsigned short __b) {
4651 int __cc;
4652 __builtin_s390_vchlhs(__b, __a, &__cc);
4653 return __cc != 0;
4654 }
4655
4656 // This prototype is deprecated.
4657 static inline __ATTRS_o_ai int
4658 vec_any_ge(vector unsigned short __a, vector bool short __b) {
4659 int __cc;
4660 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
4661 return __cc != 0;
4662 }
4663
4664 // This prototype is deprecated.
4665 static inline __ATTRS_o_ai int
4666 vec_any_ge(vector bool short __a, vector unsigned short __b) {
4667 int __cc;
4668 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
4669 return __cc != 0;
4670 }
4671
4672 // This prototype is deprecated.
4673 static inline __ATTRS_o_ai int
4674 vec_any_ge(vector bool short __a, vector bool short __b) {
4675 int __cc;
4676 __builtin_s390_vchlhs((vector unsigned short)__b,
4677 (vector unsigned short)__a, &__cc);
4678 return __cc != 0;
4679 }
4680
4681 static inline __ATTRS_o_ai int
4682 vec_any_ge(vector signed int __a, vector signed int __b) {
4683 int __cc;
4684 __builtin_s390_vchfs(__b, __a, &__cc);
4685 return __cc != 0;
4686 }
4687
4688 // This prototype is deprecated.
4689 static inline __ATTRS_o_ai int
4690 vec_any_ge(vector signed int __a, vector bool int __b) {
4691 int __cc;
4692 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
4693 return __cc != 0;
4694 }
4695
4696 // This prototype is deprecated.
4697 static inline __ATTRS_o_ai int
4698 vec_any_ge(vector bool int __a, vector signed int __b) {
4699 int __cc;
4700 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
4701 return __cc != 0;
4702 }
4703
4704 static inline __ATTRS_o_ai int
4705 vec_any_ge(vector unsigned int __a, vector unsigned int __b) {
4706 int __cc;
4707 __builtin_s390_vchlfs(__b, __a, &__cc);
4708 return __cc != 0;
4709 }
4710
4711 // This prototype is deprecated.
4712 static inline __ATTRS_o_ai int
4713 vec_any_ge(vector unsigned int __a, vector bool int __b) {
4714 int __cc;
4715 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
4716 return __cc != 0;
4717 }
4718
4719 // This prototype is deprecated.
4720 static inline __ATTRS_o_ai int
4721 vec_any_ge(vector bool int __a, vector unsigned int __b) {
4722 int __cc;
4723 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
4724 return __cc != 0;
4725 }
4726
4727 // This prototype is deprecated.
4728 static inline __ATTRS_o_ai int
4729 vec_any_ge(vector bool int __a, vector bool int __b) {
4730 int __cc;
4731 __builtin_s390_vchlfs((vector unsigned int)__b,
4732 (vector unsigned int)__a, &__cc);
4733 return __cc != 0;
4734 }
4735
4736 static inline __ATTRS_o_ai int
4737 vec_any_ge(vector signed long long __a, vector signed long long __b) {
4738 int __cc;
4739 __builtin_s390_vchgs(__b, __a, &__cc);
4740 return __cc != 0;
4741 }
4742
4743 // This prototype is deprecated.
4744 static inline __ATTRS_o_ai int
4745 vec_any_ge(vector signed long long __a, vector bool long long __b) {
4746 int __cc;
4747 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
4748 return __cc != 0;
4749 }
4750
4751 // This prototype is deprecated.
4752 static inline __ATTRS_o_ai int
4753 vec_any_ge(vector bool long long __a, vector signed long long __b) {
4754 int __cc;
4755 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
4756 return __cc != 0;
4757 }
4758
4759 static inline __ATTRS_o_ai int
4760 vec_any_ge(vector unsigned long long __a, vector unsigned long long __b) {
4761 int __cc;
4762 __builtin_s390_vchlgs(__b, __a, &__cc);
4763 return __cc != 0;
4764 }
4765
4766 // This prototype is deprecated.
4767 static inline __ATTRS_o_ai int
4768 vec_any_ge(vector unsigned long long __a, vector bool long long __b) {
4769 int __cc;
4770 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
4771 return __cc != 0;
4772 }
4773
4774 // This prototype is deprecated.
4775 static inline __ATTRS_o_ai int
4776 vec_any_ge(vector bool long long __a, vector unsigned long long __b) {
4777 int __cc;
4778 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
4779 return __cc != 0;
4780 }
4781
4782 // This prototype is deprecated.
4783 static inline __ATTRS_o_ai int
4784 vec_any_ge(vector bool long long __a, vector bool long long __b) {
4785 int __cc;
4786 __builtin_s390_vchlgs((vector unsigned long long)__b,
4787 (vector unsigned long long)__a, &__cc);
4788 return __cc != 0;
4789 }
4790
4791 #if __ARCH__ >= 12
4792 static inline __ATTRS_o_ai int
4793 vec_any_ge(vector float __a, vector float __b) {
4794 int __cc;
4795 __builtin_s390_vfchesbs(__a, __b, &__cc);
4796 return __cc <= 1;
4797 }
4798 #endif
4799
4800 static inline __ATTRS_o_ai int
4801 vec_any_ge(vector double __a, vector double __b) {
4802 int __cc;
4803 __builtin_s390_vfchedbs(__a, __b, &__cc);
4804 return __cc <= 1;
4805 }
4806
4807 /*-- vec_any_gt -------------------------------------------------------------*/
4808
4809 static inline __ATTRS_o_ai int
4810 vec_any_gt(vector signed char __a, vector signed char __b) {
4811 int __cc;
4812 __builtin_s390_vchbs(__a, __b, &__cc);
4813 return __cc <= 1;
4814 }
4815
4816 // This prototype is deprecated.
4817 static inline __ATTRS_o_ai int
4818 vec_any_gt(vector signed char __a, vector bool char __b) {
4819 int __cc;
4820 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4821 return __cc <= 1;
4822 }
4823
4824 // This prototype is deprecated.
4825 static inline __ATTRS_o_ai int
4826 vec_any_gt(vector bool char __a, vector signed char __b) {
4827 int __cc;
4828 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4829 return __cc <= 1;
4830 }
4831
4832 static inline __ATTRS_o_ai int
4833 vec_any_gt(vector unsigned char __a, vector unsigned char __b) {
4834 int __cc;
4835 __builtin_s390_vchlbs(__a, __b, &__cc);
4836 return __cc <= 1;
4837 }
4838
4839 // This prototype is deprecated.
4840 static inline __ATTRS_o_ai int
4841 vec_any_gt(vector unsigned char __a, vector bool char __b) {
4842 int __cc;
4843 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4844 return __cc <= 1;
4845 }
4846
4847 // This prototype is deprecated.
4848 static inline __ATTRS_o_ai int
4849 vec_any_gt(vector bool char __a, vector unsigned char __b) {
4850 int __cc;
4851 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4852 return __cc <= 1;
4853 }
4854
4855 // This prototype is deprecated.
4856 static inline __ATTRS_o_ai int
4857 vec_any_gt(vector bool char __a, vector bool char __b) {
4858 int __cc;
4859 __builtin_s390_vchlbs((vector unsigned char)__a,
4860 (vector unsigned char)__b, &__cc);
4861 return __cc <= 1;
4862 }
4863
4864 static inline __ATTRS_o_ai int
4865 vec_any_gt(vector signed short __a, vector signed short __b) {
4866 int __cc;
4867 __builtin_s390_vchhs(__a, __b, &__cc);
4868 return __cc <= 1;
4869 }
4870
4871 // This prototype is deprecated.
4872 static inline __ATTRS_o_ai int
4873 vec_any_gt(vector signed short __a, vector bool short __b) {
4874 int __cc;
4875 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4876 return __cc <= 1;
4877 }
4878
4879 // This prototype is deprecated.
4880 static inline __ATTRS_o_ai int
4881 vec_any_gt(vector bool short __a, vector signed short __b) {
4882 int __cc;
4883 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
4884 return __cc <= 1;
4885 }
4886
4887 static inline __ATTRS_o_ai int
4888 vec_any_gt(vector unsigned short __a, vector unsigned short __b) {
4889 int __cc;
4890 __builtin_s390_vchlhs(__a, __b, &__cc);
4891 return __cc <= 1;
4892 }
4893
4894 // This prototype is deprecated.
4895 static inline __ATTRS_o_ai int
4896 vec_any_gt(vector unsigned short __a, vector bool short __b) {
4897 int __cc;
4898 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
4899 return __cc <= 1;
4900 }
4901
4902 // This prototype is deprecated.
4903 static inline __ATTRS_o_ai int
4904 vec_any_gt(vector bool short __a, vector unsigned short __b) {
4905 int __cc;
4906 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
4907 return __cc <= 1;
4908 }
4909
4910 // This prototype is deprecated.
4911 static inline __ATTRS_o_ai int
4912 vec_any_gt(vector bool short __a, vector bool short __b) {
4913 int __cc;
4914 __builtin_s390_vchlhs((vector unsigned short)__a,
4915 (vector unsigned short)__b, &__cc);
4916 return __cc <= 1;
4917 }
4918
4919 static inline __ATTRS_o_ai int
4920 vec_any_gt(vector signed int __a, vector signed int __b) {
4921 int __cc;
4922 __builtin_s390_vchfs(__a, __b, &__cc);
4923 return __cc <= 1;
4924 }
4925
4926 // This prototype is deprecated.
4927 static inline __ATTRS_o_ai int
4928 vec_any_gt(vector signed int __a, vector bool int __b) {
4929 int __cc;
4930 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
4931 return __cc <= 1;
4932 }
4933
4934 // This prototype is deprecated.
4935 static inline __ATTRS_o_ai int
4936 vec_any_gt(vector bool int __a, vector signed int __b) {
4937 int __cc;
4938 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
4939 return __cc <= 1;
4940 }
4941
4942 static inline __ATTRS_o_ai int
4943 vec_any_gt(vector unsigned int __a, vector unsigned int __b) {
4944 int __cc;
4945 __builtin_s390_vchlfs(__a, __b, &__cc);
4946 return __cc <= 1;
4947 }
4948
4949 // This prototype is deprecated.
4950 static inline __ATTRS_o_ai int
4951 vec_any_gt(vector unsigned int __a, vector bool int __b) {
4952 int __cc;
4953 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
4954 return __cc <= 1;
4955 }
4956
4957 // This prototype is deprecated.
4958 static inline __ATTRS_o_ai int
4959 vec_any_gt(vector bool int __a, vector unsigned int __b) {
4960 int __cc;
4961 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
4962 return __cc <= 1;
4963 }
4964
4965 // This prototype is deprecated.
4966 static inline __ATTRS_o_ai int
4967 vec_any_gt(vector bool int __a, vector bool int __b) {
4968 int __cc;
4969 __builtin_s390_vchlfs((vector unsigned int)__a,
4970 (vector unsigned int)__b, &__cc);
4971 return __cc <= 1;
4972 }
4973
4974 static inline __ATTRS_o_ai int
4975 vec_any_gt(vector signed long long __a, vector signed long long __b) {
4976 int __cc;
4977 __builtin_s390_vchgs(__a, __b, &__cc);
4978 return __cc <= 1;
4979 }
4980
4981 // This prototype is deprecated.
4982 static inline __ATTRS_o_ai int
4983 vec_any_gt(vector signed long long __a, vector bool long long __b) {
4984 int __cc;
4985 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
4986 return __cc <= 1;
4987 }
4988
4989 // This prototype is deprecated.
4990 static inline __ATTRS_o_ai int
4991 vec_any_gt(vector bool long long __a, vector signed long long __b) {
4992 int __cc;
4993 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
4994 return __cc <= 1;
4995 }
4996
4997 static inline __ATTRS_o_ai int
4998 vec_any_gt(vector unsigned long long __a, vector unsigned long long __b) {
4999 int __cc;
5000 __builtin_s390_vchlgs(__a, __b, &__cc);
5001 return __cc <= 1;
5002 }
5003
5004 // This prototype is deprecated.
5005 static inline __ATTRS_o_ai int
5006 vec_any_gt(vector unsigned long long __a, vector bool long long __b) {
5007 int __cc;
5008 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
5009 return __cc <= 1;
5010 }
5011
5012 // This prototype is deprecated.
5013 static inline __ATTRS_o_ai int
5014 vec_any_gt(vector bool long long __a, vector unsigned long long __b) {
5015 int __cc;
5016 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
5017 return __cc <= 1;
5018 }
5019
5020 // This prototype is deprecated.
5021 static inline __ATTRS_o_ai int
5022 vec_any_gt(vector bool long long __a, vector bool long long __b) {
5023 int __cc;
5024 __builtin_s390_vchlgs((vector unsigned long long)__a,
5025 (vector unsigned long long)__b, &__cc);
5026 return __cc <= 1;
5027 }
5028
5029 #if __ARCH__ >= 12
5030 static inline __ATTRS_o_ai int
5031 vec_any_gt(vector float __a, vector float __b) {
5032 int __cc;
5033 __builtin_s390_vfchsbs(__a, __b, &__cc);
5034 return __cc <= 1;
5035 }
5036 #endif
5037
5038 static inline __ATTRS_o_ai int
5039 vec_any_gt(vector double __a, vector double __b) {
5040 int __cc;
5041 __builtin_s390_vfchdbs(__a, __b, &__cc);
5042 return __cc <= 1;
5043 }
5044
5045 /*-- vec_any_le -------------------------------------------------------------*/
5046
5047 static inline __ATTRS_o_ai int
5048 vec_any_le(vector signed char __a, vector signed char __b) {
5049 int __cc;
5050 __builtin_s390_vchbs(__a, __b, &__cc);
5051 return __cc != 0;
5052 }
5053
5054 // This prototype is deprecated.
5055 static inline __ATTRS_o_ai int
5056 vec_any_le(vector signed char __a, vector bool char __b) {
5057 int __cc;
5058 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
5059 return __cc != 0;
5060 }
5061
5062 // This prototype is deprecated.
5063 static inline __ATTRS_o_ai int
5064 vec_any_le(vector bool char __a, vector signed char __b) {
5065 int __cc;
5066 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
5067 return __cc != 0;
5068 }
5069
5070 static inline __ATTRS_o_ai int
5071 vec_any_le(vector unsigned char __a, vector unsigned char __b) {
5072 int __cc;
5073 __builtin_s390_vchlbs(__a, __b, &__cc);
5074 return __cc != 0;
5075 }
5076
5077 // This prototype is deprecated.
5078 static inline __ATTRS_o_ai int
5079 vec_any_le(vector unsigned char __a, vector bool char __b) {
5080 int __cc;
5081 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
5082 return __cc != 0;
5083 }
5084
5085 // This prototype is deprecated.
5086 static inline __ATTRS_o_ai int
5087 vec_any_le(vector bool char __a, vector unsigned char __b) {
5088 int __cc;
5089 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
5090 return __cc != 0;
5091 }
5092
5093 // This prototype is deprecated.
5094 static inline __ATTRS_o_ai int
5095 vec_any_le(vector bool char __a, vector bool char __b) {
5096 int __cc;
5097 __builtin_s390_vchlbs((vector unsigned char)__a,
5098 (vector unsigned char)__b, &__cc);
5099 return __cc != 0;
5100 }
5101
5102 static inline __ATTRS_o_ai int
5103 vec_any_le(vector signed short __a, vector signed short __b) {
5104 int __cc;
5105 __builtin_s390_vchhs(__a, __b, &__cc);
5106 return __cc != 0;
5107 }
5108
5109 // This prototype is deprecated.
5110 static inline __ATTRS_o_ai int
5111 vec_any_le(vector signed short __a, vector bool short __b) {
5112 int __cc;
5113 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
5114 return __cc != 0;
5115 }
5116
5117 // This prototype is deprecated.
5118 static inline __ATTRS_o_ai int
5119 vec_any_le(vector bool short __a, vector signed short __b) {
5120 int __cc;
5121 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
5122 return __cc != 0;
5123 }
5124
5125 static inline __ATTRS_o_ai int
5126 vec_any_le(vector unsigned short __a, vector unsigned short __b) {
5127 int __cc;
5128 __builtin_s390_vchlhs(__a, __b, &__cc);
5129 return __cc != 0;
5130 }
5131
5132 // This prototype is deprecated.
5133 static inline __ATTRS_o_ai int
5134 vec_any_le(vector unsigned short __a, vector bool short __b) {
5135 int __cc;
5136 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
5137 return __cc != 0;
5138 }
5139
5140 // This prototype is deprecated.
5141 static inline __ATTRS_o_ai int
5142 vec_any_le(vector bool short __a, vector unsigned short __b) {
5143 int __cc;
5144 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
5145 return __cc != 0;
5146 }
5147
5148 // This prototype is deprecated.
5149 static inline __ATTRS_o_ai int
5150 vec_any_le(vector bool short __a, vector bool short __b) {
5151 int __cc;
5152 __builtin_s390_vchlhs((vector unsigned short)__a,
5153 (vector unsigned short)__b, &__cc);
5154 return __cc != 0;
5155 }
5156
5157 static inline __ATTRS_o_ai int
5158 vec_any_le(vector signed int __a, vector signed int __b) {
5159 int __cc;
5160 __builtin_s390_vchfs(__a, __b, &__cc);
5161 return __cc != 0;
5162 }
5163
5164 // This prototype is deprecated.
5165 static inline __ATTRS_o_ai int
5166 vec_any_le(vector signed int __a, vector bool int __b) {
5167 int __cc;
5168 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
5169 return __cc != 0;
5170 }
5171
5172 // This prototype is deprecated.
5173 static inline __ATTRS_o_ai int
5174 vec_any_le(vector bool int __a, vector signed int __b) {
5175 int __cc;
5176 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
5177 return __cc != 0;
5178 }
5179
5180 static inline __ATTRS_o_ai int
5181 vec_any_le(vector unsigned int __a, vector unsigned int __b) {
5182 int __cc;
5183 __builtin_s390_vchlfs(__a, __b, &__cc);
5184 return __cc != 0;
5185 }
5186
5187 // This prototype is deprecated.
5188 static inline __ATTRS_o_ai int
5189 vec_any_le(vector unsigned int __a, vector bool int __b) {
5190 int __cc;
5191 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
5192 return __cc != 0;
5193 }
5194
5195 // This prototype is deprecated.
5196 static inline __ATTRS_o_ai int
5197 vec_any_le(vector bool int __a, vector unsigned int __b) {
5198 int __cc;
5199 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
5200 return __cc != 0;
5201 }
5202
5203 // This prototype is deprecated.
5204 static inline __ATTRS_o_ai int
5205 vec_any_le(vector bool int __a, vector bool int __b) {
5206 int __cc;
5207 __builtin_s390_vchlfs((vector unsigned int)__a,
5208 (vector unsigned int)__b, &__cc);
5209 return __cc != 0;
5210 }
5211
5212 static inline __ATTRS_o_ai int
5213 vec_any_le(vector signed long long __a, vector signed long long __b) {
5214 int __cc;
5215 __builtin_s390_vchgs(__a, __b, &__cc);
5216 return __cc != 0;
5217 }
5218
5219 // This prototype is deprecated.
5220 static inline __ATTRS_o_ai int
5221 vec_any_le(vector signed long long __a, vector bool long long __b) {
5222 int __cc;
5223 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
5224 return __cc != 0;
5225 }
5226
5227 // This prototype is deprecated.
5228 static inline __ATTRS_o_ai int
5229 vec_any_le(vector bool long long __a, vector signed long long __b) {
5230 int __cc;
5231 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
5232 return __cc != 0;
5233 }
5234
5235 static inline __ATTRS_o_ai int
5236 vec_any_le(vector unsigned long long __a, vector unsigned long long __b) {
5237 int __cc;
5238 __builtin_s390_vchlgs(__a, __b, &__cc);
5239 return __cc != 0;
5240 }
5241
5242 // This prototype is deprecated.
5243 static inline __ATTRS_o_ai int
5244 vec_any_le(vector unsigned long long __a, vector bool long long __b) {
5245 int __cc;
5246 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
5247 return __cc != 0;
5248 }
5249
5250 // This prototype is deprecated.
5251 static inline __ATTRS_o_ai int
5252 vec_any_le(vector bool long long __a, vector unsigned long long __b) {
5253 int __cc;
5254 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
5255 return __cc != 0;
5256 }
5257
5258 // This prototype is deprecated.
5259 static inline __ATTRS_o_ai int
5260 vec_any_le(vector bool long long __a, vector bool long long __b) {
5261 int __cc;
5262 __builtin_s390_vchlgs((vector unsigned long long)__a,
5263 (vector unsigned long long)__b, &__cc);
5264 return __cc != 0;
5265 }
5266
5267 #if __ARCH__ >= 12
5268 static inline __ATTRS_o_ai int
5269 vec_any_le(vector float __a, vector float __b) {
5270 int __cc;
5271 __builtin_s390_vfchesbs(__b, __a, &__cc);
5272 return __cc <= 1;
5273 }
5274 #endif
5275
5276 static inline __ATTRS_o_ai int
5277 vec_any_le(vector double __a, vector double __b) {
5278 int __cc;
5279 __builtin_s390_vfchedbs(__b, __a, &__cc);
5280 return __cc <= 1;
5281 }
5282
5283 /*-- vec_any_lt -------------------------------------------------------------*/
5284
5285 static inline __ATTRS_o_ai int
5286 vec_any_lt(vector signed char __a, vector signed char __b) {
5287 int __cc;
5288 __builtin_s390_vchbs(__b, __a, &__cc);
5289 return __cc <= 1;
5290 }
5291
5292 // This prototype is deprecated.
5293 static inline __ATTRS_o_ai int
5294 vec_any_lt(vector signed char __a, vector bool char __b) {
5295 int __cc;
5296 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
5297 return __cc <= 1;
5298 }
5299
5300 // This prototype is deprecated.
5301 static inline __ATTRS_o_ai int
5302 vec_any_lt(vector bool char __a, vector signed char __b) {
5303 int __cc;
5304 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
5305 return __cc <= 1;
5306 }
5307
5308 static inline __ATTRS_o_ai int
5309 vec_any_lt(vector unsigned char __a, vector unsigned char __b) {
5310 int __cc;
5311 __builtin_s390_vchlbs(__b, __a, &__cc);
5312 return __cc <= 1;
5313 }
5314
5315 // This prototype is deprecated.
5316 static inline __ATTRS_o_ai int
5317 vec_any_lt(vector unsigned char __a, vector bool char __b) {
5318 int __cc;
5319 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
5320 return __cc <= 1;
5321 }
5322
5323 // This prototype is deprecated.
5324 static inline __ATTRS_o_ai int
5325 vec_any_lt(vector bool char __a, vector unsigned char __b) {
5326 int __cc;
5327 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
5328 return __cc <= 1;
5329 }
5330
5331 // This prototype is deprecated.
5332 static inline __ATTRS_o_ai int
5333 vec_any_lt(vector bool char __a, vector bool char __b) {
5334 int __cc;
5335 __builtin_s390_vchlbs((vector unsigned char)__b,
5336 (vector unsigned char)__a, &__cc);
5337 return __cc <= 1;
5338 }
5339
5340 static inline __ATTRS_o_ai int
5341 vec_any_lt(vector signed short __a, vector signed short __b) {
5342 int __cc;
5343 __builtin_s390_vchhs(__b, __a, &__cc);
5344 return __cc <= 1;
5345 }
5346
5347 // This prototype is deprecated.
5348 static inline __ATTRS_o_ai int
5349 vec_any_lt(vector signed short __a, vector bool short __b) {
5350 int __cc;
5351 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
5352 return __cc <= 1;
5353 }
5354
5355 // This prototype is deprecated.
5356 static inline __ATTRS_o_ai int
5357 vec_any_lt(vector bool short __a, vector signed short __b) {
5358 int __cc;
5359 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
5360 return __cc <= 1;
5361 }
5362
5363 static inline __ATTRS_o_ai int
5364 vec_any_lt(vector unsigned short __a, vector unsigned short __b) {
5365 int __cc;
5366 __builtin_s390_vchlhs(__b, __a, &__cc);
5367 return __cc <= 1;
5368 }
5369
5370 // This prototype is deprecated.
5371 static inline __ATTRS_o_ai int
5372 vec_any_lt(vector unsigned short __a, vector bool short __b) {
5373 int __cc;
5374 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
5375 return __cc <= 1;
5376 }
5377
5378 // This prototype is deprecated.
5379 static inline __ATTRS_o_ai int
5380 vec_any_lt(vector bool short __a, vector unsigned short __b) {
5381 int __cc;
5382 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
5383 return __cc <= 1;
5384 }
5385
5386 // This prototype is deprecated.
5387 static inline __ATTRS_o_ai int
5388 vec_any_lt(vector bool short __a, vector bool short __b) {
5389 int __cc;
5390 __builtin_s390_vchlhs((vector unsigned short)__b,
5391 (vector unsigned short)__a, &__cc);
5392 return __cc <= 1;
5393 }
5394
5395 static inline __ATTRS_o_ai int
5396 vec_any_lt(vector signed int __a, vector signed int __b) {
5397 int __cc;
5398 __builtin_s390_vchfs(__b, __a, &__cc);
5399 return __cc <= 1;
5400 }
5401
5402 // This prototype is deprecated.
5403 static inline __ATTRS_o_ai int
5404 vec_any_lt(vector signed int __a, vector bool int __b) {
5405 int __cc;
5406 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
5407 return __cc <= 1;
5408 }
5409
5410 // This prototype is deprecated.
5411 static inline __ATTRS_o_ai int
5412 vec_any_lt(vector bool int __a, vector signed int __b) {
5413 int __cc;
5414 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
5415 return __cc <= 1;
5416 }
5417
5418 static inline __ATTRS_o_ai int
5419 vec_any_lt(vector unsigned int __a, vector unsigned int __b) {
5420 int __cc;
5421 __builtin_s390_vchlfs(__b, __a, &__cc);
5422 return __cc <= 1;
5423 }
5424
5425 // This prototype is deprecated.
5426 static inline __ATTRS_o_ai int
5427 vec_any_lt(vector unsigned int __a, vector bool int __b) {
5428 int __cc;
5429 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
5430 return __cc <= 1;
5431 }
5432
5433 // This prototype is deprecated.
5434 static inline __ATTRS_o_ai int
5435 vec_any_lt(vector bool int __a, vector unsigned int __b) {
5436 int __cc;
5437 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
5438 return __cc <= 1;
5439 }
5440
5441 // This prototype is deprecated.
5442 static inline __ATTRS_o_ai int
5443 vec_any_lt(vector bool int __a, vector bool int __b) {
5444 int __cc;
5445 __builtin_s390_vchlfs((vector unsigned int)__b,
5446 (vector unsigned int)__a, &__cc);
5447 return __cc <= 1;
5448 }
5449
5450 static inline __ATTRS_o_ai int
5451 vec_any_lt(vector signed long long __a, vector signed long long __b) {
5452 int __cc;
5453 __builtin_s390_vchgs(__b, __a, &__cc);
5454 return __cc <= 1;
5455 }
5456
5457 // This prototype is deprecated.
5458 static inline __ATTRS_o_ai int
5459 vec_any_lt(vector signed long long __a, vector bool long long __b) {
5460 int __cc;
5461 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
5462 return __cc <= 1;
5463 }
5464
5465 // This prototype is deprecated.
5466 static inline __ATTRS_o_ai int
5467 vec_any_lt(vector bool long long __a, vector signed long long __b) {
5468 int __cc;
5469 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
5470 return __cc <= 1;
5471 }
5472
5473 static inline __ATTRS_o_ai int
5474 vec_any_lt(vector unsigned long long __a, vector unsigned long long __b) {
5475 int __cc;
5476 __builtin_s390_vchlgs(__b, __a, &__cc);
5477 return __cc <= 1;
5478 }
5479
5480 // This prototype is deprecated.
5481 static inline __ATTRS_o_ai int
5482 vec_any_lt(vector unsigned long long __a, vector bool long long __b) {
5483 int __cc;
5484 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
5485 return __cc <= 1;
5486 }
5487
5488 // This prototype is deprecated.
5489 static inline __ATTRS_o_ai int
5490 vec_any_lt(vector bool long long __a, vector unsigned long long __b) {
5491 int __cc;
5492 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
5493 return __cc <= 1;
5494 }
5495
5496 // This prototype is deprecated.
5497 static inline __ATTRS_o_ai int
5498 vec_any_lt(vector bool long long __a, vector bool long long __b) {
5499 int __cc;
5500 __builtin_s390_vchlgs((vector unsigned long long)__b,
5501 (vector unsigned long long)__a, &__cc);
5502 return __cc <= 1;
5503 }
5504
5505 #if __ARCH__ >= 12
5506 static inline __ATTRS_o_ai int
5507 vec_any_lt(vector float __a, vector float __b) {
5508 int __cc;
5509 __builtin_s390_vfchsbs(__b, __a, &__cc);
5510 return __cc <= 1;
5511 }
5512 #endif
5513
5514 static inline __ATTRS_o_ai int
5515 vec_any_lt(vector double __a, vector double __b) {
5516 int __cc;
5517 __builtin_s390_vfchdbs(__b, __a, &__cc);
5518 return __cc <= 1;
5519 }
5520
5521 /*-- vec_any_nge ------------------------------------------------------------*/
5522
5523 #if __ARCH__ >= 12
5524 static inline __ATTRS_o_ai int
5525 vec_any_nge(vector float __a, vector float __b) {
5526 int __cc;
5527 __builtin_s390_vfchesbs(__a, __b, &__cc);
5528 return __cc != 0;
5529 }
5530 #endif
5531
5532 static inline __ATTRS_o_ai int
5533 vec_any_nge(vector double __a, vector double __b) {
5534 int __cc;
5535 __builtin_s390_vfchedbs(__a, __b, &__cc);
5536 return __cc != 0;
5537 }
5538
5539 /*-- vec_any_ngt ------------------------------------------------------------*/
5540
5541 #if __ARCH__ >= 12
5542 static inline __ATTRS_o_ai int
5543 vec_any_ngt(vector float __a, vector float __b) {
5544 int __cc;
5545 __builtin_s390_vfchsbs(__a, __b, &__cc);
5546 return __cc != 0;
5547 }
5548 #endif
5549
5550 static inline __ATTRS_o_ai int
5551 vec_any_ngt(vector double __a, vector double __b) {
5552 int __cc;
5553 __builtin_s390_vfchdbs(__a, __b, &__cc);
5554 return __cc != 0;
5555 }
5556
5557 /*-- vec_any_nle ------------------------------------------------------------*/
5558
5559 #if __ARCH__ >= 12
5560 static inline __ATTRS_o_ai int
5561 vec_any_nle(vector float __a, vector float __b) {
5562 int __cc;
5563 __builtin_s390_vfchesbs(__b, __a, &__cc);
5564 return __cc != 0;
5565 }
5566 #endif
5567
5568 static inline __ATTRS_o_ai int
5569 vec_any_nle(vector double __a, vector double __b) {
5570 int __cc;
5571 __builtin_s390_vfchedbs(__b, __a, &__cc);
5572 return __cc != 0;
5573 }
5574
5575 /*-- vec_any_nlt ------------------------------------------------------------*/
5576
5577 #if __ARCH__ >= 12
5578 static inline __ATTRS_o_ai int
5579 vec_any_nlt(vector float __a, vector float __b) {
5580 int __cc;
5581 __builtin_s390_vfchsbs(__b, __a, &__cc);
5582 return __cc != 0;
5583 }
5584 #endif
5585
5586 static inline __ATTRS_o_ai int
5587 vec_any_nlt(vector double __a, vector double __b) {
5588 int __cc;
5589 __builtin_s390_vfchdbs(__b, __a, &__cc);
5590 return __cc != 0;
5591 }
5592
5593 /*-- vec_any_nan ------------------------------------------------------------*/
5594
5595 #if __ARCH__ >= 12
5596 static inline __ATTRS_o_ai int
5597 vec_any_nan(vector float __a) {
5598 int __cc;
5599 __builtin_s390_vftcisb(__a, 15, &__cc);
5600 return __cc != 3;
5601 }
5602 #endif
5603
5604 static inline __ATTRS_o_ai int
5605 vec_any_nan(vector double __a) {
5606 int __cc;
5607 __builtin_s390_vftcidb(__a, 15, &__cc);
5608 return __cc != 3;
5609 }
5610
5611 /*-- vec_any_numeric --------------------------------------------------------*/
5612
5613 #if __ARCH__ >= 12
5614 static inline __ATTRS_o_ai int
5615 vec_any_numeric(vector float __a) {
5616 int __cc;
5617 __builtin_s390_vftcisb(__a, 15, &__cc);
5618 return __cc != 0;
5619 }
5620 #endif
5621
5622 static inline __ATTRS_o_ai int
5623 vec_any_numeric(vector double __a) {
5624 int __cc;
5625 __builtin_s390_vftcidb(__a, 15, &__cc);
5626 return __cc != 0;
5627 }
5628
5629 /*-- vec_andc ---------------------------------------------------------------*/
5630
5631 static inline __ATTRS_o_ai vector bool char
5632 vec_andc(vector bool char __a, vector bool char __b) {
5633 return __a & ~__b;
5634 }
5635
5636 static inline __ATTRS_o_ai vector signed char
5637 vec_andc(vector signed char __a, vector signed char __b) {
5638 return __a & ~__b;
5639 }
5640
5641 // This prototype is deprecated.
5642 static inline __ATTRS_o_ai vector signed char
5643 vec_andc(vector bool char __a, vector signed char __b) {
5644 return __a & ~__b;
5645 }
5646
5647 // This prototype is deprecated.
5648 static inline __ATTRS_o_ai vector signed char
5649 vec_andc(vector signed char __a, vector bool char __b) {
5650 return __a & ~__b;
5651 }
5652
5653 static inline __ATTRS_o_ai vector unsigned char
5654 vec_andc(vector unsigned char __a, vector unsigned char __b) {
5655 return __a & ~__b;
5656 }
5657
5658 // This prototype is deprecated.
5659 static inline __ATTRS_o_ai vector unsigned char
5660 vec_andc(vector bool char __a, vector unsigned char __b) {
5661 return __a & ~__b;
5662 }
5663
5664 // This prototype is deprecated.
5665 static inline __ATTRS_o_ai vector unsigned char
5666 vec_andc(vector unsigned char __a, vector bool char __b) {
5667 return __a & ~__b;
5668 }
5669
5670 static inline __ATTRS_o_ai vector bool short
5671 vec_andc(vector bool short __a, vector bool short __b) {
5672 return __a & ~__b;
5673 }
5674
5675 static inline __ATTRS_o_ai vector signed short
5676 vec_andc(vector signed short __a, vector signed short __b) {
5677 return __a & ~__b;
5678 }
5679
5680 // This prototype is deprecated.
5681 static inline __ATTRS_o_ai vector signed short
5682 vec_andc(vector bool short __a, vector signed short __b) {
5683 return __a & ~__b;
5684 }
5685
5686 // This prototype is deprecated.
5687 static inline __ATTRS_o_ai vector signed short
5688 vec_andc(vector signed short __a, vector bool short __b) {
5689 return __a & ~__b;
5690 }
5691
5692 static inline __ATTRS_o_ai vector unsigned short
5693 vec_andc(vector unsigned short __a, vector unsigned short __b) {
5694 return __a & ~__b;
5695 }
5696
5697 // This prototype is deprecated.
5698 static inline __ATTRS_o_ai vector unsigned short
5699 vec_andc(vector bool short __a, vector unsigned short __b) {
5700 return __a & ~__b;
5701 }
5702
5703 // This prototype is deprecated.
5704 static inline __ATTRS_o_ai vector unsigned short
5705 vec_andc(vector unsigned short __a, vector bool short __b) {
5706 return __a & ~__b;
5707 }
5708
5709 static inline __ATTRS_o_ai vector bool int
5710 vec_andc(vector bool int __a, vector bool int __b) {
5711 return __a & ~__b;
5712 }
5713
5714 static inline __ATTRS_o_ai vector signed int
5715 vec_andc(vector signed int __a, vector signed int __b) {
5716 return __a & ~__b;
5717 }
5718
5719 // This prototype is deprecated.
5720 static inline __ATTRS_o_ai vector signed int
5721 vec_andc(vector bool int __a, vector signed int __b) {
5722 return __a & ~__b;
5723 }
5724
5725 // This prototype is deprecated.
5726 static inline __ATTRS_o_ai vector signed int
5727 vec_andc(vector signed int __a, vector bool int __b) {
5728 return __a & ~__b;
5729 }
5730
5731 static inline __ATTRS_o_ai vector unsigned int
5732 vec_andc(vector unsigned int __a, vector unsigned int __b) {
5733 return __a & ~__b;
5734 }
5735
5736 // This prototype is deprecated.
5737 static inline __ATTRS_o_ai vector unsigned int
5738 vec_andc(vector bool int __a, vector unsigned int __b) {
5739 return __a & ~__b;
5740 }
5741
5742 // This prototype is deprecated.
5743 static inline __ATTRS_o_ai vector unsigned int
5744 vec_andc(vector unsigned int __a, vector bool int __b) {
5745 return __a & ~__b;
5746 }
5747
5748 static inline __ATTRS_o_ai vector bool long long
5749 vec_andc(vector bool long long __a, vector bool long long __b) {
5750 return __a & ~__b;
5751 }
5752
5753 static inline __ATTRS_o_ai vector signed long long
5754 vec_andc(vector signed long long __a, vector signed long long __b) {
5755 return __a & ~__b;
5756 }
5757
5758 // This prototype is deprecated.
5759 static inline __ATTRS_o_ai vector signed long long
5760 vec_andc(vector bool long long __a, vector signed long long __b) {
5761 return __a & ~__b;
5762 }
5763
5764 // This prototype is deprecated.
5765 static inline __ATTRS_o_ai vector signed long long
5766 vec_andc(vector signed long long __a, vector bool long long __b) {
5767 return __a & ~__b;
5768 }
5769
5770 static inline __ATTRS_o_ai vector unsigned long long
5771 vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
5772 return __a & ~__b;
5773 }
5774
5775 // This prototype is deprecated.
5776 static inline __ATTRS_o_ai vector unsigned long long
5777 vec_andc(vector bool long long __a, vector unsigned long long __b) {
5778 return __a & ~__b;
5779 }
5780
5781 // This prototype is deprecated.
5782 static inline __ATTRS_o_ai vector unsigned long long
5783 vec_andc(vector unsigned long long __a, vector bool long long __b) {
5784 return __a & ~__b;
5785 }
5786
5787 #if __ARCH__ >= 12
5788 static inline __ATTRS_o_ai vector float
5789 vec_andc(vector float __a, vector float __b) {
5790 return (vector float)((vector unsigned int)__a &
5791 ~(vector unsigned int)__b);
5792 }
5793 #endif
5794
5795 static inline __ATTRS_o_ai vector double
5796 vec_andc(vector double __a, vector double __b) {
5797 return (vector double)((vector unsigned long long)__a &
5798 ~(vector unsigned long long)__b);
5799 }
5800
5801 // This prototype is deprecated.
5802 static inline __ATTRS_o_ai vector double
5803 vec_andc(vector bool long long __a, vector double __b) {
5804 return (vector double)((vector unsigned long long)__a &
5805 ~(vector unsigned long long)__b);
5806 }
5807
5808 // This prototype is deprecated.
5809 static inline __ATTRS_o_ai vector double
5810 vec_andc(vector double __a, vector bool long long __b) {
5811 return (vector double)((vector unsigned long long)__a &
5812 ~(vector unsigned long long)__b);
5813 }
5814
5815 /*-- vec_nor ----------------------------------------------------------------*/
5816
5817 static inline __ATTRS_o_ai vector bool char
5818 vec_nor(vector bool char __a, vector bool char __b) {
5819 return ~(__a | __b);
5820 }
5821
5822 static inline __ATTRS_o_ai vector signed char
5823 vec_nor(vector signed char __a, vector signed char __b) {
5824 return ~(__a | __b);
5825 }
5826
5827 // This prototype is deprecated.
5828 static inline __ATTRS_o_ai vector signed char
5829 vec_nor(vector bool char __a, vector signed char __b) {
5830 return ~(__a | __b);
5831 }
5832
5833 // This prototype is deprecated.
5834 static inline __ATTRS_o_ai vector signed char
5835 vec_nor(vector signed char __a, vector bool char __b) {
5836 return ~(__a | __b);
5837 }
5838
5839 static inline __ATTRS_o_ai vector unsigned char
5840 vec_nor(vector unsigned char __a, vector unsigned char __b) {
5841 return ~(__a | __b);
5842 }
5843
5844 // This prototype is deprecated.
5845 static inline __ATTRS_o_ai vector unsigned char
5846 vec_nor(vector bool char __a, vector unsigned char __b) {
5847 return ~(__a | __b);
5848 }
5849
5850 // This prototype is deprecated.
5851 static inline __ATTRS_o_ai vector unsigned char
5852 vec_nor(vector unsigned char __a, vector bool char __b) {
5853 return ~(__a | __b);
5854 }
5855
5856 static inline __ATTRS_o_ai vector bool short
5857 vec_nor(vector bool short __a, vector bool short __b) {
5858 return ~(__a | __b);
5859 }
5860
5861 static inline __ATTRS_o_ai vector signed short
5862 vec_nor(vector signed short __a, vector signed short __b) {
5863 return ~(__a | __b);
5864 }
5865
5866 // This prototype is deprecated.
5867 static inline __ATTRS_o_ai vector signed short
5868 vec_nor(vector bool short __a, vector signed short __b) {
5869 return ~(__a | __b);
5870 }
5871
5872 // This prototype is deprecated.
5873 static inline __ATTRS_o_ai vector signed short
5874 vec_nor(vector signed short __a, vector bool short __b) {
5875 return ~(__a | __b);
5876 }
5877
5878 static inline __ATTRS_o_ai vector unsigned short
5879 vec_nor(vector unsigned short __a, vector unsigned short __b) {
5880 return ~(__a | __b);
5881 }
5882
5883 // This prototype is deprecated.
5884 static inline __ATTRS_o_ai vector unsigned short
5885 vec_nor(vector bool short __a, vector unsigned short __b) {
5886 return ~(__a | __b);
5887 }
5888
5889 // This prototype is deprecated.
5890 static inline __ATTRS_o_ai vector unsigned short
5891 vec_nor(vector unsigned short __a, vector bool short __b) {
5892 return ~(__a | __b);
5893 }
5894
5895 static inline __ATTRS_o_ai vector bool int
5896 vec_nor(vector bool int __a, vector bool int __b) {
5897 return ~(__a | __b);
5898 }
5899
5900 static inline __ATTRS_o_ai vector signed int
5901 vec_nor(vector signed int __a, vector signed int __b) {
5902 return ~(__a | __b);
5903 }
5904
5905 // This prototype is deprecated.
5906 static inline __ATTRS_o_ai vector signed int
5907 vec_nor(vector bool int __a, vector signed int __b) {
5908 return ~(__a | __b);
5909 }
5910
5911 // This prototype is deprecated.
5912 static inline __ATTRS_o_ai vector signed int
5913 vec_nor(vector signed int __a, vector bool int __b) {
5914 return ~(__a | __b);
5915 }
5916
5917 static inline __ATTRS_o_ai vector unsigned int
5918 vec_nor(vector unsigned int __a, vector unsigned int __b) {
5919 return ~(__a | __b);
5920 }
5921
5922 // This prototype is deprecated.
5923 static inline __ATTRS_o_ai vector unsigned int
5924 vec_nor(vector bool int __a, vector unsigned int __b) {
5925 return ~(__a | __b);
5926 }
5927
5928 // This prototype is deprecated.
5929 static inline __ATTRS_o_ai vector unsigned int
5930 vec_nor(vector unsigned int __a, vector bool int __b) {
5931 return ~(__a | __b);
5932 }
5933
5934 static inline __ATTRS_o_ai vector bool long long
5935 vec_nor(vector bool long long __a, vector bool long long __b) {
5936 return ~(__a | __b);
5937 }
5938
5939 static inline __ATTRS_o_ai vector signed long long
5940 vec_nor(vector signed long long __a, vector signed long long __b) {
5941 return ~(__a | __b);
5942 }
5943
5944 // This prototype is deprecated.
5945 static inline __ATTRS_o_ai vector signed long long
5946 vec_nor(vector bool long long __a, vector signed long long __b) {
5947 return ~(__a | __b);
5948 }
5949
5950 // This prototype is deprecated.
5951 static inline __ATTRS_o_ai vector signed long long
5952 vec_nor(vector signed long long __a, vector bool long long __b) {
5953 return ~(__a | __b);
5954 }
5955
5956 static inline __ATTRS_o_ai vector unsigned long long
5957 vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
5958 return ~(__a | __b);
5959 }
5960
5961 // This prototype is deprecated.
5962 static inline __ATTRS_o_ai vector unsigned long long
5963 vec_nor(vector bool long long __a, vector unsigned long long __b) {
5964 return ~(__a | __b);
5965 }
5966
5967 // This prototype is deprecated.
5968 static inline __ATTRS_o_ai vector unsigned long long
5969 vec_nor(vector unsigned long long __a, vector bool long long __b) {
5970 return ~(__a | __b);
5971 }
5972
5973 #if __ARCH__ >= 12
5974 static inline __ATTRS_o_ai vector float
5975 vec_nor(vector float __a, vector float __b) {
5976 return (vector float)~((vector unsigned int)__a |
5977 (vector unsigned int)__b);
5978 }
5979 #endif
5980
5981 static inline __ATTRS_o_ai vector double
5982 vec_nor(vector double __a, vector double __b) {
5983 return (vector double)~((vector unsigned long long)__a |
5984 (vector unsigned long long)__b);
5985 }
5986
5987 // This prototype is deprecated.
5988 static inline __ATTRS_o_ai vector double
5989 vec_nor(vector bool long long __a, vector double __b) {
5990 return (vector double)~((vector unsigned long long)__a |
5991 (vector unsigned long long)__b);
5992 }
5993
5994 // This prototype is deprecated.
5995 static inline __ATTRS_o_ai vector double
5996 vec_nor(vector double __a, vector bool long long __b) {
5997 return (vector double)~((vector unsigned long long)__a |
5998 (vector unsigned long long)__b);
5999 }
6000
6001 /*-- vec_orc ----------------------------------------------------------------*/
6002
6003 #if __ARCH__ >= 12
6004 static inline __ATTRS_o_ai vector bool char
6005 vec_orc(vector bool char __a, vector bool char __b) {
6006 return __a | ~__b;
6007 }
6008
6009 static inline __ATTRS_o_ai vector signed char
6010 vec_orc(vector signed char __a, vector signed char __b) {
6011 return __a | ~__b;
6012 }
6013
6014 static inline __ATTRS_o_ai vector unsigned char
6015 vec_orc(vector unsigned char __a, vector unsigned char __b) {
6016 return __a | ~__b;
6017 }
6018
6019 static inline __ATTRS_o_ai vector bool short
6020 vec_orc(vector bool short __a, vector bool short __b) {
6021 return __a | ~__b;
6022 }
6023
6024 static inline __ATTRS_o_ai vector signed short
6025 vec_orc(vector signed short __a, vector signed short __b) {
6026 return __a | ~__b;
6027 }
6028
6029 static inline __ATTRS_o_ai vector unsigned short
6030 vec_orc(vector unsigned short __a, vector unsigned short __b) {
6031 return __a | ~__b;
6032 }
6033
6034 static inline __ATTRS_o_ai vector bool int
6035 vec_orc(vector bool int __a, vector bool int __b) {
6036 return __a | ~__b;
6037 }
6038
6039 static inline __ATTRS_o_ai vector signed int
6040 vec_orc(vector signed int __a, vector signed int __b) {
6041 return __a | ~__b;
6042 }
6043
6044 static inline __ATTRS_o_ai vector unsigned int
6045 vec_orc(vector unsigned int __a, vector unsigned int __b) {
6046 return __a | ~__b;
6047 }
6048
6049 static inline __ATTRS_o_ai vector bool long long
6050 vec_orc(vector bool long long __a, vector bool long long __b) {
6051 return __a | ~__b;
6052 }
6053
6054 static inline __ATTRS_o_ai vector signed long long
6055 vec_orc(vector signed long long __a, vector signed long long __b) {
6056 return __a | ~__b;
6057 }
6058
6059 static inline __ATTRS_o_ai vector unsigned long long
6060 vec_orc(vector unsigned long long __a, vector unsigned long long __b) {
6061 return __a | ~__b;
6062 }
6063
6064 static inline __ATTRS_o_ai vector float
6065 vec_orc(vector float __a, vector float __b) {
6066 return (vector float)((vector unsigned int)__a |
6067 ~(vector unsigned int)__b);
6068 }
6069
6070 static inline __ATTRS_o_ai vector double
6071 vec_orc(vector double __a, vector double __b) {
6072 return (vector double)((vector unsigned long long)__a |
6073 ~(vector unsigned long long)__b);
6074 }
6075 #endif
6076
6077 /*-- vec_nand ---------------------------------------------------------------*/
6078
6079 #if __ARCH__ >= 12
6080 static inline __ATTRS_o_ai vector bool char
6081 vec_nand(vector bool char __a, vector bool char __b) {
6082 return ~(__a & __b);
6083 }
6084
6085 static inline __ATTRS_o_ai vector signed char
6086 vec_nand(vector signed char __a, vector signed char __b) {
6087 return ~(__a & __b);
6088 }
6089
6090 static inline __ATTRS_o_ai vector unsigned char
6091 vec_nand(vector unsigned char __a, vector unsigned char __b) {
6092 return ~(__a & __b);
6093 }
6094
6095 static inline __ATTRS_o_ai vector bool short
6096 vec_nand(vector bool short __a, vector bool short __b) {
6097 return ~(__a & __b);
6098 }
6099
6100 static inline __ATTRS_o_ai vector signed short
6101 vec_nand(vector signed short __a, vector signed short __b) {
6102 return ~(__a & __b);
6103 }
6104
6105 static inline __ATTRS_o_ai vector unsigned short
6106 vec_nand(vector unsigned short __a, vector unsigned short __b) {
6107 return ~(__a & __b);
6108 }
6109
6110 static inline __ATTRS_o_ai vector bool int
6111 vec_nand(vector bool int __a, vector bool int __b) {
6112 return ~(__a & __b);
6113 }
6114
6115 static inline __ATTRS_o_ai vector signed int
6116 vec_nand(vector signed int __a, vector signed int __b) {
6117 return ~(__a & __b);
6118 }
6119
6120 static inline __ATTRS_o_ai vector unsigned int
6121 vec_nand(vector unsigned int __a, vector unsigned int __b) {
6122 return ~(__a & __b);
6123 }
6124
6125 static inline __ATTRS_o_ai vector bool long long
6126 vec_nand(vector bool long long __a, vector bool long long __b) {
6127 return ~(__a & __b);
6128 }
6129
6130 static inline __ATTRS_o_ai vector signed long long
6131 vec_nand(vector signed long long __a, vector signed long long __b) {
6132 return ~(__a & __b);
6133 }
6134
6135 static inline __ATTRS_o_ai vector unsigned long long
6136 vec_nand(vector unsigned long long __a, vector unsigned long long __b) {
6137 return ~(__a & __b);
6138 }
6139
6140 static inline __ATTRS_o_ai vector float
6141 vec_nand(vector float __a, vector float __b) {
6142 return (vector float)~((vector unsigned int)__a &
6143 (vector unsigned int)__b);
6144 }
6145
6146 static inline __ATTRS_o_ai vector double
6147 vec_nand(vector double __a, vector double __b) {
6148 return (vector double)~((vector unsigned long long)__a &
6149 (vector unsigned long long)__b);
6150 }
6151 #endif
6152
6153 /*-- vec_eqv ----------------------------------------------------------------*/
6154
6155 #if __ARCH__ >= 12
6156 static inline __ATTRS_o_ai vector bool char
6157 vec_eqv(vector bool char __a, vector bool char __b) {
6158 return ~(__a ^ __b);
6159 }
6160
6161 static inline __ATTRS_o_ai vector signed char
6162 vec_eqv(vector signed char __a, vector signed char __b) {
6163 return ~(__a ^ __b);
6164 }
6165
6166 static inline __ATTRS_o_ai vector unsigned char
6167 vec_eqv(vector unsigned char __a, vector unsigned char __b) {
6168 return ~(__a ^ __b);
6169 }
6170
6171 static inline __ATTRS_o_ai vector bool short
6172 vec_eqv(vector bool short __a, vector bool short __b) {
6173 return ~(__a ^ __b);
6174 }
6175
6176 static inline __ATTRS_o_ai vector signed short
6177 vec_eqv(vector signed short __a, vector signed short __b) {
6178 return ~(__a ^ __b);
6179 }
6180
6181 static inline __ATTRS_o_ai vector unsigned short
6182 vec_eqv(vector unsigned short __a, vector unsigned short __b) {
6183 return ~(__a ^ __b);
6184 }
6185
6186 static inline __ATTRS_o_ai vector bool int
6187 vec_eqv(vector bool int __a, vector bool int __b) {
6188 return ~(__a ^ __b);
6189 }
6190
6191 static inline __ATTRS_o_ai vector signed int
6192 vec_eqv(vector signed int __a, vector signed int __b) {
6193 return ~(__a ^ __b);
6194 }
6195
6196 static inline __ATTRS_o_ai vector unsigned int
6197 vec_eqv(vector unsigned int __a, vector unsigned int __b) {
6198 return ~(__a ^ __b);
6199 }
6200
6201 static inline __ATTRS_o_ai vector bool long long
6202 vec_eqv(vector bool long long __a, vector bool long long __b) {
6203 return ~(__a ^ __b);
6204 }
6205
6206 static inline __ATTRS_o_ai vector signed long long
6207 vec_eqv(vector signed long long __a, vector signed long long __b) {
6208 return ~(__a ^ __b);
6209 }
6210
6211 static inline __ATTRS_o_ai vector unsigned long long
6212 vec_eqv(vector unsigned long long __a, vector unsigned long long __b) {
6213 return ~(__a ^ __b);
6214 }
6215
6216 static inline __ATTRS_o_ai vector float
6217 vec_eqv(vector float __a, vector float __b) {
6218 return (vector float)~((vector unsigned int)__a ^
6219 (vector unsigned int)__b);
6220 }
6221
6222 static inline __ATTRS_o_ai vector double
6223 vec_eqv(vector double __a, vector double __b) {
6224 return (vector double)~((vector unsigned long long)__a ^
6225 (vector unsigned long long)__b);
6226 }
6227 #endif
6228
6229 /*-- vec_cntlz --------------------------------------------------------------*/
6230
6231 static inline __ATTRS_o_ai vector unsigned char
6232 vec_cntlz(vector signed char __a) {
6233 return __builtin_s390_vclzb((vector unsigned char)__a);
6234 }
6235
6236 static inline __ATTRS_o_ai vector unsigned char
6237 vec_cntlz(vector unsigned char __a) {
6238 return __builtin_s390_vclzb(__a);
6239 }
6240
6241 static inline __ATTRS_o_ai vector unsigned short
6242 vec_cntlz(vector signed short __a) {
6243 return __builtin_s390_vclzh((vector unsigned short)__a);
6244 }
6245
6246 static inline __ATTRS_o_ai vector unsigned short
6247 vec_cntlz(vector unsigned short __a) {
6248 return __builtin_s390_vclzh(__a);
6249 }
6250
6251 static inline __ATTRS_o_ai vector unsigned int
6252 vec_cntlz(vector signed int __a) {
6253 return __builtin_s390_vclzf((vector unsigned int)__a);
6254 }
6255
6256 static inline __ATTRS_o_ai vector unsigned int
6257 vec_cntlz(vector unsigned int __a) {
6258 return __builtin_s390_vclzf(__a);
6259 }
6260
6261 static inline __ATTRS_o_ai vector unsigned long long
6262 vec_cntlz(vector signed long long __a) {
6263 return __builtin_s390_vclzg((vector unsigned long long)__a);
6264 }
6265
6266 static inline __ATTRS_o_ai vector unsigned long long
6267 vec_cntlz(vector unsigned long long __a) {
6268 return __builtin_s390_vclzg(__a);
6269 }
6270
6271 /*-- vec_cnttz --------------------------------------------------------------*/
6272
6273 static inline __ATTRS_o_ai vector unsigned char
6274 vec_cnttz(vector signed char __a) {
6275 return __builtin_s390_vctzb((vector unsigned char)__a);
6276 }
6277
6278 static inline __ATTRS_o_ai vector unsigned char
6279 vec_cnttz(vector unsigned char __a) {
6280 return __builtin_s390_vctzb(__a);
6281 }
6282
6283 static inline __ATTRS_o_ai vector unsigned short
6284 vec_cnttz(vector signed short __a) {
6285 return __builtin_s390_vctzh((vector unsigned short)__a);
6286 }
6287
6288 static inline __ATTRS_o_ai vector unsigned short
6289 vec_cnttz(vector unsigned short __a) {
6290 return __builtin_s390_vctzh(__a);
6291 }
6292
6293 static inline __ATTRS_o_ai vector unsigned int
6294 vec_cnttz(vector signed int __a) {
6295 return __builtin_s390_vctzf((vector unsigned int)__a);
6296 }
6297
6298 static inline __ATTRS_o_ai vector unsigned int
6299 vec_cnttz(vector unsigned int __a) {
6300 return __builtin_s390_vctzf(__a);
6301 }
6302
6303 static inline __ATTRS_o_ai vector unsigned long long
6304 vec_cnttz(vector signed long long __a) {
6305 return __builtin_s390_vctzg((vector unsigned long long)__a);
6306 }
6307
6308 static inline __ATTRS_o_ai vector unsigned long long
6309 vec_cnttz(vector unsigned long long __a) {
6310 return __builtin_s390_vctzg(__a);
6311 }
6312
6313 /*-- vec_popcnt -------------------------------------------------------------*/
6314
6315 static inline __ATTRS_o_ai vector unsigned char
6316 vec_popcnt(vector signed char __a) {
6317 return __builtin_s390_vpopctb((vector unsigned char)__a);
6318 }
6319
6320 static inline __ATTRS_o_ai vector unsigned char
6321 vec_popcnt(vector unsigned char __a) {
6322 return __builtin_s390_vpopctb(__a);
6323 }
6324
6325 static inline __ATTRS_o_ai vector unsigned short
6326 vec_popcnt(vector signed short __a) {
6327 return __builtin_s390_vpopcth((vector unsigned short)__a);
6328 }
6329
6330 static inline __ATTRS_o_ai vector unsigned short
6331 vec_popcnt(vector unsigned short __a) {
6332 return __builtin_s390_vpopcth(__a);
6333 }
6334
6335 static inline __ATTRS_o_ai vector unsigned int
6336 vec_popcnt(vector signed int __a) {
6337 return __builtin_s390_vpopctf((vector unsigned int)__a);
6338 }
6339
6340 static inline __ATTRS_o_ai vector unsigned int
6341 vec_popcnt(vector unsigned int __a) {
6342 return __builtin_s390_vpopctf(__a);
6343 }
6344
6345 static inline __ATTRS_o_ai vector unsigned long long
6346 vec_popcnt(vector signed long long __a) {
6347 return __builtin_s390_vpopctg((vector unsigned long long)__a);
6348 }
6349
6350 static inline __ATTRS_o_ai vector unsigned long long
6351 vec_popcnt(vector unsigned long long __a) {
6352 return __builtin_s390_vpopctg(__a);
6353 }
6354
6355 /*-- vec_rl -----------------------------------------------------------------*/
6356
6357 static inline __ATTRS_o_ai vector signed char
6358 vec_rl(vector signed char __a, vector unsigned char __b) {
6359 return (vector signed char)__builtin_s390_verllvb(
6360 (vector unsigned char)__a, __b);
6361 }
6362
6363 static inline __ATTRS_o_ai vector unsigned char
6364 vec_rl(vector unsigned char __a, vector unsigned char __b) {
6365 return __builtin_s390_verllvb(__a, __b);
6366 }
6367
6368 static inline __ATTRS_o_ai vector signed short
6369 vec_rl(vector signed short __a, vector unsigned short __b) {
6370 return (vector signed short)__builtin_s390_verllvh(
6371 (vector unsigned short)__a, __b);
6372 }
6373
6374 static inline __ATTRS_o_ai vector unsigned short
6375 vec_rl(vector unsigned short __a, vector unsigned short __b) {
6376 return __builtin_s390_verllvh(__a, __b);
6377 }
6378
6379 static inline __ATTRS_o_ai vector signed int
6380 vec_rl(vector signed int __a, vector unsigned int __b) {
6381 return (vector signed int)__builtin_s390_verllvf(
6382 (vector unsigned int)__a, __b);
6383 }
6384
6385 static inline __ATTRS_o_ai vector unsigned int
6386 vec_rl(vector unsigned int __a, vector unsigned int __b) {
6387 return __builtin_s390_verllvf(__a, __b);
6388 }
6389
6390 static inline __ATTRS_o_ai vector signed long long
6391 vec_rl(vector signed long long __a, vector unsigned long long __b) {
6392 return (vector signed long long)__builtin_s390_verllvg(
6393 (vector unsigned long long)__a, __b);
6394 }
6395
6396 static inline __ATTRS_o_ai vector unsigned long long
6397 vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
6398 return __builtin_s390_verllvg(__a, __b);
6399 }
6400
6401 /*-- vec_rli ----------------------------------------------------------------*/
6402
6403 static inline __ATTRS_o_ai vector signed char
6404 vec_rli(vector signed char __a, unsigned long __b) {
6405 return (vector signed char)__builtin_s390_verllb(
6406 (vector unsigned char)__a, (int)__b);
6407 }
6408
6409 static inline __ATTRS_o_ai vector unsigned char
6410 vec_rli(vector unsigned char __a, unsigned long __b) {
6411 return __builtin_s390_verllb(__a, (int)__b);
6412 }
6413
6414 static inline __ATTRS_o_ai vector signed short
6415 vec_rli(vector signed short __a, unsigned long __b) {
6416 return (vector signed short)__builtin_s390_verllh(
6417 (vector unsigned short)__a, (int)__b);
6418 }
6419
6420 static inline __ATTRS_o_ai vector unsigned short
6421 vec_rli(vector unsigned short __a, unsigned long __b) {
6422 return __builtin_s390_verllh(__a, (int)__b);
6423 }
6424
6425 static inline __ATTRS_o_ai vector signed int
6426 vec_rli(vector signed int __a, unsigned long __b) {
6427 return (vector signed int)__builtin_s390_verllf(
6428 (vector unsigned int)__a, (int)__b);
6429 }
6430
6431 static inline __ATTRS_o_ai vector unsigned int
6432 vec_rli(vector unsigned int __a, unsigned long __b) {
6433 return __builtin_s390_verllf(__a, (int)__b);
6434 }
6435
6436 static inline __ATTRS_o_ai vector signed long long
6437 vec_rli(vector signed long long __a, unsigned long __b) {
6438 return (vector signed long long)__builtin_s390_verllg(
6439 (vector unsigned long long)__a, (int)__b);
6440 }
6441
6442 static inline __ATTRS_o_ai vector unsigned long long
6443 vec_rli(vector unsigned long long __a, unsigned long __b) {
6444 return __builtin_s390_verllg(__a, (int)__b);
6445 }
6446
6447 /*-- vec_rl_mask ------------------------------------------------------------*/
6448
6449 extern __ATTRS_o vector signed char
6450 vec_rl_mask(vector signed char __a, vector unsigned char __b,
6451 unsigned char __c) __constant(__c);
6452
6453 extern __ATTRS_o vector unsigned char
6454 vec_rl_mask(vector unsigned char __a, vector unsigned char __b,
6455 unsigned char __c) __constant(__c);
6456
6457 extern __ATTRS_o vector signed short
6458 vec_rl_mask(vector signed short __a, vector unsigned short __b,
6459 unsigned char __c) __constant(__c);
6460
6461 extern __ATTRS_o vector unsigned short
6462 vec_rl_mask(vector unsigned short __a, vector unsigned short __b,
6463 unsigned char __c) __constant(__c);
6464
6465 extern __ATTRS_o vector signed int
6466 vec_rl_mask(vector signed int __a, vector unsigned int __b,
6467 unsigned char __c) __constant(__c);
6468
6469 extern __ATTRS_o vector unsigned int
6470 vec_rl_mask(vector unsigned int __a, vector unsigned int __b,
6471 unsigned char __c) __constant(__c);
6472
6473 extern __ATTRS_o vector signed long long
6474 vec_rl_mask(vector signed long long __a, vector unsigned long long __b,
6475 unsigned char __c) __constant(__c);
6476
6477 extern __ATTRS_o vector unsigned long long
6478 vec_rl_mask(vector unsigned long long __a, vector unsigned long long __b,
6479 unsigned char __c) __constant(__c);
6480
6481 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
6482 __extension__ ({ \
6483 vector unsigned char __res; \
6484 vector unsigned char __x = (vector unsigned char)(X); \
6485 vector unsigned char __y = (vector unsigned char)(Y); \
6486 switch (sizeof ((X)[0])) { \
6487 case 1: __res = (vector unsigned char) __builtin_s390_verimb( \
6488 (vector unsigned char)__x, (vector unsigned char)__x, \
6489 (vector unsigned char)__y, (Z)); break; \
6490 case 2: __res = (vector unsigned char) __builtin_s390_verimh( \
6491 (vector unsigned short)__x, (vector unsigned short)__x, \
6492 (vector unsigned short)__y, (Z)); break; \
6493 case 4: __res = (vector unsigned char) __builtin_s390_verimf( \
6494 (vector unsigned int)__x, (vector unsigned int)__x, \
6495 (vector unsigned int)__y, (Z)); break; \
6496 default: __res = (vector unsigned char) __builtin_s390_verimg( \
6497 (vector unsigned long long)__x, (vector unsigned long long)__x, \
6498 (vector unsigned long long)__y, (Z)); break; \
6499 } __res; }))
6500
6501 /*-- vec_sll ----------------------------------------------------------------*/
6502
6503 static inline __ATTRS_o_ai vector signed char
6504 vec_sll(vector signed char __a, vector unsigned char __b) {
6505 return (vector signed char)__builtin_s390_vsl(
6506 (vector unsigned char)__a, __b);
6507 }
6508
6509 // This prototype is deprecated.
6510 static inline __ATTRS_o_ai vector signed char
6511 vec_sll(vector signed char __a, vector unsigned short __b) {
6512 return (vector signed char)__builtin_s390_vsl(
6513 (vector unsigned char)__a, (vector unsigned char)__b);
6514 }
6515
6516 // This prototype is deprecated.
6517 static inline __ATTRS_o_ai vector signed char
6518 vec_sll(vector signed char __a, vector unsigned int __b) {
6519 return (vector signed char)__builtin_s390_vsl(
6520 (vector unsigned char)__a, (vector unsigned char)__b);
6521 }
6522
6523 // This prototype is deprecated.
6524 static inline __ATTRS_o_ai vector bool char
6525 vec_sll(vector bool char __a, vector unsigned char __b) {
6526 return (vector bool char)__builtin_s390_vsl(
6527 (vector unsigned char)__a, __b);
6528 }
6529
6530 // This prototype is deprecated.
6531 static inline __ATTRS_o_ai vector bool char
6532 vec_sll(vector bool char __a, vector unsigned short __b) {
6533 return (vector bool char)__builtin_s390_vsl(
6534 (vector unsigned char)__a, (vector unsigned char)__b);
6535 }
6536
6537 // This prototype is deprecated.
6538 static inline __ATTRS_o_ai vector bool char
6539 vec_sll(vector bool char __a, vector unsigned int __b) {
6540 return (vector bool char)__builtin_s390_vsl(
6541 (vector unsigned char)__a, (vector unsigned char)__b);
6542 }
6543
6544 static inline __ATTRS_o_ai vector unsigned char
6545 vec_sll(vector unsigned char __a, vector unsigned char __b) {
6546 return __builtin_s390_vsl(__a, __b);
6547 }
6548
6549 // This prototype is deprecated.
6550 static inline __ATTRS_o_ai vector unsigned char
6551 vec_sll(vector unsigned char __a, vector unsigned short __b) {
6552 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6553 }
6554
6555 // This prototype is deprecated.
6556 static inline __ATTRS_o_ai vector unsigned char
6557 vec_sll(vector unsigned char __a, vector unsigned int __b) {
6558 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6559 }
6560
6561 static inline __ATTRS_o_ai vector signed short
6562 vec_sll(vector signed short __a, vector unsigned char __b) {
6563 return (vector signed short)__builtin_s390_vsl(
6564 (vector unsigned char)__a, __b);
6565 }
6566
6567 // This prototype is deprecated.
6568 static inline __ATTRS_o_ai vector signed short
6569 vec_sll(vector signed short __a, vector unsigned short __b) {
6570 return (vector signed short)__builtin_s390_vsl(
6571 (vector unsigned char)__a, (vector unsigned char)__b);
6572 }
6573
6574 // This prototype is deprecated.
6575 static inline __ATTRS_o_ai vector signed short
6576 vec_sll(vector signed short __a, vector unsigned int __b) {
6577 return (vector signed short)__builtin_s390_vsl(
6578 (vector unsigned char)__a, (vector unsigned char)__b);
6579 }
6580
6581 // This prototype is deprecated.
6582 static inline __ATTRS_o_ai vector bool short
6583 vec_sll(vector bool short __a, vector unsigned char __b) {
6584 return (vector bool short)__builtin_s390_vsl(
6585 (vector unsigned char)__a, __b);
6586 }
6587
6588 // This prototype is deprecated.
6589 static inline __ATTRS_o_ai vector bool short
6590 vec_sll(vector bool short __a, vector unsigned short __b) {
6591 return (vector bool short)__builtin_s390_vsl(
6592 (vector unsigned char)__a, (vector unsigned char)__b);
6593 }
6594
6595 // This prototype is deprecated.
6596 static inline __ATTRS_o_ai vector bool short
6597 vec_sll(vector bool short __a, vector unsigned int __b) {
6598 return (vector bool short)__builtin_s390_vsl(
6599 (vector unsigned char)__a, (vector unsigned char)__b);
6600 }
6601
6602 static inline __ATTRS_o_ai vector unsigned short
6603 vec_sll(vector unsigned short __a, vector unsigned char __b) {
6604 return (vector unsigned short)__builtin_s390_vsl(
6605 (vector unsigned char)__a, __b);
6606 }
6607
6608 // This prototype is deprecated.
6609 static inline __ATTRS_o_ai vector unsigned short
6610 vec_sll(vector unsigned short __a, vector unsigned short __b) {
6611 return (vector unsigned short)__builtin_s390_vsl(
6612 (vector unsigned char)__a, (vector unsigned char)__b);
6613 }
6614
6615 // This prototype is deprecated.
6616 static inline __ATTRS_o_ai vector unsigned short
6617 vec_sll(vector unsigned short __a, vector unsigned int __b) {
6618 return (vector unsigned short)__builtin_s390_vsl(
6619 (vector unsigned char)__a, (vector unsigned char)__b);
6620 }
6621
6622 static inline __ATTRS_o_ai vector signed int
6623 vec_sll(vector signed int __a, vector unsigned char __b) {
6624 return (vector signed int)__builtin_s390_vsl(
6625 (vector unsigned char)__a, __b);
6626 }
6627
6628 // This prototype is deprecated.
6629 static inline __ATTRS_o_ai vector signed int
6630 vec_sll(vector signed int __a, vector unsigned short __b) {
6631 return (vector signed int)__builtin_s390_vsl(
6632 (vector unsigned char)__a, (vector unsigned char)__b);
6633 }
6634
6635 // This prototype is deprecated.
6636 static inline __ATTRS_o_ai vector signed int
6637 vec_sll(vector signed int __a, vector unsigned int __b) {
6638 return (vector signed int)__builtin_s390_vsl(
6639 (vector unsigned char)__a, (vector unsigned char)__b);
6640 }
6641
6642 // This prototype is deprecated.
6643 static inline __ATTRS_o_ai vector bool int
6644 vec_sll(vector bool int __a, vector unsigned char __b) {
6645 return (vector bool int)__builtin_s390_vsl(
6646 (vector unsigned char)__a, __b);
6647 }
6648
6649 // This prototype is deprecated.
6650 static inline __ATTRS_o_ai vector bool int
6651 vec_sll(vector bool int __a, vector unsigned short __b) {
6652 return (vector bool int)__builtin_s390_vsl(
6653 (vector unsigned char)__a, (vector unsigned char)__b);
6654 }
6655
6656 // This prototype is deprecated.
6657 static inline __ATTRS_o_ai vector bool int
6658 vec_sll(vector bool int __a, vector unsigned int __b) {
6659 return (vector bool int)__builtin_s390_vsl(
6660 (vector unsigned char)__a, (vector unsigned char)__b);
6661 }
6662
6663 static inline __ATTRS_o_ai vector unsigned int
6664 vec_sll(vector unsigned int __a, vector unsigned char __b) {
6665 return (vector unsigned int)__builtin_s390_vsl(
6666 (vector unsigned char)__a, __b);
6667 }
6668
6669 // This prototype is deprecated.
6670 static inline __ATTRS_o_ai vector unsigned int
6671 vec_sll(vector unsigned int __a, vector unsigned short __b) {
6672 return (vector unsigned int)__builtin_s390_vsl(
6673 (vector unsigned char)__a, (vector unsigned char)__b);
6674 }
6675
6676 // This prototype is deprecated.
6677 static inline __ATTRS_o_ai vector unsigned int
6678 vec_sll(vector unsigned int __a, vector unsigned int __b) {
6679 return (vector unsigned int)__builtin_s390_vsl(
6680 (vector unsigned char)__a, (vector unsigned char)__b);
6681 }
6682
6683 static inline __ATTRS_o_ai vector signed long long
6684 vec_sll(vector signed long long __a, vector unsigned char __b) {
6685 return (vector signed long long)__builtin_s390_vsl(
6686 (vector unsigned char)__a, __b);
6687 }
6688
6689 // This prototype is deprecated.
6690 static inline __ATTRS_o_ai vector signed long long
6691 vec_sll(vector signed long long __a, vector unsigned short __b) {
6692 return (vector signed long long)__builtin_s390_vsl(
6693 (vector unsigned char)__a, (vector unsigned char)__b);
6694 }
6695
6696 // This prototype is deprecated.
6697 static inline __ATTRS_o_ai vector signed long long
6698 vec_sll(vector signed long long __a, vector unsigned int __b) {
6699 return (vector signed long long)__builtin_s390_vsl(
6700 (vector unsigned char)__a, (vector unsigned char)__b);
6701 }
6702
6703 // This prototype is deprecated.
6704 static inline __ATTRS_o_ai vector bool long long
6705 vec_sll(vector bool long long __a, vector unsigned char __b) {
6706 return (vector bool long long)__builtin_s390_vsl(
6707 (vector unsigned char)__a, __b);
6708 }
6709
6710 // This prototype is deprecated.
6711 static inline __ATTRS_o_ai vector bool long long
6712 vec_sll(vector bool long long __a, vector unsigned short __b) {
6713 return (vector bool long long)__builtin_s390_vsl(
6714 (vector unsigned char)__a, (vector unsigned char)__b);
6715 }
6716
6717 // This prototype is deprecated.
6718 static inline __ATTRS_o_ai vector bool long long
6719 vec_sll(vector bool long long __a, vector unsigned int __b) {
6720 return (vector bool long long)__builtin_s390_vsl(
6721 (vector unsigned char)__a, (vector unsigned char)__b);
6722 }
6723
6724 static inline __ATTRS_o_ai vector unsigned long long
6725 vec_sll(vector unsigned long long __a, vector unsigned char __b) {
6726 return (vector unsigned long long)__builtin_s390_vsl(
6727 (vector unsigned char)__a, __b);
6728 }
6729
6730 // This prototype is deprecated.
6731 static inline __ATTRS_o_ai vector unsigned long long
6732 vec_sll(vector unsigned long long __a, vector unsigned short __b) {
6733 return (vector unsigned long long)__builtin_s390_vsl(
6734 (vector unsigned char)__a, (vector unsigned char)__b);
6735 }
6736
6737 // This prototype is deprecated.
6738 static inline __ATTRS_o_ai vector unsigned long long
6739 vec_sll(vector unsigned long long __a, vector unsigned int __b) {
6740 return (vector unsigned long long)__builtin_s390_vsl(
6741 (vector unsigned char)__a, (vector unsigned char)__b);
6742 }
6743
6744 /*-- vec_slb ----------------------------------------------------------------*/
6745
6746 static inline __ATTRS_o_ai vector signed char
6747 vec_slb(vector signed char __a, vector signed char __b) {
6748 return (vector signed char)__builtin_s390_vslb(
6749 (vector unsigned char)__a, (vector unsigned char)__b);
6750 }
6751
6752 static inline __ATTRS_o_ai vector signed char
6753 vec_slb(vector signed char __a, vector unsigned char __b) {
6754 return (vector signed char)__builtin_s390_vslb(
6755 (vector unsigned char)__a, __b);
6756 }
6757
6758 static inline __ATTRS_o_ai vector unsigned char
6759 vec_slb(vector unsigned char __a, vector signed char __b) {
6760 return __builtin_s390_vslb(__a, (vector unsigned char)__b);
6761 }
6762
6763 static inline __ATTRS_o_ai vector unsigned char
6764 vec_slb(vector unsigned char __a, vector unsigned char __b) {
6765 return __builtin_s390_vslb(__a, __b);
6766 }
6767
6768 static inline __ATTRS_o_ai vector signed short
6769 vec_slb(vector signed short __a, vector signed short __b) {
6770 return (vector signed short)__builtin_s390_vslb(
6771 (vector unsigned char)__a, (vector unsigned char)__b);
6772 }
6773
6774 static inline __ATTRS_o_ai vector signed short
6775 vec_slb(vector signed short __a, vector unsigned short __b) {
6776 return (vector signed short)__builtin_s390_vslb(
6777 (vector unsigned char)__a, (vector unsigned char)__b);
6778 }
6779
6780 static inline __ATTRS_o_ai vector unsigned short
6781 vec_slb(vector unsigned short __a, vector signed short __b) {
6782 return (vector unsigned short)__builtin_s390_vslb(
6783 (vector unsigned char)__a, (vector unsigned char)__b);
6784 }
6785
6786 static inline __ATTRS_o_ai vector unsigned short
6787 vec_slb(vector unsigned short __a, vector unsigned short __b) {
6788 return (vector unsigned short)__builtin_s390_vslb(
6789 (vector unsigned char)__a, (vector unsigned char)__b);
6790 }
6791
6792 static inline __ATTRS_o_ai vector signed int
6793 vec_slb(vector signed int __a, vector signed int __b) {
6794 return (vector signed int)__builtin_s390_vslb(
6795 (vector unsigned char)__a, (vector unsigned char)__b);
6796 }
6797
6798 static inline __ATTRS_o_ai vector signed int
6799 vec_slb(vector signed int __a, vector unsigned int __b) {
6800 return (vector signed int)__builtin_s390_vslb(
6801 (vector unsigned char)__a, (vector unsigned char)__b);
6802 }
6803
6804 static inline __ATTRS_o_ai vector unsigned int
6805 vec_slb(vector unsigned int __a, vector signed int __b) {
6806 return (vector unsigned int)__builtin_s390_vslb(
6807 (vector unsigned char)__a, (vector unsigned char)__b);
6808 }
6809
6810 static inline __ATTRS_o_ai vector unsigned int
6811 vec_slb(vector unsigned int __a, vector unsigned int __b) {
6812 return (vector unsigned int)__builtin_s390_vslb(
6813 (vector unsigned char)__a, (vector unsigned char)__b);
6814 }
6815
6816 static inline __ATTRS_o_ai vector signed long long
6817 vec_slb(vector signed long long __a, vector signed long long __b) {
6818 return (vector signed long long)__builtin_s390_vslb(
6819 (vector unsigned char)__a, (vector unsigned char)__b);
6820 }
6821
6822 static inline __ATTRS_o_ai vector signed long long
6823 vec_slb(vector signed long long __a, vector unsigned long long __b) {
6824 return (vector signed long long)__builtin_s390_vslb(
6825 (vector unsigned char)__a, (vector unsigned char)__b);
6826 }
6827
6828 static inline __ATTRS_o_ai vector unsigned long long
6829 vec_slb(vector unsigned long long __a, vector signed long long __b) {
6830 return (vector unsigned long long)__builtin_s390_vslb(
6831 (vector unsigned char)__a, (vector unsigned char)__b);
6832 }
6833
6834 static inline __ATTRS_o_ai vector unsigned long long
6835 vec_slb(vector unsigned long long __a, vector unsigned long long __b) {
6836 return (vector unsigned long long)__builtin_s390_vslb(
6837 (vector unsigned char)__a, (vector unsigned char)__b);
6838 }
6839
6840 #if __ARCH__ >= 12
6841 static inline __ATTRS_o_ai vector float
6842 vec_slb(vector float __a, vector signed int __b) {
6843 return (vector float)__builtin_s390_vslb(
6844 (vector unsigned char)__a, (vector unsigned char)__b);
6845 }
6846
6847 static inline __ATTRS_o_ai vector float
6848 vec_slb(vector float __a, vector unsigned int __b) {
6849 return (vector float)__builtin_s390_vslb(
6850 (vector unsigned char)__a, (vector unsigned char)__b);
6851 }
6852 #endif
6853
6854 static inline __ATTRS_o_ai vector double
6855 vec_slb(vector double __a, vector signed long long __b) {
6856 return (vector double)__builtin_s390_vslb(
6857 (vector unsigned char)__a, (vector unsigned char)__b);
6858 }
6859
6860 static inline __ATTRS_o_ai vector double
6861 vec_slb(vector double __a, vector unsigned long long __b) {
6862 return (vector double)__builtin_s390_vslb(
6863 (vector unsigned char)__a, (vector unsigned char)__b);
6864 }
6865
6866 /*-- vec_sld ----------------------------------------------------------------*/
6867
6868 extern __ATTRS_o vector signed char
6869 vec_sld(vector signed char __a, vector signed char __b, int __c)
6870 __constant_range(__c, 0, 15);
6871
6872 extern __ATTRS_o vector bool char
6873 vec_sld(vector bool char __a, vector bool char __b, int __c)
6874 __constant_range(__c, 0, 15);
6875
6876 extern __ATTRS_o vector unsigned char
6877 vec_sld(vector unsigned char __a, vector unsigned char __b, int __c)
6878 __constant_range(__c, 0, 15);
6879
6880 extern __ATTRS_o vector signed short
6881 vec_sld(vector signed short __a, vector signed short __b, int __c)
6882 __constant_range(__c, 0, 15);
6883
6884 extern __ATTRS_o vector bool short
6885 vec_sld(vector bool short __a, vector bool short __b, int __c)
6886 __constant_range(__c, 0, 15);
6887
6888 extern __ATTRS_o vector unsigned short
6889 vec_sld(vector unsigned short __a, vector unsigned short __b, int __c)
6890 __constant_range(__c, 0, 15);
6891
6892 extern __ATTRS_o vector signed int
6893 vec_sld(vector signed int __a, vector signed int __b, int __c)
6894 __constant_range(__c, 0, 15);
6895
6896 extern __ATTRS_o vector bool int
6897 vec_sld(vector bool int __a, vector bool int __b, int __c)
6898 __constant_range(__c, 0, 15);
6899
6900 extern __ATTRS_o vector unsigned int
6901 vec_sld(vector unsigned int __a, vector unsigned int __b, int __c)
6902 __constant_range(__c, 0, 15);
6903
6904 extern __ATTRS_o vector signed long long
6905 vec_sld(vector signed long long __a, vector signed long long __b, int __c)
6906 __constant_range(__c, 0, 15);
6907
6908 extern __ATTRS_o vector bool long long
6909 vec_sld(vector bool long long __a, vector bool long long __b, int __c)
6910 __constant_range(__c, 0, 15);
6911
6912 extern __ATTRS_o vector unsigned long long
6913 vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c)
6914 __constant_range(__c, 0, 15);
6915
6916 #if __ARCH__ >= 12
6917 extern __ATTRS_o vector float
6918 vec_sld(vector float __a, vector float __b, int __c)
6919 __constant_range(__c, 0, 15);
6920 #endif
6921
6922 extern __ATTRS_o vector double
6923 vec_sld(vector double __a, vector double __b, int __c)
6924 __constant_range(__c, 0, 15);
6925
6926 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
6927 __builtin_s390_vsldb((vector unsigned char)(X), \
6928 (vector unsigned char)(Y), (Z)))
6929
6930 /*-- vec_sldw ---------------------------------------------------------------*/
6931
6932 extern __ATTRS_o vector signed char
6933 vec_sldw(vector signed char __a, vector signed char __b, int __c)
6934 __constant_range(__c, 0, 3);
6935
6936 extern __ATTRS_o vector unsigned char
6937 vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c)
6938 __constant_range(__c, 0, 3);
6939
6940 extern __ATTRS_o vector signed short
6941 vec_sldw(vector signed short __a, vector signed short __b, int __c)
6942 __constant_range(__c, 0, 3);
6943
6944 extern __ATTRS_o vector unsigned short
6945 vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c)
6946 __constant_range(__c, 0, 3);
6947
6948 extern __ATTRS_o vector signed int
6949 vec_sldw(vector signed int __a, vector signed int __b, int __c)
6950 __constant_range(__c, 0, 3);
6951
6952 extern __ATTRS_o vector unsigned int
6953 vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c)
6954 __constant_range(__c, 0, 3);
6955
6956 extern __ATTRS_o vector signed long long
6957 vec_sldw(vector signed long long __a, vector signed long long __b, int __c)
6958 __constant_range(__c, 0, 3);
6959
6960 extern __ATTRS_o vector unsigned long long
6961 vec_sldw(vector unsigned long long __a, vector unsigned long long __b, int __c)
6962 __constant_range(__c, 0, 3);
6963
6964 // This prototype is deprecated.
6965 extern __ATTRS_o vector double
6966 vec_sldw(vector double __a, vector double __b, int __c)
6967 __constant_range(__c, 0, 3);
6968
6969 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
6970 __builtin_s390_vsldb((vector unsigned char)(X), \
6971 (vector unsigned char)(Y), (Z) * 4))
6972
6973 /*-- vec_sldb ---------------------------------------------------------------*/
6974
6975 #if __ARCH__ >= 13
6976
6977 extern __ATTRS_o vector signed char
6978 vec_sldb(vector signed char __a, vector signed char __b, int __c)
6979 __constant_range(__c, 0, 7);
6980
6981 extern __ATTRS_o vector unsigned char
6982 vec_sldb(vector unsigned char __a, vector unsigned char __b, int __c)
6983 __constant_range(__c, 0, 7);
6984
6985 extern __ATTRS_o vector signed short
6986 vec_sldb(vector signed short __a, vector signed short __b, int __c)
6987 __constant_range(__c, 0, 7);
6988
6989 extern __ATTRS_o vector unsigned short
6990 vec_sldb(vector unsigned short __a, vector unsigned short __b, int __c)
6991 __constant_range(__c, 0, 7);
6992
6993 extern __ATTRS_o vector signed int
6994 vec_sldb(vector signed int __a, vector signed int __b, int __c)
6995 __constant_range(__c, 0, 7);
6996
6997 extern __ATTRS_o vector unsigned int
6998 vec_sldb(vector unsigned int __a, vector unsigned int __b, int __c)
6999 __constant_range(__c, 0, 7);
7000
7001 extern __ATTRS_o vector signed long long
7002 vec_sldb(vector signed long long __a, vector signed long long __b, int __c)
7003 __constant_range(__c, 0, 7);
7004
7005 extern __ATTRS_o vector unsigned long long
7006 vec_sldb(vector unsigned long long __a, vector unsigned long long __b, int __c)
7007 __constant_range(__c, 0, 7);
7008
7009 extern __ATTRS_o vector float
7010 vec_sldb(vector float __a, vector float __b, int __c)
7011 __constant_range(__c, 0, 7);
7012
7013 extern __ATTRS_o vector double
7014 vec_sldb(vector double __a, vector double __b, int __c)
7015 __constant_range(__c, 0, 7);
7016
7017 #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
7018 __builtin_s390_vsld((vector unsigned char)(X), \
7019 (vector unsigned char)(Y), (Z)))
7020
7021 #endif
7022
7023 /*-- vec_sral ---------------------------------------------------------------*/
7024
7025 static inline __ATTRS_o_ai vector signed char
7026 vec_sral(vector signed char __a, vector unsigned char __b) {
7027 return (vector signed char)__builtin_s390_vsra(
7028 (vector unsigned char)__a, __b);
7029 }
7030
7031 // This prototype is deprecated.
7032 static inline __ATTRS_o_ai vector signed char
7033 vec_sral(vector signed char __a, vector unsigned short __b) {
7034 return (vector signed char)__builtin_s390_vsra(
7035 (vector unsigned char)__a, (vector unsigned char)__b);
7036 }
7037
7038 // This prototype is deprecated.
7039 static inline __ATTRS_o_ai vector signed char
7040 vec_sral(vector signed char __a, vector unsigned int __b) {
7041 return (vector signed char)__builtin_s390_vsra(
7042 (vector unsigned char)__a, (vector unsigned char)__b);
7043 }
7044
7045 // This prototype is deprecated.
7046 static inline __ATTRS_o_ai vector bool char
7047 vec_sral(vector bool char __a, vector unsigned char __b) {
7048 return (vector bool char)__builtin_s390_vsra(
7049 (vector unsigned char)__a, __b);
7050 }
7051
7052 // This prototype is deprecated.
7053 static inline __ATTRS_o_ai vector bool char
7054 vec_sral(vector bool char __a, vector unsigned short __b) {
7055 return (vector bool char)__builtin_s390_vsra(
7056 (vector unsigned char)__a, (vector unsigned char)__b);
7057 }
7058
7059 // This prototype is deprecated.
7060 static inline __ATTRS_o_ai vector bool char
7061 vec_sral(vector bool char __a, vector unsigned int __b) {
7062 return (vector bool char)__builtin_s390_vsra(
7063 (vector unsigned char)__a, (vector unsigned char)__b);
7064 }
7065
7066 static inline __ATTRS_o_ai vector unsigned char
7067 vec_sral(vector unsigned char __a, vector unsigned char __b) {
7068 return __builtin_s390_vsra(__a, __b);
7069 }
7070
7071 // This prototype is deprecated.
7072 static inline __ATTRS_o_ai vector unsigned char
7073 vec_sral(vector unsigned char __a, vector unsigned short __b) {
7074 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
7075 }
7076
7077 // This prototype is deprecated.
7078 static inline __ATTRS_o_ai vector unsigned char
7079 vec_sral(vector unsigned char __a, vector unsigned int __b) {
7080 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
7081 }
7082
7083 static inline __ATTRS_o_ai vector signed short
7084 vec_sral(vector signed short __a, vector unsigned char __b) {
7085 return (vector signed short)__builtin_s390_vsra(
7086 (vector unsigned char)__a, __b);
7087 }
7088
7089 // This prototype is deprecated.
7090 static inline __ATTRS_o_ai vector signed short
7091 vec_sral(vector signed short __a, vector unsigned short __b) {
7092 return (vector signed short)__builtin_s390_vsra(
7093 (vector unsigned char)__a, (vector unsigned char)__b);
7094 }
7095
7096 // This prototype is deprecated.
7097 static inline __ATTRS_o_ai vector signed short
7098 vec_sral(vector signed short __a, vector unsigned int __b) {
7099 return (vector signed short)__builtin_s390_vsra(
7100 (vector unsigned char)__a, (vector unsigned char)__b);
7101 }
7102
7103 // This prototype is deprecated.
7104 static inline __ATTRS_o_ai vector bool short
7105 vec_sral(vector bool short __a, vector unsigned char __b) {
7106 return (vector bool short)__builtin_s390_vsra(
7107 (vector unsigned char)__a, __b);
7108 }
7109
7110 // This prototype is deprecated.
7111 static inline __ATTRS_o_ai vector bool short
7112 vec_sral(vector bool short __a, vector unsigned short __b) {
7113 return (vector bool short)__builtin_s390_vsra(
7114 (vector unsigned char)__a, (vector unsigned char)__b);
7115 }
7116
7117 // This prototype is deprecated.
7118 static inline __ATTRS_o_ai vector bool short
7119 vec_sral(vector bool short __a, vector unsigned int __b) {
7120 return (vector bool short)__builtin_s390_vsra(
7121 (vector unsigned char)__a, (vector unsigned char)__b);
7122 }
7123
7124 static inline __ATTRS_o_ai vector unsigned short
7125 vec_sral(vector unsigned short __a, vector unsigned char __b) {
7126 return (vector unsigned short)__builtin_s390_vsra(
7127 (vector unsigned char)__a, __b);
7128 }
7129
7130 // This prototype is deprecated.
7131 static inline __ATTRS_o_ai vector unsigned short
7132 vec_sral(vector unsigned short __a, vector unsigned short __b) {
7133 return (vector unsigned short)__builtin_s390_vsra(
7134 (vector unsigned char)__a, (vector unsigned char)__b);
7135 }
7136
7137 // This prototype is deprecated.
7138 static inline __ATTRS_o_ai vector unsigned short
7139 vec_sral(vector unsigned short __a, vector unsigned int __b) {
7140 return (vector unsigned short)__builtin_s390_vsra(
7141 (vector unsigned char)__a, (vector unsigned char)__b);
7142 }
7143
7144 static inline __ATTRS_o_ai vector signed int
7145 vec_sral(vector signed int __a, vector unsigned char __b) {
7146 return (vector signed int)__builtin_s390_vsra(
7147 (vector unsigned char)__a, __b);
7148 }
7149
7150 // This prototype is deprecated.
7151 static inline __ATTRS_o_ai vector signed int
7152 vec_sral(vector signed int __a, vector unsigned short __b) {
7153 return (vector signed int)__builtin_s390_vsra(
7154 (vector unsigned char)__a, (vector unsigned char)__b);
7155 }
7156
7157 // This prototype is deprecated.
7158 static inline __ATTRS_o_ai vector signed int
7159 vec_sral(vector signed int __a, vector unsigned int __b) {
7160 return (vector signed int)__builtin_s390_vsra(
7161 (vector unsigned char)__a, (vector unsigned char)__b);
7162 }
7163
7164 // This prototype is deprecated.
7165 static inline __ATTRS_o_ai vector bool int
7166 vec_sral(vector bool int __a, vector unsigned char __b) {
7167 return (vector bool int)__builtin_s390_vsra(
7168 (vector unsigned char)__a, __b);
7169 }
7170
7171 // This prototype is deprecated.
7172 static inline __ATTRS_o_ai vector bool int
7173 vec_sral(vector bool int __a, vector unsigned short __b) {
7174 return (vector bool int)__builtin_s390_vsra(
7175 (vector unsigned char)__a, (vector unsigned char)__b);
7176 }
7177
7178 // This prototype is deprecated.
7179 static inline __ATTRS_o_ai vector bool int
7180 vec_sral(vector bool int __a, vector unsigned int __b) {
7181 return (vector bool int)__builtin_s390_vsra(
7182 (vector unsigned char)__a, (vector unsigned char)__b);
7183 }
7184
7185 static inline __ATTRS_o_ai vector unsigned int
7186 vec_sral(vector unsigned int __a, vector unsigned char __b) {
7187 return (vector unsigned int)__builtin_s390_vsra(
7188 (vector unsigned char)__a, __b);
7189 }
7190
7191 // This prototype is deprecated.
7192 static inline __ATTRS_o_ai vector unsigned int
7193 vec_sral(vector unsigned int __a, vector unsigned short __b) {
7194 return (vector unsigned int)__builtin_s390_vsra(
7195 (vector unsigned char)__a, (vector unsigned char)__b);
7196 }
7197
7198 // This prototype is deprecated.
7199 static inline __ATTRS_o_ai vector unsigned int
7200 vec_sral(vector unsigned int __a, vector unsigned int __b) {
7201 return (vector unsigned int)__builtin_s390_vsra(
7202 (vector unsigned char)__a, (vector unsigned char)__b);
7203 }
7204
7205 static inline __ATTRS_o_ai vector signed long long
7206 vec_sral(vector signed long long __a, vector unsigned char __b) {
7207 return (vector signed long long)__builtin_s390_vsra(
7208 (vector unsigned char)__a, __b);
7209 }
7210
7211 // This prototype is deprecated.
7212 static inline __ATTRS_o_ai vector signed long long
7213 vec_sral(vector signed long long __a, vector unsigned short __b) {
7214 return (vector signed long long)__builtin_s390_vsra(
7215 (vector unsigned char)__a, (vector unsigned char)__b);
7216 }
7217
7218 // This prototype is deprecated.
7219 static inline __ATTRS_o_ai vector signed long long
7220 vec_sral(vector signed long long __a, vector unsigned int __b) {
7221 return (vector signed long long)__builtin_s390_vsra(
7222 (vector unsigned char)__a, (vector unsigned char)__b);
7223 }
7224
7225 // This prototype is deprecated.
7226 static inline __ATTRS_o_ai vector bool long long
7227 vec_sral(vector bool long long __a, vector unsigned char __b) {
7228 return (vector bool long long)__builtin_s390_vsra(
7229 (vector unsigned char)__a, __b);
7230 }
7231
7232 // This prototype is deprecated.
7233 static inline __ATTRS_o_ai vector bool long long
7234 vec_sral(vector bool long long __a, vector unsigned short __b) {
7235 return (vector bool long long)__builtin_s390_vsra(
7236 (vector unsigned char)__a, (vector unsigned char)__b);
7237 }
7238
7239 // This prototype is deprecated.
7240 static inline __ATTRS_o_ai vector bool long long
7241 vec_sral(vector bool long long __a, vector unsigned int __b) {
7242 return (vector bool long long)__builtin_s390_vsra(
7243 (vector unsigned char)__a, (vector unsigned char)__b);
7244 }
7245
7246 static inline __ATTRS_o_ai vector unsigned long long
7247 vec_sral(vector unsigned long long __a, vector unsigned char __b) {
7248 return (vector unsigned long long)__builtin_s390_vsra(
7249 (vector unsigned char)__a, __b);
7250 }
7251
7252 // This prototype is deprecated.
7253 static inline __ATTRS_o_ai vector unsigned long long
7254 vec_sral(vector unsigned long long __a, vector unsigned short __b) {
7255 return (vector unsigned long long)__builtin_s390_vsra(
7256 (vector unsigned char)__a, (vector unsigned char)__b);
7257 }
7258
7259 // This prototype is deprecated.
7260 static inline __ATTRS_o_ai vector unsigned long long
7261 vec_sral(vector unsigned long long __a, vector unsigned int __b) {
7262 return (vector unsigned long long)__builtin_s390_vsra(
7263 (vector unsigned char)__a, (vector unsigned char)__b);
7264 }
7265
7266 /*-- vec_srab ---------------------------------------------------------------*/
7267
7268 static inline __ATTRS_o_ai vector signed char
7269 vec_srab(vector signed char __a, vector signed char __b) {
7270 return (vector signed char)__builtin_s390_vsrab(
7271 (vector unsigned char)__a, (vector unsigned char)__b);
7272 }
7273
7274 static inline __ATTRS_o_ai vector signed char
7275 vec_srab(vector signed char __a, vector unsigned char __b) {
7276 return (vector signed char)__builtin_s390_vsrab(
7277 (vector unsigned char)__a, __b);
7278 }
7279
7280 static inline __ATTRS_o_ai vector unsigned char
7281 vec_srab(vector unsigned char __a, vector signed char __b) {
7282 return __builtin_s390_vsrab(__a, (vector unsigned char)__b);
7283 }
7284
7285 static inline __ATTRS_o_ai vector unsigned char
7286 vec_srab(vector unsigned char __a, vector unsigned char __b) {
7287 return __builtin_s390_vsrab(__a, __b);
7288 }
7289
7290 static inline __ATTRS_o_ai vector signed short
7291 vec_srab(vector signed short __a, vector signed short __b) {
7292 return (vector signed short)__builtin_s390_vsrab(
7293 (vector unsigned char)__a, (vector unsigned char)__b);
7294 }
7295
7296 static inline __ATTRS_o_ai vector signed short
7297 vec_srab(vector signed short __a, vector unsigned short __b) {
7298 return (vector signed short)__builtin_s390_vsrab(
7299 (vector unsigned char)__a, (vector unsigned char)__b);
7300 }
7301
7302 static inline __ATTRS_o_ai vector unsigned short
7303 vec_srab(vector unsigned short __a, vector signed short __b) {
7304 return (vector unsigned short)__builtin_s390_vsrab(
7305 (vector unsigned char)__a, (vector unsigned char)__b);
7306 }
7307
7308 static inline __ATTRS_o_ai vector unsigned short
7309 vec_srab(vector unsigned short __a, vector unsigned short __b) {
7310 return (vector unsigned short)__builtin_s390_vsrab(
7311 (vector unsigned char)__a, (vector unsigned char)__b);
7312 }
7313
7314 static inline __ATTRS_o_ai vector signed int
7315 vec_srab(vector signed int __a, vector signed int __b) {
7316 return (vector signed int)__builtin_s390_vsrab(
7317 (vector unsigned char)__a, (vector unsigned char)__b);
7318 }
7319
7320 static inline __ATTRS_o_ai vector signed int
7321 vec_srab(vector signed int __a, vector unsigned int __b) {
7322 return (vector signed int)__builtin_s390_vsrab(
7323 (vector unsigned char)__a, (vector unsigned char)__b);
7324 }
7325
7326 static inline __ATTRS_o_ai vector unsigned int
7327 vec_srab(vector unsigned int __a, vector signed int __b) {
7328 return (vector unsigned int)__builtin_s390_vsrab(
7329 (vector unsigned char)__a, (vector unsigned char)__b);
7330 }
7331
7332 static inline __ATTRS_o_ai vector unsigned int
7333 vec_srab(vector unsigned int __a, vector unsigned int __b) {
7334 return (vector unsigned int)__builtin_s390_vsrab(
7335 (vector unsigned char)__a, (vector unsigned char)__b);
7336 }
7337
7338 static inline __ATTRS_o_ai vector signed long long
7339 vec_srab(vector signed long long __a, vector signed long long __b) {
7340 return (vector signed long long)__builtin_s390_vsrab(
7341 (vector unsigned char)__a, (vector unsigned char)__b);
7342 }
7343
7344 static inline __ATTRS_o_ai vector signed long long
7345 vec_srab(vector signed long long __a, vector unsigned long long __b) {
7346 return (vector signed long long)__builtin_s390_vsrab(
7347 (vector unsigned char)__a, (vector unsigned char)__b);
7348 }
7349
7350 static inline __ATTRS_o_ai vector unsigned long long
7351 vec_srab(vector unsigned long long __a, vector signed long long __b) {
7352 return (vector unsigned long long)__builtin_s390_vsrab(
7353 (vector unsigned char)__a, (vector unsigned char)__b);
7354 }
7355
7356 static inline __ATTRS_o_ai vector unsigned long long
7357 vec_srab(vector unsigned long long __a, vector unsigned long long __b) {
7358 return (vector unsigned long long)__builtin_s390_vsrab(
7359 (vector unsigned char)__a, (vector unsigned char)__b);
7360 }
7361
7362 #if __ARCH__ >= 12
7363 static inline __ATTRS_o_ai vector float
7364 vec_srab(vector float __a, vector signed int __b) {
7365 return (vector float)__builtin_s390_vsrab(
7366 (vector unsigned char)__a, (vector unsigned char)__b);
7367 }
7368
7369 static inline __ATTRS_o_ai vector float
7370 vec_srab(vector float __a, vector unsigned int __b) {
7371 return (vector float)__builtin_s390_vsrab(
7372 (vector unsigned char)__a, (vector unsigned char)__b);
7373 }
7374 #endif
7375
7376 static inline __ATTRS_o_ai vector double
7377 vec_srab(vector double __a, vector signed long long __b) {
7378 return (vector double)__builtin_s390_vsrab(
7379 (vector unsigned char)__a, (vector unsigned char)__b);
7380 }
7381
7382 static inline __ATTRS_o_ai vector double
7383 vec_srab(vector double __a, vector unsigned long long __b) {
7384 return (vector double)__builtin_s390_vsrab(
7385 (vector unsigned char)__a, (vector unsigned char)__b);
7386 }
7387
7388 /*-- vec_srl ----------------------------------------------------------------*/
7389
7390 static inline __ATTRS_o_ai vector signed char
7391 vec_srl(vector signed char __a, vector unsigned char __b) {
7392 return (vector signed char)__builtin_s390_vsrl(
7393 (vector unsigned char)__a, __b);
7394 }
7395
7396 // This prototype is deprecated.
7397 static inline __ATTRS_o_ai vector signed char
7398 vec_srl(vector signed char __a, vector unsigned short __b) {
7399 return (vector signed char)__builtin_s390_vsrl(
7400 (vector unsigned char)__a, (vector unsigned char)__b);
7401 }
7402
7403 // This prototype is deprecated.
7404 static inline __ATTRS_o_ai vector signed char
7405 vec_srl(vector signed char __a, vector unsigned int __b) {
7406 return (vector signed char)__builtin_s390_vsrl(
7407 (vector unsigned char)__a, (vector unsigned char)__b);
7408 }
7409
7410 // This prototype is deprecated.
7411 static inline __ATTRS_o_ai vector bool char
7412 vec_srl(vector bool char __a, vector unsigned char __b) {
7413 return (vector bool char)__builtin_s390_vsrl(
7414 (vector unsigned char)__a, __b);
7415 }
7416
7417 // This prototype is deprecated.
7418 static inline __ATTRS_o_ai vector bool char
7419 vec_srl(vector bool char __a, vector unsigned short __b) {
7420 return (vector bool char)__builtin_s390_vsrl(
7421 (vector unsigned char)__a, (vector unsigned char)__b);
7422 }
7423
7424 // This prototype is deprecated.
7425 static inline __ATTRS_o_ai vector bool char
7426 vec_srl(vector bool char __a, vector unsigned int __b) {
7427 return (vector bool char)__builtin_s390_vsrl(
7428 (vector unsigned char)__a, (vector unsigned char)__b);
7429 }
7430
7431 static inline __ATTRS_o_ai vector unsigned char
7432 vec_srl(vector unsigned char __a, vector unsigned char __b) {
7433 return __builtin_s390_vsrl(__a, __b);
7434 }
7435
7436 // This prototype is deprecated.
7437 static inline __ATTRS_o_ai vector unsigned char
7438 vec_srl(vector unsigned char __a, vector unsigned short __b) {
7439 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7440 }
7441
7442 // This prototype is deprecated.
7443 static inline __ATTRS_o_ai vector unsigned char
7444 vec_srl(vector unsigned char __a, vector unsigned int __b) {
7445 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7446 }
7447
7448 static inline __ATTRS_o_ai vector signed short
7449 vec_srl(vector signed short __a, vector unsigned char __b) {
7450 return (vector signed short)__builtin_s390_vsrl(
7451 (vector unsigned char)__a, __b);
7452 }
7453
7454 // This prototype is deprecated.
7455 static inline __ATTRS_o_ai vector signed short
7456 vec_srl(vector signed short __a, vector unsigned short __b) {
7457 return (vector signed short)__builtin_s390_vsrl(
7458 (vector unsigned char)__a, (vector unsigned char)__b);
7459 }
7460
7461 // This prototype is deprecated.
7462 static inline __ATTRS_o_ai vector signed short
7463 vec_srl(vector signed short __a, vector unsigned int __b) {
7464 return (vector signed short)__builtin_s390_vsrl(
7465 (vector unsigned char)__a, (vector unsigned char)__b);
7466 }
7467
7468 // This prototype is deprecated.
7469 static inline __ATTRS_o_ai vector bool short
7470 vec_srl(vector bool short __a, vector unsigned char __b) {
7471 return (vector bool short)__builtin_s390_vsrl(
7472 (vector unsigned char)__a, __b);
7473 }
7474
7475 // This prototype is deprecated.
7476 static inline __ATTRS_o_ai vector bool short
7477 vec_srl(vector bool short __a, vector unsigned short __b) {
7478 return (vector bool short)__builtin_s390_vsrl(
7479 (vector unsigned char)__a, (vector unsigned char)__b);
7480 }
7481
7482 // This prototype is deprecated.
7483 static inline __ATTRS_o_ai vector bool short
7484 vec_srl(vector bool short __a, vector unsigned int __b) {
7485 return (vector bool short)__builtin_s390_vsrl(
7486 (vector unsigned char)__a, (vector unsigned char)__b);
7487 }
7488
7489 static inline __ATTRS_o_ai vector unsigned short
7490 vec_srl(vector unsigned short __a, vector unsigned char __b) {
7491 return (vector unsigned short)__builtin_s390_vsrl(
7492 (vector unsigned char)__a, __b);
7493 }
7494
7495 // This prototype is deprecated.
7496 static inline __ATTRS_o_ai vector unsigned short
7497 vec_srl(vector unsigned short __a, vector unsigned short __b) {
7498 return (vector unsigned short)__builtin_s390_vsrl(
7499 (vector unsigned char)__a, (vector unsigned char)__b);
7500 }
7501
7502 // This prototype is deprecated.
7503 static inline __ATTRS_o_ai vector unsigned short
7504 vec_srl(vector unsigned short __a, vector unsigned int __b) {
7505 return (vector unsigned short)__builtin_s390_vsrl(
7506 (vector unsigned char)__a, (vector unsigned char)__b);
7507 }
7508
7509 static inline __ATTRS_o_ai vector signed int
7510 vec_srl(vector signed int __a, vector unsigned char __b) {
7511 return (vector signed int)__builtin_s390_vsrl(
7512 (vector unsigned char)__a, __b);
7513 }
7514
7515 // This prototype is deprecated.
7516 static inline __ATTRS_o_ai vector signed int
7517 vec_srl(vector signed int __a, vector unsigned short __b) {
7518 return (vector signed int)__builtin_s390_vsrl(
7519 (vector unsigned char)__a, (vector unsigned char)__b);
7520 }
7521
7522 // This prototype is deprecated.
7523 static inline __ATTRS_o_ai vector signed int
7524 vec_srl(vector signed int __a, vector unsigned int __b) {
7525 return (vector signed int)__builtin_s390_vsrl(
7526 (vector unsigned char)__a, (vector unsigned char)__b);
7527 }
7528
7529 // This prototype is deprecated.
7530 static inline __ATTRS_o_ai vector bool int
7531 vec_srl(vector bool int __a, vector unsigned char __b) {
7532 return (vector bool int)__builtin_s390_vsrl(
7533 (vector unsigned char)__a, __b);
7534 }
7535
7536 // This prototype is deprecated.
7537 static inline __ATTRS_o_ai vector bool int
7538 vec_srl(vector bool int __a, vector unsigned short __b) {
7539 return (vector bool int)__builtin_s390_vsrl(
7540 (vector unsigned char)__a, (vector unsigned char)__b);
7541 }
7542
7543 // This prototype is deprecated.
7544 static inline __ATTRS_o_ai vector bool int
7545 vec_srl(vector bool int __a, vector unsigned int __b) {
7546 return (vector bool int)__builtin_s390_vsrl(
7547 (vector unsigned char)__a, (vector unsigned char)__b);
7548 }
7549
7550 static inline __ATTRS_o_ai vector unsigned int
7551 vec_srl(vector unsigned int __a, vector unsigned char __b) {
7552 return (vector unsigned int)__builtin_s390_vsrl(
7553 (vector unsigned char)__a, __b);
7554 }
7555
7556 // This prototype is deprecated.
7557 static inline __ATTRS_o_ai vector unsigned int
7558 vec_srl(vector unsigned int __a, vector unsigned short __b) {
7559 return (vector unsigned int)__builtin_s390_vsrl(
7560 (vector unsigned char)__a, (vector unsigned char)__b);
7561 }
7562
7563 // This prototype is deprecated.
7564 static inline __ATTRS_o_ai vector unsigned int
7565 vec_srl(vector unsigned int __a, vector unsigned int __b) {
7566 return (vector unsigned int)__builtin_s390_vsrl(
7567 (vector unsigned char)__a, (vector unsigned char)__b);
7568 }
7569
7570 static inline __ATTRS_o_ai vector signed long long
7571 vec_srl(vector signed long long __a, vector unsigned char __b) {
7572 return (vector signed long long)__builtin_s390_vsrl(
7573 (vector unsigned char)__a, __b);
7574 }
7575
7576 // This prototype is deprecated.
7577 static inline __ATTRS_o_ai vector signed long long
7578 vec_srl(vector signed long long __a, vector unsigned short __b) {
7579 return (vector signed long long)__builtin_s390_vsrl(
7580 (vector unsigned char)__a, (vector unsigned char)__b);
7581 }
7582
7583 // This prototype is deprecated.
7584 static inline __ATTRS_o_ai vector signed long long
7585 vec_srl(vector signed long long __a, vector unsigned int __b) {
7586 return (vector signed long long)__builtin_s390_vsrl(
7587 (vector unsigned char)__a, (vector unsigned char)__b);
7588 }
7589
7590 // This prototype is deprecated.
7591 static inline __ATTRS_o_ai vector bool long long
7592 vec_srl(vector bool long long __a, vector unsigned char __b) {
7593 return (vector bool long long)__builtin_s390_vsrl(
7594 (vector unsigned char)__a, __b);
7595 }
7596
7597 // This prototype is deprecated.
7598 static inline __ATTRS_o_ai vector bool long long
7599 vec_srl(vector bool long long __a, vector unsigned short __b) {
7600 return (vector bool long long)__builtin_s390_vsrl(
7601 (vector unsigned char)__a, (vector unsigned char)__b);
7602 }
7603
7604 // This prototype is deprecated.
7605 static inline __ATTRS_o_ai vector bool long long
7606 vec_srl(vector bool long long __a, vector unsigned int __b) {
7607 return (vector bool long long)__builtin_s390_vsrl(
7608 (vector unsigned char)__a, (vector unsigned char)__b);
7609 }
7610
7611 static inline __ATTRS_o_ai vector unsigned long long
7612 vec_srl(vector unsigned long long __a, vector unsigned char __b) {
7613 return (vector unsigned long long)__builtin_s390_vsrl(
7614 (vector unsigned char)__a, __b);
7615 }
7616
7617 // This prototype is deprecated.
7618 static inline __ATTRS_o_ai vector unsigned long long
7619 vec_srl(vector unsigned long long __a, vector unsigned short __b) {
7620 return (vector unsigned long long)__builtin_s390_vsrl(
7621 (vector unsigned char)__a, (vector unsigned char)__b);
7622 }
7623
7624 // This prototype is deprecated.
7625 static inline __ATTRS_o_ai vector unsigned long long
7626 vec_srl(vector unsigned long long __a, vector unsigned int __b) {
7627 return (vector unsigned long long)__builtin_s390_vsrl(
7628 (vector unsigned char)__a, (vector unsigned char)__b);
7629 }
7630
7631 /*-- vec_srb ----------------------------------------------------------------*/
7632
7633 static inline __ATTRS_o_ai vector signed char
7634 vec_srb(vector signed char __a, vector signed char __b) {
7635 return (vector signed char)__builtin_s390_vsrlb(
7636 (vector unsigned char)__a, (vector unsigned char)__b);
7637 }
7638
7639 static inline __ATTRS_o_ai vector signed char
7640 vec_srb(vector signed char __a, vector unsigned char __b) {
7641 return (vector signed char)__builtin_s390_vsrlb(
7642 (vector unsigned char)__a, __b);
7643 }
7644
7645 static inline __ATTRS_o_ai vector unsigned char
7646 vec_srb(vector unsigned char __a, vector signed char __b) {
7647 return __builtin_s390_vsrlb(__a, (vector unsigned char)__b);
7648 }
7649
7650 static inline __ATTRS_o_ai vector unsigned char
7651 vec_srb(vector unsigned char __a, vector unsigned char __b) {
7652 return __builtin_s390_vsrlb(__a, __b);
7653 }
7654
7655 static inline __ATTRS_o_ai vector signed short
7656 vec_srb(vector signed short __a, vector signed short __b) {
7657 return (vector signed short)__builtin_s390_vsrlb(
7658 (vector unsigned char)__a, (vector unsigned char)__b);
7659 }
7660
7661 static inline __ATTRS_o_ai vector signed short
7662 vec_srb(vector signed short __a, vector unsigned short __b) {
7663 return (vector signed short)__builtin_s390_vsrlb(
7664 (vector unsigned char)__a, (vector unsigned char)__b);
7665 }
7666
7667 static inline __ATTRS_o_ai vector unsigned short
7668 vec_srb(vector unsigned short __a, vector signed short __b) {
7669 return (vector unsigned short)__builtin_s390_vsrlb(
7670 (vector unsigned char)__a, (vector unsigned char)__b);
7671 }
7672
7673 static inline __ATTRS_o_ai vector unsigned short
7674 vec_srb(vector unsigned short __a, vector unsigned short __b) {
7675 return (vector unsigned short)__builtin_s390_vsrlb(
7676 (vector unsigned char)__a, (vector unsigned char)__b);
7677 }
7678
7679 static inline __ATTRS_o_ai vector signed int
7680 vec_srb(vector signed int __a, vector signed int __b) {
7681 return (vector signed int)__builtin_s390_vsrlb(
7682 (vector unsigned char)__a, (vector unsigned char)__b);
7683 }
7684
7685 static inline __ATTRS_o_ai vector signed int
7686 vec_srb(vector signed int __a, vector unsigned int __b) {
7687 return (vector signed int)__builtin_s390_vsrlb(
7688 (vector unsigned char)__a, (vector unsigned char)__b);
7689 }
7690
7691 static inline __ATTRS_o_ai vector unsigned int
7692 vec_srb(vector unsigned int __a, vector signed int __b) {
7693 return (vector unsigned int)__builtin_s390_vsrlb(
7694 (vector unsigned char)__a, (vector unsigned char)__b);
7695 }
7696
7697 static inline __ATTRS_o_ai vector unsigned int
7698 vec_srb(vector unsigned int __a, vector unsigned int __b) {
7699 return (vector unsigned int)__builtin_s390_vsrlb(
7700 (vector unsigned char)__a, (vector unsigned char)__b);
7701 }
7702
7703 static inline __ATTRS_o_ai vector signed long long
7704 vec_srb(vector signed long long __a, vector signed long long __b) {
7705 return (vector signed long long)__builtin_s390_vsrlb(
7706 (vector unsigned char)__a, (vector unsigned char)__b);
7707 }
7708
7709 static inline __ATTRS_o_ai vector signed long long
7710 vec_srb(vector signed long long __a, vector unsigned long long __b) {
7711 return (vector signed long long)__builtin_s390_vsrlb(
7712 (vector unsigned char)__a, (vector unsigned char)__b);
7713 }
7714
7715 static inline __ATTRS_o_ai vector unsigned long long
7716 vec_srb(vector unsigned long long __a, vector signed long long __b) {
7717 return (vector unsigned long long)__builtin_s390_vsrlb(
7718 (vector unsigned char)__a, (vector unsigned char)__b);
7719 }
7720
7721 static inline __ATTRS_o_ai vector unsigned long long
7722 vec_srb(vector unsigned long long __a, vector unsigned long long __b) {
7723 return (vector unsigned long long)__builtin_s390_vsrlb(
7724 (vector unsigned char)__a, (vector unsigned char)__b);
7725 }
7726
7727 #if __ARCH__ >= 12
7728 static inline __ATTRS_o_ai vector float
7729 vec_srb(vector float __a, vector signed int __b) {
7730 return (vector float)__builtin_s390_vsrlb(
7731 (vector unsigned char)__a, (vector unsigned char)__b);
7732 }
7733
7734 static inline __ATTRS_o_ai vector float
7735 vec_srb(vector float __a, vector unsigned int __b) {
7736 return (vector float)__builtin_s390_vsrlb(
7737 (vector unsigned char)__a, (vector unsigned char)__b);
7738 }
7739 #endif
7740
7741 static inline __ATTRS_o_ai vector double
7742 vec_srb(vector double __a, vector signed long long __b) {
7743 return (vector double)__builtin_s390_vsrlb(
7744 (vector unsigned char)__a, (vector unsigned char)__b);
7745 }
7746
7747 static inline __ATTRS_o_ai vector double
7748 vec_srb(vector double __a, vector unsigned long long __b) {
7749 return (vector double)__builtin_s390_vsrlb(
7750 (vector unsigned char)__a, (vector unsigned char)__b);
7751 }
7752
7753 /*-- vec_srdb ---------------------------------------------------------------*/
7754
7755 #if __ARCH__ >= 13
7756
7757 extern __ATTRS_o vector signed char
7758 vec_srdb(vector signed char __a, vector signed char __b, int __c)
7759 __constant_range(__c, 0, 7);
7760
7761 extern __ATTRS_o vector unsigned char
7762 vec_srdb(vector unsigned char __a, vector unsigned char __b, int __c)
7763 __constant_range(__c, 0, 7);
7764
7765 extern __ATTRS_o vector signed short
7766 vec_srdb(vector signed short __a, vector signed short __b, int __c)
7767 __constant_range(__c, 0, 7);
7768
7769 extern __ATTRS_o vector unsigned short
7770 vec_srdb(vector unsigned short __a, vector unsigned short __b, int __c)
7771 __constant_range(__c, 0, 7);
7772
7773 extern __ATTRS_o vector signed int
7774 vec_srdb(vector signed int __a, vector signed int __b, int __c)
7775 __constant_range(__c, 0, 7);
7776
7777 extern __ATTRS_o vector unsigned int
7778 vec_srdb(vector unsigned int __a, vector unsigned int __b, int __c)
7779 __constant_range(__c, 0, 7);
7780
7781 extern __ATTRS_o vector signed long long
7782 vec_srdb(vector signed long long __a, vector signed long long __b, int __c)
7783 __constant_range(__c, 0, 7);
7784
7785 extern __ATTRS_o vector unsigned long long
7786 vec_srdb(vector unsigned long long __a, vector unsigned long long __b, int __c)
7787 __constant_range(__c, 0, 7);
7788
7789 extern __ATTRS_o vector float
7790 vec_srdb(vector float __a, vector float __b, int __c)
7791 __constant_range(__c, 0, 7);
7792
7793 extern __ATTRS_o vector double
7794 vec_srdb(vector double __a, vector double __b, int __c)
7795 __constant_range(__c, 0, 7);
7796
7797 #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
7798 __builtin_s390_vsrd((vector unsigned char)(X), \
7799 (vector unsigned char)(Y), (Z)))
7800
7801 #endif
7802
7803 /*-- vec_abs ----------------------------------------------------------------*/
7804
7805 static inline __ATTRS_o_ai vector signed char
7806 vec_abs(vector signed char __a) {
7807 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0));
7808 }
7809
7810 static inline __ATTRS_o_ai vector signed short
7811 vec_abs(vector signed short __a) {
7812 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0));
7813 }
7814
7815 static inline __ATTRS_o_ai vector signed int
7816 vec_abs(vector signed int __a) {
7817 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0));
7818 }
7819
7820 static inline __ATTRS_o_ai vector signed long long
7821 vec_abs(vector signed long long __a) {
7822 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed long long)0));
7823 }
7824
7825 #if __ARCH__ >= 12
7826 static inline __ATTRS_o_ai vector float
7827 vec_abs(vector float __a) {
7828 return __builtin_s390_vflpsb(__a);
7829 }
7830 #endif
7831
7832 static inline __ATTRS_o_ai vector double
7833 vec_abs(vector double __a) {
7834 return __builtin_s390_vflpdb(__a);
7835 }
7836
7837 /*-- vec_nabs ---------------------------------------------------------------*/
7838
7839 #if __ARCH__ >= 12
7840 static inline __ATTRS_o_ai vector float
7841 vec_nabs(vector float __a) {
7842 return __builtin_s390_vflnsb(__a);
7843 }
7844 #endif
7845
7846 static inline __ATTRS_o_ai vector double
7847 vec_nabs(vector double __a) {
7848 return __builtin_s390_vflndb(__a);
7849 }
7850
7851 /*-- vec_max ----------------------------------------------------------------*/
7852
7853 static inline __ATTRS_o_ai vector signed char
7854 vec_max(vector signed char __a, vector signed char __b) {
7855 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7856 }
7857
7858 // This prototype is deprecated.
7859 static inline __ATTRS_o_ai vector signed char
7860 vec_max(vector signed char __a, vector bool char __b) {
7861 vector signed char __bc = (vector signed char)__b;
7862 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7863 }
7864
7865 // This prototype is deprecated.
7866 static inline __ATTRS_o_ai vector signed char
7867 vec_max(vector bool char __a, vector signed char __b) {
7868 vector signed char __ac = (vector signed char)__a;
7869 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7870 }
7871
7872 static inline __ATTRS_o_ai vector unsigned char
7873 vec_max(vector unsigned char __a, vector unsigned char __b) {
7874 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7875 }
7876
7877 // This prototype is deprecated.
7878 static inline __ATTRS_o_ai vector unsigned char
7879 vec_max(vector unsigned char __a, vector bool char __b) {
7880 vector unsigned char __bc = (vector unsigned char)__b;
7881 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7882 }
7883
7884 // This prototype is deprecated.
7885 static inline __ATTRS_o_ai vector unsigned char
7886 vec_max(vector bool char __a, vector unsigned char __b) {
7887 vector unsigned char __ac = (vector unsigned char)__a;
7888 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7889 }
7890
7891 static inline __ATTRS_o_ai vector signed short
7892 vec_max(vector signed short __a, vector signed short __b) {
7893 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7894 }
7895
7896 // This prototype is deprecated.
7897 static inline __ATTRS_o_ai vector signed short
7898 vec_max(vector signed short __a, vector bool short __b) {
7899 vector signed short __bc = (vector signed short)__b;
7900 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7901 }
7902
7903 // This prototype is deprecated.
7904 static inline __ATTRS_o_ai vector signed short
7905 vec_max(vector bool short __a, vector signed short __b) {
7906 vector signed short __ac = (vector signed short)__a;
7907 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7908 }
7909
7910 static inline __ATTRS_o_ai vector unsigned short
7911 vec_max(vector unsigned short __a, vector unsigned short __b) {
7912 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7913 }
7914
7915 // This prototype is deprecated.
7916 static inline __ATTRS_o_ai vector unsigned short
7917 vec_max(vector unsigned short __a, vector bool short __b) {
7918 vector unsigned short __bc = (vector unsigned short)__b;
7919 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7920 }
7921
7922 // This prototype is deprecated.
7923 static inline __ATTRS_o_ai vector unsigned short
7924 vec_max(vector bool short __a, vector unsigned short __b) {
7925 vector unsigned short __ac = (vector unsigned short)__a;
7926 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7927 }
7928
7929 static inline __ATTRS_o_ai vector signed int
7930 vec_max(vector signed int __a, vector signed int __b) {
7931 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7932 }
7933
7934 // This prototype is deprecated.
7935 static inline __ATTRS_o_ai vector signed int
7936 vec_max(vector signed int __a, vector bool int __b) {
7937 vector signed int __bc = (vector signed int)__b;
7938 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7939 }
7940
7941 // This prototype is deprecated.
7942 static inline __ATTRS_o_ai vector signed int
7943 vec_max(vector bool int __a, vector signed int __b) {
7944 vector signed int __ac = (vector signed int)__a;
7945 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7946 }
7947
7948 static inline __ATTRS_o_ai vector unsigned int
7949 vec_max(vector unsigned int __a, vector unsigned int __b) {
7950 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7951 }
7952
7953 // This prototype is deprecated.
7954 static inline __ATTRS_o_ai vector unsigned int
7955 vec_max(vector unsigned int __a, vector bool int __b) {
7956 vector unsigned int __bc = (vector unsigned int)__b;
7957 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7958 }
7959
7960 // This prototype is deprecated.
7961 static inline __ATTRS_o_ai vector unsigned int
7962 vec_max(vector bool int __a, vector unsigned int __b) {
7963 vector unsigned int __ac = (vector unsigned int)__a;
7964 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7965 }
7966
7967 static inline __ATTRS_o_ai vector signed long long
7968 vec_max(vector signed long long __a, vector signed long long __b) {
7969 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7970 }
7971
7972 // This prototype is deprecated.
7973 static inline __ATTRS_o_ai vector signed long long
7974 vec_max(vector signed long long __a, vector bool long long __b) {
7975 vector signed long long __bc = (vector signed long long)__b;
7976 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7977 }
7978
7979 // This prototype is deprecated.
7980 static inline __ATTRS_o_ai vector signed long long
7981 vec_max(vector bool long long __a, vector signed long long __b) {
7982 vector signed long long __ac = (vector signed long long)__a;
7983 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7984 }
7985
7986 static inline __ATTRS_o_ai vector unsigned long long
7987 vec_max(vector unsigned long long __a, vector unsigned long long __b) {
7988 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7989 }
7990
7991 // This prototype is deprecated.
7992 static inline __ATTRS_o_ai vector unsigned long long
7993 vec_max(vector unsigned long long __a, vector bool long long __b) {
7994 vector unsigned long long __bc = (vector unsigned long long)__b;
7995 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7996 }
7997
7998 // This prototype is deprecated.
7999 static inline __ATTRS_o_ai vector unsigned long long
8000 vec_max(vector bool long long __a, vector unsigned long long __b) {
8001 vector unsigned long long __ac = (vector unsigned long long)__a;
8002 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8003 }
8004
8005 #if __ARCH__ >= 12
8006 static inline __ATTRS_o_ai vector float
8007 vec_max(vector float __a, vector float __b) {
8008 return __builtin_s390_vfmaxsb(__a, __b, 0);
8009 }
8010 #endif
8011
8012 static inline __ATTRS_o_ai vector double
8013 vec_max(vector double __a, vector double __b) {
8014 #if __ARCH__ >= 12
8015 return __builtin_s390_vfmaxdb(__a, __b, 0);
8016 #else
8017 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8018 #endif
8019 }
8020
8021 /*-- vec_min ----------------------------------------------------------------*/
8022
8023 static inline __ATTRS_o_ai vector signed char
8024 vec_min(vector signed char __a, vector signed char __b) {
8025 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8026 }
8027
8028 // This prototype is deprecated.
8029 static inline __ATTRS_o_ai vector signed char
8030 vec_min(vector signed char __a, vector bool char __b) {
8031 vector signed char __bc = (vector signed char)__b;
8032 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8033 }
8034
8035 // This prototype is deprecated.
8036 static inline __ATTRS_o_ai vector signed char
8037 vec_min(vector bool char __a, vector signed char __b) {
8038 vector signed char __ac = (vector signed char)__a;
8039 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8040 }
8041
8042 static inline __ATTRS_o_ai vector unsigned char
8043 vec_min(vector unsigned char __a, vector unsigned char __b) {
8044 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8045 }
8046
8047 // This prototype is deprecated.
8048 static inline __ATTRS_o_ai vector unsigned char
8049 vec_min(vector unsigned char __a, vector bool char __b) {
8050 vector unsigned char __bc = (vector unsigned char)__b;
8051 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8052 }
8053
8054 // This prototype is deprecated.
8055 static inline __ATTRS_o_ai vector unsigned char
8056 vec_min(vector bool char __a, vector unsigned char __b) {
8057 vector unsigned char __ac = (vector unsigned char)__a;
8058 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8059 }
8060
8061 static inline __ATTRS_o_ai vector signed short
8062 vec_min(vector signed short __a, vector signed short __b) {
8063 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8064 }
8065
8066 // This prototype is deprecated.
8067 static inline __ATTRS_o_ai vector signed short
8068 vec_min(vector signed short __a, vector bool short __b) {
8069 vector signed short __bc = (vector signed short)__b;
8070 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8071 }
8072
8073 // This prototype is deprecated.
8074 static inline __ATTRS_o_ai vector signed short
8075 vec_min(vector bool short __a, vector signed short __b) {
8076 vector signed short __ac = (vector signed short)__a;
8077 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8078 }
8079
8080 static inline __ATTRS_o_ai vector unsigned short
8081 vec_min(vector unsigned short __a, vector unsigned short __b) {
8082 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8083 }
8084
8085 // This prototype is deprecated.
8086 static inline __ATTRS_o_ai vector unsigned short
8087 vec_min(vector unsigned short __a, vector bool short __b) {
8088 vector unsigned short __bc = (vector unsigned short)__b;
8089 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8090 }
8091
8092 // This prototype is deprecated.
8093 static inline __ATTRS_o_ai vector unsigned short
8094 vec_min(vector bool short __a, vector unsigned short __b) {
8095 vector unsigned short __ac = (vector unsigned short)__a;
8096 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8097 }
8098
8099 static inline __ATTRS_o_ai vector signed int
8100 vec_min(vector signed int __a, vector signed int __b) {
8101 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8102 }
8103
8104 // This prototype is deprecated.
8105 static inline __ATTRS_o_ai vector signed int
8106 vec_min(vector signed int __a, vector bool int __b) {
8107 vector signed int __bc = (vector signed int)__b;
8108 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8109 }
8110
8111 // This prototype is deprecated.
8112 static inline __ATTRS_o_ai vector signed int
8113 vec_min(vector bool int __a, vector signed int __b) {
8114 vector signed int __ac = (vector signed int)__a;
8115 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8116 }
8117
8118 static inline __ATTRS_o_ai vector unsigned int
8119 vec_min(vector unsigned int __a, vector unsigned int __b) {
8120 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8121 }
8122
8123 // This prototype is deprecated.
8124 static inline __ATTRS_o_ai vector unsigned int
8125 vec_min(vector unsigned int __a, vector bool int __b) {
8126 vector unsigned int __bc = (vector unsigned int)__b;
8127 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8128 }
8129
8130 // This prototype is deprecated.
8131 static inline __ATTRS_o_ai vector unsigned int
8132 vec_min(vector bool int __a, vector unsigned int __b) {
8133 vector unsigned int __ac = (vector unsigned int)__a;
8134 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8135 }
8136
8137 static inline __ATTRS_o_ai vector signed long long
8138 vec_min(vector signed long long __a, vector signed long long __b) {
8139 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8140 }
8141
8142 // This prototype is deprecated.
8143 static inline __ATTRS_o_ai vector signed long long
8144 vec_min(vector signed long long __a, vector bool long long __b) {
8145 vector signed long long __bc = (vector signed long long)__b;
8146 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8147 }
8148
8149 // This prototype is deprecated.
8150 static inline __ATTRS_o_ai vector signed long long
8151 vec_min(vector bool long long __a, vector signed long long __b) {
8152 vector signed long long __ac = (vector signed long long)__a;
8153 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8154 }
8155
8156 static inline __ATTRS_o_ai vector unsigned long long
8157 vec_min(vector unsigned long long __a, vector unsigned long long __b) {
8158 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8159 }
8160
8161 // This prototype is deprecated.
8162 static inline __ATTRS_o_ai vector unsigned long long
8163 vec_min(vector unsigned long long __a, vector bool long long __b) {
8164 vector unsigned long long __bc = (vector unsigned long long)__b;
8165 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8166 }
8167
8168 // This prototype is deprecated.
8169 static inline __ATTRS_o_ai vector unsigned long long
8170 vec_min(vector bool long long __a, vector unsigned long long __b) {
8171 vector unsigned long long __ac = (vector unsigned long long)__a;
8172 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8173 }
8174
8175 #if __ARCH__ >= 12
8176 static inline __ATTRS_o_ai vector float
8177 vec_min(vector float __a, vector float __b) {
8178 return __builtin_s390_vfminsb(__a, __b, 0);
8179 }
8180 #endif
8181
8182 static inline __ATTRS_o_ai vector double
8183 vec_min(vector double __a, vector double __b) {
8184 #if __ARCH__ >= 12
8185 return __builtin_s390_vfmindb(__a, __b, 0);
8186 #else
8187 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8188 #endif
8189 }
8190
8191 /*-- vec_add_u128 -----------------------------------------------------------*/
8192
8193 static inline __ATTRS_ai vector unsigned char
8194 vec_add_u128(vector unsigned char __a, vector unsigned char __b) {
8195 return __builtin_s390_vaq(__a, __b);
8196 }
8197
8198 /*-- vec_addc ---------------------------------------------------------------*/
8199
8200 static inline __ATTRS_o_ai vector unsigned char
8201 vec_addc(vector unsigned char __a, vector unsigned char __b) {
8202 return __builtin_s390_vaccb(__a, __b);
8203 }
8204
8205 static inline __ATTRS_o_ai vector unsigned short
8206 vec_addc(vector unsigned short __a, vector unsigned short __b) {
8207 return __builtin_s390_vacch(__a, __b);
8208 }
8209
8210 static inline __ATTRS_o_ai vector unsigned int
8211 vec_addc(vector unsigned int __a, vector unsigned int __b) {
8212 return __builtin_s390_vaccf(__a, __b);
8213 }
8214
8215 static inline __ATTRS_o_ai vector unsigned long long
8216 vec_addc(vector unsigned long long __a, vector unsigned long long __b) {
8217 return __builtin_s390_vaccg(__a, __b);
8218 }
8219
8220 /*-- vec_addc_u128 ----------------------------------------------------------*/
8221
8222 static inline __ATTRS_ai vector unsigned char
8223 vec_addc_u128(vector unsigned char __a, vector unsigned char __b) {
8224 return __builtin_s390_vaccq(__a, __b);
8225 }
8226
8227 /*-- vec_adde_u128 ----------------------------------------------------------*/
8228
8229 static inline __ATTRS_ai vector unsigned char
8230 vec_adde_u128(vector unsigned char __a, vector unsigned char __b,
8231 vector unsigned char __c) {
8232 return __builtin_s390_vacq(__a, __b, __c);
8233 }
8234
8235 /*-- vec_addec_u128 ---------------------------------------------------------*/
8236
8237 static inline __ATTRS_ai vector unsigned char
8238 vec_addec_u128(vector unsigned char __a, vector unsigned char __b,
8239 vector unsigned char __c) {
8240 return __builtin_s390_vacccq(__a, __b, __c);
8241 }
8242
8243 /*-- vec_avg ----------------------------------------------------------------*/
8244
8245 static inline __ATTRS_o_ai vector signed char
8246 vec_avg(vector signed char __a, vector signed char __b) {
8247 return __builtin_s390_vavgb(__a, __b);
8248 }
8249
8250 static inline __ATTRS_o_ai vector signed short
8251 vec_avg(vector signed short __a, vector signed short __b) {
8252 return __builtin_s390_vavgh(__a, __b);
8253 }
8254
8255 static inline __ATTRS_o_ai vector signed int
8256 vec_avg(vector signed int __a, vector signed int __b) {
8257 return __builtin_s390_vavgf(__a, __b);
8258 }
8259
8260 static inline __ATTRS_o_ai vector signed long long
8261 vec_avg(vector signed long long __a, vector signed long long __b) {
8262 return __builtin_s390_vavgg(__a, __b);
8263 }
8264
8265 static inline __ATTRS_o_ai vector unsigned char
8266 vec_avg(vector unsigned char __a, vector unsigned char __b) {
8267 return __builtin_s390_vavglb(__a, __b);
8268 }
8269
8270 static inline __ATTRS_o_ai vector unsigned short
8271 vec_avg(vector unsigned short __a, vector unsigned short __b) {
8272 return __builtin_s390_vavglh(__a, __b);
8273 }
8274
8275 static inline __ATTRS_o_ai vector unsigned int
8276 vec_avg(vector unsigned int __a, vector unsigned int __b) {
8277 return __builtin_s390_vavglf(__a, __b);
8278 }
8279
8280 static inline __ATTRS_o_ai vector unsigned long long
8281 vec_avg(vector unsigned long long __a, vector unsigned long long __b) {
8282 return __builtin_s390_vavglg(__a, __b);
8283 }
8284
8285 /*-- vec_checksum -----------------------------------------------------------*/
8286
8287 static inline __ATTRS_ai vector unsigned int
8288 vec_checksum(vector unsigned int __a, vector unsigned int __b) {
8289 return __builtin_s390_vcksm(__a, __b);
8290 }
8291
8292 /*-- vec_gfmsum -------------------------------------------------------------*/
8293
8294 static inline __ATTRS_o_ai vector unsigned short
8295 vec_gfmsum(vector unsigned char __a, vector unsigned char __b) {
8296 return __builtin_s390_vgfmb(__a, __b);
8297 }
8298
8299 static inline __ATTRS_o_ai vector unsigned int
8300 vec_gfmsum(vector unsigned short __a, vector unsigned short __b) {
8301 return __builtin_s390_vgfmh(__a, __b);
8302 }
8303
8304 static inline __ATTRS_o_ai vector unsigned long long
8305 vec_gfmsum(vector unsigned int __a, vector unsigned int __b) {
8306 return __builtin_s390_vgfmf(__a, __b);
8307 }
8308
8309 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
8310
8311 static inline __ATTRS_o_ai vector unsigned char
8312 vec_gfmsum_128(vector unsigned long long __a, vector unsigned long long __b) {
8313 return __builtin_s390_vgfmg(__a, __b);
8314 }
8315
8316 /*-- vec_gfmsum_accum -------------------------------------------------------*/
8317
8318 static inline __ATTRS_o_ai vector unsigned short
8319 vec_gfmsum_accum(vector unsigned char __a, vector unsigned char __b,
8320 vector unsigned short __c) {
8321 return __builtin_s390_vgfmab(__a, __b, __c);
8322 }
8323
8324 static inline __ATTRS_o_ai vector unsigned int
8325 vec_gfmsum_accum(vector unsigned short __a, vector unsigned short __b,
8326 vector unsigned int __c) {
8327 return __builtin_s390_vgfmah(__a, __b, __c);
8328 }
8329
8330 static inline __ATTRS_o_ai vector unsigned long long
8331 vec_gfmsum_accum(vector unsigned int __a, vector unsigned int __b,
8332 vector unsigned long long __c) {
8333 return __builtin_s390_vgfmaf(__a, __b, __c);
8334 }
8335
8336 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
8337
8338 static inline __ATTRS_o_ai vector unsigned char
8339 vec_gfmsum_accum_128(vector unsigned long long __a,
8340 vector unsigned long long __b,
8341 vector unsigned char __c) {
8342 return __builtin_s390_vgfmag(__a, __b, __c);
8343 }
8344
8345 /*-- vec_mladd --------------------------------------------------------------*/
8346
8347 static inline __ATTRS_o_ai vector signed char
8348 vec_mladd(vector signed char __a, vector signed char __b,
8349 vector signed char __c) {
8350 return __a * __b + __c;
8351 }
8352
8353 static inline __ATTRS_o_ai vector signed char
8354 vec_mladd(vector unsigned char __a, vector signed char __b,
8355 vector signed char __c) {
8356 return (vector signed char)__a * __b + __c;
8357 }
8358
8359 static inline __ATTRS_o_ai vector signed char
8360 vec_mladd(vector signed char __a, vector unsigned char __b,
8361 vector unsigned char __c) {
8362 return __a * (vector signed char)__b + (vector signed char)__c;
8363 }
8364
8365 static inline __ATTRS_o_ai vector unsigned char
8366 vec_mladd(vector unsigned char __a, vector unsigned char __b,
8367 vector unsigned char __c) {
8368 return __a * __b + __c;
8369 }
8370
8371 static inline __ATTRS_o_ai vector signed short
8372 vec_mladd(vector signed short __a, vector signed short __b,
8373 vector signed short __c) {
8374 return __a * __b + __c;
8375 }
8376
8377 static inline __ATTRS_o_ai vector signed short
8378 vec_mladd(vector unsigned short __a, vector signed short __b,
8379 vector signed short __c) {
8380 return (vector signed short)__a * __b + __c;
8381 }
8382
8383 static inline __ATTRS_o_ai vector signed short
8384 vec_mladd(vector signed short __a, vector unsigned short __b,
8385 vector unsigned short __c) {
8386 return __a * (vector signed short)__b + (vector signed short)__c;
8387 }
8388
8389 static inline __ATTRS_o_ai vector unsigned short
8390 vec_mladd(vector unsigned short __a, vector unsigned short __b,
8391 vector unsigned short __c) {
8392 return __a * __b + __c;
8393 }
8394
8395 static inline __ATTRS_o_ai vector signed int
8396 vec_mladd(vector signed int __a, vector signed int __b,
8397 vector signed int __c) {
8398 return __a * __b + __c;
8399 }
8400
8401 static inline __ATTRS_o_ai vector signed int
8402 vec_mladd(vector unsigned int __a, vector signed int __b,
8403 vector signed int __c) {
8404 return (vector signed int)__a * __b + __c;
8405 }
8406
8407 static inline __ATTRS_o_ai vector signed int
8408 vec_mladd(vector signed int __a, vector unsigned int __b,
8409 vector unsigned int __c) {
8410 return __a * (vector signed int)__b + (vector signed int)__c;
8411 }
8412
8413 static inline __ATTRS_o_ai vector unsigned int
8414 vec_mladd(vector unsigned int __a, vector unsigned int __b,
8415 vector unsigned int __c) {
8416 return __a * __b + __c;
8417 }
8418
8419 /*-- vec_mhadd --------------------------------------------------------------*/
8420
8421 static inline __ATTRS_o_ai vector signed char
8422 vec_mhadd(vector signed char __a, vector signed char __b,
8423 vector signed char __c) {
8424 return __builtin_s390_vmahb(__a, __b, __c);
8425 }
8426
8427 static inline __ATTRS_o_ai vector unsigned char
8428 vec_mhadd(vector unsigned char __a, vector unsigned char __b,
8429 vector unsigned char __c) {
8430 return __builtin_s390_vmalhb(__a, __b, __c);
8431 }
8432
8433 static inline __ATTRS_o_ai vector signed short
8434 vec_mhadd(vector signed short __a, vector signed short __b,
8435 vector signed short __c) {
8436 return __builtin_s390_vmahh(__a, __b, __c);
8437 }
8438
8439 static inline __ATTRS_o_ai vector unsigned short
8440 vec_mhadd(vector unsigned short __a, vector unsigned short __b,
8441 vector unsigned short __c) {
8442 return __builtin_s390_vmalhh(__a, __b, __c);
8443 }
8444
8445 static inline __ATTRS_o_ai vector signed int
8446 vec_mhadd(vector signed int __a, vector signed int __b,
8447 vector signed int __c) {
8448 return __builtin_s390_vmahf(__a, __b, __c);
8449 }
8450
8451 static inline __ATTRS_o_ai vector unsigned int
8452 vec_mhadd(vector unsigned int __a, vector unsigned int __b,
8453 vector unsigned int __c) {
8454 return __builtin_s390_vmalhf(__a, __b, __c);
8455 }
8456
8457 /*-- vec_meadd --------------------------------------------------------------*/
8458
8459 static inline __ATTRS_o_ai vector signed short
8460 vec_meadd(vector signed char __a, vector signed char __b,
8461 vector signed short __c) {
8462 return __builtin_s390_vmaeb(__a, __b, __c);
8463 }
8464
8465 static inline __ATTRS_o_ai vector unsigned short
8466 vec_meadd(vector unsigned char __a, vector unsigned char __b,
8467 vector unsigned short __c) {
8468 return __builtin_s390_vmaleb(__a, __b, __c);
8469 }
8470
8471 static inline __ATTRS_o_ai vector signed int
8472 vec_meadd(vector signed short __a, vector signed short __b,
8473 vector signed int __c) {
8474 return __builtin_s390_vmaeh(__a, __b, __c);
8475 }
8476
8477 static inline __ATTRS_o_ai vector unsigned int
8478 vec_meadd(vector unsigned short __a, vector unsigned short __b,
8479 vector unsigned int __c) {
8480 return __builtin_s390_vmaleh(__a, __b, __c);
8481 }
8482
8483 static inline __ATTRS_o_ai vector signed long long
8484 vec_meadd(vector signed int __a, vector signed int __b,
8485 vector signed long long __c) {
8486 return __builtin_s390_vmaef(__a, __b, __c);
8487 }
8488
8489 static inline __ATTRS_o_ai vector unsigned long long
8490 vec_meadd(vector unsigned int __a, vector unsigned int __b,
8491 vector unsigned long long __c) {
8492 return __builtin_s390_vmalef(__a, __b, __c);
8493 }
8494
8495 /*-- vec_moadd --------------------------------------------------------------*/
8496
8497 static inline __ATTRS_o_ai vector signed short
8498 vec_moadd(vector signed char __a, vector signed char __b,
8499 vector signed short __c) {
8500 return __builtin_s390_vmaob(__a, __b, __c);
8501 }
8502
8503 static inline __ATTRS_o_ai vector unsigned short
8504 vec_moadd(vector unsigned char __a, vector unsigned char __b,
8505 vector unsigned short __c) {
8506 return __builtin_s390_vmalob(__a, __b, __c);
8507 }
8508
8509 static inline __ATTRS_o_ai vector signed int
8510 vec_moadd(vector signed short __a, vector signed short __b,
8511 vector signed int __c) {
8512 return __builtin_s390_vmaoh(__a, __b, __c);
8513 }
8514
8515 static inline __ATTRS_o_ai vector unsigned int
8516 vec_moadd(vector unsigned short __a, vector unsigned short __b,
8517 vector unsigned int __c) {
8518 return __builtin_s390_vmaloh(__a, __b, __c);
8519 }
8520
8521 static inline __ATTRS_o_ai vector signed long long
8522 vec_moadd(vector signed int __a, vector signed int __b,
8523 vector signed long long __c) {
8524 return __builtin_s390_vmaof(__a, __b, __c);
8525 }
8526
8527 static inline __ATTRS_o_ai vector unsigned long long
8528 vec_moadd(vector unsigned int __a, vector unsigned int __b,
8529 vector unsigned long long __c) {
8530 return __builtin_s390_vmalof(__a, __b, __c);
8531 }
8532
8533 /*-- vec_mulh ---------------------------------------------------------------*/
8534
8535 static inline __ATTRS_o_ai vector signed char
8536 vec_mulh(vector signed char __a, vector signed char __b) {
8537 return __builtin_s390_vmhb(__a, __b);
8538 }
8539
8540 static inline __ATTRS_o_ai vector unsigned char
8541 vec_mulh(vector unsigned char __a, vector unsigned char __b) {
8542 return __builtin_s390_vmlhb(__a, __b);
8543 }
8544
8545 static inline __ATTRS_o_ai vector signed short
8546 vec_mulh(vector signed short __a, vector signed short __b) {
8547 return __builtin_s390_vmhh(__a, __b);
8548 }
8549
8550 static inline __ATTRS_o_ai vector unsigned short
8551 vec_mulh(vector unsigned short __a, vector unsigned short __b) {
8552 return __builtin_s390_vmlhh(__a, __b);
8553 }
8554
8555 static inline __ATTRS_o_ai vector signed int
8556 vec_mulh(vector signed int __a, vector signed int __b) {
8557 return __builtin_s390_vmhf(__a, __b);
8558 }
8559
8560 static inline __ATTRS_o_ai vector unsigned int
8561 vec_mulh(vector unsigned int __a, vector unsigned int __b) {
8562 return __builtin_s390_vmlhf(__a, __b);
8563 }
8564
8565 /*-- vec_mule ---------------------------------------------------------------*/
8566
8567 static inline __ATTRS_o_ai vector signed short
8568 vec_mule(vector signed char __a, vector signed char __b) {
8569 return __builtin_s390_vmeb(__a, __b);
8570 }
8571
8572 static inline __ATTRS_o_ai vector unsigned short
8573 vec_mule(vector unsigned char __a, vector unsigned char __b) {
8574 return __builtin_s390_vmleb(__a, __b);
8575 }
8576
8577 static inline __ATTRS_o_ai vector signed int
8578 vec_mule(vector signed short __a, vector signed short __b) {
8579 return __builtin_s390_vmeh(__a, __b);
8580 }
8581
8582 static inline __ATTRS_o_ai vector unsigned int
8583 vec_mule(vector unsigned short __a, vector unsigned short __b) {
8584 return __builtin_s390_vmleh(__a, __b);
8585 }
8586
8587 static inline __ATTRS_o_ai vector signed long long
8588 vec_mule(vector signed int __a, vector signed int __b) {
8589 return __builtin_s390_vmef(__a, __b);
8590 }
8591
8592 static inline __ATTRS_o_ai vector unsigned long long
8593 vec_mule(vector unsigned int __a, vector unsigned int __b) {
8594 return __builtin_s390_vmlef(__a, __b);
8595 }
8596
8597 /*-- vec_mulo ---------------------------------------------------------------*/
8598
8599 static inline __ATTRS_o_ai vector signed short
8600 vec_mulo(vector signed char __a, vector signed char __b) {
8601 return __builtin_s390_vmob(__a, __b);
8602 }
8603
8604 static inline __ATTRS_o_ai vector unsigned short
8605 vec_mulo(vector unsigned char __a, vector unsigned char __b) {
8606 return __builtin_s390_vmlob(__a, __b);
8607 }
8608
8609 static inline __ATTRS_o_ai vector signed int
8610 vec_mulo(vector signed short __a, vector signed short __b) {
8611 return __builtin_s390_vmoh(__a, __b);
8612 }
8613
8614 static inline __ATTRS_o_ai vector unsigned int
8615 vec_mulo(vector unsigned short __a, vector unsigned short __b) {
8616 return __builtin_s390_vmloh(__a, __b);
8617 }
8618
8619 static inline __ATTRS_o_ai vector signed long long
8620 vec_mulo(vector signed int __a, vector signed int __b) {
8621 return __builtin_s390_vmof(__a, __b);
8622 }
8623
8624 static inline __ATTRS_o_ai vector unsigned long long
8625 vec_mulo(vector unsigned int __a, vector unsigned int __b) {
8626 return __builtin_s390_vmlof(__a, __b);
8627 }
8628
8629 /*-- vec_msum_u128 ----------------------------------------------------------*/
8630
8631 #if __ARCH__ >= 12
8632 #define vec_msum_u128(X, Y, Z, W) \
8633 ((vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W)));
8634 #endif
8635
8636 /*-- vec_sub_u128 -----------------------------------------------------------*/
8637
8638 static inline __ATTRS_ai vector unsigned char
8639 vec_sub_u128(vector unsigned char __a, vector unsigned char __b) {
8640 return __builtin_s390_vsq(__a, __b);
8641 }
8642
8643 /*-- vec_subc ---------------------------------------------------------------*/
8644
8645 static inline __ATTRS_o_ai vector unsigned char
8646 vec_subc(vector unsigned char __a, vector unsigned char __b) {
8647 return __builtin_s390_vscbib(__a, __b);
8648 }
8649
8650 static inline __ATTRS_o_ai vector unsigned short
8651 vec_subc(vector unsigned short __a, vector unsigned short __b) {
8652 return __builtin_s390_vscbih(__a, __b);
8653 }
8654
8655 static inline __ATTRS_o_ai vector unsigned int
8656 vec_subc(vector unsigned int __a, vector unsigned int __b) {
8657 return __builtin_s390_vscbif(__a, __b);
8658 }
8659
8660 static inline __ATTRS_o_ai vector unsigned long long
8661 vec_subc(vector unsigned long long __a, vector unsigned long long __b) {
8662 return __builtin_s390_vscbig(__a, __b);
8663 }
8664
8665 /*-- vec_subc_u128 ----------------------------------------------------------*/
8666
8667 static inline __ATTRS_ai vector unsigned char
8668 vec_subc_u128(vector unsigned char __a, vector unsigned char __b) {
8669 return __builtin_s390_vscbiq(__a, __b);
8670 }
8671
8672 /*-- vec_sube_u128 ----------------------------------------------------------*/
8673
8674 static inline __ATTRS_ai vector unsigned char
8675 vec_sube_u128(vector unsigned char __a, vector unsigned char __b,
8676 vector unsigned char __c) {
8677 return __builtin_s390_vsbiq(__a, __b, __c);
8678 }
8679
8680 /*-- vec_subec_u128 ---------------------------------------------------------*/
8681
8682 static inline __ATTRS_ai vector unsigned char
8683 vec_subec_u128(vector unsigned char __a, vector unsigned char __b,
8684 vector unsigned char __c) {
8685 return __builtin_s390_vsbcbiq(__a, __b, __c);
8686 }
8687
8688 /*-- vec_sum2 ---------------------------------------------------------------*/
8689
8690 static inline __ATTRS_o_ai vector unsigned long long
8691 vec_sum2(vector unsigned short __a, vector unsigned short __b) {
8692 return __builtin_s390_vsumgh(__a, __b);
8693 }
8694
8695 static inline __ATTRS_o_ai vector unsigned long long
8696 vec_sum2(vector unsigned int __a, vector unsigned int __b) {
8697 return __builtin_s390_vsumgf(__a, __b);
8698 }
8699
8700 /*-- vec_sum_u128 -----------------------------------------------------------*/
8701
8702 static inline __ATTRS_o_ai vector unsigned char
8703 vec_sum_u128(vector unsigned int __a, vector unsigned int __b) {
8704 return __builtin_s390_vsumqf(__a, __b);
8705 }
8706
8707 static inline __ATTRS_o_ai vector unsigned char
8708 vec_sum_u128(vector unsigned long long __a, vector unsigned long long __b) {
8709 return __builtin_s390_vsumqg(__a, __b);
8710 }
8711
8712 /*-- vec_sum4 ---------------------------------------------------------------*/
8713
8714 static inline __ATTRS_o_ai vector unsigned int
8715 vec_sum4(vector unsigned char __a, vector unsigned char __b) {
8716 return __builtin_s390_vsumb(__a, __b);
8717 }
8718
8719 static inline __ATTRS_o_ai vector unsigned int
8720 vec_sum4(vector unsigned short __a, vector unsigned short __b) {
8721 return __builtin_s390_vsumh(__a, __b);
8722 }
8723
8724 /*-- vec_test_mask ----------------------------------------------------------*/
8725
8726 static inline __ATTRS_o_ai int
8727 vec_test_mask(vector signed char __a, vector unsigned char __b) {
8728 return __builtin_s390_vtm((vector unsigned char)__a,
8729 (vector unsigned char)__b);
8730 }
8731
8732 static inline __ATTRS_o_ai int
8733 vec_test_mask(vector unsigned char __a, vector unsigned char __b) {
8734 return __builtin_s390_vtm(__a, __b);
8735 }
8736
8737 static inline __ATTRS_o_ai int
8738 vec_test_mask(vector signed short __a, vector unsigned short __b) {
8739 return __builtin_s390_vtm((vector unsigned char)__a,
8740 (vector unsigned char)__b);
8741 }
8742
8743 static inline __ATTRS_o_ai int
8744 vec_test_mask(vector unsigned short __a, vector unsigned short __b) {
8745 return __builtin_s390_vtm((vector unsigned char)__a,
8746 (vector unsigned char)__b);
8747 }
8748
8749 static inline __ATTRS_o_ai int
8750 vec_test_mask(vector signed int __a, vector unsigned int __b) {
8751 return __builtin_s390_vtm((vector unsigned char)__a,
8752 (vector unsigned char)__b);
8753 }
8754
8755 static inline __ATTRS_o_ai int
8756 vec_test_mask(vector unsigned int __a, vector unsigned int __b) {
8757 return __builtin_s390_vtm((vector unsigned char)__a,
8758 (vector unsigned char)__b);
8759 }
8760
8761 static inline __ATTRS_o_ai int
8762 vec_test_mask(vector signed long long __a, vector unsigned long long __b) {
8763 return __builtin_s390_vtm((vector unsigned char)__a,
8764 (vector unsigned char)__b);
8765 }
8766
8767 static inline __ATTRS_o_ai int
8768 vec_test_mask(vector unsigned long long __a, vector unsigned long long __b) {
8769 return __builtin_s390_vtm((vector unsigned char)__a,
8770 (vector unsigned char)__b);
8771 }
8772
8773 #if __ARCH__ >= 12
8774 static inline __ATTRS_o_ai int
8775 vec_test_mask(vector float __a, vector unsigned int __b) {
8776 return __builtin_s390_vtm((vector unsigned char)__a,
8777 (vector unsigned char)__b);
8778 }
8779 #endif
8780
8781 static inline __ATTRS_o_ai int
8782 vec_test_mask(vector double __a, vector unsigned long long __b) {
8783 return __builtin_s390_vtm((vector unsigned char)__a,
8784 (vector unsigned char)__b);
8785 }
8786
8787 /*-- vec_madd ---------------------------------------------------------------*/
8788
8789 #if __ARCH__ >= 12
8790 static inline __ATTRS_o_ai vector float
8791 vec_madd(vector float __a, vector float __b, vector float __c) {
8792 return __builtin_s390_vfmasb(__a, __b, __c);
8793 }
8794 #endif
8795
8796 static inline __ATTRS_o_ai vector double
8797 vec_madd(vector double __a, vector double __b, vector double __c) {
8798 return __builtin_s390_vfmadb(__a, __b, __c);
8799 }
8800
8801 /*-- vec_msub ---------------------------------------------------------------*/
8802
8803 #if __ARCH__ >= 12
8804 static inline __ATTRS_o_ai vector float
8805 vec_msub(vector float __a, vector float __b, vector float __c) {
8806 return __builtin_s390_vfmssb(__a, __b, __c);
8807 }
8808 #endif
8809
8810 static inline __ATTRS_o_ai vector double
8811 vec_msub(vector double __a, vector double __b, vector double __c) {
8812 return __builtin_s390_vfmsdb(__a, __b, __c);
8813 }
8814
8815 /*-- vec_nmadd ---------------------------------------------------------------*/
8816
8817 #if __ARCH__ >= 12
8818 static inline __ATTRS_o_ai vector float
8819 vec_nmadd(vector float __a, vector float __b, vector float __c) {
8820 return __builtin_s390_vfnmasb(__a, __b, __c);
8821 }
8822
8823 static inline __ATTRS_o_ai vector double
8824 vec_nmadd(vector double __a, vector double __b, vector double __c) {
8825 return __builtin_s390_vfnmadb(__a, __b, __c);
8826 }
8827 #endif
8828
8829 /*-- vec_nmsub ---------------------------------------------------------------*/
8830
8831 #if __ARCH__ >= 12
8832 static inline __ATTRS_o_ai vector float
8833 vec_nmsub(vector float __a, vector float __b, vector float __c) {
8834 return __builtin_s390_vfnmssb(__a, __b, __c);
8835 }
8836
8837 static inline __ATTRS_o_ai vector double
8838 vec_nmsub(vector double __a, vector double __b, vector double __c) {
8839 return __builtin_s390_vfnmsdb(__a, __b, __c);
8840 }
8841 #endif
8842
8843 /*-- vec_sqrt ---------------------------------------------------------------*/
8844
8845 #if __ARCH__ >= 12
8846 static inline __ATTRS_o_ai vector float
8847 vec_sqrt(vector float __a) {
8848 return __builtin_s390_vfsqsb(__a);
8849 }
8850 #endif
8851
8852 static inline __ATTRS_o_ai vector double
8853 vec_sqrt(vector double __a) {
8854 return __builtin_s390_vfsqdb(__a);
8855 }
8856
8857 /*-- vec_ld2f ---------------------------------------------------------------*/
8858
8859 // This prototype is deprecated.
8860 static inline __ATTRS_ai vector double
8861 vec_ld2f(const float *__ptr) {
8862 typedef float __v2f32 __attribute__((__vector_size__(8)));
8863 return __builtin_convertvector(*(const __v2f32 *)__ptr, vector double);
8864 }
8865
8866 /*-- vec_st2f ---------------------------------------------------------------*/
8867
8868 // This prototype is deprecated.
8869 static inline __ATTRS_ai void
8870 vec_st2f(vector double __a, float *__ptr) {
8871 typedef float __v2f32 __attribute__((__vector_size__(8)));
8872 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
8873 }
8874
8875 /*-- vec_ctd ----------------------------------------------------------------*/
8876
8877 // This prototype is deprecated.
8878 static inline __ATTRS_o_ai vector double
8879 vec_ctd(vector signed long long __a, int __b)
8880 __constant_range(__b, 0, 31) {
8881 vector double __conv = __builtin_convertvector(__a, vector double);
8882 __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
8883 return __conv;
8884 }
8885
8886 // This prototype is deprecated.
8887 static inline __ATTRS_o_ai vector double
8888 vec_ctd(vector unsigned long long __a, int __b)
8889 __constant_range(__b, 0, 31) {
8890 vector double __conv = __builtin_convertvector(__a, vector double);
8891 __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
8892 return __conv;
8893 }
8894
8895 /*-- vec_ctsl ---------------------------------------------------------------*/
8896
8897 // This prototype is deprecated.
8898 static inline __ATTRS_o_ai vector signed long long
8899 vec_ctsl(vector double __a, int __b)
8900 __constant_range(__b, 0, 31) {
8901 __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
8902 return __builtin_convertvector(__a, vector signed long long);
8903 }
8904
8905 /*-- vec_ctul ---------------------------------------------------------------*/
8906
8907 // This prototype is deprecated.
8908 static inline __ATTRS_o_ai vector unsigned long long
8909 vec_ctul(vector double __a, int __b)
8910 __constant_range(__b, 0, 31) {
8911 __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
8912 return __builtin_convertvector(__a, vector unsigned long long);
8913 }
8914
8915 /*-- vec_doublee ------------------------------------------------------------*/
8916
8917 #if __ARCH__ >= 12
8918 static inline __ATTRS_ai vector double
8919 vec_doublee(vector float __a) {
8920 typedef float __v2f32 __attribute__((__vector_size__(8)));
8921 __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
8922 return __builtin_convertvector(__pack, vector double);
8923 }
8924 #endif
8925
8926 /*-- vec_floate -------------------------------------------------------------*/
8927
8928 #if __ARCH__ >= 12
8929 static inline __ATTRS_ai vector float
8930 vec_floate(vector double __a) {
8931 typedef float __v2f32 __attribute__((__vector_size__(8)));
8932 __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
8933 return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
8934 }
8935 #endif
8936
8937 /*-- vec_double -------------------------------------------------------------*/
8938
8939 static inline __ATTRS_o_ai vector double
8940 vec_double(vector signed long long __a) {
8941 return __builtin_convertvector(__a, vector double);
8942 }
8943
8944 static inline __ATTRS_o_ai vector double
8945 vec_double(vector unsigned long long __a) {
8946 return __builtin_convertvector(__a, vector double);
8947 }
8948
8949 /*-- vec_float --------------------------------------------------------------*/
8950
8951 #if __ARCH__ >= 13
8952
8953 static inline __ATTRS_o_ai vector float
8954 vec_float(vector signed int __a) {
8955 return __builtin_convertvector(__a, vector float);
8956 }
8957
8958 static inline __ATTRS_o_ai vector float
8959 vec_float(vector unsigned int __a) {
8960 return __builtin_convertvector(__a, vector float);
8961 }
8962
8963 #endif
8964
8965 /*-- vec_signed -------------------------------------------------------------*/
8966
8967 static inline __ATTRS_o_ai vector signed long long
8968 vec_signed(vector double __a) {
8969 return __builtin_convertvector(__a, vector signed long long);
8970 }
8971
8972 #if __ARCH__ >= 13
8973 static inline __ATTRS_o_ai vector signed int
8974 vec_signed(vector float __a) {
8975 return __builtin_convertvector(__a, vector signed int);
8976 }
8977 #endif
8978
8979 /*-- vec_unsigned -----------------------------------------------------------*/
8980
8981 static inline __ATTRS_o_ai vector unsigned long long
8982 vec_unsigned(vector double __a) {
8983 return __builtin_convertvector(__a, vector unsigned long long);
8984 }
8985
8986 #if __ARCH__ >= 13
8987 static inline __ATTRS_o_ai vector unsigned int
8988 vec_unsigned(vector float __a) {
8989 return __builtin_convertvector(__a, vector unsigned int);
8990 }
8991 #endif
8992
8993 /*-- vec_roundp -------------------------------------------------------------*/
8994
8995 #if __ARCH__ >= 12
8996 static inline __ATTRS_o_ai vector float
8997 vec_roundp(vector float __a) {
8998 return __builtin_s390_vfisb(__a, 4, 6);
8999 }
9000 #endif
9001
9002 static inline __ATTRS_o_ai vector double
9003 vec_roundp(vector double __a) {
9004 return __builtin_s390_vfidb(__a, 4, 6);
9005 }
9006
9007 /*-- vec_ceil ---------------------------------------------------------------*/
9008
9009 #if __ARCH__ >= 12
9010 static inline __ATTRS_o_ai vector float
9011 vec_ceil(vector float __a) {
9012 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9013 return __builtin_s390_vfisb(__a, 4, 6);
9014 }
9015 #endif
9016
9017 static inline __ATTRS_o_ai vector double
9018 vec_ceil(vector double __a) {
9019 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9020 return __builtin_s390_vfidb(__a, 4, 6);
9021 }
9022
9023 /*-- vec_roundm -------------------------------------------------------------*/
9024
9025 #if __ARCH__ >= 12
9026 static inline __ATTRS_o_ai vector float
9027 vec_roundm(vector float __a) {
9028 return __builtin_s390_vfisb(__a, 4, 7);
9029 }
9030 #endif
9031
9032 static inline __ATTRS_o_ai vector double
9033 vec_roundm(vector double __a) {
9034 return __builtin_s390_vfidb(__a, 4, 7);
9035 }
9036
9037 /*-- vec_floor --------------------------------------------------------------*/
9038
9039 #if __ARCH__ >= 12
9040 static inline __ATTRS_o_ai vector float
9041 vec_floor(vector float __a) {
9042 // On this platform, vec_floor never triggers the IEEE-inexact exception.
9043 return __builtin_s390_vfisb(__a, 4, 7);
9044 }
9045 #endif
9046
9047 static inline __ATTRS_o_ai vector double
9048 vec_floor(vector double __a) {
9049 // On this platform, vec_floor never triggers the IEEE-inexact exception.
9050 return __builtin_s390_vfidb(__a, 4, 7);
9051 }
9052
9053 /*-- vec_roundz -------------------------------------------------------------*/
9054
9055 #if __ARCH__ >= 12
9056 static inline __ATTRS_o_ai vector float
9057 vec_roundz(vector float __a) {
9058 return __builtin_s390_vfisb(__a, 4, 5);
9059 }
9060 #endif
9061
9062 static inline __ATTRS_o_ai vector double
9063 vec_roundz(vector double __a) {
9064 return __builtin_s390_vfidb(__a, 4, 5);
9065 }
9066
9067 /*-- vec_trunc --------------------------------------------------------------*/
9068
9069 #if __ARCH__ >= 12
9070 static inline __ATTRS_o_ai vector float
9071 vec_trunc(vector float __a) {
9072 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9073 return __builtin_s390_vfisb(__a, 4, 5);
9074 }
9075 #endif
9076
9077 static inline __ATTRS_o_ai vector double
9078 vec_trunc(vector double __a) {
9079 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9080 return __builtin_s390_vfidb(__a, 4, 5);
9081 }
9082
9083 /*-- vec_roundc -------------------------------------------------------------*/
9084
9085 #if __ARCH__ >= 12
9086 static inline __ATTRS_o_ai vector float
9087 vec_roundc(vector float __a) {
9088 return __builtin_s390_vfisb(__a, 4, 0);
9089 }
9090 #endif
9091
9092 static inline __ATTRS_o_ai vector double
9093 vec_roundc(vector double __a) {
9094 return __builtin_s390_vfidb(__a, 4, 0);
9095 }
9096
9097 /*-- vec_rint ---------------------------------------------------------------*/
9098
9099 #if __ARCH__ >= 12
9100 static inline __ATTRS_o_ai vector float
9101 vec_rint(vector float __a) {
9102 // vec_rint may trigger the IEEE-inexact exception.
9103 return __builtin_s390_vfisb(__a, 0, 0);
9104 }
9105 #endif
9106
9107 static inline __ATTRS_o_ai vector double
9108 vec_rint(vector double __a) {
9109 // vec_rint may trigger the IEEE-inexact exception.
9110 return __builtin_s390_vfidb(__a, 0, 0);
9111 }
9112
9113 /*-- vec_round --------------------------------------------------------------*/
9114
9115 #if __ARCH__ >= 12
9116 static inline __ATTRS_o_ai vector float
9117 vec_round(vector float __a) {
9118 return __builtin_s390_vfisb(__a, 4, 4);
9119 }
9120 #endif
9121
9122 static inline __ATTRS_o_ai vector double
9123 vec_round(vector double __a) {
9124 return __builtin_s390_vfidb(__a, 4, 4);
9125 }
9126
9127 /*-- vec_fp_test_data_class -------------------------------------------------*/
9128
9129 #if __ARCH__ >= 12
9130 extern __ATTRS_o vector bool int
9131 vec_fp_test_data_class(vector float __a, int __b, int *__c)
9132 __constant_range(__b, 0, 4095);
9133
9134 extern __ATTRS_o vector bool long long
9135 vec_fp_test_data_class(vector double __a, int __b, int *__c)
9136 __constant_range(__b, 0, 4095);
9137
9138 #define vec_fp_test_data_class(X, Y, Z) \
9139 ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
9140 __extension__ ({ \
9141 vector unsigned char __res; \
9142 vector unsigned char __x = (vector unsigned char)(X); \
9143 int *__z = (Z); \
9144 switch (sizeof ((X)[0])) { \
9145 case 4: __res = (vector unsigned char) \
9146 __builtin_s390_vftcisb((vector float)__x, (Y), __z); \
9147 break; \
9148 default: __res = (vector unsigned char) \
9149 __builtin_s390_vftcidb((vector double)__x, (Y), __z); \
9150 break; \
9151 } __res; }))
9152 #else
9153 #define vec_fp_test_data_class(X, Y, Z) \
9154 ((vector bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
9155 #endif
9156
9157 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
9158 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
9159 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
9160 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
9161 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
9162 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
9163 __VEC_CLASS_FP_NORMAL_N)
9164 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
9165 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
9166 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
9167 __VEC_CLASS_FP_SUBNORMAL_N)
9168 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
9169 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
9170 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
9171 __VEC_CLASS_FP_INFINITY_N)
9172 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
9173 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
9174 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
9175 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
9176 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
9177 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
9178 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
9179 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
9180 __VEC_CLASS_FP_SUBNORMAL | \
9181 __VEC_CLASS_FP_ZERO | \
9182 __VEC_CLASS_FP_INFINITY)
9183
9184 /*-- vec_cp_until_zero ------------------------------------------------------*/
9185
9186 static inline __ATTRS_o_ai vector signed char
9187 vec_cp_until_zero(vector signed char __a) {
9188 return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a);
9189 }
9190
9191 static inline __ATTRS_o_ai vector bool char
9192 vec_cp_until_zero(vector bool char __a) {
9193 return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a);
9194 }
9195
9196 static inline __ATTRS_o_ai vector unsigned char
9197 vec_cp_until_zero(vector unsigned char __a) {
9198 return __builtin_s390_vistrb(__a);
9199 }
9200
9201 static inline __ATTRS_o_ai vector signed short
9202 vec_cp_until_zero(vector signed short __a) {
9203 return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a);
9204 }
9205
9206 static inline __ATTRS_o_ai vector bool short
9207 vec_cp_until_zero(vector bool short __a) {
9208 return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a);
9209 }
9210
9211 static inline __ATTRS_o_ai vector unsigned short
9212 vec_cp_until_zero(vector unsigned short __a) {
9213 return __builtin_s390_vistrh(__a);
9214 }
9215
9216 static inline __ATTRS_o_ai vector signed int
9217 vec_cp_until_zero(vector signed int __a) {
9218 return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a);
9219 }
9220
9221 static inline __ATTRS_o_ai vector bool int
9222 vec_cp_until_zero(vector bool int __a) {
9223 return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a);
9224 }
9225
9226 static inline __ATTRS_o_ai vector unsigned int
9227 vec_cp_until_zero(vector unsigned int __a) {
9228 return __builtin_s390_vistrf(__a);
9229 }
9230
9231 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
9232
9233 static inline __ATTRS_o_ai vector signed char
9234 vec_cp_until_zero_cc(vector signed char __a, int *__cc) {
9235 return (vector signed char)
9236 __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
9237 }
9238
9239 static inline __ATTRS_o_ai vector bool char
9240 vec_cp_until_zero_cc(vector bool char __a, int *__cc) {
9241 return (vector bool char)
9242 __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
9243 }
9244
9245 static inline __ATTRS_o_ai vector unsigned char
9246 vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) {
9247 return __builtin_s390_vistrbs(__a, __cc);
9248 }
9249
9250 static inline __ATTRS_o_ai vector signed short
9251 vec_cp_until_zero_cc(vector signed short __a, int *__cc) {
9252 return (vector signed short)
9253 __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
9254 }
9255
9256 static inline __ATTRS_o_ai vector bool short
9257 vec_cp_until_zero_cc(vector bool short __a, int *__cc) {
9258 return (vector bool short)
9259 __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
9260 }
9261
9262 static inline __ATTRS_o_ai vector unsigned short
9263 vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) {
9264 return __builtin_s390_vistrhs(__a, __cc);
9265 }
9266
9267 static inline __ATTRS_o_ai vector signed int
9268 vec_cp_until_zero_cc(vector signed int __a, int *__cc) {
9269 return (vector signed int)
9270 __builtin_s390_vistrfs((vector unsigned int)__a, __cc);
9271 }
9272
9273 static inline __ATTRS_o_ai vector bool int
9274 vec_cp_until_zero_cc(vector bool int __a, int *__cc) {
9275 return (vector bool int)__builtin_s390_vistrfs((vector unsigned int)__a,
9276 __cc);
9277 }
9278
9279 static inline __ATTRS_o_ai vector unsigned int
9280 vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) {
9281 return __builtin_s390_vistrfs(__a, __cc);
9282 }
9283
9284 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
9285
9286 static inline __ATTRS_o_ai vector signed char
9287 vec_cmpeq_idx(vector signed char __a, vector signed char __b) {
9288 return (vector signed char)
9289 __builtin_s390_vfeeb((vector unsigned char)__a,
9290 (vector unsigned char)__b);
9291 }
9292
9293 static inline __ATTRS_o_ai vector unsigned char
9294 vec_cmpeq_idx(vector bool char __a, vector bool char __b) {
9295 return __builtin_s390_vfeeb((vector unsigned char)__a,
9296 (vector unsigned char)__b);
9297 }
9298
9299 static inline __ATTRS_o_ai vector unsigned char
9300 vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) {
9301 return __builtin_s390_vfeeb(__a, __b);
9302 }
9303
9304 static inline __ATTRS_o_ai vector signed short
9305 vec_cmpeq_idx(vector signed short __a, vector signed short __b) {
9306 return (vector signed short)
9307 __builtin_s390_vfeeh((vector unsigned short)__a,
9308 (vector unsigned short)__b);
9309 }
9310
9311 static inline __ATTRS_o_ai vector unsigned short
9312 vec_cmpeq_idx(vector bool short __a, vector bool short __b) {
9313 return __builtin_s390_vfeeh((vector unsigned short)__a,
9314 (vector unsigned short)__b);
9315 }
9316
9317 static inline __ATTRS_o_ai vector unsigned short
9318 vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) {
9319 return __builtin_s390_vfeeh(__a, __b);
9320 }
9321
9322 static inline __ATTRS_o_ai vector signed int
9323 vec_cmpeq_idx(vector signed int __a, vector signed int __b) {
9324 return (vector signed int)
9325 __builtin_s390_vfeef((vector unsigned int)__a,
9326 (vector unsigned int)__b);
9327 }
9328
9329 static inline __ATTRS_o_ai vector unsigned int
9330 vec_cmpeq_idx(vector bool int __a, vector bool int __b) {
9331 return __builtin_s390_vfeef((vector unsigned int)__a,
9332 (vector unsigned int)__b);
9333 }
9334
9335 static inline __ATTRS_o_ai vector unsigned int
9336 vec_cmpeq_idx(vector unsigned int __a, vector unsigned int __b) {
9337 return __builtin_s390_vfeef(__a, __b);
9338 }
9339
9340 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
9341
9342 static inline __ATTRS_o_ai vector signed char
9343 vec_cmpeq_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
9344 return (vector signed char)
9345 __builtin_s390_vfeebs((vector unsigned char)__a,
9346 (vector unsigned char)__b, __cc);
9347 }
9348
9349 static inline __ATTRS_o_ai vector unsigned char
9350 vec_cmpeq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9351 return __builtin_s390_vfeebs((vector unsigned char)__a,
9352 (vector unsigned char)__b, __cc);
9353 }
9354
9355 static inline __ATTRS_o_ai vector unsigned char
9356 vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b,
9357 int *__cc) {
9358 return __builtin_s390_vfeebs(__a, __b, __cc);
9359 }
9360
9361 static inline __ATTRS_o_ai vector signed short
9362 vec_cmpeq_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
9363 return (vector signed short)
9364 __builtin_s390_vfeehs((vector unsigned short)__a,
9365 (vector unsigned short)__b, __cc);
9366 }
9367
9368 static inline __ATTRS_o_ai vector unsigned short
9369 vec_cmpeq_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9370 return __builtin_s390_vfeehs((vector unsigned short)__a,
9371 (vector unsigned short)__b, __cc);
9372 }
9373
9374 static inline __ATTRS_o_ai vector unsigned short
9375 vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b,
9376 int *__cc) {
9377 return __builtin_s390_vfeehs(__a, __b, __cc);
9378 }
9379
9380 static inline __ATTRS_o_ai vector signed int
9381 vec_cmpeq_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9382 return (vector signed int)
9383 __builtin_s390_vfeefs((vector unsigned int)__a,
9384 (vector unsigned int)__b, __cc);
9385 }
9386
9387 static inline __ATTRS_o_ai vector unsigned int
9388 vec_cmpeq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9389 return __builtin_s390_vfeefs((vector unsigned int)__a,
9390 (vector unsigned int)__b, __cc);
9391 }
9392
9393 static inline __ATTRS_o_ai vector unsigned int
9394 vec_cmpeq_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
9395 return __builtin_s390_vfeefs(__a, __b, __cc);
9396 }
9397
9398 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
9399
9400 static inline __ATTRS_o_ai vector signed char
9401 vec_cmpeq_or_0_idx(vector signed char __a, vector signed char __b) {
9402 return (vector signed char)
9403 __builtin_s390_vfeezb((vector unsigned char)__a,
9404 (vector unsigned char)__b);
9405 }
9406
9407 static inline __ATTRS_o_ai vector unsigned char
9408 vec_cmpeq_or_0_idx(vector bool char __a, vector bool char __b) {
9409 return __builtin_s390_vfeezb((vector unsigned char)__a,
9410 (vector unsigned char)__b);
9411 }
9412
9413 static inline __ATTRS_o_ai vector unsigned char
9414 vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9415 return __builtin_s390_vfeezb(__a, __b);
9416 }
9417
9418 static inline __ATTRS_o_ai vector signed short
9419 vec_cmpeq_or_0_idx(vector signed short __a, vector signed short __b) {
9420 return (vector signed short)
9421 __builtin_s390_vfeezh((vector unsigned short)__a,
9422 (vector unsigned short)__b);
9423 }
9424
9425 static inline __ATTRS_o_ai vector unsigned short
9426 vec_cmpeq_or_0_idx(vector bool short __a, vector bool short __b) {
9427 return __builtin_s390_vfeezh((vector unsigned short)__a,
9428 (vector unsigned short)__b);
9429 }
9430
9431 static inline __ATTRS_o_ai vector unsigned short
9432 vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9433 return __builtin_s390_vfeezh(__a, __b);
9434 }
9435
9436 static inline __ATTRS_o_ai vector signed int
9437 vec_cmpeq_or_0_idx(vector signed int __a, vector signed int __b) {
9438 return (vector signed int)
9439 __builtin_s390_vfeezf((vector unsigned int)__a,
9440 (vector unsigned int)__b);
9441 }
9442
9443 static inline __ATTRS_o_ai vector unsigned int
9444 vec_cmpeq_or_0_idx(vector bool int __a, vector bool int __b) {
9445 return __builtin_s390_vfeezf((vector unsigned int)__a,
9446 (vector unsigned int)__b);
9447 }
9448
9449 static inline __ATTRS_o_ai vector unsigned int
9450 vec_cmpeq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
9451 return __builtin_s390_vfeezf(__a, __b);
9452 }
9453
9454 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
9455
9456 static inline __ATTRS_o_ai vector signed char
9457 vec_cmpeq_or_0_idx_cc(vector signed char __a, vector signed char __b,
9458 int *__cc) {
9459 return (vector signed char)
9460 __builtin_s390_vfeezbs((vector unsigned char)__a,
9461 (vector unsigned char)__b, __cc);
9462 }
9463
9464 static inline __ATTRS_o_ai vector unsigned char
9465 vec_cmpeq_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9466 return __builtin_s390_vfeezbs((vector unsigned char)__a,
9467 (vector unsigned char)__b, __cc);
9468 }
9469
9470 static inline __ATTRS_o_ai vector unsigned char
9471 vec_cmpeq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9472 int *__cc) {
9473 return __builtin_s390_vfeezbs(__a, __b, __cc);
9474 }
9475
9476 static inline __ATTRS_o_ai vector signed short
9477 vec_cmpeq_or_0_idx_cc(vector signed short __a, vector signed short __b,
9478 int *__cc) {
9479 return (vector signed short)
9480 __builtin_s390_vfeezhs((vector unsigned short)__a,
9481 (vector unsigned short)__b, __cc);
9482 }
9483
9484 static inline __ATTRS_o_ai vector unsigned short
9485 vec_cmpeq_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9486 return __builtin_s390_vfeezhs((vector unsigned short)__a,
9487 (vector unsigned short)__b, __cc);
9488 }
9489
9490 static inline __ATTRS_o_ai vector unsigned short
9491 vec_cmpeq_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9492 int *__cc) {
9493 return __builtin_s390_vfeezhs(__a, __b, __cc);
9494 }
9495
9496 static inline __ATTRS_o_ai vector signed int
9497 vec_cmpeq_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9498 return (vector signed int)
9499 __builtin_s390_vfeezfs((vector unsigned int)__a,
9500 (vector unsigned int)__b, __cc);
9501 }
9502
9503 static inline __ATTRS_o_ai vector unsigned int
9504 vec_cmpeq_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9505 return __builtin_s390_vfeezfs((vector unsigned int)__a,
9506 (vector unsigned int)__b, __cc);
9507 }
9508
9509 static inline __ATTRS_o_ai vector unsigned int
9510 vec_cmpeq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9511 int *__cc) {
9512 return __builtin_s390_vfeezfs(__a, __b, __cc);
9513 }
9514
9515 /*-- vec_cmpne_idx ----------------------------------------------------------*/
9516
9517 static inline __ATTRS_o_ai vector signed char
9518 vec_cmpne_idx(vector signed char __a, vector signed char __b) {
9519 return (vector signed char)
9520 __builtin_s390_vfeneb((vector unsigned char)__a,
9521 (vector unsigned char)__b);
9522 }
9523
9524 static inline __ATTRS_o_ai vector unsigned char
9525 vec_cmpne_idx(vector bool char __a, vector bool char __b) {
9526 return __builtin_s390_vfeneb((vector unsigned char)__a,
9527 (vector unsigned char)__b);
9528 }
9529
9530 static inline __ATTRS_o_ai vector unsigned char
9531 vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) {
9532 return __builtin_s390_vfeneb(__a, __b);
9533 }
9534
9535 static inline __ATTRS_o_ai vector signed short
9536 vec_cmpne_idx(vector signed short __a, vector signed short __b) {
9537 return (vector signed short)
9538 __builtin_s390_vfeneh((vector unsigned short)__a,
9539 (vector unsigned short)__b);
9540 }
9541
9542 static inline __ATTRS_o_ai vector unsigned short
9543 vec_cmpne_idx(vector bool short __a, vector bool short __b) {
9544 return __builtin_s390_vfeneh((vector unsigned short)__a,
9545 (vector unsigned short)__b);
9546 }
9547
9548 static inline __ATTRS_o_ai vector unsigned short
9549 vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) {
9550 return __builtin_s390_vfeneh(__a, __b);
9551 }
9552
9553 static inline __ATTRS_o_ai vector signed int
9554 vec_cmpne_idx(vector signed int __a, vector signed int __b) {
9555 return (vector signed int)
9556 __builtin_s390_vfenef((vector unsigned int)__a,
9557 (vector unsigned int)__b);
9558 }
9559
9560 static inline __ATTRS_o_ai vector unsigned int
9561 vec_cmpne_idx(vector bool int __a, vector bool int __b) {
9562 return __builtin_s390_vfenef((vector unsigned int)__a,
9563 (vector unsigned int)__b);
9564 }
9565
9566 static inline __ATTRS_o_ai vector unsigned int
9567 vec_cmpne_idx(vector unsigned int __a, vector unsigned int __b) {
9568 return __builtin_s390_vfenef(__a, __b);
9569 }
9570
9571 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
9572
9573 static inline __ATTRS_o_ai vector signed char
9574 vec_cmpne_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
9575 return (vector signed char)
9576 __builtin_s390_vfenebs((vector unsigned char)__a,
9577 (vector unsigned char)__b, __cc);
9578 }
9579
9580 static inline __ATTRS_o_ai vector unsigned char
9581 vec_cmpne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9582 return __builtin_s390_vfenebs((vector unsigned char)__a,
9583 (vector unsigned char)__b, __cc);
9584 }
9585
9586 static inline __ATTRS_o_ai vector unsigned char
9587 vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b,
9588 int *__cc) {
9589 return __builtin_s390_vfenebs(__a, __b, __cc);
9590 }
9591
9592 static inline __ATTRS_o_ai vector signed short
9593 vec_cmpne_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
9594 return (vector signed short)
9595 __builtin_s390_vfenehs((vector unsigned short)__a,
9596 (vector unsigned short)__b, __cc);
9597 }
9598
9599 static inline __ATTRS_o_ai vector unsigned short
9600 vec_cmpne_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9601 return __builtin_s390_vfenehs((vector unsigned short)__a,
9602 (vector unsigned short)__b, __cc);
9603 }
9604
9605 static inline __ATTRS_o_ai vector unsigned short
9606 vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b,
9607 int *__cc) {
9608 return __builtin_s390_vfenehs(__a, __b, __cc);
9609 }
9610
9611 static inline __ATTRS_o_ai vector signed int
9612 vec_cmpne_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9613 return (vector signed int)
9614 __builtin_s390_vfenefs((vector unsigned int)__a,
9615 (vector unsigned int)__b, __cc);
9616 }
9617
9618 static inline __ATTRS_o_ai vector unsigned int
9619 vec_cmpne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9620 return __builtin_s390_vfenefs((vector unsigned int)__a,
9621 (vector unsigned int)__b, __cc);
9622 }
9623
9624 static inline __ATTRS_o_ai vector unsigned int
9625 vec_cmpne_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
9626 return __builtin_s390_vfenefs(__a, __b, __cc);
9627 }
9628
9629 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
9630
9631 static inline __ATTRS_o_ai vector signed char
9632 vec_cmpne_or_0_idx(vector signed char __a, vector signed char __b) {
9633 return (vector signed char)
9634 __builtin_s390_vfenezb((vector unsigned char)__a,
9635 (vector unsigned char)__b);
9636 }
9637
9638 static inline __ATTRS_o_ai vector unsigned char
9639 vec_cmpne_or_0_idx(vector bool char __a, vector bool char __b) {
9640 return __builtin_s390_vfenezb((vector unsigned char)__a,
9641 (vector unsigned char)__b);
9642 }
9643
9644 static inline __ATTRS_o_ai vector unsigned char
9645 vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9646 return __builtin_s390_vfenezb(__a, __b);
9647 }
9648
9649 static inline __ATTRS_o_ai vector signed short
9650 vec_cmpne_or_0_idx(vector signed short __a, vector signed short __b) {
9651 return (vector signed short)
9652 __builtin_s390_vfenezh((vector unsigned short)__a,
9653 (vector unsigned short)__b);
9654 }
9655
9656 static inline __ATTRS_o_ai vector unsigned short
9657 vec_cmpne_or_0_idx(vector bool short __a, vector bool short __b) {
9658 return __builtin_s390_vfenezh((vector unsigned short)__a,
9659 (vector unsigned short)__b);
9660 }
9661
9662 static inline __ATTRS_o_ai vector unsigned short
9663 vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9664 return __builtin_s390_vfenezh(__a, __b);
9665 }
9666
9667 static inline __ATTRS_o_ai vector signed int
9668 vec_cmpne_or_0_idx(vector signed int __a, vector signed int __b) {
9669 return (vector signed int)
9670 __builtin_s390_vfenezf((vector unsigned int)__a,
9671 (vector unsigned int)__b);
9672 }
9673
9674 static inline __ATTRS_o_ai vector unsigned int
9675 vec_cmpne_or_0_idx(vector bool int __a, vector bool int __b) {
9676 return __builtin_s390_vfenezf((vector unsigned int)__a,
9677 (vector unsigned int)__b);
9678 }
9679
9680 static inline __ATTRS_o_ai vector unsigned int
9681 vec_cmpne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
9682 return __builtin_s390_vfenezf(__a, __b);
9683 }
9684
9685 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
9686
9687 static inline __ATTRS_o_ai vector signed char
9688 vec_cmpne_or_0_idx_cc(vector signed char __a, vector signed char __b,
9689 int *__cc) {
9690 return (vector signed char)
9691 __builtin_s390_vfenezbs((vector unsigned char)__a,
9692 (vector unsigned char)__b, __cc);
9693 }
9694
9695 static inline __ATTRS_o_ai vector unsigned char
9696 vec_cmpne_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9697 return __builtin_s390_vfenezbs((vector unsigned char)__a,
9698 (vector unsigned char)__b, __cc);
9699 }
9700
9701 static inline __ATTRS_o_ai vector unsigned char
9702 vec_cmpne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9703 int *__cc) {
9704 return __builtin_s390_vfenezbs(__a, __b, __cc);
9705 }
9706
9707 static inline __ATTRS_o_ai vector signed short
9708 vec_cmpne_or_0_idx_cc(vector signed short __a, vector signed short __b,
9709 int *__cc) {
9710 return (vector signed short)
9711 __builtin_s390_vfenezhs((vector unsigned short)__a,
9712 (vector unsigned short)__b, __cc);
9713 }
9714
9715 static inline __ATTRS_o_ai vector unsigned short
9716 vec_cmpne_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9717 return __builtin_s390_vfenezhs((vector unsigned short)__a,
9718 (vector unsigned short)__b, __cc);
9719 }
9720
9721 static inline __ATTRS_o_ai vector unsigned short
9722 vec_cmpne_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9723 int *__cc) {
9724 return __builtin_s390_vfenezhs(__a, __b, __cc);
9725 }
9726
9727 static inline __ATTRS_o_ai vector signed int
9728 vec_cmpne_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9729 return (vector signed int)
9730 __builtin_s390_vfenezfs((vector unsigned int)__a,
9731 (vector unsigned int)__b, __cc);
9732 }
9733
9734 static inline __ATTRS_o_ai vector unsigned int
9735 vec_cmpne_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9736 return __builtin_s390_vfenezfs((vector unsigned int)__a,
9737 (vector unsigned int)__b, __cc);
9738 }
9739
9740 static inline __ATTRS_o_ai vector unsigned int
9741 vec_cmpne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9742 int *__cc) {
9743 return __builtin_s390_vfenezfs(__a, __b, __cc);
9744 }
9745
9746 /*-- vec_cmprg --------------------------------------------------------------*/
9747
9748 static inline __ATTRS_o_ai vector bool char
9749 vec_cmprg(vector unsigned char __a, vector unsigned char __b,
9750 vector unsigned char __c) {
9751 return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
9752 }
9753
9754 static inline __ATTRS_o_ai vector bool short
9755 vec_cmprg(vector unsigned short __a, vector unsigned short __b,
9756 vector unsigned short __c) {
9757 return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
9758 }
9759
9760 static inline __ATTRS_o_ai vector bool int
9761 vec_cmprg(vector unsigned int __a, vector unsigned int __b,
9762 vector unsigned int __c) {
9763 return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
9764 }
9765
9766 /*-- vec_cmprg_cc -----------------------------------------------------------*/
9767
9768 static inline __ATTRS_o_ai vector bool char
9769 vec_cmprg_cc(vector unsigned char __a, vector unsigned char __b,
9770 vector unsigned char __c, int *__cc) {
9771 return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
9772 }
9773
9774 static inline __ATTRS_o_ai vector bool short
9775 vec_cmprg_cc(vector unsigned short __a, vector unsigned short __b,
9776 vector unsigned short __c, int *__cc) {
9777 return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
9778 }
9779
9780 static inline __ATTRS_o_ai vector bool int
9781 vec_cmprg_cc(vector unsigned int __a, vector unsigned int __b,
9782 vector unsigned int __c, int *__cc) {
9783 return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
9784 }
9785
9786 /*-- vec_cmprg_idx ----------------------------------------------------------*/
9787
9788 static inline __ATTRS_o_ai vector unsigned char
9789 vec_cmprg_idx(vector unsigned char __a, vector unsigned char __b,
9790 vector unsigned char __c) {
9791 return __builtin_s390_vstrcb(__a, __b, __c, 0);
9792 }
9793
9794 static inline __ATTRS_o_ai vector unsigned short
9795 vec_cmprg_idx(vector unsigned short __a, vector unsigned short __b,
9796 vector unsigned short __c) {
9797 return __builtin_s390_vstrch(__a, __b, __c, 0);
9798 }
9799
9800 static inline __ATTRS_o_ai vector unsigned int
9801 vec_cmprg_idx(vector unsigned int __a, vector unsigned int __b,
9802 vector unsigned int __c) {
9803 return __builtin_s390_vstrcf(__a, __b, __c, 0);
9804 }
9805
9806 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
9807
9808 static inline __ATTRS_o_ai vector unsigned char
9809 vec_cmprg_idx_cc(vector unsigned char __a, vector unsigned char __b,
9810 vector unsigned char __c, int *__cc) {
9811 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
9812 }
9813
9814 static inline __ATTRS_o_ai vector unsigned short
9815 vec_cmprg_idx_cc(vector unsigned short __a, vector unsigned short __b,
9816 vector unsigned short __c, int *__cc) {
9817 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
9818 }
9819
9820 static inline __ATTRS_o_ai vector unsigned int
9821 vec_cmprg_idx_cc(vector unsigned int __a, vector unsigned int __b,
9822 vector unsigned int __c, int *__cc) {
9823 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
9824 }
9825
9826 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
9827
9828 static inline __ATTRS_o_ai vector unsigned char
9829 vec_cmprg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
9830 vector unsigned char __c) {
9831 return __builtin_s390_vstrczb(__a, __b, __c, 0);
9832 }
9833
9834 static inline __ATTRS_o_ai vector unsigned short
9835 vec_cmprg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
9836 vector unsigned short __c) {
9837 return __builtin_s390_vstrczh(__a, __b, __c, 0);
9838 }
9839
9840 static inline __ATTRS_o_ai vector unsigned int
9841 vec_cmprg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
9842 vector unsigned int __c) {
9843 return __builtin_s390_vstrczf(__a, __b, __c, 0);
9844 }
9845
9846 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
9847
9848 static inline __ATTRS_o_ai vector unsigned char
9849 vec_cmprg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9850 vector unsigned char __c, int *__cc) {
9851 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
9852 }
9853
9854 static inline __ATTRS_o_ai vector unsigned short
9855 vec_cmprg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9856 vector unsigned short __c, int *__cc) {
9857 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
9858 }
9859
9860 static inline __ATTRS_o_ai vector unsigned int
9861 vec_cmprg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9862 vector unsigned int __c, int *__cc) {
9863 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
9864 }
9865
9866 /*-- vec_cmpnrg -------------------------------------------------------------*/
9867
9868 static inline __ATTRS_o_ai vector bool char
9869 vec_cmpnrg(vector unsigned char __a, vector unsigned char __b,
9870 vector unsigned char __c) {
9871 return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
9872 }
9873
9874 static inline __ATTRS_o_ai vector bool short
9875 vec_cmpnrg(vector unsigned short __a, vector unsigned short __b,
9876 vector unsigned short __c) {
9877 return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
9878 }
9879
9880 static inline __ATTRS_o_ai vector bool int
9881 vec_cmpnrg(vector unsigned int __a, vector unsigned int __b,
9882 vector unsigned int __c) {
9883 return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
9884 }
9885
9886 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
9887
9888 static inline __ATTRS_o_ai vector bool char
9889 vec_cmpnrg_cc(vector unsigned char __a, vector unsigned char __b,
9890 vector unsigned char __c, int *__cc) {
9891 return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
9892 }
9893
9894 static inline __ATTRS_o_ai vector bool short
9895 vec_cmpnrg_cc(vector unsigned short __a, vector unsigned short __b,
9896 vector unsigned short __c, int *__cc) {
9897 return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
9898 }
9899
9900 static inline __ATTRS_o_ai vector bool int
9901 vec_cmpnrg_cc(vector unsigned int __a, vector unsigned int __b,
9902 vector unsigned int __c, int *__cc) {
9903 return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
9904 }
9905
9906 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
9907
9908 static inline __ATTRS_o_ai vector unsigned char
9909 vec_cmpnrg_idx(vector unsigned char __a, vector unsigned char __b,
9910 vector unsigned char __c) {
9911 return __builtin_s390_vstrcb(__a, __b, __c, 8);
9912 }
9913
9914 static inline __ATTRS_o_ai vector unsigned short
9915 vec_cmpnrg_idx(vector unsigned short __a, vector unsigned short __b,
9916 vector unsigned short __c) {
9917 return __builtin_s390_vstrch(__a, __b, __c, 8);
9918 }
9919
9920 static inline __ATTRS_o_ai vector unsigned int
9921 vec_cmpnrg_idx(vector unsigned int __a, vector unsigned int __b,
9922 vector unsigned int __c) {
9923 return __builtin_s390_vstrcf(__a, __b, __c, 8);
9924 }
9925
9926 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
9927
9928 static inline __ATTRS_o_ai vector unsigned char
9929 vec_cmpnrg_idx_cc(vector unsigned char __a, vector unsigned char __b,
9930 vector unsigned char __c, int *__cc) {
9931 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
9932 }
9933
9934 static inline __ATTRS_o_ai vector unsigned short
9935 vec_cmpnrg_idx_cc(vector unsigned short __a, vector unsigned short __b,
9936 vector unsigned short __c, int *__cc) {
9937 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
9938 }
9939
9940 static inline __ATTRS_o_ai vector unsigned int
9941 vec_cmpnrg_idx_cc(vector unsigned int __a, vector unsigned int __b,
9942 vector unsigned int __c, int *__cc) {
9943 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
9944 }
9945
9946 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
9947
9948 static inline __ATTRS_o_ai vector unsigned char
9949 vec_cmpnrg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
9950 vector unsigned char __c) {
9951 return __builtin_s390_vstrczb(__a, __b, __c, 8);
9952 }
9953
9954 static inline __ATTRS_o_ai vector unsigned short
9955 vec_cmpnrg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
9956 vector unsigned short __c) {
9957 return __builtin_s390_vstrczh(__a, __b, __c, 8);
9958 }
9959
9960 static inline __ATTRS_o_ai vector unsigned int
9961 vec_cmpnrg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
9962 vector unsigned int __c) {
9963 return __builtin_s390_vstrczf(__a, __b, __c, 8);
9964 }
9965
9966 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
9967
9968 static inline __ATTRS_o_ai vector unsigned char
9969 vec_cmpnrg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9970 vector unsigned char __c, int *__cc) {
9971 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
9972 }
9973
9974 static inline __ATTRS_o_ai vector unsigned short
9975 vec_cmpnrg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9976 vector unsigned short __c, int *__cc) {
9977 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
9978 }
9979
9980 static inline __ATTRS_o_ai vector unsigned int
9981 vec_cmpnrg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9982 vector unsigned int __c, int *__cc) {
9983 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
9984 }
9985
9986 /*-- vec_find_any_eq --------------------------------------------------------*/
9987
9988 static inline __ATTRS_o_ai vector bool char
9989 vec_find_any_eq(vector signed char __a, vector signed char __b) {
9990 return (vector bool char)
9991 __builtin_s390_vfaeb((vector unsigned char)__a,
9992 (vector unsigned char)__b, 4);
9993 }
9994
9995 static inline __ATTRS_o_ai vector bool char
9996 vec_find_any_eq(vector bool char __a, vector bool char __b) {
9997 return (vector bool char)
9998 __builtin_s390_vfaeb((vector unsigned char)__a,
9999 (vector unsigned char)__b, 4);
10000 }
10001
10002 static inline __ATTRS_o_ai vector bool char
10003 vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) {
10004 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4);
10005 }
10006
10007 static inline __ATTRS_o_ai vector bool short
10008 vec_find_any_eq(vector signed short __a, vector signed short __b) {
10009 return (vector bool short)
10010 __builtin_s390_vfaeh((vector unsigned short)__a,
10011 (vector unsigned short)__b, 4);
10012 }
10013
10014 static inline __ATTRS_o_ai vector bool short
10015 vec_find_any_eq(vector bool short __a, vector bool short __b) {
10016 return (vector bool short)
10017 __builtin_s390_vfaeh((vector unsigned short)__a,
10018 (vector unsigned short)__b, 4);
10019 }
10020
10021 static inline __ATTRS_o_ai vector bool short
10022 vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) {
10023 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4);
10024 }
10025
10026 static inline __ATTRS_o_ai vector bool int
10027 vec_find_any_eq(vector signed int __a, vector signed int __b) {
10028 return (vector bool int)
10029 __builtin_s390_vfaef((vector unsigned int)__a,
10030 (vector unsigned int)__b, 4);
10031 }
10032
10033 static inline __ATTRS_o_ai vector bool int
10034 vec_find_any_eq(vector bool int __a, vector bool int __b) {
10035 return (vector bool int)
10036 __builtin_s390_vfaef((vector unsigned int)__a,
10037 (vector unsigned int)__b, 4);
10038 }
10039
10040 static inline __ATTRS_o_ai vector bool int
10041 vec_find_any_eq(vector unsigned int __a, vector unsigned int __b) {
10042 return (vector bool int)__builtin_s390_vfaef(__a, __b, 4);
10043 }
10044
10045 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
10046
10047 static inline __ATTRS_o_ai vector bool char
10048 vec_find_any_eq_cc(vector signed char __a, vector signed char __b, int *__cc) {
10049 return (vector bool char)
10050 __builtin_s390_vfaebs((vector unsigned char)__a,
10051 (vector unsigned char)__b, 4, __cc);
10052 }
10053
10054 static inline __ATTRS_o_ai vector bool char
10055 vec_find_any_eq_cc(vector bool char __a, vector bool char __b, int *__cc) {
10056 return (vector bool char)
10057 __builtin_s390_vfaebs((vector unsigned char)__a,
10058 (vector unsigned char)__b, 4, __cc);
10059 }
10060
10061 static inline __ATTRS_o_ai vector bool char
10062 vec_find_any_eq_cc(vector unsigned char __a, vector unsigned char __b,
10063 int *__cc) {
10064 return (vector bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
10065 }
10066
10067 static inline __ATTRS_o_ai vector bool short
10068 vec_find_any_eq_cc(vector signed short __a, vector signed short __b,
10069 int *__cc) {
10070 return (vector bool short)
10071 __builtin_s390_vfaehs((vector unsigned short)__a,
10072 (vector unsigned short)__b, 4, __cc);
10073 }
10074
10075 static inline __ATTRS_o_ai vector bool short
10076 vec_find_any_eq_cc(vector bool short __a, vector bool short __b, int *__cc) {
10077 return (vector bool short)
10078 __builtin_s390_vfaehs((vector unsigned short)__a,
10079 (vector unsigned short)__b, 4, __cc);
10080 }
10081
10082 static inline __ATTRS_o_ai vector bool short
10083 vec_find_any_eq_cc(vector unsigned short __a, vector unsigned short __b,
10084 int *__cc) {
10085 return (vector bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
10086 }
10087
10088 static inline __ATTRS_o_ai vector bool int
10089 vec_find_any_eq_cc(vector signed int __a, vector signed int __b, int *__cc) {
10090 return (vector bool int)
10091 __builtin_s390_vfaefs((vector unsigned int)__a,
10092 (vector unsigned int)__b, 4, __cc);
10093 }
10094
10095 static inline __ATTRS_o_ai vector bool int
10096 vec_find_any_eq_cc(vector bool int __a, vector bool int __b, int *__cc) {
10097 return (vector bool int)
10098 __builtin_s390_vfaefs((vector unsigned int)__a,
10099 (vector unsigned int)__b, 4, __cc);
10100 }
10101
10102 static inline __ATTRS_o_ai vector bool int
10103 vec_find_any_eq_cc(vector unsigned int __a, vector unsigned int __b,
10104 int *__cc) {
10105 return (vector bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
10106 }
10107
10108 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
10109
10110 static inline __ATTRS_o_ai vector signed char
10111 vec_find_any_eq_idx(vector signed char __a, vector signed char __b) {
10112 return (vector signed char)
10113 __builtin_s390_vfaeb((vector unsigned char)__a,
10114 (vector unsigned char)__b, 0);
10115 }
10116
10117 static inline __ATTRS_o_ai vector unsigned char
10118 vec_find_any_eq_idx(vector bool char __a, vector bool char __b) {
10119 return __builtin_s390_vfaeb((vector unsigned char)__a,
10120 (vector unsigned char)__b, 0);
10121 }
10122
10123 static inline __ATTRS_o_ai vector unsigned char
10124 vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) {
10125 return __builtin_s390_vfaeb(__a, __b, 0);
10126 }
10127
10128 static inline __ATTRS_o_ai vector signed short
10129 vec_find_any_eq_idx(vector signed short __a, vector signed short __b) {
10130 return (vector signed short)
10131 __builtin_s390_vfaeh((vector unsigned short)__a,
10132 (vector unsigned short)__b, 0);
10133 }
10134
10135 static inline __ATTRS_o_ai vector unsigned short
10136 vec_find_any_eq_idx(vector bool short __a, vector bool short __b) {
10137 return __builtin_s390_vfaeh((vector unsigned short)__a,
10138 (vector unsigned short)__b, 0);
10139 }
10140
10141 static inline __ATTRS_o_ai vector unsigned short
10142 vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) {
10143 return __builtin_s390_vfaeh(__a, __b, 0);
10144 }
10145
10146 static inline __ATTRS_o_ai vector signed int
10147 vec_find_any_eq_idx(vector signed int __a, vector signed int __b) {
10148 return (vector signed int)
10149 __builtin_s390_vfaef((vector unsigned int)__a,
10150 (vector unsigned int)__b, 0);
10151 }
10152
10153 static inline __ATTRS_o_ai vector unsigned int
10154 vec_find_any_eq_idx(vector bool int __a, vector bool int __b) {
10155 return __builtin_s390_vfaef((vector unsigned int)__a,
10156 (vector unsigned int)__b, 0);
10157 }
10158
10159 static inline __ATTRS_o_ai vector unsigned int
10160 vec_find_any_eq_idx(vector unsigned int __a, vector unsigned int __b) {
10161 return __builtin_s390_vfaef(__a, __b, 0);
10162 }
10163
10164 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
10165
10166 static inline __ATTRS_o_ai vector signed char
10167 vec_find_any_eq_idx_cc(vector signed char __a, vector signed char __b,
10168 int *__cc) {
10169 return (vector signed char)
10170 __builtin_s390_vfaebs((vector unsigned char)__a,
10171 (vector unsigned char)__b, 0, __cc);
10172 }
10173
10174 static inline __ATTRS_o_ai vector unsigned char
10175 vec_find_any_eq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
10176 return __builtin_s390_vfaebs((vector unsigned char)__a,
10177 (vector unsigned char)__b, 0, __cc);
10178 }
10179
10180 static inline __ATTRS_o_ai vector unsigned char
10181 vec_find_any_eq_idx_cc(vector unsigned char __a, vector unsigned char __b,
10182 int *__cc) {
10183 return __builtin_s390_vfaebs(__a, __b, 0, __cc);
10184 }
10185
10186 static inline __ATTRS_o_ai vector signed short
10187 vec_find_any_eq_idx_cc(vector signed short __a, vector signed short __b,
10188 int *__cc) {
10189 return (vector signed short)
10190 __builtin_s390_vfaehs((vector unsigned short)__a,
10191 (vector unsigned short)__b, 0, __cc);
10192 }
10193
10194 static inline __ATTRS_o_ai vector unsigned short
10195 vec_find_any_eq_idx_cc(vector bool short __a, vector bool short __b,
10196 int *__cc) {
10197 return __builtin_s390_vfaehs((vector unsigned short)__a,
10198 (vector unsigned short)__b, 0, __cc);
10199 }
10200
10201 static inline __ATTRS_o_ai vector unsigned short
10202 vec_find_any_eq_idx_cc(vector unsigned short __a, vector unsigned short __b,
10203 int *__cc) {
10204 return __builtin_s390_vfaehs(__a, __b, 0, __cc);
10205 }
10206
10207 static inline __ATTRS_o_ai vector signed int
10208 vec_find_any_eq_idx_cc(vector signed int __a, vector signed int __b,
10209 int *__cc) {
10210 return (vector signed int)
10211 __builtin_s390_vfaefs((vector unsigned int)__a,
10212 (vector unsigned int)__b, 0, __cc);
10213 }
10214
10215 static inline __ATTRS_o_ai vector unsigned int
10216 vec_find_any_eq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
10217 return __builtin_s390_vfaefs((vector unsigned int)__a,
10218 (vector unsigned int)__b, 0, __cc);
10219 }
10220
10221 static inline __ATTRS_o_ai vector unsigned int
10222 vec_find_any_eq_idx_cc(vector unsigned int __a, vector unsigned int __b,
10223 int *__cc) {
10224 return __builtin_s390_vfaefs(__a, __b, 0, __cc);
10225 }
10226
10227 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
10228
10229 static inline __ATTRS_o_ai vector signed char
10230 vec_find_any_eq_or_0_idx(vector signed char __a, vector signed char __b) {
10231 return (vector signed char)
10232 __builtin_s390_vfaezb((vector unsigned char)__a,
10233 (vector unsigned char)__b, 0);
10234 }
10235
10236 static inline __ATTRS_o_ai vector unsigned char
10237 vec_find_any_eq_or_0_idx(vector bool char __a, vector bool char __b) {
10238 return __builtin_s390_vfaezb((vector unsigned char)__a,
10239 (vector unsigned char)__b, 0);
10240 }
10241
10242 static inline __ATTRS_o_ai vector unsigned char
10243 vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
10244 return __builtin_s390_vfaezb(__a, __b, 0);
10245 }
10246
10247 static inline __ATTRS_o_ai vector signed short
10248 vec_find_any_eq_or_0_idx(vector signed short __a, vector signed short __b) {
10249 return (vector signed short)
10250 __builtin_s390_vfaezh((vector unsigned short)__a,
10251 (vector unsigned short)__b, 0);
10252 }
10253
10254 static inline __ATTRS_o_ai vector unsigned short
10255 vec_find_any_eq_or_0_idx(vector bool short __a, vector bool short __b) {
10256 return __builtin_s390_vfaezh((vector unsigned short)__a,
10257 (vector unsigned short)__b, 0);
10258 }
10259
10260 static inline __ATTRS_o_ai vector unsigned short
10261 vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10262 return __builtin_s390_vfaezh(__a, __b, 0);
10263 }
10264
10265 static inline __ATTRS_o_ai vector signed int
10266 vec_find_any_eq_or_0_idx(vector signed int __a, vector signed int __b) {
10267 return (vector signed int)
10268 __builtin_s390_vfaezf((vector unsigned int)__a,
10269 (vector unsigned int)__b, 0);
10270 }
10271
10272 static inline __ATTRS_o_ai vector unsigned int
10273 vec_find_any_eq_or_0_idx(vector bool int __a, vector bool int __b) {
10274 return __builtin_s390_vfaezf((vector unsigned int)__a,
10275 (vector unsigned int)__b, 0);
10276 }
10277
10278 static inline __ATTRS_o_ai vector unsigned int
10279 vec_find_any_eq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
10280 return __builtin_s390_vfaezf(__a, __b, 0);
10281 }
10282
10283 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
10284
10285 static inline __ATTRS_o_ai vector signed char
10286 vec_find_any_eq_or_0_idx_cc(vector signed char __a, vector signed char __b,
10287 int *__cc) {
10288 return (vector signed char)
10289 __builtin_s390_vfaezbs((vector unsigned char)__a,
10290 (vector unsigned char)__b, 0, __cc);
10291 }
10292
10293 static inline __ATTRS_o_ai vector unsigned char
10294 vec_find_any_eq_or_0_idx_cc(vector bool char __a, vector bool char __b,
10295 int *__cc) {
10296 return __builtin_s390_vfaezbs((vector unsigned char)__a,
10297 (vector unsigned char)__b, 0, __cc);
10298 }
10299
10300 static inline __ATTRS_o_ai vector unsigned char
10301 vec_find_any_eq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
10302 int *__cc) {
10303 return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
10304 }
10305
10306 static inline __ATTRS_o_ai vector signed short
10307 vec_find_any_eq_or_0_idx_cc(vector signed short __a, vector signed short __b,
10308 int *__cc) {
10309 return (vector signed short)
10310 __builtin_s390_vfaezhs((vector unsigned short)__a,
10311 (vector unsigned short)__b, 0, __cc);
10312 }
10313
10314 static inline __ATTRS_o_ai vector unsigned short
10315 vec_find_any_eq_or_0_idx_cc(vector bool short __a, vector bool short __b,
10316 int *__cc) {
10317 return __builtin_s390_vfaezhs((vector unsigned short)__a,
10318 (vector unsigned short)__b, 0, __cc);
10319 }
10320
10321 static inline __ATTRS_o_ai vector unsigned short
10322 vec_find_any_eq_or_0_idx_cc(vector unsigned short __a,
10323 vector unsigned short __b, int *__cc) {
10324 return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
10325 }
10326
10327 static inline __ATTRS_o_ai vector signed int
10328 vec_find_any_eq_or_0_idx_cc(vector signed int __a, vector signed int __b,
10329 int *__cc) {
10330 return (vector signed int)
10331 __builtin_s390_vfaezfs((vector unsigned int)__a,
10332 (vector unsigned int)__b, 0, __cc);
10333 }
10334
10335 static inline __ATTRS_o_ai vector unsigned int
10336 vec_find_any_eq_or_0_idx_cc(vector bool int __a, vector bool int __b,
10337 int *__cc) {
10338 return __builtin_s390_vfaezfs((vector unsigned int)__a,
10339 (vector unsigned int)__b, 0, __cc);
10340 }
10341
10342 static inline __ATTRS_o_ai vector unsigned int
10343 vec_find_any_eq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
10344 int *__cc) {
10345 return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
10346 }
10347
10348 /*-- vec_find_any_ne --------------------------------------------------------*/
10349
10350 static inline __ATTRS_o_ai vector bool char
10351 vec_find_any_ne(vector signed char __a, vector signed char __b) {
10352 return (vector bool char)
10353 __builtin_s390_vfaeb((vector unsigned char)__a,
10354 (vector unsigned char)__b, 12);
10355 }
10356
10357 static inline __ATTRS_o_ai vector bool char
10358 vec_find_any_ne(vector bool char __a, vector bool char __b) {
10359 return (vector bool char)
10360 __builtin_s390_vfaeb((vector unsigned char)__a,
10361 (vector unsigned char)__b, 12);
10362 }
10363
10364 static inline __ATTRS_o_ai vector bool char
10365 vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) {
10366 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12);
10367 }
10368
10369 static inline __ATTRS_o_ai vector bool short
10370 vec_find_any_ne(vector signed short __a, vector signed short __b) {
10371 return (vector bool short)
10372 __builtin_s390_vfaeh((vector unsigned short)__a,
10373 (vector unsigned short)__b, 12);
10374 }
10375
10376 static inline __ATTRS_o_ai vector bool short
10377 vec_find_any_ne(vector bool short __a, vector bool short __b) {
10378 return (vector bool short)
10379 __builtin_s390_vfaeh((vector unsigned short)__a,
10380 (vector unsigned short)__b, 12);
10381 }
10382
10383 static inline __ATTRS_o_ai vector bool short
10384 vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) {
10385 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12);
10386 }
10387
10388 static inline __ATTRS_o_ai vector bool int
10389 vec_find_any_ne(vector signed int __a, vector signed int __b) {
10390 return (vector bool int)
10391 __builtin_s390_vfaef((vector unsigned int)__a,
10392 (vector unsigned int)__b, 12);
10393 }
10394
10395 static inline __ATTRS_o_ai vector bool int
10396 vec_find_any_ne(vector bool int __a, vector bool int __b) {
10397 return (vector bool int)
10398 __builtin_s390_vfaef((vector unsigned int)__a,
10399 (vector unsigned int)__b, 12);
10400 }
10401
10402 static inline __ATTRS_o_ai vector bool int
10403 vec_find_any_ne(vector unsigned int __a, vector unsigned int __b) {
10404 return (vector bool int)__builtin_s390_vfaef(__a, __b, 12);
10405 }
10406
10407 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
10408
10409 static inline __ATTRS_o_ai vector bool char
10410 vec_find_any_ne_cc(vector signed char __a, vector signed char __b, int *__cc) {
10411 return (vector bool char)
10412 __builtin_s390_vfaebs((vector unsigned char)__a,
10413 (vector unsigned char)__b, 12, __cc);
10414 }
10415
10416 static inline __ATTRS_o_ai vector bool char
10417 vec_find_any_ne_cc(vector bool char __a, vector bool char __b, int *__cc) {
10418 return (vector bool char)
10419 __builtin_s390_vfaebs((vector unsigned char)__a,
10420 (vector unsigned char)__b, 12, __cc);
10421 }
10422
10423 static inline __ATTRS_o_ai vector bool char
10424 vec_find_any_ne_cc(vector unsigned char __a, vector unsigned char __b,
10425 int *__cc) {
10426 return (vector bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
10427 }
10428
10429 static inline __ATTRS_o_ai vector bool short
10430 vec_find_any_ne_cc(vector signed short __a, vector signed short __b,
10431 int *__cc) {
10432 return (vector bool short)
10433 __builtin_s390_vfaehs((vector unsigned short)__a,
10434 (vector unsigned short)__b, 12, __cc);
10435 }
10436
10437 static inline __ATTRS_o_ai vector bool short
10438 vec_find_any_ne_cc(vector bool short __a, vector bool short __b, int *__cc) {
10439 return (vector bool short)
10440 __builtin_s390_vfaehs((vector unsigned short)__a,
10441 (vector unsigned short)__b, 12, __cc);
10442 }
10443
10444 static inline __ATTRS_o_ai vector bool short
10445 vec_find_any_ne_cc(vector unsigned short __a, vector unsigned short __b,
10446 int *__cc) {
10447 return (vector bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
10448 }
10449
10450 static inline __ATTRS_o_ai vector bool int
10451 vec_find_any_ne_cc(vector signed int __a, vector signed int __b, int *__cc) {
10452 return (vector bool int)
10453 __builtin_s390_vfaefs((vector unsigned int)__a,
10454 (vector unsigned int)__b, 12, __cc);
10455 }
10456
10457 static inline __ATTRS_o_ai vector bool int
10458 vec_find_any_ne_cc(vector bool int __a, vector bool int __b, int *__cc) {
10459 return (vector bool int)
10460 __builtin_s390_vfaefs((vector unsigned int)__a,
10461 (vector unsigned int)__b, 12, __cc);
10462 }
10463
10464 static inline __ATTRS_o_ai vector bool int
10465 vec_find_any_ne_cc(vector unsigned int __a, vector unsigned int __b,
10466 int *__cc) {
10467 return (vector bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
10468 }
10469
10470 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
10471
10472 static inline __ATTRS_o_ai vector signed char
10473 vec_find_any_ne_idx(vector signed char __a, vector signed char __b) {
10474 return (vector signed char)
10475 __builtin_s390_vfaeb((vector unsigned char)__a,
10476 (vector unsigned char)__b, 8);
10477 }
10478
10479 static inline __ATTRS_o_ai vector unsigned char
10480 vec_find_any_ne_idx(vector bool char __a, vector bool char __b) {
10481 return __builtin_s390_vfaeb((vector unsigned char)__a,
10482 (vector unsigned char)__b, 8);
10483 }
10484
10485 static inline __ATTRS_o_ai vector unsigned char
10486 vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) {
10487 return __builtin_s390_vfaeb(__a, __b, 8);
10488 }
10489
10490 static inline __ATTRS_o_ai vector signed short
10491 vec_find_any_ne_idx(vector signed short __a, vector signed short __b) {
10492 return (vector signed short)
10493 __builtin_s390_vfaeh((vector unsigned short)__a,
10494 (vector unsigned short)__b, 8);
10495 }
10496
10497 static inline __ATTRS_o_ai vector unsigned short
10498 vec_find_any_ne_idx(vector bool short __a, vector bool short __b) {
10499 return __builtin_s390_vfaeh((vector unsigned short)__a,
10500 (vector unsigned short)__b, 8);
10501 }
10502
10503 static inline __ATTRS_o_ai vector unsigned short
10504 vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) {
10505 return __builtin_s390_vfaeh(__a, __b, 8);
10506 }
10507
10508 static inline __ATTRS_o_ai vector signed int
10509 vec_find_any_ne_idx(vector signed int __a, vector signed int __b) {
10510 return (vector signed int)
10511 __builtin_s390_vfaef((vector unsigned int)__a,
10512 (vector unsigned int)__b, 8);
10513 }
10514
10515 static inline __ATTRS_o_ai vector unsigned int
10516 vec_find_any_ne_idx(vector bool int __a, vector bool int __b) {
10517 return __builtin_s390_vfaef((vector unsigned int)__a,
10518 (vector unsigned int)__b, 8);
10519 }
10520
10521 static inline __ATTRS_o_ai vector unsigned int
10522 vec_find_any_ne_idx(vector unsigned int __a, vector unsigned int __b) {
10523 return __builtin_s390_vfaef(__a, __b, 8);
10524 }
10525
10526 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
10527
10528 static inline __ATTRS_o_ai vector signed char
10529 vec_find_any_ne_idx_cc(vector signed char __a, vector signed char __b,
10530 int *__cc) {
10531 return (vector signed char)
10532 __builtin_s390_vfaebs((vector unsigned char)__a,
10533 (vector unsigned char)__b, 8, __cc);
10534 }
10535
10536 static inline __ATTRS_o_ai vector unsigned char
10537 vec_find_any_ne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
10538 return __builtin_s390_vfaebs((vector unsigned char)__a,
10539 (vector unsigned char)__b, 8, __cc);
10540 }
10541
10542 static inline __ATTRS_o_ai vector unsigned char
10543 vec_find_any_ne_idx_cc(vector unsigned char __a, vector unsigned char __b,
10544 int *__cc) {
10545 return __builtin_s390_vfaebs(__a, __b, 8, __cc);
10546 }
10547
10548 static inline __ATTRS_o_ai vector signed short
10549 vec_find_any_ne_idx_cc(vector signed short __a, vector signed short __b,
10550 int *__cc) {
10551 return (vector signed short)
10552 __builtin_s390_vfaehs((vector unsigned short)__a,
10553 (vector unsigned short)__b, 8, __cc);
10554 }
10555
10556 static inline __ATTRS_o_ai vector unsigned short
10557 vec_find_any_ne_idx_cc(vector bool short __a, vector bool short __b,
10558 int *__cc) {
10559 return __builtin_s390_vfaehs((vector unsigned short)__a,
10560 (vector unsigned short)__b, 8, __cc);
10561 }
10562
10563 static inline __ATTRS_o_ai vector unsigned short
10564 vec_find_any_ne_idx_cc(vector unsigned short __a, vector unsigned short __b,
10565 int *__cc) {
10566 return __builtin_s390_vfaehs(__a, __b, 8, __cc);
10567 }
10568
10569 static inline __ATTRS_o_ai vector signed int
10570 vec_find_any_ne_idx_cc(vector signed int __a, vector signed int __b,
10571 int *__cc) {
10572 return (vector signed int)
10573 __builtin_s390_vfaefs((vector unsigned int)__a,
10574 (vector unsigned int)__b, 8, __cc);
10575 }
10576
10577 static inline __ATTRS_o_ai vector unsigned int
10578 vec_find_any_ne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
10579 return __builtin_s390_vfaefs((vector unsigned int)__a,
10580 (vector unsigned int)__b, 8, __cc);
10581 }
10582
10583 static inline __ATTRS_o_ai vector unsigned int
10584 vec_find_any_ne_idx_cc(vector unsigned int __a, vector unsigned int __b,
10585 int *__cc) {
10586 return __builtin_s390_vfaefs(__a, __b, 8, __cc);
10587 }
10588
10589 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
10590
10591 static inline __ATTRS_o_ai vector signed char
10592 vec_find_any_ne_or_0_idx(vector signed char __a, vector signed char __b) {
10593 return (vector signed char)
10594 __builtin_s390_vfaezb((vector unsigned char)__a,
10595 (vector unsigned char)__b, 8);
10596 }
10597
10598 static inline __ATTRS_o_ai vector unsigned char
10599 vec_find_any_ne_or_0_idx(vector bool char __a, vector bool char __b) {
10600 return __builtin_s390_vfaezb((vector unsigned char)__a,
10601 (vector unsigned char)__b, 8);
10602 }
10603
10604 static inline __ATTRS_o_ai vector unsigned char
10605 vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
10606 return __builtin_s390_vfaezb(__a, __b, 8);
10607 }
10608
10609 static inline __ATTRS_o_ai vector signed short
10610 vec_find_any_ne_or_0_idx(vector signed short __a, vector signed short __b) {
10611 return (vector signed short)
10612 __builtin_s390_vfaezh((vector unsigned short)__a,
10613 (vector unsigned short)__b, 8);
10614 }
10615
10616 static inline __ATTRS_o_ai vector unsigned short
10617 vec_find_any_ne_or_0_idx(vector bool short __a, vector bool short __b) {
10618 return __builtin_s390_vfaezh((vector unsigned short)__a,
10619 (vector unsigned short)__b, 8);
10620 }
10621
10622 static inline __ATTRS_o_ai vector unsigned short
10623 vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10624 return __builtin_s390_vfaezh(__a, __b, 8);
10625 }
10626
10627 static inline __ATTRS_o_ai vector signed int
10628 vec_find_any_ne_or_0_idx(vector signed int __a, vector signed int __b) {
10629 return (vector signed int)
10630 __builtin_s390_vfaezf((vector unsigned int)__a,
10631 (vector unsigned int)__b, 8);
10632 }
10633
10634 static inline __ATTRS_o_ai vector unsigned int
10635 vec_find_any_ne_or_0_idx(vector bool int __a, vector bool int __b) {
10636 return __builtin_s390_vfaezf((vector unsigned int)__a,
10637 (vector unsigned int)__b, 8);
10638 }
10639
10640 static inline __ATTRS_o_ai vector unsigned int
10641 vec_find_any_ne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
10642 return __builtin_s390_vfaezf(__a, __b, 8);
10643 }
10644
10645 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
10646
10647 static inline __ATTRS_o_ai vector signed char
10648 vec_find_any_ne_or_0_idx_cc(vector signed char __a, vector signed char __b,
10649 int *__cc) {
10650 return (vector signed char)
10651 __builtin_s390_vfaezbs((vector unsigned char)__a,
10652 (vector unsigned char)__b, 8, __cc);
10653 }
10654
10655 static inline __ATTRS_o_ai vector unsigned char
10656 vec_find_any_ne_or_0_idx_cc(vector bool char __a, vector bool char __b,
10657 int *__cc) {
10658 return __builtin_s390_vfaezbs((vector unsigned char)__a,
10659 (vector unsigned char)__b, 8, __cc);
10660 }
10661
10662 static inline __ATTRS_o_ai vector unsigned char
10663 vec_find_any_ne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
10664 int *__cc) {
10665 return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
10666 }
10667
10668 static inline __ATTRS_o_ai vector signed short
10669 vec_find_any_ne_or_0_idx_cc(vector signed short __a, vector signed short __b,
10670 int *__cc) {
10671 return (vector signed short)
10672 __builtin_s390_vfaezhs((vector unsigned short)__a,
10673 (vector unsigned short)__b, 8, __cc);
10674 }
10675
10676 static inline __ATTRS_o_ai vector unsigned short
10677 vec_find_any_ne_or_0_idx_cc(vector bool short __a, vector bool short __b,
10678 int *__cc) {
10679 return __builtin_s390_vfaezhs((vector unsigned short)__a,
10680 (vector unsigned short)__b, 8, __cc);
10681 }
10682
10683 static inline __ATTRS_o_ai vector unsigned short
10684 vec_find_any_ne_or_0_idx_cc(vector unsigned short __a,
10685 vector unsigned short __b, int *__cc) {
10686 return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
10687 }
10688
10689 static inline __ATTRS_o_ai vector signed int
10690 vec_find_any_ne_or_0_idx_cc(vector signed int __a, vector signed int __b,
10691 int *__cc) {
10692 return (vector signed int)
10693 __builtin_s390_vfaezfs((vector unsigned int)__a,
10694 (vector unsigned int)__b, 8, __cc);
10695 }
10696
10697 static inline __ATTRS_o_ai vector unsigned int
10698 vec_find_any_ne_or_0_idx_cc(vector bool int __a, vector bool int __b,
10699 int *__cc) {
10700 return __builtin_s390_vfaezfs((vector unsigned int)__a,
10701 (vector unsigned int)__b, 8, __cc);
10702 }
10703
10704 static inline __ATTRS_o_ai vector unsigned int
10705 vec_find_any_ne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
10706 int *__cc) {
10707 return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
10708 }
10709
10710 /*-- vec_search_string_cc ---------------------------------------------------*/
10711
10712 #if __ARCH__ >= 13
10713
10714 static inline __ATTRS_o_ai vector unsigned char
10715 vec_search_string_cc(vector signed char __a, vector signed char __b,
10716 vector unsigned char __c, int *__cc) {
10717 return __builtin_s390_vstrsb((vector unsigned char)__a,
10718 (vector unsigned char)__b, __c, __cc);
10719 }
10720
10721 static inline __ATTRS_o_ai vector unsigned char
10722 vec_search_string_cc(vector bool char __a, vector bool char __b,
10723 vector unsigned char __c, int *__cc) {
10724 return __builtin_s390_vstrsb((vector unsigned char)__a,
10725 (vector unsigned char)__b, __c, __cc);
10726 }
10727
10728 static inline __ATTRS_o_ai vector unsigned char
10729 vec_search_string_cc(vector unsigned char __a, vector unsigned char __b,
10730 vector unsigned char __c, int *__cc) {
10731 return __builtin_s390_vstrsb(__a, __b, __c, __cc);
10732 }
10733
10734 static inline __ATTRS_o_ai vector unsigned char
10735 vec_search_string_cc(vector signed short __a, vector signed short __b,
10736 vector unsigned char __c, int *__cc) {
10737 return __builtin_s390_vstrsh((vector unsigned short)__a,
10738 (vector unsigned short)__b, __c, __cc);
10739 }
10740
10741 static inline __ATTRS_o_ai vector unsigned char
10742 vec_search_string_cc(vector bool short __a, vector bool short __b,
10743 vector unsigned char __c, int *__cc) {
10744 return __builtin_s390_vstrsh((vector unsigned short)__a,
10745 (vector unsigned short)__b, __c, __cc);
10746 }
10747
10748 static inline __ATTRS_o_ai vector unsigned char
10749 vec_search_string_cc(vector unsigned short __a, vector unsigned short __b,
10750 vector unsigned char __c, int *__cc) {
10751 return __builtin_s390_vstrsh(__a, __b, __c, __cc);
10752 }
10753
10754 static inline __ATTRS_o_ai vector unsigned char
10755 vec_search_string_cc(vector signed int __a, vector signed int __b,
10756 vector unsigned char __c, int *__cc) {
10757 return __builtin_s390_vstrsf((vector unsigned int)__a,
10758 (vector unsigned int)__b, __c, __cc);
10759 }
10760
10761 static inline __ATTRS_o_ai vector unsigned char
10762 vec_search_string_cc(vector bool int __a, vector bool int __b,
10763 vector unsigned char __c, int *__cc) {
10764 return __builtin_s390_vstrsf((vector unsigned int)__a,
10765 (vector unsigned int)__b, __c, __cc);
10766 }
10767
10768 static inline __ATTRS_o_ai vector unsigned char
10769 vec_search_string_cc(vector unsigned int __a, vector unsigned int __b,
10770 vector unsigned char __c, int *__cc) {
10771 return __builtin_s390_vstrsf(__a, __b, __c, __cc);
10772 }
10773
10774 #endif
10775
10776 /*-- vec_search_string_until_zero_cc ----------------------------------------*/
10777
10778 #if __ARCH__ >= 13
10779
10780 static inline __ATTRS_o_ai vector unsigned char
10781 vec_search_string_until_zero_cc(vector signed char __a,
10782 vector signed char __b,
10783 vector unsigned char __c, int *__cc) {
10784 return __builtin_s390_vstrszb((vector unsigned char)__a,
10785 (vector unsigned char)__b, __c, __cc);
10786 }
10787
10788 static inline __ATTRS_o_ai vector unsigned char
10789 vec_search_string_until_zero_cc(vector bool char __a,
10790 vector bool char __b,
10791 vector unsigned char __c, int *__cc) {
10792 return __builtin_s390_vstrszb((vector unsigned char)__a,
10793 (vector unsigned char)__b, __c, __cc);
10794 }
10795
10796 static inline __ATTRS_o_ai vector unsigned char
10797 vec_search_string_until_zero_cc(vector unsigned char __a,
10798 vector unsigned char __b,
10799 vector unsigned char __c, int *__cc) {
10800 return __builtin_s390_vstrszb(__a, __b, __c, __cc);
10801 }
10802
10803 static inline __ATTRS_o_ai vector unsigned char
10804 vec_search_string_until_zero_cc(vector signed short __a,
10805 vector signed short __b,
10806 vector unsigned char __c, int *__cc) {
10807 return __builtin_s390_vstrszh((vector unsigned short)__a,
10808 (vector unsigned short)__b, __c, __cc);
10809 }
10810
10811 static inline __ATTRS_o_ai vector unsigned char
10812 vec_search_string_until_zero_cc(vector bool short __a,
10813 vector bool short __b,
10814 vector unsigned char __c, int *__cc) {
10815 return __builtin_s390_vstrszh((vector unsigned short)__a,
10816 (vector unsigned short)__b, __c, __cc);
10817 }
10818
10819 static inline __ATTRS_o_ai vector unsigned char
10820 vec_search_string_until_zero_cc(vector unsigned short __a,
10821 vector unsigned short __b,
10822 vector unsigned char __c, int *__cc) {
10823 return __builtin_s390_vstrszh(__a, __b, __c, __cc);
10824 }
10825
10826 static inline __ATTRS_o_ai vector unsigned char
10827 vec_search_string_until_zero_cc(vector signed int __a,
10828 vector signed int __b,
10829 vector unsigned char __c, int *__cc) {
10830 return __builtin_s390_vstrszf((vector unsigned int)__a,
10831 (vector unsigned int)__b, __c, __cc);
10832 }
10833
10834 static inline __ATTRS_o_ai vector unsigned char
10835 vec_search_string_until_zero_cc(vector bool int __a,
10836 vector bool int __b,
10837 vector unsigned char __c, int *__cc) {
10838 return __builtin_s390_vstrszf((vector unsigned int)__a,
10839 (vector unsigned int)__b, __c, __cc);
10840 }
10841
10842 static inline __ATTRS_o_ai vector unsigned char
10843 vec_search_string_until_zero_cc(vector unsigned int __a,
10844 vector unsigned int __b,
10845 vector unsigned char __c, int *__cc) {
10846 return __builtin_s390_vstrszf(__a, __b, __c, __cc);
10847 }
10848
10849 #endif
10850
10851 #undef __constant_pow2_range
10852 #undef __constant_range
10853 #undef __constant
10854 #undef __ATTRS_o
10855 #undef __ATTRS_o_ai
10856 #undef __ATTRS_ai
10857
10858 #else
10859
10860 #error "Use -fzvector to enable vector extensions"
10861
10862 #endif
vec_srl
static __inline__ vector signed char __ATTRS_o_ai vec_srl(vector signed char __a, vector unsigned char __b)
Definition: altivec.h:9657
vec_rl
static __inline__ vector signed char __ATTRS_o_ai vec_rl(vector signed char __a, vector unsigned char __b)
Definition: altivec.h:7589
vec_any_le
static __inline__ int __ATTRS_o_ai vec_any_le(vector signed char __a, vector signed char __b)
Definition: altivec.h:15405
vec_packs
static __inline__ vector signed char __ATTRS_o_ai vec_packs(vector short __a, vector short __b)
Definition: altivec.h:7017
vec_ceil
static __inline__ vector float __ATTRS_o_ai vec_ceil(vector float __a)
Definition: altivec.h:1587
vec_trunc
static __inline__ vector float __ATTRS_o_ai vec_trunc(vector float __a)
Definition: altivec.h:11585
vec_packsu
static __inline__ vector unsigned char __ATTRS_o_ai vec_packsu(vector short __a, vector short __b)
Definition: altivec.h:7146
vec_cmple
static __inline__ vector bool char __ATTRS_o_ai vec_cmple(vector signed char __a, vector signed char __b)
Definition: altivec.h:2084
vec_any_eq
static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed char __a, vector signed char __b)
Definition: altivec.h:14859
__attribute__
vector signed char unaligned_vec_schar __attribute__((aligned(1)))
Zeroes the upper 128 bits (bits 255:128) of all YMM registers.
Definition: altivec.h:16347
vec_sel
static __inline__ vector signed char __ATTRS_o_ai vec_sel(vector signed char __a, vector signed char __b, vector unsigned char __c)
Definition: altivec.h:7778
vec_mergel
static __inline__ vector signed char __ATTRS_o_ai vec_mergel(vector signed char __a, vector signed char __b)
Definition: altivec.h:4748
vec_mulo
static __inline__ vector short __ATTRS_o_ai vec_mulo(vector signed char __a, vector signed char __b)
Definition: altivec.h:5742
vec_unsigned
static __inline__ vector unsigned int __ATTRS_o_ai vec_unsigned(vector float __a)
Definition: altivec.h:3002
vec_nor
static __inline__ vector signed char __ATTRS_o_ai vec_nor(vector signed char __a, vector signed char __b)
Definition: altivec.h:6042
vec_splat
static __inline__ vector signed char __ATTRS_o_ai vec_splat(vector signed char __a, unsigned const int __b)
Definition: altivec.h:9184
vec_cmplt
static __inline__ vector bool char __ATTRS_o_ai vec_cmplt(vector signed char __a, vector signed char __b)
Definition: altivec.h:2140
vec_sll
static __inline__ vector signed char __ATTRS_o_ai vec_sll(vector signed char __a, vector unsigned char __b)
Definition: altivec.h:8618
vec_sldw
static __inline__ vector signed char __ATTRS_o_ai vec_sldw(vector signed char __a, vector signed char __b, unsigned const int __c)
Definition: altivec.h:8405
vec_all_ge
static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed char __a, vector signed char __b)
Definition: altivec.h:13905
vec_any_ne
static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed char __a, vector signed char __b)
Definition: altivec.h:15770
vec_mladd
static __inline__ vector signed short __ATTRS_o_ai vec_mladd(vector signed short, vector signed short, vector signed short)
__conv
#define __conv
Definition: opencl-c.h:32
__a
static __inline__ void int __a
Definition: emmintrin.h:4185
vec_nabs
static vector float __ATTRS_o_ai vec_nabs(vector float __a)
Definition: altivec.h:16736
vec_insert
static __inline__ vector signed char __ATTRS_o_ai vec_insert(signed char __a, vector signed char __b, int __c)
Definition: altivec.h:12626
vec_xl
static __ATTRS_o_ai vector signed char vec_xl(signed long long __offset, signed char *__ptr)
Definition: altivec.h:16355
vec_any_lt
static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed char __a, vector signed char __b)
Definition: altivec.h:15584
vec_madd
static __inline__ vector signed short __ATTRS_o_ai vec_madd(vector signed short __a, vector signed short __b, vector signed short __c)
Definition: altivec.h:4143
vec_all_nge
static __inline__ int __ATTRS_o_ai vec_all_nge(vector float __a, vector float __b)
Definition: altivec.h:14802
vec_float
static __inline__ vector float __ATTRS_o_ai vec_float(vector signed int __a)
Definition: altivec.h:3044
vec_all_gt
static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed char __a, vector signed char __b)
Definition: altivec.h:14076
vec_floor
static __inline__ vector float __ATTRS_o_ai vec_floor(vector float __a)
Definition: altivec.h:3424
vec_andc
static __inline__ vector signed char __ATTRS_o_ai vec_andc(vector signed char __a, vector signed char __b)
Definition: altivec.h:1163
vec_any_ge
static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed char __a, vector signed char __b)
Definition: altivec.h:15047
vec_signed
static __inline__ vector signed int __ATTRS_o_ai vec_signed(vector float __a)
Definition: altivec.h:2960
vec_cmpeq
static __inline__ vector bool char __ATTRS_o_ai vec_cmpeq(vector signed char __a, vector signed char __b)
Definition: altivec.h:1625
vec_splats
static __inline__ vector signed char __ATTRS_o_ai vec_splats(signed char __a)
Definition: altivec.h:13654
vec_subc
static __inline__ vector signed int __ATTRS_o_ai vec_subc(vector signed int __a, vector signed int __b)
Definition: altivec.h:11144
vec_max
static __inline__ vector signed char __ATTRS_o_ai vec_max(vector signed char __a, vector signed char __b)
Definition: altivec.h:4225
vec_sld
static __inline__ vector signed int __ATTRS_o_ai vec_sld(vector signed int, vector signed int, unsigned const int __c)
Definition: altivec.h:8253
__b
static __inline__ vector float vector float __b
Definition: altivec.h:520
vec_perm
static __inline__ vector signed char __ATTRS_o_ai vec_perm(vector signed char __a, vector signed char __b, vector unsigned char __c)
Definition: altivec.h:7264
vec_cmpge
static __inline__ vector bool char __ATTRS_o_ai vec_cmpge(vector signed char __a, vector signed char __b)
Definition: altivec.h:1968
vec_unpackh
static __inline__ vector short __ATTRS_o_ai vec_unpackh(vector signed char __a)
Definition: altivec.h:11612
vec_all_ne
static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed char __a, vector signed char __b)
Definition: altivec.h:14614
vec_all_lt
static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed char __a, vector signed char __b)
Definition: altivec.h:14426
vec_xst
static __ATTRS_o_ai void vec_xst(vector signed char __vec, signed long long __offset, signed char *__ptr)
Definition: altivec.h:16514
vec_splat_s32
static __inline__ vector int __ATTRS_o_ai vec_splat_s32(signed char __a)
Definition: altivec.h:9447
vec_splat_s8
static __inline__ vector signed char __ATTRS_o_ai vec_splat_s8(signed char __a)
Definition: altivec.h:9414
vec_addc
static __inline__ vector signed int __ATTRS_o_ai vec_addc(vector signed int __a, vector signed int __b)
Definition: altivec.h:527
vec_cmpgt
static __inline__ vector bool char __ATTRS_o_ai vec_cmpgt(vector signed char __a, vector signed char __b)
Definition: altivec.h:1908
vec_nmsub
static __inline__ vector float __ATTRS_o_ai vec_nmsub(vector float __a, vector float __b, vector float __c)
Definition: altivec.h:6012
vec_splat_u8
static __inline__ vector unsigned char __ATTRS_o_ai vec_splat_u8(unsigned char __a)
Definition: altivec.h:9462
vec_splat_u16
static __inline__ vector unsigned short __ATTRS_o_ai vec_splat_u16(signed char __a)
Definition: altivec.h:9470
vec_promote
static __inline__ vector signed char __ATTRS_o_ai vec_promote(signed char __a, int __b)
Definition: altivec.h:13606
vec_avg
static __inline__ vector signed char __ATTRS_o_ai vec_avg(vector signed char __a, vector signed char __b)
Definition: altivec.h:1514
vec_splat_u32
static __inline__ vector unsigned int __ATTRS_o_ai vec_splat_u32(signed char __a)
Definition: altivec.h:9478
vec_any_gt
static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed char __a, vector signed char __b)
Definition: altivec.h:15226
vec_pack
static __inline__ vector signed char __ATTRS_o_ai vec_pack(vector signed short __a, vector signed short __b)
Definition: altivec.h:6691
vec_mule
static __inline__ vector short __ATTRS_o_ai vec_mule(vector signed char __a, vector signed char __b)
Definition: altivec.h:5640
__value
static __inline__ void unsigned int __value
Definition: movdirintrin.h:20
vec_extract
static __inline__ signed char __ATTRS_o_ai vec_extract(vector signed char __a, int __b)
Definition: altivec.h:12501
vec_all_nan
static __inline__ int __ATTRS_o_ai vec_all_nan(vector float __a)
Definition: altivec.h:14598
__ATTRS_o_ai
#define __ATTRS_o_ai
Definition: altivec.h:42
vec_revb
static __inline__ vector bool char __ATTRS_o_ai vec_revb(vector bool char __a)
Definition: altivec.h:16232
vec_abs
static __inline__ vector signed char __ATTRS_o_ai vec_abs(vector signed char __a)
Definition: altivec.h:115
vec_round
static __inline__ vector float __ATTRS_o_ai vec_round(vector float __a)
Definition: altivec.h:7698
vec_unpackl
static __inline__ vector short __ATTRS_o_ai vec_unpackl(vector signed char __a)
Definition: altivec.h:11751
vec_all_ngt
static __inline__ int __ATTRS_o_ai vec_all_ngt(vector float __a, vector float __b)
Definition: altivec.h:14820
vec_all_le
static __inline__ int __ATTRS_o_ai vec_all_le(vector signed char __a, vector signed char __b)
Definition: altivec.h:14254
vec_reve
static __ATTRS_o_ai vector bool char vec_reve(vector bool char __a)
Definition: altivec.h:16162
vec_mergeh
static __inline__ vector signed char __ATTRS_o_ai vec_mergeh(vector signed char __a, vector signed char __b)
Definition: altivec.h:4478
vec_splat_s16
static __inline__ vector short __ATTRS_o_ai vec_splat_s16(signed char __a)
Definition: altivec.h:9431
vec_min
static __inline__ vector signed char __ATTRS_o_ai vec_min(vector signed char __a, vector signed char __b)
Definition: altivec.h:5129
__c
static __inline__ vector float vector float vector float __c
Definition: altivec.h:4187
vec_all_eq
static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed char __a, vector signed char __b)
Definition: altivec.h:13718