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