clang 20.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
29extern __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
45static inline __ATTRS_o_ai signed char
46vec_extract(__vector signed char __vec, int __index) {
47 return __vec[__index & 15];
48}
49
50static inline __ATTRS_o_ai unsigned char
51vec_extract(__vector __bool char __vec, int __index) {
52 return __vec[__index & 15];
53}
54
55static inline __ATTRS_o_ai unsigned char
56vec_extract(__vector unsigned char __vec, int __index) {
57 return __vec[__index & 15];
58}
59
60static inline __ATTRS_o_ai signed short
61vec_extract(__vector signed short __vec, int __index) {
62 return __vec[__index & 7];
63}
64
65static inline __ATTRS_o_ai unsigned short
66vec_extract(__vector __bool short __vec, int __index) {
67 return __vec[__index & 7];
68}
69
70static inline __ATTRS_o_ai unsigned short
71vec_extract(__vector unsigned short __vec, int __index) {
72 return __vec[__index & 7];
73}
74
75static inline __ATTRS_o_ai signed int
76vec_extract(__vector signed int __vec, int __index) {
77 return __vec[__index & 3];
78}
79
80static inline __ATTRS_o_ai unsigned int
81vec_extract(__vector __bool int __vec, int __index) {
82 return __vec[__index & 3];
83}
84
85static inline __ATTRS_o_ai unsigned int
86vec_extract(__vector unsigned int __vec, int __index) {
87 return __vec[__index & 3];
88}
89
90static inline __ATTRS_o_ai signed long long
91vec_extract(__vector signed long long __vec, int __index) {
92 return __vec[__index & 1];
93}
94
95static inline __ATTRS_o_ai unsigned long long
96vec_extract(__vector __bool long long __vec, int __index) {
97 return __vec[__index & 1];
98}
99
100static inline __ATTRS_o_ai unsigned long long
101vec_extract(__vector unsigned long long __vec, int __index) {
102 return __vec[__index & 1];
103}
104
105#if __ARCH__ >= 12
106static inline __ATTRS_o_ai float
107vec_extract(__vector float __vec, int __index) {
108 return __vec[__index & 3];
109}
110#endif
111
112static inline __ATTRS_o_ai double
113vec_extract(__vector double __vec, int __index) {
114 return __vec[__index & 1];
115}
116
117/*-- vec_insert -------------------------------------------------------------*/
118
119static inline __ATTRS_o_ai __vector signed char
120vec_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.
126static inline __ATTRS_o_ai __vector unsigned char
127vec_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
133static inline __ATTRS_o_ai __vector unsigned char
134vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
135 __vec[__index & 15] = __scalar;
136 return __vec;
137}
138
139static inline __ATTRS_o_ai __vector signed short
140vec_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.
146static inline __ATTRS_o_ai __vector unsigned short
147vec_insert(unsigned short __scalar, __vector __bool short __vec,
148 int __index) {
149 __vector unsigned short __newvec = (__vector unsigned short)__vec;
150 __newvec[__index & 7] = (unsigned short)__scalar;
151 return __newvec;
152}
153
154static inline __ATTRS_o_ai __vector unsigned short
155vec_insert(unsigned short __scalar, __vector unsigned short __vec,
156 int __index) {
157 __vec[__index & 7] = __scalar;
158 return __vec;
159}
160
161static inline __ATTRS_o_ai __vector signed int
162vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
163 __vec[__index & 3] = __scalar;
164 return __vec;
165}
166
167// This prototype is deprecated.
168static inline __ATTRS_o_ai __vector unsigned int
169vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
170 __vector unsigned int __newvec = (__vector unsigned int)__vec;
171 __newvec[__index & 3] = __scalar;
172 return __newvec;
173}
174
175static inline __ATTRS_o_ai __vector unsigned int
176vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
177 __vec[__index & 3] = __scalar;
178 return __vec;
179}
180
181static inline __ATTRS_o_ai __vector signed long long
182vec_insert(signed long long __scalar, __vector signed long long __vec,
183 int __index) {
184 __vec[__index & 1] = __scalar;
185 return __vec;
186}
187
188// This prototype is deprecated.
189static inline __ATTRS_o_ai __vector unsigned long long
190vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
191 int __index) {
192 __vector unsigned long long __newvec = (__vector unsigned long long)__vec;
193 __newvec[__index & 1] = __scalar;
194 return __newvec;
195}
196
197static inline __ATTRS_o_ai __vector unsigned long long
198vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
199 int __index) {
200 __vec[__index & 1] = __scalar;
201 return __vec;
202}
203
204#if __ARCH__ >= 12
205static inline __ATTRS_o_ai __vector float
206vec_insert(float __scalar, __vector float __vec, int __index) {
207 __vec[__index & 1] = __scalar;
208 return __vec;
209}
210#endif
211
212static inline __ATTRS_o_ai __vector double
213vec_insert(double __scalar, __vector double __vec, int __index) {
214 __vec[__index & 1] = __scalar;
215 return __vec;
216}
217
218/*-- vec_promote ------------------------------------------------------------*/
219
220static inline __ATTRS_o_ai __vector signed char
221vec_promote(signed char __scalar, int __index) {
222 const __vector signed char __zero = (__vector signed char)0;
223 __vector signed char __vec = __builtin_shufflevector(__zero, __zero,
224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
225 __vec[__index & 15] = __scalar;
226 return __vec;
227}
228
229static inline __ATTRS_o_ai __vector unsigned char
230vec_promote(unsigned char __scalar, int __index) {
231 const __vector unsigned char __zero = (__vector unsigned char)0;
232 __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
233 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
234 __vec[__index & 15] = __scalar;
235 return __vec;
236}
237
238static inline __ATTRS_o_ai __vector signed short
239vec_promote(signed short __scalar, int __index) {
240 const __vector signed short __zero = (__vector signed short)0;
241 __vector signed short __vec = __builtin_shufflevector(__zero, __zero,
242 -1, -1, -1, -1, -1, -1, -1, -1);
243 __vec[__index & 7] = __scalar;
244 return __vec;
245}
246
247static inline __ATTRS_o_ai __vector unsigned short
248vec_promote(unsigned short __scalar, int __index) {
249 const __vector unsigned short __zero = (__vector unsigned short)0;
250 __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
251 -1, -1, -1, -1, -1, -1, -1, -1);
252 __vec[__index & 7] = __scalar;
253 return __vec;
254}
255
256static inline __ATTRS_o_ai __vector signed int
257vec_promote(signed int __scalar, int __index) {
258 const __vector signed int __zero = (__vector signed int)0;
259 __vector signed int __vec = __builtin_shufflevector(__zero, __zero,
260 -1, -1, -1, -1);
261 __vec[__index & 3] = __scalar;
262 return __vec;
263}
264
265static inline __ATTRS_o_ai __vector unsigned int
266vec_promote(unsigned int __scalar, int __index) {
267 const __vector unsigned int __zero = (__vector unsigned int)0;
268 __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
269 -1, -1, -1, -1);
270 __vec[__index & 3] = __scalar;
271 return __vec;
272}
273
274static inline __ATTRS_o_ai __vector signed long long
275vec_promote(signed long long __scalar, int __index) {
276 const __vector signed long long __zero = (__vector signed long long)0;
277 __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
278 -1, -1);
279 __vec[__index & 1] = __scalar;
280 return __vec;
281}
282
283static inline __ATTRS_o_ai __vector unsigned long long
284vec_promote(unsigned long long __scalar, int __index) {
285 const __vector unsigned long long __zero = (__vector unsigned long long)0;
286 __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
287 -1, -1);
288 __vec[__index & 1] = __scalar;
289 return __vec;
290}
291
292#if __ARCH__ >= 12
293static inline __ATTRS_o_ai __vector float
294vec_promote(float __scalar, int __index) {
295 const __vector float __zero = (__vector float)0.0f;
296 __vector float __vec = __builtin_shufflevector(__zero, __zero,
297 -1, -1, -1, -1);
298 __vec[__index & 3] = __scalar;
299 return __vec;
300}
301#endif
302
303static inline __ATTRS_o_ai __vector double
304vec_promote(double __scalar, int __index) {
305 const __vector double __zero = (__vector double)0.0;
306 __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
307 __vec[__index & 1] = __scalar;
308 return __vec;
309}
310
311/*-- vec_insert_and_zero ----------------------------------------------------*/
312
313static inline __ATTRS_o_ai __vector signed char
314vec_insert_and_zero(const signed char *__ptr) {
315 __vector signed char __vec = (__vector signed char)0;
316 __vec[7] = *__ptr;
317 return __vec;
318}
319
320static inline __ATTRS_o_ai __vector unsigned char
321vec_insert_and_zero(const unsigned char *__ptr) {
322 __vector unsigned char __vec = (__vector unsigned char)0;
323 __vec[7] = *__ptr;
324 return __vec;
325}
326
327static inline __ATTRS_o_ai __vector signed short
328vec_insert_and_zero(const signed short *__ptr) {
329 __vector signed short __vec = (__vector signed short)0;
330 __vec[3] = *__ptr;
331 return __vec;
332}
333
334static inline __ATTRS_o_ai __vector unsigned short
335vec_insert_and_zero(const unsigned short *__ptr) {
336 __vector unsigned short __vec = (__vector unsigned short)0;
337 __vec[3] = *__ptr;
338 return __vec;
339}
340
341static inline __ATTRS_o_ai __vector signed int
342vec_insert_and_zero(const signed int *__ptr) {
343 __vector signed int __vec = (__vector signed int)0;
344 __vec[1] = *__ptr;
345 return __vec;
346}
347
348static inline __ATTRS_o_ai __vector unsigned int
349vec_insert_and_zero(const unsigned int *__ptr) {
350 __vector unsigned int __vec = (__vector unsigned int)0;
351 __vec[1] = *__ptr;
352 return __vec;
353}
354
355static inline __ATTRS_o_ai __vector signed long long
356vec_insert_and_zero(const signed long long *__ptr) {
357 __vector signed long long __vec = (__vector signed long long)0;
358 __vec[0] = *__ptr;
359 return __vec;
360}
361
362static inline __ATTRS_o_ai __vector unsigned long long
363vec_insert_and_zero(const unsigned long long *__ptr) {
364 __vector unsigned long long __vec = (__vector unsigned long long)0;
365 __vec[0] = *__ptr;
366 return __vec;
367}
368
369#if __ARCH__ >= 12
370static inline __ATTRS_o_ai __vector float
371vec_insert_and_zero(const float *__ptr) {
372 __vector float __vec = (__vector float)0.0f;
373 __vec[1] = *__ptr;
374 return __vec;
375}
376#endif
377
378static inline __ATTRS_o_ai __vector double
379vec_insert_and_zero(const double *__ptr) {
380 __vector double __vec = (__vector double)0.0;
381 __vec[0] = *__ptr;
382 return __vec;
383}
384
385/*-- vec_perm ---------------------------------------------------------------*/
386
387static inline __ATTRS_o_ai __vector signed char
388vec_perm(__vector signed char __a, __vector signed char __b,
389 __vector unsigned char __c) {
390 return (__vector signed char)__builtin_s390_vperm(
391 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
392}
393
394static inline __ATTRS_o_ai __vector unsigned char
395vec_perm(__vector unsigned char __a, __vector unsigned char __b,
396 __vector unsigned char __c) {
397 return (__vector unsigned char)__builtin_s390_vperm(
398 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
399}
400
401static inline __ATTRS_o_ai __vector __bool char
402vec_perm(__vector __bool char __a, __vector __bool char __b,
403 __vector unsigned char __c) {
404 return (__vector __bool char)__builtin_s390_vperm(
405 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
406}
407
408static inline __ATTRS_o_ai __vector signed short
409vec_perm(__vector signed short __a, __vector signed short __b,
410 __vector unsigned char __c) {
411 return (__vector signed short)__builtin_s390_vperm(
412 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
413}
414
415static inline __ATTRS_o_ai __vector unsigned short
416vec_perm(__vector unsigned short __a, __vector unsigned short __b,
417 __vector unsigned char __c) {
418 return (__vector unsigned short)__builtin_s390_vperm(
419 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
420}
421
422static inline __ATTRS_o_ai __vector __bool short
423vec_perm(__vector __bool short __a, __vector __bool short __b,
424 __vector unsigned char __c) {
425 return (__vector __bool short)__builtin_s390_vperm(
426 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
427}
428
429static inline __ATTRS_o_ai __vector signed int
430vec_perm(__vector signed int __a, __vector signed int __b,
431 __vector unsigned char __c) {
432 return (__vector signed int)__builtin_s390_vperm(
433 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
434}
435
436static inline __ATTRS_o_ai __vector unsigned int
437vec_perm(__vector unsigned int __a, __vector unsigned int __b,
438 __vector unsigned char __c) {
439 return (__vector unsigned int)__builtin_s390_vperm(
440 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
441}
442
443static inline __ATTRS_o_ai __vector __bool int
444vec_perm(__vector __bool int __a, __vector __bool int __b,
445 __vector unsigned char __c) {
446 return (__vector __bool int)__builtin_s390_vperm(
447 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
448}
449
450static inline __ATTRS_o_ai __vector signed long long
451vec_perm(__vector signed long long __a, __vector signed long long __b,
452 __vector unsigned char __c) {
453 return (__vector signed long long)__builtin_s390_vperm(
454 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
455}
456
457static inline __ATTRS_o_ai __vector unsigned long long
458vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
459 __vector unsigned char __c) {
460 return (__vector unsigned long long)__builtin_s390_vperm(
461 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
462}
463
464static inline __ATTRS_o_ai __vector __bool long long
465vec_perm(__vector __bool long long __a, __vector __bool long long __b,
466 __vector unsigned char __c) {
467 return (__vector __bool long long)__builtin_s390_vperm(
468 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
469}
470
471static inline __ATTRS_o_ai __vector signed __int128
472vec_perm(__vector signed __int128 __a, __vector signed __int128 __b,
473 __vector unsigned char __c) {
474 return (__vector signed __int128)__builtin_s390_vperm(
475 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
476}
477
478static inline __ATTRS_o_ai __vector unsigned __int128
479vec_perm(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
480 __vector unsigned char __c) {
481 return (__vector unsigned __int128)__builtin_s390_vperm(
482 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
483}
484
485static inline __ATTRS_o_ai __vector __bool __int128
486vec_perm(__vector __bool __int128 __a, __vector __bool __int128 __b,
487 __vector unsigned char __c) {
488 return (__vector __bool __int128)__builtin_s390_vperm(
489 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
490}
491
492#if __ARCH__ >= 12
493static inline __ATTRS_o_ai __vector float
494vec_perm(__vector float __a, __vector float __b,
495 __vector unsigned char __c) {
496 return (__vector float)__builtin_s390_vperm(
497 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
498}
499#endif
500
501static inline __ATTRS_o_ai __vector double
502vec_perm(__vector double __a, __vector double __b,
503 __vector unsigned char __c) {
504 return (__vector double)__builtin_s390_vperm(
505 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
506}
507
508/*-- vec_permi --------------------------------------------------------------*/
509
510// This prototype is deprecated.
511extern __ATTRS_o __vector signed long long
512vec_permi(__vector signed long long __a, __vector signed long long __b,
513 int __c)
514 __constant_range(__c, 0, 3);
515
516// This prototype is deprecated.
517extern __ATTRS_o __vector unsigned long long
518vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
519 int __c)
520 __constant_range(__c, 0, 3);
521
522// This prototype is deprecated.
523extern __ATTRS_o __vector __bool long long
524vec_permi(__vector __bool long long __a, __vector __bool long long __b,
525 int __c)
526 __constant_range(__c, 0, 3);
527
528// This prototype is deprecated.
529extern __ATTRS_o __vector double
530vec_permi(__vector double __a, __vector double __b, int __c)
531 __constant_range(__c, 0, 3);
532
533#define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
534 __builtin_s390_vpdi((__vector unsigned long long)(X), \
535 (__vector unsigned long long)(Y), \
536 (((Z) & 2) << 1) | ((Z) & 1)))
537
538/*-- vec_bperm --------------------------------------------------------------*/
539
540#if __ARCH__ >= 12
541static inline __ATTRS_ai __vector unsigned long long
542vec_bperm(__vector unsigned __int128 __a, __vector unsigned char __b) {
543 return __builtin_s390_vbperm((__vector unsigned char)__a, __b);
544}
545#endif
546
547/*-- vec_bperm_u128 ---------------------------------------------------------*/
548
549#if __ARCH__ >= 12
550// This prototype is deprecated.
551static inline __ATTRS_ai __vector unsigned long long
552vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
553 return __builtin_s390_vbperm(__a, __b);
554}
555#endif
556
557/*-- vec_revb ---------------------------------------------------------------*/
558
559static inline __ATTRS_o_ai __vector signed short
560vec_revb(__vector signed short __vec) {
561 return (__vector signed short)
562 __builtin_s390_vlbrh((__vector unsigned short)__vec);
563}
564
565static inline __ATTRS_o_ai __vector unsigned short
566vec_revb(__vector unsigned short __vec) {
567 return __builtin_s390_vlbrh(__vec);
568}
569
570static inline __ATTRS_o_ai __vector signed int
571vec_revb(__vector signed int __vec) {
572 return (__vector signed int)
573 __builtin_s390_vlbrf((__vector unsigned int)__vec);
574}
575
576static inline __ATTRS_o_ai __vector unsigned int
577vec_revb(__vector unsigned int __vec) {
578 return __builtin_s390_vlbrf(__vec);
579}
580
581static inline __ATTRS_o_ai __vector signed long long
582vec_revb(__vector signed long long __vec) {
583 return (__vector signed long long)
584 __builtin_s390_vlbrg((__vector unsigned long long)__vec);
585}
586
587static inline __ATTRS_o_ai __vector unsigned long long
588vec_revb(__vector unsigned long long __vec) {
589 return __builtin_s390_vlbrg(__vec);
590}
591
592static inline __ATTRS_o_ai __vector signed __int128
593vec_revb(__vector signed __int128 __vec) {
594 return (__vector signed __int128)
595 __builtin_s390_vlbrq((unsigned __int128)__vec);
596}
597
598static inline __ATTRS_o_ai __vector unsigned __int128
599vec_revb(__vector unsigned __int128 __vec) {
600 return (__vector unsigned __int128)
601 __builtin_s390_vlbrq((unsigned __int128)__vec);
602}
603
604#if __ARCH__ >= 12
605static inline __ATTRS_o_ai __vector float
606vec_revb(__vector float __vec) {
607 return (__vector float)
608 __builtin_s390_vlbrf((__vector unsigned int)__vec);
609}
610#endif
611
612static inline __ATTRS_o_ai __vector double
613vec_revb(__vector double __vec) {
614 return (__vector double)
615 __builtin_s390_vlbrg((__vector unsigned long long)__vec);
616}
617
618/*-- vec_reve ---------------------------------------------------------------*/
619
620static inline __ATTRS_o_ai __vector signed char
621vec_reve(__vector signed char __vec) {
622 return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
623 __vec[11], __vec[10], __vec[9], __vec[8],
624 __vec[7], __vec[6], __vec[5], __vec[4],
625 __vec[3], __vec[2], __vec[1], __vec[0] };
626}
627
628static inline __ATTRS_o_ai __vector unsigned char
629vec_reve(__vector unsigned char __vec) {
630 return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
631 __vec[11], __vec[10], __vec[9], __vec[8],
632 __vec[7], __vec[6], __vec[5], __vec[4],
633 __vec[3], __vec[2], __vec[1], __vec[0] };
634}
635
636static inline __ATTRS_o_ai __vector __bool char
637vec_reve(__vector __bool char __vec) {
638 return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
639 __vec[11], __vec[10], __vec[9], __vec[8],
640 __vec[7], __vec[6], __vec[5], __vec[4],
641 __vec[3], __vec[2], __vec[1], __vec[0] };
642}
643
644static inline __ATTRS_o_ai __vector signed short
645vec_reve(__vector signed short __vec) {
646 return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
647 __vec[3], __vec[2], __vec[1], __vec[0] };
648}
649
650static inline __ATTRS_o_ai __vector unsigned short
651vec_reve(__vector unsigned short __vec) {
652 return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
653 __vec[3], __vec[2], __vec[1], __vec[0] };
654}
655
656static inline __ATTRS_o_ai __vector __bool short
657vec_reve(__vector __bool short __vec) {
658 return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
659 __vec[3], __vec[2], __vec[1], __vec[0] };
660}
661
662static inline __ATTRS_o_ai __vector signed int
663vec_reve(__vector signed int __vec) {
664 return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
665}
666
667static inline __ATTRS_o_ai __vector unsigned int
668vec_reve(__vector unsigned int __vec) {
669 return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
670}
671
672static inline __ATTRS_o_ai __vector __bool int
673vec_reve(__vector __bool int __vec) {
674 return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
675}
676
677static inline __ATTRS_o_ai __vector signed long long
678vec_reve(__vector signed long long __vec) {
679 return (__vector signed long long) { __vec[1], __vec[0] };
680}
681
682static inline __ATTRS_o_ai __vector unsigned long long
683vec_reve(__vector unsigned long long __vec) {
684 return (__vector unsigned long long) { __vec[1], __vec[0] };
685}
686
687static inline __ATTRS_o_ai __vector __bool long long
688vec_reve(__vector __bool long long __vec) {
689 return (__vector __bool long long) { __vec[1], __vec[0] };
690}
691
692#if __ARCH__ >= 12
693static inline __ATTRS_o_ai __vector float
694vec_reve(__vector float __vec) {
695 return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
696}
697#endif
698
699static inline __ATTRS_o_ai __vector double
700vec_reve(__vector double __vec) {
701 return (__vector double) { __vec[1], __vec[0] };
702}
703
704/*-- vec_sel ----------------------------------------------------------------*/
705
706static inline __ATTRS_o_ai __vector signed char
707vec_sel(__vector signed char __a, __vector signed char __b,
708 __vector unsigned char __c) {
709 return (((__vector signed char)__c & __b) |
710 (~(__vector signed char)__c & __a));
711}
712
713static inline __ATTRS_o_ai __vector signed char
714vec_sel(__vector signed char __a, __vector signed char __b,
715 __vector __bool char __c) {
716 return (((__vector signed char)__c & __b) |
717 (~(__vector signed char)__c & __a));
718}
719
720static inline __ATTRS_o_ai __vector __bool char
721vec_sel(__vector __bool char __a, __vector __bool char __b,
722 __vector unsigned char __c) {
723 return (((__vector __bool char)__c & __b) |
724 (~(__vector __bool char)__c & __a));
725}
726
727static inline __ATTRS_o_ai __vector __bool char
728vec_sel(__vector __bool char __a, __vector __bool char __b,
729 __vector __bool char __c) {
730 return (__c & __b) | (~__c & __a);
731}
732
733static inline __ATTRS_o_ai __vector unsigned char
734vec_sel(__vector unsigned char __a, __vector unsigned char __b,
735 __vector unsigned char __c) {
736 return (__c & __b) | (~__c & __a);
737}
738
739static inline __ATTRS_o_ai __vector unsigned char
740vec_sel(__vector unsigned char __a, __vector unsigned char __b,
741 __vector __bool char __c) {
742 return (((__vector unsigned char)__c & __b) |
743 (~(__vector unsigned char)__c & __a));
744}
745
746static inline __ATTRS_o_ai __vector signed short
747vec_sel(__vector signed short __a, __vector signed short __b,
748 __vector unsigned short __c) {
749 return (((__vector signed short)__c & __b) |
750 (~(__vector signed short)__c & __a));
751}
752
753static inline __ATTRS_o_ai __vector signed short
754vec_sel(__vector signed short __a, __vector signed short __b,
755 __vector __bool short __c) {
756 return (((__vector signed short)__c & __b) |
757 (~(__vector signed short)__c & __a));
758}
759
760static inline __ATTRS_o_ai __vector __bool short
761vec_sel(__vector __bool short __a, __vector __bool short __b,
762 __vector unsigned short __c) {
763 return (((__vector __bool short)__c & __b) |
764 (~(__vector __bool short)__c & __a));
765}
766
767static inline __ATTRS_o_ai __vector __bool short
768vec_sel(__vector __bool short __a, __vector __bool short __b,
769 __vector __bool short __c) {
770 return (__c & __b) | (~__c & __a);
771}
772
773static inline __ATTRS_o_ai __vector unsigned short
774vec_sel(__vector unsigned short __a, __vector unsigned short __b,
775 __vector unsigned short __c) {
776 return (__c & __b) | (~__c & __a);
777}
778
779static inline __ATTRS_o_ai __vector unsigned short
780vec_sel(__vector unsigned short __a, __vector unsigned short __b,
781 __vector __bool short __c) {
782 return (((__vector unsigned short)__c & __b) |
783 (~(__vector unsigned short)__c & __a));
784}
785
786static inline __ATTRS_o_ai __vector signed int
787vec_sel(__vector signed int __a, __vector signed int __b,
788 __vector unsigned int __c) {
789 return (((__vector signed int)__c & __b) |
790 (~(__vector signed int)__c & __a));
791}
792
793static inline __ATTRS_o_ai __vector signed int
794vec_sel(__vector signed int __a, __vector signed int __b,
795 __vector __bool int __c) {
796 return (((__vector signed int)__c & __b) |
797 (~(__vector signed int)__c & __a));
798}
799
800static inline __ATTRS_o_ai __vector __bool int
801vec_sel(__vector __bool int __a, __vector __bool int __b,
802 __vector unsigned int __c) {
803 return (((__vector __bool int)__c & __b) |
804 (~(__vector __bool int)__c & __a));
805}
806
807static inline __ATTRS_o_ai __vector __bool int
808vec_sel(__vector __bool int __a, __vector __bool int __b,
809 __vector __bool int __c) {
810 return (__c & __b) | (~__c & __a);
811}
812
813static inline __ATTRS_o_ai __vector unsigned int
814vec_sel(__vector unsigned int __a, __vector unsigned int __b,
815 __vector unsigned int __c) {
816 return (__c & __b) | (~__c & __a);
817}
818
819static inline __ATTRS_o_ai __vector unsigned int
820vec_sel(__vector unsigned int __a, __vector unsigned int __b,
821 __vector __bool int __c) {
822 return (((__vector unsigned int)__c & __b) |
823 (~(__vector unsigned int)__c & __a));
824}
825
826static inline __ATTRS_o_ai __vector signed long long
827vec_sel(__vector signed long long __a, __vector signed long long __b,
828 __vector unsigned long long __c) {
829 return (((__vector signed long long)__c & __b) |
830 (~(__vector signed long long)__c & __a));
831}
832
833static inline __ATTRS_o_ai __vector signed long long
834vec_sel(__vector signed long long __a, __vector signed long long __b,
835 __vector __bool long long __c) {
836 return (((__vector signed long long)__c & __b) |
837 (~(__vector signed long long)__c & __a));
838}
839
840static inline __ATTRS_o_ai __vector __bool long long
841vec_sel(__vector __bool long long __a, __vector __bool long long __b,
842 __vector unsigned long long __c) {
843 return (((__vector __bool long long)__c & __b) |
844 (~(__vector __bool long long)__c & __a));
845}
846
847static inline __ATTRS_o_ai __vector __bool long long
848vec_sel(__vector __bool long long __a, __vector __bool long long __b,
849 __vector __bool long long __c) {
850 return (__c & __b) | (~__c & __a);
851}
852
853static inline __ATTRS_o_ai __vector unsigned long long
854vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
855 __vector unsigned long long __c) {
856 return (__c & __b) | (~__c & __a);
857}
858
859static inline __ATTRS_o_ai __vector unsigned long long
860vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
861 __vector __bool long long __c) {
862 return (((__vector unsigned long long)__c & __b) |
863 (~(__vector unsigned long long)__c & __a));
864}
865
866static inline __ATTRS_o_ai __vector signed __int128
867vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
868 __vector unsigned __int128 __c) {
869 return (((__vector signed __int128)__c & __b) |
870 (~(__vector signed __int128)__c & __a));
871}
872
873static inline __ATTRS_o_ai __vector signed __int128
874vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
875 __vector __bool __int128 __c) {
876 return (((__vector signed __int128)__c & __b) |
877 (~(__vector signed __int128)__c & __a));
878}
879
880static inline __ATTRS_o_ai __vector __bool __int128
881vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
882 __vector unsigned __int128 __c) {
883 return (((__vector __bool __int128)__c & __b) |
884 (~(__vector __bool __int128)__c & __a));
885}
886
887static inline __ATTRS_o_ai __vector __bool __int128
888vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
889 __vector __bool __int128 __c) {
890 return (__c & __b) | (~__c & __a);
891}
892
893static inline __ATTRS_o_ai __vector unsigned __int128
894vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
895 __vector unsigned __int128 __c) {
896 return (__c & __b) | (~__c & __a);
897}
898
899static inline __ATTRS_o_ai __vector unsigned __int128
900vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
901 __vector __bool __int128 __c) {
902 return (((__vector unsigned __int128)__c & __b) |
903 (~(__vector unsigned __int128)__c & __a));
904}
905
906#if __ARCH__ >= 12
907static inline __ATTRS_o_ai __vector float
908vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
909 return (__vector float)((__c & (__vector unsigned int)__b) |
910 (~__c & (__vector unsigned int)__a));
911}
912
913static inline __ATTRS_o_ai __vector float
914vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
915 __vector unsigned int __ac = (__vector unsigned int)__a;
916 __vector unsigned int __bc = (__vector unsigned int)__b;
917 __vector unsigned int __cc = (__vector unsigned int)__c;
918 return (__vector float)((__cc & __bc) | (~__cc & __ac));
919}
920#endif
921
922static inline __ATTRS_o_ai __vector double
923vec_sel(__vector double __a, __vector double __b,
924 __vector unsigned long long __c) {
925 return (__vector double)((__c & (__vector unsigned long long)__b) |
926 (~__c & (__vector unsigned long long)__a));
927}
928
929static inline __ATTRS_o_ai __vector double
930vec_sel(__vector double __a, __vector double __b,
931 __vector __bool long long __c) {
932 __vector unsigned long long __ac = (__vector unsigned long long)__a;
933 __vector unsigned long long __bc = (__vector unsigned long long)__b;
934 __vector unsigned long long __cc = (__vector unsigned long long)__c;
935 return (__vector double)((__cc & __bc) | (~__cc & __ac));
936}
937
938/*-- vec_gather_element -----------------------------------------------------*/
939
940static inline __ATTRS_o_ai __vector signed int
941vec_gather_element(__vector signed int __vec,
942 __vector unsigned int __offset,
943 const signed int *__ptr, int __index)
944 __constant_range(__index, 0, 3) {
945 __vec[__index] = *(const signed int *)(
946 (const char *)__ptr + __offset[__index]);
947 return __vec;
948}
949
950static inline __ATTRS_o_ai __vector __bool int
951vec_gather_element(__vector __bool int __vec,
952 __vector unsigned int __offset,
953 const unsigned int *__ptr, int __index)
954 __constant_range(__index, 0, 3) {
955 __vec[__index] = *(const unsigned int *)(
956 (const char *)__ptr + __offset[__index]);
957 return __vec;
958}
959
960static inline __ATTRS_o_ai __vector unsigned int
961vec_gather_element(__vector unsigned int __vec,
962 __vector unsigned int __offset,
963 const unsigned int *__ptr, int __index)
964 __constant_range(__index, 0, 3) {
965 __vec[__index] = *(const unsigned int *)(
966 (const char *)__ptr + __offset[__index]);
967 return __vec;
968}
969
970static inline __ATTRS_o_ai __vector signed long long
971vec_gather_element(__vector signed long long __vec,
972 __vector unsigned long long __offset,
973 const signed long long *__ptr, int __index)
974 __constant_range(__index, 0, 1) {
975 __vec[__index] = *(const signed long long *)(
976 (const char *)__ptr + __offset[__index]);
977 return __vec;
978}
979
980static inline __ATTRS_o_ai __vector __bool long long
981vec_gather_element(__vector __bool long long __vec,
982 __vector unsigned long long __offset,
983 const unsigned long long *__ptr, int __index)
984 __constant_range(__index, 0, 1) {
985 __vec[__index] = *(const unsigned long long *)(
986 (const char *)__ptr + __offset[__index]);
987 return __vec;
988}
989
990static inline __ATTRS_o_ai __vector unsigned long long
991vec_gather_element(__vector unsigned long long __vec,
992 __vector unsigned long long __offset,
993 const unsigned long long *__ptr, int __index)
994 __constant_range(__index, 0, 1) {
995 __vec[__index] = *(const unsigned long long *)(
996 (const char *)__ptr + __offset[__index]);
997 return __vec;
998}
999
1000#if __ARCH__ >= 12
1001static inline __ATTRS_o_ai __vector float
1002vec_gather_element(__vector float __vec,
1003 __vector unsigned int __offset,
1004 const float *__ptr, int __index)
1005 __constant_range(__index, 0, 3) {
1006 __vec[__index] = *(const float *)(
1007 (const char *)__ptr + __offset[__index]);
1008 return __vec;
1009}
1010#endif
1011
1012static inline __ATTRS_o_ai __vector double
1013vec_gather_element(__vector double __vec,
1014 __vector unsigned long long __offset,
1015 const double *__ptr, int __index)
1016 __constant_range(__index, 0, 1) {
1017 __vec[__index] = *(const double *)(
1018 (const char *)__ptr + __offset[__index]);
1019 return __vec;
1020}
1021
1022/*-- vec_scatter_element ----------------------------------------------------*/
1023
1024static inline __ATTRS_o_ai void
1025vec_scatter_element(__vector signed int __vec,
1026 __vector unsigned int __offset,
1027 signed int *__ptr, int __index)
1028 __constant_range(__index, 0, 3) {
1029 *(signed int *)((char *)__ptr + __offset[__index]) =
1030 __vec[__index];
1031}
1032
1033static inline __ATTRS_o_ai void
1034vec_scatter_element(__vector __bool int __vec,
1035 __vector unsigned int __offset,
1036 unsigned int *__ptr, int __index)
1037 __constant_range(__index, 0, 3) {
1038 *(unsigned int *)((char *)__ptr + __offset[__index]) =
1039 __vec[__index];
1040}
1041
1042static inline __ATTRS_o_ai void
1043vec_scatter_element(__vector unsigned int __vec,
1044 __vector unsigned int __offset,
1045 unsigned int *__ptr, int __index)
1046 __constant_range(__index, 0, 3) {
1047 *(unsigned int *)((char *)__ptr + __offset[__index]) =
1048 __vec[__index];
1049}
1050
1051static inline __ATTRS_o_ai void
1052vec_scatter_element(__vector signed long long __vec,
1053 __vector unsigned long long __offset,
1054 signed long long *__ptr, int __index)
1055 __constant_range(__index, 0, 1) {
1056 *(signed long long *)((char *)__ptr + __offset[__index]) =
1057 __vec[__index];
1058}
1059
1060static inline __ATTRS_o_ai void
1061vec_scatter_element(__vector __bool long long __vec,
1062 __vector unsigned long long __offset,
1063 unsigned long long *__ptr, int __index)
1064 __constant_range(__index, 0, 1) {
1065 *(unsigned long long *)((char *)__ptr + __offset[__index]) =
1066 __vec[__index];
1067}
1068
1069static inline __ATTRS_o_ai void
1070vec_scatter_element(__vector unsigned long long __vec,
1071 __vector unsigned long long __offset,
1072 unsigned long long *__ptr, int __index)
1073 __constant_range(__index, 0, 1) {
1074 *(unsigned long long *)((char *)__ptr + __offset[__index]) =
1075 __vec[__index];
1076}
1077
1078#if __ARCH__ >= 12
1079static inline __ATTRS_o_ai void
1080vec_scatter_element(__vector float __vec,
1081 __vector unsigned int __offset,
1082 float *__ptr, int __index)
1083 __constant_range(__index, 0, 3) {
1084 *(float *)((char *)__ptr + __offset[__index]) =
1085 __vec[__index];
1086}
1087#endif
1088
1089static inline __ATTRS_o_ai void
1090vec_scatter_element(__vector double __vec,
1091 __vector unsigned long long __offset,
1092 double *__ptr, int __index)
1093 __constant_range(__index, 0, 1) {
1094 *(double *)((char *)__ptr + __offset[__index]) =
1095 __vec[__index];
1096}
1097
1098/*-- vec_xl -----------------------------------------------------------------*/
1099
1100static inline __ATTRS_o_ai __vector signed char
1101vec_xl(long __offset, const signed char *__ptr) {
1102 __vector signed char V;
1103 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1104 sizeof(__vector signed char));
1105 return V;
1106}
1107
1108static inline __ATTRS_o_ai __vector unsigned char
1109vec_xl(long __offset, const unsigned char *__ptr) {
1110 __vector unsigned char V;
1111 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1112 sizeof(__vector unsigned char));
1113 return V;
1114}
1115
1116static inline __ATTRS_o_ai __vector signed short
1117vec_xl(long __offset, const signed short *__ptr) {
1118 __vector signed short V;
1119 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1120 sizeof(__vector signed short));
1121 return V;
1122}
1123
1124static inline __ATTRS_o_ai __vector unsigned short
1125vec_xl(long __offset, const unsigned short *__ptr) {
1126 __vector unsigned short V;
1127 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1128 sizeof(__vector unsigned short));
1129 return V;
1130}
1131
1132static inline __ATTRS_o_ai __vector signed int
1133vec_xl(long __offset, const signed int *__ptr) {
1134 __vector signed int V;
1135 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1136 sizeof(__vector signed int));
1137 return V;
1138}
1139
1140static inline __ATTRS_o_ai __vector unsigned int
1141vec_xl(long __offset, const unsigned int *__ptr) {
1142 __vector unsigned int V;
1143 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1144 sizeof(__vector unsigned int));
1145 return V;
1146}
1147
1148static inline __ATTRS_o_ai __vector signed long long
1149vec_xl(long __offset, const signed long long *__ptr) {
1150 __vector signed long long V;
1151 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1152 sizeof(__vector signed long long));
1153 return V;
1154}
1155
1156static inline __ATTRS_o_ai __vector unsigned long long
1157vec_xl(long __offset, const unsigned long long *__ptr) {
1158 __vector unsigned long long V;
1159 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1160 sizeof(__vector unsigned long long));
1161 return V;
1162}
1163
1164static inline __ATTRS_o_ai __vector signed __int128
1165vec_xl(long __offset, const signed __int128 *__ptr) {
1166 __vector signed __int128 V;
1167 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1168 sizeof(__vector signed __int128));
1169 return V;
1170}
1171
1172static inline __ATTRS_o_ai __vector unsigned __int128
1173vec_xl(long __offset, const unsigned __int128 *__ptr) {
1174 __vector unsigned __int128 V;
1175 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1176 sizeof(__vector unsigned __int128));
1177 return V;
1178}
1179
1180#if __ARCH__ >= 12
1181static inline __ATTRS_o_ai __vector float
1182vec_xl(long __offset, const float *__ptr) {
1183 __vector float V;
1184 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1185 sizeof(__vector float));
1186 return V;
1187}
1188#endif
1189
1190static inline __ATTRS_o_ai __vector double
1191vec_xl(long __offset, const double *__ptr) {
1192 __vector double V;
1193 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1194 sizeof(__vector double));
1195 return V;
1196}
1197
1198/*-- vec_xld2 ---------------------------------------------------------------*/
1199
1200// This prototype is deprecated.
1201static inline __ATTRS_o_ai __vector signed char
1202vec_xld2(long __offset, const signed char *__ptr) {
1203 __vector signed char V;
1204 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1205 sizeof(__vector signed char));
1206 return V;
1207}
1208
1209// This prototype is deprecated.
1210static inline __ATTRS_o_ai __vector unsigned char
1211vec_xld2(long __offset, const unsigned char *__ptr) {
1212 __vector unsigned char V;
1213 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1214 sizeof(__vector unsigned char));
1215 return V;
1216}
1217
1218// This prototype is deprecated.
1219static inline __ATTRS_o_ai __vector signed short
1220vec_xld2(long __offset, const signed short *__ptr) {
1221 __vector signed short V;
1222 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1223 sizeof(__vector signed short));
1224 return V;
1225}
1226
1227// This prototype is deprecated.
1228static inline __ATTRS_o_ai __vector unsigned short
1229vec_xld2(long __offset, const unsigned short *__ptr) {
1230 __vector unsigned short V;
1231 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1232 sizeof(__vector unsigned short));
1233 return V;
1234}
1235
1236// This prototype is deprecated.
1237static inline __ATTRS_o_ai __vector signed int
1238vec_xld2(long __offset, const signed int *__ptr) {
1239 __vector signed int V;
1240 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1241 sizeof(__vector signed int));
1242 return V;
1243}
1244
1245// This prototype is deprecated.
1246static inline __ATTRS_o_ai __vector unsigned int
1247vec_xld2(long __offset, const unsigned int *__ptr) {
1248 __vector unsigned int V;
1249 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1250 sizeof(__vector unsigned int));
1251 return V;
1252}
1253
1254// This prototype is deprecated.
1255static inline __ATTRS_o_ai __vector signed long long
1256vec_xld2(long __offset, const signed long long *__ptr) {
1257 __vector signed long long V;
1258 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1259 sizeof(__vector signed long long));
1260 return V;
1261}
1262
1263// This prototype is deprecated.
1264static inline __ATTRS_o_ai __vector unsigned long long
1265vec_xld2(long __offset, const unsigned long long *__ptr) {
1266 __vector unsigned long long V;
1267 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1268 sizeof(__vector unsigned long long));
1269 return V;
1270}
1271
1272// This prototype is deprecated.
1273static inline __ATTRS_o_ai __vector double
1274vec_xld2(long __offset, const double *__ptr) {
1275 __vector double V;
1276 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1277 sizeof(__vector double));
1278 return V;
1279}
1280
1281/*-- vec_xlw4 ---------------------------------------------------------------*/
1282
1283// This prototype is deprecated.
1284static inline __ATTRS_o_ai __vector signed char
1285vec_xlw4(long __offset, const signed char *__ptr) {
1286 __vector signed char V;
1287 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1288 sizeof(__vector signed char));
1289 return V;
1290}
1291
1292// This prototype is deprecated.
1293static inline __ATTRS_o_ai __vector unsigned char
1294vec_xlw4(long __offset, const unsigned char *__ptr) {
1295 __vector unsigned char V;
1296 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1297 sizeof(__vector unsigned char));
1298 return V;
1299}
1300
1301// This prototype is deprecated.
1302static inline __ATTRS_o_ai __vector signed short
1303vec_xlw4(long __offset, const signed short *__ptr) {
1304 __vector signed short V;
1305 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1306 sizeof(__vector signed short));
1307 return V;
1308}
1309
1310// This prototype is deprecated.
1311static inline __ATTRS_o_ai __vector unsigned short
1312vec_xlw4(long __offset, const unsigned short *__ptr) {
1313 __vector unsigned short V;
1314 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1315 sizeof(__vector unsigned short));
1316 return V;
1317}
1318
1319// This prototype is deprecated.
1320static inline __ATTRS_o_ai __vector signed int
1321vec_xlw4(long __offset, const signed int *__ptr) {
1322 __vector signed int V;
1323 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1324 sizeof(__vector signed int));
1325 return V;
1326}
1327
1328// This prototype is deprecated.
1329static inline __ATTRS_o_ai __vector unsigned int
1330vec_xlw4(long __offset, const unsigned int *__ptr) {
1331 __vector unsigned int V;
1332 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1333 sizeof(__vector unsigned int));
1334 return V;
1335}
1336
1337/*-- vec_xst ----------------------------------------------------------------*/
1338
1339static inline __ATTRS_o_ai void
1340vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
1341 __vector signed char V = __vec;
1342 __builtin_memcpy(((char *)__ptr + __offset), &V,
1343 sizeof(__vector signed char));
1344}
1345
1346static inline __ATTRS_o_ai void
1347vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1348 __vector unsigned char V = __vec;
1349 __builtin_memcpy(((char *)__ptr + __offset), &V,
1350 sizeof(__vector unsigned char));
1351}
1352
1353static inline __ATTRS_o_ai void
1354vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
1355 __vector signed short V = __vec;
1356 __builtin_memcpy(((char *)__ptr + __offset), &V,
1357 sizeof(__vector signed short));
1358}
1359
1360static inline __ATTRS_o_ai void
1361vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1362 __vector unsigned short V = __vec;
1363 __builtin_memcpy(((char *)__ptr + __offset), &V,
1364 sizeof(__vector unsigned short));
1365}
1366
1367static inline __ATTRS_o_ai void
1368vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
1369 __vector signed int V = __vec;
1370 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1371}
1372
1373static inline __ATTRS_o_ai void
1374vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1375 __vector unsigned int V = __vec;
1376 __builtin_memcpy(((char *)__ptr + __offset), &V,
1377 sizeof(__vector unsigned int));
1378}
1379
1380static inline __ATTRS_o_ai void
1381vec_xst(__vector signed long long __vec, long __offset,
1382 signed long long *__ptr) {
1383 __vector signed long long V = __vec;
1384 __builtin_memcpy(((char *)__ptr + __offset), &V,
1385 sizeof(__vector signed long long));
1386}
1387
1388static inline __ATTRS_o_ai void
1389vec_xst(__vector unsigned long long __vec, long __offset,
1390 unsigned long long *__ptr) {
1391 __vector unsigned long long V = __vec;
1392 __builtin_memcpy(((char *)__ptr + __offset), &V,
1393 sizeof(__vector unsigned long long));
1394}
1395
1396static inline __ATTRS_o_ai void
1397vec_xst(__vector signed __int128 __vec, long __offset,
1398 signed __int128 *__ptr) {
1399 __vector signed __int128 V = __vec;
1400 __builtin_memcpy(((char *)__ptr + __offset), &V,
1401 sizeof(__vector signed __int128));
1402}
1403
1404static inline __ATTRS_o_ai void
1405vec_xst(__vector unsigned __int128 __vec, long __offset,
1406 unsigned __int128 *__ptr) {
1407 __vector unsigned __int128 V = __vec;
1408 __builtin_memcpy(((char *)__ptr + __offset), &V,
1409 sizeof(__vector unsigned __int128));
1410}
1411
1412#if __ARCH__ >= 12
1413static inline __ATTRS_o_ai void
1414vec_xst(__vector float __vec, long __offset, float *__ptr) {
1415 __vector float V = __vec;
1416 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));
1417}
1418#endif
1419
1420static inline __ATTRS_o_ai void
1421vec_xst(__vector double __vec, long __offset, double *__ptr) {
1422 __vector double V = __vec;
1423 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1424}
1425
1426/*-- vec_xstd2 --------------------------------------------------------------*/
1427
1428// This prototype is deprecated.
1429static inline __ATTRS_o_ai void
1430vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
1431 __vector signed char V = __vec;
1432 __builtin_memcpy(((char *)__ptr + __offset), &V,
1433 sizeof(__vector signed char));
1434}
1435
1436// This prototype is deprecated.
1437static inline __ATTRS_o_ai void
1438vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1439 __vector unsigned char V = __vec;
1440 __builtin_memcpy(((char *)__ptr + __offset), &V,
1441 sizeof(__vector unsigned char));
1442}
1443
1444// This prototype is deprecated.
1445static inline __ATTRS_o_ai void
1446vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
1447 __vector signed short V = __vec;
1448 __builtin_memcpy(((char *)__ptr + __offset), &V,
1449 sizeof(__vector signed short));
1450}
1451
1452// This prototype is deprecated.
1453static inline __ATTRS_o_ai void
1454vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1455 __vector unsigned short V = __vec;
1456 __builtin_memcpy(((char *)__ptr + __offset), &V,
1457 sizeof(__vector unsigned short));
1458}
1459
1460// This prototype is deprecated.
1461static inline __ATTRS_o_ai void
1462vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
1463 __vector signed int V = __vec;
1464 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1465}
1466
1467// This prototype is deprecated.
1468static inline __ATTRS_o_ai void
1469vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1470 __vector unsigned int V = __vec;
1471 __builtin_memcpy(((char *)__ptr + __offset), &V,
1472 sizeof(__vector unsigned int));
1473}
1474
1475// This prototype is deprecated.
1476static inline __ATTRS_o_ai void
1477vec_xstd2(__vector signed long long __vec, long __offset,
1478 signed long long *__ptr) {
1479 __vector signed long long V = __vec;
1480 __builtin_memcpy(((char *)__ptr + __offset), &V,
1481 sizeof(__vector signed long long));
1482}
1483
1484// This prototype is deprecated.
1485static inline __ATTRS_o_ai void
1486vec_xstd2(__vector unsigned long long __vec, long __offset,
1487 unsigned long long *__ptr) {
1488 __vector unsigned long long V = __vec;
1489 __builtin_memcpy(((char *)__ptr + __offset), &V,
1490 sizeof(__vector unsigned long long));
1491}
1492
1493// This prototype is deprecated.
1494static inline __ATTRS_o_ai void
1495vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
1496 __vector double V = __vec;
1497 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1498}
1499
1500/*-- vec_xstw4 --------------------------------------------------------------*/
1501
1502// This prototype is deprecated.
1503static inline __ATTRS_o_ai void
1504vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
1505 __vector signed char V = __vec;
1506 __builtin_memcpy(((char *)__ptr + __offset), &V,
1507 sizeof(__vector signed char));
1508}
1509
1510// This prototype is deprecated.
1511static inline __ATTRS_o_ai void
1512vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1513 __vector unsigned char V = __vec;
1514 __builtin_memcpy(((char *)__ptr + __offset), &V,
1515 sizeof(__vector unsigned char));
1516}
1517
1518// This prototype is deprecated.
1519static inline __ATTRS_o_ai void
1520vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
1521 __vector signed short V = __vec;
1522 __builtin_memcpy(((char *)__ptr + __offset), &V,
1523 sizeof(__vector signed short));
1524}
1525
1526// This prototype is deprecated.
1527static inline __ATTRS_o_ai void
1528vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1529 __vector unsigned short V = __vec;
1530 __builtin_memcpy(((char *)__ptr + __offset), &V,
1531 sizeof(__vector unsigned short));
1532}
1533
1534// This prototype is deprecated.
1535static inline __ATTRS_o_ai void
1536vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
1537 __vector signed int V = __vec;
1538 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1539}
1540
1541// This prototype is deprecated.
1542static inline __ATTRS_o_ai void
1543vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1544 __vector unsigned int V = __vec;
1545 __builtin_memcpy(((char *)__ptr + __offset), &V,
1546 sizeof(__vector unsigned int));
1547}
1548
1549/*-- vec_load_bndry ---------------------------------------------------------*/
1550
1551extern __ATTRS_o __vector signed char
1552vec_load_bndry(const signed char *__ptr, unsigned short __len)
1553 __constant_pow2_range(__len, 64, 4096);
1554
1555extern __ATTRS_o __vector unsigned char
1556vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1557 __constant_pow2_range(__len, 64, 4096);
1558
1559extern __ATTRS_o __vector signed short
1560vec_load_bndry(const signed short *__ptr, unsigned short __len)
1561 __constant_pow2_range(__len, 64, 4096);
1562
1563extern __ATTRS_o __vector unsigned short
1564vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1565 __constant_pow2_range(__len, 64, 4096);
1566
1567extern __ATTRS_o __vector signed int
1568vec_load_bndry(const signed int *__ptr, unsigned short __len)
1569 __constant_pow2_range(__len, 64, 4096);
1570
1571extern __ATTRS_o __vector unsigned int
1572vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1573 __constant_pow2_range(__len, 64, 4096);
1574
1575extern __ATTRS_o __vector signed long long
1576vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1577 __constant_pow2_range(__len, 64, 4096);
1578
1579extern __ATTRS_o __vector unsigned long long
1580vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1581 __constant_pow2_range(__len, 64, 4096);
1582
1583extern __ATTRS_o __vector signed __int128
1584vec_load_bndry(const signed __int128 *__ptr, unsigned short __len)
1585 __constant_pow2_range(__len, 64, 4096);
1586
1587extern __ATTRS_o __vector unsigned __int128
1588vec_load_bndry(const unsigned __int128 *__ptr, unsigned short __len)
1589 __constant_pow2_range(__len, 64, 4096);
1590
1591#if __ARCH__ >= 12
1592extern __ATTRS_o __vector float
1593vec_load_bndry(const float *__ptr, unsigned short __len)
1594 __constant_pow2_range(__len, 64, 4096);
1595#endif
1596
1597extern __ATTRS_o __vector double
1598vec_load_bndry(const double *__ptr, unsigned short __len)
1599 __constant_pow2_range(__len, 64, 4096);
1600
1601#define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1602 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1603 (Y) == 128 ? 1 : \
1604 (Y) == 256 ? 2 : \
1605 (Y) == 512 ? 3 : \
1606 (Y) == 1024 ? 4 : \
1607 (Y) == 2048 ? 5 : \
1608 (Y) == 4096 ? 6 : -1)))
1609
1610/*-- vec_load_len -----------------------------------------------------------*/
1611
1612static inline __ATTRS_o_ai __vector signed char
1613vec_load_len(const signed char *__ptr, unsigned int __len) {
1614 return (__vector signed char)__builtin_s390_vll(__len, __ptr);
1615}
1616
1617static inline __ATTRS_o_ai __vector unsigned char
1618vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1619 return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
1620}
1621
1622// This prototype is deprecated.
1623static inline __ATTRS_o_ai __vector signed short
1624vec_load_len(const signed short *__ptr, unsigned int __len) {
1625 return (__vector signed short)__builtin_s390_vll(__len, __ptr);
1626}
1627
1628// This prototype is deprecated.
1629static inline __ATTRS_o_ai __vector unsigned short
1630vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1631 return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
1632}
1633
1634// This prototype is deprecated.
1635static inline __ATTRS_o_ai __vector signed int
1636vec_load_len(const signed int *__ptr, unsigned int __len) {
1637 return (__vector signed int)__builtin_s390_vll(__len, __ptr);
1638}
1639
1640// This prototype is deprecated.
1641static inline __ATTRS_o_ai __vector unsigned int
1642vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1643 return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
1644}
1645
1646// This prototype is deprecated.
1647static inline __ATTRS_o_ai __vector signed long long
1648vec_load_len(const signed long long *__ptr, unsigned int __len) {
1649 return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
1650}
1651
1652// This prototype is deprecated.
1653static inline __ATTRS_o_ai __vector unsigned long long
1654vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1655 return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1656}
1657
1658#if __ARCH__ >= 12
1659// This prototype is deprecated.
1660static inline __ATTRS_o_ai __vector float
1661vec_load_len(const float *__ptr, unsigned int __len) {
1662 return (__vector float)__builtin_s390_vll(__len, __ptr);
1663}
1664#endif
1665
1666// This prototype is deprecated.
1667static inline __ATTRS_o_ai __vector double
1668vec_load_len(const double *__ptr, unsigned int __len) {
1669 return (__vector double)__builtin_s390_vll(__len, __ptr);
1670}
1671
1672/*-- vec_load_len_r ---------------------------------------------------------*/
1673
1674#if __ARCH__ >= 12
1675static inline __ATTRS_o_ai __vector signed char
1676vec_load_len_r(const signed char *__ptr, unsigned int __len) {
1677 return (__vector signed char)__builtin_s390_vlrlr(__len, __ptr);
1678}
1679
1680static inline __ATTRS_o_ai __vector unsigned char
1681vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1682 return (__vector unsigned char)__builtin_s390_vlrlr(__len, __ptr);
1683}
1684#endif
1685
1686/*-- vec_store_len ----------------------------------------------------------*/
1687
1688static inline __ATTRS_o_ai void
1689vec_store_len(__vector signed char __vec, signed char *__ptr,
1690 unsigned int __len) {
1691 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1692}
1693
1694static inline __ATTRS_o_ai void
1695vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
1696 unsigned int __len) {
1697 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1698}
1699
1700// This prototype is deprecated.
1701static inline __ATTRS_o_ai void
1702vec_store_len(__vector signed short __vec, signed short *__ptr,
1703 unsigned int __len) {
1704 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1705}
1706
1707// This prototype is deprecated.
1708static inline __ATTRS_o_ai void
1709vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
1710 unsigned int __len) {
1711 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1712}
1713
1714// This prototype is deprecated.
1715static inline __ATTRS_o_ai void
1716vec_store_len(__vector signed int __vec, signed int *__ptr,
1717 unsigned int __len) {
1718 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1719}
1720
1721// This prototype is deprecated.
1722static inline __ATTRS_o_ai void
1723vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
1724 unsigned int __len) {
1725 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1726}
1727
1728// This prototype is deprecated.
1729static inline __ATTRS_o_ai void
1730vec_store_len(__vector signed long long __vec, signed long long *__ptr,
1731 unsigned int __len) {
1732 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1733}
1734
1735// This prototype is deprecated.
1736static inline __ATTRS_o_ai void
1737vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
1738 unsigned int __len) {
1739 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1740}
1741
1742#if __ARCH__ >= 12
1743// This prototype is deprecated.
1744static inline __ATTRS_o_ai void
1745vec_store_len(__vector float __vec, float *__ptr,
1746 unsigned int __len) {
1747 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1748}
1749#endif
1750
1751// This prototype is deprecated.
1752static inline __ATTRS_o_ai void
1753vec_store_len(__vector double __vec, double *__ptr,
1754 unsigned int __len) {
1755 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1756}
1757
1758/*-- vec_store_len_r --------------------------------------------------------*/
1759
1760#if __ARCH__ >= 12
1761static inline __ATTRS_o_ai void
1762vec_store_len_r(__vector signed char __vec, signed char *__ptr,
1763 unsigned int __len) {
1764 __builtin_s390_vstrlr(__vec, __len, __ptr);
1765}
1766
1767static inline __ATTRS_o_ai void
1768vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
1769 unsigned int __len) {
1770 __builtin_s390_vstrlr((__vector signed char)__vec, __len, __ptr);
1771}
1772#endif
1773
1774/*-- vec_load_pair ----------------------------------------------------------*/
1775
1776static inline __ATTRS_o_ai __vector signed long long
1777vec_load_pair(signed long long __a, signed long long __b) {
1778 return (__vector signed long long)(__a, __b);
1779}
1780
1781static inline __ATTRS_o_ai __vector unsigned long long
1782vec_load_pair(unsigned long long __a, unsigned long long __b) {
1783 return (__vector unsigned long long)(__a, __b);
1784}
1785
1786/*-- vec_genmask ------------------------------------------------------------*/
1787
1788static inline __ATTRS_o_ai __vector unsigned char
1789vec_genmask(unsigned short __mask)
1790 __constant(__mask) {
1791 return (__vector unsigned char)(
1792 __mask & 0x8000 ? 0xff : 0,
1793 __mask & 0x4000 ? 0xff : 0,
1794 __mask & 0x2000 ? 0xff : 0,
1795 __mask & 0x1000 ? 0xff : 0,
1796 __mask & 0x0800 ? 0xff : 0,
1797 __mask & 0x0400 ? 0xff : 0,
1798 __mask & 0x0200 ? 0xff : 0,
1799 __mask & 0x0100 ? 0xff : 0,
1800 __mask & 0x0080 ? 0xff : 0,
1801 __mask & 0x0040 ? 0xff : 0,
1802 __mask & 0x0020 ? 0xff : 0,
1803 __mask & 0x0010 ? 0xff : 0,
1804 __mask & 0x0008 ? 0xff : 0,
1805 __mask & 0x0004 ? 0xff : 0,
1806 __mask & 0x0002 ? 0xff : 0,
1807 __mask & 0x0001 ? 0xff : 0);
1808}
1809
1810/*-- vec_genmasks_* ---------------------------------------------------------*/
1811
1812static inline __ATTRS_o_ai __vector unsigned char
1813vec_genmasks_8(unsigned char __first, unsigned char __last)
1814 __constant(__first) __constant(__last) {
1815 unsigned char __bit1 = __first & 7;
1816 unsigned char __bit2 = __last & 7;
1817 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1818 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1819 unsigned char __value = (__bit1 <= __bit2 ?
1820 __mask1 & ~__mask2 :
1821 __mask1 | ~__mask2);
1822 return (__vector unsigned char)__value;
1823}
1824
1825static inline __ATTRS_o_ai __vector unsigned short
1826vec_genmasks_16(unsigned char __first, unsigned char __last)
1827 __constant(__first) __constant(__last) {
1828 unsigned char __bit1 = __first & 15;
1829 unsigned char __bit2 = __last & 15;
1830 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1831 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1832 unsigned short __value = (__bit1 <= __bit2 ?
1833 __mask1 & ~__mask2 :
1834 __mask1 | ~__mask2);
1835 return (__vector unsigned short)__value;
1836}
1837
1838static inline __ATTRS_o_ai __vector unsigned int
1839vec_genmasks_32(unsigned char __first, unsigned char __last)
1840 __constant(__first) __constant(__last) {
1841 unsigned char __bit1 = __first & 31;
1842 unsigned char __bit2 = __last & 31;
1843 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1844 unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1845 unsigned int __value = (__bit1 <= __bit2 ?
1846 __mask1 & ~__mask2 :
1847 __mask1 | ~__mask2);
1848 return (__vector unsigned int)__value;
1849}
1850
1851static inline __ATTRS_o_ai __vector unsigned long long
1852vec_genmasks_64(unsigned char __first, unsigned char __last)
1853 __constant(__first) __constant(__last) {
1854 unsigned char __bit1 = __first & 63;
1855 unsigned char __bit2 = __last & 63;
1856 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1857 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1858 unsigned long long __value = (__bit1 <= __bit2 ?
1859 __mask1 & ~__mask2 :
1860 __mask1 | ~__mask2);
1861 return (__vector unsigned long long)__value;
1862}
1863
1864/*-- vec_gen_element_masks_* ------------------------------------------------*/
1865
1866#if __ARCH__ >= 15
1867static inline __ATTRS_ai __vector unsigned char
1868vec_gen_element_masks_8(__vector unsigned short __mask) {
1869 return __builtin_s390_vgemb(__mask);
1870}
1871
1872static inline __ATTRS_ai __vector unsigned short
1873vec_gen_element_masks_16(__vector unsigned char __mask) {
1874 return __builtin_s390_vgemh(__mask);
1875}
1876
1877static inline __ATTRS_ai __vector unsigned int
1878vec_gen_element_masks_32(__vector unsigned char __mask) {
1879 return __builtin_s390_vgemf(__mask);
1880}
1881
1882static inline __ATTRS_ai __vector unsigned long long
1883vec_gen_element_masks_64(__vector unsigned char __mask) {
1884 return __builtin_s390_vgemg(__mask);
1885}
1886
1887static inline __ATTRS_ai __vector unsigned __int128
1888vec_gen_element_masks_128(__vector unsigned char __mask) {
1889 return (__vector unsigned __int128)__builtin_s390_vgemq(__mask);
1890}
1891#endif
1892
1893/*-- vec_splat --------------------------------------------------------------*/
1894
1895static inline __ATTRS_o_ai __vector signed char
1896vec_splat(__vector signed char __vec, int __index)
1897 __constant_range(__index, 0, 15) {
1898 return (__vector signed char)__vec[__index];
1899}
1900
1901static inline __ATTRS_o_ai __vector __bool char
1902vec_splat(__vector __bool char __vec, int __index)
1903 __constant_range(__index, 0, 15) {
1904 return (__vector __bool char)(__vector unsigned char)__vec[__index];
1905}
1906
1907static inline __ATTRS_o_ai __vector unsigned char
1908vec_splat(__vector unsigned char __vec, int __index)
1909 __constant_range(__index, 0, 15) {
1910 return (__vector unsigned char)__vec[__index];
1911}
1912
1913static inline __ATTRS_o_ai __vector signed short
1914vec_splat(__vector signed short __vec, int __index)
1915 __constant_range(__index, 0, 7) {
1916 return (__vector signed short)__vec[__index];
1917}
1918
1919static inline __ATTRS_o_ai __vector __bool short
1920vec_splat(__vector __bool short __vec, int __index)
1921 __constant_range(__index, 0, 7) {
1922 return (__vector __bool short)(__vector unsigned short)__vec[__index];
1923}
1924
1925static inline __ATTRS_o_ai __vector unsigned short
1926vec_splat(__vector unsigned short __vec, int __index)
1927 __constant_range(__index, 0, 7) {
1928 return (__vector unsigned short)__vec[__index];
1929}
1930
1931static inline __ATTRS_o_ai __vector signed int
1932vec_splat(__vector signed int __vec, int __index)
1933 __constant_range(__index, 0, 3) {
1934 return (__vector signed int)__vec[__index];
1935}
1936
1937static inline __ATTRS_o_ai __vector __bool int
1938vec_splat(__vector __bool int __vec, int __index)
1939 __constant_range(__index, 0, 3) {
1940 return (__vector __bool int)(__vector unsigned int)__vec[__index];
1941}
1942
1943static inline __ATTRS_o_ai __vector unsigned int
1944vec_splat(__vector unsigned int __vec, int __index)
1945 __constant_range(__index, 0, 3) {
1946 return (__vector unsigned int)__vec[__index];
1947}
1948
1949static inline __ATTRS_o_ai __vector signed long long
1950vec_splat(__vector signed long long __vec, int __index)
1951 __constant_range(__index, 0, 1) {
1952 return (__vector signed long long)__vec[__index];
1953}
1954
1955static inline __ATTRS_o_ai __vector __bool long long
1956vec_splat(__vector __bool long long __vec, int __index)
1957 __constant_range(__index, 0, 1) {
1958 return ((__vector __bool long long)
1959 (__vector unsigned long long)__vec[__index]);
1960}
1961
1962static inline __ATTRS_o_ai __vector unsigned long long
1963vec_splat(__vector unsigned long long __vec, int __index)
1964 __constant_range(__index, 0, 1) {
1965 return (__vector unsigned long long)__vec[__index];
1966}
1967
1968#if __ARCH__ >= 12
1969static inline __ATTRS_o_ai __vector float
1970vec_splat(__vector float __vec, int __index)
1971 __constant_range(__index, 0, 3) {
1972 return (__vector float)__vec[__index];
1973}
1974#endif
1975
1976static inline __ATTRS_o_ai __vector double
1977vec_splat(__vector double __vec, int __index)
1978 __constant_range(__index, 0, 1) {
1979 return (__vector double)__vec[__index];
1980}
1981
1982/*-- vec_splat_s* -----------------------------------------------------------*/
1983
1984static inline __ATTRS_ai __vector signed char
1985vec_splat_s8(signed char __scalar)
1986 __constant(__scalar) {
1987 return (__vector signed char)__scalar;
1988}
1989
1990static inline __ATTRS_ai __vector signed short
1991vec_splat_s16(signed short __scalar)
1992 __constant(__scalar) {
1993 return (__vector signed short)__scalar;
1994}
1995
1996static inline __ATTRS_ai __vector signed int
1997vec_splat_s32(signed short __scalar)
1998 __constant(__scalar) {
1999 return (__vector signed int)(signed int)__scalar;
2000}
2001
2002static inline __ATTRS_ai __vector signed long long
2003vec_splat_s64(signed short __scalar)
2004 __constant(__scalar) {
2005 return (__vector signed long long)(signed long)__scalar;
2006}
2007
2008/*-- vec_splat_u* -----------------------------------------------------------*/
2009
2010static inline __ATTRS_ai __vector unsigned char
2011vec_splat_u8(unsigned char __scalar)
2012 __constant(__scalar) {
2013 return (__vector unsigned char)__scalar;
2014}
2015
2016static inline __ATTRS_ai __vector unsigned short
2017vec_splat_u16(unsigned short __scalar)
2018 __constant(__scalar) {
2019 return (__vector unsigned short)__scalar;
2020}
2021
2022static inline __ATTRS_ai __vector unsigned int
2023vec_splat_u32(signed short __scalar)
2024 __constant(__scalar) {
2025 return (__vector unsigned int)(signed int)__scalar;
2026}
2027
2028static inline __ATTRS_ai __vector unsigned long long
2029vec_splat_u64(signed short __scalar)
2030 __constant(__scalar) {
2031 return (__vector unsigned long long)(signed long long)__scalar;
2032}
2033
2034/*-- vec_splats -------------------------------------------------------------*/
2035
2036static inline __ATTRS_o_ai __vector signed char
2037vec_splats(signed char __scalar) {
2038 return (__vector signed char)__scalar;
2039}
2040
2041static inline __ATTRS_o_ai __vector unsigned char
2042vec_splats(unsigned char __scalar) {
2043 return (__vector unsigned char)__scalar;
2044}
2045
2046static inline __ATTRS_o_ai __vector signed short
2047vec_splats(signed short __scalar) {
2048 return (__vector signed short)__scalar;
2049}
2050
2051static inline __ATTRS_o_ai __vector unsigned short
2052vec_splats(unsigned short __scalar) {
2053 return (__vector unsigned short)__scalar;
2054}
2055
2056static inline __ATTRS_o_ai __vector signed int
2057vec_splats(signed int __scalar) {
2058 return (__vector signed int)__scalar;
2059}
2060
2061static inline __ATTRS_o_ai __vector unsigned int
2062vec_splats(unsigned int __scalar) {
2063 return (__vector unsigned int)__scalar;
2064}
2065
2066static inline __ATTRS_o_ai __vector signed long long
2067vec_splats(signed long long __scalar) {
2068 return (__vector signed long long)__scalar;
2069}
2070
2071static inline __ATTRS_o_ai __vector unsigned long long
2072vec_splats(unsigned long long __scalar) {
2073 return (__vector unsigned long long)__scalar;
2074}
2075
2076static inline __ATTRS_o_ai __vector signed __int128
2077vec_splats(signed __int128 __scalar) {
2078 return (__vector signed __int128)__scalar;
2079}
2080
2081static inline __ATTRS_o_ai __vector unsigned __int128
2082vec_splats(unsigned __int128 __scalar) {
2083 return (__vector unsigned __int128)__scalar;
2084}
2085
2086#if __ARCH__ >= 12
2087static inline __ATTRS_o_ai __vector float
2088vec_splats(float __scalar) {
2089 return (__vector float)__scalar;
2090}
2091#endif
2092
2093static inline __ATTRS_o_ai __vector double
2094vec_splats(double __scalar) {
2095 return (__vector double)__scalar;
2096}
2097
2098/*-- vec_extend_s64 ---------------------------------------------------------*/
2099
2100static inline __ATTRS_o_ai __vector signed long long
2101vec_extend_s64(__vector signed char __a) {
2102 return (__vector signed long long)(__a[7], __a[15]);
2103}
2104
2105static inline __ATTRS_o_ai __vector signed long long
2106vec_extend_s64(__vector signed short __a) {
2107 return (__vector signed long long)(__a[3], __a[7]);
2108}
2109
2110static inline __ATTRS_o_ai __vector signed long long
2111vec_extend_s64(__vector signed int __a) {
2112 return (__vector signed long long)(__a[1], __a[3]);
2113}
2114
2115/*-- vec_mergeh -------------------------------------------------------------*/
2116
2117static inline __ATTRS_o_ai __vector signed char
2118vec_mergeh(__vector signed char __a, __vector signed char __b) {
2119 return (__vector signed char)(
2120 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2121 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2122}
2123
2124static inline __ATTRS_o_ai __vector __bool char
2125vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
2126 return (__vector __bool char)(
2127 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2128 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2129}
2130
2131static inline __ATTRS_o_ai __vector unsigned char
2132vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
2133 return (__vector unsigned char)(
2134 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2135 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2136}
2137
2138static inline __ATTRS_o_ai __vector signed short
2139vec_mergeh(__vector signed short __a, __vector signed short __b) {
2140 return (__vector signed short)(
2141 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2142}
2143
2144static inline __ATTRS_o_ai __vector __bool short
2145vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
2146 return (__vector __bool short)(
2147 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2148}
2149
2150static inline __ATTRS_o_ai __vector unsigned short
2151vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
2152 return (__vector unsigned short)(
2153 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2154}
2155
2156static inline __ATTRS_o_ai __vector signed int
2157vec_mergeh(__vector signed int __a, __vector signed int __b) {
2158 return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
2159}
2160
2161static inline __ATTRS_o_ai __vector __bool int
2162vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
2163 return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
2164}
2165
2166static inline __ATTRS_o_ai __vector unsigned int
2167vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
2168 return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
2169}
2170
2171static inline __ATTRS_o_ai __vector signed long long
2172vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
2173 return (__vector signed long long)(__a[0], __b[0]);
2174}
2175
2176static inline __ATTRS_o_ai __vector __bool long long
2177vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
2178 return (__vector __bool long long)(__a[0], __b[0]);
2179}
2180
2181static inline __ATTRS_o_ai __vector unsigned long long
2182vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
2183 return (__vector unsigned long long)(__a[0], __b[0]);
2184}
2185
2186#if __ARCH__ >= 12
2187static inline __ATTRS_o_ai __vector float
2188vec_mergeh(__vector float __a, __vector float __b) {
2189 return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
2190}
2191#endif
2192
2193static inline __ATTRS_o_ai __vector double
2194vec_mergeh(__vector double __a, __vector double __b) {
2195 return (__vector double)(__a[0], __b[0]);
2196}
2197
2198/*-- vec_mergel -------------------------------------------------------------*/
2199
2200static inline __ATTRS_o_ai __vector signed char
2201vec_mergel(__vector signed char __a, __vector signed char __b) {
2202 return (__vector signed char)(
2203 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2204 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2205}
2206
2207static inline __ATTRS_o_ai __vector __bool char
2208vec_mergel(__vector __bool char __a, __vector __bool char __b) {
2209 return (__vector __bool char)(
2210 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2211 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2212}
2213
2214static inline __ATTRS_o_ai __vector unsigned char
2215vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
2216 return (__vector unsigned char)(
2217 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2218 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2219}
2220
2221static inline __ATTRS_o_ai __vector signed short
2222vec_mergel(__vector signed short __a, __vector signed short __b) {
2223 return (__vector signed short)(
2224 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2225}
2226
2227static inline __ATTRS_o_ai __vector __bool short
2228vec_mergel(__vector __bool short __a, __vector __bool short __b) {
2229 return (__vector __bool short)(
2230 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2231}
2232
2233static inline __ATTRS_o_ai __vector unsigned short
2234vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
2235 return (__vector unsigned short)(
2236 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2237}
2238
2239static inline __ATTRS_o_ai __vector signed int
2240vec_mergel(__vector signed int __a, __vector signed int __b) {
2241 return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
2242}
2243
2244static inline __ATTRS_o_ai __vector __bool int
2245vec_mergel(__vector __bool int __a, __vector __bool int __b) {
2246 return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
2247}
2248
2249static inline __ATTRS_o_ai __vector unsigned int
2250vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
2251 return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
2252}
2253
2254static inline __ATTRS_o_ai __vector signed long long
2255vec_mergel(__vector signed long long __a, __vector signed long long __b) {
2256 return (__vector signed long long)(__a[1], __b[1]);
2257}
2258
2259static inline __ATTRS_o_ai __vector __bool long long
2260vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
2261 return (__vector __bool long long)(__a[1], __b[1]);
2262}
2263
2264static inline __ATTRS_o_ai __vector unsigned long long
2265vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
2266 return (__vector unsigned long long)(__a[1], __b[1]);
2267}
2268
2269#if __ARCH__ >= 12
2270static inline __ATTRS_o_ai __vector float
2271vec_mergel(__vector float __a, __vector float __b) {
2272 return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
2273}
2274#endif
2275
2276static inline __ATTRS_o_ai __vector double
2277vec_mergel(__vector double __a, __vector double __b) {
2278 return (__vector double)(__a[1], __b[1]);
2279}
2280
2281/*-- vec_pack ---------------------------------------------------------------*/
2282
2283static inline __ATTRS_o_ai __vector signed char
2284vec_pack(__vector signed short __a, __vector signed short __b) {
2285 __vector signed char __ac = (__vector signed char)__a;
2286 __vector signed char __bc = (__vector signed char)__b;
2287 return (__vector signed char)(
2288 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2289 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2290}
2291
2292static inline __ATTRS_o_ai __vector __bool char
2293vec_pack(__vector __bool short __a, __vector __bool short __b) {
2294 __vector __bool char __ac = (__vector __bool char)__a;
2295 __vector __bool char __bc = (__vector __bool char)__b;
2296 return (__vector __bool char)(
2297 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2298 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2299}
2300
2301static inline __ATTRS_o_ai __vector unsigned char
2302vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
2303 __vector unsigned char __ac = (__vector unsigned char)__a;
2304 __vector unsigned char __bc = (__vector unsigned char)__b;
2305 return (__vector unsigned char)(
2306 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2307 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2308}
2309
2310static inline __ATTRS_o_ai __vector signed short
2311vec_pack(__vector signed int __a, __vector signed int __b) {
2312 __vector signed short __ac = (__vector signed short)__a;
2313 __vector signed short __bc = (__vector signed short)__b;
2314 return (__vector signed short)(
2315 __ac[1], __ac[3], __ac[5], __ac[7],
2316 __bc[1], __bc[3], __bc[5], __bc[7]);
2317}
2318
2319static inline __ATTRS_o_ai __vector __bool short
2320vec_pack(__vector __bool int __a, __vector __bool int __b) {
2321 __vector __bool short __ac = (__vector __bool short)__a;
2322 __vector __bool short __bc = (__vector __bool short)__b;
2323 return (__vector __bool short)(
2324 __ac[1], __ac[3], __ac[5], __ac[7],
2325 __bc[1], __bc[3], __bc[5], __bc[7]);
2326}
2327
2328static inline __ATTRS_o_ai __vector unsigned short
2329vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
2330 __vector unsigned short __ac = (__vector unsigned short)__a;
2331 __vector unsigned short __bc = (__vector unsigned short)__b;
2332 return (__vector unsigned short)(
2333 __ac[1], __ac[3], __ac[5], __ac[7],
2334 __bc[1], __bc[3], __bc[5], __bc[7]);
2335}
2336
2337static inline __ATTRS_o_ai __vector signed int
2338vec_pack(__vector signed long long __a, __vector signed long long __b) {
2339 __vector signed int __ac = (__vector signed int)__a;
2340 __vector signed int __bc = (__vector signed int)__b;
2341 return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2342}
2343
2344static inline __ATTRS_o_ai __vector __bool int
2345vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
2346 __vector __bool int __ac = (__vector __bool int)__a;
2347 __vector __bool int __bc = (__vector __bool int)__b;
2348 return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2349}
2350
2351static inline __ATTRS_o_ai __vector unsigned int
2352vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
2353 __vector unsigned int __ac = (__vector unsigned int)__a;
2354 __vector unsigned int __bc = (__vector unsigned int)__b;
2355 return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2356}
2357
2358static inline __ATTRS_o_ai __vector signed long long
2359vec_pack(__vector signed __int128 __a, __vector signed __int128 __b) {
2360 __vector signed long long __ac = (__vector signed long long)__a;
2361 __vector signed long long __bc = (__vector signed long long)__b;
2362 return (__vector signed long long)(__ac[1], __bc[1]);
2363}
2364
2365static inline __ATTRS_o_ai __vector __bool long long
2366vec_pack(__vector __bool __int128 __a, __vector __bool __int128 __b) {
2367 __vector __bool long long __ac = (__vector __bool long long)__a;
2368 __vector __bool long long __bc = (__vector __bool long long)__b;
2369 return (__vector __bool long long)(__ac[1], __bc[1]);
2370}
2371
2372static inline __ATTRS_o_ai __vector unsigned long long
2373vec_pack(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2374 __vector unsigned long long __ac = (__vector unsigned long long)__a;
2375 __vector unsigned long long __bc = (__vector unsigned long long)__b;
2376 return (__vector unsigned long long)(__ac[1], __bc[1]);
2377}
2378
2379/*-- vec_packs --------------------------------------------------------------*/
2380
2381static inline __ATTRS_o_ai __vector signed char
2382vec_packs(__vector signed short __a, __vector signed short __b) {
2383 return __builtin_s390_vpksh(__a, __b);
2384}
2385
2386static inline __ATTRS_o_ai __vector unsigned char
2387vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
2388 return __builtin_s390_vpklsh(__a, __b);
2389}
2390
2391static inline __ATTRS_o_ai __vector signed short
2392vec_packs(__vector signed int __a, __vector signed int __b) {
2393 return __builtin_s390_vpksf(__a, __b);
2394}
2395
2396static inline __ATTRS_o_ai __vector unsigned short
2397vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
2398 return __builtin_s390_vpklsf(__a, __b);
2399}
2400
2401static inline __ATTRS_o_ai __vector signed int
2402vec_packs(__vector signed long long __a, __vector signed long long __b) {
2403 return __builtin_s390_vpksg(__a, __b);
2404}
2405
2406static inline __ATTRS_o_ai __vector unsigned int
2407vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
2408 return __builtin_s390_vpklsg(__a, __b);
2409}
2410
2411/*-- vec_packs_cc -----------------------------------------------------------*/
2412
2413static inline __ATTRS_o_ai __vector signed char
2414vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
2415 return __builtin_s390_vpkshs(__a, __b, __cc);
2416}
2417
2418static inline __ATTRS_o_ai __vector unsigned char
2419vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
2420 int *__cc) {
2421 return __builtin_s390_vpklshs(__a, __b, __cc);
2422}
2423
2424static inline __ATTRS_o_ai __vector signed short
2425vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
2426 return __builtin_s390_vpksfs(__a, __b, __cc);
2427}
2428
2429static inline __ATTRS_o_ai __vector unsigned short
2430vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2431 return __builtin_s390_vpklsfs(__a, __b, __cc);
2432}
2433
2434static inline __ATTRS_o_ai __vector signed int
2435vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
2436 int *__cc) {
2437 return __builtin_s390_vpksgs(__a, __b, __cc);
2438}
2439
2440static inline __ATTRS_o_ai __vector unsigned int
2441vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2442 int *__cc) {
2443 return __builtin_s390_vpklsgs(__a, __b, __cc);
2444}
2445
2446/*-- vec_packsu -------------------------------------------------------------*/
2447
2448static inline __ATTRS_o_ai __vector unsigned char
2449vec_packsu(__vector signed short __a, __vector signed short __b) {
2450 const __vector signed short __zero = (__vector signed short)0;
2451 return __builtin_s390_vpklsh(
2452 (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
2453 (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
2454}
2455
2456static inline __ATTRS_o_ai __vector unsigned char
2457vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
2458 return __builtin_s390_vpklsh(__a, __b);
2459}
2460
2461static inline __ATTRS_o_ai __vector unsigned short
2462vec_packsu(__vector signed int __a, __vector signed int __b) {
2463 const __vector signed int __zero = (__vector signed int)0;
2464 return __builtin_s390_vpklsf(
2465 (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
2466 (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
2467}
2468
2469static inline __ATTRS_o_ai __vector unsigned short
2470vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
2471 return __builtin_s390_vpklsf(__a, __b);
2472}
2473
2474static inline __ATTRS_o_ai __vector unsigned int
2475vec_packsu(__vector signed long long __a, __vector signed long long __b) {
2476 const __vector signed long long __zero = (__vector signed long long)0;
2477 return __builtin_s390_vpklsg(
2478 (__vector unsigned long long)(__a >= __zero) &
2479 (__vector unsigned long long)__a,
2480 (__vector unsigned long long)(__b >= __zero) &
2481 (__vector unsigned long long)__b);
2482}
2483
2484static inline __ATTRS_o_ai __vector unsigned int
2485vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
2486 return __builtin_s390_vpklsg(__a, __b);
2487}
2488
2489/*-- vec_packsu_cc ----------------------------------------------------------*/
2490
2491static inline __ATTRS_o_ai __vector unsigned char
2492vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
2493 int *__cc) {
2494 return __builtin_s390_vpklshs(__a, __b, __cc);
2495}
2496
2497static inline __ATTRS_o_ai __vector unsigned short
2498vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2499 return __builtin_s390_vpklsfs(__a, __b, __cc);
2500}
2501
2502static inline __ATTRS_o_ai __vector unsigned int
2503vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2504 int *__cc) {
2505 return __builtin_s390_vpklsgs(__a, __b, __cc);
2506}
2507
2508/*-- vec_unpackh ------------------------------------------------------------*/
2509
2510static inline __ATTRS_o_ai __vector signed short
2511vec_unpackh(__vector signed char __a) {
2512 return __builtin_s390_vuphb(__a);
2513}
2514
2515static inline __ATTRS_o_ai __vector __bool short
2516vec_unpackh(__vector __bool char __a) {
2517 return ((__vector __bool short)
2518 __builtin_s390_vuphb((__vector signed char)__a));
2519}
2520
2521static inline __ATTRS_o_ai __vector unsigned short
2522vec_unpackh(__vector unsigned char __a) {
2523 return __builtin_s390_vuplhb(__a);
2524}
2525
2526static inline __ATTRS_o_ai __vector signed int
2527vec_unpackh(__vector signed short __a) {
2528 return __builtin_s390_vuphh(__a);
2529}
2530
2531static inline __ATTRS_o_ai __vector __bool int
2532vec_unpackh(__vector __bool short __a) {
2533 return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
2534}
2535
2536static inline __ATTRS_o_ai __vector unsigned int
2537vec_unpackh(__vector unsigned short __a) {
2538 return __builtin_s390_vuplhh(__a);
2539}
2540
2541static inline __ATTRS_o_ai __vector signed long long
2542vec_unpackh(__vector signed int __a) {
2543 return __builtin_s390_vuphf(__a);
2544}
2545
2546static inline __ATTRS_o_ai __vector __bool long long
2547vec_unpackh(__vector __bool int __a) {
2548 return ((__vector __bool long long)
2549 __builtin_s390_vuphf((__vector signed int)__a));
2550}
2551
2552static inline __ATTRS_o_ai __vector unsigned long long
2553vec_unpackh(__vector unsigned int __a) {
2554 return __builtin_s390_vuplhf(__a);
2555}
2556
2557#if __ARCH__ >= 15
2558static inline __ATTRS_o_ai __vector signed __int128
2559vec_unpackh(__vector signed long long __a) {
2560 return (__vector signed __int128)__builtin_s390_vuphg(__a);
2561}
2562
2563static inline __ATTRS_o_ai __vector __bool __int128
2564vec_unpackh(__vector __bool long long __a) {
2565 return ((__vector __bool __int128)
2566 __builtin_s390_vuphg((__vector signed long long)__a));
2567}
2568
2569static inline __ATTRS_o_ai __vector unsigned __int128
2570vec_unpackh(__vector unsigned long long __a) {
2571 return (__vector unsigned __int128)__builtin_s390_vuplhg(__a);
2572}
2573#endif
2574
2575/*-- vec_unpackl ------------------------------------------------------------*/
2576
2577static inline __ATTRS_o_ai __vector signed short
2578vec_unpackl(__vector signed char __a) {
2579 return __builtin_s390_vuplb(__a);
2580}
2581
2582static inline __ATTRS_o_ai __vector __bool short
2583vec_unpackl(__vector __bool char __a) {
2584 return ((__vector __bool short)
2585 __builtin_s390_vuplb((__vector signed char)__a));
2586}
2587
2588static inline __ATTRS_o_ai __vector unsigned short
2589vec_unpackl(__vector unsigned char __a) {
2590 return __builtin_s390_vupllb(__a);
2591}
2592
2593static inline __ATTRS_o_ai __vector signed int
2594vec_unpackl(__vector signed short __a) {
2595 return __builtin_s390_vuplhw(__a);
2596}
2597
2598static inline __ATTRS_o_ai __vector __bool int
2599vec_unpackl(__vector __bool short __a) {
2600 return ((__vector __bool int)
2601 __builtin_s390_vuplhw((__vector signed short)__a));
2602}
2603
2604static inline __ATTRS_o_ai __vector unsigned int
2605vec_unpackl(__vector unsigned short __a) {
2606 return __builtin_s390_vupllh(__a);
2607}
2608
2609static inline __ATTRS_o_ai __vector signed long long
2610vec_unpackl(__vector signed int __a) {
2611 return __builtin_s390_vuplf(__a);
2612}
2613
2614static inline __ATTRS_o_ai __vector __bool long long
2615vec_unpackl(__vector __bool int __a) {
2616 return ((__vector __bool long long)
2617 __builtin_s390_vuplf((__vector signed int)__a));
2618}
2619
2620static inline __ATTRS_o_ai __vector unsigned long long
2621vec_unpackl(__vector unsigned int __a) {
2622 return __builtin_s390_vupllf(__a);
2623}
2624
2625#if __ARCH__ >= 15
2626static inline __ATTRS_o_ai __vector signed __int128
2627vec_unpackl(__vector signed long long __a) {
2628 return (__vector signed __int128)__builtin_s390_vuplg(__a);
2629}
2630
2631static inline __ATTRS_o_ai __vector __bool __int128
2632vec_unpackl(__vector __bool long long __a) {
2633 return ((__vector __bool __int128)
2634 __builtin_s390_vuplg((__vector signed long long)__a));
2635}
2636
2637static inline __ATTRS_o_ai __vector unsigned __int128
2638vec_unpackl(__vector unsigned long long __a) {
2639 return (__vector unsigned __int128)__builtin_s390_vupllg(__a);
2640}
2641#endif
2642
2643/*-- vec_cmpeq --------------------------------------------------------------*/
2644
2645static inline __ATTRS_o_ai __vector __bool char
2646vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
2647 return (__vector __bool char)(__a == __b);
2648}
2649
2650static inline __ATTRS_o_ai __vector __bool char
2651vec_cmpeq(__vector signed char __a, __vector signed char __b) {
2652 return (__vector __bool char)(__a == __b);
2653}
2654
2655static inline __ATTRS_o_ai __vector __bool char
2656vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
2657 return (__vector __bool char)(__a == __b);
2658}
2659
2660static inline __ATTRS_o_ai __vector __bool short
2661vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
2662 return (__vector __bool short)(__a == __b);
2663}
2664
2665static inline __ATTRS_o_ai __vector __bool short
2666vec_cmpeq(__vector signed short __a, __vector signed short __b) {
2667 return (__vector __bool short)(__a == __b);
2668}
2669
2670static inline __ATTRS_o_ai __vector __bool short
2671vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
2672 return (__vector __bool short)(__a == __b);
2673}
2674
2675static inline __ATTRS_o_ai __vector __bool int
2676vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
2677 return (__vector __bool int)(__a == __b);
2678}
2679
2680static inline __ATTRS_o_ai __vector __bool int
2681vec_cmpeq(__vector signed int __a, __vector signed int __b) {
2682 return (__vector __bool int)(__a == __b);
2683}
2684
2685static inline __ATTRS_o_ai __vector __bool int
2686vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
2687 return (__vector __bool int)(__a == __b);
2688}
2689
2690static inline __ATTRS_o_ai __vector __bool long long
2691vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
2692 return (__vector __bool long long)(__a == __b);
2693}
2694
2695static inline __ATTRS_o_ai __vector __bool long long
2696vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
2697 return (__vector __bool long long)(__a == __b);
2698}
2699
2700static inline __ATTRS_o_ai __vector __bool long long
2701vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
2702 return (__vector __bool long long)(__a == __b);
2703}
2704
2705static inline __ATTRS_o_ai __vector __bool __int128
2706vec_cmpeq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
2707 return (__vector __bool __int128)(__a == __b);
2708}
2709
2710static inline __ATTRS_o_ai __vector __bool __int128
2711vec_cmpeq(__vector signed __int128 __a, __vector signed __int128 __b) {
2712 return (__vector __bool __int128)(__a == __b);
2713}
2714
2715static inline __ATTRS_o_ai __vector __bool __int128
2716vec_cmpeq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2717 return (__vector __bool __int128)(__a == __b);
2718}
2719
2720#if __ARCH__ >= 12
2721static inline __ATTRS_o_ai __vector __bool int
2722vec_cmpeq(__vector float __a, __vector float __b) {
2723 return (__vector __bool int)(__a == __b);
2724}
2725#endif
2726
2727static inline __ATTRS_o_ai __vector __bool long long
2728vec_cmpeq(__vector double __a, __vector double __b) {
2729 return (__vector __bool long long)(__a == __b);
2730}
2731
2732/*-- vec_cmpge --------------------------------------------------------------*/
2733
2734static inline __ATTRS_o_ai __vector __bool char
2735vec_cmpge(__vector signed char __a, __vector signed char __b) {
2736 return (__vector __bool char)(__a >= __b);
2737}
2738
2739static inline __ATTRS_o_ai __vector __bool char
2740vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
2741 return (__vector __bool char)(__a >= __b);
2742}
2743
2744static inline __ATTRS_o_ai __vector __bool short
2745vec_cmpge(__vector signed short __a, __vector signed short __b) {
2746 return (__vector __bool short)(__a >= __b);
2747}
2748
2749static inline __ATTRS_o_ai __vector __bool short
2750vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
2751 return (__vector __bool short)(__a >= __b);
2752}
2753
2754static inline __ATTRS_o_ai __vector __bool int
2755vec_cmpge(__vector signed int __a, __vector signed int __b) {
2756 return (__vector __bool int)(__a >= __b);
2757}
2758
2759static inline __ATTRS_o_ai __vector __bool int
2760vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
2761 return (__vector __bool int)(__a >= __b);
2762}
2763
2764static inline __ATTRS_o_ai __vector __bool long long
2765vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
2766 return (__vector __bool long long)(__a >= __b);
2767}
2768
2769static inline __ATTRS_o_ai __vector __bool long long
2770vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
2771 return (__vector __bool long long)(__a >= __b);
2772}
2773
2774static inline __ATTRS_o_ai __vector __bool __int128
2775vec_cmpge(__vector signed __int128 __a, __vector signed __int128 __b) {
2776 return (__vector __bool __int128)(__a >= __b);
2777}
2778
2779static inline __ATTRS_o_ai __vector __bool __int128
2780vec_cmpge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2781 return (__vector __bool __int128)(__a >= __b);
2782}
2783
2784#if __ARCH__ >= 12
2785static inline __ATTRS_o_ai __vector __bool int
2786vec_cmpge(__vector float __a, __vector float __b) {
2787 return (__vector __bool int)(__a >= __b);
2788}
2789#endif
2790
2791static inline __ATTRS_o_ai __vector __bool long long
2792vec_cmpge(__vector double __a, __vector double __b) {
2793 return (__vector __bool long long)(__a >= __b);
2794}
2795
2796/*-- vec_cmpgt --------------------------------------------------------------*/
2797
2798static inline __ATTRS_o_ai __vector __bool char
2799vec_cmpgt(__vector signed char __a, __vector signed char __b) {
2800 return (__vector __bool char)(__a > __b);
2801}
2802
2803static inline __ATTRS_o_ai __vector __bool char
2804vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
2805 return (__vector __bool char)(__a > __b);
2806}
2807
2808static inline __ATTRS_o_ai __vector __bool short
2809vec_cmpgt(__vector signed short __a, __vector signed short __b) {
2810 return (__vector __bool short)(__a > __b);
2811}
2812
2813static inline __ATTRS_o_ai __vector __bool short
2814vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
2815 return (__vector __bool short)(__a > __b);
2816}
2817
2818static inline __ATTRS_o_ai __vector __bool int
2819vec_cmpgt(__vector signed int __a, __vector signed int __b) {
2820 return (__vector __bool int)(__a > __b);
2821}
2822
2823static inline __ATTRS_o_ai __vector __bool int
2824vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
2825 return (__vector __bool int)(__a > __b);
2826}
2827
2828static inline __ATTRS_o_ai __vector __bool long long
2829vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
2830 return (__vector __bool long long)(__a > __b);
2831}
2832
2833static inline __ATTRS_o_ai __vector __bool long long
2834vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
2835 return (__vector __bool long long)(__a > __b);
2836}
2837
2838static inline __ATTRS_o_ai __vector __bool __int128
2839vec_cmpgt(__vector signed __int128 __a, __vector signed __int128 __b) {
2840 return (__vector __bool __int128)(__a > __b);
2841}
2842
2843static inline __ATTRS_o_ai __vector __bool __int128
2844vec_cmpgt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2845 return (__vector __bool __int128)(__a > __b);
2846}
2847
2848#if __ARCH__ >= 12
2849static inline __ATTRS_o_ai __vector __bool int
2850vec_cmpgt(__vector float __a, __vector float __b) {
2851 return (__vector __bool int)(__a > __b);
2852}
2853#endif
2854
2855static inline __ATTRS_o_ai __vector __bool long long
2856vec_cmpgt(__vector double __a, __vector double __b) {
2857 return (__vector __bool long long)(__a > __b);
2858}
2859
2860/*-- vec_cmple --------------------------------------------------------------*/
2861
2862static inline __ATTRS_o_ai __vector __bool char
2863vec_cmple(__vector signed char __a, __vector signed char __b) {
2864 return (__vector __bool char)(__a <= __b);
2865}
2866
2867static inline __ATTRS_o_ai __vector __bool char
2868vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
2869 return (__vector __bool char)(__a <= __b);
2870}
2871
2872static inline __ATTRS_o_ai __vector __bool short
2873vec_cmple(__vector signed short __a, __vector signed short __b) {
2874 return (__vector __bool short)(__a <= __b);
2875}
2876
2877static inline __ATTRS_o_ai __vector __bool short
2878vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
2879 return (__vector __bool short)(__a <= __b);
2880}
2881
2882static inline __ATTRS_o_ai __vector __bool int
2883vec_cmple(__vector signed int __a, __vector signed int __b) {
2884 return (__vector __bool int)(__a <= __b);
2885}
2886
2887static inline __ATTRS_o_ai __vector __bool int
2888vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
2889 return (__vector __bool int)(__a <= __b);
2890}
2891
2892static inline __ATTRS_o_ai __vector __bool long long
2893vec_cmple(__vector signed long long __a, __vector signed long long __b) {
2894 return (__vector __bool long long)(__a <= __b);
2895}
2896
2897static inline __ATTRS_o_ai __vector __bool long long
2898vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
2899 return (__vector __bool long long)(__a <= __b);
2900}
2901
2902static inline __ATTRS_o_ai __vector __bool __int128
2903vec_cmple(__vector signed __int128 __a, __vector signed __int128 __b) {
2904 return (__vector __bool __int128)(__a <= __b);
2905}
2906
2907static inline __ATTRS_o_ai __vector __bool __int128
2908vec_cmple(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2909 return (__vector __bool __int128)(__a <= __b);
2910}
2911
2912#if __ARCH__ >= 12
2913static inline __ATTRS_o_ai __vector __bool int
2914vec_cmple(__vector float __a, __vector float __b) {
2915 return (__vector __bool int)(__a <= __b);
2916}
2917#endif
2918
2919static inline __ATTRS_o_ai __vector __bool long long
2920vec_cmple(__vector double __a, __vector double __b) {
2921 return (__vector __bool long long)(__a <= __b);
2922}
2923
2924/*-- vec_cmplt --------------------------------------------------------------*/
2925
2926static inline __ATTRS_o_ai __vector __bool char
2927vec_cmplt(__vector signed char __a, __vector signed char __b) {
2928 return (__vector __bool char)(__a < __b);
2929}
2930
2931static inline __ATTRS_o_ai __vector __bool char
2932vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
2933 return (__vector __bool char)(__a < __b);
2934}
2935
2936static inline __ATTRS_o_ai __vector __bool short
2937vec_cmplt(__vector signed short __a, __vector signed short __b) {
2938 return (__vector __bool short)(__a < __b);
2939}
2940
2941static inline __ATTRS_o_ai __vector __bool short
2942vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
2943 return (__vector __bool short)(__a < __b);
2944}
2945
2946static inline __ATTRS_o_ai __vector __bool int
2947vec_cmplt(__vector signed int __a, __vector signed int __b) {
2948 return (__vector __bool int)(__a < __b);
2949}
2950
2951static inline __ATTRS_o_ai __vector __bool int
2952vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
2953 return (__vector __bool int)(__a < __b);
2954}
2955
2956static inline __ATTRS_o_ai __vector __bool long long
2957vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
2958 return (__vector __bool long long)(__a < __b);
2959}
2960
2961static inline __ATTRS_o_ai __vector __bool long long
2962vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
2963 return (__vector __bool long long)(__a < __b);
2964}
2965
2966static inline __ATTRS_o_ai __vector __bool __int128
2967vec_cmplt(__vector signed __int128 __a, __vector signed __int128 __b) {
2968 return (__vector __bool __int128)(__a < __b);
2969}
2970
2971static inline __ATTRS_o_ai __vector __bool __int128
2972vec_cmplt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2973 return (__vector __bool __int128)(__a < __b);
2974}
2975
2976#if __ARCH__ >= 12
2977static inline __ATTRS_o_ai __vector __bool int
2978vec_cmplt(__vector float __a, __vector float __b) {
2979 return (__vector __bool int)(__a < __b);
2980}
2981#endif
2982
2983static inline __ATTRS_o_ai __vector __bool long long
2984vec_cmplt(__vector double __a, __vector double __b) {
2985 return (__vector __bool long long)(__a < __b);
2986}
2987
2988/*-- vec_all_eq -------------------------------------------------------------*/
2989
2990static inline __ATTRS_o_ai int
2991vec_all_eq(__vector signed char __a, __vector signed char __b) {
2992 int __cc;
2993 __builtin_s390_vceqbs((__vector unsigned char)__a,
2994 (__vector unsigned char)__b, &__cc);
2995 return __cc == 0;
2996}
2997
2998// This prototype is deprecated.
2999static inline __ATTRS_o_ai int
3000vec_all_eq(__vector signed char __a, __vector __bool char __b) {
3001 int __cc;
3002 __builtin_s390_vceqbs((__vector unsigned char)__a,
3003 (__vector unsigned char)__b, &__cc);
3004 return __cc == 0;
3005}
3006
3007// This prototype is deprecated.
3008static inline __ATTRS_o_ai int
3009vec_all_eq(__vector __bool char __a, __vector signed char __b) {
3010 int __cc;
3011 __builtin_s390_vceqbs((__vector unsigned char)__a,
3012 (__vector unsigned char)__b, &__cc);
3013 return __cc == 0;
3014}
3015
3016static inline __ATTRS_o_ai int
3017vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
3018 int __cc;
3019 __builtin_s390_vceqbs(__a, __b, &__cc);
3020 return __cc == 0;
3021}
3022
3023// This prototype is deprecated.
3024static inline __ATTRS_o_ai int
3025vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
3026 int __cc;
3027 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
3028 return __cc == 0;
3029}
3030
3031// This prototype is deprecated.
3032static inline __ATTRS_o_ai int
3033vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
3034 int __cc;
3035 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
3036 return __cc == 0;
3037}
3038
3039static inline __ATTRS_o_ai int
3040vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
3041 int __cc;
3042 __builtin_s390_vceqbs((__vector unsigned char)__a,
3043 (__vector unsigned char)__b, &__cc);
3044 return __cc == 0;
3045}
3046
3047static inline __ATTRS_o_ai int
3048vec_all_eq(__vector signed short __a, __vector signed short __b) {
3049 int __cc;
3050 __builtin_s390_vceqhs((__vector unsigned short)__a,
3051 (__vector unsigned short)__b, &__cc);
3052 return __cc == 0;
3053}
3054
3055// This prototype is deprecated.
3056static inline __ATTRS_o_ai int
3057vec_all_eq(__vector signed short __a, __vector __bool short __b) {
3058 int __cc;
3059 __builtin_s390_vceqhs((__vector unsigned short)__a,
3060 (__vector unsigned short)__b, &__cc);
3061 return __cc == 0;
3062}
3063
3064// This prototype is deprecated.
3065static inline __ATTRS_o_ai int
3066vec_all_eq(__vector __bool short __a, __vector signed short __b) {
3067 int __cc;
3068 __builtin_s390_vceqhs((__vector unsigned short)__a,
3069 (__vector unsigned short)__b, &__cc);
3070 return __cc == 0;
3071}
3072
3073static inline __ATTRS_o_ai int
3074vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
3075 int __cc;
3076 __builtin_s390_vceqhs(__a, __b, &__cc);
3077 return __cc == 0;
3078}
3079
3080// This prototype is deprecated.
3081static inline __ATTRS_o_ai int
3082vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
3083 int __cc;
3084 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3085 return __cc == 0;
3086}
3087
3088// This prototype is deprecated.
3089static inline __ATTRS_o_ai int
3090vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
3091 int __cc;
3092 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3093 return __cc == 0;
3094}
3095
3096static inline __ATTRS_o_ai int
3097vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
3098 int __cc;
3099 __builtin_s390_vceqhs((__vector unsigned short)__a,
3100 (__vector unsigned short)__b, &__cc);
3101 return __cc == 0;
3102}
3103
3104static inline __ATTRS_o_ai int
3105vec_all_eq(__vector signed int __a, __vector signed int __b) {
3106 int __cc;
3107 __builtin_s390_vceqfs((__vector unsigned int)__a,
3108 (__vector unsigned int)__b, &__cc);
3109 return __cc == 0;
3110}
3111
3112// This prototype is deprecated.
3113static inline __ATTRS_o_ai int
3114vec_all_eq(__vector signed int __a, __vector __bool int __b) {
3115 int __cc;
3116 __builtin_s390_vceqfs((__vector unsigned int)__a,
3117 (__vector unsigned int)__b, &__cc);
3118 return __cc == 0;
3119}
3120
3121// This prototype is deprecated.
3122static inline __ATTRS_o_ai int
3123vec_all_eq(__vector __bool int __a, __vector signed int __b) {
3124 int __cc;
3125 __builtin_s390_vceqfs((__vector unsigned int)__a,
3126 (__vector unsigned int)__b, &__cc);
3127 return __cc == 0;
3128}
3129
3130static inline __ATTRS_o_ai int
3131vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
3132 int __cc;
3133 __builtin_s390_vceqfs(__a, __b, &__cc);
3134 return __cc == 0;
3135}
3136
3137// This prototype is deprecated.
3138static inline __ATTRS_o_ai int
3139vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
3140 int __cc;
3141 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3142 return __cc == 0;
3143}
3144
3145// This prototype is deprecated.
3146static inline __ATTRS_o_ai int
3147vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
3148 int __cc;
3149 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3150 return __cc == 0;
3151}
3152
3153static inline __ATTRS_o_ai int
3154vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
3155 int __cc;
3156 __builtin_s390_vceqfs((__vector unsigned int)__a,
3157 (__vector unsigned int)__b, &__cc);
3158 return __cc == 0;
3159}
3160
3161static inline __ATTRS_o_ai int
3162vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
3163 int __cc;
3164 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3165 (__vector unsigned long long)__b, &__cc);
3166 return __cc == 0;
3167}
3168
3169// This prototype is deprecated.
3170static inline __ATTRS_o_ai int
3171vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
3172 int __cc;
3173 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3174 (__vector unsigned long long)__b, &__cc);
3175 return __cc == 0;
3176}
3177
3178// This prototype is deprecated.
3179static inline __ATTRS_o_ai int
3180vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
3181 int __cc;
3182 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3183 (__vector unsigned long long)__b, &__cc);
3184 return __cc == 0;
3185}
3186
3187static inline __ATTRS_o_ai int
3188vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
3189 int __cc;
3190 __builtin_s390_vceqgs(__a, __b, &__cc);
3191 return __cc == 0;
3192}
3193
3194// This prototype is deprecated.
3195static inline __ATTRS_o_ai int
3196vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
3197 int __cc;
3198 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3199 return __cc == 0;
3200}
3201
3202// This prototype is deprecated.
3203static inline __ATTRS_o_ai int
3204vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
3205 int __cc;
3206 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3207 return __cc == 0;
3208}
3209
3210static inline __ATTRS_o_ai int
3211vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
3212 int __cc;
3213 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3214 (__vector unsigned long long)__b, &__cc);
3215 return __cc == 0;
3216}
3217
3218#if __ARCH__ >= 15
3219static inline __ATTRS_o_ai int
3220vec_all_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
3221 int __cc;
3222 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3223 return __cc == 0;
3224}
3225
3226static inline __ATTRS_o_ai int
3227vec_all_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3228 int __cc;
3229 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3230 return __cc == 0;
3231}
3232
3233static inline __ATTRS_o_ai int
3234vec_all_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
3235 int __cc;
3236 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3237 return __cc == 0;
3238}
3239#endif
3240
3241#if __ARCH__ >= 12
3242static inline __ATTRS_o_ai int
3243vec_all_eq(__vector float __a, __vector float __b) {
3244 int __cc;
3245 __builtin_s390_vfcesbs(__a, __b, &__cc);
3246 return __cc == 0;
3247}
3248#endif
3249
3250static inline __ATTRS_o_ai int
3251vec_all_eq(__vector double __a, __vector double __b) {
3252 int __cc;
3253 __builtin_s390_vfcedbs(__a, __b, &__cc);
3254 return __cc == 0;
3255}
3256
3257/*-- vec_all_ne -------------------------------------------------------------*/
3258
3259static inline __ATTRS_o_ai int
3260vec_all_ne(__vector signed char __a, __vector signed char __b) {
3261 int __cc;
3262 __builtin_s390_vceqbs((__vector unsigned char)__a,
3263 (__vector unsigned char)__b, &__cc);
3264 return __cc == 3;
3265}
3266
3267// This prototype is deprecated.
3268static inline __ATTRS_o_ai int
3269vec_all_ne(__vector signed char __a, __vector __bool char __b) {
3270 int __cc;
3271 __builtin_s390_vceqbs((__vector unsigned char)__a,
3272 (__vector unsigned char)__b, &__cc);
3273 return __cc == 3;
3274}
3275
3276// This prototype is deprecated.
3277static inline __ATTRS_o_ai int
3278vec_all_ne(__vector __bool char __a, __vector signed char __b) {
3279 int __cc;
3280 __builtin_s390_vceqbs((__vector unsigned char)__a,
3281 (__vector unsigned char)__b, &__cc);
3282 return __cc == 3;
3283}
3284
3285static inline __ATTRS_o_ai int
3286vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
3287 int __cc;
3288 __builtin_s390_vceqbs((__vector unsigned char)__a,
3289 (__vector unsigned char)__b, &__cc);
3290 return __cc == 3;
3291}
3292
3293// This prototype is deprecated.
3294static inline __ATTRS_o_ai int
3295vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
3296 int __cc;
3297 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
3298 return __cc == 3;
3299}
3300
3301// This prototype is deprecated.
3302static inline __ATTRS_o_ai int
3303vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
3304 int __cc;
3305 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
3306 return __cc == 3;
3307}
3308
3309static inline __ATTRS_o_ai int
3310vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
3311 int __cc;
3312 __builtin_s390_vceqbs((__vector unsigned char)__a,
3313 (__vector unsigned char)__b, &__cc);
3314 return __cc == 3;
3315}
3316
3317static inline __ATTRS_o_ai int
3318vec_all_ne(__vector signed short __a, __vector signed short __b) {
3319 int __cc;
3320 __builtin_s390_vceqhs((__vector unsigned short)__a,
3321 (__vector unsigned short)__b, &__cc);
3322 return __cc == 3;
3323}
3324
3325// This prototype is deprecated.
3326static inline __ATTRS_o_ai int
3327vec_all_ne(__vector signed short __a, __vector __bool short __b) {
3328 int __cc;
3329 __builtin_s390_vceqhs((__vector unsigned short)__a,
3330 (__vector unsigned short)__b, &__cc);
3331 return __cc == 3;
3332}
3333
3334// This prototype is deprecated.
3335static inline __ATTRS_o_ai int
3336vec_all_ne(__vector __bool short __a, __vector signed short __b) {
3337 int __cc;
3338 __builtin_s390_vceqhs((__vector unsigned short)__a,
3339 (__vector unsigned short)__b, &__cc);
3340 return __cc == 3;
3341}
3342
3343static inline __ATTRS_o_ai int
3344vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
3345 int __cc;
3346 __builtin_s390_vceqhs(__a, __b, &__cc);
3347 return __cc == 3;
3348}
3349
3350// This prototype is deprecated.
3351static inline __ATTRS_o_ai int
3352vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
3353 int __cc;
3354 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3355 return __cc == 3;
3356}
3357
3358// This prototype is deprecated.
3359static inline __ATTRS_o_ai int
3360vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
3361 int __cc;
3362 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3363 return __cc == 3;
3364}
3365
3366static inline __ATTRS_o_ai int
3367vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
3368 int __cc;
3369 __builtin_s390_vceqhs((__vector unsigned short)__a,
3370 (__vector unsigned short)__b, &__cc);
3371 return __cc == 3;
3372}
3373
3374static inline __ATTRS_o_ai int
3375vec_all_ne(__vector signed int __a, __vector signed int __b) {
3376 int __cc;
3377 __builtin_s390_vceqfs((__vector unsigned int)__a,
3378 (__vector unsigned int)__b, &__cc);
3379 return __cc == 3;
3380}
3381
3382// This prototype is deprecated.
3383static inline __ATTRS_o_ai int
3384vec_all_ne(__vector signed int __a, __vector __bool int __b) {
3385 int __cc;
3386 __builtin_s390_vceqfs((__vector unsigned int)__a,
3387 (__vector unsigned int)__b, &__cc);
3388 return __cc == 3;
3389}
3390
3391// This prototype is deprecated.
3392static inline __ATTRS_o_ai int
3393vec_all_ne(__vector __bool int __a, __vector signed int __b) {
3394 int __cc;
3395 __builtin_s390_vceqfs((__vector unsigned int)__a,
3396 (__vector unsigned int)__b, &__cc);
3397 return __cc == 3;
3398}
3399
3400static inline __ATTRS_o_ai int
3401vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
3402 int __cc;
3403 __builtin_s390_vceqfs(__a, __b, &__cc);
3404 return __cc == 3;
3405}
3406
3407// This prototype is deprecated.
3408static inline __ATTRS_o_ai int
3409vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
3410 int __cc;
3411 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3412 return __cc == 3;
3413}
3414
3415// This prototype is deprecated.
3416static inline __ATTRS_o_ai int
3417vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
3418 int __cc;
3419 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3420 return __cc == 3;
3421}
3422
3423static inline __ATTRS_o_ai int
3424vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
3425 int __cc;
3426 __builtin_s390_vceqfs((__vector unsigned int)__a,
3427 (__vector unsigned int)__b, &__cc);
3428 return __cc == 3;
3429}
3430
3431static inline __ATTRS_o_ai int
3432vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
3433 int __cc;
3434 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3435 (__vector unsigned long long)__b, &__cc);
3436 return __cc == 3;
3437}
3438
3439// This prototype is deprecated.
3440static inline __ATTRS_o_ai int
3441vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
3442 int __cc;
3443 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3444 (__vector unsigned long long)__b, &__cc);
3445 return __cc == 3;
3446}
3447
3448// This prototype is deprecated.
3449static inline __ATTRS_o_ai int
3450vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
3451 int __cc;
3452 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3453 (__vector unsigned long long)__b, &__cc);
3454 return __cc == 3;
3455}
3456
3457static inline __ATTRS_o_ai int
3458vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
3459 int __cc;
3460 __builtin_s390_vceqgs(__a, __b, &__cc);
3461 return __cc == 3;
3462}
3463
3464// This prototype is deprecated.
3465static inline __ATTRS_o_ai int
3466vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
3467 int __cc;
3468 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3469 return __cc == 3;
3470}
3471
3472// This prototype is deprecated.
3473static inline __ATTRS_o_ai int
3474vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
3475 int __cc;
3476 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3477 return __cc == 3;
3478}
3479
3480static inline __ATTRS_o_ai int
3481vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
3482 int __cc;
3483 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3484 (__vector unsigned long long)__b, &__cc);
3485 return __cc == 3;
3486}
3487
3488#if __ARCH__ >= 15
3489static inline __ATTRS_o_ai int
3490vec_all_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
3491 int __cc;
3492 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3493 return __cc == 3;
3494}
3495
3496static inline __ATTRS_o_ai int
3497vec_all_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3498 int __cc;
3499 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3500 return __cc == 3;
3501}
3502
3503static inline __ATTRS_o_ai int
3504vec_all_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
3505 int __cc;
3506 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3507 return __cc == 3;
3508}
3509#endif
3510
3511#if __ARCH__ >= 12
3512static inline __ATTRS_o_ai int
3513vec_all_ne(__vector float __a, __vector float __b) {
3514 int __cc;
3515 __builtin_s390_vfcesbs(__a, __b, &__cc);
3516 return __cc == 3;
3517}
3518#endif
3519
3520static inline __ATTRS_o_ai int
3521vec_all_ne(__vector double __a, __vector double __b) {
3522 int __cc;
3523 __builtin_s390_vfcedbs(__a, __b, &__cc);
3524 return __cc == 3;
3525}
3526
3527/*-- vec_all_ge -------------------------------------------------------------*/
3528
3529static inline __ATTRS_o_ai int
3530vec_all_ge(__vector signed char __a, __vector signed char __b) {
3531 int __cc;
3532 __builtin_s390_vchbs(__b, __a, &__cc);
3533 return __cc == 3;
3534}
3535
3536// This prototype is deprecated.
3537static inline __ATTRS_o_ai int
3538vec_all_ge(__vector signed char __a, __vector __bool char __b) {
3539 int __cc;
3540 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3541 return __cc == 3;
3542}
3543
3544// This prototype is deprecated.
3545static inline __ATTRS_o_ai int
3546vec_all_ge(__vector __bool char __a, __vector signed char __b) {
3547 int __cc;
3548 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3549 return __cc == 3;
3550}
3551
3552static inline __ATTRS_o_ai int
3553vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
3554 int __cc;
3555 __builtin_s390_vchlbs(__b, __a, &__cc);
3556 return __cc == 3;
3557}
3558
3559// This prototype is deprecated.
3560static inline __ATTRS_o_ai int
3561vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
3562 int __cc;
3563 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3564 return __cc == 3;
3565}
3566
3567// This prototype is deprecated.
3568static inline __ATTRS_o_ai int
3569vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
3570 int __cc;
3571 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3572 return __cc == 3;
3573}
3574
3575// This prototype is deprecated.
3576static inline __ATTRS_o_ai int
3577vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
3578 int __cc;
3579 __builtin_s390_vchlbs((__vector unsigned char)__b,
3580 (__vector unsigned char)__a, &__cc);
3581 return __cc == 3;
3582}
3583
3584static inline __ATTRS_o_ai int
3585vec_all_ge(__vector signed short __a, __vector signed short __b) {
3586 int __cc;
3587 __builtin_s390_vchhs(__b, __a, &__cc);
3588 return __cc == 3;
3589}
3590
3591// This prototype is deprecated.
3592static inline __ATTRS_o_ai int
3593vec_all_ge(__vector signed short __a, __vector __bool short __b) {
3594 int __cc;
3595 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3596 return __cc == 3;
3597}
3598
3599// This prototype is deprecated.
3600static inline __ATTRS_o_ai int
3601vec_all_ge(__vector __bool short __a, __vector signed short __b) {
3602 int __cc;
3603 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3604 return __cc == 3;
3605}
3606
3607static inline __ATTRS_o_ai int
3608vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
3609 int __cc;
3610 __builtin_s390_vchlhs(__b, __a, &__cc);
3611 return __cc == 3;
3612}
3613
3614// This prototype is deprecated.
3615static inline __ATTRS_o_ai int
3616vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
3617 int __cc;
3618 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3619 return __cc == 3;
3620}
3621
3622// This prototype is deprecated.
3623static inline __ATTRS_o_ai int
3624vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
3625 int __cc;
3626 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3627 return __cc == 3;
3628}
3629
3630// This prototype is deprecated.
3631static inline __ATTRS_o_ai int
3632vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
3633 int __cc;
3634 __builtin_s390_vchlhs((__vector unsigned short)__b,
3635 (__vector unsigned short)__a, &__cc);
3636 return __cc == 3;
3637}
3638
3639static inline __ATTRS_o_ai int
3640vec_all_ge(__vector signed int __a, __vector signed int __b) {
3641 int __cc;
3642 __builtin_s390_vchfs(__b, __a, &__cc);
3643 return __cc == 3;
3644}
3645
3646// This prototype is deprecated.
3647static inline __ATTRS_o_ai int
3648vec_all_ge(__vector signed int __a, __vector __bool int __b) {
3649 int __cc;
3650 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3651 return __cc == 3;
3652}
3653
3654// This prototype is deprecated.
3655static inline __ATTRS_o_ai int
3656vec_all_ge(__vector __bool int __a, __vector signed int __b) {
3657 int __cc;
3658 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3659 return __cc == 3;
3660}
3661
3662static inline __ATTRS_o_ai int
3663vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
3664 int __cc;
3665 __builtin_s390_vchlfs(__b, __a, &__cc);
3666 return __cc == 3;
3667}
3668
3669// This prototype is deprecated.
3670static inline __ATTRS_o_ai int
3671vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
3672 int __cc;
3673 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3674 return __cc == 3;
3675}
3676
3677// This prototype is deprecated.
3678static inline __ATTRS_o_ai int
3679vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
3680 int __cc;
3681 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3682 return __cc == 3;
3683}
3684
3685// This prototype is deprecated.
3686static inline __ATTRS_o_ai int
3687vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
3688 int __cc;
3689 __builtin_s390_vchlfs((__vector unsigned int)__b,
3690 (__vector unsigned int)__a, &__cc);
3691 return __cc == 3;
3692}
3693
3694static inline __ATTRS_o_ai int
3695vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
3696 int __cc;
3697 __builtin_s390_vchgs(__b, __a, &__cc);
3698 return __cc == 3;
3699}
3700
3701// This prototype is deprecated.
3702static inline __ATTRS_o_ai int
3703vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
3704 int __cc;
3705 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3706 return __cc == 3;
3707}
3708
3709// This prototype is deprecated.
3710static inline __ATTRS_o_ai int
3711vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
3712 int __cc;
3713 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3714 return __cc == 3;
3715}
3716
3717static inline __ATTRS_o_ai int
3718vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
3719 int __cc;
3720 __builtin_s390_vchlgs(__b, __a, &__cc);
3721 return __cc == 3;
3722}
3723
3724// This prototype is deprecated.
3725static inline __ATTRS_o_ai int
3726vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
3727 int __cc;
3728 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
3729 return __cc == 3;
3730}
3731
3732// This prototype is deprecated.
3733static inline __ATTRS_o_ai int
3734vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
3735 int __cc;
3736 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
3737 return __cc == 3;
3738}
3739
3740// This prototype is deprecated.
3741static inline __ATTRS_o_ai int
3742vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
3743 int __cc;
3744 __builtin_s390_vchlgs((__vector unsigned long long)__b,
3745 (__vector unsigned long long)__a, &__cc);
3746 return __cc == 3;
3747}
3748
3749#if __ARCH__ >= 15
3750static inline __ATTRS_o_ai int
3751vec_all_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
3752 int __cc;
3753 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
3754 return __cc == 3;
3755}
3756
3757static inline __ATTRS_o_ai int
3758vec_all_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3759 int __cc;
3760 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
3761 return __cc == 3;
3762}
3763#endif
3764
3765#if __ARCH__ >= 12
3766static inline __ATTRS_o_ai int
3767vec_all_ge(__vector float __a, __vector float __b) {
3768 int __cc;
3769 __builtin_s390_vfchesbs(__a, __b, &__cc);
3770 return __cc == 0;
3771}
3772#endif
3773
3774static inline __ATTRS_o_ai int
3775vec_all_ge(__vector double __a, __vector double __b) {
3776 int __cc;
3777 __builtin_s390_vfchedbs(__a, __b, &__cc);
3778 return __cc == 0;
3779}
3780
3781/*-- vec_all_gt -------------------------------------------------------------*/
3782
3783static inline __ATTRS_o_ai int
3784vec_all_gt(__vector signed char __a, __vector signed char __b) {
3785 int __cc;
3786 __builtin_s390_vchbs(__a, __b, &__cc);
3787 return __cc == 0;
3788}
3789
3790// This prototype is deprecated.
3791static inline __ATTRS_o_ai int
3792vec_all_gt(__vector signed char __a, __vector __bool char __b) {
3793 int __cc;
3794 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3795 return __cc == 0;
3796}
3797
3798// This prototype is deprecated.
3799static inline __ATTRS_o_ai int
3800vec_all_gt(__vector __bool char __a, __vector signed char __b) {
3801 int __cc;
3802 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3803 return __cc == 0;
3804}
3805
3806static inline __ATTRS_o_ai int
3807vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
3808 int __cc;
3809 __builtin_s390_vchlbs(__a, __b, &__cc);
3810 return __cc == 0;
3811}
3812
3813// This prototype is deprecated.
3814static inline __ATTRS_o_ai int
3815vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
3816 int __cc;
3817 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3818 return __cc == 0;
3819}
3820
3821// This prototype is deprecated.
3822static inline __ATTRS_o_ai int
3823vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
3824 int __cc;
3825 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3826 return __cc == 0;
3827}
3828
3829// This prototype is deprecated.
3830static inline __ATTRS_o_ai int
3831vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
3832 int __cc;
3833 __builtin_s390_vchlbs((__vector unsigned char)__a,
3834 (__vector unsigned char)__b, &__cc);
3835 return __cc == 0;
3836}
3837
3838static inline __ATTRS_o_ai int
3839vec_all_gt(__vector signed short __a, __vector signed short __b) {
3840 int __cc;
3841 __builtin_s390_vchhs(__a, __b, &__cc);
3842 return __cc == 0;
3843}
3844
3845// This prototype is deprecated.
3846static inline __ATTRS_o_ai int
3847vec_all_gt(__vector signed short __a, __vector __bool short __b) {
3848 int __cc;
3849 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3850 return __cc == 0;
3851}
3852
3853// This prototype is deprecated.
3854static inline __ATTRS_o_ai int
3855vec_all_gt(__vector __bool short __a, __vector signed short __b) {
3856 int __cc;
3857 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3858 return __cc == 0;
3859}
3860
3861static inline __ATTRS_o_ai int
3862vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
3863 int __cc;
3864 __builtin_s390_vchlhs(__a, __b, &__cc);
3865 return __cc == 0;
3866}
3867
3868// This prototype is deprecated.
3869static inline __ATTRS_o_ai int
3870vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
3871 int __cc;
3872 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3873 return __cc == 0;
3874}
3875
3876// This prototype is deprecated.
3877static inline __ATTRS_o_ai int
3878vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
3879 int __cc;
3880 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3881 return __cc == 0;
3882}
3883
3884// This prototype is deprecated.
3885static inline __ATTRS_o_ai int
3886vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
3887 int __cc;
3888 __builtin_s390_vchlhs((__vector unsigned short)__a,
3889 (__vector unsigned short)__b, &__cc);
3890 return __cc == 0;
3891}
3892
3893static inline __ATTRS_o_ai int
3894vec_all_gt(__vector signed int __a, __vector signed int __b) {
3895 int __cc;
3896 __builtin_s390_vchfs(__a, __b, &__cc);
3897 return __cc == 0;
3898}
3899
3900// This prototype is deprecated.
3901static inline __ATTRS_o_ai int
3902vec_all_gt(__vector signed int __a, __vector __bool int __b) {
3903 int __cc;
3904 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3905 return __cc == 0;
3906}
3907
3908// This prototype is deprecated.
3909static inline __ATTRS_o_ai int
3910vec_all_gt(__vector __bool int __a, __vector signed int __b) {
3911 int __cc;
3912 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3913 return __cc == 0;
3914}
3915
3916static inline __ATTRS_o_ai int
3917vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
3918 int __cc;
3919 __builtin_s390_vchlfs(__a, __b, &__cc);
3920 return __cc == 0;
3921}
3922
3923// This prototype is deprecated.
3924static inline __ATTRS_o_ai int
3925vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
3926 int __cc;
3927 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3928 return __cc == 0;
3929}
3930
3931// This prototype is deprecated.
3932static inline __ATTRS_o_ai int
3933vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
3934 int __cc;
3935 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3936 return __cc == 0;
3937}
3938
3939// This prototype is deprecated.
3940static inline __ATTRS_o_ai int
3941vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
3942 int __cc;
3943 __builtin_s390_vchlfs((__vector unsigned int)__a,
3944 (__vector unsigned int)__b, &__cc);
3945 return __cc == 0;
3946}
3947
3948static inline __ATTRS_o_ai int
3949vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
3950 int __cc;
3951 __builtin_s390_vchgs(__a, __b, &__cc);
3952 return __cc == 0;
3953}
3954
3955// This prototype is deprecated.
3956static inline __ATTRS_o_ai int
3957vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
3958 int __cc;
3959 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3960 return __cc == 0;
3961}
3962
3963// This prototype is deprecated.
3964static inline __ATTRS_o_ai int
3965vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
3966 int __cc;
3967 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3968 return __cc == 0;
3969}
3970
3971static inline __ATTRS_o_ai int
3972vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
3973 int __cc;
3974 __builtin_s390_vchlgs(__a, __b, &__cc);
3975 return __cc == 0;
3976}
3977
3978// This prototype is deprecated.
3979static inline __ATTRS_o_ai int
3980vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
3981 int __cc;
3982 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3983 return __cc == 0;
3984}
3985
3986// This prototype is deprecated.
3987static inline __ATTRS_o_ai int
3988vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
3989 int __cc;
3990 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3991 return __cc == 0;
3992}
3993
3994// This prototype is deprecated.
3995static inline __ATTRS_o_ai int
3996vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
3997 int __cc;
3998 __builtin_s390_vchlgs((__vector unsigned long long)__a,
3999 (__vector unsigned long long)__b, &__cc);
4000 return __cc == 0;
4001}
4002
4003#if __ARCH__ >= 15
4004static inline __ATTRS_o_ai int
4005vec_all_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
4006 int __cc;
4007 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
4008 return __cc == 0;
4009}
4010
4011static inline __ATTRS_o_ai int
4012vec_all_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4013 int __cc;
4014 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4015 return __cc == 0;
4016}
4017#endif
4018
4019#if __ARCH__ >= 12
4020static inline __ATTRS_o_ai int
4021vec_all_gt(__vector float __a, __vector float __b) {
4022 int __cc;
4023 __builtin_s390_vfchsbs(__a, __b, &__cc);
4024 return __cc == 0;
4025}
4026#endif
4027
4028static inline __ATTRS_o_ai int
4029vec_all_gt(__vector double __a, __vector double __b) {
4030 int __cc;
4031 __builtin_s390_vfchdbs(__a, __b, &__cc);
4032 return __cc == 0;
4033}
4034
4035/*-- vec_all_le -------------------------------------------------------------*/
4036
4037static inline __ATTRS_o_ai int
4038vec_all_le(__vector signed char __a, __vector signed char __b) {
4039 int __cc;
4040 __builtin_s390_vchbs(__a, __b, &__cc);
4041 return __cc == 3;
4042}
4043
4044// This prototype is deprecated.
4045static inline __ATTRS_o_ai int
4046vec_all_le(__vector signed char __a, __vector __bool char __b) {
4047 int __cc;
4048 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
4049 return __cc == 3;
4050}
4051
4052// This prototype is deprecated.
4053static inline __ATTRS_o_ai int
4054vec_all_le(__vector __bool char __a, __vector signed char __b) {
4055 int __cc;
4056 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
4057 return __cc == 3;
4058}
4059
4060static inline __ATTRS_o_ai int
4061vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
4062 int __cc;
4063 __builtin_s390_vchlbs(__a, __b, &__cc);
4064 return __cc == 3;
4065}
4066
4067// This prototype is deprecated.
4068static inline __ATTRS_o_ai int
4069vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
4070 int __cc;
4071 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
4072 return __cc == 3;
4073}
4074
4075// This prototype is deprecated.
4076static inline __ATTRS_o_ai int
4077vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
4078 int __cc;
4079 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
4080 return __cc == 3;
4081}
4082
4083// This prototype is deprecated.
4084static inline __ATTRS_o_ai int
4085vec_all_le(__vector __bool char __a, __vector __bool char __b) {
4086 int __cc;
4087 __builtin_s390_vchlbs((__vector unsigned char)__a,
4088 (__vector unsigned char)__b, &__cc);
4089 return __cc == 3;
4090}
4091
4092static inline __ATTRS_o_ai int
4093vec_all_le(__vector signed short __a, __vector signed short __b) {
4094 int __cc;
4095 __builtin_s390_vchhs(__a, __b, &__cc);
4096 return __cc == 3;
4097}
4098
4099// This prototype is deprecated.
4100static inline __ATTRS_o_ai int
4101vec_all_le(__vector signed short __a, __vector __bool short __b) {
4102 int __cc;
4103 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
4104 return __cc == 3;
4105}
4106
4107// This prototype is deprecated.
4108static inline __ATTRS_o_ai int
4109vec_all_le(__vector __bool short __a, __vector signed short __b) {
4110 int __cc;
4111 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
4112 return __cc == 3;
4113}
4114
4115static inline __ATTRS_o_ai int
4116vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
4117 int __cc;
4118 __builtin_s390_vchlhs(__a, __b, &__cc);
4119 return __cc == 3;
4120}
4121
4122// This prototype is deprecated.
4123static inline __ATTRS_o_ai int
4124vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
4125 int __cc;
4126 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
4127 return __cc == 3;
4128}
4129
4130// This prototype is deprecated.
4131static inline __ATTRS_o_ai int
4132vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
4133 int __cc;
4134 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
4135 return __cc == 3;
4136}
4137
4138// This prototype is deprecated.
4139static inline __ATTRS_o_ai int
4140vec_all_le(__vector __bool short __a, __vector __bool short __b) {
4141 int __cc;
4142 __builtin_s390_vchlhs((__vector unsigned short)__a,
4143 (__vector unsigned short)__b, &__cc);
4144 return __cc == 3;
4145}
4146
4147static inline __ATTRS_o_ai int
4148vec_all_le(__vector signed int __a, __vector signed int __b) {
4149 int __cc;
4150 __builtin_s390_vchfs(__a, __b, &__cc);
4151 return __cc == 3;
4152}
4153
4154// This prototype is deprecated.
4155static inline __ATTRS_o_ai int
4156vec_all_le(__vector signed int __a, __vector __bool int __b) {
4157 int __cc;
4158 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
4159 return __cc == 3;
4160}
4161
4162// This prototype is deprecated.
4163static inline __ATTRS_o_ai int
4164vec_all_le(__vector __bool int __a, __vector signed int __b) {
4165 int __cc;
4166 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
4167 return __cc == 3;
4168}
4169
4170static inline __ATTRS_o_ai int
4171vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
4172 int __cc;
4173 __builtin_s390_vchlfs(__a, __b, &__cc);
4174 return __cc == 3;
4175}
4176
4177// This prototype is deprecated.
4178static inline __ATTRS_o_ai int
4179vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
4180 int __cc;
4181 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
4182 return __cc == 3;
4183}
4184
4185// This prototype is deprecated.
4186static inline __ATTRS_o_ai int
4187vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
4188 int __cc;
4189 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
4190 return __cc == 3;
4191}
4192
4193// This prototype is deprecated.
4194static inline __ATTRS_o_ai int
4195vec_all_le(__vector __bool int __a, __vector __bool int __b) {
4196 int __cc;
4197 __builtin_s390_vchlfs((__vector unsigned int)__a,
4198 (__vector unsigned int)__b, &__cc);
4199 return __cc == 3;
4200}
4201
4202static inline __ATTRS_o_ai int
4203vec_all_le(__vector signed long long __a, __vector signed long long __b) {
4204 int __cc;
4205 __builtin_s390_vchgs(__a, __b, &__cc);
4206 return __cc == 3;
4207}
4208
4209// This prototype is deprecated.
4210static inline __ATTRS_o_ai int
4211vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
4212 int __cc;
4213 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
4214 return __cc == 3;
4215}
4216
4217// This prototype is deprecated.
4218static inline __ATTRS_o_ai int
4219vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
4220 int __cc;
4221 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
4222 return __cc == 3;
4223}
4224
4225static inline __ATTRS_o_ai int
4226vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
4227 int __cc;
4228 __builtin_s390_vchlgs(__a, __b, &__cc);
4229 return __cc == 3;
4230}
4231
4232// This prototype is deprecated.
4233static inline __ATTRS_o_ai int
4234vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
4235 int __cc;
4236 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
4237 return __cc == 3;
4238}
4239
4240// This prototype is deprecated.
4241static inline __ATTRS_o_ai int
4242vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
4243 int __cc;
4244 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
4245 return __cc == 3;
4246}
4247
4248// This prototype is deprecated.
4249static inline __ATTRS_o_ai int
4250vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
4251 int __cc;
4252 __builtin_s390_vchlgs((__vector unsigned long long)__a,
4253 (__vector unsigned long long)__b, &__cc);
4254 return __cc == 3;
4255}
4256
4257#if __ARCH__ >= 15
4258static inline __ATTRS_o_ai int
4259vec_all_le(__vector signed __int128 __a, __vector signed __int128 __b) {
4260 int __cc;
4261 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
4262 return __cc == 3;
4263}
4264
4265static inline __ATTRS_o_ai int
4266vec_all_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4267 int __cc;
4268 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4269 return __cc == 3;
4270}
4271#endif
4272
4273#if __ARCH__ >= 12
4274static inline __ATTRS_o_ai int
4275vec_all_le(__vector float __a, __vector float __b) {
4276 int __cc;
4277 __builtin_s390_vfchesbs(__b, __a, &__cc);
4278 return __cc == 0;
4279}
4280#endif
4281
4282static inline __ATTRS_o_ai int
4283vec_all_le(__vector double __a, __vector double __b) {
4284 int __cc;
4285 __builtin_s390_vfchedbs(__b, __a, &__cc);
4286 return __cc == 0;
4287}
4288
4289/*-- vec_all_lt -------------------------------------------------------------*/
4290
4291static inline __ATTRS_o_ai int
4292vec_all_lt(__vector signed char __a, __vector signed char __b) {
4293 int __cc;
4294 __builtin_s390_vchbs(__b, __a, &__cc);
4295 return __cc == 0;
4296}
4297
4298// This prototype is deprecated.
4299static inline __ATTRS_o_ai int
4300vec_all_lt(__vector signed char __a, __vector __bool char __b) {
4301 int __cc;
4302 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
4303 return __cc == 0;
4304}
4305
4306// This prototype is deprecated.
4307static inline __ATTRS_o_ai int
4308vec_all_lt(__vector __bool char __a, __vector signed char __b) {
4309 int __cc;
4310 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
4311 return __cc == 0;
4312}
4313
4314static inline __ATTRS_o_ai int
4315vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
4316 int __cc;
4317 __builtin_s390_vchlbs(__b, __a, &__cc);
4318 return __cc == 0;
4319}
4320
4321// This prototype is deprecated.
4322static inline __ATTRS_o_ai int
4323vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
4324 int __cc;
4325 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
4326 return __cc == 0;
4327}
4328
4329// This prototype is deprecated.
4330static inline __ATTRS_o_ai int
4331vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
4332 int __cc;
4333 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
4334 return __cc == 0;
4335}
4336
4337// This prototype is deprecated.
4338static inline __ATTRS_o_ai int
4339vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
4340 int __cc;
4341 __builtin_s390_vchlbs((__vector unsigned char)__b,
4342 (__vector unsigned char)__a, &__cc);
4343 return __cc == 0;
4344}
4345
4346static inline __ATTRS_o_ai int
4347vec_all_lt(__vector signed short __a, __vector signed short __b) {
4348 int __cc;
4349 __builtin_s390_vchhs(__b, __a, &__cc);
4350 return __cc == 0;
4351}
4352
4353// This prototype is deprecated.
4354static inline __ATTRS_o_ai int
4355vec_all_lt(__vector signed short __a, __vector __bool short __b) {
4356 int __cc;
4357 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
4358 return __cc == 0;
4359}
4360
4361// This prototype is deprecated.
4362static inline __ATTRS_o_ai int
4363vec_all_lt(__vector __bool short __a, __vector signed short __b) {
4364 int __cc;
4365 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
4366 return __cc == 0;
4367}
4368
4369static inline __ATTRS_o_ai int
4370vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
4371 int __cc;
4372 __builtin_s390_vchlhs(__b, __a, &__cc);
4373 return __cc == 0;
4374}
4375
4376// This prototype is deprecated.
4377static inline __ATTRS_o_ai int
4378vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
4379 int __cc;
4380 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
4381 return __cc == 0;
4382}
4383
4384// This prototype is deprecated.
4385static inline __ATTRS_o_ai int
4386vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
4387 int __cc;
4388 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
4389 return __cc == 0;
4390}
4391
4392// This prototype is deprecated.
4393static inline __ATTRS_o_ai int
4394vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
4395 int __cc;
4396 __builtin_s390_vchlhs((__vector unsigned short)__b,
4397 (__vector unsigned short)__a, &__cc);
4398 return __cc == 0;
4399}
4400
4401static inline __ATTRS_o_ai int
4402vec_all_lt(__vector signed int __a, __vector signed int __b) {
4403 int __cc;
4404 __builtin_s390_vchfs(__b, __a, &__cc);
4405 return __cc == 0;
4406}
4407
4408// This prototype is deprecated.
4409static inline __ATTRS_o_ai int
4410vec_all_lt(__vector signed int __a, __vector __bool int __b) {
4411 int __cc;
4412 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4413 return __cc == 0;
4414}
4415
4416// This prototype is deprecated.
4417static inline __ATTRS_o_ai int
4418vec_all_lt(__vector __bool int __a, __vector signed int __b) {
4419 int __cc;
4420 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4421 return __cc == 0;
4422}
4423
4424static inline __ATTRS_o_ai int
4425vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
4426 int __cc;
4427 __builtin_s390_vchlfs(__b, __a, &__cc);
4428 return __cc == 0;
4429}
4430
4431// This prototype is deprecated.
4432static inline __ATTRS_o_ai int
4433vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
4434 int __cc;
4435 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4436 return __cc == 0;
4437}
4438
4439// This prototype is deprecated.
4440static inline __ATTRS_o_ai int
4441vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
4442 int __cc;
4443 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4444 return __cc == 0;
4445}
4446
4447// This prototype is deprecated.
4448static inline __ATTRS_o_ai int
4449vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
4450 int __cc;
4451 __builtin_s390_vchlfs((__vector unsigned int)__b,
4452 (__vector unsigned int)__a, &__cc);
4453 return __cc == 0;
4454}
4455
4456static inline __ATTRS_o_ai int
4457vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
4458 int __cc;
4459 __builtin_s390_vchgs(__b, __a, &__cc);
4460 return __cc == 0;
4461}
4462
4463// This prototype is deprecated.
4464static inline __ATTRS_o_ai int
4465vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
4466 int __cc;
4467 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4468 return __cc == 0;
4469}
4470
4471// This prototype is deprecated.
4472static inline __ATTRS_o_ai int
4473vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
4474 int __cc;
4475 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4476 return __cc == 0;
4477}
4478
4479static inline __ATTRS_o_ai int
4480vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
4481 int __cc;
4482 __builtin_s390_vchlgs(__b, __a, &__cc);
4483 return __cc == 0;
4484}
4485
4486// This prototype is deprecated.
4487static inline __ATTRS_o_ai int
4488vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
4489 int __cc;
4490 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4491 return __cc == 0;
4492}
4493
4494// This prototype is deprecated.
4495static inline __ATTRS_o_ai int
4496vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
4497 int __cc;
4498 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4499 return __cc == 0;
4500}
4501
4502// This prototype is deprecated.
4503static inline __ATTRS_o_ai int
4504vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
4505 int __cc;
4506 __builtin_s390_vchlgs((__vector unsigned long long)__b,
4507 (__vector unsigned long long)__a, &__cc);
4508 return __cc == 0;
4509}
4510
4511#if __ARCH__ >= 15
4512static inline __ATTRS_o_ai int
4513vec_all_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
4514 int __cc;
4515 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
4516 return __cc == 0;
4517}
4518
4519static inline __ATTRS_o_ai int
4520vec_all_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4521 int __cc;
4522 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
4523 return __cc == 0;
4524}
4525#endif
4526
4527#if __ARCH__ >= 12
4528static inline __ATTRS_o_ai int
4529vec_all_lt(__vector float __a, __vector float __b) {
4530 int __cc;
4531 __builtin_s390_vfchsbs(__b, __a, &__cc);
4532 return __cc == 0;
4533}
4534#endif
4535
4536static inline __ATTRS_o_ai int
4537vec_all_lt(__vector double __a, __vector double __b) {
4538 int __cc;
4539 __builtin_s390_vfchdbs(__b, __a, &__cc);
4540 return __cc == 0;
4541}
4542
4543/*-- vec_all_nge ------------------------------------------------------------*/
4544
4545#if __ARCH__ >= 12
4546static inline __ATTRS_o_ai int
4547vec_all_nge(__vector float __a, __vector float __b) {
4548 int __cc;
4549 __builtin_s390_vfchesbs(__a, __b, &__cc);
4550 return __cc == 3;
4551}
4552#endif
4553
4554static inline __ATTRS_o_ai int
4555vec_all_nge(__vector double __a, __vector double __b) {
4556 int __cc;
4557 __builtin_s390_vfchedbs(__a, __b, &__cc);
4558 return __cc == 3;
4559}
4560
4561/*-- vec_all_ngt ------------------------------------------------------------*/
4562
4563#if __ARCH__ >= 12
4564static inline __ATTRS_o_ai int
4565vec_all_ngt(__vector float __a, __vector float __b) {
4566 int __cc;
4567 __builtin_s390_vfchsbs(__a, __b, &__cc);
4568 return __cc == 3;
4569}
4570#endif
4571
4572static inline __ATTRS_o_ai int
4573vec_all_ngt(__vector double __a, __vector double __b) {
4574 int __cc;
4575 __builtin_s390_vfchdbs(__a, __b, &__cc);
4576 return __cc == 3;
4577}
4578
4579/*-- vec_all_nle ------------------------------------------------------------*/
4580
4581#if __ARCH__ >= 12
4582static inline __ATTRS_o_ai int
4583vec_all_nle(__vector float __a, __vector float __b) {
4584 int __cc;
4585 __builtin_s390_vfchesbs(__b, __a, &__cc);
4586 return __cc == 3;
4587}
4588#endif
4589
4590static inline __ATTRS_o_ai int
4591vec_all_nle(__vector double __a, __vector double __b) {
4592 int __cc;
4593 __builtin_s390_vfchedbs(__b, __a, &__cc);
4594 return __cc == 3;
4595}
4596
4597/*-- vec_all_nlt ------------------------------------------------------------*/
4598
4599#if __ARCH__ >= 12
4600static inline __ATTRS_o_ai int
4601vec_all_nlt(__vector float __a, __vector float __b) {
4602 int __cc;
4603 __builtin_s390_vfchsbs(__b, __a, &__cc);
4604 return __cc == 3;
4605}
4606#endif
4607
4608static inline __ATTRS_o_ai int
4609vec_all_nlt(__vector double __a, __vector double __b) {
4610 int __cc;
4611 __builtin_s390_vfchdbs(__b, __a, &__cc);
4612 return __cc == 3;
4613}
4614
4615/*-- vec_all_nan ------------------------------------------------------------*/
4616
4617#if __ARCH__ >= 12
4618static inline __ATTRS_o_ai int
4619vec_all_nan(__vector float __a) {
4620 int __cc;
4621 __builtin_s390_vftcisb(__a, 15, &__cc);
4622 return __cc == 0;
4623}
4624#endif
4625
4626static inline __ATTRS_o_ai int
4627vec_all_nan(__vector double __a) {
4628 int __cc;
4629 __builtin_s390_vftcidb(__a, 15, &__cc);
4630 return __cc == 0;
4631}
4632
4633/*-- vec_all_numeric --------------------------------------------------------*/
4634
4635#if __ARCH__ >= 12
4636static inline __ATTRS_o_ai int
4637vec_all_numeric(__vector float __a) {
4638 int __cc;
4639 __builtin_s390_vftcisb(__a, 15, &__cc);
4640 return __cc == 3;
4641}
4642#endif
4643
4644static inline __ATTRS_o_ai int
4645vec_all_numeric(__vector double __a) {
4646 int __cc;
4647 __builtin_s390_vftcidb(__a, 15, &__cc);
4648 return __cc == 3;
4649}
4650
4651/*-- vec_any_eq -------------------------------------------------------------*/
4652
4653static inline __ATTRS_o_ai int
4654vec_any_eq(__vector signed char __a, __vector signed char __b) {
4655 int __cc;
4656 __builtin_s390_vceqbs((__vector unsigned char)__a,
4657 (__vector unsigned char)__b, &__cc);
4658 return __cc <= 1;
4659}
4660
4661// This prototype is deprecated.
4662static inline __ATTRS_o_ai int
4663vec_any_eq(__vector signed char __a, __vector __bool char __b) {
4664 int __cc;
4665 __builtin_s390_vceqbs((__vector unsigned char)__a,
4666 (__vector unsigned char)__b, &__cc);
4667 return __cc <= 1;
4668}
4669
4670// This prototype is deprecated.
4671static inline __ATTRS_o_ai int
4672vec_any_eq(__vector __bool char __a, __vector signed char __b) {
4673 int __cc;
4674 __builtin_s390_vceqbs((__vector unsigned char)__a,
4675 (__vector unsigned char)__b, &__cc);
4676 return __cc <= 1;
4677}
4678
4679static inline __ATTRS_o_ai int
4680vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
4681 int __cc;
4682 __builtin_s390_vceqbs(__a, __b, &__cc);
4683 return __cc <= 1;
4684}
4685
4686// This prototype is deprecated.
4687static inline __ATTRS_o_ai int
4688vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
4689 int __cc;
4690 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4691 return __cc <= 1;
4692}
4693
4694// This prototype is deprecated.
4695static inline __ATTRS_o_ai int
4696vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
4697 int __cc;
4698 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4699 return __cc <= 1;
4700}
4701
4702static inline __ATTRS_o_ai int
4703vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
4704 int __cc;
4705 __builtin_s390_vceqbs((__vector unsigned char)__a,
4706 (__vector unsigned char)__b, &__cc);
4707 return __cc <= 1;
4708}
4709
4710static inline __ATTRS_o_ai int
4711vec_any_eq(__vector signed short __a, __vector signed short __b) {
4712 int __cc;
4713 __builtin_s390_vceqhs((__vector unsigned short)__a,
4714 (__vector unsigned short)__b, &__cc);
4715 return __cc <= 1;
4716}
4717
4718// This prototype is deprecated.
4719static inline __ATTRS_o_ai int
4720vec_any_eq(__vector signed short __a, __vector __bool short __b) {
4721 int __cc;
4722 __builtin_s390_vceqhs((__vector unsigned short)__a,
4723 (__vector unsigned short)__b, &__cc);
4724 return __cc <= 1;
4725}
4726
4727// This prototype is deprecated.
4728static inline __ATTRS_o_ai int
4729vec_any_eq(__vector __bool short __a, __vector signed short __b) {
4730 int __cc;
4731 __builtin_s390_vceqhs((__vector unsigned short)__a,
4732 (__vector unsigned short)__b, &__cc);
4733 return __cc <= 1;
4734}
4735
4736static inline __ATTRS_o_ai int
4737vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
4738 int __cc;
4739 __builtin_s390_vceqhs(__a, __b, &__cc);
4740 return __cc <= 1;
4741}
4742
4743// This prototype is deprecated.
4744static inline __ATTRS_o_ai int
4745vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
4746 int __cc;
4747 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
4748 return __cc <= 1;
4749}
4750
4751// This prototype is deprecated.
4752static inline __ATTRS_o_ai int
4753vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
4754 int __cc;
4755 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
4756 return __cc <= 1;
4757}
4758
4759static inline __ATTRS_o_ai int
4760vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
4761 int __cc;
4762 __builtin_s390_vceqhs((__vector unsigned short)__a,
4763 (__vector unsigned short)__b, &__cc);
4764 return __cc <= 1;
4765}
4766
4767static inline __ATTRS_o_ai int
4768vec_any_eq(__vector signed int __a, __vector signed int __b) {
4769 int __cc;
4770 __builtin_s390_vceqfs((__vector unsigned int)__a,
4771 (__vector unsigned int)__b, &__cc);
4772 return __cc <= 1;
4773}
4774
4775// This prototype is deprecated.
4776static inline __ATTRS_o_ai int
4777vec_any_eq(__vector signed int __a, __vector __bool int __b) {
4778 int __cc;
4779 __builtin_s390_vceqfs((__vector unsigned int)__a,
4780 (__vector unsigned int)__b, &__cc);
4781 return __cc <= 1;
4782}
4783
4784// This prototype is deprecated.
4785static inline __ATTRS_o_ai int
4786vec_any_eq(__vector __bool int __a, __vector signed int __b) {
4787 int __cc;
4788 __builtin_s390_vceqfs((__vector unsigned int)__a,
4789 (__vector unsigned int)__b, &__cc);
4790 return __cc <= 1;
4791}
4792
4793static inline __ATTRS_o_ai int
4794vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
4795 int __cc;
4796 __builtin_s390_vceqfs(__a, __b, &__cc);
4797 return __cc <= 1;
4798}
4799
4800// This prototype is deprecated.
4801static inline __ATTRS_o_ai int
4802vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
4803 int __cc;
4804 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
4805 return __cc <= 1;
4806}
4807
4808// This prototype is deprecated.
4809static inline __ATTRS_o_ai int
4810vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
4811 int __cc;
4812 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
4813 return __cc <= 1;
4814}
4815
4816static inline __ATTRS_o_ai int
4817vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
4818 int __cc;
4819 __builtin_s390_vceqfs((__vector unsigned int)__a,
4820 (__vector unsigned int)__b, &__cc);
4821 return __cc <= 1;
4822}
4823
4824static inline __ATTRS_o_ai int
4825vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
4826 int __cc;
4827 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4828 (__vector unsigned long long)__b, &__cc);
4829 return __cc <= 1;
4830}
4831
4832// This prototype is deprecated.
4833static inline __ATTRS_o_ai int
4834vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
4835 int __cc;
4836 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4837 (__vector unsigned long long)__b, &__cc);
4838 return __cc <= 1;
4839}
4840
4841// This prototype is deprecated.
4842static inline __ATTRS_o_ai int
4843vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
4844 int __cc;
4845 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4846 (__vector unsigned long long)__b, &__cc);
4847 return __cc <= 1;
4848}
4849
4850static inline __ATTRS_o_ai int
4851vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
4852 int __cc;
4853 __builtin_s390_vceqgs(__a, __b, &__cc);
4854 return __cc <= 1;
4855}
4856
4857// This prototype is deprecated.
4858static inline __ATTRS_o_ai int
4859vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
4860 int __cc;
4861 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
4862 return __cc <= 1;
4863}
4864
4865// This prototype is deprecated.
4866static inline __ATTRS_o_ai int
4867vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
4868 int __cc;
4869 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
4870 return __cc <= 1;
4871}
4872
4873static inline __ATTRS_o_ai int
4874vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
4875 int __cc;
4876 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4877 (__vector unsigned long long)__b, &__cc);
4878 return __cc <= 1;
4879}
4880
4881#if __ARCH__ >= 15
4882static inline __ATTRS_o_ai int
4883vec_any_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
4884 int __cc;
4885 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4886 return __cc <= 1;
4887}
4888
4889static inline __ATTRS_o_ai int
4890vec_any_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4891 int __cc;
4892 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4893 return __cc <= 1;
4894}
4895
4896static inline __ATTRS_o_ai int
4897vec_any_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
4898 int __cc;
4899 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4900 return __cc <= 1;
4901}
4902#endif
4903
4904#if __ARCH__ >= 12
4905static inline __ATTRS_o_ai int
4906vec_any_eq(__vector float __a, __vector float __b) {
4907 int __cc;
4908 __builtin_s390_vfcesbs(__a, __b, &__cc);
4909 return __cc <= 1;
4910}
4911#endif
4912
4913static inline __ATTRS_o_ai int
4914vec_any_eq(__vector double __a, __vector double __b) {
4915 int __cc;
4916 __builtin_s390_vfcedbs(__a, __b, &__cc);
4917 return __cc <= 1;
4918}
4919
4920/*-- vec_any_ne -------------------------------------------------------------*/
4921
4922static inline __ATTRS_o_ai int
4923vec_any_ne(__vector signed char __a, __vector signed char __b) {
4924 int __cc;
4925 __builtin_s390_vceqbs((__vector unsigned char)__a,
4926 (__vector unsigned char)__b, &__cc);
4927 return __cc != 0;
4928}
4929
4930// This prototype is deprecated.
4931static inline __ATTRS_o_ai int
4932vec_any_ne(__vector signed char __a, __vector __bool char __b) {
4933 int __cc;
4934 __builtin_s390_vceqbs((__vector unsigned char)__a,
4935 (__vector unsigned char)__b, &__cc);
4936 return __cc != 0;
4937}
4938
4939// This prototype is deprecated.
4940static inline __ATTRS_o_ai int
4941vec_any_ne(__vector __bool char __a, __vector signed char __b) {
4942 int __cc;
4943 __builtin_s390_vceqbs((__vector unsigned char)__a,
4944 (__vector unsigned char)__b, &__cc);
4945 return __cc != 0;
4946}
4947
4948static inline __ATTRS_o_ai int
4949vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
4950 int __cc;
4951 __builtin_s390_vceqbs(__a, __b, &__cc);
4952 return __cc != 0;
4953}
4954
4955// This prototype is deprecated.
4956static inline __ATTRS_o_ai int
4957vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
4958 int __cc;
4959 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4960 return __cc != 0;
4961}
4962
4963// This prototype is deprecated.
4964static inline __ATTRS_o_ai int
4965vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
4966 int __cc;
4967 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4968 return __cc != 0;
4969}
4970
4971static inline __ATTRS_o_ai int
4972vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
4973 int __cc;
4974 __builtin_s390_vceqbs((__vector unsigned char)__a,
4975 (__vector unsigned char)__b, &__cc);
4976 return __cc != 0;
4977}
4978
4979static inline __ATTRS_o_ai int
4980vec_any_ne(__vector signed short __a, __vector signed short __b) {
4981 int __cc;
4982 __builtin_s390_vceqhs((__vector unsigned short)__a,
4983 (__vector unsigned short)__b, &__cc);
4984 return __cc != 0;
4985}
4986
4987// This prototype is deprecated.
4988static inline __ATTRS_o_ai int
4989vec_any_ne(__vector signed short __a, __vector __bool short __b) {
4990 int __cc;
4991 __builtin_s390_vceqhs((__vector unsigned short)__a,
4992 (__vector unsigned short)__b, &__cc);
4993 return __cc != 0;
4994}
4995
4996// This prototype is deprecated.
4997static inline __ATTRS_o_ai int
4998vec_any_ne(__vector __bool short __a, __vector signed short __b) {
4999 int __cc;
5000 __builtin_s390_vceqhs((__vector unsigned short)__a,
5001 (__vector unsigned short)__b, &__cc);
5002 return __cc != 0;
5003}
5004
5005static inline __ATTRS_o_ai int
5006vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
5007 int __cc;
5008 __builtin_s390_vceqhs(__a, __b, &__cc);
5009 return __cc != 0;
5010}
5011
5012// This prototype is deprecated.
5013static inline __ATTRS_o_ai int
5014vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
5015 int __cc;
5016 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
5017 return __cc != 0;
5018}
5019
5020// This prototype is deprecated.
5021static inline __ATTRS_o_ai int
5022vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
5023 int __cc;
5024 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
5025 return __cc != 0;
5026}
5027
5028static inline __ATTRS_o_ai int
5029vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
5030 int __cc;
5031 __builtin_s390_vceqhs((__vector unsigned short)__a,
5032 (__vector unsigned short)__b, &__cc);
5033 return __cc != 0;
5034}
5035
5036static inline __ATTRS_o_ai int
5037vec_any_ne(__vector signed int __a, __vector signed int __b) {
5038 int __cc;
5039 __builtin_s390_vceqfs((__vector unsigned int)__a,
5040 (__vector unsigned int)__b, &__cc);
5041 return __cc != 0;
5042}
5043
5044// This prototype is deprecated.
5045static inline __ATTRS_o_ai int
5046vec_any_ne(__vector signed int __a, __vector __bool int __b) {
5047 int __cc;
5048 __builtin_s390_vceqfs((__vector unsigned int)__a,
5049 (__vector unsigned int)__b, &__cc);
5050 return __cc != 0;
5051}
5052
5053// This prototype is deprecated.
5054static inline __ATTRS_o_ai int
5055vec_any_ne(__vector __bool int __a, __vector signed int __b) {
5056 int __cc;
5057 __builtin_s390_vceqfs((__vector unsigned int)__a,
5058 (__vector unsigned int)__b, &__cc);
5059 return __cc != 0;
5060}
5061
5062static inline __ATTRS_o_ai int
5063vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
5064 int __cc;
5065 __builtin_s390_vceqfs(__a, __b, &__cc);
5066 return __cc != 0;
5067}
5068
5069// This prototype is deprecated.
5070static inline __ATTRS_o_ai int
5071vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
5072 int __cc;
5073 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
5074 return __cc != 0;
5075}
5076
5077// This prototype is deprecated.
5078static inline __ATTRS_o_ai int
5079vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
5080 int __cc;
5081 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
5082 return __cc != 0;
5083}
5084
5085static inline __ATTRS_o_ai int
5086vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
5087 int __cc;
5088 __builtin_s390_vceqfs((__vector unsigned int)__a,
5089 (__vector unsigned int)__b, &__cc);
5090 return __cc != 0;
5091}
5092
5093static inline __ATTRS_o_ai int
5094vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
5095 int __cc;
5096 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5097 (__vector unsigned long long)__b, &__cc);
5098 return __cc != 0;
5099}
5100
5101// This prototype is deprecated.
5102static inline __ATTRS_o_ai int
5103vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
5104 int __cc;
5105 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5106 (__vector unsigned long long)__b, &__cc);
5107 return __cc != 0;
5108}
5109
5110// This prototype is deprecated.
5111static inline __ATTRS_o_ai int
5112vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
5113 int __cc;
5114 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5115 (__vector unsigned long long)__b, &__cc);
5116 return __cc != 0;
5117}
5118
5119static inline __ATTRS_o_ai int
5120vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
5121 int __cc;
5122 __builtin_s390_vceqgs(__a, __b, &__cc);
5123 return __cc != 0;
5124}
5125
5126// This prototype is deprecated.
5127static inline __ATTRS_o_ai int
5128vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
5129 int __cc;
5130 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
5131 return __cc != 0;
5132}
5133
5134// This prototype is deprecated.
5135static inline __ATTRS_o_ai int
5136vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
5137 int __cc;
5138 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
5139 return __cc != 0;
5140}
5141
5142static inline __ATTRS_o_ai int
5143vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
5144 int __cc;
5145 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5146 (__vector unsigned long long)__b, &__cc);
5147 return __cc != 0;
5148}
5149
5150#if __ARCH__ >= 15
5151static inline __ATTRS_o_ai int
5152vec_any_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
5153 int __cc;
5154 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5155 return __cc != 0;
5156}
5157
5158static inline __ATTRS_o_ai int
5159vec_any_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5160 int __cc;
5161 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5162 return __cc != 0;
5163}
5164
5165static inline __ATTRS_o_ai int
5166vec_any_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
5167 int __cc;
5168 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5169 return __cc != 0;
5170}
5171#endif
5172
5173#if __ARCH__ >= 12
5174static inline __ATTRS_o_ai int
5175vec_any_ne(__vector float __a, __vector float __b) {
5176 int __cc;
5177 __builtin_s390_vfcesbs(__a, __b, &__cc);
5178 return __cc != 0;
5179}
5180#endif
5181
5182static inline __ATTRS_o_ai int
5183vec_any_ne(__vector double __a, __vector double __b) {
5184 int __cc;
5185 __builtin_s390_vfcedbs(__a, __b, &__cc);
5186 return __cc != 0;
5187}
5188
5189/*-- vec_any_ge -------------------------------------------------------------*/
5190
5191static inline __ATTRS_o_ai int
5192vec_any_ge(__vector signed char __a, __vector signed char __b) {
5193 int __cc;
5194 __builtin_s390_vchbs(__b, __a, &__cc);
5195 return __cc != 0;
5196}
5197
5198// This prototype is deprecated.
5199static inline __ATTRS_o_ai int
5200vec_any_ge(__vector signed char __a, __vector __bool char __b) {
5201 int __cc;
5202 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5203 return __cc != 0;
5204}
5205
5206// This prototype is deprecated.
5207static inline __ATTRS_o_ai int
5208vec_any_ge(__vector __bool char __a, __vector signed char __b) {
5209 int __cc;
5210 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5211 return __cc != 0;
5212}
5213
5214static inline __ATTRS_o_ai int
5215vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
5216 int __cc;
5217 __builtin_s390_vchlbs(__b, __a, &__cc);
5218 return __cc != 0;
5219}
5220
5221// This prototype is deprecated.
5222static inline __ATTRS_o_ai int
5223vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
5224 int __cc;
5225 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5226 return __cc != 0;
5227}
5228
5229// This prototype is deprecated.
5230static inline __ATTRS_o_ai int
5231vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
5232 int __cc;
5233 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5234 return __cc != 0;
5235}
5236
5237// This prototype is deprecated.
5238static inline __ATTRS_o_ai int
5239vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
5240 int __cc;
5241 __builtin_s390_vchlbs((__vector unsigned char)__b,
5242 (__vector unsigned char)__a, &__cc);
5243 return __cc != 0;
5244}
5245
5246static inline __ATTRS_o_ai int
5247vec_any_ge(__vector signed short __a, __vector signed short __b) {
5248 int __cc;
5249 __builtin_s390_vchhs(__b, __a, &__cc);
5250 return __cc != 0;
5251}
5252
5253// This prototype is deprecated.
5254static inline __ATTRS_o_ai int
5255vec_any_ge(__vector signed short __a, __vector __bool short __b) {
5256 int __cc;
5257 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
5258 return __cc != 0;
5259}
5260
5261// This prototype is deprecated.
5262static inline __ATTRS_o_ai int
5263vec_any_ge(__vector __bool short __a, __vector signed short __b) {
5264 int __cc;
5265 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
5266 return __cc != 0;
5267}
5268
5269static inline __ATTRS_o_ai int
5270vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
5271 int __cc;
5272 __builtin_s390_vchlhs(__b, __a, &__cc);
5273 return __cc != 0;
5274}
5275
5276// This prototype is deprecated.
5277static inline __ATTRS_o_ai int
5278vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
5279 int __cc;
5280 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
5281 return __cc != 0;
5282}
5283
5284// This prototype is deprecated.
5285static inline __ATTRS_o_ai int
5286vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
5287 int __cc;
5288 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
5289 return __cc != 0;
5290}
5291
5292// This prototype is deprecated.
5293static inline __ATTRS_o_ai int
5294vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
5295 int __cc;
5296 __builtin_s390_vchlhs((__vector unsigned short)__b,
5297 (__vector unsigned short)__a, &__cc);
5298 return __cc != 0;
5299}
5300
5301static inline __ATTRS_o_ai int
5302vec_any_ge(__vector signed int __a, __vector signed int __b) {
5303 int __cc;
5304 __builtin_s390_vchfs(__b, __a, &__cc);
5305 return __cc != 0;
5306}
5307
5308// This prototype is deprecated.
5309static inline __ATTRS_o_ai int
5310vec_any_ge(__vector signed int __a, __vector __bool int __b) {
5311 int __cc;
5312 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
5313 return __cc != 0;
5314}
5315
5316// This prototype is deprecated.
5317static inline __ATTRS_o_ai int
5318vec_any_ge(__vector __bool int __a, __vector signed int __b) {
5319 int __cc;
5320 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
5321 return __cc != 0;
5322}
5323
5324static inline __ATTRS_o_ai int
5325vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
5326 int __cc;
5327 __builtin_s390_vchlfs(__b, __a, &__cc);
5328 return __cc != 0;
5329}
5330
5331// This prototype is deprecated.
5332static inline __ATTRS_o_ai int
5333vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
5334 int __cc;
5335 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
5336 return __cc != 0;
5337}
5338
5339// This prototype is deprecated.
5340static inline __ATTRS_o_ai int
5341vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
5342 int __cc;
5343 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
5344 return __cc != 0;
5345}
5346
5347// This prototype is deprecated.
5348static inline __ATTRS_o_ai int
5349vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
5350 int __cc;
5351 __builtin_s390_vchlfs((__vector unsigned int)__b,
5352 (__vector unsigned int)__a, &__cc);
5353 return __cc != 0;
5354}
5355
5356static inline __ATTRS_o_ai int
5357vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
5358 int __cc;
5359 __builtin_s390_vchgs(__b, __a, &__cc);
5360 return __cc != 0;
5361}
5362
5363// This prototype is deprecated.
5364static inline __ATTRS_o_ai int
5365vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
5366 int __cc;
5367 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
5368 return __cc != 0;
5369}
5370
5371// This prototype is deprecated.
5372static inline __ATTRS_o_ai int
5373vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
5374 int __cc;
5375 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
5376 return __cc != 0;
5377}
5378
5379static inline __ATTRS_o_ai int
5380vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
5381 int __cc;
5382 __builtin_s390_vchlgs(__b, __a, &__cc);
5383 return __cc != 0;
5384}
5385
5386// This prototype is deprecated.
5387static inline __ATTRS_o_ai int
5388vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
5389 int __cc;
5390 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
5391 return __cc != 0;
5392}
5393
5394// This prototype is deprecated.
5395static inline __ATTRS_o_ai int
5396vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
5397 int __cc;
5398 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
5399 return __cc != 0;
5400}
5401
5402// This prototype is deprecated.
5403static inline __ATTRS_o_ai int
5404vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
5405 int __cc;
5406 __builtin_s390_vchlgs((__vector unsigned long long)__b,
5407 (__vector unsigned long long)__a, &__cc);
5408 return __cc != 0;
5409}
5410
5411#if __ARCH__ >= 15
5412static inline __ATTRS_o_ai int
5413vec_any_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
5414 int __cc;
5415 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
5416 return __cc != 0;
5417}
5418
5419static inline __ATTRS_o_ai int
5420vec_any_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5421 int __cc;
5422 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
5423 return __cc != 0;
5424}
5425#endif
5426
5427#if __ARCH__ >= 12
5428static inline __ATTRS_o_ai int
5429vec_any_ge(__vector float __a, __vector float __b) {
5430 int __cc;
5431 __builtin_s390_vfchesbs(__a, __b, &__cc);
5432 return __cc <= 1;
5433}
5434#endif
5435
5436static inline __ATTRS_o_ai int
5437vec_any_ge(__vector double __a, __vector double __b) {
5438 int __cc;
5439 __builtin_s390_vfchedbs(__a, __b, &__cc);
5440 return __cc <= 1;
5441}
5442
5443/*-- vec_any_gt -------------------------------------------------------------*/
5444
5445static inline __ATTRS_o_ai int
5446vec_any_gt(__vector signed char __a, __vector signed char __b) {
5447 int __cc;
5448 __builtin_s390_vchbs(__a, __b, &__cc);
5449 return __cc <= 1;
5450}
5451
5452// This prototype is deprecated.
5453static inline __ATTRS_o_ai int
5454vec_any_gt(__vector signed char __a, __vector __bool char __b) {
5455 int __cc;
5456 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5457 return __cc <= 1;
5458}
5459
5460// This prototype is deprecated.
5461static inline __ATTRS_o_ai int
5462vec_any_gt(__vector __bool char __a, __vector signed char __b) {
5463 int __cc;
5464 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5465 return __cc <= 1;
5466}
5467
5468static inline __ATTRS_o_ai int
5469vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
5470 int __cc;
5471 __builtin_s390_vchlbs(__a, __b, &__cc);
5472 return __cc <= 1;
5473}
5474
5475// This prototype is deprecated.
5476static inline __ATTRS_o_ai int
5477vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
5478 int __cc;
5479 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5480 return __cc <= 1;
5481}
5482
5483// This prototype is deprecated.
5484static inline __ATTRS_o_ai int
5485vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
5486 int __cc;
5487 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5488 return __cc <= 1;
5489}
5490
5491// This prototype is deprecated.
5492static inline __ATTRS_o_ai int
5493vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
5494 int __cc;
5495 __builtin_s390_vchlbs((__vector unsigned char)__a,
5496 (__vector unsigned char)__b, &__cc);
5497 return __cc <= 1;
5498}
5499
5500static inline __ATTRS_o_ai int
5501vec_any_gt(__vector signed short __a, __vector signed short __b) {
5502 int __cc;
5503 __builtin_s390_vchhs(__a, __b, &__cc);
5504 return __cc <= 1;
5505}
5506
5507// This prototype is deprecated.
5508static inline __ATTRS_o_ai int
5509vec_any_gt(__vector signed short __a, __vector __bool short __b) {
5510 int __cc;
5511 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5512 return __cc <= 1;
5513}
5514
5515// This prototype is deprecated.
5516static inline __ATTRS_o_ai int
5517vec_any_gt(__vector __bool short __a, __vector signed short __b) {
5518 int __cc;
5519 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5520 return __cc <= 1;
5521}
5522
5523static inline __ATTRS_o_ai int
5524vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
5525 int __cc;
5526 __builtin_s390_vchlhs(__a, __b, &__cc);
5527 return __cc <= 1;
5528}
5529
5530// This prototype is deprecated.
5531static inline __ATTRS_o_ai int
5532vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
5533 int __cc;
5534 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5535 return __cc <= 1;
5536}
5537
5538// This prototype is deprecated.
5539static inline __ATTRS_o_ai int
5540vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
5541 int __cc;
5542 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5543 return __cc <= 1;
5544}
5545
5546// This prototype is deprecated.
5547static inline __ATTRS_o_ai int
5548vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
5549 int __cc;
5550 __builtin_s390_vchlhs((__vector unsigned short)__a,
5551 (__vector unsigned short)__b, &__cc);
5552 return __cc <= 1;
5553}
5554
5555static inline __ATTRS_o_ai int
5556vec_any_gt(__vector signed int __a, __vector signed int __b) {
5557 int __cc;
5558 __builtin_s390_vchfs(__a, __b, &__cc);
5559 return __cc <= 1;
5560}
5561
5562// This prototype is deprecated.
5563static inline __ATTRS_o_ai int
5564vec_any_gt(__vector signed int __a, __vector __bool int __b) {
5565 int __cc;
5566 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5567 return __cc <= 1;
5568}
5569
5570// This prototype is deprecated.
5571static inline __ATTRS_o_ai int
5572vec_any_gt(__vector __bool int __a, __vector signed int __b) {
5573 int __cc;
5574 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5575 return __cc <= 1;
5576}
5577
5578static inline __ATTRS_o_ai int
5579vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
5580 int __cc;
5581 __builtin_s390_vchlfs(__a, __b, &__cc);
5582 return __cc <= 1;
5583}
5584
5585// This prototype is deprecated.
5586static inline __ATTRS_o_ai int
5587vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
5588 int __cc;
5589 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5590 return __cc <= 1;
5591}
5592
5593// This prototype is deprecated.
5594static inline __ATTRS_o_ai int
5595vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
5596 int __cc;
5597 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5598 return __cc <= 1;
5599}
5600
5601// This prototype is deprecated.
5602static inline __ATTRS_o_ai int
5603vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
5604 int __cc;
5605 __builtin_s390_vchlfs((__vector unsigned int)__a,
5606 (__vector unsigned int)__b, &__cc);
5607 return __cc <= 1;
5608}
5609
5610static inline __ATTRS_o_ai int
5611vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
5612 int __cc;
5613 __builtin_s390_vchgs(__a, __b, &__cc);
5614 return __cc <= 1;
5615}
5616
5617// This prototype is deprecated.
5618static inline __ATTRS_o_ai int
5619vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
5620 int __cc;
5621 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5622 return __cc <= 1;
5623}
5624
5625// This prototype is deprecated.
5626static inline __ATTRS_o_ai int
5627vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
5628 int __cc;
5629 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5630 return __cc <= 1;
5631}
5632
5633static inline __ATTRS_o_ai int
5634vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
5635 int __cc;
5636 __builtin_s390_vchlgs(__a, __b, &__cc);
5637 return __cc <= 1;
5638}
5639
5640// This prototype is deprecated.
5641static inline __ATTRS_o_ai int
5642vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
5643 int __cc;
5644 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5645 return __cc <= 1;
5646}
5647
5648// This prototype is deprecated.
5649static inline __ATTRS_o_ai int
5650vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
5651 int __cc;
5652 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5653 return __cc <= 1;
5654}
5655
5656// This prototype is deprecated.
5657static inline __ATTRS_o_ai int
5658vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
5659 int __cc;
5660 __builtin_s390_vchlgs((__vector unsigned long long)__a,
5661 (__vector unsigned long long)__b, &__cc);
5662 return __cc <= 1;
5663}
5664
5665#if __ARCH__ >= 15
5666static inline __ATTRS_o_ai int
5667vec_any_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
5668 int __cc;
5669 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
5670 return __cc <= 1;
5671}
5672
5673static inline __ATTRS_o_ai int
5674vec_any_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5675 int __cc;
5676 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5677 return __cc <= 1;
5678}
5679#endif
5680
5681#if __ARCH__ >= 12
5682static inline __ATTRS_o_ai int
5683vec_any_gt(__vector float __a, __vector float __b) {
5684 int __cc;
5685 __builtin_s390_vfchsbs(__a, __b, &__cc);
5686 return __cc <= 1;
5687}
5688#endif
5689
5690static inline __ATTRS_o_ai int
5691vec_any_gt(__vector double __a, __vector double __b) {
5692 int __cc;
5693 __builtin_s390_vfchdbs(__a, __b, &__cc);
5694 return __cc <= 1;
5695}
5696
5697/*-- vec_any_le -------------------------------------------------------------*/
5698
5699static inline __ATTRS_o_ai int
5700vec_any_le(__vector signed char __a, __vector signed char __b) {
5701 int __cc;
5702 __builtin_s390_vchbs(__a, __b, &__cc);
5703 return __cc != 0;
5704}
5705
5706// This prototype is deprecated.
5707static inline __ATTRS_o_ai int
5708vec_any_le(__vector signed char __a, __vector __bool char __b) {
5709 int __cc;
5710 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5711 return __cc != 0;
5712}
5713
5714// This prototype is deprecated.
5715static inline __ATTRS_o_ai int
5716vec_any_le(__vector __bool char __a, __vector signed char __b) {
5717 int __cc;
5718 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5719 return __cc != 0;
5720}
5721
5722static inline __ATTRS_o_ai int
5723vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
5724 int __cc;
5725 __builtin_s390_vchlbs(__a, __b, &__cc);
5726 return __cc != 0;
5727}
5728
5729// This prototype is deprecated.
5730static inline __ATTRS_o_ai int
5731vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
5732 int __cc;
5733 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5734 return __cc != 0;
5735}
5736
5737// This prototype is deprecated.
5738static inline __ATTRS_o_ai int
5739vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
5740 int __cc;
5741 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5742 return __cc != 0;
5743}
5744
5745// This prototype is deprecated.
5746static inline __ATTRS_o_ai int
5747vec_any_le(__vector __bool char __a, __vector __bool char __b) {
5748 int __cc;
5749 __builtin_s390_vchlbs((__vector unsigned char)__a,
5750 (__vector unsigned char)__b, &__cc);
5751 return __cc != 0;
5752}
5753
5754static inline __ATTRS_o_ai int
5755vec_any_le(__vector signed short __a, __vector signed short __b) {
5756 int __cc;
5757 __builtin_s390_vchhs(__a, __b, &__cc);
5758 return __cc != 0;
5759}
5760
5761// This prototype is deprecated.
5762static inline __ATTRS_o_ai int
5763vec_any_le(__vector signed short __a, __vector __bool short __b) {
5764 int __cc;
5765 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5766 return __cc != 0;
5767}
5768
5769// This prototype is deprecated.
5770static inline __ATTRS_o_ai int
5771vec_any_le(__vector __bool short __a, __vector signed short __b) {
5772 int __cc;
5773 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5774 return __cc != 0;
5775}
5776
5777static inline __ATTRS_o_ai int
5778vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
5779 int __cc;
5780 __builtin_s390_vchlhs(__a, __b, &__cc);
5781 return __cc != 0;
5782}
5783
5784// This prototype is deprecated.
5785static inline __ATTRS_o_ai int
5786vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
5787 int __cc;
5788 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5789 return __cc != 0;
5790}
5791
5792// This prototype is deprecated.
5793static inline __ATTRS_o_ai int
5794vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
5795 int __cc;
5796 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5797 return __cc != 0;
5798}
5799
5800// This prototype is deprecated.
5801static inline __ATTRS_o_ai int
5802vec_any_le(__vector __bool short __a, __vector __bool short __b) {
5803 int __cc;
5804 __builtin_s390_vchlhs((__vector unsigned short)__a,
5805 (__vector unsigned short)__b, &__cc);
5806 return __cc != 0;
5807}
5808
5809static inline __ATTRS_o_ai int
5810vec_any_le(__vector signed int __a, __vector signed int __b) {
5811 int __cc;
5812 __builtin_s390_vchfs(__a, __b, &__cc);
5813 return __cc != 0;
5814}
5815
5816// This prototype is deprecated.
5817static inline __ATTRS_o_ai int
5818vec_any_le(__vector signed int __a, __vector __bool int __b) {
5819 int __cc;
5820 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5821 return __cc != 0;
5822}
5823
5824// This prototype is deprecated.
5825static inline __ATTRS_o_ai int
5826vec_any_le(__vector __bool int __a, __vector signed int __b) {
5827 int __cc;
5828 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5829 return __cc != 0;
5830}
5831
5832static inline __ATTRS_o_ai int
5833vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
5834 int __cc;
5835 __builtin_s390_vchlfs(__a, __b, &__cc);
5836 return __cc != 0;
5837}
5838
5839// This prototype is deprecated.
5840static inline __ATTRS_o_ai int
5841vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
5842 int __cc;
5843 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5844 return __cc != 0;
5845}
5846
5847// This prototype is deprecated.
5848static inline __ATTRS_o_ai int
5849vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
5850 int __cc;
5851 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5852 return __cc != 0;
5853}
5854
5855// This prototype is deprecated.
5856static inline __ATTRS_o_ai int
5857vec_any_le(__vector __bool int __a, __vector __bool int __b) {
5858 int __cc;
5859 __builtin_s390_vchlfs((__vector unsigned int)__a,
5860 (__vector unsigned int)__b, &__cc);
5861 return __cc != 0;
5862}
5863
5864static inline __ATTRS_o_ai int
5865vec_any_le(__vector signed long long __a, __vector signed long long __b) {
5866 int __cc;
5867 __builtin_s390_vchgs(__a, __b, &__cc);
5868 return __cc != 0;
5869}
5870
5871// This prototype is deprecated.
5872static inline __ATTRS_o_ai int
5873vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
5874 int __cc;
5875 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5876 return __cc != 0;
5877}
5878
5879// This prototype is deprecated.
5880static inline __ATTRS_o_ai int
5881vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
5882 int __cc;
5883 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5884 return __cc != 0;
5885}
5886
5887static inline __ATTRS_o_ai int
5888vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
5889 int __cc;
5890 __builtin_s390_vchlgs(__a, __b, &__cc);
5891 return __cc != 0;
5892}
5893
5894// This prototype is deprecated.
5895static inline __ATTRS_o_ai int
5896vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
5897 int __cc;
5898 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5899 return __cc != 0;
5900}
5901
5902// This prototype is deprecated.
5903static inline __ATTRS_o_ai int
5904vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
5905 int __cc;
5906 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5907 return __cc != 0;
5908}
5909
5910// This prototype is deprecated.
5911static inline __ATTRS_o_ai int
5912vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
5913 int __cc;
5914 __builtin_s390_vchlgs((__vector unsigned long long)__a,
5915 (__vector unsigned long long)__b, &__cc);
5916 return __cc != 0;
5917}
5918
5919#if __ARCH__ >= 15
5920static inline __ATTRS_o_ai int
5921vec_any_le(__vector signed __int128 __a, __vector signed __int128 __b) {
5922 int __cc;
5923 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
5924 return __cc != 0;
5925}
5926
5927static inline __ATTRS_o_ai int
5928vec_any_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5929 int __cc;
5930 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5931 return __cc != 0;
5932}
5933#endif
5934
5935#if __ARCH__ >= 12
5936static inline __ATTRS_o_ai int
5937vec_any_le(__vector float __a, __vector float __b) {
5938 int __cc;
5939 __builtin_s390_vfchesbs(__b, __a, &__cc);
5940 return __cc <= 1;
5941}
5942#endif
5943
5944static inline __ATTRS_o_ai int
5945vec_any_le(__vector double __a, __vector double __b) {
5946 int __cc;
5947 __builtin_s390_vfchedbs(__b, __a, &__cc);
5948 return __cc <= 1;
5949}
5950
5951/*-- vec_any_lt -------------------------------------------------------------*/
5952
5953static inline __ATTRS_o_ai int
5954vec_any_lt(__vector signed char __a, __vector signed char __b) {
5955 int __cc;
5956 __builtin_s390_vchbs(__b, __a, &__cc);
5957 return __cc <= 1;
5958}
5959
5960// This prototype is deprecated.
5961static inline __ATTRS_o_ai int
5962vec_any_lt(__vector signed char __a, __vector __bool char __b) {
5963 int __cc;
5964 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5965 return __cc <= 1;
5966}
5967
5968// This prototype is deprecated.
5969static inline __ATTRS_o_ai int
5970vec_any_lt(__vector __bool char __a, __vector signed char __b) {
5971 int __cc;
5972 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5973 return __cc <= 1;
5974}
5975
5976static inline __ATTRS_o_ai int
5977vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
5978 int __cc;
5979 __builtin_s390_vchlbs(__b, __a, &__cc);
5980 return __cc <= 1;
5981}
5982
5983// This prototype is deprecated.
5984static inline __ATTRS_o_ai int
5985vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
5986 int __cc;
5987 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5988 return __cc <= 1;
5989}
5990
5991// This prototype is deprecated.
5992static inline __ATTRS_o_ai int
5993vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
5994 int __cc;
5995 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5996 return __cc <= 1;
5997}
5998
5999// This prototype is deprecated.
6000static inline __ATTRS_o_ai int
6001vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
6002 int __cc;
6003 __builtin_s390_vchlbs((__vector unsigned char)__b,
6004 (__vector unsigned char)__a, &__cc);
6005 return __cc <= 1;
6006}
6007
6008static inline __ATTRS_o_ai int
6009vec_any_lt(__vector signed short __a, __vector signed short __b) {
6010 int __cc;
6011 __builtin_s390_vchhs(__b, __a, &__cc);
6012 return __cc <= 1;
6013}
6014
6015// This prototype is deprecated.
6016static inline __ATTRS_o_ai int
6017vec_any_lt(__vector signed short __a, __vector __bool short __b) {
6018 int __cc;
6019 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
6020 return __cc <= 1;
6021}
6022
6023// This prototype is deprecated.
6024static inline __ATTRS_o_ai int
6025vec_any_lt(__vector __bool short __a, __vector signed short __b) {
6026 int __cc;
6027 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
6028 return __cc <= 1;
6029}
6030
6031static inline __ATTRS_o_ai int
6032vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
6033 int __cc;
6034 __builtin_s390_vchlhs(__b, __a, &__cc);
6035 return __cc <= 1;
6036}
6037
6038// This prototype is deprecated.
6039static inline __ATTRS_o_ai int
6040vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
6041 int __cc;
6042 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
6043 return __cc <= 1;
6044}
6045
6046// This prototype is deprecated.
6047static inline __ATTRS_o_ai int
6048vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
6049 int __cc;
6050 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
6051 return __cc <= 1;
6052}
6053
6054// This prototype is deprecated.
6055static inline __ATTRS_o_ai int
6056vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
6057 int __cc;
6058 __builtin_s390_vchlhs((__vector unsigned short)__b,
6059 (__vector unsigned short)__a, &__cc);
6060 return __cc <= 1;
6061}
6062
6063static inline __ATTRS_o_ai int
6064vec_any_lt(__vector signed int __a, __vector signed int __b) {
6065 int __cc;
6066 __builtin_s390_vchfs(__b, __a, &__cc);
6067 return __cc <= 1;
6068}
6069
6070// This prototype is deprecated.
6071static inline __ATTRS_o_ai int
6072vec_any_lt(__vector signed int __a, __vector __bool int __b) {
6073 int __cc;
6074 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
6075 return __cc <= 1;
6076}
6077
6078// This prototype is deprecated.
6079static inline __ATTRS_o_ai int
6080vec_any_lt(__vector __bool int __a, __vector signed int __b) {
6081 int __cc;
6082 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
6083 return __cc <= 1;
6084}
6085
6086static inline __ATTRS_o_ai int
6087vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
6088 int __cc;
6089 __builtin_s390_vchlfs(__b, __a, &__cc);
6090 return __cc <= 1;
6091}
6092
6093// This prototype is deprecated.
6094static inline __ATTRS_o_ai int
6095vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
6096 int __cc;
6097 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
6098 return __cc <= 1;
6099}
6100
6101// This prototype is deprecated.
6102static inline __ATTRS_o_ai int
6103vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
6104 int __cc;
6105 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
6106 return __cc <= 1;
6107}
6108
6109// This prototype is deprecated.
6110static inline __ATTRS_o_ai int
6111vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
6112 int __cc;
6113 __builtin_s390_vchlfs((__vector unsigned int)__b,
6114 (__vector unsigned int)__a, &__cc);
6115 return __cc <= 1;
6116}
6117
6118static inline __ATTRS_o_ai int
6119vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
6120 int __cc;
6121 __builtin_s390_vchgs(__b, __a, &__cc);
6122 return __cc <= 1;
6123}
6124
6125// This prototype is deprecated.
6126static inline __ATTRS_o_ai int
6127vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
6128 int __cc;
6129 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
6130 return __cc <= 1;
6131}
6132
6133// This prototype is deprecated.
6134static inline __ATTRS_o_ai int
6135vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
6136 int __cc;
6137 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
6138 return __cc <= 1;
6139}
6140
6141static inline __ATTRS_o_ai int
6142vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
6143 int __cc;
6144 __builtin_s390_vchlgs(__b, __a, &__cc);
6145 return __cc <= 1;
6146}
6147
6148// This prototype is deprecated.
6149static inline __ATTRS_o_ai int
6150vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
6151 int __cc;
6152 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
6153 return __cc <= 1;
6154}
6155
6156// This prototype is deprecated.
6157static inline __ATTRS_o_ai int
6158vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
6159 int __cc;
6160 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
6161 return __cc <= 1;
6162}
6163
6164// This prototype is deprecated.
6165static inline __ATTRS_o_ai int
6166vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
6167 int __cc;
6168 __builtin_s390_vchlgs((__vector unsigned long long)__b,
6169 (__vector unsigned long long)__a, &__cc);
6170 return __cc <= 1;
6171}
6172
6173#if __ARCH__ >= 15
6174static inline __ATTRS_o_ai int
6175vec_any_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
6176 int __cc;
6177 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
6178 return __cc <= 1;
6179}
6180
6181static inline __ATTRS_o_ai int
6182vec_any_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6183 int __cc;
6184 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
6185 return __cc <= 1;
6186}
6187#endif
6188
6189#if __ARCH__ >= 12
6190static inline __ATTRS_o_ai int
6191vec_any_lt(__vector float __a, __vector float __b) {
6192 int __cc;
6193 __builtin_s390_vfchsbs(__b, __a, &__cc);
6194 return __cc <= 1;
6195}
6196#endif
6197
6198static inline __ATTRS_o_ai int
6199vec_any_lt(__vector double __a, __vector double __b) {
6200 int __cc;
6201 __builtin_s390_vfchdbs(__b, __a, &__cc);
6202 return __cc <= 1;
6203}
6204
6205/*-- vec_any_nge ------------------------------------------------------------*/
6206
6207#if __ARCH__ >= 12
6208static inline __ATTRS_o_ai int
6209vec_any_nge(__vector float __a, __vector float __b) {
6210 int __cc;
6211 __builtin_s390_vfchesbs(__a, __b, &__cc);
6212 return __cc != 0;
6213}
6214#endif
6215
6216static inline __ATTRS_o_ai int
6217vec_any_nge(__vector double __a, __vector double __b) {
6218 int __cc;
6219 __builtin_s390_vfchedbs(__a, __b, &__cc);
6220 return __cc != 0;
6221}
6222
6223/*-- vec_any_ngt ------------------------------------------------------------*/
6224
6225#if __ARCH__ >= 12
6226static inline __ATTRS_o_ai int
6227vec_any_ngt(__vector float __a, __vector float __b) {
6228 int __cc;
6229 __builtin_s390_vfchsbs(__a, __b, &__cc);
6230 return __cc != 0;
6231}
6232#endif
6233
6234static inline __ATTRS_o_ai int
6235vec_any_ngt(__vector double __a, __vector double __b) {
6236 int __cc;
6237 __builtin_s390_vfchdbs(__a, __b, &__cc);
6238 return __cc != 0;
6239}
6240
6241/*-- vec_any_nle ------------------------------------------------------------*/
6242
6243#if __ARCH__ >= 12
6244static inline __ATTRS_o_ai int
6245vec_any_nle(__vector float __a, __vector float __b) {
6246 int __cc;
6247 __builtin_s390_vfchesbs(__b, __a, &__cc);
6248 return __cc != 0;
6249}
6250#endif
6251
6252static inline __ATTRS_o_ai int
6253vec_any_nle(__vector double __a, __vector double __b) {
6254 int __cc;
6255 __builtin_s390_vfchedbs(__b, __a, &__cc);
6256 return __cc != 0;
6257}
6258
6259/*-- vec_any_nlt ------------------------------------------------------------*/
6260
6261#if __ARCH__ >= 12
6262static inline __ATTRS_o_ai int
6263vec_any_nlt(__vector float __a, __vector float __b) {
6264 int __cc;
6265 __builtin_s390_vfchsbs(__b, __a, &__cc);
6266 return __cc != 0;
6267}
6268#endif
6269
6270static inline __ATTRS_o_ai int
6271vec_any_nlt(__vector double __a, __vector double __b) {
6272 int __cc;
6273 __builtin_s390_vfchdbs(__b, __a, &__cc);
6274 return __cc != 0;
6275}
6276
6277/*-- vec_any_nan ------------------------------------------------------------*/
6278
6279#if __ARCH__ >= 12
6280static inline __ATTRS_o_ai int
6281vec_any_nan(__vector float __a) {
6282 int __cc;
6283 __builtin_s390_vftcisb(__a, 15, &__cc);
6284 return __cc != 3;
6285}
6286#endif
6287
6288static inline __ATTRS_o_ai int
6289vec_any_nan(__vector double __a) {
6290 int __cc;
6291 __builtin_s390_vftcidb(__a, 15, &__cc);
6292 return __cc != 3;
6293}
6294
6295/*-- vec_any_numeric --------------------------------------------------------*/
6296
6297#if __ARCH__ >= 12
6298static inline __ATTRS_o_ai int
6299vec_any_numeric(__vector float __a) {
6300 int __cc;
6301 __builtin_s390_vftcisb(__a, 15, &__cc);
6302 return __cc != 0;
6303}
6304#endif
6305
6306static inline __ATTRS_o_ai int
6307vec_any_numeric(__vector double __a) {
6308 int __cc;
6309 __builtin_s390_vftcidb(__a, 15, &__cc);
6310 return __cc != 0;
6311}
6312
6313/*-- vec_blend --------------------------------------------------------------*/
6314
6315#if __ARCH__ >= 15
6316static inline __ATTRS_o_ai __vector signed char
6317vec_blend(__vector signed char __a, __vector signed char __b,
6318 __vector signed char __c) {
6319 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6320}
6321
6322static inline __ATTRS_o_ai __vector __bool char
6323vec_blend(__vector __bool char __a, __vector __bool char __b,
6324 __vector signed char __c) {
6325 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6326}
6327
6328static inline __ATTRS_o_ai __vector unsigned char
6329vec_blend(__vector unsigned char __a, __vector unsigned char __b,
6330 __vector signed char __c) {
6331 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6332}
6333
6334static inline __ATTRS_o_ai __vector signed short
6335vec_blend(__vector signed short __a, __vector signed short __b,
6336 __vector signed short __c) {
6337 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6338}
6339
6340static inline __ATTRS_o_ai __vector __bool short
6341vec_blend(__vector __bool short __a, __vector __bool short __b,
6342 __vector signed short __c) {
6343 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6344}
6345
6346static inline __ATTRS_o_ai __vector unsigned short
6347vec_blend(__vector unsigned short __a, __vector unsigned short __b,
6348 __vector signed short __c) {
6349 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6350}
6351
6352static inline __ATTRS_o_ai __vector signed int
6353vec_blend(__vector signed int __a, __vector signed int __b,
6354 __vector signed int __c) {
6355 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6356}
6357
6358static inline __ATTRS_o_ai __vector __bool int
6359vec_blend(__vector __bool int __a, __vector __bool int __b,
6360 __vector signed int __c) {
6361 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6362}
6363
6364static inline __ATTRS_o_ai __vector unsigned int
6365vec_blend(__vector unsigned int __a, __vector unsigned int __b,
6366 __vector signed int __c) {
6367 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6368}
6369
6370static inline __ATTRS_o_ai __vector signed long long
6371vec_blend(__vector signed long long __a, __vector signed long long __b,
6372 __vector signed long long __c) {
6373 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6374}
6375
6376static inline __ATTRS_o_ai __vector __bool long long
6377vec_blend(__vector __bool long long __a, __vector __bool long long __b,
6378 __vector signed long long __c) {
6379 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6380}
6381
6382static inline __ATTRS_o_ai __vector unsigned long long
6383vec_blend(__vector unsigned long long __a, __vector unsigned long long __b,
6384 __vector signed long long __c) {
6385 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6386}
6387
6388static inline __ATTRS_o_ai __vector signed __int128
6389vec_blend(__vector signed __int128 __a, __vector signed __int128 __b,
6390 __vector signed __int128 __c) {
6391 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6392}
6393
6394static inline __ATTRS_o_ai __vector __bool __int128
6395vec_blend(__vector __bool __int128 __a, __vector __bool __int128 __b,
6396 __vector signed __int128 __c) {
6397 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6398}
6399
6400static inline __ATTRS_o_ai __vector unsigned __int128
6401vec_blend(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
6402 __vector signed __int128 __c) {
6403 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6404}
6405
6406static inline __ATTRS_o_ai __vector float
6407vec_blend(__vector float __a, __vector float __b,
6408 __vector signed int __c) {
6409 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6410}
6411
6412static inline __ATTRS_o_ai __vector double
6413vec_blend(__vector double __a, __vector double __b,
6414 __vector signed long long __c) {
6415 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6416}
6417#endif
6418
6419/*-- vec_and ---------------------------------------------------------------*/
6420
6421static inline __ATTRS_o_ai __vector __bool char
6422vec_and(__vector __bool char __a, __vector __bool char __b) {
6423 return __a & __b;
6424}
6425
6426static inline __ATTRS_o_ai __vector signed char
6427vec_and(__vector signed char __a, __vector signed char __b) {
6428 return __a & __b;
6429}
6430
6431static inline __ATTRS_o_ai __vector unsigned char
6432vec_and(__vector unsigned char __a, __vector unsigned char __b) {
6433 return __a & __b;
6434}
6435
6436static inline __ATTRS_o_ai __vector __bool short
6437vec_and(__vector __bool short __a, __vector __bool short __b) {
6438 return __a & __b;
6439}
6440
6441static inline __ATTRS_o_ai __vector signed short
6442vec_and(__vector signed short __a, __vector signed short __b) {
6443 return __a & __b;
6444}
6445
6446static inline __ATTRS_o_ai __vector unsigned short
6447vec_and(__vector unsigned short __a, __vector unsigned short __b) {
6448 return __a & __b;
6449}
6450
6451static inline __ATTRS_o_ai __vector __bool int
6452vec_and(__vector __bool int __a, __vector __bool int __b) {
6453 return __a & __b;
6454}
6455
6456static inline __ATTRS_o_ai __vector signed int
6457vec_and(__vector signed int __a, __vector signed int __b) {
6458 return __a & __b;
6459}
6460
6461static inline __ATTRS_o_ai __vector unsigned int
6462vec_and(__vector unsigned int __a, __vector unsigned int __b) {
6463 return __a & __b;
6464}
6465
6466static inline __ATTRS_o_ai __vector __bool long long
6467vec_and(__vector __bool long long __a, __vector __bool long long __b) {
6468 return __a & __b;
6469}
6470
6471static inline __ATTRS_o_ai __vector signed long long
6472vec_and(__vector signed long long __a, __vector signed long long __b) {
6473 return __a & __b;
6474}
6475
6476static inline __ATTRS_o_ai __vector unsigned long long
6477vec_and(__vector unsigned long long __a, __vector unsigned long long __b) {
6478 return __a & __b;
6479}
6480
6481static inline __ATTRS_o_ai __vector __bool __int128
6482vec_and(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6483 return __a & __b;
6484}
6485
6486static inline __ATTRS_o_ai __vector signed __int128
6487vec_and(__vector signed __int128 __a, __vector signed __int128 __b) {
6488 return __a & __b;
6489}
6490
6491static inline __ATTRS_o_ai __vector unsigned __int128
6492vec_and(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6493 return __a & __b;
6494}
6495
6496#if __ARCH__ >= 12
6497static inline __ATTRS_o_ai __vector float
6498vec_and(__vector float __a, __vector float __b) {
6499 return (__vector float)((__vector unsigned int)__a &
6500 (__vector unsigned int)__b);
6501}
6502#endif
6503
6504static inline __ATTRS_o_ai __vector double
6505vec_and(__vector double __a, __vector double __b) {
6506 return (__vector double)((__vector unsigned long long)__a &
6507 (__vector unsigned long long)__b);
6508}
6509
6510/*-- vec_or ----------------------------------------------------------------*/
6511
6512static inline __ATTRS_o_ai __vector __bool char
6513vec_or(__vector __bool char __a, __vector __bool char __b) {
6514 return __a | __b;
6515}
6516
6517static inline __ATTRS_o_ai __vector signed char
6518vec_or(__vector signed char __a, __vector signed char __b) {
6519 return __a | __b;
6520}
6521
6522static inline __ATTRS_o_ai __vector unsigned char
6523vec_or(__vector unsigned char __a, __vector unsigned char __b) {
6524 return __a | __b;
6525}
6526
6527static inline __ATTRS_o_ai __vector __bool short
6528vec_or(__vector __bool short __a, __vector __bool short __b) {
6529 return __a | __b;
6530}
6531
6532static inline __ATTRS_o_ai __vector signed short
6533vec_or(__vector signed short __a, __vector signed short __b) {
6534 return __a | __b;
6535}
6536
6537static inline __ATTRS_o_ai __vector unsigned short
6538vec_or(__vector unsigned short __a, __vector unsigned short __b) {
6539 return __a | __b;
6540}
6541
6542static inline __ATTRS_o_ai __vector __bool int
6543vec_or(__vector __bool int __a, __vector __bool int __b) {
6544 return __a | __b;
6545}
6546
6547static inline __ATTRS_o_ai __vector signed int
6548vec_or(__vector signed int __a, __vector signed int __b) {
6549 return __a | __b;
6550}
6551
6552static inline __ATTRS_o_ai __vector unsigned int
6553vec_or(__vector unsigned int __a, __vector unsigned int __b) {
6554 return __a | __b;
6555}
6556
6557static inline __ATTRS_o_ai __vector __bool long long
6558vec_or(__vector __bool long long __a, __vector __bool long long __b) {
6559 return __a | __b;
6560}
6561
6562static inline __ATTRS_o_ai __vector signed long long
6563vec_or(__vector signed long long __a, __vector signed long long __b) {
6564 return __a | __b;
6565}
6566
6567static inline __ATTRS_o_ai __vector unsigned long long
6568vec_or(__vector unsigned long long __a, __vector unsigned long long __b) {
6569 return __a | __b;
6570}
6571
6572static inline __ATTRS_o_ai __vector __bool __int128
6573vec_or(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6574 return __a | __b;
6575}
6576
6577static inline __ATTRS_o_ai __vector signed __int128
6578vec_or(__vector signed __int128 __a, __vector signed __int128 __b) {
6579 return __a | __b;
6580}
6581
6582static inline __ATTRS_o_ai __vector unsigned __int128
6583vec_or(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6584 return __a | __b;
6585}
6586
6587#if __ARCH__ >= 12
6588static inline __ATTRS_o_ai __vector float
6589vec_or(__vector float __a, __vector float __b) {
6590 return (__vector float)((__vector unsigned int)__a |
6591 (__vector unsigned int)__b);
6592}
6593#endif
6594
6595static inline __ATTRS_o_ai __vector double
6596vec_or(__vector double __a, __vector double __b) {
6597 return (__vector double)((__vector unsigned long long)__a |
6598 (__vector unsigned long long)__b);
6599}
6600
6601/*-- vec_xor ----------------------------------------------------------------*/
6602
6603static inline __ATTRS_o_ai __vector __bool char
6604vec_xor(__vector __bool char __a, __vector __bool char __b) {
6605 return __a ^ __b;
6606}
6607
6608static inline __ATTRS_o_ai __vector signed char
6609vec_xor(__vector signed char __a, __vector signed char __b) {
6610 return __a ^ __b;
6611}
6612
6613static inline __ATTRS_o_ai __vector unsigned char
6614vec_xor(__vector unsigned char __a, __vector unsigned char __b) {
6615 return __a ^ __b;
6616}
6617
6618static inline __ATTRS_o_ai __vector __bool short
6619vec_xor(__vector __bool short __a, __vector __bool short __b) {
6620 return __a ^ __b;
6621}
6622
6623static inline __ATTRS_o_ai __vector signed short
6624vec_xor(__vector signed short __a, __vector signed short __b) {
6625 return __a ^ __b;
6626}
6627
6628static inline __ATTRS_o_ai __vector unsigned short
6629vec_xor(__vector unsigned short __a, __vector unsigned short __b) {
6630 return __a ^ __b;
6631}
6632
6633static inline __ATTRS_o_ai __vector __bool int
6634vec_xor(__vector __bool int __a, __vector __bool int __b) {
6635 return __a ^ __b;
6636}
6637
6638static inline __ATTRS_o_ai __vector signed int
6639vec_xor(__vector signed int __a, __vector signed int __b) {
6640 return __a ^ __b;
6641}
6642
6643static inline __ATTRS_o_ai __vector unsigned int
6644vec_xor(__vector unsigned int __a, __vector unsigned int __b) {
6645 return __a ^ __b;
6646}
6647
6648static inline __ATTRS_o_ai __vector __bool long long
6649vec_xor(__vector __bool long long __a, __vector __bool long long __b) {
6650 return __a ^ __b;
6651}
6652
6653static inline __ATTRS_o_ai __vector signed long long
6654vec_xor(__vector signed long long __a, __vector signed long long __b) {
6655 return __a ^ __b;
6656}
6657
6658static inline __ATTRS_o_ai __vector unsigned long long
6659vec_xor(__vector unsigned long long __a, __vector unsigned long long __b) {
6660 return __a ^ __b;
6661}
6662
6663static inline __ATTRS_o_ai __vector __bool __int128
6664vec_xor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6665 return __a ^ __b;
6666}
6667
6668static inline __ATTRS_o_ai __vector signed __int128
6669vec_xor(__vector signed __int128 __a, __vector signed __int128 __b) {
6670 return __a ^ __b;
6671}
6672
6673static inline __ATTRS_o_ai __vector unsigned __int128
6674vec_xor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6675 return __a ^ __b;
6676}
6677
6678#if __ARCH__ >= 12
6679static inline __ATTRS_o_ai __vector float
6680vec_xor(__vector float __a, __vector float __b) {
6681 return (__vector float)((__vector unsigned int)__a ^
6682 (__vector unsigned int)__b);
6683}
6684#endif
6685
6686static inline __ATTRS_o_ai __vector double
6687vec_xor(__vector double __a, __vector double __b) {
6688 return (__vector double)((__vector unsigned long long)__a ^
6689 (__vector unsigned long long)__b);
6690}
6691
6692/*-- vec_andc ---------------------------------------------------------------*/
6693
6694static inline __ATTRS_o_ai __vector __bool char
6695vec_andc(__vector __bool char __a, __vector __bool char __b) {
6696 return __a & ~__b;
6697}
6698
6699static inline __ATTRS_o_ai __vector signed char
6700vec_andc(__vector signed char __a, __vector signed char __b) {
6701 return __a & ~__b;
6702}
6703
6704// This prototype is deprecated.
6705static inline __ATTRS_o_ai __vector signed char
6706vec_andc(__vector __bool char __a, __vector signed char __b) {
6707 return __a & ~__b;
6708}
6709
6710// This prototype is deprecated.
6711static inline __ATTRS_o_ai __vector signed char
6712vec_andc(__vector signed char __a, __vector __bool char __b) {
6713 return __a & ~__b;
6714}
6715
6716static inline __ATTRS_o_ai __vector unsigned char
6717vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
6718 return __a & ~__b;
6719}
6720
6721// This prototype is deprecated.
6722static inline __ATTRS_o_ai __vector unsigned char
6723vec_andc(__vector __bool char __a, __vector unsigned char __b) {
6724 return __a & ~__b;
6725}
6726
6727// This prototype is deprecated.
6728static inline __ATTRS_o_ai __vector unsigned char
6729vec_andc(__vector unsigned char __a, __vector __bool char __b) {
6730 return __a & ~__b;
6731}
6732
6733static inline __ATTRS_o_ai __vector __bool short
6734vec_andc(__vector __bool short __a, __vector __bool short __b) {
6735 return __a & ~__b;
6736}
6737
6738static inline __ATTRS_o_ai __vector signed short
6739vec_andc(__vector signed short __a, __vector signed short __b) {
6740 return __a & ~__b;
6741}
6742
6743// This prototype is deprecated.
6744static inline __ATTRS_o_ai __vector signed short
6745vec_andc(__vector __bool short __a, __vector signed short __b) {
6746 return __a & ~__b;
6747}
6748
6749// This prototype is deprecated.
6750static inline __ATTRS_o_ai __vector signed short
6751vec_andc(__vector signed short __a, __vector __bool short __b) {
6752 return __a & ~__b;
6753}
6754
6755static inline __ATTRS_o_ai __vector unsigned short
6756vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
6757 return __a & ~__b;
6758}
6759
6760// This prototype is deprecated.
6761static inline __ATTRS_o_ai __vector unsigned short
6762vec_andc(__vector __bool short __a, __vector unsigned short __b) {
6763 return __a & ~__b;
6764}
6765
6766// This prototype is deprecated.
6767static inline __ATTRS_o_ai __vector unsigned short
6768vec_andc(__vector unsigned short __a, __vector __bool short __b) {
6769 return __a & ~__b;
6770}
6771
6772static inline __ATTRS_o_ai __vector __bool int
6773vec_andc(__vector __bool int __a, __vector __bool int __b) {
6774 return __a & ~__b;
6775}
6776
6777static inline __ATTRS_o_ai __vector signed int
6778vec_andc(__vector signed int __a, __vector signed int __b) {
6779 return __a & ~__b;
6780}
6781
6782// This prototype is deprecated.
6783static inline __ATTRS_o_ai __vector signed int
6784vec_andc(__vector __bool int __a, __vector signed int __b) {
6785 return __a & ~__b;
6786}
6787
6788// This prototype is deprecated.
6789static inline __ATTRS_o_ai __vector signed int
6790vec_andc(__vector signed int __a, __vector __bool int __b) {
6791 return __a & ~__b;
6792}
6793
6794static inline __ATTRS_o_ai __vector unsigned int
6795vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
6796 return __a & ~__b;
6797}
6798
6799// This prototype is deprecated.
6800static inline __ATTRS_o_ai __vector unsigned int
6801vec_andc(__vector __bool int __a, __vector unsigned int __b) {
6802 return __a & ~__b;
6803}
6804
6805// This prototype is deprecated.
6806static inline __ATTRS_o_ai __vector unsigned int
6807vec_andc(__vector unsigned int __a, __vector __bool int __b) {
6808 return __a & ~__b;
6809}
6810
6811static inline __ATTRS_o_ai __vector __bool long long
6812vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
6813 return __a & ~__b;
6814}
6815
6816static inline __ATTRS_o_ai __vector signed long long
6817vec_andc(__vector signed long long __a, __vector signed long long __b) {
6818 return __a & ~__b;
6819}
6820
6821// This prototype is deprecated.
6822static inline __ATTRS_o_ai __vector signed long long
6823vec_andc(__vector __bool long long __a, __vector signed long long __b) {
6824 return __a & ~__b;
6825}
6826
6827// This prototype is deprecated.
6828static inline __ATTRS_o_ai __vector signed long long
6829vec_andc(__vector signed long long __a, __vector __bool long long __b) {
6830 return __a & ~__b;
6831}
6832
6833static inline __ATTRS_o_ai __vector unsigned long long
6834vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
6835 return __a & ~__b;
6836}
6837
6838// This prototype is deprecated.
6839static inline __ATTRS_o_ai __vector unsigned long long
6840vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
6841 return __a & ~__b;
6842}
6843
6844// This prototype is deprecated.
6845static inline __ATTRS_o_ai __vector unsigned long long
6846vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
6847 return __a & ~__b;
6848}
6849
6850static inline __ATTRS_o_ai __vector __bool __int128
6851vec_andc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6852 return __a & ~__b;
6853}
6854
6855static inline __ATTRS_o_ai __vector signed __int128
6856vec_andc(__vector signed __int128 __a, __vector signed __int128 __b) {
6857 return __a & ~__b;
6858}
6859
6860static inline __ATTRS_o_ai __vector unsigned __int128
6861vec_andc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6862 return __a & ~__b;
6863}
6864
6865#if __ARCH__ >= 12
6866static inline __ATTRS_o_ai __vector float
6867vec_andc(__vector float __a, __vector float __b) {
6868 return (__vector float)((__vector unsigned int)__a &
6869 ~(__vector unsigned int)__b);
6870}
6871#endif
6872
6873static inline __ATTRS_o_ai __vector double
6874vec_andc(__vector double __a, __vector double __b) {
6875 return (__vector double)((__vector unsigned long long)__a &
6876 ~(__vector unsigned long long)__b);
6877}
6878
6879// This prototype is deprecated.
6880static inline __ATTRS_o_ai __vector double
6881vec_andc(__vector __bool long long __a, __vector double __b) {
6882 return (__vector double)((__vector unsigned long long)__a &
6883 ~(__vector unsigned long long)__b);
6884}
6885
6886// This prototype is deprecated.
6887static inline __ATTRS_o_ai __vector double
6888vec_andc(__vector double __a, __vector __bool long long __b) {
6889 return (__vector double)((__vector unsigned long long)__a &
6890 ~(__vector unsigned long long)__b);
6891}
6892
6893/*-- vec_nor ----------------------------------------------------------------*/
6894
6895static inline __ATTRS_o_ai __vector __bool char
6896vec_nor(__vector __bool char __a, __vector __bool char __b) {
6897 return ~(__a | __b);
6898}
6899
6900static inline __ATTRS_o_ai __vector signed char
6901vec_nor(__vector signed char __a, __vector signed char __b) {
6902 return ~(__a | __b);
6903}
6904
6905// This prototype is deprecated.
6906static inline __ATTRS_o_ai __vector signed char
6907vec_nor(__vector __bool char __a, __vector signed char __b) {
6908 return ~(__a | __b);
6909}
6910
6911// This prototype is deprecated.
6912static inline __ATTRS_o_ai __vector signed char
6913vec_nor(__vector signed char __a, __vector __bool char __b) {
6914 return ~(__a | __b);
6915}
6916
6917static inline __ATTRS_o_ai __vector unsigned char
6918vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
6919 return ~(__a | __b);
6920}
6921
6922// This prototype is deprecated.
6923static inline __ATTRS_o_ai __vector unsigned char
6924vec_nor(__vector __bool char __a, __vector unsigned char __b) {
6925 return ~(__a | __b);
6926}
6927
6928// This prototype is deprecated.
6929static inline __ATTRS_o_ai __vector unsigned char
6930vec_nor(__vector unsigned char __a, __vector __bool char __b) {
6931 return ~(__a | __b);
6932}
6933
6934static inline __ATTRS_o_ai __vector __bool short
6935vec_nor(__vector __bool short __a, __vector __bool short __b) {
6936 return ~(__a | __b);
6937}
6938
6939static inline __ATTRS_o_ai __vector signed short
6940vec_nor(__vector signed short __a, __vector signed short __b) {
6941 return ~(__a | __b);
6942}
6943
6944// This prototype is deprecated.
6945static inline __ATTRS_o_ai __vector signed short
6946vec_nor(__vector __bool short __a, __vector signed short __b) {
6947 return ~(__a | __b);
6948}
6949
6950// This prototype is deprecated.
6951static inline __ATTRS_o_ai __vector signed short
6952vec_nor(__vector signed short __a, __vector __bool short __b) {
6953 return ~(__a | __b);
6954}
6955
6956static inline __ATTRS_o_ai __vector unsigned short
6957vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
6958 return ~(__a | __b);
6959}
6960
6961// This prototype is deprecated.
6962static inline __ATTRS_o_ai __vector unsigned short
6963vec_nor(__vector __bool short __a, __vector unsigned short __b) {
6964 return ~(__a | __b);
6965}
6966
6967// This prototype is deprecated.
6968static inline __ATTRS_o_ai __vector unsigned short
6969vec_nor(__vector unsigned short __a, __vector __bool short __b) {
6970 return ~(__a | __b);
6971}
6972
6973static inline __ATTRS_o_ai __vector __bool int
6974vec_nor(__vector __bool int __a, __vector __bool int __b) {
6975 return ~(__a | __b);
6976}
6977
6978static inline __ATTRS_o_ai __vector signed int
6979vec_nor(__vector signed int __a, __vector signed int __b) {
6980 return ~(__a | __b);
6981}
6982
6983// This prototype is deprecated.
6984static inline __ATTRS_o_ai __vector signed int
6985vec_nor(__vector __bool int __a, __vector signed int __b) {
6986 return ~(__a | __b);
6987}
6988
6989// This prototype is deprecated.
6990static inline __ATTRS_o_ai __vector signed int
6991vec_nor(__vector signed int __a, __vector __bool int __b) {
6992 return ~(__a | __b);
6993}
6994
6995static inline __ATTRS_o_ai __vector unsigned int
6996vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
6997 return ~(__a | __b);
6998}
6999
7000// This prototype is deprecated.
7001static inline __ATTRS_o_ai __vector unsigned int
7002vec_nor(__vector __bool int __a, __vector unsigned int __b) {
7003 return ~(__a | __b);
7004}
7005
7006// This prototype is deprecated.
7007static inline __ATTRS_o_ai __vector unsigned int
7008vec_nor(__vector unsigned int __a, __vector __bool int __b) {
7009 return ~(__a | __b);
7010}
7011
7012static inline __ATTRS_o_ai __vector __bool long long
7013vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
7014 return ~(__a | __b);
7015}
7016
7017static inline __ATTRS_o_ai __vector signed long long
7018vec_nor(__vector signed long long __a, __vector signed long long __b) {
7019 return ~(__a | __b);
7020}
7021
7022// This prototype is deprecated.
7023static inline __ATTRS_o_ai __vector signed long long
7024vec_nor(__vector __bool long long __a, __vector signed long long __b) {
7025 return ~(__a | __b);
7026}
7027
7028// This prototype is deprecated.
7029static inline __ATTRS_o_ai __vector signed long long
7030vec_nor(__vector signed long long __a, __vector __bool long long __b) {
7031 return ~(__a | __b);
7032}
7033
7034static inline __ATTRS_o_ai __vector unsigned long long
7035vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
7036 return ~(__a | __b);
7037}
7038
7039// This prototype is deprecated.
7040static inline __ATTRS_o_ai __vector unsigned long long
7041vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
7042 return ~(__a | __b);
7043}
7044
7045// This prototype is deprecated.
7046static inline __ATTRS_o_ai __vector unsigned long long
7047vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
7048 return ~(__a | __b);
7049}
7050
7051static inline __ATTRS_o_ai __vector __bool __int128
7052vec_nor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7053 return ~(__a | __b);
7054}
7055
7056static inline __ATTRS_o_ai __vector signed __int128
7057vec_nor(__vector signed __int128 __a, __vector signed __int128 __b) {
7058 return ~(__a | __b);
7059}
7060
7061static inline __ATTRS_o_ai __vector unsigned __int128
7062vec_nor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7063 return ~(__a | __b);
7064}
7065
7066#if __ARCH__ >= 12
7067static inline __ATTRS_o_ai __vector float
7068vec_nor(__vector float __a, __vector float __b) {
7069 return (__vector float)~((__vector unsigned int)__a |
7070 (__vector unsigned int)__b);
7071}
7072#endif
7073
7074static inline __ATTRS_o_ai __vector double
7075vec_nor(__vector double __a, __vector double __b) {
7076 return (__vector double)~((__vector unsigned long long)__a |
7077 (__vector unsigned long long)__b);
7078}
7079
7080// This prototype is deprecated.
7081static inline __ATTRS_o_ai __vector double
7082vec_nor(__vector __bool long long __a, __vector double __b) {
7083 return (__vector double)~((__vector unsigned long long)__a |
7084 (__vector unsigned long long)__b);
7085}
7086
7087// This prototype is deprecated.
7088static inline __ATTRS_o_ai __vector double
7089vec_nor(__vector double __a, __vector __bool long long __b) {
7090 return (__vector double)~((__vector unsigned long long)__a |
7091 (__vector unsigned long long)__b);
7092}
7093
7094/*-- vec_orc ----------------------------------------------------------------*/
7095
7096#if __ARCH__ >= 12
7097static inline __ATTRS_o_ai __vector __bool char
7098vec_orc(__vector __bool char __a, __vector __bool char __b) {
7099 return __a | ~__b;
7100}
7101
7102static inline __ATTRS_o_ai __vector signed char
7103vec_orc(__vector signed char __a, __vector signed char __b) {
7104 return __a | ~__b;
7105}
7106
7107static inline __ATTRS_o_ai __vector unsigned char
7108vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
7109 return __a | ~__b;
7110}
7111
7112static inline __ATTRS_o_ai __vector __bool short
7113vec_orc(__vector __bool short __a, __vector __bool short __b) {
7114 return __a | ~__b;
7115}
7116
7117static inline __ATTRS_o_ai __vector signed short
7118vec_orc(__vector signed short __a, __vector signed short __b) {
7119 return __a | ~__b;
7120}
7121
7122static inline __ATTRS_o_ai __vector unsigned short
7123vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
7124 return __a | ~__b;
7125}
7126
7127static inline __ATTRS_o_ai __vector __bool int
7128vec_orc(__vector __bool int __a, __vector __bool int __b) {
7129 return __a | ~__b;
7130}
7131
7132static inline __ATTRS_o_ai __vector signed int
7133vec_orc(__vector signed int __a, __vector signed int __b) {
7134 return __a | ~__b;
7135}
7136
7137static inline __ATTRS_o_ai __vector unsigned int
7138vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
7139 return __a | ~__b;
7140}
7141
7142static inline __ATTRS_o_ai __vector __bool long long
7143vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
7144 return __a | ~__b;
7145}
7146
7147static inline __ATTRS_o_ai __vector signed long long
7148vec_orc(__vector signed long long __a, __vector signed long long __b) {
7149 return __a | ~__b;
7150}
7151
7152static inline __ATTRS_o_ai __vector unsigned long long
7153vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
7154 return __a | ~__b;
7155}
7156
7157static inline __ATTRS_o_ai __vector __bool __int128
7158vec_orc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7159 return __a | ~__b;
7160}
7161
7162static inline __ATTRS_o_ai __vector signed __int128
7163vec_orc(__vector signed __int128 __a, __vector signed __int128 __b) {
7164 return __a | ~__b;
7165}
7166
7167static inline __ATTRS_o_ai __vector unsigned __int128
7168vec_orc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7169 return __a | ~__b;
7170}
7171
7172static inline __ATTRS_o_ai __vector float
7173vec_orc(__vector float __a, __vector float __b) {
7174 return (__vector float)((__vector unsigned int)__a |
7175 ~(__vector unsigned int)__b);
7176}
7177
7178static inline __ATTRS_o_ai __vector double
7179vec_orc(__vector double __a, __vector double __b) {
7180 return (__vector double)((__vector unsigned long long)__a |
7181 ~(__vector unsigned long long)__b);
7182}
7183#endif
7184
7185/*-- vec_nand ---------------------------------------------------------------*/
7186
7187#if __ARCH__ >= 12
7188static inline __ATTRS_o_ai __vector __bool char
7189vec_nand(__vector __bool char __a, __vector __bool char __b) {
7190 return ~(__a & __b);
7191}
7192
7193static inline __ATTRS_o_ai __vector signed char
7194vec_nand(__vector signed char __a, __vector signed char __b) {
7195 return ~(__a & __b);
7196}
7197
7198static inline __ATTRS_o_ai __vector unsigned char
7199vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
7200 return ~(__a & __b);
7201}
7202
7203static inline __ATTRS_o_ai __vector __bool short
7204vec_nand(__vector __bool short __a, __vector __bool short __b) {
7205 return ~(__a & __b);
7206}
7207
7208static inline __ATTRS_o_ai __vector signed short
7209vec_nand(__vector signed short __a, __vector signed short __b) {
7210 return ~(__a & __b);
7211}
7212
7213static inline __ATTRS_o_ai __vector unsigned short
7214vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
7215 return ~(__a & __b);
7216}
7217
7218static inline __ATTRS_o_ai __vector __bool int
7219vec_nand(__vector __bool int __a, __vector __bool int __b) {
7220 return ~(__a & __b);
7221}
7222
7223static inline __ATTRS_o_ai __vector signed int
7224vec_nand(__vector signed int __a, __vector signed int __b) {
7225 return ~(__a & __b);
7226}
7227
7228static inline __ATTRS_o_ai __vector unsigned int
7229vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
7230 return ~(__a & __b);
7231}
7232
7233static inline __ATTRS_o_ai __vector __bool long long
7234vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
7235 return ~(__a & __b);
7236}
7237
7238static inline __ATTRS_o_ai __vector signed long long
7239vec_nand(__vector signed long long __a, __vector signed long long __b) {
7240 return ~(__a & __b);
7241}
7242
7243static inline __ATTRS_o_ai __vector unsigned long long
7244vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
7245 return ~(__a & __b);
7246}
7247
7248static inline __ATTRS_o_ai __vector __bool __int128
7249vec_nand(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7250 return ~(__a & __b);
7251}
7252
7253static inline __ATTRS_o_ai __vector signed __int128
7254vec_nand(__vector signed __int128 __a, __vector signed __int128 __b) {
7255 return ~(__a & __b);
7256}
7257
7258static inline __ATTRS_o_ai __vector unsigned __int128
7259vec_nand(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7260 return ~(__a & __b);
7261}
7262
7263static inline __ATTRS_o_ai __vector float
7264vec_nand(__vector float __a, __vector float __b) {
7265 return (__vector float)~((__vector unsigned int)__a &
7266 (__vector unsigned int)__b);
7267}
7268
7269static inline __ATTRS_o_ai __vector double
7270vec_nand(__vector double __a, __vector double __b) {
7271 return (__vector double)~((__vector unsigned long long)__a &
7272 (__vector unsigned long long)__b);
7273}
7274#endif
7275
7276/*-- vec_eqv ----------------------------------------------------------------*/
7277
7278#if __ARCH__ >= 12
7279static inline __ATTRS_o_ai __vector __bool char
7280vec_eqv(__vector __bool char __a, __vector __bool char __b) {
7281 return ~(__a ^ __b);
7282}
7283
7284static inline __ATTRS_o_ai __vector signed char
7285vec_eqv(__vector signed char __a, __vector signed char __b) {
7286 return ~(__a ^ __b);
7287}
7288
7289static inline __ATTRS_o_ai __vector unsigned char
7290vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
7291 return ~(__a ^ __b);
7292}
7293
7294static inline __ATTRS_o_ai __vector __bool short
7295vec_eqv(__vector __bool short __a, __vector __bool short __b) {
7296 return ~(__a ^ __b);
7297}
7298
7299static inline __ATTRS_o_ai __vector signed short
7300vec_eqv(__vector signed short __a, __vector signed short __b) {
7301 return ~(__a ^ __b);
7302}
7303
7304static inline __ATTRS_o_ai __vector unsigned short
7305vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
7306 return ~(__a ^ __b);
7307}
7308
7309static inline __ATTRS_o_ai __vector __bool int
7310vec_eqv(__vector __bool int __a, __vector __bool int __b) {
7311 return ~(__a ^ __b);
7312}
7313
7314static inline __ATTRS_o_ai __vector signed int
7315vec_eqv(__vector signed int __a, __vector signed int __b) {
7316 return ~(__a ^ __b);
7317}
7318
7319static inline __ATTRS_o_ai __vector unsigned int
7320vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
7321 return ~(__a ^ __b);
7322}
7323
7324static inline __ATTRS_o_ai __vector __bool long long
7325vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
7326 return ~(__a ^ __b);
7327}
7328
7329static inline __ATTRS_o_ai __vector signed long long
7330vec_eqv(__vector signed long long __a, __vector signed long long __b) {
7331 return ~(__a ^ __b);
7332}
7333
7334static inline __ATTRS_o_ai __vector unsigned long long
7335vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
7336 return ~(__a ^ __b);
7337}
7338
7339static inline __ATTRS_o_ai __vector __bool __int128
7340vec_eqv(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7341 return ~(__a ^ __b);
7342}
7343
7344static inline __ATTRS_o_ai __vector signed __int128
7345vec_eqv(__vector signed __int128 __a, __vector signed __int128 __b) {
7346 return ~(__a ^ __b);
7347}
7348
7349static inline __ATTRS_o_ai __vector unsigned __int128
7350vec_eqv(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7351 return ~(__a ^ __b);
7352}
7353
7354static inline __ATTRS_o_ai __vector float
7355vec_eqv(__vector float __a, __vector float __b) {
7356 return (__vector float)~((__vector unsigned int)__a ^
7357 (__vector unsigned int)__b);
7358}
7359
7360static inline __ATTRS_o_ai __vector double
7361vec_eqv(__vector double __a, __vector double __b) {
7362 return (__vector double)~((__vector unsigned long long)__a ^
7363 (__vector unsigned long long)__b);
7364}
7365#endif
7366
7367/*-- vec_evaluate -----------------------------------------------------------*/
7368
7369#if __ARCH__ >= 15
7370extern __ATTRS_o __vector signed char
7371vec_evaluate(__vector signed char __a, __vector signed char __b,
7372 __vector signed char __c, unsigned char __d)
7373 __constant(__d);
7374
7375extern __ATTRS_o __vector unsigned char
7376vec_evaluate(__vector unsigned char __a, __vector unsigned char __b,
7377 __vector unsigned char __c, unsigned char __d)
7378 __constant(__d);
7379
7380extern __ATTRS_o __vector __bool char
7381vec_evaluate(__vector __bool char __a, __vector __bool char __b,
7382 __vector __bool char __c, unsigned char __d)
7383 __constant(__d);
7384
7385extern __ATTRS_o __vector signed short
7386vec_evaluate(__vector signed short __a, __vector signed short __b,
7387 __vector signed short __c, unsigned char __d)
7388 __constant(__d);
7389
7390extern __ATTRS_o __vector unsigned short
7391vec_evaluate(__vector unsigned short __a, __vector unsigned short __b,
7392 __vector unsigned short __c, unsigned char __d)
7393 __constant(__d);
7394
7395extern __ATTRS_o __vector __bool short
7396vec_evaluate(__vector __bool short __a, __vector __bool short __b,
7397 __vector __bool short __c, unsigned char __d)
7398 __constant(__d);
7399
7400extern __ATTRS_o __vector signed int
7401vec_evaluate(__vector signed int __a, __vector signed int __b,
7402 __vector signed int __c, unsigned char __d)
7403 __constant(__d);
7404
7405extern __ATTRS_o __vector unsigned int
7406vec_evaluate(__vector unsigned int __a, __vector unsigned int __b,
7407 __vector unsigned int __c, unsigned char __d)
7408 __constant(__d);
7409
7410extern __ATTRS_o __vector __bool int
7411vec_evaluate(__vector __bool int __a, __vector __bool int __b,
7412 __vector __bool int __c, unsigned char __d)
7413 __constant(__d);
7414
7415extern __ATTRS_o __vector signed long long
7416vec_evaluate(__vector signed long long __a, __vector signed long long __b,
7417 __vector signed long long __c, unsigned char __d)
7418 __constant(__d);
7419
7420extern __ATTRS_o __vector unsigned long long
7421vec_evaluate(__vector unsigned long long __a, __vector unsigned long long __b,
7422 __vector unsigned long long __c, unsigned char __d)
7423 __constant(__d);
7424
7425extern __ATTRS_o __vector __bool long long
7426vec_evaluate(__vector __bool long long __a, __vector __bool long long __b,
7427 __vector __bool long long __c, unsigned char __d)
7428 __constant(__d);
7429
7430extern __ATTRS_o __vector signed __int128
7431vec_evaluate(__vector signed __int128 __a, __vector signed __int128 __b,
7432 __vector signed __int128 __c, unsigned char __d)
7433 __constant(__d);
7434
7435extern __ATTRS_o __vector unsigned __int128
7436vec_evaluate(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
7437 __vector unsigned __int128 __c, unsigned char __d)
7438 __constant(__d);
7439
7440extern __ATTRS_o __vector __bool __int128
7441vec_evaluate(__vector __bool __int128 __a, __vector __bool __int128 __b,
7442 __vector __bool __int128 __c, unsigned char __d)
7443 __constant(__d);
7444
7445#define vec_evaluate(A, B, C, D) \
7446 ((__typeof__((vec_evaluate)((A), (B), (C), (D)))) \
7447 __builtin_s390_veval((__vector unsigned char)(A), \
7448 (__vector unsigned char)(B), \
7449 (__vector unsigned char)(C), (D)))
7450#endif
7451
7452/*-- vec_cntlz --------------------------------------------------------------*/
7453
7454static inline __ATTRS_o_ai __vector unsigned char
7455vec_cntlz(__vector signed char __a) {
7456 return __builtin_s390_vclzb((__vector unsigned char)__a);
7457}
7458
7459static inline __ATTRS_o_ai __vector unsigned char
7460vec_cntlz(__vector unsigned char __a) {
7461 return __builtin_s390_vclzb(__a);
7462}
7463
7464static inline __ATTRS_o_ai __vector unsigned short
7465vec_cntlz(__vector signed short __a) {
7466 return __builtin_s390_vclzh((__vector unsigned short)__a);
7467}
7468
7469static inline __ATTRS_o_ai __vector unsigned short
7470vec_cntlz(__vector unsigned short __a) {
7471 return __builtin_s390_vclzh(__a);
7472}
7473
7474static inline __ATTRS_o_ai __vector unsigned int
7475vec_cntlz(__vector signed int __a) {
7476 return __builtin_s390_vclzf((__vector unsigned int)__a);
7477}
7478
7479static inline __ATTRS_o_ai __vector unsigned int
7480vec_cntlz(__vector unsigned int __a) {
7481 return __builtin_s390_vclzf(__a);
7482}
7483
7484static inline __ATTRS_o_ai __vector unsigned long long
7485vec_cntlz(__vector signed long long __a) {
7486 return __builtin_s390_vclzg((__vector unsigned long long)__a);
7487}
7488
7489static inline __ATTRS_o_ai __vector unsigned long long
7490vec_cntlz(__vector unsigned long long __a) {
7491 return __builtin_s390_vclzg(__a);
7492}
7493
7494#if __ARCH__ >= 15
7495static inline __ATTRS_o_ai __vector unsigned __int128
7496vec_cntlz(__vector signed __int128 __a) {
7497 return (__vector unsigned __int128)
7498 __builtin_s390_vclzq((unsigned __int128)__a);
7499}
7500
7501static inline __ATTRS_o_ai __vector unsigned __int128
7502vec_cntlz(__vector unsigned __int128 __a) {
7503 return (__vector unsigned __int128)
7504 __builtin_s390_vclzq((unsigned __int128)__a);
7505}
7506#endif
7507
7508/*-- vec_cnttz --------------------------------------------------------------*/
7509
7510static inline __ATTRS_o_ai __vector unsigned char
7511vec_cnttz(__vector signed char __a) {
7512 return __builtin_s390_vctzb((__vector unsigned char)__a);
7513}
7514
7515static inline __ATTRS_o_ai __vector unsigned char
7516vec_cnttz(__vector unsigned char __a) {
7517 return __builtin_s390_vctzb(__a);
7518}
7519
7520static inline __ATTRS_o_ai __vector unsigned short
7521vec_cnttz(__vector signed short __a) {
7522 return __builtin_s390_vctzh((__vector unsigned short)__a);
7523}
7524
7525static inline __ATTRS_o_ai __vector unsigned short
7526vec_cnttz(__vector unsigned short __a) {
7527 return __builtin_s390_vctzh(__a);
7528}
7529
7530static inline __ATTRS_o_ai __vector unsigned int
7531vec_cnttz(__vector signed int __a) {
7532 return __builtin_s390_vctzf((__vector unsigned int)__a);
7533}
7534
7535static inline __ATTRS_o_ai __vector unsigned int
7536vec_cnttz(__vector unsigned int __a) {
7537 return __builtin_s390_vctzf(__a);
7538}
7539
7540static inline __ATTRS_o_ai __vector unsigned long long
7541vec_cnttz(__vector signed long long __a) {
7542 return __builtin_s390_vctzg((__vector unsigned long long)__a);
7543}
7544
7545static inline __ATTRS_o_ai __vector unsigned long long
7546vec_cnttz(__vector unsigned long long __a) {
7547 return __builtin_s390_vctzg(__a);
7548}
7549
7550#if __ARCH__ >= 15
7551static inline __ATTRS_o_ai __vector unsigned __int128
7552vec_cnttz(__vector signed __int128 __a) {
7553 return (__vector unsigned __int128)
7554 __builtin_s390_vctzq((unsigned __int128)__a);
7555}
7556
7557static inline __ATTRS_o_ai __vector unsigned __int128
7558vec_cnttz(__vector unsigned __int128 __a) {
7559 return (__vector unsigned __int128)
7560 __builtin_s390_vctzq((unsigned __int128)__a);
7561}
7562#endif
7563
7564/*-- vec_popcnt -------------------------------------------------------------*/
7565
7566static inline __ATTRS_o_ai __vector unsigned char
7567vec_popcnt(__vector signed char __a) {
7568 return __builtin_elementwise_popcount((__vector unsigned char)__a);
7569}
7570
7571static inline __ATTRS_o_ai __vector unsigned char
7572vec_popcnt(__vector unsigned char __a) {
7573 return __builtin_elementwise_popcount(__a);
7574}
7575
7576static inline __ATTRS_o_ai __vector unsigned short
7577vec_popcnt(__vector signed short __a) {
7578 return __builtin_elementwise_popcount((__vector unsigned short)__a);
7579}
7580
7581static inline __ATTRS_o_ai __vector unsigned short
7582vec_popcnt(__vector unsigned short __a) {
7583 return __builtin_elementwise_popcount(__a);
7584}
7585
7586static inline __ATTRS_o_ai __vector unsigned int
7587vec_popcnt(__vector signed int __a) {
7588 return __builtin_elementwise_popcount((__vector unsigned int)__a);
7589}
7590
7591static inline __ATTRS_o_ai __vector unsigned int
7592vec_popcnt(__vector unsigned int __a) {
7593 return __builtin_elementwise_popcount(__a);
7594}
7595
7596static inline __ATTRS_o_ai __vector unsigned long long
7597vec_popcnt(__vector signed long long __a) {
7598 return __builtin_elementwise_popcount((__vector unsigned long long)__a);
7599}
7600
7601static inline __ATTRS_o_ai __vector unsigned long long
7602vec_popcnt(__vector unsigned long long __a) {
7603 return __builtin_elementwise_popcount(__a);
7604}
7605
7606/*-- vec_rl -----------------------------------------------------------------*/
7607
7608static inline __ATTRS_o_ai __vector signed char
7609vec_rl(__vector signed char __a, __vector unsigned char __b) {
7610 return (__vector signed char)__builtin_s390_verllvb(
7611 (__vector unsigned char)__a, __b);
7612}
7613
7614static inline __ATTRS_o_ai __vector unsigned char
7615vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
7616 return __builtin_s390_verllvb(__a, __b);
7617}
7618
7619static inline __ATTRS_o_ai __vector signed short
7620vec_rl(__vector signed short __a, __vector unsigned short __b) {
7621 return (__vector signed short)__builtin_s390_verllvh(
7622 (__vector unsigned short)__a, __b);
7623}
7624
7625static inline __ATTRS_o_ai __vector unsigned short
7626vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
7627 return __builtin_s390_verllvh(__a, __b);
7628}
7629
7630static inline __ATTRS_o_ai __vector signed int
7631vec_rl(__vector signed int __a, __vector unsigned int __b) {
7632 return (__vector signed int)__builtin_s390_verllvf(
7633 (__vector unsigned int)__a, __b);
7634}
7635
7636static inline __ATTRS_o_ai __vector unsigned int
7637vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
7638 return __builtin_s390_verllvf(__a, __b);
7639}
7640
7641static inline __ATTRS_o_ai __vector signed long long
7642vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
7643 return (__vector signed long long)__builtin_s390_verllvg(
7644 (__vector unsigned long long)__a, __b);
7645}
7646
7647static inline __ATTRS_o_ai __vector unsigned long long
7648vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
7649 return __builtin_s390_verllvg(__a, __b);
7650}
7651
7652/*-- vec_rli ----------------------------------------------------------------*/
7653
7654static inline __ATTRS_o_ai __vector signed char
7655vec_rli(__vector signed char __a, unsigned long __b) {
7656 return (__vector signed char)__builtin_s390_verllb(
7657 (__vector unsigned char)__a, (unsigned char)__b);
7658}
7659
7660static inline __ATTRS_o_ai __vector unsigned char
7661vec_rli(__vector unsigned char __a, unsigned long __b) {
7662 return __builtin_s390_verllb(__a, (unsigned char)__b);
7663}
7664
7665static inline __ATTRS_o_ai __vector signed short
7666vec_rli(__vector signed short __a, unsigned long __b) {
7667 return (__vector signed short)__builtin_s390_verllh(
7668 (__vector unsigned short)__a, (unsigned char)__b);
7669}
7670
7671static inline __ATTRS_o_ai __vector unsigned short
7672vec_rli(__vector unsigned short __a, unsigned long __b) {
7673 return __builtin_s390_verllh(__a, (unsigned char)__b);
7674}
7675
7676static inline __ATTRS_o_ai __vector signed int
7677vec_rli(__vector signed int __a, unsigned long __b) {
7678 return (__vector signed int)__builtin_s390_verllf(
7679 (__vector unsigned int)__a, (unsigned char)__b);
7680}
7681
7682static inline __ATTRS_o_ai __vector unsigned int
7683vec_rli(__vector unsigned int __a, unsigned long __b) {
7684 return __builtin_s390_verllf(__a, (unsigned char)__b);
7685}
7686
7687static inline __ATTRS_o_ai __vector signed long long
7688vec_rli(__vector signed long long __a, unsigned long __b) {
7689 return (__vector signed long long)__builtin_s390_verllg(
7690 (__vector unsigned long long)__a, (unsigned char)__b);
7691}
7692
7693static inline __ATTRS_o_ai __vector unsigned long long
7694vec_rli(__vector unsigned long long __a, unsigned long __b) {
7695 return __builtin_s390_verllg(__a, (unsigned char)__b);
7696}
7697
7698/*-- vec_rl_mask ------------------------------------------------------------*/
7699
7700extern __ATTRS_o __vector signed char
7701vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
7702 unsigned char __c) __constant(__c);
7703
7704extern __ATTRS_o __vector unsigned char
7705vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
7706 unsigned char __c) __constant(__c);
7707
7708extern __ATTRS_o __vector signed short
7709vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
7710 unsigned char __c) __constant(__c);
7711
7712extern __ATTRS_o __vector unsigned short
7713vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
7714 unsigned char __c) __constant(__c);
7715
7716extern __ATTRS_o __vector signed int
7717vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
7718 unsigned char __c) __constant(__c);
7719
7720extern __ATTRS_o __vector unsigned int
7721vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
7722 unsigned char __c) __constant(__c);
7723
7724extern __ATTRS_o __vector signed long long
7725vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
7726 unsigned char __c) __constant(__c);
7727
7728extern __ATTRS_o __vector unsigned long long
7729vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
7730 unsigned char __c) __constant(__c);
7731
7732#define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
7733 __extension__ ({ \
7734 __vector unsigned char __res; \
7735 __vector unsigned char __x = (__vector unsigned char)(X); \
7736 __vector unsigned char __y = (__vector unsigned char)(Y); \
7737 switch (sizeof ((X)[0])) { \
7738 case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
7739 (__vector unsigned char)__x, (__vector unsigned char)__x, \
7740 (__vector unsigned char)__y, (Z)); break; \
7741 case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
7742 (__vector unsigned short)__x, (__vector unsigned short)__x, \
7743 (__vector unsigned short)__y, (Z)); break; \
7744 case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
7745 (__vector unsigned int)__x, (__vector unsigned int)__x, \
7746 (__vector unsigned int)__y, (Z)); break; \
7747 default: __res = (__vector unsigned char) __builtin_s390_verimg( \
7748 (__vector unsigned long long)__x, (__vector unsigned long long)__x, \
7749 (__vector unsigned long long)__y, (Z)); break; \
7750 } __res; }))
7751
7752/*-- vec_sll ----------------------------------------------------------------*/
7753
7754static inline __ATTRS_o_ai __vector signed char
7755vec_sll(__vector signed char __a, __vector unsigned char __b) {
7756 return (__vector signed char)__builtin_s390_vsl(
7757 (__vector unsigned char)__a, __b);
7758}
7759
7760// This prototype is deprecated.
7761static inline __ATTRS_o_ai __vector signed char
7762vec_sll(__vector signed char __a, __vector unsigned short __b) {
7763 return (__vector signed char)__builtin_s390_vsl(
7764 (__vector unsigned char)__a, (__vector unsigned char)__b);
7765}
7766
7767// This prototype is deprecated.
7768static inline __ATTRS_o_ai __vector signed char
7769vec_sll(__vector signed char __a, __vector unsigned int __b) {
7770 return (__vector signed char)__builtin_s390_vsl(
7771 (__vector unsigned char)__a, (__vector unsigned char)__b);
7772}
7773
7774// This prototype is deprecated.
7775static inline __ATTRS_o_ai __vector __bool char
7776vec_sll(__vector __bool char __a, __vector unsigned char __b) {
7777 return (__vector __bool char)__builtin_s390_vsl(
7778 (__vector unsigned char)__a, __b);
7779}
7780
7781// This prototype is deprecated.
7782static inline __ATTRS_o_ai __vector __bool char
7783vec_sll(__vector __bool char __a, __vector unsigned short __b) {
7784 return (__vector __bool char)__builtin_s390_vsl(
7785 (__vector unsigned char)__a, (__vector unsigned char)__b);
7786}
7787
7788// This prototype is deprecated.
7789static inline __ATTRS_o_ai __vector __bool char
7790vec_sll(__vector __bool char __a, __vector unsigned int __b) {
7791 return (__vector __bool char)__builtin_s390_vsl(
7792 (__vector unsigned char)__a, (__vector unsigned char)__b);
7793}
7794
7795static inline __ATTRS_o_ai __vector unsigned char
7796vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
7797 return __builtin_s390_vsl(__a, __b);
7798}
7799
7800// This prototype is deprecated.
7801static inline __ATTRS_o_ai __vector unsigned char
7802vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
7803 return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
7804}
7805
7806// This prototype is deprecated.
7807static inline __ATTRS_o_ai __vector unsigned char
7808vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
7809 return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
7810}
7811
7812static inline __ATTRS_o_ai __vector signed short
7813vec_sll(__vector signed short __a, __vector unsigned char __b) {
7814 return (__vector signed short)__builtin_s390_vsl(
7815 (__vector unsigned char)__a, __b);
7816}
7817
7818// This prototype is deprecated.
7819static inline __ATTRS_o_ai __vector signed short
7820vec_sll(__vector signed short __a, __vector unsigned short __b) {
7821 return (__vector signed short)__builtin_s390_vsl(
7822 (__vector unsigned char)__a, (__vector unsigned char)__b);
7823}
7824
7825// This prototype is deprecated.
7826static inline __ATTRS_o_ai __vector signed short
7827vec_sll(__vector signed short __a, __vector unsigned int __b) {
7828 return (__vector signed short)__builtin_s390_vsl(
7829 (__vector unsigned char)__a, (__vector unsigned char)__b);
7830}
7831
7832// This prototype is deprecated.
7833static inline __ATTRS_o_ai __vector __bool short
7834vec_sll(__vector __bool short __a, __vector unsigned char __b) {
7835 return (__vector __bool short)__builtin_s390_vsl(
7836 (__vector unsigned char)__a, __b);
7837}
7838
7839// This prototype is deprecated.
7840static inline __ATTRS_o_ai __vector __bool short
7841vec_sll(__vector __bool short __a, __vector unsigned short __b) {
7842 return (__vector __bool short)__builtin_s390_vsl(
7843 (__vector unsigned char)__a, (__vector unsigned char)__b);
7844}
7845
7846// This prototype is deprecated.
7847static inline __ATTRS_o_ai __vector __bool short
7848vec_sll(__vector __bool short __a, __vector unsigned int __b) {
7849 return (__vector __bool short)__builtin_s390_vsl(
7850 (__vector unsigned char)__a, (__vector unsigned char)__b);
7851}
7852
7853static inline __ATTRS_o_ai __vector unsigned short
7854vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
7855 return (__vector unsigned short)__builtin_s390_vsl(
7856 (__vector unsigned char)__a, __b);
7857}
7858
7859// This prototype is deprecated.
7860static inline __ATTRS_o_ai __vector unsigned short
7861vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
7862 return (__vector unsigned short)__builtin_s390_vsl(
7863 (__vector unsigned char)__a, (__vector unsigned char)__b);
7864}
7865
7866// This prototype is deprecated.
7867static inline __ATTRS_o_ai __vector unsigned short
7868vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
7869 return (__vector unsigned short)__builtin_s390_vsl(
7870 (__vector unsigned char)__a, (__vector unsigned char)__b);
7871}
7872
7873static inline __ATTRS_o_ai __vector signed int
7874vec_sll(__vector signed int __a, __vector unsigned char __b) {
7875 return (__vector signed int)__builtin_s390_vsl(
7876 (__vector unsigned char)__a, __b);
7877}
7878
7879// This prototype is deprecated.
7880static inline __ATTRS_o_ai __vector signed int
7881vec_sll(__vector signed int __a, __vector unsigned short __b) {
7882 return (__vector signed int)__builtin_s390_vsl(
7883 (__vector unsigned char)__a, (__vector unsigned char)__b);
7884}
7885
7886// This prototype is deprecated.
7887static inline __ATTRS_o_ai __vector signed int
7888vec_sll(__vector signed int __a, __vector unsigned int __b) {
7889 return (__vector signed int)__builtin_s390_vsl(
7890 (__vector unsigned char)__a, (__vector unsigned char)__b);
7891}
7892
7893// This prototype is deprecated.
7894static inline __ATTRS_o_ai __vector __bool int
7895vec_sll(__vector __bool int __a, __vector unsigned char __b) {
7896 return (__vector __bool int)__builtin_s390_vsl(
7897 (__vector unsigned char)__a, __b);
7898}
7899
7900// This prototype is deprecated.
7901static inline __ATTRS_o_ai __vector __bool int
7902vec_sll(__vector __bool int __a, __vector unsigned short __b) {
7903 return (__vector __bool int)__builtin_s390_vsl(
7904 (__vector unsigned char)__a, (__vector unsigned char)__b);
7905}
7906
7907// This prototype is deprecated.
7908static inline __ATTRS_o_ai __vector __bool int
7909vec_sll(__vector __bool int __a, __vector unsigned int __b) {
7910 return (__vector __bool int)__builtin_s390_vsl(
7911 (__vector unsigned char)__a, (__vector unsigned char)__b);
7912}
7913
7914static inline __ATTRS_o_ai __vector unsigned int
7915vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
7916 return (__vector unsigned int)__builtin_s390_vsl(
7917 (__vector unsigned char)__a, __b);
7918}
7919
7920// This prototype is deprecated.
7921static inline __ATTRS_o_ai __vector unsigned int
7922vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
7923 return (__vector unsigned int)__builtin_s390_vsl(
7924 (__vector unsigned char)__a, (__vector unsigned char)__b);
7925}
7926
7927// This prototype is deprecated.
7928static inline __ATTRS_o_ai __vector unsigned int
7929vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
7930 return (__vector unsigned int)__builtin_s390_vsl(
7931 (__vector unsigned char)__a, (__vector unsigned char)__b);
7932}
7933
7934static inline __ATTRS_o_ai __vector signed long long
7935vec_sll(__vector signed long long __a, __vector unsigned char __b) {
7936 return (__vector signed long long)__builtin_s390_vsl(
7937 (__vector unsigned char)__a, __b);
7938}
7939
7940// This prototype is deprecated.
7941static inline __ATTRS_o_ai __vector signed long long
7942vec_sll(__vector signed long long __a, __vector unsigned short __b) {
7943 return (__vector signed long long)__builtin_s390_vsl(
7944 (__vector unsigned char)__a, (__vector unsigned char)__b);
7945}
7946
7947// This prototype is deprecated.
7948static inline __ATTRS_o_ai __vector signed long long
7949vec_sll(__vector signed long long __a, __vector unsigned int __b) {
7950 return (__vector signed long long)__builtin_s390_vsl(
7951 (__vector unsigned char)__a, (__vector unsigned char)__b);
7952}
7953
7954// This prototype is deprecated.
7955static inline __ATTRS_o_ai __vector __bool long long
7956vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
7957 return (__vector __bool long long)__builtin_s390_vsl(
7958 (__vector unsigned char)__a, __b);
7959}
7960
7961// This prototype is deprecated.
7962static inline __ATTRS_o_ai __vector __bool long long
7963vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
7964 return (__vector __bool long long)__builtin_s390_vsl(
7965 (__vector unsigned char)__a, (__vector unsigned char)__b);
7966}
7967
7968// This prototype is deprecated.
7969static inline __ATTRS_o_ai __vector __bool long long
7970vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
7971 return (__vector __bool long long)__builtin_s390_vsl(
7972 (__vector unsigned char)__a, (__vector unsigned char)__b);
7973}
7974
7975static inline __ATTRS_o_ai __vector unsigned long long
7976vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
7977 return (__vector unsigned long long)__builtin_s390_vsl(
7978 (__vector unsigned char)__a, __b);
7979}
7980
7981// This prototype is deprecated.
7982static inline __ATTRS_o_ai __vector unsigned long long
7983vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
7984 return (__vector unsigned long long)__builtin_s390_vsl(
7985 (__vector unsigned char)__a, (__vector unsigned char)__b);
7986}
7987
7988// This prototype is deprecated.
7989static inline __ATTRS_o_ai __vector unsigned long long
7990vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
7991 return (__vector unsigned long long)__builtin_s390_vsl(
7992 (__vector unsigned char)__a, (__vector unsigned char)__b);
7993}
7994
7995static inline __ATTRS_o_ai __vector signed __int128
7996vec_sll(__vector signed __int128 __a, __vector unsigned char __b) {
7997 return (__vector signed __int128)__builtin_s390_vsl(
7998 (__vector unsigned char)__a, __b);
7999}
8000
8001static inline __ATTRS_o_ai __vector unsigned __int128
8002vec_sll(__vector unsigned __int128 __a, __vector unsigned char __b) {
8003 return (__vector unsigned __int128)__builtin_s390_vsl(
8004 (__vector unsigned char)__a, __b);
8005}
8006
8007/*-- vec_slb ----------------------------------------------------------------*/
8008
8009// This prototype is deprecated.
8010static inline __ATTRS_o_ai __vector signed char
8011vec_slb(__vector signed char __a, __vector signed char __b) {
8012 return (__vector signed char)__builtin_s390_vslb(
8013 (__vector unsigned char)__a, (__vector unsigned char)__b);
8014}
8015
8016static inline __ATTRS_o_ai __vector signed char
8017vec_slb(__vector signed char __a, __vector unsigned char __b) {
8018 return (__vector signed char)__builtin_s390_vslb(
8019 (__vector unsigned char)__a, __b);
8020}
8021
8022// This prototype is deprecated.
8023static inline __ATTRS_o_ai __vector unsigned char
8024vec_slb(__vector unsigned char __a, __vector signed char __b) {
8025 return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
8026}
8027
8028static inline __ATTRS_o_ai __vector unsigned char
8029vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
8030 return __builtin_s390_vslb(__a, __b);
8031}
8032
8033// This prototype is deprecated.
8034static inline __ATTRS_o_ai __vector signed short
8035vec_slb(__vector signed short __a, __vector signed short __b) {
8036 return (__vector signed short)__builtin_s390_vslb(
8037 (__vector unsigned char)__a, (__vector unsigned char)__b);
8038}
8039
8040// This prototype is deprecated.
8041static inline __ATTRS_o_ai __vector signed short
8042vec_slb(__vector signed short __a, __vector unsigned short __b) {
8043 return (__vector signed short)__builtin_s390_vslb(
8044 (__vector unsigned char)__a, (__vector unsigned char)__b);
8045}
8046
8047static inline __ATTRS_o_ai __vector signed short
8048vec_slb(__vector signed short __a, __vector unsigned char __b) {
8049 return (__vector signed short)__builtin_s390_vslb(
8050 (__vector unsigned char)__a, __b);
8051}
8052
8053// This prototype is deprecated.
8054static inline __ATTRS_o_ai __vector unsigned short
8055vec_slb(__vector unsigned short __a, __vector signed short __b) {
8056 return (__vector unsigned short)__builtin_s390_vslb(
8057 (__vector unsigned char)__a, (__vector unsigned char)__b);
8058}
8059
8060// This prototype is deprecated.
8061static inline __ATTRS_o_ai __vector unsigned short
8062vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
8063 return (__vector unsigned short)__builtin_s390_vslb(
8064 (__vector unsigned char)__a, (__vector unsigned char)__b);
8065}
8066
8067static inline __ATTRS_o_ai __vector unsigned short
8068vec_slb(__vector unsigned short __a, __vector unsigned char __b) {
8069 return (__vector unsigned short)__builtin_s390_vslb(
8070 (__vector unsigned char)__a, __b);
8071}
8072
8073// This prototype is deprecated.
8074static inline __ATTRS_o_ai __vector signed int
8075vec_slb(__vector signed int __a, __vector signed int __b) {
8076 return (__vector signed int)__builtin_s390_vslb(
8077 (__vector unsigned char)__a, (__vector unsigned char)__b);
8078}
8079
8080// This prototype is deprecated.
8081static inline __ATTRS_o_ai __vector signed int
8082vec_slb(__vector signed int __a, __vector unsigned int __b) {
8083 return (__vector signed int)__builtin_s390_vslb(
8084 (__vector unsigned char)__a, (__vector unsigned char)__b);
8085}
8086
8087static inline __ATTRS_o_ai __vector signed int
8088vec_slb(__vector signed int __a, __vector unsigned char __b) {
8089 return (__vector signed int)__builtin_s390_vslb(
8090 (__vector unsigned char)__a, __b);
8091}
8092
8093// This prototype is deprecated.
8094static inline __ATTRS_o_ai __vector unsigned int
8095vec_slb(__vector unsigned int __a, __vector signed int __b) {
8096 return (__vector unsigned int)__builtin_s390_vslb(
8097 (__vector unsigned char)__a, (__vector unsigned char)__b);
8098}
8099
8100// This prototype is deprecated.
8101static inline __ATTRS_o_ai __vector unsigned int
8102vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
8103 return (__vector unsigned int)__builtin_s390_vslb(
8104 (__vector unsigned char)__a, (__vector unsigned char)__b);
8105}
8106
8107static inline __ATTRS_o_ai __vector unsigned int
8108vec_slb(__vector unsigned int __a, __vector unsigned char __b) {
8109 return (__vector unsigned int)__builtin_s390_vslb(
8110 (__vector unsigned char)__a, __b);
8111}
8112
8113// This prototype is deprecated.
8114static inline __ATTRS_o_ai __vector signed long long
8115vec_slb(__vector signed long long __a, __vector signed long long __b) {
8116 return (__vector signed long long)__builtin_s390_vslb(
8117 (__vector unsigned char)__a, (__vector unsigned char)__b);
8118}
8119
8120// This prototype is deprecated.
8121static inline __ATTRS_o_ai __vector signed long long
8122vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
8123 return (__vector signed long long)__builtin_s390_vslb(
8124 (__vector unsigned char)__a, (__vector unsigned char)__b);
8125}
8126
8127static inline __ATTRS_o_ai __vector signed long long
8128vec_slb(__vector signed long long __a, __vector unsigned char __b) {
8129 return (__vector signed long long)__builtin_s390_vslb(
8130 (__vector unsigned char)__a, __b);
8131}
8132
8133// This prototype is deprecated.
8134static inline __ATTRS_o_ai __vector unsigned long long
8135vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
8136 return (__vector unsigned long long)__builtin_s390_vslb(
8137 (__vector unsigned char)__a, (__vector unsigned char)__b);
8138}
8139
8140// This prototype is deprecated.
8141static inline __ATTRS_o_ai __vector unsigned long long
8142vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
8143 return (__vector unsigned long long)__builtin_s390_vslb(
8144 (__vector unsigned char)__a, (__vector unsigned char)__b);
8145}
8146
8147static inline __ATTRS_o_ai __vector unsigned long long
8148vec_slb(__vector unsigned long long __a, __vector unsigned char __b) {
8149 return (__vector unsigned long long)__builtin_s390_vslb(
8150 (__vector unsigned char)__a, __b);
8151}
8152
8153static inline __ATTRS_o_ai __vector signed __int128
8154vec_slb(__vector signed __int128 __a, __vector unsigned char __b) {
8155 return (__vector signed __int128)__builtin_s390_vslb(
8156 (__vector unsigned char)__a, __b);
8157}
8158
8159static inline __ATTRS_o_ai __vector unsigned __int128
8160vec_slb(__vector unsigned __int128 __a, __vector unsigned char __b) {
8161 return (__vector unsigned __int128)__builtin_s390_vslb(
8162 (__vector unsigned char)__a, __b);
8163}
8164
8165#if __ARCH__ >= 12
8166// This prototype is deprecated.
8167static inline __ATTRS_o_ai __vector float
8168vec_slb(__vector float __a, __vector signed int __b) {
8169 return (__vector float)__builtin_s390_vslb(
8170 (__vector unsigned char)__a, (__vector unsigned char)__b);
8171}
8172
8173// This prototype is deprecated.
8174static inline __ATTRS_o_ai __vector float
8175vec_slb(__vector float __a, __vector unsigned int __b) {
8176 return (__vector float)__builtin_s390_vslb(
8177 (__vector unsigned char)__a, (__vector unsigned char)__b);
8178}
8179
8180static inline __ATTRS_o_ai __vector float
8181vec_slb(__vector float __a, __vector unsigned char __b) {
8182 return (__vector float)__builtin_s390_vslb(
8183 (__vector unsigned char)__a, __b);
8184}
8185#endif
8186
8187// This prototype is deprecated.
8188static inline __ATTRS_o_ai __vector double
8189vec_slb(__vector double __a, __vector signed long long __b) {
8190 return (__vector double)__builtin_s390_vslb(
8191 (__vector unsigned char)__a, (__vector unsigned char)__b);
8192}
8193
8194// This prototype is deprecated.
8195static inline __ATTRS_o_ai __vector double
8196vec_slb(__vector double __a, __vector unsigned long long __b) {
8197 return (__vector double)__builtin_s390_vslb(
8198 (__vector unsigned char)__a, (__vector unsigned char)__b);
8199}
8200
8201static inline __ATTRS_o_ai __vector double
8202vec_slb(__vector double __a, __vector unsigned char __b) {
8203 return (__vector double)__builtin_s390_vslb(
8204 (__vector unsigned char)__a, __b);
8205}
8206
8207/*-- vec_sld ----------------------------------------------------------------*/
8208
8209extern __ATTRS_o __vector signed char
8210vec_sld(__vector signed char __a, __vector signed char __b, int __c)
8211 __constant_range(__c, 0, 15);
8212
8213// This prototype is deprecated.
8214extern __ATTRS_o __vector __bool char
8215vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
8216 __constant_range(__c, 0, 15);
8217
8218extern __ATTRS_o __vector unsigned char
8219vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
8220 __constant_range(__c, 0, 15);
8221
8222extern __ATTRS_o __vector signed short
8223vec_sld(__vector signed short __a, __vector signed short __b, int __c)
8224 __constant_range(__c, 0, 15);
8225
8226// This prototype is deprecated.
8227extern __ATTRS_o __vector __bool short
8228vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
8229 __constant_range(__c, 0, 15);
8230
8231extern __ATTRS_o __vector unsigned short
8232vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
8233 __constant_range(__c, 0, 15);
8234
8235extern __ATTRS_o __vector signed int
8236vec_sld(__vector signed int __a, __vector signed int __b, int __c)
8237 __constant_range(__c, 0, 15);
8238
8239// This prototype is deprecated.
8240extern __ATTRS_o __vector __bool int
8241vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
8242 __constant_range(__c, 0, 15);
8243
8244extern __ATTRS_o __vector unsigned int
8245vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
8246 __constant_range(__c, 0, 15);
8247
8248extern __ATTRS_o __vector signed long long
8249vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
8250 __constant_range(__c, 0, 15);
8251
8252// This prototype is deprecated.
8253extern __ATTRS_o __vector __bool long long
8254vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
8255 __constant_range(__c, 0, 15);
8256
8257extern __ATTRS_o __vector unsigned long long
8258vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
8259 int __c)
8260 __constant_range(__c, 0, 15);
8261
8262extern __ATTRS_o __vector signed __int128
8263vec_sld(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8264 __constant_range(__c, 0, 15);
8265
8266extern __ATTRS_o __vector unsigned __int128
8267vec_sld(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8268 int __c)
8269 __constant_range(__c, 0, 15);
8270
8271#if __ARCH__ >= 12
8272extern __ATTRS_o __vector float
8273vec_sld(__vector float __a, __vector float __b, int __c)
8274 __constant_range(__c, 0, 15);
8275#endif
8276
8277extern __ATTRS_o __vector double
8278vec_sld(__vector double __a, __vector double __b, int __c)
8279 __constant_range(__c, 0, 15);
8280
8281#define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
8282 __builtin_s390_vsldb((__vector unsigned char)(X), \
8283 (__vector unsigned char)(Y), (Z)))
8284
8285/*-- vec_sldw ---------------------------------------------------------------*/
8286
8287extern __ATTRS_o __vector signed char
8288vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
8289 __constant_range(__c, 0, 3);
8290
8291extern __ATTRS_o __vector unsigned char
8292vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
8293 __constant_range(__c, 0, 3);
8294
8295extern __ATTRS_o __vector signed short
8296vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
8297 __constant_range(__c, 0, 3);
8298
8299extern __ATTRS_o __vector unsigned short
8300vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
8301 __constant_range(__c, 0, 3);
8302
8303extern __ATTRS_o __vector signed int
8304vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
8305 __constant_range(__c, 0, 3);
8306
8307extern __ATTRS_o __vector unsigned int
8308vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
8309 __constant_range(__c, 0, 3);
8310
8311extern __ATTRS_o __vector signed long long
8312vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
8313 __constant_range(__c, 0, 3);
8314
8315extern __ATTRS_o __vector unsigned long long
8316vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
8317 int __c)
8318 __constant_range(__c, 0, 3);
8319
8320extern __ATTRS_o __vector signed __int128
8321vec_sldw(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8322 __constant_range(__c, 0, 3);
8323
8324extern __ATTRS_o __vector unsigned __int128
8325vec_sldw(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8326 int __c)
8327 __constant_range(__c, 0, 3);
8328
8329// This prototype is deprecated.
8330extern __ATTRS_o __vector double
8331vec_sldw(__vector double __a, __vector double __b, int __c)
8332 __constant_range(__c, 0, 3);
8333
8334#define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
8335 __builtin_s390_vsldb((__vector unsigned char)(X), \
8336 (__vector unsigned char)(Y), (Z) * 4))
8337
8338/*-- vec_sldb ---------------------------------------------------------------*/
8339
8340#if __ARCH__ >= 13
8341
8342extern __ATTRS_o __vector signed char
8343vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
8344 __constant_range(__c, 0, 7);
8345
8346extern __ATTRS_o __vector unsigned char
8347vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
8348 __constant_range(__c, 0, 7);
8349
8350extern __ATTRS_o __vector signed short
8351vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
8352 __constant_range(__c, 0, 7);
8353
8354extern __ATTRS_o __vector unsigned short
8355vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
8356 __constant_range(__c, 0, 7);
8357
8358extern __ATTRS_o __vector signed int
8359vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
8360 __constant_range(__c, 0, 7);
8361
8362extern __ATTRS_o __vector unsigned int
8363vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
8364 __constant_range(__c, 0, 7);
8365
8366extern __ATTRS_o __vector signed long long
8367vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
8368 __constant_range(__c, 0, 7);
8369
8370extern __ATTRS_o __vector unsigned long long
8371vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
8372 int __c)
8373 __constant_range(__c, 0, 7);
8374
8375extern __ATTRS_o __vector signed __int128
8376vec_sldb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8377 __constant_range(__c, 0, 7);
8378
8379extern __ATTRS_o __vector unsigned __int128
8380vec_sldb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8381 int __c)
8382 __constant_range(__c, 0, 7);
8383
8384extern __ATTRS_o __vector float
8385vec_sldb(__vector float __a, __vector float __b, int __c)
8386 __constant_range(__c, 0, 7);
8387
8388extern __ATTRS_o __vector double
8389vec_sldb(__vector double __a, __vector double __b, int __c)
8390 __constant_range(__c, 0, 7);
8391
8392#define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
8393 __builtin_s390_vsld((__vector unsigned char)(X), \
8394 (__vector unsigned char)(Y), (Z)))
8395
8396#endif
8397
8398/*-- vec_sral ---------------------------------------------------------------*/
8399
8400static inline __ATTRS_o_ai __vector signed char
8401vec_sral(__vector signed char __a, __vector unsigned char __b) {
8402 return (__vector signed char)__builtin_s390_vsra(
8403 (__vector unsigned char)__a, __b);
8404}
8405
8406// This prototype is deprecated.
8407static inline __ATTRS_o_ai __vector signed char
8408vec_sral(__vector signed char __a, __vector unsigned short __b) {
8409 return (__vector signed char)__builtin_s390_vsra(
8410 (__vector unsigned char)__a, (__vector unsigned char)__b);
8411}
8412
8413// This prototype is deprecated.
8414static inline __ATTRS_o_ai __vector signed char
8415vec_sral(__vector signed char __a, __vector unsigned int __b) {
8416 return (__vector signed char)__builtin_s390_vsra(
8417 (__vector unsigned char)__a, (__vector unsigned char)__b);
8418}
8419
8420// This prototype is deprecated.
8421static inline __ATTRS_o_ai __vector __bool char
8422vec_sral(__vector __bool char __a, __vector unsigned char __b) {
8423 return (__vector __bool char)__builtin_s390_vsra(
8424 (__vector unsigned char)__a, __b);
8425}
8426
8427// This prototype is deprecated.
8428static inline __ATTRS_o_ai __vector __bool char
8429vec_sral(__vector __bool char __a, __vector unsigned short __b) {
8430 return (__vector __bool char)__builtin_s390_vsra(
8431 (__vector unsigned char)__a, (__vector unsigned char)__b);
8432}
8433
8434// This prototype is deprecated.
8435static inline __ATTRS_o_ai __vector __bool char
8436vec_sral(__vector __bool char __a, __vector unsigned int __b) {
8437 return (__vector __bool char)__builtin_s390_vsra(
8438 (__vector unsigned char)__a, (__vector unsigned char)__b);
8439}
8440
8441static inline __ATTRS_o_ai __vector unsigned char
8442vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
8443 return __builtin_s390_vsra(__a, __b);
8444}
8445
8446// This prototype is deprecated.
8447static inline __ATTRS_o_ai __vector unsigned char
8448vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
8449 return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
8450}
8451
8452// This prototype is deprecated.
8453static inline __ATTRS_o_ai __vector unsigned char
8454vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
8455 return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
8456}
8457
8458static inline __ATTRS_o_ai __vector signed short
8459vec_sral(__vector signed short __a, __vector unsigned char __b) {
8460 return (__vector signed short)__builtin_s390_vsra(
8461 (__vector unsigned char)__a, __b);
8462}
8463
8464// This prototype is deprecated.
8465static inline __ATTRS_o_ai __vector signed short
8466vec_sral(__vector signed short __a, __vector unsigned short __b) {
8467 return (__vector signed short)__builtin_s390_vsra(
8468 (__vector unsigned char)__a, (__vector unsigned char)__b);
8469}
8470
8471// This prototype is deprecated.
8472static inline __ATTRS_o_ai __vector signed short
8473vec_sral(__vector signed short __a, __vector unsigned int __b) {
8474 return (__vector signed short)__builtin_s390_vsra(
8475 (__vector unsigned char)__a, (__vector unsigned char)__b);
8476}
8477
8478// This prototype is deprecated.
8479static inline __ATTRS_o_ai __vector __bool short
8480vec_sral(__vector __bool short __a, __vector unsigned char __b) {
8481 return (__vector __bool short)__builtin_s390_vsra(
8482 (__vector unsigned char)__a, __b);
8483}
8484
8485// This prototype is deprecated.
8486static inline __ATTRS_o_ai __vector __bool short
8487vec_sral(__vector __bool short __a, __vector unsigned short __b) {
8488 return (__vector __bool short)__builtin_s390_vsra(
8489 (__vector unsigned char)__a, (__vector unsigned char)__b);
8490}
8491
8492// This prototype is deprecated.
8493static inline __ATTRS_o_ai __vector __bool short
8494vec_sral(__vector __bool short __a, __vector unsigned int __b) {
8495 return (__vector __bool short)__builtin_s390_vsra(
8496 (__vector unsigned char)__a, (__vector unsigned char)__b);
8497}
8498
8499static inline __ATTRS_o_ai __vector unsigned short
8500vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
8501 return (__vector unsigned short)__builtin_s390_vsra(
8502 (__vector unsigned char)__a, __b);
8503}
8504
8505// This prototype is deprecated.
8506static inline __ATTRS_o_ai __vector unsigned short
8507vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
8508 return (__vector unsigned short)__builtin_s390_vsra(
8509 (__vector unsigned char)__a, (__vector unsigned char)__b);
8510}
8511
8512// This prototype is deprecated.
8513static inline __ATTRS_o_ai __vector unsigned short
8514vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
8515 return (__vector unsigned short)__builtin_s390_vsra(
8516 (__vector unsigned char)__a, (__vector unsigned char)__b);
8517}
8518
8519static inline __ATTRS_o_ai __vector signed int
8520vec_sral(__vector signed int __a, __vector unsigned char __b) {
8521 return (__vector signed int)__builtin_s390_vsra(
8522 (__vector unsigned char)__a, __b);
8523}
8524
8525// This prototype is deprecated.
8526static inline __ATTRS_o_ai __vector signed int
8527vec_sral(__vector signed int __a, __vector unsigned short __b) {
8528 return (__vector signed int)__builtin_s390_vsra(
8529 (__vector unsigned char)__a, (__vector unsigned char)__b);
8530}
8531
8532// This prototype is deprecated.
8533static inline __ATTRS_o_ai __vector signed int
8534vec_sral(__vector signed int __a, __vector unsigned int __b) {
8535 return (__vector signed int)__builtin_s390_vsra(
8536 (__vector unsigned char)__a, (__vector unsigned char)__b);
8537}
8538
8539// This prototype is deprecated.
8540static inline __ATTRS_o_ai __vector __bool int
8541vec_sral(__vector __bool int __a, __vector unsigned char __b) {
8542 return (__vector __bool int)__builtin_s390_vsra(
8543 (__vector unsigned char)__a, __b);
8544}
8545
8546// This prototype is deprecated.
8547static inline __ATTRS_o_ai __vector __bool int
8548vec_sral(__vector __bool int __a, __vector unsigned short __b) {
8549 return (__vector __bool int)__builtin_s390_vsra(
8550 (__vector unsigned char)__a, (__vector unsigned char)__b);
8551}
8552
8553// This prototype is deprecated.
8554static inline __ATTRS_o_ai __vector __bool int
8555vec_sral(__vector __bool int __a, __vector unsigned int __b) {
8556 return (__vector __bool int)__builtin_s390_vsra(
8557 (__vector unsigned char)__a, (__vector unsigned char)__b);
8558}
8559
8560static inline __ATTRS_o_ai __vector unsigned int
8561vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
8562 return (__vector unsigned int)__builtin_s390_vsra(
8563 (__vector unsigned char)__a, __b);
8564}
8565
8566// This prototype is deprecated.
8567static inline __ATTRS_o_ai __vector unsigned int
8568vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
8569 return (__vector unsigned int)__builtin_s390_vsra(
8570 (__vector unsigned char)__a, (__vector unsigned char)__b);
8571}
8572
8573// This prototype is deprecated.
8574static inline __ATTRS_o_ai __vector unsigned int
8575vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
8576 return (__vector unsigned int)__builtin_s390_vsra(
8577 (__vector unsigned char)__a, (__vector unsigned char)__b);
8578}
8579
8580static inline __ATTRS_o_ai __vector signed long long
8581vec_sral(__vector signed long long __a, __vector unsigned char __b) {
8582 return (__vector signed long long)__builtin_s390_vsra(
8583 (__vector unsigned char)__a, __b);
8584}
8585
8586// This prototype is deprecated.
8587static inline __ATTRS_o_ai __vector signed long long
8588vec_sral(__vector signed long long __a, __vector unsigned short __b) {
8589 return (__vector signed long long)__builtin_s390_vsra(
8590 (__vector unsigned char)__a, (__vector unsigned char)__b);
8591}
8592
8593// This prototype is deprecated.
8594static inline __ATTRS_o_ai __vector signed long long
8595vec_sral(__vector signed long long __a, __vector unsigned int __b) {
8596 return (__vector signed long long)__builtin_s390_vsra(
8597 (__vector unsigned char)__a, (__vector unsigned char)__b);
8598}
8599
8600// This prototype is deprecated.
8601static inline __ATTRS_o_ai __vector __bool long long
8602vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
8603 return (__vector __bool long long)__builtin_s390_vsra(
8604 (__vector unsigned char)__a, __b);
8605}
8606
8607// This prototype is deprecated.
8608static inline __ATTRS_o_ai __vector __bool long long
8609vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
8610 return (__vector __bool long long)__builtin_s390_vsra(
8611 (__vector unsigned char)__a, (__vector unsigned char)__b);
8612}
8613
8614// This prototype is deprecated.
8615static inline __ATTRS_o_ai __vector __bool long long
8616vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
8617 return (__vector __bool long long)__builtin_s390_vsra(
8618 (__vector unsigned char)__a, (__vector unsigned char)__b);
8619}
8620
8621static inline __ATTRS_o_ai __vector unsigned long long
8622vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
8623 return (__vector unsigned long long)__builtin_s390_vsra(
8624 (__vector unsigned char)__a, __b);
8625}
8626
8627// This prototype is deprecated.
8628static inline __ATTRS_o_ai __vector unsigned long long
8629vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
8630 return (__vector unsigned long long)__builtin_s390_vsra(
8631 (__vector unsigned char)__a, (__vector unsigned char)__b);
8632}
8633
8634// This prototype is deprecated.
8635static inline __ATTRS_o_ai __vector unsigned long long
8636vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
8637 return (__vector unsigned long long)__builtin_s390_vsra(
8638 (__vector unsigned char)__a, (__vector unsigned char)__b);
8639}
8640
8641static inline __ATTRS_o_ai __vector signed __int128
8642vec_sral(__vector signed __int128 __a, __vector unsigned char __b) {
8643 return (__vector signed __int128)__builtin_s390_vsra(
8644 (__vector unsigned char)__a, __b);
8645}
8646
8647static inline __ATTRS_o_ai __vector unsigned __int128
8648vec_sral(__vector unsigned __int128 __a, __vector unsigned char __b) {
8649 return (__vector unsigned __int128)__builtin_s390_vsra(
8650 (__vector unsigned char)__a, __b);
8651}
8652
8653/*-- vec_srab ---------------------------------------------------------------*/
8654
8655// This prototype is deprecated.
8656static inline __ATTRS_o_ai __vector signed char
8657vec_srab(__vector signed char __a, __vector signed char __b) {
8658 return (__vector signed char)__builtin_s390_vsrab(
8659 (__vector unsigned char)__a, (__vector unsigned char)__b);
8660}
8661
8662static inline __ATTRS_o_ai __vector signed char
8663vec_srab(__vector signed char __a, __vector unsigned char __b) {
8664 return (__vector signed char)__builtin_s390_vsrab(
8665 (__vector unsigned char)__a, __b);
8666}
8667
8668// This prototype is deprecated.
8669static inline __ATTRS_o_ai __vector unsigned char
8670vec_srab(__vector unsigned char __a, __vector signed char __b) {
8671 return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
8672}
8673
8674static inline __ATTRS_o_ai __vector unsigned char
8675vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
8676 return __builtin_s390_vsrab(__a, __b);
8677}
8678
8679// This prototype is deprecated.
8680static inline __ATTRS_o_ai __vector signed short
8681vec_srab(__vector signed short __a, __vector signed short __b) {
8682 return (__vector signed short)__builtin_s390_vsrab(
8683 (__vector unsigned char)__a, (__vector unsigned char)__b);
8684}
8685
8686// This prototype is deprecated.
8687static inline __ATTRS_o_ai __vector signed short
8688vec_srab(__vector signed short __a, __vector unsigned short __b) {
8689 return (__vector signed short)__builtin_s390_vsrab(
8690 (__vector unsigned char)__a, (__vector unsigned char)__b);
8691}
8692
8693static inline __ATTRS_o_ai __vector signed short
8694vec_srab(__vector signed short __a, __vector unsigned char __b) {
8695 return (__vector signed short)__builtin_s390_vsrab(
8696 (__vector unsigned char)__a, __b);
8697}
8698
8699// This prototype is deprecated.
8700static inline __ATTRS_o_ai __vector unsigned short
8701vec_srab(__vector unsigned short __a, __vector signed short __b) {
8702 return (__vector unsigned short)__builtin_s390_vsrab(
8703 (__vector unsigned char)__a, (__vector unsigned char)__b);
8704}
8705
8706// This prototype is deprecated.
8707static inline __ATTRS_o_ai __vector unsigned short
8708vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
8709 return (__vector unsigned short)__builtin_s390_vsrab(
8710 (__vector unsigned char)__a, (__vector unsigned char)__b);
8711}
8712
8713static inline __ATTRS_o_ai __vector unsigned short
8714vec_srab(__vector unsigned short __a, __vector unsigned char __b) {
8715 return (__vector unsigned short)__builtin_s390_vsrab(
8716 (__vector unsigned char)__a, __b);
8717}
8718
8719// This prototype is deprecated.
8720static inline __ATTRS_o_ai __vector signed int
8721vec_srab(__vector signed int __a, __vector signed int __b) {
8722 return (__vector signed int)__builtin_s390_vsrab(
8723 (__vector unsigned char)__a, (__vector unsigned char)__b);
8724}
8725
8726// This prototype is deprecated.
8727static inline __ATTRS_o_ai __vector signed int
8728vec_srab(__vector signed int __a, __vector unsigned int __b) {
8729 return (__vector signed int)__builtin_s390_vsrab(
8730 (__vector unsigned char)__a, (__vector unsigned char)__b);
8731}
8732
8733static inline __ATTRS_o_ai __vector signed int
8734vec_srab(__vector signed int __a, __vector unsigned char __b) {
8735 return (__vector signed int)__builtin_s390_vsrab(
8736 (__vector unsigned char)__a, __b);
8737}
8738
8739// This prototype is deprecated.
8740static inline __ATTRS_o_ai __vector unsigned int
8741vec_srab(__vector unsigned int __a, __vector signed int __b) {
8742 return (__vector unsigned int)__builtin_s390_vsrab(
8743 (__vector unsigned char)__a, (__vector unsigned char)__b);
8744}
8745
8746// This prototype is deprecated.
8747static inline __ATTRS_o_ai __vector unsigned int
8748vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
8749 return (__vector unsigned int)__builtin_s390_vsrab(
8750 (__vector unsigned char)__a, (__vector unsigned char)__b);
8751}
8752
8753static inline __ATTRS_o_ai __vector unsigned int
8754vec_srab(__vector unsigned int __a, __vector unsigned char __b) {
8755 return (__vector unsigned int)__builtin_s390_vsrab(
8756 (__vector unsigned char)__a, __b);
8757}
8758
8759// This prototype is deprecated.
8760static inline __ATTRS_o_ai __vector signed long long
8761vec_srab(__vector signed long long __a, __vector signed long long __b) {
8762 return (__vector signed long long)__builtin_s390_vsrab(
8763 (__vector unsigned char)__a, (__vector unsigned char)__b);
8764}
8765
8766// This prototype is deprecated.
8767static inline __ATTRS_o_ai __vector signed long long
8768vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
8769 return (__vector signed long long)__builtin_s390_vsrab(
8770 (__vector unsigned char)__a, (__vector unsigned char)__b);
8771}
8772
8773static inline __ATTRS_o_ai __vector signed long long
8774vec_srab(__vector signed long long __a, __vector unsigned char __b) {
8775 return (__vector signed long long)__builtin_s390_vsrab(
8776 (__vector unsigned char)__a, __b);
8777}
8778
8779// This prototype is deprecated.
8780static inline __ATTRS_o_ai __vector unsigned long long
8781vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
8782 return (__vector unsigned long long)__builtin_s390_vsrab(
8783 (__vector unsigned char)__a, (__vector unsigned char)__b);
8784}
8785
8786// This prototype is deprecated.
8787static inline __ATTRS_o_ai __vector unsigned long long
8788vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
8789 return (__vector unsigned long long)__builtin_s390_vsrab(
8790 (__vector unsigned char)__a, (__vector unsigned char)__b);
8791}
8792
8793static inline __ATTRS_o_ai __vector unsigned long long
8794vec_srab(__vector unsigned long long __a, __vector unsigned char __b) {
8795 return (__vector unsigned long long)__builtin_s390_vsrab(
8796 (__vector unsigned char)__a, __b);
8797}
8798
8799static inline __ATTRS_o_ai __vector signed __int128
8800vec_srab(__vector signed __int128 __a, __vector unsigned char __b) {
8801 return (__vector signed __int128)__builtin_s390_vsrab(
8802 (__vector unsigned char)__a, __b);
8803}
8804
8805static inline __ATTRS_o_ai __vector unsigned __int128
8806vec_srab(__vector unsigned __int128 __a, __vector unsigned char __b) {
8807 return (__vector unsigned __int128)__builtin_s390_vsrab(
8808 (__vector unsigned char)__a, __b);
8809}
8810
8811#if __ARCH__ >= 12
8812// This prototype is deprecated.
8813static inline __ATTRS_o_ai __vector float
8814vec_srab(__vector float __a, __vector signed int __b) {
8815 return (__vector float)__builtin_s390_vsrab(
8816 (__vector unsigned char)__a, (__vector unsigned char)__b);
8817}
8818
8819// This prototype is deprecated.
8820static inline __ATTRS_o_ai __vector float
8821vec_srab(__vector float __a, __vector unsigned int __b) {
8822 return (__vector float)__builtin_s390_vsrab(
8823 (__vector unsigned char)__a, (__vector unsigned char)__b);
8824}
8825
8826static inline __ATTRS_o_ai __vector float
8827vec_srab(__vector float __a, __vector unsigned char __b) {
8828 return (__vector float)__builtin_s390_vsrab(
8829 (__vector unsigned char)__a, __b);
8830}
8831#endif
8832
8833// This prototype is deprecated.
8834static inline __ATTRS_o_ai __vector double
8835vec_srab(__vector double __a, __vector signed long long __b) {
8836 return (__vector double)__builtin_s390_vsrab(
8837 (__vector unsigned char)__a, (__vector unsigned char)__b);
8838}
8839
8840// This prototype is deprecated.
8841static inline __ATTRS_o_ai __vector double
8842vec_srab(__vector double __a, __vector unsigned long long __b) {
8843 return (__vector double)__builtin_s390_vsrab(
8844 (__vector unsigned char)__a, (__vector unsigned char)__b);
8845}
8846
8847static inline __ATTRS_o_ai __vector double
8848vec_srab(__vector double __a, __vector unsigned char __b) {
8849 return (__vector double)__builtin_s390_vsrab(
8850 (__vector unsigned char)__a, __b);
8851}
8852
8853/*-- vec_srl ----------------------------------------------------------------*/
8854
8855static inline __ATTRS_o_ai __vector signed char
8856vec_srl(__vector signed char __a, __vector unsigned char __b) {
8857 return (__vector signed char)__builtin_s390_vsrl(
8858 (__vector unsigned char)__a, __b);
8859}
8860
8861// This prototype is deprecated.
8862static inline __ATTRS_o_ai __vector signed char
8863vec_srl(__vector signed char __a, __vector unsigned short __b) {
8864 return (__vector signed char)__builtin_s390_vsrl(
8865 (__vector unsigned char)__a, (__vector unsigned char)__b);
8866}
8867
8868// This prototype is deprecated.
8869static inline __ATTRS_o_ai __vector signed char
8870vec_srl(__vector signed char __a, __vector unsigned int __b) {
8871 return (__vector signed char)__builtin_s390_vsrl(
8872 (__vector unsigned char)__a, (__vector unsigned char)__b);
8873}
8874
8875// This prototype is deprecated.
8876static inline __ATTRS_o_ai __vector __bool char
8877vec_srl(__vector __bool char __a, __vector unsigned char __b) {
8878 return (__vector __bool char)__builtin_s390_vsrl(
8879 (__vector unsigned char)__a, __b);
8880}
8881
8882// This prototype is deprecated.
8883static inline __ATTRS_o_ai __vector __bool char
8884vec_srl(__vector __bool char __a, __vector unsigned short __b) {
8885 return (__vector __bool char)__builtin_s390_vsrl(
8886 (__vector unsigned char)__a, (__vector unsigned char)__b);
8887}
8888
8889// This prototype is deprecated.
8890static inline __ATTRS_o_ai __vector __bool char
8891vec_srl(__vector __bool char __a, __vector unsigned int __b) {
8892 return (__vector __bool char)__builtin_s390_vsrl(
8893 (__vector unsigned char)__a, (__vector unsigned char)__b);
8894}
8895
8896static inline __ATTRS_o_ai __vector unsigned char
8897vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
8898 return __builtin_s390_vsrl(__a, __b);
8899}
8900
8901// This prototype is deprecated.
8902static inline __ATTRS_o_ai __vector unsigned char
8903vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
8904 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
8905}
8906
8907// This prototype is deprecated.
8908static inline __ATTRS_o_ai __vector unsigned char
8909vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
8910 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
8911}
8912
8913static inline __ATTRS_o_ai __vector signed short
8914vec_srl(__vector signed short __a, __vector unsigned char __b) {
8915 return (__vector signed short)__builtin_s390_vsrl(
8916 (__vector unsigned char)__a, __b);
8917}
8918
8919// This prototype is deprecated.
8920static inline __ATTRS_o_ai __vector signed short
8921vec_srl(__vector signed short __a, __vector unsigned short __b) {
8922 return (__vector signed short)__builtin_s390_vsrl(
8923 (__vector unsigned char)__a, (__vector unsigned char)__b);
8924}
8925
8926// This prototype is deprecated.
8927static inline __ATTRS_o_ai __vector signed short
8928vec_srl(__vector signed short __a, __vector unsigned int __b) {
8929 return (__vector signed short)__builtin_s390_vsrl(
8930 (__vector unsigned char)__a, (__vector unsigned char)__b);
8931}
8932
8933// This prototype is deprecated.
8934static inline __ATTRS_o_ai __vector __bool short
8935vec_srl(__vector __bool short __a, __vector unsigned char __b) {
8936 return (__vector __bool short)__builtin_s390_vsrl(
8937 (__vector unsigned char)__a, __b);
8938}
8939
8940// This prototype is deprecated.
8941static inline __ATTRS_o_ai __vector __bool short
8942vec_srl(__vector __bool short __a, __vector unsigned short __b) {
8943 return (__vector __bool short)__builtin_s390_vsrl(
8944 (__vector unsigned char)__a, (__vector unsigned char)__b);
8945}
8946
8947// This prototype is deprecated.
8948static inline __ATTRS_o_ai __vector __bool short
8949vec_srl(__vector __bool short __a, __vector unsigned int __b) {
8950 return (__vector __bool short)__builtin_s390_vsrl(
8951 (__vector unsigned char)__a, (__vector unsigned char)__b);
8952}
8953
8954static inline __ATTRS_o_ai __vector unsigned short
8955vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
8956 return (__vector unsigned short)__builtin_s390_vsrl(
8957 (__vector unsigned char)__a, __b);
8958}
8959
8960// This prototype is deprecated.
8961static inline __ATTRS_o_ai __vector unsigned short
8962vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
8963 return (__vector unsigned short)__builtin_s390_vsrl(
8964 (__vector unsigned char)__a, (__vector unsigned char)__b);
8965}
8966
8967// This prototype is deprecated.
8968static inline __ATTRS_o_ai __vector unsigned short
8969vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
8970 return (__vector unsigned short)__builtin_s390_vsrl(
8971 (__vector unsigned char)__a, (__vector unsigned char)__b);
8972}
8973
8974static inline __ATTRS_o_ai __vector signed int
8975vec_srl(__vector signed int __a, __vector unsigned char __b) {
8976 return (__vector signed int)__builtin_s390_vsrl(
8977 (__vector unsigned char)__a, __b);
8978}
8979
8980// This prototype is deprecated.
8981static inline __ATTRS_o_ai __vector signed int
8982vec_srl(__vector signed int __a, __vector unsigned short __b) {
8983 return (__vector signed int)__builtin_s390_vsrl(
8984 (__vector unsigned char)__a, (__vector unsigned char)__b);
8985}
8986
8987// This prototype is deprecated.
8988static inline __ATTRS_o_ai __vector signed int
8989vec_srl(__vector signed int __a, __vector unsigned int __b) {
8990 return (__vector signed int)__builtin_s390_vsrl(
8991 (__vector unsigned char)__a, (__vector unsigned char)__b);
8992}
8993
8994// This prototype is deprecated.
8995static inline __ATTRS_o_ai __vector __bool int
8996vec_srl(__vector __bool int __a, __vector unsigned char __b) {
8997 return (__vector __bool int)__builtin_s390_vsrl(
8998 (__vector unsigned char)__a, __b);
8999}
9000
9001// This prototype is deprecated.
9002static inline __ATTRS_o_ai __vector __bool int
9003vec_srl(__vector __bool int __a, __vector unsigned short __b) {
9004 return (__vector __bool int)__builtin_s390_vsrl(
9005 (__vector unsigned char)__a, (__vector unsigned char)__b);
9006}
9007
9008// This prototype is deprecated.
9009static inline __ATTRS_o_ai __vector __bool int
9010vec_srl(__vector __bool int __a, __vector unsigned int __b) {
9011 return (__vector __bool int)__builtin_s390_vsrl(
9012 (__vector unsigned char)__a, (__vector unsigned char)__b);
9013}
9014
9015static inline __ATTRS_o_ai __vector unsigned int
9016vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
9017 return (__vector unsigned int)__builtin_s390_vsrl(
9018 (__vector unsigned char)__a, __b);
9019}
9020
9021// This prototype is deprecated.
9022static inline __ATTRS_o_ai __vector unsigned int
9023vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
9024 return (__vector unsigned int)__builtin_s390_vsrl(
9025 (__vector unsigned char)__a, (__vector unsigned char)__b);
9026}
9027
9028// This prototype is deprecated.
9029static inline __ATTRS_o_ai __vector unsigned int
9030vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
9031 return (__vector unsigned int)__builtin_s390_vsrl(
9032 (__vector unsigned char)__a, (__vector unsigned char)__b);
9033}
9034
9035static inline __ATTRS_o_ai __vector signed long long
9036vec_srl(__vector signed long long __a, __vector unsigned char __b) {
9037 return (__vector signed long long)__builtin_s390_vsrl(
9038 (__vector unsigned char)__a, __b);
9039}
9040
9041// This prototype is deprecated.
9042static inline __ATTRS_o_ai __vector signed long long
9043vec_srl(__vector signed long long __a, __vector unsigned short __b) {
9044 return (__vector signed long long)__builtin_s390_vsrl(
9045 (__vector unsigned char)__a, (__vector unsigned char)__b);
9046}
9047
9048// This prototype is deprecated.
9049static inline __ATTRS_o_ai __vector signed long long
9050vec_srl(__vector signed long long __a, __vector unsigned int __b) {
9051 return (__vector signed long long)__builtin_s390_vsrl(
9052 (__vector unsigned char)__a, (__vector unsigned char)__b);
9053}
9054
9055// This prototype is deprecated.
9056static inline __ATTRS_o_ai __vector __bool long long
9057vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
9058 return (__vector __bool long long)__builtin_s390_vsrl(
9059 (__vector unsigned char)__a, __b);
9060}
9061
9062// This prototype is deprecated.
9063static inline __ATTRS_o_ai __vector __bool long long
9064vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
9065 return (__vector __bool long long)__builtin_s390_vsrl(
9066 (__vector unsigned char)__a, (__vector unsigned char)__b);
9067}
9068
9069// This prototype is deprecated.
9070static inline __ATTRS_o_ai __vector __bool long long
9071vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
9072 return (__vector __bool long long)__builtin_s390_vsrl(
9073 (__vector unsigned char)__a, (__vector unsigned char)__b);
9074}
9075
9076static inline __ATTRS_o_ai __vector unsigned long long
9077vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
9078 return (__vector unsigned long long)__builtin_s390_vsrl(
9079 (__vector unsigned char)__a, __b);
9080}
9081
9082// This prototype is deprecated.
9083static inline __ATTRS_o_ai __vector unsigned long long
9084vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
9085 return (__vector unsigned long long)__builtin_s390_vsrl(
9086 (__vector unsigned char)__a, (__vector unsigned char)__b);
9087}
9088
9089// This prototype is deprecated.
9090static inline __ATTRS_o_ai __vector unsigned long long
9091vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
9092 return (__vector unsigned long long)__builtin_s390_vsrl(
9093 (__vector unsigned char)__a, (__vector unsigned char)__b);
9094}
9095
9096static inline __ATTRS_o_ai __vector signed __int128
9097vec_srl(__vector signed __int128 __a, __vector unsigned char __b) {
9098 return (__vector signed __int128)__builtin_s390_vsrl(
9099 (__vector unsigned char)__a, __b);
9100}
9101
9102static inline __ATTRS_o_ai __vector unsigned __int128
9103vec_srl(__vector unsigned __int128 __a, __vector unsigned char __b) {
9104 return (__vector unsigned __int128)__builtin_s390_vsrl(
9105 (__vector unsigned char)__a, __b);
9106}
9107
9108/*-- vec_srb ----------------------------------------------------------------*/
9109
9110// This prototype is deprecated.
9111static inline __ATTRS_o_ai __vector signed char
9112vec_srb(__vector signed char __a, __vector signed char __b) {
9113 return (__vector signed char)__builtin_s390_vsrlb(
9114 (__vector unsigned char)__a, (__vector unsigned char)__b);
9115}
9116
9117static inline __ATTRS_o_ai __vector signed char
9118vec_srb(__vector signed char __a, __vector unsigned char __b) {
9119 return (__vector signed char)__builtin_s390_vsrlb(
9120 (__vector unsigned char)__a, __b);
9121}
9122
9123// This prototype is deprecated.
9124static inline __ATTRS_o_ai __vector unsigned char
9125vec_srb(__vector unsigned char __a, __vector signed char __b) {
9126 return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
9127}
9128
9129static inline __ATTRS_o_ai __vector unsigned char
9130vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
9131 return __builtin_s390_vsrlb(__a, __b);
9132}
9133
9134// This prototype is deprecated.
9135static inline __ATTRS_o_ai __vector signed short
9136vec_srb(__vector signed short __a, __vector signed short __b) {
9137 return (__vector signed short)__builtin_s390_vsrlb(
9138 (__vector unsigned char)__a, (__vector unsigned char)__b);
9139}
9140
9141// This prototype is deprecated.
9142static inline __ATTRS_o_ai __vector signed short
9143vec_srb(__vector signed short __a, __vector unsigned short __b) {
9144 return (__vector signed short)__builtin_s390_vsrlb(
9145 (__vector unsigned char)__a, (__vector unsigned char)__b);
9146}
9147
9148static inline __ATTRS_o_ai __vector signed short
9149vec_srb(__vector signed short __a, __vector unsigned char __b) {
9150 return (__vector signed short)__builtin_s390_vsrlb(
9151 (__vector unsigned char)__a, __b);
9152}
9153
9154// This prototype is deprecated.
9155static inline __ATTRS_o_ai __vector unsigned short
9156vec_srb(__vector unsigned short __a, __vector signed short __b) {
9157 return (__vector unsigned short)__builtin_s390_vsrlb(
9158 (__vector unsigned char)__a, (__vector unsigned char)__b);
9159}
9160
9161// This prototype is deprecated.
9162static inline __ATTRS_o_ai __vector unsigned short
9163vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
9164 return (__vector unsigned short)__builtin_s390_vsrlb(
9165 (__vector unsigned char)__a, (__vector unsigned char)__b);
9166}
9167
9168static inline __ATTRS_o_ai __vector unsigned short
9169vec_srb(__vector unsigned short __a, __vector unsigned char __b) {
9170 return (__vector unsigned short)__builtin_s390_vsrlb(
9171 (__vector unsigned char)__a, __b);
9172}
9173
9174// This prototype is deprecated.
9175static inline __ATTRS_o_ai __vector signed int
9176vec_srb(__vector signed int __a, __vector signed int __b) {
9177 return (__vector signed int)__builtin_s390_vsrlb(
9178 (__vector unsigned char)__a, (__vector unsigned char)__b);
9179}
9180
9181// This prototype is deprecated.
9182static inline __ATTRS_o_ai __vector signed int
9183vec_srb(__vector signed int __a, __vector unsigned int __b) {
9184 return (__vector signed int)__builtin_s390_vsrlb(
9185 (__vector unsigned char)__a, (__vector unsigned char)__b);
9186}
9187
9188static inline __ATTRS_o_ai __vector signed int
9189vec_srb(__vector signed int __a, __vector unsigned char __b) {
9190 return (__vector signed int)__builtin_s390_vsrlb(
9191 (__vector unsigned char)__a, __b);
9192}
9193
9194// This prototype is deprecated.
9195static inline __ATTRS_o_ai __vector unsigned int
9196vec_srb(__vector unsigned int __a, __vector signed int __b) {
9197 return (__vector unsigned int)__builtin_s390_vsrlb(
9198 (__vector unsigned char)__a, (__vector unsigned char)__b);
9199}
9200
9201// This prototype is deprecated.
9202static inline __ATTRS_o_ai __vector unsigned int
9203vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
9204 return (__vector unsigned int)__builtin_s390_vsrlb(
9205 (__vector unsigned char)__a, (__vector unsigned char)__b);
9206}
9207
9208static inline __ATTRS_o_ai __vector unsigned int
9209vec_srb(__vector unsigned int __a, __vector unsigned char __b) {
9210 return (__vector unsigned int)__builtin_s390_vsrlb(
9211 (__vector unsigned char)__a, __b);
9212}
9213
9214// This prototype is deprecated.
9215static inline __ATTRS_o_ai __vector signed long long
9216vec_srb(__vector signed long long __a, __vector signed long long __b) {
9217 return (__vector signed long long)__builtin_s390_vsrlb(
9218 (__vector unsigned char)__a, (__vector unsigned char)__b);
9219}
9220
9221// This prototype is deprecated.
9222static inline __ATTRS_o_ai __vector signed long long
9223vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
9224 return (__vector signed long long)__builtin_s390_vsrlb(
9225 (__vector unsigned char)__a, (__vector unsigned char)__b);
9226}
9227
9228static inline __ATTRS_o_ai __vector signed long long
9229vec_srb(__vector signed long long __a, __vector unsigned char __b) {
9230 return (__vector signed long long)__builtin_s390_vsrlb(
9231 (__vector unsigned char)__a, __b);
9232}
9233
9234// This prototype is deprecated.
9235static inline __ATTRS_o_ai __vector unsigned long long
9236vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
9237 return (__vector unsigned long long)__builtin_s390_vsrlb(
9238 (__vector unsigned char)__a, (__vector unsigned char)__b);
9239}
9240
9241// This prototype is deprecated.
9242static inline __ATTRS_o_ai __vector unsigned long long
9243vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
9244 return (__vector unsigned long long)__builtin_s390_vsrlb(
9245 (__vector unsigned char)__a, (__vector unsigned char)__b);
9246}
9247
9248static inline __ATTRS_o_ai __vector unsigned long long
9249vec_srb(__vector unsigned long long __a, __vector unsigned char __b) {
9250 return (__vector unsigned long long)__builtin_s390_vsrlb(
9251 (__vector unsigned char)__a, __b);
9252}
9253
9254static inline __ATTRS_o_ai __vector signed __int128
9255vec_srb(__vector signed __int128 __a, __vector unsigned char __b) {
9256 return (__vector signed __int128)__builtin_s390_vsrlb(
9257 (__vector unsigned char)__a, __b);
9258}
9259
9260static inline __ATTRS_o_ai __vector unsigned __int128
9261vec_srb(__vector unsigned __int128 __a, __vector unsigned char __b) {
9262 return (__vector unsigned __int128)__builtin_s390_vsrlb(
9263 (__vector unsigned char)__a, __b);
9264}
9265
9266#if __ARCH__ >= 12
9267// This prototype is deprecated.
9268static inline __ATTRS_o_ai __vector float
9269vec_srb(__vector float __a, __vector signed int __b) {
9270 return (__vector float)__builtin_s390_vsrlb(
9271 (__vector unsigned char)__a, (__vector unsigned char)__b);
9272}
9273
9274// This prototype is deprecated.
9275static inline __ATTRS_o_ai __vector float
9276vec_srb(__vector float __a, __vector unsigned int __b) {
9277 return (__vector float)__builtin_s390_vsrlb(
9278 (__vector unsigned char)__a, (__vector unsigned char)__b);
9279}
9280
9281static inline __ATTRS_o_ai __vector float
9282vec_srb(__vector float __a, __vector unsigned char __b) {
9283 return (__vector float)__builtin_s390_vsrlb(
9284 (__vector unsigned char)__a, __b);
9285}
9286#endif
9287
9288// This prototype is deprecated.
9289static inline __ATTRS_o_ai __vector double
9290vec_srb(__vector double __a, __vector signed long long __b) {
9291 return (__vector double)__builtin_s390_vsrlb(
9292 (__vector unsigned char)__a, (__vector unsigned char)__b);
9293}
9294
9295// This prototype is deprecated.
9296static inline __ATTRS_o_ai __vector double
9297vec_srb(__vector double __a, __vector unsigned long long __b) {
9298 return (__vector double)__builtin_s390_vsrlb(
9299 (__vector unsigned char)__a, (__vector unsigned char)__b);
9300}
9301
9302static inline __ATTRS_o_ai __vector double
9303vec_srb(__vector double __a, __vector unsigned char __b) {
9304 return (__vector double)__builtin_s390_vsrlb(
9305 (__vector unsigned char)__a, __b);
9306}
9307
9308/*-- vec_srdb ---------------------------------------------------------------*/
9309
9310#if __ARCH__ >= 13
9311
9312extern __ATTRS_o __vector signed char
9313vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
9314 __constant_range(__c, 0, 7);
9315
9316extern __ATTRS_o __vector unsigned char
9317vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
9318 __constant_range(__c, 0, 7);
9319
9320extern __ATTRS_o __vector signed short
9321vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
9322 __constant_range(__c, 0, 7);
9323
9324extern __ATTRS_o __vector unsigned short
9325vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
9326 __constant_range(__c, 0, 7);
9327
9328extern __ATTRS_o __vector signed int
9329vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
9330 __constant_range(__c, 0, 7);
9331
9332extern __ATTRS_o __vector unsigned int
9333vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
9334 __constant_range(__c, 0, 7);
9335
9336extern __ATTRS_o __vector signed long long
9337vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
9338 __constant_range(__c, 0, 7);
9339
9340extern __ATTRS_o __vector unsigned long long
9341vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
9342 int __c)
9343 __constant_range(__c, 0, 7);
9344
9345extern __ATTRS_o __vector signed __int128
9346vec_srdb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
9347 __constant_range(__c, 0, 7);
9348
9349extern __ATTRS_o __vector unsigned __int128
9350vec_srdb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9351 int __c)
9352 __constant_range(__c, 0, 7);
9353
9354extern __ATTRS_o __vector float
9355vec_srdb(__vector float __a, __vector float __b, int __c)
9356 __constant_range(__c, 0, 7);
9357
9358extern __ATTRS_o __vector double
9359vec_srdb(__vector double __a, __vector double __b, int __c)
9360 __constant_range(__c, 0, 7);
9361
9362#define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
9363 __builtin_s390_vsrd((__vector unsigned char)(X), \
9364 (__vector unsigned char)(Y), (Z)))
9365
9366#endif
9367
9368/*-- vec_abs ----------------------------------------------------------------*/
9369
9370static inline __ATTRS_o_ai __vector signed char
9371vec_abs(__vector signed char __a) {
9372 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
9373}
9374
9375static inline __ATTRS_o_ai __vector signed short
9376vec_abs(__vector signed short __a) {
9377 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
9378}
9379
9380static inline __ATTRS_o_ai __vector signed int
9381vec_abs(__vector signed int __a) {
9382 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
9383}
9384
9385static inline __ATTRS_o_ai __vector signed long long
9386vec_abs(__vector signed long long __a) {
9387 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
9388}
9389
9390static inline __ATTRS_o_ai __vector signed __int128
9391vec_abs(__vector signed __int128 __a) {
9392 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed __int128)0));
9393}
9394
9395#if __ARCH__ >= 12
9396static inline __ATTRS_o_ai __vector float
9397vec_abs(__vector float __a) {
9398 return __builtin_s390_vflpsb(__a);
9399}
9400#endif
9401
9402static inline __ATTRS_o_ai __vector double
9403vec_abs(__vector double __a) {
9404 return __builtin_s390_vflpdb(__a);
9405}
9406
9407/*-- vec_nabs ---------------------------------------------------------------*/
9408
9409#if __ARCH__ >= 12
9410static inline __ATTRS_o_ai __vector float
9411vec_nabs(__vector float __a) {
9412 return __builtin_s390_vflnsb(__a);
9413}
9414#endif
9415
9416static inline __ATTRS_o_ai __vector double
9417vec_nabs(__vector double __a) {
9418 return __builtin_s390_vflndb(__a);
9419}
9420
9421/*-- vec_max ----------------------------------------------------------------*/
9422
9423static inline __ATTRS_o_ai __vector signed char
9424vec_max(__vector signed char __a, __vector signed char __b) {
9425 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9426}
9427
9428// This prototype is deprecated.
9429static inline __ATTRS_o_ai __vector signed char
9430vec_max(__vector signed char __a, __vector __bool char __b) {
9431 __vector signed char __bc = (__vector signed char)__b;
9432 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9433}
9434
9435// This prototype is deprecated.
9436static inline __ATTRS_o_ai __vector signed char
9437vec_max(__vector __bool char __a, __vector signed char __b) {
9438 __vector signed char __ac = (__vector signed char)__a;
9439 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9440}
9441
9442static inline __ATTRS_o_ai __vector unsigned char
9443vec_max(__vector unsigned char __a, __vector unsigned char __b) {
9444 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9445}
9446
9447// This prototype is deprecated.
9448static inline __ATTRS_o_ai __vector unsigned char
9449vec_max(__vector unsigned char __a, __vector __bool char __b) {
9450 __vector unsigned char __bc = (__vector unsigned char)__b;
9451 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9452}
9453
9454// This prototype is deprecated.
9455static inline __ATTRS_o_ai __vector unsigned char
9456vec_max(__vector __bool char __a, __vector unsigned char __b) {
9457 __vector unsigned char __ac = (__vector unsigned char)__a;
9458 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9459}
9460
9461static inline __ATTRS_o_ai __vector signed short
9462vec_max(__vector signed short __a, __vector signed short __b) {
9463 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9464}
9465
9466// This prototype is deprecated.
9467static inline __ATTRS_o_ai __vector signed short
9468vec_max(__vector signed short __a, __vector __bool short __b) {
9469 __vector signed short __bc = (__vector signed short)__b;
9470 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9471}
9472
9473// This prototype is deprecated.
9474static inline __ATTRS_o_ai __vector signed short
9475vec_max(__vector __bool short __a, __vector signed short __b) {
9476 __vector signed short __ac = (__vector signed short)__a;
9477 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9478}
9479
9480static inline __ATTRS_o_ai __vector unsigned short
9481vec_max(__vector unsigned short __a, __vector unsigned short __b) {
9482 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9483}
9484
9485// This prototype is deprecated.
9486static inline __ATTRS_o_ai __vector unsigned short
9487vec_max(__vector unsigned short __a, __vector __bool short __b) {
9488 __vector unsigned short __bc = (__vector unsigned short)__b;
9489 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9490}
9491
9492// This prototype is deprecated.
9493static inline __ATTRS_o_ai __vector unsigned short
9494vec_max(__vector __bool short __a, __vector unsigned short __b) {
9495 __vector unsigned short __ac = (__vector unsigned short)__a;
9496 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9497}
9498
9499static inline __ATTRS_o_ai __vector signed int
9500vec_max(__vector signed int __a, __vector signed int __b) {
9501 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9502}
9503
9504// This prototype is deprecated.
9505static inline __ATTRS_o_ai __vector signed int
9506vec_max(__vector signed int __a, __vector __bool int __b) {
9507 __vector signed int __bc = (__vector signed int)__b;
9508 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9509}
9510
9511// This prototype is deprecated.
9512static inline __ATTRS_o_ai __vector signed int
9513vec_max(__vector __bool int __a, __vector signed int __b) {
9514 __vector signed int __ac = (__vector signed int)__a;
9515 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9516}
9517
9518static inline __ATTRS_o_ai __vector unsigned int
9519vec_max(__vector unsigned int __a, __vector unsigned int __b) {
9520 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9521}
9522
9523// This prototype is deprecated.
9524static inline __ATTRS_o_ai __vector unsigned int
9525vec_max(__vector unsigned int __a, __vector __bool int __b) {
9526 __vector unsigned int __bc = (__vector unsigned int)__b;
9527 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9528}
9529
9530// This prototype is deprecated.
9531static inline __ATTRS_o_ai __vector unsigned int
9532vec_max(__vector __bool int __a, __vector unsigned int __b) {
9533 __vector unsigned int __ac = (__vector unsigned int)__a;
9534 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9535}
9536
9537static inline __ATTRS_o_ai __vector signed long long
9538vec_max(__vector signed long long __a, __vector signed long long __b) {
9539 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9540}
9541
9542// This prototype is deprecated.
9543static inline __ATTRS_o_ai __vector signed long long
9544vec_max(__vector signed long long __a, __vector __bool long long __b) {
9545 __vector signed long long __bc = (__vector signed long long)__b;
9546 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9547}
9548
9549// This prototype is deprecated.
9550static inline __ATTRS_o_ai __vector signed long long
9551vec_max(__vector __bool long long __a, __vector signed long long __b) {
9552 __vector signed long long __ac = (__vector signed long long)__a;
9553 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9554}
9555
9556static inline __ATTRS_o_ai __vector unsigned long long
9557vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
9558 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9559}
9560
9561// This prototype is deprecated.
9562static inline __ATTRS_o_ai __vector unsigned long long
9563vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
9564 __vector unsigned long long __bc = (__vector unsigned long long)__b;
9565 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9566}
9567
9568// This prototype is deprecated.
9569static inline __ATTRS_o_ai __vector unsigned long long
9570vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
9571 __vector unsigned long long __ac = (__vector unsigned long long)__a;
9572 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9573}
9574
9575static inline __ATTRS_o_ai __vector signed __int128
9576vec_max(__vector signed __int128 __a, __vector signed __int128 __b) {
9577 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9578}
9579
9580static inline __ATTRS_o_ai __vector unsigned __int128
9581vec_max(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9582 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9583}
9584
9585#if __ARCH__ >= 12
9586static inline __ATTRS_o_ai __vector float
9587vec_max(__vector float __a, __vector float __b) {
9588 return __builtin_s390_vfmaxsb(__a, __b, 0);
9589}
9590#endif
9591
9592static inline __ATTRS_o_ai __vector double
9593vec_max(__vector double __a, __vector double __b) {
9594#if __ARCH__ >= 12
9595 return __builtin_s390_vfmaxdb(__a, __b, 0);
9596#else
9597 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9598#endif
9599}
9600
9601/*-- vec_min ----------------------------------------------------------------*/
9602
9603static inline __ATTRS_o_ai __vector signed char
9604vec_min(__vector signed char __a, __vector signed char __b) {
9605 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9606}
9607
9608// This prototype is deprecated.
9609static inline __ATTRS_o_ai __vector signed char
9610vec_min(__vector signed char __a, __vector __bool char __b) {
9611 __vector signed char __bc = (__vector signed char)__b;
9612 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9613}
9614
9615// This prototype is deprecated.
9616static inline __ATTRS_o_ai __vector signed char
9617vec_min(__vector __bool char __a, __vector signed char __b) {
9618 __vector signed char __ac = (__vector signed char)__a;
9619 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9620}
9621
9622static inline __ATTRS_o_ai __vector unsigned char
9623vec_min(__vector unsigned char __a, __vector unsigned char __b) {
9624 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9625}
9626
9627// This prototype is deprecated.
9628static inline __ATTRS_o_ai __vector unsigned char
9629vec_min(__vector unsigned char __a, __vector __bool char __b) {
9630 __vector unsigned char __bc = (__vector unsigned char)__b;
9631 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9632}
9633
9634// This prototype is deprecated.
9635static inline __ATTRS_o_ai __vector unsigned char
9636vec_min(__vector __bool char __a, __vector unsigned char __b) {
9637 __vector unsigned char __ac = (__vector unsigned char)__a;
9638 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9639}
9640
9641static inline __ATTRS_o_ai __vector signed short
9642vec_min(__vector signed short __a, __vector signed short __b) {
9643 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9644}
9645
9646// This prototype is deprecated.
9647static inline __ATTRS_o_ai __vector signed short
9648vec_min(__vector signed short __a, __vector __bool short __b) {
9649 __vector signed short __bc = (__vector signed short)__b;
9650 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9651}
9652
9653// This prototype is deprecated.
9654static inline __ATTRS_o_ai __vector signed short
9655vec_min(__vector __bool short __a, __vector signed short __b) {
9656 __vector signed short __ac = (__vector signed short)__a;
9657 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9658}
9659
9660static inline __ATTRS_o_ai __vector unsigned short
9661vec_min(__vector unsigned short __a, __vector unsigned short __b) {
9662 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9663}
9664
9665// This prototype is deprecated.
9666static inline __ATTRS_o_ai __vector unsigned short
9667vec_min(__vector unsigned short __a, __vector __bool short __b) {
9668 __vector unsigned short __bc = (__vector unsigned short)__b;
9669 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9670}
9671
9672// This prototype is deprecated.
9673static inline __ATTRS_o_ai __vector unsigned short
9674vec_min(__vector __bool short __a, __vector unsigned short __b) {
9675 __vector unsigned short __ac = (__vector unsigned short)__a;
9676 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9677}
9678
9679static inline __ATTRS_o_ai __vector signed int
9680vec_min(__vector signed int __a, __vector signed int __b) {
9681 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9682}
9683
9684// This prototype is deprecated.
9685static inline __ATTRS_o_ai __vector signed int
9686vec_min(__vector signed int __a, __vector __bool int __b) {
9687 __vector signed int __bc = (__vector signed int)__b;
9688 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9689}
9690
9691// This prototype is deprecated.
9692static inline __ATTRS_o_ai __vector signed int
9693vec_min(__vector __bool int __a, __vector signed int __b) {
9694 __vector signed int __ac = (__vector signed int)__a;
9695 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9696}
9697
9698static inline __ATTRS_o_ai __vector unsigned int
9699vec_min(__vector unsigned int __a, __vector unsigned int __b) {
9700 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9701}
9702
9703// This prototype is deprecated.
9704static inline __ATTRS_o_ai __vector unsigned int
9705vec_min(__vector unsigned int __a, __vector __bool int __b) {
9706 __vector unsigned int __bc = (__vector unsigned int)__b;
9707 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9708}
9709
9710// This prototype is deprecated.
9711static inline __ATTRS_o_ai __vector unsigned int
9712vec_min(__vector __bool int __a, __vector unsigned int __b) {
9713 __vector unsigned int __ac = (__vector unsigned int)__a;
9714 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9715}
9716
9717static inline __ATTRS_o_ai __vector signed long long
9718vec_min(__vector signed long long __a, __vector signed long long __b) {
9719 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9720}
9721
9722// This prototype is deprecated.
9723static inline __ATTRS_o_ai __vector signed long long
9724vec_min(__vector signed long long __a, __vector __bool long long __b) {
9725 __vector signed long long __bc = (__vector signed long long)__b;
9726 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9727}
9728
9729// This prototype is deprecated.
9730static inline __ATTRS_o_ai __vector signed long long
9731vec_min(__vector __bool long long __a, __vector signed long long __b) {
9732 __vector signed long long __ac = (__vector signed long long)__a;
9733 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9734}
9735
9736static inline __ATTRS_o_ai __vector unsigned long long
9737vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
9738 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9739}
9740
9741// This prototype is deprecated.
9742static inline __ATTRS_o_ai __vector unsigned long long
9743vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
9744 __vector unsigned long long __bc = (__vector unsigned long long)__b;
9745 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9746}
9747
9748// This prototype is deprecated.
9749static inline __ATTRS_o_ai __vector unsigned long long
9750vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
9751 __vector unsigned long long __ac = (__vector unsigned long long)__a;
9752 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9753}
9754
9755static inline __ATTRS_o_ai __vector signed __int128
9756vec_min(__vector signed __int128 __a, __vector signed __int128 __b) {
9757 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9758}
9759
9760static inline __ATTRS_o_ai __vector unsigned __int128
9761vec_min(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9762 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9763}
9764
9765#if __ARCH__ >= 12
9766static inline __ATTRS_o_ai __vector float
9767vec_min(__vector float __a, __vector float __b) {
9768 return __builtin_s390_vfminsb(__a, __b, 0);
9769}
9770#endif
9771
9772static inline __ATTRS_o_ai __vector double
9773vec_min(__vector double __a, __vector double __b) {
9774#if __ARCH__ >= 12
9775 return __builtin_s390_vfmindb(__a, __b, 0);
9776#else
9777 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9778#endif
9779}
9780
9781/*-- vec_add_u128 -----------------------------------------------------------*/
9782
9783// This prototype is deprecated.
9784static inline __ATTRS_ai __vector unsigned char
9785vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
9786 return (__vector unsigned char)(__vector unsigned __int128)
9787 ((__int128)__a + (__int128)__b);
9788}
9789
9790/*-- vec_addc ---------------------------------------------------------------*/
9791
9792static inline __ATTRS_o_ai __vector unsigned char
9793vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
9794 return __builtin_s390_vaccb(__a, __b);
9795}
9796
9797static inline __ATTRS_o_ai __vector unsigned short
9798vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
9799 return __builtin_s390_vacch(__a, __b);
9800}
9801
9802static inline __ATTRS_o_ai __vector unsigned int
9803vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
9804 return __builtin_s390_vaccf(__a, __b);
9805}
9806
9807static inline __ATTRS_o_ai __vector unsigned long long
9808vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
9809 return __builtin_s390_vaccg(__a, __b);
9810}
9811
9812static inline __ATTRS_o_ai __vector unsigned __int128
9813vec_addc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9814 return (__vector unsigned __int128)
9815 __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
9816}
9817
9818/*-- vec_addc_u128 ----------------------------------------------------------*/
9819
9820// This prototype is deprecated.
9821static inline __ATTRS_ai __vector unsigned char
9822vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
9823 return (__vector unsigned char)(__vector unsigned __int128)
9824 __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
9825}
9826
9827/*-- vec_adde ---------------------------------------------------------------*/
9828
9829static inline __ATTRS_ai __vector unsigned __int128
9830vec_adde(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9831 __vector unsigned __int128 __c) {
9832 return (__vector unsigned __int128)
9833 __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
9834 (unsigned __int128)__c);
9835}
9836
9837/*-- vec_adde_u128 ----------------------------------------------------------*/
9838
9839// This prototype is deprecated.
9840static inline __ATTRS_ai __vector unsigned char
9841vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
9842 __vector unsigned char __c) {
9843 return (__vector unsigned char)(__vector unsigned __int128)
9844 __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
9845 (unsigned __int128)__c);
9846}
9847
9848/*-- vec_addec --------------------------------------------------------------*/
9849
9850static inline __ATTRS_ai __vector unsigned __int128
9851vec_addec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9852 __vector unsigned __int128 __c) {
9853 return (__vector unsigned __int128)
9854 __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
9855 (unsigned __int128)__c);
9856}
9857
9858/*-- vec_addec_u128 ---------------------------------------------------------*/
9859
9860// This prototype is deprecated.
9861static inline __ATTRS_ai __vector unsigned char
9862vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
9863 __vector unsigned char __c) {
9864 return (__vector unsigned char)(__vector unsigned __int128)
9865 __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
9866 (unsigned __int128)__c);
9867}
9868
9869/*-- vec_avg ----------------------------------------------------------------*/
9870
9871static inline __ATTRS_o_ai __vector signed char
9872vec_avg(__vector signed char __a, __vector signed char __b) {
9873 return __builtin_s390_vavgb(__a, __b);
9874}
9875
9876static inline __ATTRS_o_ai __vector signed short
9877vec_avg(__vector signed short __a, __vector signed short __b) {
9878 return __builtin_s390_vavgh(__a, __b);
9879}
9880
9881static inline __ATTRS_o_ai __vector signed int
9882vec_avg(__vector signed int __a, __vector signed int __b) {
9883 return __builtin_s390_vavgf(__a, __b);
9884}
9885
9886static inline __ATTRS_o_ai __vector signed long long
9887vec_avg(__vector signed long long __a, __vector signed long long __b) {
9888 return __builtin_s390_vavgg(__a, __b);
9889}
9890
9891#if __ARCH__ >= 15
9892static inline __ATTRS_o_ai __vector signed __int128
9893vec_avg(__vector signed __int128 __a, __vector signed __int128 __b) {
9894 return (__vector signed __int128)
9895 __builtin_s390_vavgq((signed __int128)__a, (signed __int128)__b);
9896}
9897#endif
9898
9899static inline __ATTRS_o_ai __vector unsigned char
9900vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
9901 return __builtin_s390_vavglb(__a, __b);
9902}
9903
9904static inline __ATTRS_o_ai __vector unsigned short
9905vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
9906 return __builtin_s390_vavglh(__a, __b);
9907}
9908
9909static inline __ATTRS_o_ai __vector unsigned int
9910vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
9911 return __builtin_s390_vavglf(__a, __b);
9912}
9913
9914static inline __ATTRS_o_ai __vector unsigned long long
9915vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
9916 return __builtin_s390_vavglg(__a, __b);
9917}
9918
9919#if __ARCH__ >= 15
9920static inline __ATTRS_o_ai __vector unsigned __int128
9921vec_avg(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9922 return (__vector unsigned __int128)
9923 __builtin_s390_vavglq((unsigned __int128)__a, (unsigned __int128)__b);
9924}
9925#endif
9926
9927/*-- vec_checksum -----------------------------------------------------------*/
9928
9929static inline __ATTRS_ai __vector unsigned int
9930vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
9931 return __builtin_s390_vcksm(__a, __b);
9932}
9933
9934/*-- vec_gfmsum -------------------------------------------------------------*/
9935
9936static inline __ATTRS_o_ai __vector unsigned short
9937vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
9938 return __builtin_s390_vgfmb(__a, __b);
9939}
9940
9941static inline __ATTRS_o_ai __vector unsigned int
9942vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
9943 return __builtin_s390_vgfmh(__a, __b);
9944}
9945
9946static inline __ATTRS_o_ai __vector unsigned long long
9947vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
9948 return __builtin_s390_vgfmf(__a, __b);
9949}
9950
9951static inline __ATTRS_o_ai __vector unsigned __int128
9952vec_gfmsum(__vector unsigned long long __a, __vector unsigned long long __b) {
9953 return (__vector unsigned __int128)__builtin_s390_vgfmg(__a, __b);
9954}
9955
9956/*-- vec_gfmsum_128 ---------------------------------------------------------*/
9957
9958// This prototype is deprecated.
9959static inline __ATTRS_o_ai __vector unsigned char
9960vec_gfmsum_128(__vector unsigned long long __a,
9961 __vector unsigned long long __b) {
9962 return (__vector unsigned char)(__vector unsigned __int128)
9963 __builtin_s390_vgfmg(__a, __b);
9964}
9965
9966/*-- vec_gfmsum_accum -------------------------------------------------------*/
9967
9968static inline __ATTRS_o_ai __vector unsigned short
9969vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
9970 __vector unsigned short __c) {
9971 return __builtin_s390_vgfmab(__a, __b, __c);
9972}
9973
9974static inline __ATTRS_o_ai __vector unsigned int
9975vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
9976 __vector unsigned int __c) {
9977 return __builtin_s390_vgfmah(__a, __b, __c);
9978}
9979
9980static inline __ATTRS_o_ai __vector unsigned long long
9981vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
9982 __vector unsigned long long __c) {
9983 return __builtin_s390_vgfmaf(__a, __b, __c);
9984}
9985
9986static inline __ATTRS_o_ai __vector unsigned __int128
9987vec_gfmsum_accum(__vector unsigned long long __a, __vector unsigned long long __b,
9988 __vector unsigned __int128 __c) {
9989 return (__vector unsigned __int128)
9990 __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
9991}
9992
9993/*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
9994
9995// This prototype is deprecated.
9996static inline __ATTRS_o_ai __vector unsigned char
9997vec_gfmsum_accum_128(__vector unsigned long long __a,
9998 __vector unsigned long long __b,
9999 __vector unsigned char __c) {
10000 return (__vector unsigned char)(__vector unsigned __int128)
10001 __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
10002}
10003
10004/*-- vec_mladd --------------------------------------------------------------*/
10005
10006static inline __ATTRS_o_ai __vector signed char
10007vec_mladd(__vector signed char __a, __vector signed char __b,
10008 __vector signed char __c) {
10009 return __a * __b + __c;
10010}
10011
10012static inline __ATTRS_o_ai __vector signed char
10013vec_mladd(__vector unsigned char __a, __vector signed char __b,
10014 __vector signed char __c) {
10015 return (__vector signed char)__a * __b + __c;
10016}
10017
10018static inline __ATTRS_o_ai __vector signed char
10019vec_mladd(__vector signed char __a, __vector unsigned char __b,
10020 __vector unsigned char __c) {
10021 return __a * (__vector signed char)__b + (__vector signed char)__c;
10022}
10023
10024static inline __ATTRS_o_ai __vector unsigned char
10025vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
10026 __vector unsigned char __c) {
10027 return __a * __b + __c;
10028}
10029
10030static inline __ATTRS_o_ai __vector signed short
10031vec_mladd(__vector signed short __a, __vector signed short __b,
10032 __vector signed short __c) {
10033 return __a * __b + __c;
10034}
10035
10036static inline __ATTRS_o_ai __vector signed short
10037vec_mladd(__vector unsigned short __a, __vector signed short __b,
10038 __vector signed short __c) {
10039 return (__vector signed short)__a * __b + __c;
10040}
10041
10042static inline __ATTRS_o_ai __vector signed short
10043vec_mladd(__vector signed short __a, __vector unsigned short __b,
10044 __vector unsigned short __c) {
10045 return __a * (__vector signed short)__b + (__vector signed short)__c;
10046}
10047
10048static inline __ATTRS_o_ai __vector unsigned short
10049vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
10050 __vector unsigned short __c) {
10051 return __a * __b + __c;
10052}
10053
10054static inline __ATTRS_o_ai __vector signed int
10055vec_mladd(__vector signed int __a, __vector signed int __b,
10056 __vector signed int __c) {
10057 return __a * __b + __c;
10058}
10059
10060static inline __ATTRS_o_ai __vector signed int
10061vec_mladd(__vector unsigned int __a, __vector signed int __b,
10062 __vector signed int __c) {
10063 return (__vector signed int)__a * __b + __c;
10064}
10065
10066static inline __ATTRS_o_ai __vector signed int
10067vec_mladd(__vector signed int __a, __vector unsigned int __b,
10068 __vector unsigned int __c) {
10069 return __a * (__vector signed int)__b + (__vector signed int)__c;
10070}
10071
10072static inline __ATTRS_o_ai __vector unsigned int
10073vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
10074 __vector unsigned int __c) {
10075 return __a * __b + __c;
10076}
10077
10078#if __ARCH__ >= 15
10079static inline __ATTRS_o_ai __vector signed long long
10080vec_mladd(__vector signed long long __a, __vector signed long long __b,
10081 __vector signed long long __c) {
10082 return __a * __b + __c;
10083}
10084
10085static inline __ATTRS_o_ai __vector signed long long
10086vec_mladd(__vector unsigned long long __a, __vector signed long long __b,
10087 __vector signed long long __c) {
10088 return (__vector signed long long)__a * __b + __c;
10089}
10090
10091static inline __ATTRS_o_ai __vector signed long long
10092vec_mladd(__vector signed long long __a, __vector unsigned long long __b,
10093 __vector unsigned long long __c) {
10094 return __a * (__vector signed long long)__b + (__vector signed long long)__c;
10095}
10096
10097static inline __ATTRS_o_ai __vector unsigned long long
10098vec_mladd(__vector unsigned long long __a, __vector unsigned long long __b,
10099 __vector unsigned long long __c) {
10100 return __a * __b + __c;
10101}
10102
10103static inline __ATTRS_o_ai __vector signed __int128
10104vec_mladd(__vector signed __int128 __a, __vector signed __int128 __b,
10105 __vector signed __int128 __c) {
10106 return __a * __b + __c;
10107}
10108
10109static inline __ATTRS_o_ai __vector signed __int128
10110vec_mladd(__vector unsigned __int128 __a, __vector signed __int128 __b,
10111 __vector signed __int128 __c) {
10112 return (__vector signed __int128)__a * __b + __c;
10113}
10114
10115static inline __ATTRS_o_ai __vector signed __int128
10116vec_mladd(__vector signed __int128 __a, __vector unsigned __int128 __b,
10117 __vector unsigned __int128 __c) {
10118 return __a * (__vector signed __int128)__b + (__vector signed __int128)__c;
10119}
10120
10121static inline __ATTRS_o_ai __vector unsigned __int128
10122vec_mladd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10123 __vector unsigned __int128 __c) {
10124 return __a * __b + __c;
10125}
10126#endif
10127
10128/*-- vec_mhadd --------------------------------------------------------------*/
10129
10130static inline __ATTRS_o_ai __vector signed char
10131vec_mhadd(__vector signed char __a, __vector signed char __b,
10132 __vector signed char __c) {
10133 return __builtin_s390_vmahb(__a, __b, __c);
10134}
10135
10136static inline __ATTRS_o_ai __vector unsigned char
10137vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
10138 __vector unsigned char __c) {
10139 return __builtin_s390_vmalhb(__a, __b, __c);
10140}
10141
10142static inline __ATTRS_o_ai __vector signed short
10143vec_mhadd(__vector signed short __a, __vector signed short __b,
10144 __vector signed short __c) {
10145 return __builtin_s390_vmahh(__a, __b, __c);
10146}
10147
10148static inline __ATTRS_o_ai __vector unsigned short
10149vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
10150 __vector unsigned short __c) {
10151 return __builtin_s390_vmalhh(__a, __b, __c);
10152}
10153
10154static inline __ATTRS_o_ai __vector signed int
10155vec_mhadd(__vector signed int __a, __vector signed int __b,
10156 __vector signed int __c) {
10157 return __builtin_s390_vmahf(__a, __b, __c);
10158}
10159
10160static inline __ATTRS_o_ai __vector unsigned int
10161vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
10162 __vector unsigned int __c) {
10163 return __builtin_s390_vmalhf(__a, __b, __c);
10164}
10165
10166#if __ARCH__ >= 15
10167static inline __ATTRS_o_ai __vector signed long long
10168vec_mhadd(__vector signed long long __a, __vector signed long long __b,
10169 __vector signed long long __c) {
10170 return __builtin_s390_vmahg(__a, __b, __c);
10171}
10172
10173static inline __ATTRS_o_ai __vector unsigned long long
10174vec_mhadd(__vector unsigned long long __a, __vector unsigned long long __b,
10175 __vector unsigned long long __c) {
10176 return __builtin_s390_vmalhg(__a, __b, __c);
10177}
10178
10179static inline __ATTRS_o_ai __vector signed __int128
10180vec_mhadd(__vector signed __int128 __a, __vector signed __int128 __b,
10181 __vector signed __int128 __c) {
10182 return (__vector signed __int128)
10183 __builtin_s390_vmahq((signed __int128)__a, (signed __int128)__b, (signed __int128)__c);
10184}
10185
10186static inline __ATTRS_o_ai __vector unsigned __int128
10187vec_mhadd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10188 __vector unsigned __int128 __c) {
10189 return (__vector unsigned __int128)
10190 __builtin_s390_vmalhq((unsigned __int128)__a, (unsigned __int128)__b, (unsigned __int128)__c);
10191}
10192#endif
10193
10194/*-- vec_meadd --------------------------------------------------------------*/
10195
10196static inline __ATTRS_o_ai __vector signed short
10197vec_meadd(__vector signed char __a, __vector signed char __b,
10198 __vector signed short __c) {
10199 return __builtin_s390_vmaeb(__a, __b, __c);
10200}
10201
10202static inline __ATTRS_o_ai __vector unsigned short
10203vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
10204 __vector unsigned short __c) {
10205 return __builtin_s390_vmaleb(__a, __b, __c);
10206}
10207
10208static inline __ATTRS_o_ai __vector signed int
10209vec_meadd(__vector signed short __a, __vector signed short __b,
10210 __vector signed int __c) {
10211 return __builtin_s390_vmaeh(__a, __b, __c);
10212}
10213
10214static inline __ATTRS_o_ai __vector unsigned int
10215vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
10216 __vector unsigned int __c) {
10217 return __builtin_s390_vmaleh(__a, __b, __c);
10218}
10219
10220static inline __ATTRS_o_ai __vector signed long long
10221vec_meadd(__vector signed int __a, __vector signed int __b,
10222 __vector signed long long __c) {
10223 return __builtin_s390_vmaef(__a, __b, __c);
10224}
10225
10226static inline __ATTRS_o_ai __vector unsigned long long
10227vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
10228 __vector unsigned long long __c) {
10229 return __builtin_s390_vmalef(__a, __b, __c);
10230}
10231
10232#if __ARCH__ >= 15
10233static inline __ATTRS_o_ai __vector signed __int128
10234vec_meadd(__vector signed long long __a, __vector signed long long __b,
10235 __vector signed __int128 __c) {
10236 return (__vector signed __int128)
10237 __builtin_s390_vmaeg(__a, __b, (signed __int128)__c);
10238}
10239
10240static inline __ATTRS_o_ai __vector unsigned __int128
10241vec_meadd(__vector unsigned long long __a, __vector unsigned long long __b,
10242 __vector unsigned __int128 __c) {
10243 return (__vector unsigned __int128)
10244 __builtin_s390_vmaleg(__a, __b, (unsigned __int128)__c);
10245}
10246#endif
10247
10248/*-- vec_moadd --------------------------------------------------------------*/
10249
10250static inline __ATTRS_o_ai __vector signed short
10251vec_moadd(__vector signed char __a, __vector signed char __b,
10252 __vector signed short __c) {
10253 return __builtin_s390_vmaob(__a, __b, __c);
10254}
10255
10256static inline __ATTRS_o_ai __vector unsigned short
10257vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
10258 __vector unsigned short __c) {
10259 return __builtin_s390_vmalob(__a, __b, __c);
10260}
10261
10262static inline __ATTRS_o_ai __vector signed int
10263vec_moadd(__vector signed short __a, __vector signed short __b,
10264 __vector signed int __c) {
10265 return __builtin_s390_vmaoh(__a, __b, __c);
10266}
10267
10268static inline __ATTRS_o_ai __vector unsigned int
10269vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
10270 __vector unsigned int __c) {
10271 return __builtin_s390_vmaloh(__a, __b, __c);
10272}
10273
10274static inline __ATTRS_o_ai __vector signed long long
10275vec_moadd(__vector signed int __a, __vector signed int __b,
10276 __vector signed long long __c) {
10277 return __builtin_s390_vmaof(__a, __b, __c);
10278}
10279
10280static inline __ATTRS_o_ai __vector unsigned long long
10281vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
10282 __vector unsigned long long __c) {
10283 return __builtin_s390_vmalof(__a, __b, __c);
10284}
10285
10286#if __ARCH__ >= 15
10287static inline __ATTRS_o_ai __vector signed __int128
10288vec_moadd(__vector signed long long __a, __vector signed long long __b,
10289 __vector signed __int128 __c) {
10290 return (__vector signed __int128)
10291 __builtin_s390_vmaog(__a, __b, (signed __int128)__c);
10292}
10293
10294static inline __ATTRS_o_ai __vector unsigned __int128
10295vec_moadd(__vector unsigned long long __a, __vector unsigned long long __b,
10296 __vector unsigned __int128 __c) {
10297 return (__vector unsigned __int128)
10298 __builtin_s390_vmalog(__a, __b, (unsigned __int128)__c);
10299}
10300#endif
10301
10302/*-- vec_mulh ---------------------------------------------------------------*/
10303
10304static inline __ATTRS_o_ai __vector signed char
10305vec_mulh(__vector signed char __a, __vector signed char __b) {
10306 return __builtin_s390_vmhb(__a, __b);
10307}
10308
10309static inline __ATTRS_o_ai __vector unsigned char
10310vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
10311 return __builtin_s390_vmlhb(__a, __b);
10312}
10313
10314static inline __ATTRS_o_ai __vector signed short
10315vec_mulh(__vector signed short __a, __vector signed short __b) {
10316 return __builtin_s390_vmhh(__a, __b);
10317}
10318
10319static inline __ATTRS_o_ai __vector unsigned short
10320vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
10321 return __builtin_s390_vmlhh(__a, __b);
10322}
10323
10324static inline __ATTRS_o_ai __vector signed int
10325vec_mulh(__vector signed int __a, __vector signed int __b) {
10326 return __builtin_s390_vmhf(__a, __b);
10327}
10328
10329static inline __ATTRS_o_ai __vector unsigned int
10330vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
10331 return __builtin_s390_vmlhf(__a, __b);
10332}
10333
10334#if __ARCH__ >= 15
10335static inline __ATTRS_o_ai __vector signed long long
10336vec_mulh(__vector signed long long __a, __vector signed long long __b) {
10337 return __builtin_s390_vmhg(__a, __b);
10338}
10339
10340static inline __ATTRS_o_ai __vector unsigned long long
10341vec_mulh(__vector unsigned long long __a, __vector unsigned long long __b) {
10342 return __builtin_s390_vmlhg(__a, __b);
10343}
10344
10345static inline __ATTRS_o_ai __vector signed __int128
10346vec_mulh(__vector signed __int128 __a, __vector signed __int128 __b) {
10347 return (__vector signed __int128)
10348 __builtin_s390_vmhq((signed __int128)__a, (signed __int128)__b);
10349}
10350
10351static inline __ATTRS_o_ai __vector unsigned __int128
10352vec_mulh(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
10353 return (__vector unsigned __int128)
10354 __builtin_s390_vmlhq((unsigned __int128)__a, (unsigned __int128)__b);
10355}
10356#endif
10357
10358/*-- vec_mule ---------------------------------------------------------------*/
10359
10360static inline __ATTRS_o_ai __vector signed short
10361vec_mule(__vector signed char __a, __vector signed char __b) {
10362 return __builtin_s390_vmeb(__a, __b);
10363}
10364
10365static inline __ATTRS_o_ai __vector unsigned short
10366vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
10367 return __builtin_s390_vmleb(__a, __b);
10368}
10369
10370static inline __ATTRS_o_ai __vector signed int
10371vec_mule(__vector signed short __a, __vector signed short __b) {
10372 return __builtin_s390_vmeh(__a, __b);
10373}
10374
10375static inline __ATTRS_o_ai __vector unsigned int
10376vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
10377 return __builtin_s390_vmleh(__a, __b);
10378}
10379
10380static inline __ATTRS_o_ai __vector signed long long
10381vec_mule(__vector signed int __a, __vector signed int __b) {
10382 return __builtin_s390_vmef(__a, __b);
10383}
10384
10385static inline __ATTRS_o_ai __vector unsigned long long
10386vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
10387 return __builtin_s390_vmlef(__a, __b);
10388}
10389
10390#if __ARCH__ >= 15
10391static inline __ATTRS_o_ai __vector signed __int128
10392vec_mule(__vector signed long long __a, __vector signed long long __b) {
10393 return (__vector signed __int128)__builtin_s390_vmeg(__a, __b);
10394}
10395
10396static inline __ATTRS_o_ai __vector unsigned __int128
10397vec_mule(__vector unsigned long long __a, __vector unsigned long long __b) {
10398 return (__vector unsigned __int128)__builtin_s390_vmleg(__a, __b);
10399}
10400#endif
10401
10402/*-- vec_mulo ---------------------------------------------------------------*/
10403
10404static inline __ATTRS_o_ai __vector signed short
10405vec_mulo(__vector signed char __a, __vector signed char __b) {
10406 return __builtin_s390_vmob(__a, __b);
10407}
10408
10409static inline __ATTRS_o_ai __vector unsigned short
10410vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
10411 return __builtin_s390_vmlob(__a, __b);
10412}
10413
10414static inline __ATTRS_o_ai __vector signed int
10415vec_mulo(__vector signed short __a, __vector signed short __b) {
10416 return __builtin_s390_vmoh(__a, __b);
10417}
10418
10419static inline __ATTRS_o_ai __vector unsigned int
10420vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
10421 return __builtin_s390_vmloh(__a, __b);
10422}
10423
10424static inline __ATTRS_o_ai __vector signed long long
10425vec_mulo(__vector signed int __a, __vector signed int __b) {
10426 return __builtin_s390_vmof(__a, __b);
10427}
10428
10429static inline __ATTRS_o_ai __vector unsigned long long
10430vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
10431 return __builtin_s390_vmlof(__a, __b);
10432}
10433
10434#if __ARCH__ >= 15
10435static inline __ATTRS_o_ai __vector signed __int128
10436vec_mulo(__vector signed long long __a, __vector signed long long __b) {
10437 return (__vector signed __int128)__builtin_s390_vmog(__a, __b);
10438}
10439
10440static inline __ATTRS_o_ai __vector unsigned __int128
10441vec_mulo(__vector unsigned long long __a, __vector unsigned long long __b) {
10442 return (__vector unsigned __int128)__builtin_s390_vmlog(__a, __b);
10443}
10444#endif
10445
10446/*-- vec_msum ---------------------------------------------------------------*/
10447
10448#if __ARCH__ >= 12
10449extern __ATTRS_o __vector unsigned __int128
10450vec_msum(__vector unsigned long long __a, __vector unsigned long long __b,
10451 __vector unsigned __int128 __c, int __d)
10452 __constant_range(__d, 0, 15);
10453
10454#define vec_msum(X, Y, Z, W) \
10455 ((__typeof__((vec_msum)((X), (Y), (Z), (W)))) \
10456 __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
10457#endif
10458
10459/*-- vec_msum_u128 ----------------------------------------------------------*/
10460
10461#if __ARCH__ >= 12
10462// This prototype is deprecated.
10463extern __ATTRS_o __vector unsigned char
10464vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b,
10465 __vector unsigned char __c, int __d)
10466 __constant_range(__d, 0, 15);
10467
10468#define vec_msum_u128(X, Y, Z, W) \
10469 ((__typeof__((vec_msum_u128)((X), (Y), (Z), (W)))) \
10470 (__vector unsigned __int128) \
10471 __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
10472#endif
10473
10474/*-- vec_sub_u128 -----------------------------------------------------------*/
10475
10476// This prototype is deprecated.
10477static inline __ATTRS_ai __vector unsigned char
10478vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
10479 return (__vector unsigned char)(__vector unsigned __int128)
10480 ((__int128)__a - (__int128)__b);
10481}
10482
10483/*-- vec_subc ---------------------------------------------------------------*/
10484
10485static inline __ATTRS_o_ai __vector unsigned char
10486vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
10487 return __builtin_s390_vscbib(__a, __b);
10488}
10489
10490static inline __ATTRS_o_ai __vector unsigned short
10491vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
10492 return __builtin_s390_vscbih(__a, __b);
10493}
10494
10495static inline __ATTRS_o_ai __vector unsigned int
10496vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
10497 return __builtin_s390_vscbif(__a, __b);
10498}
10499
10500static inline __ATTRS_o_ai __vector unsigned long long
10501vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
10502 return __builtin_s390_vscbig(__a, __b);
10503}
10504
10505static inline __ATTRS_o_ai __vector unsigned __int128
10506vec_subc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
10507 return (__vector unsigned __int128)
10508 __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
10509}
10510
10511/*-- vec_subc_u128 ----------------------------------------------------------*/
10512
10513// This prototype is deprecated.
10514static inline __ATTRS_ai __vector unsigned char
10515vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
10516 return (__vector unsigned char)(__vector unsigned __int128)
10517 __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
10518}
10519
10520/*-- vec_sube ---------------------------------------------------------------*/
10521
10522static inline __ATTRS_ai __vector unsigned __int128
10523vec_sube(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10524 __vector unsigned __int128 __c) {
10525 return (__vector unsigned __int128)
10526 __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
10527 (unsigned __int128)__c);
10528}
10529
10530/*-- vec_sube_u128 ----------------------------------------------------------*/
10531
10532// This prototype is deprecated.
10533static inline __ATTRS_ai __vector unsigned char
10534vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
10535 __vector unsigned char __c) {
10536 return (__vector unsigned char)(__vector unsigned __int128)
10537 __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
10538 (unsigned __int128)__c);
10539}
10540
10541/*-- vec_subec --------------------------------------------------------------*/
10542
10543static inline __ATTRS_ai __vector unsigned __int128
10544vec_subec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10545 __vector unsigned __int128 __c) {
10546 return (__vector unsigned __int128)
10547 __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
10548 (unsigned __int128)__c);
10549}
10550
10551/*-- vec_subec_u128 ---------------------------------------------------------*/
10552
10553// This prototype is deprecated.
10554static inline __ATTRS_ai __vector unsigned char
10555vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
10556 __vector unsigned char __c) {
10557 return (__vector unsigned char)(__vector unsigned __int128)
10558 __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
10559 (unsigned __int128)__c);
10560}
10561
10562/*-- vec_sum2 ---------------------------------------------------------------*/
10563
10564static inline __ATTRS_o_ai __vector unsigned long long
10565vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
10566 return __builtin_s390_vsumgh(__a, __b);
10567}
10568
10569static inline __ATTRS_o_ai __vector unsigned long long
10570vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
10571 return __builtin_s390_vsumgf(__a, __b);
10572}
10573
10574/*-- vec_sum ----------------------------------------------------------------*/
10575
10576static inline __ATTRS_o_ai __vector unsigned __int128
10577vec_sum(__vector unsigned int __a, __vector unsigned int __b) {
10578 return (__vector unsigned __int128)__builtin_s390_vsumqf(__a, __b);
10579}
10580
10581static inline __ATTRS_o_ai __vector unsigned __int128
10582vec_sum(__vector unsigned long long __a, __vector unsigned long long __b) {
10583 return (__vector unsigned __int128)__builtin_s390_vsumqg(__a, __b);
10584}
10585
10586/*-- vec_sum_u128 -----------------------------------------------------------*/
10587
10588// This prototype is deprecated.
10589static inline __ATTRS_o_ai __vector unsigned char
10590vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
10591 return (__vector unsigned char)(__vector unsigned __int128)
10592 __builtin_s390_vsumqf(__a, __b);
10593}
10594
10595// This prototype is deprecated.
10596static inline __ATTRS_o_ai __vector unsigned char
10597vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
10598 return (__vector unsigned char)(__vector unsigned __int128)
10599 __builtin_s390_vsumqg(__a, __b);
10600}
10601
10602/*-- vec_sum4 ---------------------------------------------------------------*/
10603
10604static inline __ATTRS_o_ai __vector unsigned int
10605vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
10606 return __builtin_s390_vsumb(__a, __b);
10607}
10608
10609static inline __ATTRS_o_ai __vector unsigned int
10610vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
10611 return __builtin_s390_vsumh(__a, __b);
10612}
10613
10614/*-- vec_test_mask ----------------------------------------------------------*/
10615
10616static inline __ATTRS_o_ai int
10617vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
10618 return __builtin_s390_vtm((__vector unsigned char)__a,
10619 (__vector unsigned char)__b);
10620}
10621
10622static inline __ATTRS_o_ai int
10623vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
10624 return __builtin_s390_vtm(__a, __b);
10625}
10626
10627static inline __ATTRS_o_ai int
10628vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
10629 return __builtin_s390_vtm((__vector unsigned char)__a,
10630 (__vector unsigned char)__b);
10631}
10632
10633static inline __ATTRS_o_ai int
10634vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
10635 return __builtin_s390_vtm((__vector unsigned char)__a,
10636 (__vector unsigned char)__b);
10637}
10638
10639static inline __ATTRS_o_ai int
10640vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
10641 return __builtin_s390_vtm((__vector unsigned char)__a,
10642 (__vector unsigned char)__b);
10643}
10644
10645static inline __ATTRS_o_ai int
10646vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
10647 return __builtin_s390_vtm((__vector unsigned char)__a,
10648 (__vector unsigned char)__b);
10649}
10650
10651static inline __ATTRS_o_ai int
10652vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
10653 return __builtin_s390_vtm((__vector unsigned char)__a,
10654 (__vector unsigned char)__b);
10655}
10656
10657static inline __ATTRS_o_ai int
10658vec_test_mask(__vector unsigned long long __a,
10659 __vector unsigned long long __b) {
10660 return __builtin_s390_vtm((__vector unsigned char)__a,
10661 (__vector unsigned char)__b);
10662}
10663
10664static inline __ATTRS_o_ai int
10665vec_test_mask(__vector signed __int128 __a, __vector unsigned __int128 __b) {
10666 return __builtin_s390_vtm((__vector unsigned char)__a,
10667 (__vector unsigned char)__b);
10668}
10669
10670static inline __ATTRS_o_ai int
10671vec_test_mask(__vector unsigned __int128 __a,
10672 __vector unsigned __int128 __b) {
10673 return __builtin_s390_vtm((__vector unsigned char)__a,
10674 (__vector unsigned char)__b);
10675}
10676
10677#if __ARCH__ >= 12
10678static inline __ATTRS_o_ai int
10679vec_test_mask(__vector float __a, __vector unsigned int __b) {
10680 return __builtin_s390_vtm((__vector unsigned char)__a,
10681 (__vector unsigned char)__b);
10682}
10683#endif
10684
10685static inline __ATTRS_o_ai int
10686vec_test_mask(__vector double __a, __vector unsigned long long __b) {
10687 return __builtin_s390_vtm((__vector unsigned char)__a,
10688 (__vector unsigned char)__b);
10689}
10690
10691/*-- vec_madd ---------------------------------------------------------------*/
10692
10693#if __ARCH__ >= 12
10694static inline __ATTRS_o_ai __vector float
10695vec_madd(__vector float __a, __vector float __b, __vector float __c) {
10696 return __builtin_s390_vfmasb(__a, __b, __c);
10697}
10698#endif
10699
10700static inline __ATTRS_o_ai __vector double
10701vec_madd(__vector double __a, __vector double __b, __vector double __c) {
10702 return __builtin_s390_vfmadb(__a, __b, __c);
10703}
10704
10705/*-- vec_msub ---------------------------------------------------------------*/
10706
10707#if __ARCH__ >= 12
10708static inline __ATTRS_o_ai __vector float
10709vec_msub(__vector float __a, __vector float __b, __vector float __c) {
10710 return __builtin_s390_vfmssb(__a, __b, __c);
10711}
10712#endif
10713
10714static inline __ATTRS_o_ai __vector double
10715vec_msub(__vector double __a, __vector double __b, __vector double __c) {
10716 return __builtin_s390_vfmsdb(__a, __b, __c);
10717}
10718
10719/*-- vec_nmadd ---------------------------------------------------------------*/
10720
10721#if __ARCH__ >= 12
10722static inline __ATTRS_o_ai __vector float
10723vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
10724 return __builtin_s390_vfnmasb(__a, __b, __c);
10725}
10726
10727static inline __ATTRS_o_ai __vector double
10728vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
10729 return __builtin_s390_vfnmadb(__a, __b, __c);
10730}
10731#endif
10732
10733/*-- vec_nmsub ---------------------------------------------------------------*/
10734
10735#if __ARCH__ >= 12
10736static inline __ATTRS_o_ai __vector float
10737vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
10738 return __builtin_s390_vfnmssb(__a, __b, __c);
10739}
10740
10741static inline __ATTRS_o_ai __vector double
10742vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
10743 return __builtin_s390_vfnmsdb(__a, __b, __c);
10744}
10745#endif
10746
10747/*-- vec_sqrt ---------------------------------------------------------------*/
10748
10749#if __ARCH__ >= 12
10750static inline __ATTRS_o_ai __vector float
10751vec_sqrt(__vector float __a) {
10752 return __builtin_s390_vfsqsb(__a);
10753}
10754#endif
10755
10756static inline __ATTRS_o_ai __vector double
10757vec_sqrt(__vector double __a) {
10758 return __builtin_s390_vfsqdb(__a);
10759}
10760
10761/*-- vec_ld2f ---------------------------------------------------------------*/
10762
10763// This prototype is deprecated.
10764static inline __ATTRS_ai __vector double
10765vec_ld2f(const float *__ptr) {
10766 typedef float __v2f32 __attribute__((__vector_size__(8)));
10767 return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
10768}
10769
10770/*-- vec_st2f ---------------------------------------------------------------*/
10771
10772// This prototype is deprecated.
10773static inline __ATTRS_ai void
10774vec_st2f(__vector double __a, float *__ptr) {
10775 typedef float __v2f32 __attribute__((__vector_size__(8)));
10776 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
10777}
10778
10779/*-- vec_ctd ----------------------------------------------------------------*/
10780
10781// This prototype is deprecated.
10782static inline __ATTRS_o_ai __vector double
10783vec_ctd(__vector signed long long __a, int __b)
10784 __constant_range(__b, 0, 31) {
10785 __vector double __conv = __builtin_convertvector(__a, __vector double);
10786 __conv *= ((__vector double)(__vector unsigned long long)
10787 ((0x3ffULL - __b) << 52));
10788 return __conv;
10789}
10790
10791// This prototype is deprecated.
10792static inline __ATTRS_o_ai __vector double
10793vec_ctd(__vector unsigned long long __a, int __b)
10794 __constant_range(__b, 0, 31) {
10795 __vector double __conv = __builtin_convertvector(__a, __vector double);
10796 __conv *= ((__vector double)(__vector unsigned long long)
10797 ((0x3ffULL - __b) << 52));
10798 return __conv;
10799}
10800
10801/*-- vec_ctsl ---------------------------------------------------------------*/
10802
10803// This prototype is deprecated.
10804static inline __ATTRS_o_ai __vector signed long long
10805vec_ctsl(__vector double __a, int __b)
10806 __constant_range(__b, 0, 31) {
10807 __a *= ((__vector double)(__vector unsigned long long)
10808 ((0x3ffULL + __b) << 52));
10809 return __builtin_convertvector(__a, __vector signed long long);
10810}
10811
10812/*-- vec_ctul ---------------------------------------------------------------*/
10813
10814// This prototype is deprecated.
10815static inline __ATTRS_o_ai __vector unsigned long long
10816vec_ctul(__vector double __a, int __b)
10817 __constant_range(__b, 0, 31) {
10818 __a *= ((__vector double)(__vector unsigned long long)
10819 ((0x3ffULL + __b) << 52));
10820 return __builtin_convertvector(__a, __vector unsigned long long);
10821}
10822
10823/*-- vec_doublee ------------------------------------------------------------*/
10824
10825#if __ARCH__ >= 12
10826static inline __ATTRS_ai __vector double
10827vec_doublee(__vector float __a) {
10828 typedef float __v2f32 __attribute__((__vector_size__(8)));
10829 __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
10830 return __builtin_convertvector(__pack, __vector double);
10831}
10832#endif
10833
10834/*-- vec_floate -------------------------------------------------------------*/
10835
10836#if __ARCH__ >= 12
10837static inline __ATTRS_ai __vector float
10838vec_floate(__vector double __a) {
10839 typedef float __v2f32 __attribute__((__vector_size__(8)));
10840 __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
10841 return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
10842}
10843#endif
10844
10845/*-- vec_double -------------------------------------------------------------*/
10846
10847static inline __ATTRS_o_ai __vector double
10848vec_double(__vector signed long long __a) {
10849 return __builtin_convertvector(__a, __vector double);
10850}
10851
10852static inline __ATTRS_o_ai __vector double
10853vec_double(__vector unsigned long long __a) {
10854 return __builtin_convertvector(__a, __vector double);
10855}
10856
10857/*-- vec_float --------------------------------------------------------------*/
10858
10859#if __ARCH__ >= 13
10860
10861static inline __ATTRS_o_ai __vector float
10862vec_float(__vector signed int __a) {
10863 return __builtin_convertvector(__a, __vector float);
10864}
10865
10866static inline __ATTRS_o_ai __vector float
10867vec_float(__vector unsigned int __a) {
10868 return __builtin_convertvector(__a, __vector float);
10869}
10870
10871#endif
10872
10873/*-- vec_signed -------------------------------------------------------------*/
10874
10875static inline __ATTRS_o_ai __vector signed long long
10876vec_signed(__vector double __a) {
10877 return __builtin_convertvector(__a, __vector signed long long);
10878}
10879
10880#if __ARCH__ >= 13
10881static inline __ATTRS_o_ai __vector signed int
10882vec_signed(__vector float __a) {
10883 return __builtin_convertvector(__a, __vector signed int);
10884}
10885#endif
10886
10887/*-- vec_unsigned -----------------------------------------------------------*/
10888
10889static inline __ATTRS_o_ai __vector unsigned long long
10890vec_unsigned(__vector double __a) {
10891 return __builtin_convertvector(__a, __vector unsigned long long);
10892}
10893
10894#if __ARCH__ >= 13
10895static inline __ATTRS_o_ai __vector unsigned int
10896vec_unsigned(__vector float __a) {
10897 return __builtin_convertvector(__a, __vector unsigned int);
10898}
10899#endif
10900
10901/*-- vec_roundp -------------------------------------------------------------*/
10902
10903#if __ARCH__ >= 12
10904static inline __ATTRS_o_ai __vector float
10905vec_roundp(__vector float __a) {
10906 return __builtin_s390_vfisb(__a, 4, 6);
10907}
10908#endif
10909
10910static inline __ATTRS_o_ai __vector double
10911vec_roundp(__vector double __a) {
10912 return __builtin_s390_vfidb(__a, 4, 6);
10913}
10914
10915/*-- vec_ceil ---------------------------------------------------------------*/
10916
10917#if __ARCH__ >= 12
10918static inline __ATTRS_o_ai __vector float
10919vec_ceil(__vector float __a) {
10920 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
10921 return __builtin_s390_vfisb(__a, 4, 6);
10922}
10923#endif
10924
10925static inline __ATTRS_o_ai __vector double
10926vec_ceil(__vector double __a) {
10927 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
10928 return __builtin_s390_vfidb(__a, 4, 6);
10929}
10930
10931/*-- vec_roundm -------------------------------------------------------------*/
10932
10933#if __ARCH__ >= 12
10934static inline __ATTRS_o_ai __vector float
10935vec_roundm(__vector float __a) {
10936 return __builtin_s390_vfisb(__a, 4, 7);
10937}
10938#endif
10939
10940static inline __ATTRS_o_ai __vector double
10941vec_roundm(__vector double __a) {
10942 return __builtin_s390_vfidb(__a, 4, 7);
10943}
10944
10945/*-- vec_floor --------------------------------------------------------------*/
10946
10947#if __ARCH__ >= 12
10948static inline __ATTRS_o_ai __vector float
10949vec_floor(__vector float __a) {
10950 // On this platform, vec_floor never triggers the IEEE-inexact exception.
10951 return __builtin_s390_vfisb(__a, 4, 7);
10952}
10953#endif
10954
10955static inline __ATTRS_o_ai __vector double
10956vec_floor(__vector double __a) {
10957 // On this platform, vec_floor never triggers the IEEE-inexact exception.
10958 return __builtin_s390_vfidb(__a, 4, 7);
10959}
10960
10961/*-- vec_roundz -------------------------------------------------------------*/
10962
10963#if __ARCH__ >= 12
10964static inline __ATTRS_o_ai __vector float
10965vec_roundz(__vector float __a) {
10966 return __builtin_s390_vfisb(__a, 4, 5);
10967}
10968#endif
10969
10970static inline __ATTRS_o_ai __vector double
10971vec_roundz(__vector double __a) {
10972 return __builtin_s390_vfidb(__a, 4, 5);
10973}
10974
10975/*-- vec_trunc --------------------------------------------------------------*/
10976
10977#if __ARCH__ >= 12
10978static inline __ATTRS_o_ai __vector float
10979vec_trunc(__vector float __a) {
10980 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
10981 return __builtin_s390_vfisb(__a, 4, 5);
10982}
10983#endif
10984
10985static inline __ATTRS_o_ai __vector double
10986vec_trunc(__vector double __a) {
10987 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
10988 return __builtin_s390_vfidb(__a, 4, 5);
10989}
10990
10991/*-- vec_roundc -------------------------------------------------------------*/
10992
10993#if __ARCH__ >= 12
10994static inline __ATTRS_o_ai __vector float
10995vec_roundc(__vector float __a) {
10996 return __builtin_s390_vfisb(__a, 4, 0);
10997}
10998#endif
10999
11000static inline __ATTRS_o_ai __vector double
11001vec_roundc(__vector double __a) {
11002 return __builtin_s390_vfidb(__a, 4, 0);
11003}
11004
11005/*-- vec_rint ---------------------------------------------------------------*/
11006
11007#if __ARCH__ >= 12
11008static inline __ATTRS_o_ai __vector float
11009vec_rint(__vector float __a) {
11010 // vec_rint may trigger the IEEE-inexact exception.
11011 return __builtin_s390_vfisb(__a, 0, 0);
11012}
11013#endif
11014
11015static inline __ATTRS_o_ai __vector double
11016vec_rint(__vector double __a) {
11017 // vec_rint may trigger the IEEE-inexact exception.
11018 return __builtin_s390_vfidb(__a, 0, 0);
11019}
11020
11021/*-- vec_round --------------------------------------------------------------*/
11022
11023#if __ARCH__ >= 12
11024static inline __ATTRS_o_ai __vector float
11025vec_round(__vector float __a) {
11026 return __builtin_s390_vfisb(__a, 4, 4);
11027}
11028#endif
11029
11030static inline __ATTRS_o_ai __vector double
11031vec_round(__vector double __a) {
11032 return __builtin_s390_vfidb(__a, 4, 4);
11033}
11034
11035/*-- vec_fp_test_data_class -------------------------------------------------*/
11036
11037#if __ARCH__ >= 12
11038extern __ATTRS_o __vector __bool int
11039vec_fp_test_data_class(__vector float __a, int __b, int *__c)
11040 __constant_range(__b, 0, 4095);
11041
11042extern __ATTRS_o __vector __bool long long
11043vec_fp_test_data_class(__vector double __a, int __b, int *__c)
11044 __constant_range(__b, 0, 4095);
11045
11046#define vec_fp_test_data_class(X, Y, Z) \
11047 ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
11048 __extension__ ({ \
11049 __vector unsigned char __res; \
11050 __vector unsigned char __x = (__vector unsigned char)(X); \
11051 int *__z = (Z); \
11052 switch (sizeof ((X)[0])) { \
11053 case 4: __res = (__vector unsigned char) \
11054 __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
11055 break; \
11056 default: __res = (__vector unsigned char) \
11057 __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
11058 break; \
11059 } __res; }))
11060#else
11061#define vec_fp_test_data_class(X, Y, Z) \
11062 ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
11063#endif
11064
11065#define __VEC_CLASS_FP_ZERO_P (1 << 11)
11066#define __VEC_CLASS_FP_ZERO_N (1 << 10)
11067#define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
11068#define __VEC_CLASS_FP_NORMAL_P (1 << 9)
11069#define __VEC_CLASS_FP_NORMAL_N (1 << 8)
11070#define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
11071 __VEC_CLASS_FP_NORMAL_N)
11072#define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
11073#define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
11074#define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
11075 __VEC_CLASS_FP_SUBNORMAL_N)
11076#define __VEC_CLASS_FP_INFINITY_P (1 << 5)
11077#define __VEC_CLASS_FP_INFINITY_N (1 << 4)
11078#define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
11079 __VEC_CLASS_FP_INFINITY_N)
11080#define __VEC_CLASS_FP_QNAN_P (1 << 3)
11081#define __VEC_CLASS_FP_QNAN_N (1 << 2)
11082#define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
11083#define __VEC_CLASS_FP_SNAN_P (1 << 1)
11084#define __VEC_CLASS_FP_SNAN_N (1 << 0)
11085#define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
11086#define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
11087#define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
11088 __VEC_CLASS_FP_SUBNORMAL | \
11089 __VEC_CLASS_FP_ZERO | \
11090 __VEC_CLASS_FP_INFINITY)
11091
11092/*-- vec_extend_to_fp32_hi --------------------------------------------------*/
11093
11094#if __ARCH__ >= 14
11095#define vec_extend_to_fp32_hi(X, W) \
11096 ((__vector float)__builtin_s390_vclfnhs((X), (W)));
11097#endif
11098
11099/*-- vec_extend_to_fp32_hi --------------------------------------------------*/
11100
11101#if __ARCH__ >= 14
11102#define vec_extend_to_fp32_lo(X, W) \
11103 ((__vector float)__builtin_s390_vclfnls((X), (W)));
11104#endif
11105
11106/*-- vec_round_from_fp32 ----------------------------------------------------*/
11107
11108#if __ARCH__ >= 14
11109#define vec_round_from_fp32(X, Y, W) \
11110 ((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W)));
11111#endif
11112
11113/*-- vec_convert_to_fp16 ----------------------------------------------------*/
11114
11115#if __ARCH__ >= 14
11116#define vec_convert_to_fp16(X, W) \
11117 ((__vector unsigned short)__builtin_s390_vcfn((X), (W)));
11118#endif
11119
11120/*-- vec_convert_from_fp16 --------------------------------------------------*/
11121
11122#if __ARCH__ >= 14
11123#define vec_convert_from_fp16(X, W) \
11124 ((__vector unsigned short)__builtin_s390_vcnf((X), (W)));
11125#endif
11126
11127/*-- vec_cp_until_zero ------------------------------------------------------*/
11128
11129static inline __ATTRS_o_ai __vector signed char
11130vec_cp_until_zero(__vector signed char __a) {
11131 return ((__vector signed char)
11132 __builtin_s390_vistrb((__vector unsigned char)__a));
11133}
11134
11135static inline __ATTRS_o_ai __vector __bool char
11136vec_cp_until_zero(__vector __bool char __a) {
11137 return ((__vector __bool char)
11138 __builtin_s390_vistrb((__vector unsigned char)__a));
11139}
11140
11141static inline __ATTRS_o_ai __vector unsigned char
11142vec_cp_until_zero(__vector unsigned char __a) {
11143 return __builtin_s390_vistrb(__a);
11144}
11145
11146static inline __ATTRS_o_ai __vector signed short
11147vec_cp_until_zero(__vector signed short __a) {
11148 return ((__vector signed short)
11149 __builtin_s390_vistrh((__vector unsigned short)__a));
11150}
11151
11152static inline __ATTRS_o_ai __vector __bool short
11153vec_cp_until_zero(__vector __bool short __a) {
11154 return ((__vector __bool short)
11155 __builtin_s390_vistrh((__vector unsigned short)__a));
11156}
11157
11158static inline __ATTRS_o_ai __vector unsigned short
11159vec_cp_until_zero(__vector unsigned short __a) {
11160 return __builtin_s390_vistrh(__a);
11161}
11162
11163static inline __ATTRS_o_ai __vector signed int
11164vec_cp_until_zero(__vector signed int __a) {
11165 return ((__vector signed int)
11166 __builtin_s390_vistrf((__vector unsigned int)__a));
11167}
11168
11169static inline __ATTRS_o_ai __vector __bool int
11170vec_cp_until_zero(__vector __bool int __a) {
11171 return ((__vector __bool int)
11172 __builtin_s390_vistrf((__vector unsigned int)__a));
11173}
11174
11175static inline __ATTRS_o_ai __vector unsigned int
11176vec_cp_until_zero(__vector unsigned int __a) {
11177 return __builtin_s390_vistrf(__a);
11178}
11179
11180/*-- vec_cp_until_zero_cc ---------------------------------------------------*/
11181
11182static inline __ATTRS_o_ai __vector signed char
11183vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
11184 return (__vector signed char)
11185 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
11186}
11187
11188static inline __ATTRS_o_ai __vector __bool char
11189vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
11190 return (__vector __bool char)
11191 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
11192}
11193
11194static inline __ATTRS_o_ai __vector unsigned char
11195vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
11196 return __builtin_s390_vistrbs(__a, __cc);
11197}
11198
11199static inline __ATTRS_o_ai __vector signed short
11200vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
11201 return (__vector signed short)
11202 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
11203}
11204
11205static inline __ATTRS_o_ai __vector __bool short
11206vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
11207 return (__vector __bool short)
11208 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
11209}
11210
11211static inline __ATTRS_o_ai __vector unsigned short
11212vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
11213 return __builtin_s390_vistrhs(__a, __cc);
11214}
11215
11216static inline __ATTRS_o_ai __vector signed int
11217vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
11218 return (__vector signed int)
11219 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
11220}
11221
11222static inline __ATTRS_o_ai __vector __bool int
11223vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
11224 return (__vector __bool int)
11225 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
11226}
11227
11228static inline __ATTRS_o_ai __vector unsigned int
11229vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
11230 return __builtin_s390_vistrfs(__a, __cc);
11231}
11232
11233/*-- vec_cmpeq_idx ----------------------------------------------------------*/
11234
11235static inline __ATTRS_o_ai __vector signed char
11236vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
11237 return (__vector signed char)
11238 __builtin_s390_vfeeb((__vector unsigned char)__a,
11239 (__vector unsigned char)__b);
11240}
11241
11242static inline __ATTRS_o_ai __vector unsigned char
11243vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
11244 return __builtin_s390_vfeeb((__vector unsigned char)__a,
11245 (__vector unsigned char)__b);
11246}
11247
11248static inline __ATTRS_o_ai __vector unsigned char
11249vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
11250 return __builtin_s390_vfeeb(__a, __b);
11251}
11252
11253static inline __ATTRS_o_ai __vector signed short
11254vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
11255 return (__vector signed short)
11256 __builtin_s390_vfeeh((__vector unsigned short)__a,
11257 (__vector unsigned short)__b);
11258}
11259
11260static inline __ATTRS_o_ai __vector unsigned short
11261vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
11262 return __builtin_s390_vfeeh((__vector unsigned short)__a,
11263 (__vector unsigned short)__b);
11264}
11265
11266static inline __ATTRS_o_ai __vector unsigned short
11267vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
11268 return __builtin_s390_vfeeh(__a, __b);
11269}
11270
11271static inline __ATTRS_o_ai __vector signed int
11272vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
11273 return (__vector signed int)
11274 __builtin_s390_vfeef((__vector unsigned int)__a,
11275 (__vector unsigned int)__b);
11276}
11277
11278static inline __ATTRS_o_ai __vector unsigned int
11279vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
11280 return __builtin_s390_vfeef((__vector unsigned int)__a,
11281 (__vector unsigned int)__b);
11282}
11283
11284static inline __ATTRS_o_ai __vector unsigned int
11285vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
11286 return __builtin_s390_vfeef(__a, __b);
11287}
11288
11289/*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
11290
11291static inline __ATTRS_o_ai __vector signed char
11292vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
11293 return (__vector signed char)
11294 __builtin_s390_vfeebs((__vector unsigned char)__a,
11295 (__vector unsigned char)__b, __cc);
11296}
11297
11298static inline __ATTRS_o_ai __vector unsigned char
11299vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
11300 return __builtin_s390_vfeebs((__vector unsigned char)__a,
11301 (__vector unsigned char)__b, __cc);
11302}
11303
11304static inline __ATTRS_o_ai __vector unsigned char
11305vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11306 int *__cc) {
11307 return __builtin_s390_vfeebs(__a, __b, __cc);
11308}
11309
11310static inline __ATTRS_o_ai __vector signed short
11311vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
11312 int *__cc) {
11313 return (__vector signed short)
11314 __builtin_s390_vfeehs((__vector unsigned short)__a,
11315 (__vector unsigned short)__b, __cc);
11316}
11317
11318static inline __ATTRS_o_ai __vector unsigned short
11319vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
11320 return __builtin_s390_vfeehs((__vector unsigned short)__a,
11321 (__vector unsigned short)__b, __cc);
11322}
11323
11324static inline __ATTRS_o_ai __vector unsigned short
11325vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11326 int *__cc) {
11327 return __builtin_s390_vfeehs(__a, __b, __cc);
11328}
11329
11330static inline __ATTRS_o_ai __vector signed int
11331vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
11332 return (__vector signed int)
11333 __builtin_s390_vfeefs((__vector unsigned int)__a,
11334 (__vector unsigned int)__b, __cc);
11335}
11336
11337static inline __ATTRS_o_ai __vector unsigned int
11338vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
11339 return __builtin_s390_vfeefs((__vector unsigned int)__a,
11340 (__vector unsigned int)__b, __cc);
11341}
11342
11343static inline __ATTRS_o_ai __vector unsigned int
11344vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11345 int *__cc) {
11346 return __builtin_s390_vfeefs(__a, __b, __cc);
11347}
11348
11349/*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
11350
11351static inline __ATTRS_o_ai __vector signed char
11352vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
11353 return (__vector signed char)
11354 __builtin_s390_vfeezb((__vector unsigned char)__a,
11355 (__vector unsigned char)__b);
11356}
11357
11358static inline __ATTRS_o_ai __vector unsigned char
11359vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
11360 return __builtin_s390_vfeezb((__vector unsigned char)__a,
11361 (__vector unsigned char)__b);
11362}
11363
11364static inline __ATTRS_o_ai __vector unsigned char
11365vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
11366 return __builtin_s390_vfeezb(__a, __b);
11367}
11368
11369static inline __ATTRS_o_ai __vector signed short
11370vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
11371 return (__vector signed short)
11372 __builtin_s390_vfeezh((__vector unsigned short)__a,
11373 (__vector unsigned short)__b);
11374}
11375
11376static inline __ATTRS_o_ai __vector unsigned short
11377vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
11378 return __builtin_s390_vfeezh((__vector unsigned short)__a,
11379 (__vector unsigned short)__b);
11380}
11381
11382static inline __ATTRS_o_ai __vector unsigned short
11383vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
11384 return __builtin_s390_vfeezh(__a, __b);
11385}
11386
11387static inline __ATTRS_o_ai __vector signed int
11388vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
11389 return (__vector signed int)
11390 __builtin_s390_vfeezf((__vector unsigned int)__a,
11391 (__vector unsigned int)__b);
11392}
11393
11394static inline __ATTRS_o_ai __vector unsigned int
11395vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
11396 return __builtin_s390_vfeezf((__vector unsigned int)__a,
11397 (__vector unsigned int)__b);
11398}
11399
11400static inline __ATTRS_o_ai __vector unsigned int
11401vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
11402 return __builtin_s390_vfeezf(__a, __b);
11403}
11404
11405/*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
11406
11407static inline __ATTRS_o_ai __vector signed char
11408vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
11409 int *__cc) {
11410 return (__vector signed char)
11411 __builtin_s390_vfeezbs((__vector unsigned char)__a,
11412 (__vector unsigned char)__b, __cc);
11413}
11414
11415static inline __ATTRS_o_ai __vector unsigned char
11416vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
11417 int *__cc) {
11418 return __builtin_s390_vfeezbs((__vector unsigned char)__a,
11419 (__vector unsigned char)__b, __cc);
11420}
11421
11422static inline __ATTRS_o_ai __vector unsigned char
11423vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11424 int *__cc) {
11425 return __builtin_s390_vfeezbs(__a, __b, __cc);
11426}
11427
11428static inline __ATTRS_o_ai __vector signed short
11429vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
11430 int *__cc) {
11431 return (__vector signed short)
11432 __builtin_s390_vfeezhs((__vector unsigned short)__a,
11433 (__vector unsigned short)__b, __cc);
11434}
11435
11436static inline __ATTRS_o_ai __vector unsigned short
11437vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
11438 int *__cc) {
11439 return __builtin_s390_vfeezhs((__vector unsigned short)__a,
11440 (__vector unsigned short)__b, __cc);
11441}
11442
11443static inline __ATTRS_o_ai __vector unsigned short
11444vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11445 int *__cc) {
11446 return __builtin_s390_vfeezhs(__a, __b, __cc);
11447}
11448
11449static inline __ATTRS_o_ai __vector signed int
11450vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
11451 int *__cc) {
11452 return (__vector signed int)
11453 __builtin_s390_vfeezfs((__vector unsigned int)__a,
11454 (__vector unsigned int)__b, __cc);
11455}
11456
11457static inline __ATTRS_o_ai __vector unsigned int
11458vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
11459 int *__cc) {
11460 return __builtin_s390_vfeezfs((__vector unsigned int)__a,
11461 (__vector unsigned int)__b, __cc);
11462}
11463
11464static inline __ATTRS_o_ai __vector unsigned int
11465vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11466 int *__cc) {
11467 return __builtin_s390_vfeezfs(__a, __b, __cc);
11468}
11469
11470/*-- vec_cmpne_idx ----------------------------------------------------------*/
11471
11472static inline __ATTRS_o_ai __vector signed char
11473vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
11474 return (__vector signed char)
11475 __builtin_s390_vfeneb((__vector unsigned char)__a,
11476 (__vector unsigned char)__b);
11477}
11478
11479static inline __ATTRS_o_ai __vector unsigned char
11480vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
11481 return __builtin_s390_vfeneb((__vector unsigned char)__a,
11482 (__vector unsigned char)__b);
11483}
11484
11485static inline __ATTRS_o_ai __vector unsigned char
11486vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
11487 return __builtin_s390_vfeneb(__a, __b);
11488}
11489
11490static inline __ATTRS_o_ai __vector signed short
11491vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
11492 return (__vector signed short)
11493 __builtin_s390_vfeneh((__vector unsigned short)__a,
11494 (__vector unsigned short)__b);
11495}
11496
11497static inline __ATTRS_o_ai __vector unsigned short
11498vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
11499 return __builtin_s390_vfeneh((__vector unsigned short)__a,
11500 (__vector unsigned short)__b);
11501}
11502
11503static inline __ATTRS_o_ai __vector unsigned short
11504vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
11505 return __builtin_s390_vfeneh(__a, __b);
11506}
11507
11508static inline __ATTRS_o_ai __vector signed int
11509vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
11510 return (__vector signed int)
11511 __builtin_s390_vfenef((__vector unsigned int)__a,
11512 (__vector unsigned int)__b);
11513}
11514
11515static inline __ATTRS_o_ai __vector unsigned int
11516vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
11517 return __builtin_s390_vfenef((__vector unsigned int)__a,
11518 (__vector unsigned int)__b);
11519}
11520
11521static inline __ATTRS_o_ai __vector unsigned int
11522vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
11523 return __builtin_s390_vfenef(__a, __b);
11524}
11525
11526/*-- vec_cmpne_idx_cc -------------------------------------------------------*/
11527
11528static inline __ATTRS_o_ai __vector signed char
11529vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
11530 return (__vector signed char)
11531 __builtin_s390_vfenebs((__vector unsigned char)__a,
11532 (__vector unsigned char)__b, __cc);
11533}
11534
11535static inline __ATTRS_o_ai __vector unsigned char
11536vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
11537 return __builtin_s390_vfenebs((__vector unsigned char)__a,
11538 (__vector unsigned char)__b, __cc);
11539}
11540
11541static inline __ATTRS_o_ai __vector unsigned char
11542vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11543 int *__cc) {
11544 return __builtin_s390_vfenebs(__a, __b, __cc);
11545}
11546
11547static inline __ATTRS_o_ai __vector signed short
11548vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
11549 int *__cc) {
11550 return (__vector signed short)
11551 __builtin_s390_vfenehs((__vector unsigned short)__a,
11552 (__vector unsigned short)__b, __cc);
11553}
11554
11555static inline __ATTRS_o_ai __vector unsigned short
11556vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
11557 int *__cc) {
11558 return __builtin_s390_vfenehs((__vector unsigned short)__a,
11559 (__vector unsigned short)__b, __cc);
11560}
11561
11562static inline __ATTRS_o_ai __vector unsigned short
11563vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11564 int *__cc) {
11565 return __builtin_s390_vfenehs(__a, __b, __cc);
11566}
11567
11568static inline __ATTRS_o_ai __vector signed int
11569vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
11570 return (__vector signed int)
11571 __builtin_s390_vfenefs((__vector unsigned int)__a,
11572 (__vector unsigned int)__b, __cc);
11573}
11574
11575static inline __ATTRS_o_ai __vector unsigned int
11576vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
11577 return __builtin_s390_vfenefs((__vector unsigned int)__a,
11578 (__vector unsigned int)__b, __cc);
11579}
11580
11581static inline __ATTRS_o_ai __vector unsigned int
11582vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11583 int *__cc) {
11584 return __builtin_s390_vfenefs(__a, __b, __cc);
11585}
11586
11587/*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
11588
11589static inline __ATTRS_o_ai __vector signed char
11590vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
11591 return (__vector signed char)
11592 __builtin_s390_vfenezb((__vector unsigned char)__a,
11593 (__vector unsigned char)__b);
11594}
11595
11596static inline __ATTRS_o_ai __vector unsigned char
11597vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
11598 return __builtin_s390_vfenezb((__vector unsigned char)__a,
11599 (__vector unsigned char)__b);
11600}
11601
11602static inline __ATTRS_o_ai __vector unsigned char
11603vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
11604 return __builtin_s390_vfenezb(__a, __b);
11605}
11606
11607static inline __ATTRS_o_ai __vector signed short
11608vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
11609 return (__vector signed short)
11610 __builtin_s390_vfenezh((__vector unsigned short)__a,
11611 (__vector unsigned short)__b);
11612}
11613
11614static inline __ATTRS_o_ai __vector unsigned short
11615vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
11616 return __builtin_s390_vfenezh((__vector unsigned short)__a,
11617 (__vector unsigned short)__b);
11618}
11619
11620static inline __ATTRS_o_ai __vector unsigned short
11621vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
11622 return __builtin_s390_vfenezh(__a, __b);
11623}
11624
11625static inline __ATTRS_o_ai __vector signed int
11626vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
11627 return (__vector signed int)
11628 __builtin_s390_vfenezf((__vector unsigned int)__a,
11629 (__vector unsigned int)__b);
11630}
11631
11632static inline __ATTRS_o_ai __vector unsigned int
11633vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
11634 return __builtin_s390_vfenezf((__vector unsigned int)__a,
11635 (__vector unsigned int)__b);
11636}
11637
11638static inline __ATTRS_o_ai __vector unsigned int
11639vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
11640 return __builtin_s390_vfenezf(__a, __b);
11641}
11642
11643/*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
11644
11645static inline __ATTRS_o_ai __vector signed char
11646vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
11647 int *__cc) {
11648 return (__vector signed char)
11649 __builtin_s390_vfenezbs((__vector unsigned char)__a,
11650 (__vector unsigned char)__b, __cc);
11651}
11652
11653static inline __ATTRS_o_ai __vector unsigned char
11654vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
11655 int *__cc) {
11656 return __builtin_s390_vfenezbs((__vector unsigned char)__a,
11657 (__vector unsigned char)__b, __cc);
11658}
11659
11660static inline __ATTRS_o_ai __vector unsigned char
11661vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11662 int *__cc) {
11663 return __builtin_s390_vfenezbs(__a, __b, __cc);
11664}
11665
11666static inline __ATTRS_o_ai __vector signed short
11667vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
11668 int *__cc) {
11669 return (__vector signed short)
11670 __builtin_s390_vfenezhs((__vector unsigned short)__a,
11671 (__vector unsigned short)__b, __cc);
11672}
11673
11674static inline __ATTRS_o_ai __vector unsigned short
11675vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
11676 int *__cc) {
11677 return __builtin_s390_vfenezhs((__vector unsigned short)__a,
11678 (__vector unsigned short)__b, __cc);
11679}
11680
11681static inline __ATTRS_o_ai __vector unsigned short
11682vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11683 int *__cc) {
11684 return __builtin_s390_vfenezhs(__a, __b, __cc);
11685}
11686
11687static inline __ATTRS_o_ai __vector signed int
11688vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
11689 int *__cc) {
11690 return (__vector signed int)
11691 __builtin_s390_vfenezfs((__vector unsigned int)__a,
11692 (__vector unsigned int)__b, __cc);
11693}
11694
11695static inline __ATTRS_o_ai __vector unsigned int
11696vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
11697 int *__cc) {
11698 return __builtin_s390_vfenezfs((__vector unsigned int)__a,
11699 (__vector unsigned int)__b, __cc);
11700}
11701
11702static inline __ATTRS_o_ai __vector unsigned int
11703vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11704 int *__cc) {
11705 return __builtin_s390_vfenezfs(__a, __b, __cc);
11706}
11707
11708/*-- vec_cmprg --------------------------------------------------------------*/
11709
11710static inline __ATTRS_o_ai __vector __bool char
11711vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
11712 __vector unsigned char __c) {
11713 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
11714}
11715
11716static inline __ATTRS_o_ai __vector __bool short
11717vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
11718 __vector unsigned short __c) {
11719 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
11720}
11721
11722static inline __ATTRS_o_ai __vector __bool int
11723vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
11724 __vector unsigned int __c) {
11725 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
11726}
11727
11728/*-- vec_cmprg_cc -----------------------------------------------------------*/
11729
11730static inline __ATTRS_o_ai __vector __bool char
11731vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
11732 __vector unsigned char __c, int *__cc) {
11733 return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
11734}
11735
11736static inline __ATTRS_o_ai __vector __bool short
11737vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
11738 __vector unsigned short __c, int *__cc) {
11739 return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
11740}
11741
11742static inline __ATTRS_o_ai __vector __bool int
11743vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
11744 __vector unsigned int __c, int *__cc) {
11745 return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
11746}
11747
11748/*-- vec_cmprg_idx ----------------------------------------------------------*/
11749
11750static inline __ATTRS_o_ai __vector unsigned char
11751vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
11752 __vector unsigned char __c) {
11753 return __builtin_s390_vstrcb(__a, __b, __c, 0);
11754}
11755
11756static inline __ATTRS_o_ai __vector unsigned short
11757vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
11758 __vector unsigned short __c) {
11759 return __builtin_s390_vstrch(__a, __b, __c, 0);
11760}
11761
11762static inline __ATTRS_o_ai __vector unsigned int
11763vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
11764 __vector unsigned int __c) {
11765 return __builtin_s390_vstrcf(__a, __b, __c, 0);
11766}
11767
11768/*-- vec_cmprg_idx_cc -------------------------------------------------------*/
11769
11770static inline __ATTRS_o_ai __vector unsigned char
11771vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11772 __vector unsigned char __c, int *__cc) {
11773 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
11774}
11775
11776static inline __ATTRS_o_ai __vector unsigned short
11777vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11778 __vector unsigned short __c, int *__cc) {
11779 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
11780}
11781
11782static inline __ATTRS_o_ai __vector unsigned int
11783vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11784 __vector unsigned int __c, int *__cc) {
11785 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
11786}
11787
11788/*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
11789
11790static inline __ATTRS_o_ai __vector unsigned char
11791vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
11792 __vector unsigned char __c) {
11793 return __builtin_s390_vstrczb(__a, __b, __c, 0);
11794}
11795
11796static inline __ATTRS_o_ai __vector unsigned short
11797vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
11798 __vector unsigned short __c) {
11799 return __builtin_s390_vstrczh(__a, __b, __c, 0);
11800}
11801
11802static inline __ATTRS_o_ai __vector unsigned int
11803vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
11804 __vector unsigned int __c) {
11805 return __builtin_s390_vstrczf(__a, __b, __c, 0);
11806}
11807
11808/*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
11809
11810static inline __ATTRS_o_ai __vector unsigned char
11811vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11812 __vector unsigned char __c, int *__cc) {
11813 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
11814}
11815
11816static inline __ATTRS_o_ai __vector unsigned short
11817vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11818 __vector unsigned short __c, int *__cc) {
11819 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
11820}
11821
11822static inline __ATTRS_o_ai __vector unsigned int
11823vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11824 __vector unsigned int __c, int *__cc) {
11825 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
11826}
11827
11828/*-- vec_cmpnrg -------------------------------------------------------------*/
11829
11830static inline __ATTRS_o_ai __vector __bool char
11831vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
11832 __vector unsigned char __c) {
11833 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
11834}
11835
11836static inline __ATTRS_o_ai __vector __bool short
11837vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
11838 __vector unsigned short __c) {
11839 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
11840}
11841
11842static inline __ATTRS_o_ai __vector __bool int
11843vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
11844 __vector unsigned int __c) {
11845 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
11846}
11847
11848/*-- vec_cmpnrg_cc ----------------------------------------------------------*/
11849
11850static inline __ATTRS_o_ai __vector __bool char
11851vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
11852 __vector unsigned char __c, int *__cc) {
11853 return (__vector __bool char)
11854 __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
11855}
11856
11857static inline __ATTRS_o_ai __vector __bool short
11858vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
11859 __vector unsigned short __c, int *__cc) {
11860 return (__vector __bool short)
11861 __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
11862}
11863
11864static inline __ATTRS_o_ai __vector __bool int
11865vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
11866 __vector unsigned int __c, int *__cc) {
11867 return (__vector __bool int)
11868 __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
11869}
11870
11871/*-- vec_cmpnrg_idx ---------------------------------------------------------*/
11872
11873static inline __ATTRS_o_ai __vector unsigned char
11874vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
11875 __vector unsigned char __c) {
11876 return __builtin_s390_vstrcb(__a, __b, __c, 8);
11877}
11878
11879static inline __ATTRS_o_ai __vector unsigned short
11880vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
11881 __vector unsigned short __c) {
11882 return __builtin_s390_vstrch(__a, __b, __c, 8);
11883}
11884
11885static inline __ATTRS_o_ai __vector unsigned int
11886vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
11887 __vector unsigned int __c) {
11888 return __builtin_s390_vstrcf(__a, __b, __c, 8);
11889}
11890
11891/*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
11892
11893static inline __ATTRS_o_ai __vector unsigned char
11894vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11895 __vector unsigned char __c, int *__cc) {
11896 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
11897}
11898
11899static inline __ATTRS_o_ai __vector unsigned short
11900vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11901 __vector unsigned short __c, int *__cc) {
11902 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
11903}
11904
11905static inline __ATTRS_o_ai __vector unsigned int
11906vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11907 __vector unsigned int __c, int *__cc) {
11908 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
11909}
11910
11911/*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
11912
11913static inline __ATTRS_o_ai __vector unsigned char
11914vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
11915 __vector unsigned char __c) {
11916 return __builtin_s390_vstrczb(__a, __b, __c, 8);
11917}
11918
11919static inline __ATTRS_o_ai __vector unsigned short
11920vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
11921 __vector unsigned short __c) {
11922 return __builtin_s390_vstrczh(__a, __b, __c, 8);
11923}
11924
11925static inline __ATTRS_o_ai __vector unsigned int
11926vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
11927 __vector unsigned int __c) {
11928 return __builtin_s390_vstrczf(__a, __b, __c, 8);
11929}
11930
11931/*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
11932
11933static inline __ATTRS_o_ai __vector unsigned char
11934vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
11935 __vector unsigned char __b,
11936 __vector unsigned char __c, int *__cc) {
11937 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
11938}
11939
11940static inline __ATTRS_o_ai __vector unsigned short
11941vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
11942 __vector unsigned short __b,
11943 __vector unsigned short __c, int *__cc) {
11944 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
11945}
11946
11947static inline __ATTRS_o_ai __vector unsigned int
11948vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
11949 __vector unsigned int __b,
11950 __vector unsigned int __c, int *__cc) {
11951 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
11952}
11953
11954/*-- vec_find_any_eq --------------------------------------------------------*/
11955
11956static inline __ATTRS_o_ai __vector __bool char
11957vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
11958 return (__vector __bool char)
11959 __builtin_s390_vfaeb((__vector unsigned char)__a,
11960 (__vector unsigned char)__b, 4);
11961}
11962
11963static inline __ATTRS_o_ai __vector __bool char
11964vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
11965 return (__vector __bool char)
11966 __builtin_s390_vfaeb((__vector unsigned char)__a,
11967 (__vector unsigned char)__b, 4);
11968}
11969
11970static inline __ATTRS_o_ai __vector __bool char
11971vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
11972 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
11973}
11974
11975static inline __ATTRS_o_ai __vector __bool short
11976vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
11977 return (__vector __bool short)
11978 __builtin_s390_vfaeh((__vector unsigned short)__a,
11979 (__vector unsigned short)__b, 4);
11980}
11981
11982static inline __ATTRS_o_ai __vector __bool short
11983vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
11984 return (__vector __bool short)
11985 __builtin_s390_vfaeh((__vector unsigned short)__a,
11986 (__vector unsigned short)__b, 4);
11987}
11988
11989static inline __ATTRS_o_ai __vector __bool short
11990vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
11991 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
11992}
11993
11994static inline __ATTRS_o_ai __vector __bool int
11995vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
11996 return (__vector __bool int)
11997 __builtin_s390_vfaef((__vector unsigned int)__a,
11998 (__vector unsigned int)__b, 4);
11999}
12000
12001static inline __ATTRS_o_ai __vector __bool int
12002vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
12003 return (__vector __bool int)
12004 __builtin_s390_vfaef((__vector unsigned int)__a,
12005 (__vector unsigned int)__b, 4);
12006}
12007
12008static inline __ATTRS_o_ai __vector __bool int
12009vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
12010 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
12011}
12012
12013/*-- vec_find_any_eq_cc -----------------------------------------------------*/
12014
12015static inline __ATTRS_o_ai __vector __bool char
12016vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
12017 int *__cc) {
12018 return (__vector __bool char)
12019 __builtin_s390_vfaebs((__vector unsigned char)__a,
12020 (__vector unsigned char)__b, 4, __cc);
12021}
12022
12023static inline __ATTRS_o_ai __vector __bool char
12024vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
12025 int *__cc) {
12026 return (__vector __bool char)
12027 __builtin_s390_vfaebs((__vector unsigned char)__a,
12028 (__vector unsigned char)__b, 4, __cc);
12029}
12030
12031static inline __ATTRS_o_ai __vector __bool char
12032vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
12033 int *__cc) {
12034 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
12035}
12036
12037static inline __ATTRS_o_ai __vector __bool short
12038vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
12039 int *__cc) {
12040 return (__vector __bool short)
12041 __builtin_s390_vfaehs((__vector unsigned short)__a,
12042 (__vector unsigned short)__b, 4, __cc);
12043}
12044
12045static inline __ATTRS_o_ai __vector __bool short
12046vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
12047 int *__cc) {
12048 return (__vector __bool short)
12049 __builtin_s390_vfaehs((__vector unsigned short)__a,
12050 (__vector unsigned short)__b, 4, __cc);
12051}
12052
12053static inline __ATTRS_o_ai __vector __bool short
12054vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
12055 int *__cc) {
12056 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
12057}
12058
12059static inline __ATTRS_o_ai __vector __bool int
12060vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
12061 int *__cc) {
12062 return (__vector __bool int)
12063 __builtin_s390_vfaefs((__vector unsigned int)__a,
12064 (__vector unsigned int)__b, 4, __cc);
12065}
12066
12067static inline __ATTRS_o_ai __vector __bool int
12068vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
12069 int *__cc) {
12070 return (__vector __bool int)
12071 __builtin_s390_vfaefs((__vector unsigned int)__a,
12072 (__vector unsigned int)__b, 4, __cc);
12073}
12074
12075static inline __ATTRS_o_ai __vector __bool int
12076vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
12077 int *__cc) {
12078 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
12079}
12080
12081/*-- vec_find_any_eq_idx ----------------------------------------------------*/
12082
12083static inline __ATTRS_o_ai __vector signed char
12084vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
12085 return (__vector signed char)
12086 __builtin_s390_vfaeb((__vector unsigned char)__a,
12087 (__vector unsigned char)__b, 0);
12088}
12089
12090static inline __ATTRS_o_ai __vector unsigned char
12091vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
12092 return __builtin_s390_vfaeb((__vector unsigned char)__a,
12093 (__vector unsigned char)__b, 0);
12094}
12095
12096static inline __ATTRS_o_ai __vector unsigned char
12097vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
12098 return __builtin_s390_vfaeb(__a, __b, 0);
12099}
12100
12101static inline __ATTRS_o_ai __vector signed short
12102vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
12103 return (__vector signed short)
12104 __builtin_s390_vfaeh((__vector unsigned short)__a,
12105 (__vector unsigned short)__b, 0);
12106}
12107
12108static inline __ATTRS_o_ai __vector unsigned short
12109vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
12110 return __builtin_s390_vfaeh((__vector unsigned short)__a,
12111 (__vector unsigned short)__b, 0);
12112}
12113
12114static inline __ATTRS_o_ai __vector unsigned short
12115vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
12116 return __builtin_s390_vfaeh(__a, __b, 0);
12117}
12118
12119static inline __ATTRS_o_ai __vector signed int
12120vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
12121 return (__vector signed int)
12122 __builtin_s390_vfaef((__vector unsigned int)__a,
12123 (__vector unsigned int)__b, 0);
12124}
12125
12126static inline __ATTRS_o_ai __vector unsigned int
12127vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
12128 return __builtin_s390_vfaef((__vector unsigned int)__a,
12129 (__vector unsigned int)__b, 0);
12130}
12131
12132static inline __ATTRS_o_ai __vector unsigned int
12133vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
12134 return __builtin_s390_vfaef(__a, __b, 0);
12135}
12136
12137/*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
12138
12139static inline __ATTRS_o_ai __vector signed char
12140vec_find_any_eq_idx_cc(__vector signed char __a,
12141 __vector signed char __b, int *__cc) {
12142 return (__vector signed char)
12143 __builtin_s390_vfaebs((__vector unsigned char)__a,
12144 (__vector unsigned char)__b, 0, __cc);
12145}
12146
12147static inline __ATTRS_o_ai __vector unsigned char
12148vec_find_any_eq_idx_cc(__vector __bool char __a,
12149 __vector __bool char __b, int *__cc) {
12150 return __builtin_s390_vfaebs((__vector unsigned char)__a,
12151 (__vector unsigned char)__b, 0, __cc);
12152}
12153
12154static inline __ATTRS_o_ai __vector unsigned char
12155vec_find_any_eq_idx_cc(__vector unsigned char __a,
12156 __vector unsigned char __b, int *__cc) {
12157 return __builtin_s390_vfaebs(__a, __b, 0, __cc);
12158}
12159
12160static inline __ATTRS_o_ai __vector signed short
12161vec_find_any_eq_idx_cc(__vector signed short __a,
12162 __vector signed short __b, int *__cc) {
12163 return (__vector signed short)
12164 __builtin_s390_vfaehs((__vector unsigned short)__a,
12165 (__vector unsigned short)__b, 0, __cc);
12166}
12167
12168static inline __ATTRS_o_ai __vector unsigned short
12169vec_find_any_eq_idx_cc(__vector __bool short __a,
12170 __vector __bool short __b, int *__cc) {
12171 return __builtin_s390_vfaehs((__vector unsigned short)__a,
12172 (__vector unsigned short)__b, 0, __cc);
12173}
12174
12175static inline __ATTRS_o_ai __vector unsigned short
12176vec_find_any_eq_idx_cc(__vector unsigned short __a,
12177 __vector unsigned short __b, int *__cc) {
12178 return __builtin_s390_vfaehs(__a, __b, 0, __cc);
12179}
12180
12181static inline __ATTRS_o_ai __vector signed int
12182vec_find_any_eq_idx_cc(__vector signed int __a,
12183 __vector signed int __b, int *__cc) {
12184 return (__vector signed int)
12185 __builtin_s390_vfaefs((__vector unsigned int)__a,
12186 (__vector unsigned int)__b, 0, __cc);
12187}
12188
12189static inline __ATTRS_o_ai __vector unsigned int
12190vec_find_any_eq_idx_cc(__vector __bool int __a,
12191 __vector __bool int __b, int *__cc) {
12192 return __builtin_s390_vfaefs((__vector unsigned int)__a,
12193 (__vector unsigned int)__b, 0, __cc);
12194}
12195
12196static inline __ATTRS_o_ai __vector unsigned int
12197vec_find_any_eq_idx_cc(__vector unsigned int __a,
12198 __vector unsigned int __b, int *__cc) {
12199 return __builtin_s390_vfaefs(__a, __b, 0, __cc);
12200}
12201
12202/*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
12203
12204static inline __ATTRS_o_ai __vector signed char
12205vec_find_any_eq_or_0_idx(__vector signed char __a,
12206 __vector signed char __b) {
12207 return (__vector signed char)
12208 __builtin_s390_vfaezb((__vector unsigned char)__a,
12209 (__vector unsigned char)__b, 0);
12210}
12211
12212static inline __ATTRS_o_ai __vector unsigned char
12213vec_find_any_eq_or_0_idx(__vector __bool char __a,
12214 __vector __bool char __b) {
12215 return __builtin_s390_vfaezb((__vector unsigned char)__a,
12216 (__vector unsigned char)__b, 0);
12217}
12218
12219static inline __ATTRS_o_ai __vector unsigned char
12220vec_find_any_eq_or_0_idx(__vector unsigned char __a,
12221 __vector unsigned char __b) {
12222 return __builtin_s390_vfaezb(__a, __b, 0);
12223}
12224
12225static inline __ATTRS_o_ai __vector signed short
12226vec_find_any_eq_or_0_idx(__vector signed short __a,
12227 __vector signed short __b) {
12228 return (__vector signed short)
12229 __builtin_s390_vfaezh((__vector unsigned short)__a,
12230 (__vector unsigned short)__b, 0);
12231}
12232
12233static inline __ATTRS_o_ai __vector unsigned short
12234vec_find_any_eq_or_0_idx(__vector __bool short __a,
12235 __vector __bool short __b) {
12236 return __builtin_s390_vfaezh((__vector unsigned short)__a,
12237 (__vector unsigned short)__b, 0);
12238}
12239
12240static inline __ATTRS_o_ai __vector unsigned short
12241vec_find_any_eq_or_0_idx(__vector unsigned short __a,
12242 __vector unsigned short __b) {
12243 return __builtin_s390_vfaezh(__a, __b, 0);
12244}
12245
12246static inline __ATTRS_o_ai __vector signed int
12247vec_find_any_eq_or_0_idx(__vector signed int __a,
12248 __vector signed int __b) {
12249 return (__vector signed int)
12250 __builtin_s390_vfaezf((__vector unsigned int)__a,
12251 (__vector unsigned int)__b, 0);
12252}
12253
12254static inline __ATTRS_o_ai __vector unsigned int
12255vec_find_any_eq_or_0_idx(__vector __bool int __a,
12256 __vector __bool int __b) {
12257 return __builtin_s390_vfaezf((__vector unsigned int)__a,
12258 (__vector unsigned int)__b, 0);
12259}
12260
12261static inline __ATTRS_o_ai __vector unsigned int
12262vec_find_any_eq_or_0_idx(__vector unsigned int __a,
12263 __vector unsigned int __b) {
12264 return __builtin_s390_vfaezf(__a, __b, 0);
12265}
12266
12267/*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
12268
12269static inline __ATTRS_o_ai __vector signed char
12270vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
12271 __vector signed char __b, int *__cc) {
12272 return (__vector signed char)
12273 __builtin_s390_vfaezbs((__vector unsigned char)__a,
12274 (__vector unsigned char)__b, 0, __cc);
12275}
12276
12277static inline __ATTRS_o_ai __vector unsigned char
12278vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
12279 __vector __bool char __b, int *__cc) {
12280 return __builtin_s390_vfaezbs((__vector unsigned char)__a,
12281 (__vector unsigned char)__b, 0, __cc);
12282}
12283
12284static inline __ATTRS_o_ai __vector unsigned char
12285vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
12286 __vector unsigned char __b, int *__cc) {
12287 return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
12288}
12289
12290static inline __ATTRS_o_ai __vector signed short
12291vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
12292 __vector signed short __b, int *__cc) {
12293 return (__vector signed short)
12294 __builtin_s390_vfaezhs((__vector unsigned short)__a,
12295 (__vector unsigned short)__b, 0, __cc);
12296}
12297
12298static inline __ATTRS_o_ai __vector unsigned short
12299vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
12300 __vector __bool short __b, int *__cc) {
12301 return __builtin_s390_vfaezhs((__vector unsigned short)__a,
12302 (__vector unsigned short)__b, 0, __cc);
12303}
12304
12305static inline __ATTRS_o_ai __vector unsigned short
12306vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
12307 __vector unsigned short __b, int *__cc) {
12308 return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
12309}
12310
12311static inline __ATTRS_o_ai __vector signed int
12312vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
12313 __vector signed int __b, int *__cc) {
12314 return (__vector signed int)
12315 __builtin_s390_vfaezfs((__vector unsigned int)__a,
12316 (__vector unsigned int)__b, 0, __cc);
12317}
12318
12319static inline __ATTRS_o_ai __vector unsigned int
12320vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
12321 __vector __bool int __b, int *__cc) {
12322 return __builtin_s390_vfaezfs((__vector unsigned int)__a,
12323 (__vector unsigned int)__b, 0, __cc);
12324}
12325
12326static inline __ATTRS_o_ai __vector unsigned int
12327vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
12328 __vector unsigned int __b, int *__cc) {
12329 return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
12330}
12331
12332/*-- vec_find_any_ne --------------------------------------------------------*/
12333
12334static inline __ATTRS_o_ai __vector __bool char
12335vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
12336 return (__vector __bool char)
12337 __builtin_s390_vfaeb((__vector unsigned char)__a,
12338 (__vector unsigned char)__b, 12);
12339}
12340
12341static inline __ATTRS_o_ai __vector __bool char
12342vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
12343 return (__vector __bool char)
12344 __builtin_s390_vfaeb((__vector unsigned char)__a,
12345 (__vector unsigned char)__b, 12);
12346}
12347
12348static inline __ATTRS_o_ai __vector __bool char
12349vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
12350 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
12351}
12352
12353static inline __ATTRS_o_ai __vector __bool short
12354vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
12355 return (__vector __bool short)
12356 __builtin_s390_vfaeh((__vector unsigned short)__a,
12357 (__vector unsigned short)__b, 12);
12358}
12359
12360static inline __ATTRS_o_ai __vector __bool short
12361vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
12362 return (__vector __bool short)
12363 __builtin_s390_vfaeh((__vector unsigned short)__a,
12364 (__vector unsigned short)__b, 12);
12365}
12366
12367static inline __ATTRS_o_ai __vector __bool short
12368vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
12369 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
12370}
12371
12372static inline __ATTRS_o_ai __vector __bool int
12373vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
12374 return (__vector __bool int)
12375 __builtin_s390_vfaef((__vector unsigned int)__a,
12376 (__vector unsigned int)__b, 12);
12377}
12378
12379static inline __ATTRS_o_ai __vector __bool int
12380vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
12381 return (__vector __bool int)
12382 __builtin_s390_vfaef((__vector unsigned int)__a,
12383 (__vector unsigned int)__b, 12);
12384}
12385
12386static inline __ATTRS_o_ai __vector __bool int
12387vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
12388 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
12389}
12390
12391/*-- vec_find_any_ne_cc -----------------------------------------------------*/
12392
12393static inline __ATTRS_o_ai __vector __bool char
12394vec_find_any_ne_cc(__vector signed char __a,
12395 __vector signed char __b, int *__cc) {
12396 return (__vector __bool char)
12397 __builtin_s390_vfaebs((__vector unsigned char)__a,
12398 (__vector unsigned char)__b, 12, __cc);
12399}
12400
12401static inline __ATTRS_o_ai __vector __bool char
12402vec_find_any_ne_cc(__vector __bool char __a,
12403 __vector __bool char __b, int *__cc) {
12404 return (__vector __bool char)
12405 __builtin_s390_vfaebs((__vector unsigned char)__a,
12406 (__vector unsigned char)__b, 12, __cc);
12407}
12408
12409static inline __ATTRS_o_ai __vector __bool char
12410vec_find_any_ne_cc(__vector unsigned char __a,
12411 __vector unsigned char __b, int *__cc) {
12412 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
12413}
12414
12415static inline __ATTRS_o_ai __vector __bool short
12416vec_find_any_ne_cc(__vector signed short __a,
12417 __vector signed short __b, int *__cc) {
12418 return (__vector __bool short)
12419 __builtin_s390_vfaehs((__vector unsigned short)__a,
12420 (__vector unsigned short)__b, 12, __cc);
12421}
12422
12423static inline __ATTRS_o_ai __vector __bool short
12424vec_find_any_ne_cc(__vector __bool short __a,
12425 __vector __bool short __b, int *__cc) {
12426 return (__vector __bool short)
12427 __builtin_s390_vfaehs((__vector unsigned short)__a,
12428 (__vector unsigned short)__b, 12, __cc);
12429}
12430
12431static inline __ATTRS_o_ai __vector __bool short
12432vec_find_any_ne_cc(__vector unsigned short __a,
12433 __vector unsigned short __b, int *__cc) {
12434 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
12435}
12436
12437static inline __ATTRS_o_ai __vector __bool int
12438vec_find_any_ne_cc(__vector signed int __a,
12439 __vector signed int __b, int *__cc) {
12440 return (__vector __bool int)
12441 __builtin_s390_vfaefs((__vector unsigned int)__a,
12442 (__vector unsigned int)__b, 12, __cc);
12443}
12444
12445static inline __ATTRS_o_ai __vector __bool int
12446vec_find_any_ne_cc(__vector __bool int __a,
12447 __vector __bool int __b, int *__cc) {
12448 return (__vector __bool int)
12449 __builtin_s390_vfaefs((__vector unsigned int)__a,
12450 (__vector unsigned int)__b, 12, __cc);
12451}
12452
12453static inline __ATTRS_o_ai __vector __bool int
12454vec_find_any_ne_cc(__vector unsigned int __a,
12455 __vector unsigned int __b, int *__cc) {
12456 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
12457}
12458
12459/*-- vec_find_any_ne_idx ----------------------------------------------------*/
12460
12461static inline __ATTRS_o_ai __vector signed char
12462vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
12463 return (__vector signed char)
12464 __builtin_s390_vfaeb((__vector unsigned char)__a,
12465 (__vector unsigned char)__b, 8);
12466}
12467
12468static inline __ATTRS_o_ai __vector unsigned char
12469vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
12470 return __builtin_s390_vfaeb((__vector unsigned char)__a,
12471 (__vector unsigned char)__b, 8);
12472}
12473
12474static inline __ATTRS_o_ai __vector unsigned char
12475vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
12476 return __builtin_s390_vfaeb(__a, __b, 8);
12477}
12478
12479static inline __ATTRS_o_ai __vector signed short
12480vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
12481 return (__vector signed short)
12482 __builtin_s390_vfaeh((__vector unsigned short)__a,
12483 (__vector unsigned short)__b, 8);
12484}
12485
12486static inline __ATTRS_o_ai __vector unsigned short
12487vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
12488 return __builtin_s390_vfaeh((__vector unsigned short)__a,
12489 (__vector unsigned short)__b, 8);
12490}
12491
12492static inline __ATTRS_o_ai __vector unsigned short
12493vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
12494 return __builtin_s390_vfaeh(__a, __b, 8);
12495}
12496
12497static inline __ATTRS_o_ai __vector signed int
12498vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
12499 return (__vector signed int)
12500 __builtin_s390_vfaef((__vector unsigned int)__a,
12501 (__vector unsigned int)__b, 8);
12502}
12503
12504static inline __ATTRS_o_ai __vector unsigned int
12505vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
12506 return __builtin_s390_vfaef((__vector unsigned int)__a,
12507 (__vector unsigned int)__b, 8);
12508}
12509
12510static inline __ATTRS_o_ai __vector unsigned int
12511vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
12512 return __builtin_s390_vfaef(__a, __b, 8);
12513}
12514
12515/*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
12516
12517static inline __ATTRS_o_ai __vector signed char
12518vec_find_any_ne_idx_cc(__vector signed char __a,
12519 __vector signed char __b, int *__cc) {
12520 return (__vector signed char)
12521 __builtin_s390_vfaebs((__vector unsigned char)__a,
12522 (__vector unsigned char)__b, 8, __cc);
12523}
12524
12525static inline __ATTRS_o_ai __vector unsigned char
12526vec_find_any_ne_idx_cc(__vector __bool char __a,
12527 __vector __bool char __b, int *__cc) {
12528 return __builtin_s390_vfaebs((__vector unsigned char)__a,
12529 (__vector unsigned char)__b, 8, __cc);
12530}
12531
12532static inline __ATTRS_o_ai __vector unsigned char
12533vec_find_any_ne_idx_cc(__vector unsigned char __a,
12534 __vector unsigned char __b,
12535 int *__cc) {
12536 return __builtin_s390_vfaebs(__a, __b, 8, __cc);
12537}
12538
12539static inline __ATTRS_o_ai __vector signed short
12540vec_find_any_ne_idx_cc(__vector signed short __a,
12541 __vector signed short __b, int *__cc) {
12542 return (__vector signed short)
12543 __builtin_s390_vfaehs((__vector unsigned short)__a,
12544 (__vector unsigned short)__b, 8, __cc);
12545}
12546
12547static inline __ATTRS_o_ai __vector unsigned short
12548vec_find_any_ne_idx_cc(__vector __bool short __a,
12549 __vector __bool short __b, int *__cc) {
12550 return __builtin_s390_vfaehs((__vector unsigned short)__a,
12551 (__vector unsigned short)__b, 8, __cc);
12552}
12553
12554static inline __ATTRS_o_ai __vector unsigned short
12555vec_find_any_ne_idx_cc(__vector unsigned short __a,
12556 __vector unsigned short __b, int *__cc) {
12557 return __builtin_s390_vfaehs(__a, __b, 8, __cc);
12558}
12559
12560static inline __ATTRS_o_ai __vector signed int
12561vec_find_any_ne_idx_cc(__vector signed int __a,
12562 __vector signed int __b, int *__cc) {
12563 return (__vector signed int)
12564 __builtin_s390_vfaefs((__vector unsigned int)__a,
12565 (__vector unsigned int)__b, 8, __cc);
12566}
12567
12568static inline __ATTRS_o_ai __vector unsigned int
12569vec_find_any_ne_idx_cc(__vector __bool int __a,
12570 __vector __bool int __b, int *__cc) {
12571 return __builtin_s390_vfaefs((__vector unsigned int)__a,
12572 (__vector unsigned int)__b, 8, __cc);
12573}
12574
12575static inline __ATTRS_o_ai __vector unsigned int
12576vec_find_any_ne_idx_cc(__vector unsigned int __a,
12577 __vector unsigned int __b, int *__cc) {
12578 return __builtin_s390_vfaefs(__a, __b, 8, __cc);
12579}
12580
12581/*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
12582
12583static inline __ATTRS_o_ai __vector signed char
12584vec_find_any_ne_or_0_idx(__vector signed char __a,
12585 __vector signed char __b) {
12586 return (__vector signed char)
12587 __builtin_s390_vfaezb((__vector unsigned char)__a,
12588 (__vector unsigned char)__b, 8);
12589}
12590
12591static inline __ATTRS_o_ai __vector unsigned char
12592vec_find_any_ne_or_0_idx(__vector __bool char __a,
12593 __vector __bool char __b) {
12594 return __builtin_s390_vfaezb((__vector unsigned char)__a,
12595 (__vector unsigned char)__b, 8);
12596}
12597
12598static inline __ATTRS_o_ai __vector unsigned char
12599vec_find_any_ne_or_0_idx(__vector unsigned char __a,
12600 __vector unsigned char __b) {
12601 return __builtin_s390_vfaezb(__a, __b, 8);
12602}
12603
12604static inline __ATTRS_o_ai __vector signed short
12605vec_find_any_ne_or_0_idx(__vector signed short __a,
12606 __vector signed short __b) {
12607 return (__vector signed short)
12608 __builtin_s390_vfaezh((__vector unsigned short)__a,
12609 (__vector unsigned short)__b, 8);
12610}
12611
12612static inline __ATTRS_o_ai __vector unsigned short
12613vec_find_any_ne_or_0_idx(__vector __bool short __a,
12614 __vector __bool short __b) {
12615 return __builtin_s390_vfaezh((__vector unsigned short)__a,
12616 (__vector unsigned short)__b, 8);
12617}
12618
12619static inline __ATTRS_o_ai __vector unsigned short
12620vec_find_any_ne_or_0_idx(__vector unsigned short __a,
12621 __vector unsigned short __b) {
12622 return __builtin_s390_vfaezh(__a, __b, 8);
12623}
12624
12625static inline __ATTRS_o_ai __vector signed int
12626vec_find_any_ne_or_0_idx(__vector signed int __a,
12627 __vector signed int __b) {
12628 return (__vector signed int)
12629 __builtin_s390_vfaezf((__vector unsigned int)__a,
12630 (__vector unsigned int)__b, 8);
12631}
12632
12633static inline __ATTRS_o_ai __vector unsigned int
12634vec_find_any_ne_or_0_idx(__vector __bool int __a,
12635 __vector __bool int __b) {
12636 return __builtin_s390_vfaezf((__vector unsigned int)__a,
12637 (__vector unsigned int)__b, 8);
12638}
12639
12640static inline __ATTRS_o_ai __vector unsigned int
12641vec_find_any_ne_or_0_idx(__vector unsigned int __a,
12642 __vector unsigned int __b) {
12643 return __builtin_s390_vfaezf(__a, __b, 8);
12644}
12645
12646/*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
12647
12648static inline __ATTRS_o_ai __vector signed char
12649vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
12650 __vector signed char __b, int *__cc) {
12651 return (__vector signed char)
12652 __builtin_s390_vfaezbs((__vector unsigned char)__a,
12653 (__vector unsigned char)__b, 8, __cc);
12654}
12655
12656static inline __ATTRS_o_ai __vector unsigned char
12657vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
12658 __vector __bool char __b, int *__cc) {
12659 return __builtin_s390_vfaezbs((__vector unsigned char)__a,
12660 (__vector unsigned char)__b, 8, __cc);
12661}
12662
12663static inline __ATTRS_o_ai __vector unsigned char
12664vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
12665 __vector unsigned char __b, int *__cc) {
12666 return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
12667}
12668
12669static inline __ATTRS_o_ai __vector signed short
12670vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
12671 __vector signed short __b, int *__cc) {
12672 return (__vector signed short)
12673 __builtin_s390_vfaezhs((__vector unsigned short)__a,
12674 (__vector unsigned short)__b, 8, __cc);
12675}
12676
12677static inline __ATTRS_o_ai __vector unsigned short
12678vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
12679 __vector __bool short __b, int *__cc) {
12680 return __builtin_s390_vfaezhs((__vector unsigned short)__a,
12681 (__vector unsigned short)__b, 8, __cc);
12682}
12683
12684static inline __ATTRS_o_ai __vector unsigned short
12685vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
12686 __vector unsigned short __b, int *__cc) {
12687 return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
12688}
12689
12690static inline __ATTRS_o_ai __vector signed int
12691vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
12692 __vector signed int __b, int *__cc) {
12693 return (__vector signed int)
12694 __builtin_s390_vfaezfs((__vector unsigned int)__a,
12695 (__vector unsigned int)__b, 8, __cc);
12696}
12697
12698static inline __ATTRS_o_ai __vector unsigned int
12699vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
12700 __vector __bool int __b, int *__cc) {
12701 return __builtin_s390_vfaezfs((__vector unsigned int)__a,
12702 (__vector unsigned int)__b, 8, __cc);
12703}
12704
12705static inline __ATTRS_o_ai __vector unsigned int
12706vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
12707 __vector unsigned int __b, int *__cc) {
12708 return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
12709}
12710
12711/*-- vec_search_string_cc ---------------------------------------------------*/
12712
12713#if __ARCH__ >= 13
12714
12715static inline __ATTRS_o_ai __vector unsigned char
12716vec_search_string_cc(__vector signed char __a, __vector signed char __b,
12717 __vector unsigned char __c, int *__cc) {
12718 return __builtin_s390_vstrsb((__vector unsigned char)__a,
12719 (__vector unsigned char)__b, __c, __cc);
12720}
12721
12722static inline __ATTRS_o_ai __vector unsigned char
12723vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
12724 __vector unsigned char __c, int *__cc) {
12725 return __builtin_s390_vstrsb((__vector unsigned char)__a,
12726 (__vector unsigned char)__b, __c, __cc);
12727}
12728
12729static inline __ATTRS_o_ai __vector unsigned char
12730vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
12731 __vector unsigned char __c, int *__cc) {
12732 return __builtin_s390_vstrsb(__a, __b, __c, __cc);
12733}
12734
12735static inline __ATTRS_o_ai __vector unsigned char
12736vec_search_string_cc(__vector signed short __a, __vector signed short __b,
12737 __vector unsigned char __c, int *__cc) {
12738 return __builtin_s390_vstrsh((__vector unsigned short)__a,
12739 (__vector unsigned short)__b, __c, __cc);
12740}
12741
12742static inline __ATTRS_o_ai __vector unsigned char
12743vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
12744 __vector unsigned char __c, int *__cc) {
12745 return __builtin_s390_vstrsh((__vector unsigned short)__a,
12746 (__vector unsigned short)__b, __c, __cc);
12747}
12748
12749static inline __ATTRS_o_ai __vector unsigned char
12750vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
12751 __vector unsigned char __c, int *__cc) {
12752 return __builtin_s390_vstrsh(__a, __b, __c, __cc);
12753}
12754
12755static inline __ATTRS_o_ai __vector unsigned char
12756vec_search_string_cc(__vector signed int __a, __vector signed int __b,
12757 __vector unsigned char __c, int *__cc) {
12758 return __builtin_s390_vstrsf((__vector unsigned int)__a,
12759 (__vector unsigned int)__b, __c, __cc);
12760}
12761
12762static inline __ATTRS_o_ai __vector unsigned char
12763vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
12764 __vector unsigned char __c, int *__cc) {
12765 return __builtin_s390_vstrsf((__vector unsigned int)__a,
12766 (__vector unsigned int)__b, __c, __cc);
12767}
12768
12769static inline __ATTRS_o_ai __vector unsigned char
12770vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
12771 __vector unsigned char __c, int *__cc) {
12772 return __builtin_s390_vstrsf(__a, __b, __c, __cc);
12773}
12774
12775#endif
12776
12777/*-- vec_search_string_until_zero_cc ----------------------------------------*/
12778
12779#if __ARCH__ >= 13
12780
12781static inline __ATTRS_o_ai __vector unsigned char
12782vec_search_string_until_zero_cc(__vector signed char __a,
12783 __vector signed char __b,
12784 __vector unsigned char __c, int *__cc) {
12785 return __builtin_s390_vstrszb((__vector unsigned char)__a,
12786 (__vector unsigned char)__b, __c, __cc);
12787}
12788
12789static inline __ATTRS_o_ai __vector unsigned char
12790vec_search_string_until_zero_cc(__vector __bool char __a,
12791 __vector __bool char __b,
12792 __vector unsigned char __c, int *__cc) {
12793 return __builtin_s390_vstrszb((__vector unsigned char)__a,
12794 (__vector unsigned char)__b, __c, __cc);
12795}
12796
12797static inline __ATTRS_o_ai __vector unsigned char
12798vec_search_string_until_zero_cc(__vector unsigned char __a,
12799 __vector unsigned char __b,
12800 __vector unsigned char __c, int *__cc) {
12801 return __builtin_s390_vstrszb(__a, __b, __c, __cc);
12802}
12803
12804static inline __ATTRS_o_ai __vector unsigned char
12805vec_search_string_until_zero_cc(__vector signed short __a,
12806 __vector signed short __b,
12807 __vector unsigned char __c, int *__cc) {
12808 return __builtin_s390_vstrszh((__vector unsigned short)__a,
12809 (__vector unsigned short)__b, __c, __cc);
12810}
12811
12812static inline __ATTRS_o_ai __vector unsigned char
12813vec_search_string_until_zero_cc(__vector __bool short __a,
12814 __vector __bool short __b,
12815 __vector unsigned char __c, int *__cc) {
12816 return __builtin_s390_vstrszh((__vector unsigned short)__a,
12817 (__vector unsigned short)__b, __c, __cc);
12818}
12819
12820static inline __ATTRS_o_ai __vector unsigned char
12821vec_search_string_until_zero_cc(__vector unsigned short __a,
12822 __vector unsigned short __b,
12823 __vector unsigned char __c, int *__cc) {
12824 return __builtin_s390_vstrszh(__a, __b, __c, __cc);
12825}
12826
12827static inline __ATTRS_o_ai __vector unsigned char
12828vec_search_string_until_zero_cc(__vector signed int __a,
12829 __vector signed int __b,
12830 __vector unsigned char __c, int *__cc) {
12831 return __builtin_s390_vstrszf((__vector unsigned int)__a,
12832 (__vector unsigned int)__b, __c, __cc);
12833}
12834
12835static inline __ATTRS_o_ai __vector unsigned char
12836vec_search_string_until_zero_cc(__vector __bool int __a,
12837 __vector __bool int __b,
12838 __vector unsigned char __c, int *__cc) {
12839 return __builtin_s390_vstrszf((__vector unsigned int)__a,
12840 (__vector unsigned int)__b, __c, __cc);
12841}
12842
12843static inline __ATTRS_o_ai __vector unsigned char
12844vec_search_string_until_zero_cc(__vector unsigned int __a,
12845 __vector unsigned int __b,
12846 __vector unsigned char __c, int *__cc) {
12847 return __builtin_s390_vstrszf(__a, __b, __c, __cc);
12848}
12849
12850#endif
12851
12852#undef __constant_pow2_range
12853#undef __constant_range
12854#undef __constant
12855#undef __ATTRS_o
12856#undef __ATTRS_o_ai
12857#undef __ATTRS_ai
12858
12859#else
12860
12861#error "Use -fzvector to enable vector extensions"
12862
12863#endif
#define V(N, I)
Definition: ASTContext.h:3460
_Float16 __2f16 __attribute__((ext_vector_type(2)))
Zeroes the upper 128 bits (bits 255:128) of all YMM registers.
__device__ double
__device__ int
__device__ float
static __inline__ vector signed int __ATTRS_o_ai vec_sube(vector signed int __a, vector signed int __b, vector signed int __c)
Definition: altivec.h:12471
static __inline__ vector bool char __ATTRS_o_ai vec_cmpeq(vector signed char __a, vector signed char __b)
Definition: altivec.h:1708
static __inline__ signed char __ATTRS_o_ai vec_extract(vector signed char __a, signed int __b)
Definition: altivec.h:13541
static __inline__ vector float __ATTRS_o_ai vec_ceil(vector float __a)
Definition: altivec.h:1659
static __inline__ int __ATTRS_o_ai vec_any_ngt(vector float __a, vector float __b)
Definition: altivec.h:17261
static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed char __a, vector signed char __b)
Definition: altivec.h:17035
static __ATTRS_o_ai vector signed char vec_xl(ptrdiff_t __offset, const signed char *__ptr)
Definition: altivec.h:17724
static __inline__ int __ATTRS_o_ai vec_any_nge(vector float __a, vector float __b)
Definition: altivec.h:17243
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:9301
static __inline__ vector float vector float vector float __c
Definition: altivec.h:4800
static __inline__ vector int __ATTRS_o_ai vec_msum(vector signed char __a, vector unsigned char __b, vector int __c)
Definition: altivec.h:6059
static __inline__ vector short __ATTRS_o_ai vec_mule(vector signed char __a, vector signed char __b)
Definition: altivec.h:6263
static __inline__ int __ATTRS_o_ai vec_any_le(vector signed char __a, vector signed char __b)
Definition: altivec.h:16640
static __inline__ vector float vector float __b
Definition: altivec.h:578
static __inline__ vector float __ATTRS_o_ai vec_round(vector float __a)
Definition: altivec.h:8469
#define vec_xld2
Definition: altivec.h:17714
#define vec_xlw4
Definition: altivec.h:17715
static __inline__ vector signed int __ATTRS_o_ai vec_subc(vector signed int __a, vector signed int __b)
Definition: altivec.h:12108
static __inline__ vector signed int __ATTRS_o_ai vec_addc(vector signed int __a, vector signed int __b)
Definition: altivec.h:585
static __inline__ int __ATTRS_o_ai vec_all_le(vector signed char __a, vector signed char __b)
Definition: altivec.h:15377
static __ATTRS_o_ai vector bool char vec_reve(vector bool char __a)
Definition: altivec.h:17528
static __inline__ vector signed char __ATTRS_o_ai vec_splats(signed char __a)
Definition: altivec.h:14737
static __inline__ vector bool char __ATTRS_o_ai vec_revb(vector bool char __a)
Definition: altivec.h:17598
static __inline__ int __ATTRS_o_ai vec_any_nan(vector float __a)
Definition: altivec.h:17020
static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed char __a, vector signed char __b)
Definition: altivec.h:14802
static __inline__ vector signed char __ATTRS_o_ai vec_andc(vector signed char __a, vector signed char __b)
Definition: altivec.h:1235
static __inline__ vector signed int __ATTRS_o_ai vec_sld(vector signed int, vector signed int, unsigned const int __c)
Definition: altivec.h:9149
static __inline__ vector short __ATTRS_o_ai vec_unpackl(vector signed char __a)
Definition: altivec.h:12781
static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed char __a, vector signed char __b)
Definition: altivec.h:15755
#define vec_xstd2
Definition: altivec.h:17992
static __inline__ vector signed int __ATTRS_o_ai vec_signed(vector float __a)
Definition: altivec.h:3495
static __inline__ vector signed char __ATTRS_o_ai vec_and(vector signed char __a, vector signed char __b)
Definition: altivec.h:882
static __inline__ vector signed char __ATTRS_o_ai vec_avg(vector signed char __a, vector signed char __b)
Definition: altivec.h:1586
static __ATTRS_o_ai void vec_xst(vector signed char __vec, ptrdiff_t __offset, signed char *__ptr)
Definition: altivec.h:17995
static __inline__ vector signed char __ATTRS_o_ai vec_splat_s8(signed char __a)
Definition: altivec.h:10320
static __inline__ int __ATTRS_o_ai vec_all_nan(vector float __a)
Definition: altivec.h:15739
static __inline__ vector signed char __ATTRS_o_ai vec_mergel(vector signed char __a, vector signed char __b)
Definition: altivec.h:5361
static __inline__ int __ATTRS_o_ai vec_all_ngt(vector float __a, vector float __b)
Definition: altivec.h:15981
static __inline__ vector float __ATTRS_o_ai vec_floor(vector float __a)
Definition: altivec.h:4026
static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed char __a, vector signed char __b)
Definition: altivec.h:15190
static __inline__ vector int __ATTRS_o_ai vec_splat_s32(signed char __a)
Definition: altivec.h:10353
#define __ATTRS_o_ai
Definition: altivec.h:46
static __inline__ vector signed char __ATTRS_o_ai vec_promote(signed char __a, int __b)
Definition: altivec.h:14648
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:7962
static __inline__ vector signed short __ATTRS_o_ai vec_mladd(vector signed short, vector signed short, vector signed short)
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:8588
static __inline__ int __ATTRS_o_ai vec_any_numeric(vector float __a)
Definition: altivec.h:17315
static __inline__ vector float __ATTRS_o_ai vec_float(vector signed int __a)
Definition: altivec.h:3579
static __inline__ vector unsigned int __ATTRS_o_ai vec_splat_u32(signed char __a)
Definition: altivec.h:10384
static __inline__ vector signed char __ATTRS_o_ai vec_mergeh(vector signed char __a, vector signed char __b)
Definition: altivec.h:5091
static __inline__ vector signed char __ATTRS_o_ai vec_rl(vector signed char __a, vector unsigned char __b)
Definition: altivec.h:8287
static __inline__ vector bool char __ATTRS_o_ai vec_cmplt(vector signed char __a, vector signed char __b)
Definition: altivec.h:2435
static __inline__ vector unsigned int __ATTRS_o_ai vec_unsigned(vector float __a)
Definition: altivec.h:3537
static __inline__ vector float __ATTRS_o_ai vec_roundp(vector float __a)
Definition: altivec.h:1674
static __inline__ vector signed char __ATTRS_o_ai vec_max(vector signed char __a, vector signed char __b)
Definition: altivec.h:4838
static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed char __a, vector signed char __b)
Definition: altivec.h:15558
static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed char __a, vector signed char __b)
Definition: altivec.h:16260
#define vec_xstw4
Definition: altivec.h:17993
static __inline__ vector signed int __ATTRS_o_ai vec_adde(vector signed int __a, vector signed int __b, vector signed int __c)
Definition: altivec.h:383
static __inline__ int __ATTRS_o_ai vec_all_numeric(vector float __a)
Definition: altivec.h:16036
static __inline__ vector signed char __ATTRS_o_ai vec_nor(vector signed char __a, vector signed char __b)
Definition: altivec.h:6729
static __inline__ vector bool char __ATTRS_o_ai vec_cmpge(vector signed char __a, vector signed char __b)
Definition: altivec.h:2243
static __inline__ vector signed char __ATTRS_o_ai vec_pack(vector signed short __a, vector signed short __b)
Definition: altivec.h:7389
static __inline__ vector unsigned char __ATTRS_o_ai vec_packsu(vector short __a, vector short __b)
Definition: altivec.h:7844
static __inline__ vector short __ATTRS_o_ai vec_mulo(vector signed char __a, vector signed char __b)
Definition: altivec.h:6409
static __inline__ int __ATTRS_o_ai vec_all_nge(vector float __a, vector float __b)
Definition: altivec.h:15963
static __inline__ vector signed char __ATTRS_o_ai vec_srl(vector signed char __a, vector unsigned char __b)
Definition: altivec.h:10619
static __inline__ vector signed char __ATTRS_o_ai vec_min(vector signed char __a, vector signed char __b)
Definition: altivec.h:5742
static __inline__ vector signed char __ATTRS_o_ai vec_splat(vector signed char __a, unsigned const int __b)
Definition: altivec.h:10090
static vector float __ATTRS_o_ai vec_nabs(vector float __a)
Definition: altivec.h:18264
static __inline__ vector signed char __ATTRS_o_ai vec_or(vector signed char __a, vector signed char __b)
Definition: altivec.h:6865
static __inline__ vector short __ATTRS_o_ai vec_unpackh(vector signed char __a)
Definition: altivec.h:12642
static __inline__ vector short __ATTRS_o_ai vec_splat_s16(signed char __a)
Definition: altivec.h:10337
static __inline__ int __ATTRS_o_ai vec_any_nlt(vector float __a, vector float __b)
Definition: altivec.h:17297
static __inline__ vector signed char __ATTRS_o_ai vec_abs(vector signed char __a)
Definition: altivec.h:117
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:4756
static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed char __a, vector signed char __b)
Definition: altivec.h:16830
static __inline__ vector unsigned char __ATTRS_o_ai vec_xor(vector unsigned char __a, vector unsigned char __b)
Definition: altivec.h:13207
static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed char __a, vector signed char __b)
Definition: altivec.h:15010
static __inline__ vector float __ATTRS_o_ai vec_roundm(vector float __a)
Definition: altivec.h:4041
static __inline__ int __ATTRS_o_ai vec_all_nle(vector float __a, vector float __b)
Definition: altivec.h:16000
static __inline__ vector float __ATTRS_o_ai vec_trunc(vector float __a)
Definition: altivec.h:12597
static __inline__ vector bool char __ATTRS_o_ai vec_cmpgt(vector signed char __a, vector signed char __b)
Definition: altivec.h:2131
static __inline__ vector signed char __ATTRS_o_ai vec_insert(signed char __a, vector signed char __b, int __c)
Definition: altivec.h:13668
static __inline__ vector signed char __ATTRS_o_ai vec_sll(vector signed char __a, vector unsigned char __b)
Definition: altivec.h:9524
static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed char __a, vector signed char __b)
Definition: altivec.h:16450
static __inline__ vector bool char __ATTRS_o_ai vec_cmple(vector signed char __a, vector signed char __b)
Definition: altivec.h:2369
static __inline__ vector unsigned short __ATTRS_o_ai vec_splat_u16(signed char __a)
Definition: altivec.h:10376
static __inline__ int __ATTRS_o_ai vec_all_nlt(vector float __a, vector float __b)
Definition: altivec.h:16018
static __inline__ vector signed char __ATTRS_o_ai vec_packs(vector short __a, vector short __b)
Definition: altivec.h:7715
static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed char __a, vector signed char __b)
Definition: altivec.h:16052
static __inline__ vector float __ATTRS_o_ai vec_roundz(vector float __a)
Definition: altivec.h:12612
static __inline__ int __ATTRS_o_ai vec_any_nle(vector float __a, vector float __b)
Definition: altivec.h:17279
static __inline__ vector float __ATTRS_o_ai vec_nmsub(vector float __a, vector float __b, vector float __c)
Definition: altivec.h:6699
static __inline__ vector unsigned char __ATTRS_o_ai vec_splat_u8(unsigned char __a)
Definition: altivec.h:10368
static __inline__ void int __a
Definition: emmintrin.h:4079
static __inline__ void unsigned int __value
Definition: movdirintrin.h:20
#define __conv
Definition: opencl-c.h:36