clang 22.0.0git
vecintrin.h
Go to the documentation of this file.
1/*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2 *
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 *
7 *===-----------------------------------------------------------------------===
8 */
9
10#ifndef _VECINTRIN_H
11#define _VECINTRIN_H
12
13#if defined(__s390x__) && defined(__VEC__)
14
15#define __ATTRS_ai __attribute__((__always_inline__))
16#define __ATTRS_o __attribute__((__overloadable__))
17#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
18
19#define __constant(PARM) \
20 __attribute__((__enable_if__ ((PARM) == (PARM), \
21 "argument must be a constant integer")))
22#define __constant_range(PARM, LOW, HIGH) \
23 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
24 "argument must be a constant integer from " #LOW " to " #HIGH)))
25#define __constant_pow2_range(PARM, LOW, HIGH) \
26 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
27 ((PARM) & ((PARM) - 1)) == 0, \
28 "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
29
30/*-- __lcbb -----------------------------------------------------------------*/
31
32extern __ATTRS_o unsigned int
33__lcbb(const void *__ptr, unsigned short __len)
34 __constant_pow2_range(__len, 64, 4096);
35
36#define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
37 __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
38 ((Y) == 64 ? 0 : \
39 (Y) == 128 ? 1 : \
40 (Y) == 256 ? 2 : \
41 (Y) == 512 ? 3 : \
42 (Y) == 1024 ? 4 : \
43 (Y) == 2048 ? 5 : \
44 (Y) == 4096 ? 6 : 0) : 0))
45
46/*-- vec_extract ------------------------------------------------------------*/
47
48static inline __ATTRS_o_ai signed char
49vec_extract(__vector signed char __vec, int __index) {
50 return __vec[__index & 15];
51}
52
53static inline __ATTRS_o_ai unsigned char
54vec_extract(__vector __bool char __vec, int __index) {
55 return __vec[__index & 15];
56}
57
58static inline __ATTRS_o_ai unsigned char
59vec_extract(__vector unsigned char __vec, int __index) {
60 return __vec[__index & 15];
61}
62
63static inline __ATTRS_o_ai signed short
64vec_extract(__vector signed short __vec, int __index) {
65 return __vec[__index & 7];
66}
67
68static inline __ATTRS_o_ai unsigned short
69vec_extract(__vector __bool short __vec, int __index) {
70 return __vec[__index & 7];
71}
72
73static inline __ATTRS_o_ai unsigned short
74vec_extract(__vector unsigned short __vec, int __index) {
75 return __vec[__index & 7];
76}
77
78static inline __ATTRS_o_ai signed int
79vec_extract(__vector signed int __vec, int __index) {
80 return __vec[__index & 3];
81}
82
83static inline __ATTRS_o_ai unsigned int
84vec_extract(__vector __bool int __vec, int __index) {
85 return __vec[__index & 3];
86}
87
88static inline __ATTRS_o_ai unsigned int
89vec_extract(__vector unsigned int __vec, int __index) {
90 return __vec[__index & 3];
91}
92
93static inline __ATTRS_o_ai signed long long
94vec_extract(__vector signed long long __vec, int __index) {
95 return __vec[__index & 1];
96}
97
98static inline __ATTRS_o_ai unsigned long long
99vec_extract(__vector __bool long long __vec, int __index) {
100 return __vec[__index & 1];
101}
102
103static inline __ATTRS_o_ai unsigned long long
104vec_extract(__vector unsigned long long __vec, int __index) {
105 return __vec[__index & 1];
106}
107
108#if __ARCH__ >= 12
109static inline __ATTRS_o_ai float
110vec_extract(__vector float __vec, int __index) {
111 return __vec[__index & 3];
112}
113#endif
114
115static inline __ATTRS_o_ai double
116vec_extract(__vector double __vec, int __index) {
117 return __vec[__index & 1];
118}
119
120/*-- vec_insert -------------------------------------------------------------*/
121
122static inline __ATTRS_o_ai __vector signed char
123vec_insert(signed char __scalar, __vector signed char __vec, int __index) {
124 __vec[__index & 15] = __scalar;
125 return __vec;
126}
127
128// This prototype is deprecated.
129static inline __ATTRS_o_ai __vector unsigned char
130vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {
131 __vector unsigned char __newvec = (__vector unsigned char)__vec;
132 __newvec[__index & 15] = (unsigned char)__scalar;
133 return __newvec;
134}
135
136static inline __ATTRS_o_ai __vector unsigned char
137vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
138 __vec[__index & 15] = __scalar;
139 return __vec;
140}
141
142static inline __ATTRS_o_ai __vector signed short
143vec_insert(signed short __scalar, __vector signed short __vec, int __index) {
144 __vec[__index & 7] = __scalar;
145 return __vec;
146}
147
148// This prototype is deprecated.
149static inline __ATTRS_o_ai __vector unsigned short
150vec_insert(unsigned short __scalar, __vector __bool short __vec,
151 int __index) {
152 __vector unsigned short __newvec = (__vector unsigned short)__vec;
153 __newvec[__index & 7] = (unsigned short)__scalar;
154 return __newvec;
155}
156
157static inline __ATTRS_o_ai __vector unsigned short
158vec_insert(unsigned short __scalar, __vector unsigned short __vec,
159 int __index) {
160 __vec[__index & 7] = __scalar;
161 return __vec;
162}
163
164static inline __ATTRS_o_ai __vector signed int
165vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
166 __vec[__index & 3] = __scalar;
167 return __vec;
168}
169
170// This prototype is deprecated.
171static inline __ATTRS_o_ai __vector unsigned int
172vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
173 __vector unsigned int __newvec = (__vector unsigned int)__vec;
174 __newvec[__index & 3] = __scalar;
175 return __newvec;
176}
177
178static inline __ATTRS_o_ai __vector unsigned int
179vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
180 __vec[__index & 3] = __scalar;
181 return __vec;
182}
183
184static inline __ATTRS_o_ai __vector signed long long
185vec_insert(signed long long __scalar, __vector signed long long __vec,
186 int __index) {
187 __vec[__index & 1] = __scalar;
188 return __vec;
189}
190
191// This prototype is deprecated.
192static inline __ATTRS_o_ai __vector unsigned long long
193vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
194 int __index) {
195 __vector unsigned long long __newvec = (__vector unsigned long long)__vec;
196 __newvec[__index & 1] = __scalar;
197 return __newvec;
198}
199
200static inline __ATTRS_o_ai __vector unsigned long long
201vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
202 int __index) {
203 __vec[__index & 1] = __scalar;
204 return __vec;
205}
206
207#if __ARCH__ >= 12
208static inline __ATTRS_o_ai __vector float
209vec_insert(float __scalar, __vector float __vec, int __index) {
210 __vec[__index & 1] = __scalar;
211 return __vec;
212}
213#endif
214
215static inline __ATTRS_o_ai __vector double
216vec_insert(double __scalar, __vector double __vec, int __index) {
217 __vec[__index & 1] = __scalar;
218 return __vec;
219}
220
221/*-- vec_promote ------------------------------------------------------------*/
222
223static inline __ATTRS_o_ai __vector signed char
224vec_promote(signed char __scalar, int __index) {
225 const __vector signed char __zero = (__vector signed char)0;
226 __vector signed char __vec = __builtin_shufflevector(__zero, __zero,
227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
228 __vec[__index & 15] = __scalar;
229 return __vec;
230}
231
232static inline __ATTRS_o_ai __vector unsigned char
233vec_promote(unsigned char __scalar, int __index) {
234 const __vector unsigned char __zero = (__vector unsigned char)0;
235 __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
237 __vec[__index & 15] = __scalar;
238 return __vec;
239}
240
241static inline __ATTRS_o_ai __vector signed short
242vec_promote(signed short __scalar, int __index) {
243 const __vector signed short __zero = (__vector signed short)0;
244 __vector signed short __vec = __builtin_shufflevector(__zero, __zero,
245 -1, -1, -1, -1, -1, -1, -1, -1);
246 __vec[__index & 7] = __scalar;
247 return __vec;
248}
249
250static inline __ATTRS_o_ai __vector unsigned short
251vec_promote(unsigned short __scalar, int __index) {
252 const __vector unsigned short __zero = (__vector unsigned short)0;
253 __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
254 -1, -1, -1, -1, -1, -1, -1, -1);
255 __vec[__index & 7] = __scalar;
256 return __vec;
257}
258
259static inline __ATTRS_o_ai __vector signed int
260vec_promote(signed int __scalar, int __index) {
261 const __vector signed int __zero = (__vector signed int)0;
262 __vector signed int __vec = __builtin_shufflevector(__zero, __zero,
263 -1, -1, -1, -1);
264 __vec[__index & 3] = __scalar;
265 return __vec;
266}
267
268static inline __ATTRS_o_ai __vector unsigned int
269vec_promote(unsigned int __scalar, int __index) {
270 const __vector unsigned int __zero = (__vector unsigned int)0;
271 __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
272 -1, -1, -1, -1);
273 __vec[__index & 3] = __scalar;
274 return __vec;
275}
276
277static inline __ATTRS_o_ai __vector signed long long
278vec_promote(signed long long __scalar, int __index) {
279 const __vector signed long long __zero = (__vector signed long long)0;
280 __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
281 -1, -1);
282 __vec[__index & 1] = __scalar;
283 return __vec;
284}
285
286static inline __ATTRS_o_ai __vector unsigned long long
287vec_promote(unsigned long long __scalar, int __index) {
288 const __vector unsigned long long __zero = (__vector unsigned long long)0;
289 __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
290 -1, -1);
291 __vec[__index & 1] = __scalar;
292 return __vec;
293}
294
295#if __ARCH__ >= 12
296static inline __ATTRS_o_ai __vector float
297vec_promote(float __scalar, int __index) {
298 const __vector float __zero = (__vector float)0.0f;
299 __vector float __vec = __builtin_shufflevector(__zero, __zero,
300 -1, -1, -1, -1);
301 __vec[__index & 3] = __scalar;
302 return __vec;
303}
304#endif
305
306static inline __ATTRS_o_ai __vector double
307vec_promote(double __scalar, int __index) {
308 const __vector double __zero = (__vector double)0.0;
309 __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
310 __vec[__index & 1] = __scalar;
311 return __vec;
312}
313
314/*-- vec_insert_and_zero ----------------------------------------------------*/
315
316static inline __ATTRS_o_ai __vector signed char
317vec_insert_and_zero(const signed char *__ptr) {
318 __vector signed char __vec = (__vector signed char)0;
319 __vec[7] = *__ptr;
320 return __vec;
321}
322
323static inline __ATTRS_o_ai __vector unsigned char
324vec_insert_and_zero(const unsigned char *__ptr) {
325 __vector unsigned char __vec = (__vector unsigned char)0;
326 __vec[7] = *__ptr;
327 return __vec;
328}
329
330static inline __ATTRS_o_ai __vector signed short
331vec_insert_and_zero(const signed short *__ptr) {
332 __vector signed short __vec = (__vector signed short)0;
333 __vec[3] = *__ptr;
334 return __vec;
335}
336
337static inline __ATTRS_o_ai __vector unsigned short
338vec_insert_and_zero(const unsigned short *__ptr) {
339 __vector unsigned short __vec = (__vector unsigned short)0;
340 __vec[3] = *__ptr;
341 return __vec;
342}
343
344static inline __ATTRS_o_ai __vector signed int
345vec_insert_and_zero(const signed int *__ptr) {
346 __vector signed int __vec = (__vector signed int)0;
347 __vec[1] = *__ptr;
348 return __vec;
349}
350
351static inline __ATTRS_o_ai __vector unsigned int
352vec_insert_and_zero(const unsigned int *__ptr) {
353 __vector unsigned int __vec = (__vector unsigned int)0;
354 __vec[1] = *__ptr;
355 return __vec;
356}
357
358static inline __ATTRS_o_ai __vector signed long long
359vec_insert_and_zero(const signed long long *__ptr) {
360 __vector signed long long __vec = (__vector signed long long)0;
361 __vec[0] = *__ptr;
362 return __vec;
363}
364
365static inline __ATTRS_o_ai __vector unsigned long long
366vec_insert_and_zero(const unsigned long long *__ptr) {
367 __vector unsigned long long __vec = (__vector unsigned long long)0;
368 __vec[0] = *__ptr;
369 return __vec;
370}
371
372#if __ARCH__ >= 12
373static inline __ATTRS_o_ai __vector float
374vec_insert_and_zero(const float *__ptr) {
375 __vector float __vec = (__vector float)0.0f;
376 __vec[1] = *__ptr;
377 return __vec;
378}
379#endif
380
381static inline __ATTRS_o_ai __vector double
382vec_insert_and_zero(const double *__ptr) {
383 __vector double __vec = (__vector double)0.0;
384 __vec[0] = *__ptr;
385 return __vec;
386}
387
388/*-- vec_perm ---------------------------------------------------------------*/
389
390static inline __ATTRS_o_ai __vector signed char
391vec_perm(__vector signed char __a, __vector signed char __b,
392 __vector unsigned char __c) {
393 return (__vector signed char)__builtin_s390_vperm(
394 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
395}
396
397static inline __ATTRS_o_ai __vector unsigned char
398vec_perm(__vector unsigned char __a, __vector unsigned char __b,
399 __vector unsigned char __c) {
400 return (__vector unsigned char)__builtin_s390_vperm(
401 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
402}
403
404static inline __ATTRS_o_ai __vector __bool char
405vec_perm(__vector __bool char __a, __vector __bool char __b,
406 __vector unsigned char __c) {
407 return (__vector __bool char)__builtin_s390_vperm(
408 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
409}
410
411static inline __ATTRS_o_ai __vector signed short
412vec_perm(__vector signed short __a, __vector signed short __b,
413 __vector unsigned char __c) {
414 return (__vector signed short)__builtin_s390_vperm(
415 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
416}
417
418static inline __ATTRS_o_ai __vector unsigned short
419vec_perm(__vector unsigned short __a, __vector unsigned short __b,
420 __vector unsigned char __c) {
421 return (__vector unsigned short)__builtin_s390_vperm(
422 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
423}
424
425static inline __ATTRS_o_ai __vector __bool short
426vec_perm(__vector __bool short __a, __vector __bool short __b,
427 __vector unsigned char __c) {
428 return (__vector __bool short)__builtin_s390_vperm(
429 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
430}
431
432static inline __ATTRS_o_ai __vector signed int
433vec_perm(__vector signed int __a, __vector signed int __b,
434 __vector unsigned char __c) {
435 return (__vector signed int)__builtin_s390_vperm(
436 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
437}
438
439static inline __ATTRS_o_ai __vector unsigned int
440vec_perm(__vector unsigned int __a, __vector unsigned int __b,
441 __vector unsigned char __c) {
442 return (__vector unsigned int)__builtin_s390_vperm(
443 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
444}
445
446static inline __ATTRS_o_ai __vector __bool int
447vec_perm(__vector __bool int __a, __vector __bool int __b,
448 __vector unsigned char __c) {
449 return (__vector __bool int)__builtin_s390_vperm(
450 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
451}
452
453static inline __ATTRS_o_ai __vector signed long long
454vec_perm(__vector signed long long __a, __vector signed long long __b,
455 __vector unsigned char __c) {
456 return (__vector signed long long)__builtin_s390_vperm(
457 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
458}
459
460static inline __ATTRS_o_ai __vector unsigned long long
461vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
462 __vector unsigned char __c) {
463 return (__vector unsigned long long)__builtin_s390_vperm(
464 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
465}
466
467static inline __ATTRS_o_ai __vector __bool long long
468vec_perm(__vector __bool long long __a, __vector __bool long long __b,
469 __vector unsigned char __c) {
470 return (__vector __bool long long)__builtin_s390_vperm(
471 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
472}
473
474static inline __ATTRS_o_ai __vector signed __int128
475vec_perm(__vector signed __int128 __a, __vector signed __int128 __b,
476 __vector unsigned char __c) {
477 return (__vector signed __int128)__builtin_s390_vperm(
478 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
479}
480
481static inline __ATTRS_o_ai __vector unsigned __int128
482vec_perm(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
483 __vector unsigned char __c) {
484 return (__vector unsigned __int128)__builtin_s390_vperm(
485 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
486}
487
488static inline __ATTRS_o_ai __vector __bool __int128
489vec_perm(__vector __bool __int128 __a, __vector __bool __int128 __b,
490 __vector unsigned char __c) {
491 return (__vector __bool __int128)__builtin_s390_vperm(
492 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
493}
494
495#if __ARCH__ >= 12
496static inline __ATTRS_o_ai __vector float
497vec_perm(__vector float __a, __vector float __b,
498 __vector unsigned char __c) {
499 return (__vector float)__builtin_s390_vperm(
500 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
501}
502#endif
503
504static inline __ATTRS_o_ai __vector double
505vec_perm(__vector double __a, __vector double __b,
506 __vector unsigned char __c) {
507 return (__vector double)__builtin_s390_vperm(
508 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
509}
510
511/*-- vec_permi --------------------------------------------------------------*/
512
513// This prototype is deprecated.
514extern __ATTRS_o __vector signed long long
515vec_permi(__vector signed long long __a, __vector signed long long __b,
516 int __c)
517 __constant_range(__c, 0, 3);
518
519// This prototype is deprecated.
520extern __ATTRS_o __vector unsigned long long
521vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
522 int __c)
523 __constant_range(__c, 0, 3);
524
525// This prototype is deprecated.
526extern __ATTRS_o __vector __bool long long
527vec_permi(__vector __bool long long __a, __vector __bool long long __b,
528 int __c)
529 __constant_range(__c, 0, 3);
530
531// This prototype is deprecated.
532extern __ATTRS_o __vector double
533vec_permi(__vector double __a, __vector double __b, int __c)
534 __constant_range(__c, 0, 3);
535
536#define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
537 __builtin_s390_vpdi((__vector unsigned long long)(X), \
538 (__vector unsigned long long)(Y), \
539 (((Z) & 2) << 1) | ((Z) & 1)))
540
541/*-- vec_bperm --------------------------------------------------------------*/
542
543#if __ARCH__ >= 12
544static inline __ATTRS_ai __vector unsigned long long
545vec_bperm(__vector unsigned __int128 __a, __vector unsigned char __b) {
546 return __builtin_s390_vbperm((__vector unsigned char)__a, __b);
547}
548#endif
549
550/*-- vec_bperm_u128 ---------------------------------------------------------*/
551
552#if __ARCH__ >= 12
553// This prototype is deprecated.
554static inline __ATTRS_ai __vector unsigned long long
555vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
556 return __builtin_s390_vbperm(__a, __b);
557}
558#endif
559
560/*-- vec_revb ---------------------------------------------------------------*/
561
562static inline __ATTRS_o_ai __vector signed short
563vec_revb(__vector signed short __vec) {
564 return (__vector signed short)
565 __builtin_s390_vlbrh((__vector unsigned short)__vec);
566}
567
568static inline __ATTRS_o_ai __vector unsigned short
569vec_revb(__vector unsigned short __vec) {
570 return __builtin_s390_vlbrh(__vec);
571}
572
573static inline __ATTRS_o_ai __vector signed int
574vec_revb(__vector signed int __vec) {
575 return (__vector signed int)
576 __builtin_s390_vlbrf((__vector unsigned int)__vec);
577}
578
579static inline __ATTRS_o_ai __vector unsigned int
580vec_revb(__vector unsigned int __vec) {
581 return __builtin_s390_vlbrf(__vec);
582}
583
584static inline __ATTRS_o_ai __vector signed long long
585vec_revb(__vector signed long long __vec) {
586 return (__vector signed long long)
587 __builtin_s390_vlbrg((__vector unsigned long long)__vec);
588}
589
590static inline __ATTRS_o_ai __vector unsigned long long
591vec_revb(__vector unsigned long long __vec) {
592 return __builtin_s390_vlbrg(__vec);
593}
594
595static inline __ATTRS_o_ai __vector signed __int128
596vec_revb(__vector signed __int128 __vec) {
597 return (__vector signed __int128)
598 __builtin_s390_vlbrq((unsigned __int128)__vec);
599}
600
601static inline __ATTRS_o_ai __vector unsigned __int128
602vec_revb(__vector unsigned __int128 __vec) {
603 return (__vector unsigned __int128)
604 __builtin_s390_vlbrq((unsigned __int128)__vec);
605}
606
607#if __ARCH__ >= 12
608static inline __ATTRS_o_ai __vector float
609vec_revb(__vector float __vec) {
610 return (__vector float)
611 __builtin_s390_vlbrf((__vector unsigned int)__vec);
612}
613#endif
614
615static inline __ATTRS_o_ai __vector double
616vec_revb(__vector double __vec) {
617 return (__vector double)
618 __builtin_s390_vlbrg((__vector unsigned long long)__vec);
619}
620
621/*-- vec_reve ---------------------------------------------------------------*/
622
623static inline __ATTRS_o_ai __vector signed char
624vec_reve(__vector signed char __vec) {
625 return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
626 __vec[11], __vec[10], __vec[9], __vec[8],
627 __vec[7], __vec[6], __vec[5], __vec[4],
628 __vec[3], __vec[2], __vec[1], __vec[0] };
629}
630
631static inline __ATTRS_o_ai __vector unsigned char
632vec_reve(__vector unsigned char __vec) {
633 return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
634 __vec[11], __vec[10], __vec[9], __vec[8],
635 __vec[7], __vec[6], __vec[5], __vec[4],
636 __vec[3], __vec[2], __vec[1], __vec[0] };
637}
638
639static inline __ATTRS_o_ai __vector __bool char
640vec_reve(__vector __bool char __vec) {
641 return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
642 __vec[11], __vec[10], __vec[9], __vec[8],
643 __vec[7], __vec[6], __vec[5], __vec[4],
644 __vec[3], __vec[2], __vec[1], __vec[0] };
645}
646
647static inline __ATTRS_o_ai __vector signed short
648vec_reve(__vector signed short __vec) {
649 return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
650 __vec[3], __vec[2], __vec[1], __vec[0] };
651}
652
653static inline __ATTRS_o_ai __vector unsigned short
654vec_reve(__vector unsigned short __vec) {
655 return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
656 __vec[3], __vec[2], __vec[1], __vec[0] };
657}
658
659static inline __ATTRS_o_ai __vector __bool short
660vec_reve(__vector __bool short __vec) {
661 return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
662 __vec[3], __vec[2], __vec[1], __vec[0] };
663}
664
665static inline __ATTRS_o_ai __vector signed int
666vec_reve(__vector signed int __vec) {
667 return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
668}
669
670static inline __ATTRS_o_ai __vector unsigned int
671vec_reve(__vector unsigned int __vec) {
672 return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
673}
674
675static inline __ATTRS_o_ai __vector __bool int
676vec_reve(__vector __bool int __vec) {
677 return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
678}
679
680static inline __ATTRS_o_ai __vector signed long long
681vec_reve(__vector signed long long __vec) {
682 return (__vector signed long long) { __vec[1], __vec[0] };
683}
684
685static inline __ATTRS_o_ai __vector unsigned long long
686vec_reve(__vector unsigned long long __vec) {
687 return (__vector unsigned long long) { __vec[1], __vec[0] };
688}
689
690static inline __ATTRS_o_ai __vector __bool long long
691vec_reve(__vector __bool long long __vec) {
692 return (__vector __bool long long) { __vec[1], __vec[0] };
693}
694
695#if __ARCH__ >= 12
696static inline __ATTRS_o_ai __vector float
697vec_reve(__vector float __vec) {
698 return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
699}
700#endif
701
702static inline __ATTRS_o_ai __vector double
703vec_reve(__vector double __vec) {
704 return (__vector double) { __vec[1], __vec[0] };
705}
706
707/*-- vec_sel ----------------------------------------------------------------*/
708
709static inline __ATTRS_o_ai __vector signed char
710vec_sel(__vector signed char __a, __vector signed char __b,
711 __vector unsigned char __c) {
712 return (((__vector signed char)__c & __b) |
713 (~(__vector signed char)__c & __a));
714}
715
716static inline __ATTRS_o_ai __vector signed char
717vec_sel(__vector signed char __a, __vector signed char __b,
718 __vector __bool char __c) {
719 return (((__vector signed char)__c & __b) |
720 (~(__vector signed char)__c & __a));
721}
722
723static inline __ATTRS_o_ai __vector __bool char
724vec_sel(__vector __bool char __a, __vector __bool char __b,
725 __vector unsigned char __c) {
726 return (((__vector __bool char)__c & __b) |
727 (~(__vector __bool char)__c & __a));
728}
729
730static inline __ATTRS_o_ai __vector __bool char
731vec_sel(__vector __bool char __a, __vector __bool char __b,
732 __vector __bool char __c) {
733 return (__c & __b) | (~__c & __a);
734}
735
736static inline __ATTRS_o_ai __vector unsigned char
737vec_sel(__vector unsigned char __a, __vector unsigned char __b,
738 __vector unsigned char __c) {
739 return (__c & __b) | (~__c & __a);
740}
741
742static inline __ATTRS_o_ai __vector unsigned char
743vec_sel(__vector unsigned char __a, __vector unsigned char __b,
744 __vector __bool char __c) {
745 return (((__vector unsigned char)__c & __b) |
746 (~(__vector unsigned char)__c & __a));
747}
748
749static inline __ATTRS_o_ai __vector signed short
750vec_sel(__vector signed short __a, __vector signed short __b,
751 __vector unsigned short __c) {
752 return (((__vector signed short)__c & __b) |
753 (~(__vector signed short)__c & __a));
754}
755
756static inline __ATTRS_o_ai __vector signed short
757vec_sel(__vector signed short __a, __vector signed short __b,
758 __vector __bool short __c) {
759 return (((__vector signed short)__c & __b) |
760 (~(__vector signed short)__c & __a));
761}
762
763static inline __ATTRS_o_ai __vector __bool short
764vec_sel(__vector __bool short __a, __vector __bool short __b,
765 __vector unsigned short __c) {
766 return (((__vector __bool short)__c & __b) |
767 (~(__vector __bool short)__c & __a));
768}
769
770static inline __ATTRS_o_ai __vector __bool short
771vec_sel(__vector __bool short __a, __vector __bool short __b,
772 __vector __bool short __c) {
773 return (__c & __b) | (~__c & __a);
774}
775
776static inline __ATTRS_o_ai __vector unsigned short
777vec_sel(__vector unsigned short __a, __vector unsigned short __b,
778 __vector unsigned short __c) {
779 return (__c & __b) | (~__c & __a);
780}
781
782static inline __ATTRS_o_ai __vector unsigned short
783vec_sel(__vector unsigned short __a, __vector unsigned short __b,
784 __vector __bool short __c) {
785 return (((__vector unsigned short)__c & __b) |
786 (~(__vector unsigned short)__c & __a));
787}
788
789static inline __ATTRS_o_ai __vector signed int
790vec_sel(__vector signed int __a, __vector signed int __b,
791 __vector unsigned int __c) {
792 return (((__vector signed int)__c & __b) |
793 (~(__vector signed int)__c & __a));
794}
795
796static inline __ATTRS_o_ai __vector signed int
797vec_sel(__vector signed int __a, __vector signed int __b,
798 __vector __bool int __c) {
799 return (((__vector signed int)__c & __b) |
800 (~(__vector signed int)__c & __a));
801}
802
803static inline __ATTRS_o_ai __vector __bool int
804vec_sel(__vector __bool int __a, __vector __bool int __b,
805 __vector unsigned int __c) {
806 return (((__vector __bool int)__c & __b) |
807 (~(__vector __bool int)__c & __a));
808}
809
810static inline __ATTRS_o_ai __vector __bool int
811vec_sel(__vector __bool int __a, __vector __bool int __b,
812 __vector __bool int __c) {
813 return (__c & __b) | (~__c & __a);
814}
815
816static inline __ATTRS_o_ai __vector unsigned int
817vec_sel(__vector unsigned int __a, __vector unsigned int __b,
818 __vector unsigned int __c) {
819 return (__c & __b) | (~__c & __a);
820}
821
822static inline __ATTRS_o_ai __vector unsigned int
823vec_sel(__vector unsigned int __a, __vector unsigned int __b,
824 __vector __bool int __c) {
825 return (((__vector unsigned int)__c & __b) |
826 (~(__vector unsigned int)__c & __a));
827}
828
829static inline __ATTRS_o_ai __vector signed long long
830vec_sel(__vector signed long long __a, __vector signed long long __b,
831 __vector unsigned long long __c) {
832 return (((__vector signed long long)__c & __b) |
833 (~(__vector signed long long)__c & __a));
834}
835
836static inline __ATTRS_o_ai __vector signed long long
837vec_sel(__vector signed long long __a, __vector signed long long __b,
838 __vector __bool long long __c) {
839 return (((__vector signed long long)__c & __b) |
840 (~(__vector signed long long)__c & __a));
841}
842
843static inline __ATTRS_o_ai __vector __bool long long
844vec_sel(__vector __bool long long __a, __vector __bool long long __b,
845 __vector unsigned long long __c) {
846 return (((__vector __bool long long)__c & __b) |
847 (~(__vector __bool long long)__c & __a));
848}
849
850static inline __ATTRS_o_ai __vector __bool long long
851vec_sel(__vector __bool long long __a, __vector __bool long long __b,
852 __vector __bool long long __c) {
853 return (__c & __b) | (~__c & __a);
854}
855
856static inline __ATTRS_o_ai __vector unsigned long long
857vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
858 __vector unsigned long long __c) {
859 return (__c & __b) | (~__c & __a);
860}
861
862static inline __ATTRS_o_ai __vector unsigned long long
863vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
864 __vector __bool long long __c) {
865 return (((__vector unsigned long long)__c & __b) |
866 (~(__vector unsigned long long)__c & __a));
867}
868
869static inline __ATTRS_o_ai __vector signed __int128
870vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
871 __vector unsigned __int128 __c) {
872 return (((__vector signed __int128)__c & __b) |
873 (~(__vector signed __int128)__c & __a));
874}
875
876static inline __ATTRS_o_ai __vector signed __int128
877vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
878 __vector __bool __int128 __c) {
879 return (((__vector signed __int128)__c & __b) |
880 (~(__vector signed __int128)__c & __a));
881}
882
883static inline __ATTRS_o_ai __vector __bool __int128
884vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
885 __vector unsigned __int128 __c) {
886 return (((__vector __bool __int128)__c & __b) |
887 (~(__vector __bool __int128)__c & __a));
888}
889
890static inline __ATTRS_o_ai __vector __bool __int128
891vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
892 __vector __bool __int128 __c) {
893 return (__c & __b) | (~__c & __a);
894}
895
896static inline __ATTRS_o_ai __vector unsigned __int128
897vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
898 __vector unsigned __int128 __c) {
899 return (__c & __b) | (~__c & __a);
900}
901
902static inline __ATTRS_o_ai __vector unsigned __int128
903vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
904 __vector __bool __int128 __c) {
905 return (((__vector unsigned __int128)__c & __b) |
906 (~(__vector unsigned __int128)__c & __a));
907}
908
909#if __ARCH__ >= 12
910static inline __ATTRS_o_ai __vector float
911vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
912 return (__vector float)((__c & (__vector unsigned int)__b) |
913 (~__c & (__vector unsigned int)__a));
914}
915
916static inline __ATTRS_o_ai __vector float
917vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
918 __vector unsigned int __ac = (__vector unsigned int)__a;
919 __vector unsigned int __bc = (__vector unsigned int)__b;
920 __vector unsigned int __cc = (__vector unsigned int)__c;
921 return (__vector float)((__cc & __bc) | (~__cc & __ac));
922}
923#endif
924
925static inline __ATTRS_o_ai __vector double
926vec_sel(__vector double __a, __vector double __b,
927 __vector unsigned long long __c) {
928 return (__vector double)((__c & (__vector unsigned long long)__b) |
929 (~__c & (__vector unsigned long long)__a));
930}
931
932static inline __ATTRS_o_ai __vector double
933vec_sel(__vector double __a, __vector double __b,
934 __vector __bool long long __c) {
935 __vector unsigned long long __ac = (__vector unsigned long long)__a;
936 __vector unsigned long long __bc = (__vector unsigned long long)__b;
937 __vector unsigned long long __cc = (__vector unsigned long long)__c;
938 return (__vector double)((__cc & __bc) | (~__cc & __ac));
939}
940
941/*-- vec_gather_element -----------------------------------------------------*/
942
943static inline __ATTRS_o_ai __vector signed int
944vec_gather_element(__vector signed int __vec,
945 __vector unsigned int __offset,
946 const signed int *__ptr, int __index)
947 __constant_range(__index, 0, 3) {
948 __vec[__index] = *(const signed int *)(
949 (const char *)__ptr + __offset[__index]);
950 return __vec;
951}
952
953static inline __ATTRS_o_ai __vector __bool int
954vec_gather_element(__vector __bool int __vec,
955 __vector unsigned int __offset,
956 const unsigned int *__ptr, int __index)
957 __constant_range(__index, 0, 3) {
958 __vec[__index] = *(const unsigned int *)(
959 (const char *)__ptr + __offset[__index]);
960 return __vec;
961}
962
963static inline __ATTRS_o_ai __vector unsigned int
964vec_gather_element(__vector unsigned int __vec,
965 __vector unsigned int __offset,
966 const unsigned int *__ptr, int __index)
967 __constant_range(__index, 0, 3) {
968 __vec[__index] = *(const unsigned int *)(
969 (const char *)__ptr + __offset[__index]);
970 return __vec;
971}
972
973static inline __ATTRS_o_ai __vector signed long long
974vec_gather_element(__vector signed long long __vec,
975 __vector unsigned long long __offset,
976 const signed long long *__ptr, int __index)
977 __constant_range(__index, 0, 1) {
978 __vec[__index] = *(const signed long long *)(
979 (const char *)__ptr + __offset[__index]);
980 return __vec;
981}
982
983static inline __ATTRS_o_ai __vector __bool long long
984vec_gather_element(__vector __bool long long __vec,
985 __vector unsigned long long __offset,
986 const unsigned long long *__ptr, int __index)
987 __constant_range(__index, 0, 1) {
988 __vec[__index] = *(const unsigned long long *)(
989 (const char *)__ptr + __offset[__index]);
990 return __vec;
991}
992
993static inline __ATTRS_o_ai __vector unsigned long long
994vec_gather_element(__vector unsigned long long __vec,
995 __vector unsigned long long __offset,
996 const unsigned long long *__ptr, int __index)
997 __constant_range(__index, 0, 1) {
998 __vec[__index] = *(const unsigned long long *)(
999 (const char *)__ptr + __offset[__index]);
1000 return __vec;
1001}
1002
1003#if __ARCH__ >= 12
1004static inline __ATTRS_o_ai __vector float
1005vec_gather_element(__vector float __vec,
1006 __vector unsigned int __offset,
1007 const float *__ptr, int __index)
1008 __constant_range(__index, 0, 3) {
1009 __vec[__index] = *(const float *)(
1010 (const char *)__ptr + __offset[__index]);
1011 return __vec;
1012}
1013#endif
1014
1015static inline __ATTRS_o_ai __vector double
1016vec_gather_element(__vector double __vec,
1017 __vector unsigned long long __offset,
1018 const double *__ptr, int __index)
1019 __constant_range(__index, 0, 1) {
1020 __vec[__index] = *(const double *)(
1021 (const char *)__ptr + __offset[__index]);
1022 return __vec;
1023}
1024
1025/*-- vec_scatter_element ----------------------------------------------------*/
1026
1027static inline __ATTRS_o_ai void
1028vec_scatter_element(__vector signed int __vec,
1029 __vector unsigned int __offset,
1030 signed int *__ptr, int __index)
1031 __constant_range(__index, 0, 3) {
1032 *(signed int *)((char *)__ptr + __offset[__index]) =
1033 __vec[__index];
1034}
1035
1036static inline __ATTRS_o_ai void
1037vec_scatter_element(__vector __bool int __vec,
1038 __vector unsigned int __offset,
1039 unsigned int *__ptr, int __index)
1040 __constant_range(__index, 0, 3) {
1041 *(unsigned int *)((char *)__ptr + __offset[__index]) =
1042 __vec[__index];
1043}
1044
1045static inline __ATTRS_o_ai void
1046vec_scatter_element(__vector unsigned int __vec,
1047 __vector unsigned int __offset,
1048 unsigned int *__ptr, int __index)
1049 __constant_range(__index, 0, 3) {
1050 *(unsigned int *)((char *)__ptr + __offset[__index]) =
1051 __vec[__index];
1052}
1053
1054static inline __ATTRS_o_ai void
1055vec_scatter_element(__vector signed long long __vec,
1056 __vector unsigned long long __offset,
1057 signed long long *__ptr, int __index)
1058 __constant_range(__index, 0, 1) {
1059 *(signed long long *)((char *)__ptr + __offset[__index]) =
1060 __vec[__index];
1061}
1062
1063static inline __ATTRS_o_ai void
1064vec_scatter_element(__vector __bool long long __vec,
1065 __vector unsigned long long __offset,
1066 unsigned long long *__ptr, int __index)
1067 __constant_range(__index, 0, 1) {
1068 *(unsigned long long *)((char *)__ptr + __offset[__index]) =
1069 __vec[__index];
1070}
1071
1072static inline __ATTRS_o_ai void
1073vec_scatter_element(__vector unsigned long long __vec,
1074 __vector unsigned long long __offset,
1075 unsigned long long *__ptr, int __index)
1076 __constant_range(__index, 0, 1) {
1077 *(unsigned long long *)((char *)__ptr + __offset[__index]) =
1078 __vec[__index];
1079}
1080
1081#if __ARCH__ >= 12
1082static inline __ATTRS_o_ai void
1083vec_scatter_element(__vector float __vec,
1084 __vector unsigned int __offset,
1085 float *__ptr, int __index)
1086 __constant_range(__index, 0, 3) {
1087 *(float *)((char *)__ptr + __offset[__index]) =
1088 __vec[__index];
1089}
1090#endif
1091
1092static inline __ATTRS_o_ai void
1093vec_scatter_element(__vector double __vec,
1094 __vector unsigned long long __offset,
1095 double *__ptr, int __index)
1096 __constant_range(__index, 0, 1) {
1097 *(double *)((char *)__ptr + __offset[__index]) =
1098 __vec[__index];
1099}
1100
1101/*-- vec_xl -----------------------------------------------------------------*/
1102
1103static inline __ATTRS_o_ai __vector signed char
1104vec_xl(long __offset, const signed char *__ptr) {
1105 __vector signed char V;
1106 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1107 sizeof(__vector signed char));
1108 return V;
1109}
1110
1111static inline __ATTRS_o_ai __vector unsigned char
1112vec_xl(long __offset, const unsigned char *__ptr) {
1113 __vector unsigned char V;
1114 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1115 sizeof(__vector unsigned char));
1116 return V;
1117}
1118
1119static inline __ATTRS_o_ai __vector signed short
1120vec_xl(long __offset, const signed short *__ptr) {
1121 __vector signed short V;
1122 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1123 sizeof(__vector signed short));
1124 return V;
1125}
1126
1127static inline __ATTRS_o_ai __vector unsigned short
1128vec_xl(long __offset, const unsigned short *__ptr) {
1129 __vector unsigned short V;
1130 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1131 sizeof(__vector unsigned short));
1132 return V;
1133}
1134
1135static inline __ATTRS_o_ai __vector signed int
1136vec_xl(long __offset, const signed int *__ptr) {
1137 __vector signed int V;
1138 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1139 sizeof(__vector signed int));
1140 return V;
1141}
1142
1143static inline __ATTRS_o_ai __vector unsigned int
1144vec_xl(long __offset, const unsigned int *__ptr) {
1145 __vector unsigned int V;
1146 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1147 sizeof(__vector unsigned int));
1148 return V;
1149}
1150
1151static inline __ATTRS_o_ai __vector signed long long
1152vec_xl(long __offset, const signed long long *__ptr) {
1153 __vector signed long long V;
1154 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1155 sizeof(__vector signed long long));
1156 return V;
1157}
1158
1159static inline __ATTRS_o_ai __vector unsigned long long
1160vec_xl(long __offset, const unsigned long long *__ptr) {
1161 __vector unsigned long long V;
1162 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1163 sizeof(__vector unsigned long long));
1164 return V;
1165}
1166
1167static inline __ATTRS_o_ai __vector signed __int128
1168vec_xl(long __offset, const signed __int128 *__ptr) {
1169 __vector signed __int128 V;
1170 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1171 sizeof(__vector signed __int128));
1172 return V;
1173}
1174
1175static inline __ATTRS_o_ai __vector unsigned __int128
1176vec_xl(long __offset, const unsigned __int128 *__ptr) {
1177 __vector unsigned __int128 V;
1178 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1179 sizeof(__vector unsigned __int128));
1180 return V;
1181}
1182
1183#if __ARCH__ >= 12
1184static inline __ATTRS_o_ai __vector float
1185vec_xl(long __offset, const float *__ptr) {
1186 __vector float V;
1187 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1188 sizeof(__vector float));
1189 return V;
1190}
1191#endif
1192
1193static inline __ATTRS_o_ai __vector double
1194vec_xl(long __offset, const double *__ptr) {
1195 __vector double V;
1196 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1197 sizeof(__vector double));
1198 return V;
1199}
1200
1201/*-- vec_xld2 ---------------------------------------------------------------*/
1202
1203// This prototype is deprecated.
1204static inline __ATTRS_o_ai __vector signed char
1205vec_xld2(long __offset, const signed char *__ptr) {
1206 __vector signed char V;
1207 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1208 sizeof(__vector signed char));
1209 return V;
1210}
1211
1212// This prototype is deprecated.
1213static inline __ATTRS_o_ai __vector unsigned char
1214vec_xld2(long __offset, const unsigned char *__ptr) {
1215 __vector unsigned char V;
1216 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1217 sizeof(__vector unsigned char));
1218 return V;
1219}
1220
1221// This prototype is deprecated.
1222static inline __ATTRS_o_ai __vector signed short
1223vec_xld2(long __offset, const signed short *__ptr) {
1224 __vector signed short V;
1225 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1226 sizeof(__vector signed short));
1227 return V;
1228}
1229
1230// This prototype is deprecated.
1231static inline __ATTRS_o_ai __vector unsigned short
1232vec_xld2(long __offset, const unsigned short *__ptr) {
1233 __vector unsigned short V;
1234 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1235 sizeof(__vector unsigned short));
1236 return V;
1237}
1238
1239// This prototype is deprecated.
1240static inline __ATTRS_o_ai __vector signed int
1241vec_xld2(long __offset, const signed int *__ptr) {
1242 __vector signed int V;
1243 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1244 sizeof(__vector signed int));
1245 return V;
1246}
1247
1248// This prototype is deprecated.
1249static inline __ATTRS_o_ai __vector unsigned int
1250vec_xld2(long __offset, const unsigned int *__ptr) {
1251 __vector unsigned int V;
1252 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1253 sizeof(__vector unsigned int));
1254 return V;
1255}
1256
1257// This prototype is deprecated.
1258static inline __ATTRS_o_ai __vector signed long long
1259vec_xld2(long __offset, const signed long long *__ptr) {
1260 __vector signed long long V;
1261 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1262 sizeof(__vector signed long long));
1263 return V;
1264}
1265
1266// This prototype is deprecated.
1267static inline __ATTRS_o_ai __vector unsigned long long
1268vec_xld2(long __offset, const unsigned long long *__ptr) {
1269 __vector unsigned long long V;
1270 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1271 sizeof(__vector unsigned long long));
1272 return V;
1273}
1274
1275// This prototype is deprecated.
1276static inline __ATTRS_o_ai __vector double
1277vec_xld2(long __offset, const double *__ptr) {
1278 __vector double V;
1279 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1280 sizeof(__vector double));
1281 return V;
1282}
1283
1284/*-- vec_xlw4 ---------------------------------------------------------------*/
1285
1286// This prototype is deprecated.
1287static inline __ATTRS_o_ai __vector signed char
1288vec_xlw4(long __offset, const signed char *__ptr) {
1289 __vector signed char V;
1290 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1291 sizeof(__vector signed char));
1292 return V;
1293}
1294
1295// This prototype is deprecated.
1296static inline __ATTRS_o_ai __vector unsigned char
1297vec_xlw4(long __offset, const unsigned char *__ptr) {
1298 __vector unsigned char V;
1299 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1300 sizeof(__vector unsigned char));
1301 return V;
1302}
1303
1304// This prototype is deprecated.
1305static inline __ATTRS_o_ai __vector signed short
1306vec_xlw4(long __offset, const signed short *__ptr) {
1307 __vector signed short V;
1308 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1309 sizeof(__vector signed short));
1310 return V;
1311}
1312
1313// This prototype is deprecated.
1314static inline __ATTRS_o_ai __vector unsigned short
1315vec_xlw4(long __offset, const unsigned short *__ptr) {
1316 __vector unsigned short V;
1317 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1318 sizeof(__vector unsigned short));
1319 return V;
1320}
1321
1322// This prototype is deprecated.
1323static inline __ATTRS_o_ai __vector signed int
1324vec_xlw4(long __offset, const signed int *__ptr) {
1325 __vector signed int V;
1326 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1327 sizeof(__vector signed int));
1328 return V;
1329}
1330
1331// This prototype is deprecated.
1332static inline __ATTRS_o_ai __vector unsigned int
1333vec_xlw4(long __offset, const unsigned int *__ptr) {
1334 __vector unsigned int V;
1335 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1336 sizeof(__vector unsigned int));
1337 return V;
1338}
1339
1340/*-- vec_xst ----------------------------------------------------------------*/
1341
1342static inline __ATTRS_o_ai void
1343vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
1344 __vector signed char V = __vec;
1345 __builtin_memcpy(((char *)__ptr + __offset), &V,
1346 sizeof(__vector signed char));
1347}
1348
1349static inline __ATTRS_o_ai void
1350vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1351 __vector unsigned char V = __vec;
1352 __builtin_memcpy(((char *)__ptr + __offset), &V,
1353 sizeof(__vector unsigned char));
1354}
1355
1356static inline __ATTRS_o_ai void
1357vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
1358 __vector signed short V = __vec;
1359 __builtin_memcpy(((char *)__ptr + __offset), &V,
1360 sizeof(__vector signed short));
1361}
1362
1363static inline __ATTRS_o_ai void
1364vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1365 __vector unsigned short V = __vec;
1366 __builtin_memcpy(((char *)__ptr + __offset), &V,
1367 sizeof(__vector unsigned short));
1368}
1369
1370static inline __ATTRS_o_ai void
1371vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
1372 __vector signed int V = __vec;
1373 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1374}
1375
1376static inline __ATTRS_o_ai void
1377vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1378 __vector unsigned int V = __vec;
1379 __builtin_memcpy(((char *)__ptr + __offset), &V,
1380 sizeof(__vector unsigned int));
1381}
1382
1383static inline __ATTRS_o_ai void
1384vec_xst(__vector signed long long __vec, long __offset,
1385 signed long long *__ptr) {
1386 __vector signed long long V = __vec;
1387 __builtin_memcpy(((char *)__ptr + __offset), &V,
1388 sizeof(__vector signed long long));
1389}
1390
1391static inline __ATTRS_o_ai void
1392vec_xst(__vector unsigned long long __vec, long __offset,
1393 unsigned long long *__ptr) {
1394 __vector unsigned long long V = __vec;
1395 __builtin_memcpy(((char *)__ptr + __offset), &V,
1396 sizeof(__vector unsigned long long));
1397}
1398
1399static inline __ATTRS_o_ai void
1400vec_xst(__vector signed __int128 __vec, long __offset,
1401 signed __int128 *__ptr) {
1402 __vector signed __int128 V = __vec;
1403 __builtin_memcpy(((char *)__ptr + __offset), &V,
1404 sizeof(__vector signed __int128));
1405}
1406
1407static inline __ATTRS_o_ai void
1408vec_xst(__vector unsigned __int128 __vec, long __offset,
1409 unsigned __int128 *__ptr) {
1410 __vector unsigned __int128 V = __vec;
1411 __builtin_memcpy(((char *)__ptr + __offset), &V,
1412 sizeof(__vector unsigned __int128));
1413}
1414
1415#if __ARCH__ >= 12
1416static inline __ATTRS_o_ai void
1417vec_xst(__vector float __vec, long __offset, float *__ptr) {
1418 __vector float V = __vec;
1419 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));
1420}
1421#endif
1422
1423static inline __ATTRS_o_ai void
1424vec_xst(__vector double __vec, long __offset, double *__ptr) {
1425 __vector double V = __vec;
1426 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1427}
1428
1429/*-- vec_xstd2 --------------------------------------------------------------*/
1430
1431// This prototype is deprecated.
1432static inline __ATTRS_o_ai void
1433vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
1434 __vector signed char V = __vec;
1435 __builtin_memcpy(((char *)__ptr + __offset), &V,
1436 sizeof(__vector signed char));
1437}
1438
1439// This prototype is deprecated.
1440static inline __ATTRS_o_ai void
1441vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1442 __vector unsigned char V = __vec;
1443 __builtin_memcpy(((char *)__ptr + __offset), &V,
1444 sizeof(__vector unsigned char));
1445}
1446
1447// This prototype is deprecated.
1448static inline __ATTRS_o_ai void
1449vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
1450 __vector signed short V = __vec;
1451 __builtin_memcpy(((char *)__ptr + __offset), &V,
1452 sizeof(__vector signed short));
1453}
1454
1455// This prototype is deprecated.
1456static inline __ATTRS_o_ai void
1457vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1458 __vector unsigned short V = __vec;
1459 __builtin_memcpy(((char *)__ptr + __offset), &V,
1460 sizeof(__vector unsigned short));
1461}
1462
1463// This prototype is deprecated.
1464static inline __ATTRS_o_ai void
1465vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
1466 __vector signed int V = __vec;
1467 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1468}
1469
1470// This prototype is deprecated.
1471static inline __ATTRS_o_ai void
1472vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1473 __vector unsigned int V = __vec;
1474 __builtin_memcpy(((char *)__ptr + __offset), &V,
1475 sizeof(__vector unsigned int));
1476}
1477
1478// This prototype is deprecated.
1479static inline __ATTRS_o_ai void
1480vec_xstd2(__vector signed long long __vec, long __offset,
1481 signed long long *__ptr) {
1482 __vector signed long long V = __vec;
1483 __builtin_memcpy(((char *)__ptr + __offset), &V,
1484 sizeof(__vector signed long long));
1485}
1486
1487// This prototype is deprecated.
1488static inline __ATTRS_o_ai void
1489vec_xstd2(__vector unsigned long long __vec, long __offset,
1490 unsigned long long *__ptr) {
1491 __vector unsigned long long V = __vec;
1492 __builtin_memcpy(((char *)__ptr + __offset), &V,
1493 sizeof(__vector unsigned long long));
1494}
1495
1496// This prototype is deprecated.
1497static inline __ATTRS_o_ai void
1498vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
1499 __vector double V = __vec;
1500 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1501}
1502
1503/*-- vec_xstw4 --------------------------------------------------------------*/
1504
1505// This prototype is deprecated.
1506static inline __ATTRS_o_ai void
1507vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
1508 __vector signed char V = __vec;
1509 __builtin_memcpy(((char *)__ptr + __offset), &V,
1510 sizeof(__vector signed char));
1511}
1512
1513// This prototype is deprecated.
1514static inline __ATTRS_o_ai void
1515vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1516 __vector unsigned char V = __vec;
1517 __builtin_memcpy(((char *)__ptr + __offset), &V,
1518 sizeof(__vector unsigned char));
1519}
1520
1521// This prototype is deprecated.
1522static inline __ATTRS_o_ai void
1523vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
1524 __vector signed short V = __vec;
1525 __builtin_memcpy(((char *)__ptr + __offset), &V,
1526 sizeof(__vector signed short));
1527}
1528
1529// This prototype is deprecated.
1530static inline __ATTRS_o_ai void
1531vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1532 __vector unsigned short V = __vec;
1533 __builtin_memcpy(((char *)__ptr + __offset), &V,
1534 sizeof(__vector unsigned short));
1535}
1536
1537// This prototype is deprecated.
1538static inline __ATTRS_o_ai void
1539vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
1540 __vector signed int V = __vec;
1541 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1542}
1543
1544// This prototype is deprecated.
1545static inline __ATTRS_o_ai void
1546vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1547 __vector unsigned int V = __vec;
1548 __builtin_memcpy(((char *)__ptr + __offset), &V,
1549 sizeof(__vector unsigned int));
1550}
1551
1552/*-- vec_load_bndry ---------------------------------------------------------*/
1553
1554extern __ATTRS_o __vector signed char
1555vec_load_bndry(const signed char *__ptr, unsigned short __len)
1556 __constant_pow2_range(__len, 64, 4096);
1557
1558extern __ATTRS_o __vector unsigned char
1559vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1560 __constant_pow2_range(__len, 64, 4096);
1561
1562extern __ATTRS_o __vector signed short
1563vec_load_bndry(const signed short *__ptr, unsigned short __len)
1564 __constant_pow2_range(__len, 64, 4096);
1565
1566extern __ATTRS_o __vector unsigned short
1567vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1568 __constant_pow2_range(__len, 64, 4096);
1569
1570extern __ATTRS_o __vector signed int
1571vec_load_bndry(const signed int *__ptr, unsigned short __len)
1572 __constant_pow2_range(__len, 64, 4096);
1573
1574extern __ATTRS_o __vector unsigned int
1575vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1576 __constant_pow2_range(__len, 64, 4096);
1577
1578extern __ATTRS_o __vector signed long long
1579vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1580 __constant_pow2_range(__len, 64, 4096);
1581
1582extern __ATTRS_o __vector unsigned long long
1583vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1584 __constant_pow2_range(__len, 64, 4096);
1585
1586extern __ATTRS_o __vector signed __int128
1587vec_load_bndry(const signed __int128 *__ptr, unsigned short __len)
1588 __constant_pow2_range(__len, 64, 4096);
1589
1590extern __ATTRS_o __vector unsigned __int128
1591vec_load_bndry(const unsigned __int128 *__ptr, unsigned short __len)
1592 __constant_pow2_range(__len, 64, 4096);
1593
1594#if __ARCH__ >= 12
1595extern __ATTRS_o __vector float
1596vec_load_bndry(const float *__ptr, unsigned short __len)
1597 __constant_pow2_range(__len, 64, 4096);
1598#endif
1599
1600extern __ATTRS_o __vector double
1601vec_load_bndry(const double *__ptr, unsigned short __len)
1602 __constant_pow2_range(__len, 64, 4096);
1603
1604#define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1605 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1606 (Y) == 128 ? 1 : \
1607 (Y) == 256 ? 2 : \
1608 (Y) == 512 ? 3 : \
1609 (Y) == 1024 ? 4 : \
1610 (Y) == 2048 ? 5 : \
1611 (Y) == 4096 ? 6 : -1)))
1612
1613/*-- vec_load_len -----------------------------------------------------------*/
1614
1615static inline __ATTRS_o_ai __vector signed char
1616vec_load_len(const signed char *__ptr, unsigned int __len) {
1617 return (__vector signed char)__builtin_s390_vll(__len, __ptr);
1618}
1619
1620static inline __ATTRS_o_ai __vector unsigned char
1621vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1622 return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
1623}
1624
1625// This prototype is deprecated.
1626static inline __ATTRS_o_ai __vector signed short
1627vec_load_len(const signed short *__ptr, unsigned int __len) {
1628 return (__vector signed short)__builtin_s390_vll(__len, __ptr);
1629}
1630
1631// This prototype is deprecated.
1632static inline __ATTRS_o_ai __vector unsigned short
1633vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1634 return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
1635}
1636
1637// This prototype is deprecated.
1638static inline __ATTRS_o_ai __vector signed int
1639vec_load_len(const signed int *__ptr, unsigned int __len) {
1640 return (__vector signed int)__builtin_s390_vll(__len, __ptr);
1641}
1642
1643// This prototype is deprecated.
1644static inline __ATTRS_o_ai __vector unsigned int
1645vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1646 return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
1647}
1648
1649// This prototype is deprecated.
1650static inline __ATTRS_o_ai __vector signed long long
1651vec_load_len(const signed long long *__ptr, unsigned int __len) {
1652 return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
1653}
1654
1655// This prototype is deprecated.
1656static inline __ATTRS_o_ai __vector unsigned long long
1657vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1658 return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1659}
1660
1661#if __ARCH__ >= 12
1662// This prototype is deprecated.
1663static inline __ATTRS_o_ai __vector float
1664vec_load_len(const float *__ptr, unsigned int __len) {
1665 return (__vector float)__builtin_s390_vll(__len, __ptr);
1666}
1667#endif
1668
1669// This prototype is deprecated.
1670static inline __ATTRS_o_ai __vector double
1671vec_load_len(const double *__ptr, unsigned int __len) {
1672 return (__vector double)__builtin_s390_vll(__len, __ptr);
1673}
1674
1675/*-- vec_load_len_r ---------------------------------------------------------*/
1676
1677#if __ARCH__ >= 12
1678static inline __ATTRS_o_ai __vector signed char
1679vec_load_len_r(const signed char *__ptr, unsigned int __len) {
1680 return (__vector signed char)__builtin_s390_vlrlr(__len, __ptr);
1681}
1682
1683static inline __ATTRS_o_ai __vector unsigned char
1684vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1685 return (__vector unsigned char)__builtin_s390_vlrlr(__len, __ptr);
1686}
1687#endif
1688
1689/*-- vec_store_len ----------------------------------------------------------*/
1690
1691static inline __ATTRS_o_ai void
1692vec_store_len(__vector signed char __vec, signed char *__ptr,
1693 unsigned int __len) {
1694 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1695}
1696
1697static inline __ATTRS_o_ai void
1698vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
1699 unsigned int __len) {
1700 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1701}
1702
1703// This prototype is deprecated.
1704static inline __ATTRS_o_ai void
1705vec_store_len(__vector signed short __vec, signed short *__ptr,
1706 unsigned int __len) {
1707 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1708}
1709
1710// This prototype is deprecated.
1711static inline __ATTRS_o_ai void
1712vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
1713 unsigned int __len) {
1714 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1715}
1716
1717// This prototype is deprecated.
1718static inline __ATTRS_o_ai void
1719vec_store_len(__vector signed int __vec, signed int *__ptr,
1720 unsigned int __len) {
1721 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1722}
1723
1724// This prototype is deprecated.
1725static inline __ATTRS_o_ai void
1726vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
1727 unsigned int __len) {
1728 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1729}
1730
1731// This prototype is deprecated.
1732static inline __ATTRS_o_ai void
1733vec_store_len(__vector signed long long __vec, signed long long *__ptr,
1734 unsigned int __len) {
1735 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1736}
1737
1738// This prototype is deprecated.
1739static inline __ATTRS_o_ai void
1740vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
1741 unsigned int __len) {
1742 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1743}
1744
1745#if __ARCH__ >= 12
1746// This prototype is deprecated.
1747static inline __ATTRS_o_ai void
1748vec_store_len(__vector float __vec, float *__ptr,
1749 unsigned int __len) {
1750 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1751}
1752#endif
1753
1754// This prototype is deprecated.
1755static inline __ATTRS_o_ai void
1756vec_store_len(__vector double __vec, double *__ptr,
1757 unsigned int __len) {
1758 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1759}
1760
1761/*-- vec_store_len_r --------------------------------------------------------*/
1762
1763#if __ARCH__ >= 12
1764static inline __ATTRS_o_ai void
1765vec_store_len_r(__vector signed char __vec, signed char *__ptr,
1766 unsigned int __len) {
1767 __builtin_s390_vstrlr(__vec, __len, __ptr);
1768}
1769
1770static inline __ATTRS_o_ai void
1771vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
1772 unsigned int __len) {
1773 __builtin_s390_vstrlr((__vector signed char)__vec, __len, __ptr);
1774}
1775#endif
1776
1777/*-- vec_load_pair ----------------------------------------------------------*/
1778
1779static inline __ATTRS_o_ai __vector signed long long
1780vec_load_pair(signed long long __a, signed long long __b) {
1781 return (__vector signed long long)(__a, __b);
1782}
1783
1784static inline __ATTRS_o_ai __vector unsigned long long
1785vec_load_pair(unsigned long long __a, unsigned long long __b) {
1786 return (__vector unsigned long long)(__a, __b);
1787}
1788
1789/*-- vec_genmask ------------------------------------------------------------*/
1790
1791static inline __ATTRS_o_ai __vector unsigned char
1792vec_genmask(unsigned short __mask)
1793 __constant(__mask) {
1794 return (__vector unsigned char)(
1795 __mask & 0x8000 ? 0xff : 0,
1796 __mask & 0x4000 ? 0xff : 0,
1797 __mask & 0x2000 ? 0xff : 0,
1798 __mask & 0x1000 ? 0xff : 0,
1799 __mask & 0x0800 ? 0xff : 0,
1800 __mask & 0x0400 ? 0xff : 0,
1801 __mask & 0x0200 ? 0xff : 0,
1802 __mask & 0x0100 ? 0xff : 0,
1803 __mask & 0x0080 ? 0xff : 0,
1804 __mask & 0x0040 ? 0xff : 0,
1805 __mask & 0x0020 ? 0xff : 0,
1806 __mask & 0x0010 ? 0xff : 0,
1807 __mask & 0x0008 ? 0xff : 0,
1808 __mask & 0x0004 ? 0xff : 0,
1809 __mask & 0x0002 ? 0xff : 0,
1810 __mask & 0x0001 ? 0xff : 0);
1811}
1812
1813/*-- vec_genmasks_* ---------------------------------------------------------*/
1814
1815static inline __ATTRS_o_ai __vector unsigned char
1816vec_genmasks_8(unsigned char __first, unsigned char __last)
1817 __constant(__first) __constant(__last) {
1818 unsigned char __bit1 = __first & 7;
1819 unsigned char __bit2 = __last & 7;
1820 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1821 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1822 unsigned char __value = (__bit1 <= __bit2 ?
1823 __mask1 & ~__mask2 :
1824 __mask1 | ~__mask2);
1825 return (__vector unsigned char)__value;
1826}
1827
1828static inline __ATTRS_o_ai __vector unsigned short
1829vec_genmasks_16(unsigned char __first, unsigned char __last)
1830 __constant(__first) __constant(__last) {
1831 unsigned char __bit1 = __first & 15;
1832 unsigned char __bit2 = __last & 15;
1833 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1834 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1835 unsigned short __value = (__bit1 <= __bit2 ?
1836 __mask1 & ~__mask2 :
1837 __mask1 | ~__mask2);
1838 return (__vector unsigned short)__value;
1839}
1840
1841static inline __ATTRS_o_ai __vector unsigned int
1842vec_genmasks_32(unsigned char __first, unsigned char __last)
1843 __constant(__first) __constant(__last) {
1844 unsigned char __bit1 = __first & 31;
1845 unsigned char __bit2 = __last & 31;
1846 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1847 unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1848 unsigned int __value = (__bit1 <= __bit2 ?
1849 __mask1 & ~__mask2 :
1850 __mask1 | ~__mask2);
1851 return (__vector unsigned int)__value;
1852}
1853
1854static inline __ATTRS_o_ai __vector unsigned long long
1855vec_genmasks_64(unsigned char __first, unsigned char __last)
1856 __constant(__first) __constant(__last) {
1857 unsigned char __bit1 = __first & 63;
1858 unsigned char __bit2 = __last & 63;
1859 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1860 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1861 unsigned long long __value = (__bit1 <= __bit2 ?
1862 __mask1 & ~__mask2 :
1863 __mask1 | ~__mask2);
1864 return (__vector unsigned long long)__value;
1865}
1866
1867/*-- vec_gen_element_masks_* ------------------------------------------------*/
1868
1869#if __ARCH__ >= 15
1870static inline __ATTRS_ai __vector unsigned char
1871vec_gen_element_masks_8(__vector unsigned short __mask) {
1872 return __builtin_s390_vgemb(__mask);
1873}
1874
1875static inline __ATTRS_ai __vector unsigned short
1876vec_gen_element_masks_16(__vector unsigned char __mask) {
1877 return __builtin_s390_vgemh(__mask);
1878}
1879
1880static inline __ATTRS_ai __vector unsigned int
1881vec_gen_element_masks_32(__vector unsigned char __mask) {
1882 return __builtin_s390_vgemf(__mask);
1883}
1884
1885static inline __ATTRS_ai __vector unsigned long long
1886vec_gen_element_masks_64(__vector unsigned char __mask) {
1887 return __builtin_s390_vgemg(__mask);
1888}
1889
1890static inline __ATTRS_ai __vector unsigned __int128
1891vec_gen_element_masks_128(__vector unsigned char __mask) {
1892 return (__vector unsigned __int128)__builtin_s390_vgemq(__mask);
1893}
1894#endif
1895
1896/*-- vec_splat --------------------------------------------------------------*/
1897
1898static inline __ATTRS_o_ai __vector signed char
1899vec_splat(__vector signed char __vec, int __index)
1900 __constant_range(__index, 0, 15) {
1901 return (__vector signed char)__vec[__index];
1902}
1903
1904static inline __ATTRS_o_ai __vector __bool char
1905vec_splat(__vector __bool char __vec, int __index)
1906 __constant_range(__index, 0, 15) {
1907 return (__vector __bool char)(__vector unsigned char)__vec[__index];
1908}
1909
1910static inline __ATTRS_o_ai __vector unsigned char
1911vec_splat(__vector unsigned char __vec, int __index)
1912 __constant_range(__index, 0, 15) {
1913 return (__vector unsigned char)__vec[__index];
1914}
1915
1916static inline __ATTRS_o_ai __vector signed short
1917vec_splat(__vector signed short __vec, int __index)
1918 __constant_range(__index, 0, 7) {
1919 return (__vector signed short)__vec[__index];
1920}
1921
1922static inline __ATTRS_o_ai __vector __bool short
1923vec_splat(__vector __bool short __vec, int __index)
1924 __constant_range(__index, 0, 7) {
1925 return (__vector __bool short)(__vector unsigned short)__vec[__index];
1926}
1927
1928static inline __ATTRS_o_ai __vector unsigned short
1929vec_splat(__vector unsigned short __vec, int __index)
1930 __constant_range(__index, 0, 7) {
1931 return (__vector unsigned short)__vec[__index];
1932}
1933
1934static inline __ATTRS_o_ai __vector signed int
1935vec_splat(__vector signed int __vec, int __index)
1936 __constant_range(__index, 0, 3) {
1937 return (__vector signed int)__vec[__index];
1938}
1939
1940static inline __ATTRS_o_ai __vector __bool int
1941vec_splat(__vector __bool int __vec, int __index)
1942 __constant_range(__index, 0, 3) {
1943 return (__vector __bool int)(__vector unsigned int)__vec[__index];
1944}
1945
1946static inline __ATTRS_o_ai __vector unsigned int
1947vec_splat(__vector unsigned int __vec, int __index)
1948 __constant_range(__index, 0, 3) {
1949 return (__vector unsigned int)__vec[__index];
1950}
1951
1952static inline __ATTRS_o_ai __vector signed long long
1953vec_splat(__vector signed long long __vec, int __index)
1954 __constant_range(__index, 0, 1) {
1955 return (__vector signed long long)__vec[__index];
1956}
1957
1958static inline __ATTRS_o_ai __vector __bool long long
1959vec_splat(__vector __bool long long __vec, int __index)
1960 __constant_range(__index, 0, 1) {
1961 return ((__vector __bool long long)
1962 (__vector unsigned long long)__vec[__index]);
1963}
1964
1965static inline __ATTRS_o_ai __vector unsigned long long
1966vec_splat(__vector unsigned long long __vec, int __index)
1967 __constant_range(__index, 0, 1) {
1968 return (__vector unsigned long long)__vec[__index];
1969}
1970
1971#if __ARCH__ >= 12
1972static inline __ATTRS_o_ai __vector float
1973vec_splat(__vector float __vec, int __index)
1974 __constant_range(__index, 0, 3) {
1975 return (__vector float)__vec[__index];
1976}
1977#endif
1978
1979static inline __ATTRS_o_ai __vector double
1980vec_splat(__vector double __vec, int __index)
1981 __constant_range(__index, 0, 1) {
1982 return (__vector double)__vec[__index];
1983}
1984
1985/*-- vec_splat_s* -----------------------------------------------------------*/
1986
1987static inline __ATTRS_ai __vector signed char
1988vec_splat_s8(signed char __scalar)
1989 __constant(__scalar) {
1990 return (__vector signed char)__scalar;
1991}
1992
1993static inline __ATTRS_ai __vector signed short
1994vec_splat_s16(signed short __scalar)
1995 __constant(__scalar) {
1996 return (__vector signed short)__scalar;
1997}
1998
1999static inline __ATTRS_ai __vector signed int
2000vec_splat_s32(signed short __scalar)
2001 __constant(__scalar) {
2002 return (__vector signed int)(signed int)__scalar;
2003}
2004
2005static inline __ATTRS_ai __vector signed long long
2006vec_splat_s64(signed short __scalar)
2007 __constant(__scalar) {
2008 return (__vector signed long long)(signed long)__scalar;
2009}
2010
2011/*-- vec_splat_u* -----------------------------------------------------------*/
2012
2013static inline __ATTRS_ai __vector unsigned char
2014vec_splat_u8(unsigned char __scalar)
2015 __constant(__scalar) {
2016 return (__vector unsigned char)__scalar;
2017}
2018
2019static inline __ATTRS_ai __vector unsigned short
2020vec_splat_u16(unsigned short __scalar)
2021 __constant(__scalar) {
2022 return (__vector unsigned short)__scalar;
2023}
2024
2025static inline __ATTRS_ai __vector unsigned int
2026vec_splat_u32(signed short __scalar)
2027 __constant(__scalar) {
2028 return (__vector unsigned int)(signed int)__scalar;
2029}
2030
2031static inline __ATTRS_ai __vector unsigned long long
2032vec_splat_u64(signed short __scalar)
2033 __constant(__scalar) {
2034 return (__vector unsigned long long)(signed long long)__scalar;
2035}
2036
2037/*-- vec_splats -------------------------------------------------------------*/
2038
2039static inline __ATTRS_o_ai __vector signed char
2040vec_splats(signed char __scalar) {
2041 return (__vector signed char)__scalar;
2042}
2043
2044static inline __ATTRS_o_ai __vector unsigned char
2045vec_splats(unsigned char __scalar) {
2046 return (__vector unsigned char)__scalar;
2047}
2048
2049static inline __ATTRS_o_ai __vector signed short
2050vec_splats(signed short __scalar) {
2051 return (__vector signed short)__scalar;
2052}
2053
2054static inline __ATTRS_o_ai __vector unsigned short
2055vec_splats(unsigned short __scalar) {
2056 return (__vector unsigned short)__scalar;
2057}
2058
2059static inline __ATTRS_o_ai __vector signed int
2060vec_splats(signed int __scalar) {
2061 return (__vector signed int)__scalar;
2062}
2063
2064static inline __ATTRS_o_ai __vector unsigned int
2065vec_splats(unsigned int __scalar) {
2066 return (__vector unsigned int)__scalar;
2067}
2068
2069static inline __ATTRS_o_ai __vector signed long long
2070vec_splats(signed long long __scalar) {
2071 return (__vector signed long long)__scalar;
2072}
2073
2074static inline __ATTRS_o_ai __vector unsigned long long
2075vec_splats(unsigned long long __scalar) {
2076 return (__vector unsigned long long)__scalar;
2077}
2078
2079static inline __ATTRS_o_ai __vector signed __int128
2080vec_splats(signed __int128 __scalar) {
2081 return (__vector signed __int128)__scalar;
2082}
2083
2084static inline __ATTRS_o_ai __vector unsigned __int128
2085vec_splats(unsigned __int128 __scalar) {
2086 return (__vector unsigned __int128)__scalar;
2087}
2088
2089#if __ARCH__ >= 12
2090static inline __ATTRS_o_ai __vector float
2091vec_splats(float __scalar) {
2092 return (__vector float)__scalar;
2093}
2094#endif
2095
2096static inline __ATTRS_o_ai __vector double
2097vec_splats(double __scalar) {
2098 return (__vector double)__scalar;
2099}
2100
2101/*-- vec_extend_s64 ---------------------------------------------------------*/
2102
2103static inline __ATTRS_o_ai __vector signed long long
2104vec_extend_s64(__vector signed char __a) {
2105 return (__vector signed long long)(__a[7], __a[15]);
2106}
2107
2108static inline __ATTRS_o_ai __vector signed long long
2109vec_extend_s64(__vector signed short __a) {
2110 return (__vector signed long long)(__a[3], __a[7]);
2111}
2112
2113static inline __ATTRS_o_ai __vector signed long long
2114vec_extend_s64(__vector signed int __a) {
2115 return (__vector signed long long)(__a[1], __a[3]);
2116}
2117
2118/*-- vec_mergeh -------------------------------------------------------------*/
2119
2120static inline __ATTRS_o_ai __vector signed char
2121vec_mergeh(__vector signed char __a, __vector signed char __b) {
2122 return (__vector signed char)(
2123 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2124 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2125}
2126
2127static inline __ATTRS_o_ai __vector __bool char
2128vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
2129 return (__vector __bool char)(
2130 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2131 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2132}
2133
2134static inline __ATTRS_o_ai __vector unsigned char
2135vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
2136 return (__vector unsigned char)(
2137 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2138 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2139}
2140
2141static inline __ATTRS_o_ai __vector signed short
2142vec_mergeh(__vector signed short __a, __vector signed short __b) {
2143 return (__vector signed short)(
2144 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2145}
2146
2147static inline __ATTRS_o_ai __vector __bool short
2148vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
2149 return (__vector __bool short)(
2150 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2151}
2152
2153static inline __ATTRS_o_ai __vector unsigned short
2154vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
2155 return (__vector unsigned short)(
2156 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2157}
2158
2159static inline __ATTRS_o_ai __vector signed int
2160vec_mergeh(__vector signed int __a, __vector signed int __b) {
2161 return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
2162}
2163
2164static inline __ATTRS_o_ai __vector __bool int
2165vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
2166 return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
2167}
2168
2169static inline __ATTRS_o_ai __vector unsigned int
2170vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
2171 return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
2172}
2173
2174static inline __ATTRS_o_ai __vector signed long long
2175vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
2176 return (__vector signed long long)(__a[0], __b[0]);
2177}
2178
2179static inline __ATTRS_o_ai __vector __bool long long
2180vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
2181 return (__vector __bool long long)(__a[0], __b[0]);
2182}
2183
2184static inline __ATTRS_o_ai __vector unsigned long long
2185vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
2186 return (__vector unsigned long long)(__a[0], __b[0]);
2187}
2188
2189#if __ARCH__ >= 12
2190static inline __ATTRS_o_ai __vector float
2191vec_mergeh(__vector float __a, __vector float __b) {
2192 return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
2193}
2194#endif
2195
2196static inline __ATTRS_o_ai __vector double
2197vec_mergeh(__vector double __a, __vector double __b) {
2198 return (__vector double)(__a[0], __b[0]);
2199}
2200
2201/*-- vec_mergel -------------------------------------------------------------*/
2202
2203static inline __ATTRS_o_ai __vector signed char
2204vec_mergel(__vector signed char __a, __vector signed char __b) {
2205 return (__vector signed char)(
2206 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2207 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2208}
2209
2210static inline __ATTRS_o_ai __vector __bool char
2211vec_mergel(__vector __bool char __a, __vector __bool char __b) {
2212 return (__vector __bool char)(
2213 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2214 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2215}
2216
2217static inline __ATTRS_o_ai __vector unsigned char
2218vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
2219 return (__vector unsigned char)(
2220 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2221 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2222}
2223
2224static inline __ATTRS_o_ai __vector signed short
2225vec_mergel(__vector signed short __a, __vector signed short __b) {
2226 return (__vector signed short)(
2227 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2228}
2229
2230static inline __ATTRS_o_ai __vector __bool short
2231vec_mergel(__vector __bool short __a, __vector __bool short __b) {
2232 return (__vector __bool short)(
2233 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2234}
2235
2236static inline __ATTRS_o_ai __vector unsigned short
2237vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
2238 return (__vector unsigned short)(
2239 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2240}
2241
2242static inline __ATTRS_o_ai __vector signed int
2243vec_mergel(__vector signed int __a, __vector signed int __b) {
2244 return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
2245}
2246
2247static inline __ATTRS_o_ai __vector __bool int
2248vec_mergel(__vector __bool int __a, __vector __bool int __b) {
2249 return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
2250}
2251
2252static inline __ATTRS_o_ai __vector unsigned int
2253vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
2254 return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
2255}
2256
2257static inline __ATTRS_o_ai __vector signed long long
2258vec_mergel(__vector signed long long __a, __vector signed long long __b) {
2259 return (__vector signed long long)(__a[1], __b[1]);
2260}
2261
2262static inline __ATTRS_o_ai __vector __bool long long
2263vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
2264 return (__vector __bool long long)(__a[1], __b[1]);
2265}
2266
2267static inline __ATTRS_o_ai __vector unsigned long long
2268vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
2269 return (__vector unsigned long long)(__a[1], __b[1]);
2270}
2271
2272#if __ARCH__ >= 12
2273static inline __ATTRS_o_ai __vector float
2274vec_mergel(__vector float __a, __vector float __b) {
2275 return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
2276}
2277#endif
2278
2279static inline __ATTRS_o_ai __vector double
2280vec_mergel(__vector double __a, __vector double __b) {
2281 return (__vector double)(__a[1], __b[1]);
2282}
2283
2284/*-- vec_pack ---------------------------------------------------------------*/
2285
2286static inline __ATTRS_o_ai __vector signed char
2287vec_pack(__vector signed short __a, __vector signed short __b) {
2288 __vector signed char __ac = (__vector signed char)__a;
2289 __vector signed char __bc = (__vector signed char)__b;
2290 return (__vector signed char)(
2291 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2292 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2293}
2294
2295static inline __ATTRS_o_ai __vector __bool char
2296vec_pack(__vector __bool short __a, __vector __bool short __b) {
2297 __vector __bool char __ac = (__vector __bool char)__a;
2298 __vector __bool char __bc = (__vector __bool char)__b;
2299 return (__vector __bool char)(
2300 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2301 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2302}
2303
2304static inline __ATTRS_o_ai __vector unsigned char
2305vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
2306 __vector unsigned char __ac = (__vector unsigned char)__a;
2307 __vector unsigned char __bc = (__vector unsigned char)__b;
2308 return (__vector unsigned char)(
2309 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2310 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2311}
2312
2313static inline __ATTRS_o_ai __vector signed short
2314vec_pack(__vector signed int __a, __vector signed int __b) {
2315 __vector signed short __ac = (__vector signed short)__a;
2316 __vector signed short __bc = (__vector signed short)__b;
2317 return (__vector signed short)(
2318 __ac[1], __ac[3], __ac[5], __ac[7],
2319 __bc[1], __bc[3], __bc[5], __bc[7]);
2320}
2321
2322static inline __ATTRS_o_ai __vector __bool short
2323vec_pack(__vector __bool int __a, __vector __bool int __b) {
2324 __vector __bool short __ac = (__vector __bool short)__a;
2325 __vector __bool short __bc = (__vector __bool short)__b;
2326 return (__vector __bool short)(
2327 __ac[1], __ac[3], __ac[5], __ac[7],
2328 __bc[1], __bc[3], __bc[5], __bc[7]);
2329}
2330
2331static inline __ATTRS_o_ai __vector unsigned short
2332vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
2333 __vector unsigned short __ac = (__vector unsigned short)__a;
2334 __vector unsigned short __bc = (__vector unsigned short)__b;
2335 return (__vector unsigned short)(
2336 __ac[1], __ac[3], __ac[5], __ac[7],
2337 __bc[1], __bc[3], __bc[5], __bc[7]);
2338}
2339
2340static inline __ATTRS_o_ai __vector signed int
2341vec_pack(__vector signed long long __a, __vector signed long long __b) {
2342 __vector signed int __ac = (__vector signed int)__a;
2343 __vector signed int __bc = (__vector signed int)__b;
2344 return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2345}
2346
2347static inline __ATTRS_o_ai __vector __bool int
2348vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
2349 __vector __bool int __ac = (__vector __bool int)__a;
2350 __vector __bool int __bc = (__vector __bool int)__b;
2351 return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2352}
2353
2354static inline __ATTRS_o_ai __vector unsigned int
2355vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
2356 __vector unsigned int __ac = (__vector unsigned int)__a;
2357 __vector unsigned int __bc = (__vector unsigned int)__b;
2358 return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2359}
2360
2361static inline __ATTRS_o_ai __vector signed long long
2362vec_pack(__vector signed __int128 __a, __vector signed __int128 __b) {
2363 __vector signed long long __ac = (__vector signed long long)__a;
2364 __vector signed long long __bc = (__vector signed long long)__b;
2365 return (__vector signed long long)(__ac[1], __bc[1]);
2366}
2367
2368static inline __ATTRS_o_ai __vector __bool long long
2369vec_pack(__vector __bool __int128 __a, __vector __bool __int128 __b) {
2370 __vector __bool long long __ac = (__vector __bool long long)__a;
2371 __vector __bool long long __bc = (__vector __bool long long)__b;
2372 return (__vector __bool long long)(__ac[1], __bc[1]);
2373}
2374
2375static inline __ATTRS_o_ai __vector unsigned long long
2376vec_pack(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2377 __vector unsigned long long __ac = (__vector unsigned long long)__a;
2378 __vector unsigned long long __bc = (__vector unsigned long long)__b;
2379 return (__vector unsigned long long)(__ac[1], __bc[1]);
2380}
2381
2382/*-- vec_packs --------------------------------------------------------------*/
2383
2384static inline __ATTRS_o_ai __vector signed char
2385vec_packs(__vector signed short __a, __vector signed short __b) {
2386 return __builtin_s390_vpksh(__a, __b);
2387}
2388
2389static inline __ATTRS_o_ai __vector unsigned char
2390vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
2391 return __builtin_s390_vpklsh(__a, __b);
2392}
2393
2394static inline __ATTRS_o_ai __vector signed short
2395vec_packs(__vector signed int __a, __vector signed int __b) {
2396 return __builtin_s390_vpksf(__a, __b);
2397}
2398
2399static inline __ATTRS_o_ai __vector unsigned short
2400vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
2401 return __builtin_s390_vpklsf(__a, __b);
2402}
2403
2404static inline __ATTRS_o_ai __vector signed int
2405vec_packs(__vector signed long long __a, __vector signed long long __b) {
2406 return __builtin_s390_vpksg(__a, __b);
2407}
2408
2409static inline __ATTRS_o_ai __vector unsigned int
2410vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
2411 return __builtin_s390_vpklsg(__a, __b);
2412}
2413
2414/*-- vec_packs_cc -----------------------------------------------------------*/
2415
2416static inline __ATTRS_o_ai __vector signed char
2417vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
2418 return __builtin_s390_vpkshs(__a, __b, __cc);
2419}
2420
2421static inline __ATTRS_o_ai __vector unsigned char
2422vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
2423 int *__cc) {
2424 return __builtin_s390_vpklshs(__a, __b, __cc);
2425}
2426
2427static inline __ATTRS_o_ai __vector signed short
2428vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
2429 return __builtin_s390_vpksfs(__a, __b, __cc);
2430}
2431
2432static inline __ATTRS_o_ai __vector unsigned short
2433vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2434 return __builtin_s390_vpklsfs(__a, __b, __cc);
2435}
2436
2437static inline __ATTRS_o_ai __vector signed int
2438vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
2439 int *__cc) {
2440 return __builtin_s390_vpksgs(__a, __b, __cc);
2441}
2442
2443static inline __ATTRS_o_ai __vector unsigned int
2444vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2445 int *__cc) {
2446 return __builtin_s390_vpklsgs(__a, __b, __cc);
2447}
2448
2449/*-- vec_packsu -------------------------------------------------------------*/
2450
2451static inline __ATTRS_o_ai __vector unsigned char
2452vec_packsu(__vector signed short __a, __vector signed short __b) {
2453 const __vector signed short __zero = (__vector signed short)0;
2454 return __builtin_s390_vpklsh(
2455 (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
2456 (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
2457}
2458
2459static inline __ATTRS_o_ai __vector unsigned char
2460vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
2461 return __builtin_s390_vpklsh(__a, __b);
2462}
2463
2464static inline __ATTRS_o_ai __vector unsigned short
2465vec_packsu(__vector signed int __a, __vector signed int __b) {
2466 const __vector signed int __zero = (__vector signed int)0;
2467 return __builtin_s390_vpklsf(
2468 (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
2469 (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
2470}
2471
2472static inline __ATTRS_o_ai __vector unsigned short
2473vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
2474 return __builtin_s390_vpklsf(__a, __b);
2475}
2476
2477static inline __ATTRS_o_ai __vector unsigned int
2478vec_packsu(__vector signed long long __a, __vector signed long long __b) {
2479 const __vector signed long long __zero = (__vector signed long long)0;
2480 return __builtin_s390_vpklsg(
2481 (__vector unsigned long long)(__a >= __zero) &
2482 (__vector unsigned long long)__a,
2483 (__vector unsigned long long)(__b >= __zero) &
2484 (__vector unsigned long long)__b);
2485}
2486
2487static inline __ATTRS_o_ai __vector unsigned int
2488vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
2489 return __builtin_s390_vpklsg(__a, __b);
2490}
2491
2492/*-- vec_packsu_cc ----------------------------------------------------------*/
2493
2494static inline __ATTRS_o_ai __vector unsigned char
2495vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
2496 int *__cc) {
2497 return __builtin_s390_vpklshs(__a, __b, __cc);
2498}
2499
2500static inline __ATTRS_o_ai __vector unsigned short
2501vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2502 return __builtin_s390_vpklsfs(__a, __b, __cc);
2503}
2504
2505static inline __ATTRS_o_ai __vector unsigned int
2506vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2507 int *__cc) {
2508 return __builtin_s390_vpklsgs(__a, __b, __cc);
2509}
2510
2511/*-- vec_unpackh ------------------------------------------------------------*/
2512
2513static inline __ATTRS_o_ai __vector signed short
2514vec_unpackh(__vector signed char __a) {
2515 return __builtin_s390_vuphb(__a);
2516}
2517
2518static inline __ATTRS_o_ai __vector __bool short
2519vec_unpackh(__vector __bool char __a) {
2520 return ((__vector __bool short)
2521 __builtin_s390_vuphb((__vector signed char)__a));
2522}
2523
2524static inline __ATTRS_o_ai __vector unsigned short
2525vec_unpackh(__vector unsigned char __a) {
2526 return __builtin_s390_vuplhb(__a);
2527}
2528
2529static inline __ATTRS_o_ai __vector signed int
2530vec_unpackh(__vector signed short __a) {
2531 return __builtin_s390_vuphh(__a);
2532}
2533
2534static inline __ATTRS_o_ai __vector __bool int
2535vec_unpackh(__vector __bool short __a) {
2536 return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
2537}
2538
2539static inline __ATTRS_o_ai __vector unsigned int
2540vec_unpackh(__vector unsigned short __a) {
2541 return __builtin_s390_vuplhh(__a);
2542}
2543
2544static inline __ATTRS_o_ai __vector signed long long
2545vec_unpackh(__vector signed int __a) {
2546 return __builtin_s390_vuphf(__a);
2547}
2548
2549static inline __ATTRS_o_ai __vector __bool long long
2550vec_unpackh(__vector __bool int __a) {
2551 return ((__vector __bool long long)
2552 __builtin_s390_vuphf((__vector signed int)__a));
2553}
2554
2555static inline __ATTRS_o_ai __vector unsigned long long
2556vec_unpackh(__vector unsigned int __a) {
2557 return __builtin_s390_vuplhf(__a);
2558}
2559
2560#if __ARCH__ >= 15
2561static inline __ATTRS_o_ai __vector signed __int128
2562vec_unpackh(__vector signed long long __a) {
2563 return (__vector signed __int128)__builtin_s390_vuphg(__a);
2564}
2565
2566static inline __ATTRS_o_ai __vector __bool __int128
2567vec_unpackh(__vector __bool long long __a) {
2568 return ((__vector __bool __int128)
2569 __builtin_s390_vuphg((__vector signed long long)__a));
2570}
2571
2572static inline __ATTRS_o_ai __vector unsigned __int128
2573vec_unpackh(__vector unsigned long long __a) {
2574 return (__vector unsigned __int128)__builtin_s390_vuplhg(__a);
2575}
2576#endif
2577
2578/*-- vec_unpackl ------------------------------------------------------------*/
2579
2580static inline __ATTRS_o_ai __vector signed short
2581vec_unpackl(__vector signed char __a) {
2582 return __builtin_s390_vuplb(__a);
2583}
2584
2585static inline __ATTRS_o_ai __vector __bool short
2586vec_unpackl(__vector __bool char __a) {
2587 return ((__vector __bool short)
2588 __builtin_s390_vuplb((__vector signed char)__a));
2589}
2590
2591static inline __ATTRS_o_ai __vector unsigned short
2592vec_unpackl(__vector unsigned char __a) {
2593 return __builtin_s390_vupllb(__a);
2594}
2595
2596static inline __ATTRS_o_ai __vector signed int
2597vec_unpackl(__vector signed short __a) {
2598 return __builtin_s390_vuplhw(__a);
2599}
2600
2601static inline __ATTRS_o_ai __vector __bool int
2602vec_unpackl(__vector __bool short __a) {
2603 return ((__vector __bool int)
2604 __builtin_s390_vuplhw((__vector signed short)__a));
2605}
2606
2607static inline __ATTRS_o_ai __vector unsigned int
2608vec_unpackl(__vector unsigned short __a) {
2609 return __builtin_s390_vupllh(__a);
2610}
2611
2612static inline __ATTRS_o_ai __vector signed long long
2613vec_unpackl(__vector signed int __a) {
2614 return __builtin_s390_vuplf(__a);
2615}
2616
2617static inline __ATTRS_o_ai __vector __bool long long
2618vec_unpackl(__vector __bool int __a) {
2619 return ((__vector __bool long long)
2620 __builtin_s390_vuplf((__vector signed int)__a));
2621}
2622
2623static inline __ATTRS_o_ai __vector unsigned long long
2624vec_unpackl(__vector unsigned int __a) {
2625 return __builtin_s390_vupllf(__a);
2626}
2627
2628#if __ARCH__ >= 15
2629static inline __ATTRS_o_ai __vector signed __int128
2630vec_unpackl(__vector signed long long __a) {
2631 return (__vector signed __int128)__builtin_s390_vuplg(__a);
2632}
2633
2634static inline __ATTRS_o_ai __vector __bool __int128
2635vec_unpackl(__vector __bool long long __a) {
2636 return ((__vector __bool __int128)
2637 __builtin_s390_vuplg((__vector signed long long)__a));
2638}
2639
2640static inline __ATTRS_o_ai __vector unsigned __int128
2641vec_unpackl(__vector unsigned long long __a) {
2642 return (__vector unsigned __int128)__builtin_s390_vupllg(__a);
2643}
2644#endif
2645
2646/*-- vec_cmpeq --------------------------------------------------------------*/
2647
2648static inline __ATTRS_o_ai __vector __bool char
2649vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
2650 return (__vector __bool char)(__a == __b);
2651}
2652
2653static inline __ATTRS_o_ai __vector __bool char
2654vec_cmpeq(__vector signed char __a, __vector signed char __b) {
2655 return (__vector __bool char)(__a == __b);
2656}
2657
2658static inline __ATTRS_o_ai __vector __bool char
2659vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
2660 return (__vector __bool char)(__a == __b);
2661}
2662
2663static inline __ATTRS_o_ai __vector __bool short
2664vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
2665 return (__vector __bool short)(__a == __b);
2666}
2667
2668static inline __ATTRS_o_ai __vector __bool short
2669vec_cmpeq(__vector signed short __a, __vector signed short __b) {
2670 return (__vector __bool short)(__a == __b);
2671}
2672
2673static inline __ATTRS_o_ai __vector __bool short
2674vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
2675 return (__vector __bool short)(__a == __b);
2676}
2677
2678static inline __ATTRS_o_ai __vector __bool int
2679vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
2680 return (__vector __bool int)(__a == __b);
2681}
2682
2683static inline __ATTRS_o_ai __vector __bool int
2684vec_cmpeq(__vector signed int __a, __vector signed int __b) {
2685 return (__vector __bool int)(__a == __b);
2686}
2687
2688static inline __ATTRS_o_ai __vector __bool int
2689vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
2690 return (__vector __bool int)(__a == __b);
2691}
2692
2693static inline __ATTRS_o_ai __vector __bool long long
2694vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
2695 return (__vector __bool long long)(__a == __b);
2696}
2697
2698static inline __ATTRS_o_ai __vector __bool long long
2699vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
2700 return (__vector __bool long long)(__a == __b);
2701}
2702
2703static inline __ATTRS_o_ai __vector __bool long long
2704vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
2705 return (__vector __bool long long)(__a == __b);
2706}
2707
2708static inline __ATTRS_o_ai __vector __bool __int128
2709vec_cmpeq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
2710 return (__vector __bool __int128)(__a == __b);
2711}
2712
2713static inline __ATTRS_o_ai __vector __bool __int128
2714vec_cmpeq(__vector signed __int128 __a, __vector signed __int128 __b) {
2715 return (__vector __bool __int128)(__a == __b);
2716}
2717
2718static inline __ATTRS_o_ai __vector __bool __int128
2719vec_cmpeq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2720 return (__vector __bool __int128)(__a == __b);
2721}
2722
2723#if __ARCH__ >= 12
2724static inline __ATTRS_o_ai __vector __bool int
2725vec_cmpeq(__vector float __a, __vector float __b) {
2726 return (__vector __bool int)(__a == __b);
2727}
2728#endif
2729
2730static inline __ATTRS_o_ai __vector __bool long long
2731vec_cmpeq(__vector double __a, __vector double __b) {
2732 return (__vector __bool long long)(__a == __b);
2733}
2734
2735/*-- vec_cmpge --------------------------------------------------------------*/
2736
2737static inline __ATTRS_o_ai __vector __bool char
2738vec_cmpge(__vector signed char __a, __vector signed char __b) {
2739 return (__vector __bool char)(__a >= __b);
2740}
2741
2742static inline __ATTRS_o_ai __vector __bool char
2743vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
2744 return (__vector __bool char)(__a >= __b);
2745}
2746
2747static inline __ATTRS_o_ai __vector __bool short
2748vec_cmpge(__vector signed short __a, __vector signed short __b) {
2749 return (__vector __bool short)(__a >= __b);
2750}
2751
2752static inline __ATTRS_o_ai __vector __bool short
2753vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
2754 return (__vector __bool short)(__a >= __b);
2755}
2756
2757static inline __ATTRS_o_ai __vector __bool int
2758vec_cmpge(__vector signed int __a, __vector signed int __b) {
2759 return (__vector __bool int)(__a >= __b);
2760}
2761
2762static inline __ATTRS_o_ai __vector __bool int
2763vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
2764 return (__vector __bool int)(__a >= __b);
2765}
2766
2767static inline __ATTRS_o_ai __vector __bool long long
2768vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
2769 return (__vector __bool long long)(__a >= __b);
2770}
2771
2772static inline __ATTRS_o_ai __vector __bool long long
2773vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
2774 return (__vector __bool long long)(__a >= __b);
2775}
2776
2777static inline __ATTRS_o_ai __vector __bool __int128
2778vec_cmpge(__vector signed __int128 __a, __vector signed __int128 __b) {
2779 return (__vector __bool __int128)(__a >= __b);
2780}
2781
2782static inline __ATTRS_o_ai __vector __bool __int128
2783vec_cmpge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2784 return (__vector __bool __int128)(__a >= __b);
2785}
2786
2787#if __ARCH__ >= 12
2788static inline __ATTRS_o_ai __vector __bool int
2789vec_cmpge(__vector float __a, __vector float __b) {
2790 return (__vector __bool int)(__a >= __b);
2791}
2792#endif
2793
2794static inline __ATTRS_o_ai __vector __bool long long
2795vec_cmpge(__vector double __a, __vector double __b) {
2796 return (__vector __bool long long)(__a >= __b);
2797}
2798
2799/*-- vec_cmpgt --------------------------------------------------------------*/
2800
2801static inline __ATTRS_o_ai __vector __bool char
2802vec_cmpgt(__vector signed char __a, __vector signed char __b) {
2803 return (__vector __bool char)(__a > __b);
2804}
2805
2806static inline __ATTRS_o_ai __vector __bool char
2807vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
2808 return (__vector __bool char)(__a > __b);
2809}
2810
2811static inline __ATTRS_o_ai __vector __bool short
2812vec_cmpgt(__vector signed short __a, __vector signed short __b) {
2813 return (__vector __bool short)(__a > __b);
2814}
2815
2816static inline __ATTRS_o_ai __vector __bool short
2817vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
2818 return (__vector __bool short)(__a > __b);
2819}
2820
2821static inline __ATTRS_o_ai __vector __bool int
2822vec_cmpgt(__vector signed int __a, __vector signed int __b) {
2823 return (__vector __bool int)(__a > __b);
2824}
2825
2826static inline __ATTRS_o_ai __vector __bool int
2827vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
2828 return (__vector __bool int)(__a > __b);
2829}
2830
2831static inline __ATTRS_o_ai __vector __bool long long
2832vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
2833 return (__vector __bool long long)(__a > __b);
2834}
2835
2836static inline __ATTRS_o_ai __vector __bool long long
2837vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
2838 return (__vector __bool long long)(__a > __b);
2839}
2840
2841static inline __ATTRS_o_ai __vector __bool __int128
2842vec_cmpgt(__vector signed __int128 __a, __vector signed __int128 __b) {
2843 return (__vector __bool __int128)(__a > __b);
2844}
2845
2846static inline __ATTRS_o_ai __vector __bool __int128
2847vec_cmpgt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2848 return (__vector __bool __int128)(__a > __b);
2849}
2850
2851#if __ARCH__ >= 12
2852static inline __ATTRS_o_ai __vector __bool int
2853vec_cmpgt(__vector float __a, __vector float __b) {
2854 return (__vector __bool int)(__a > __b);
2855}
2856#endif
2857
2858static inline __ATTRS_o_ai __vector __bool long long
2859vec_cmpgt(__vector double __a, __vector double __b) {
2860 return (__vector __bool long long)(__a > __b);
2861}
2862
2863/*-- vec_cmple --------------------------------------------------------------*/
2864
2865static inline __ATTRS_o_ai __vector __bool char
2866vec_cmple(__vector signed char __a, __vector signed char __b) {
2867 return (__vector __bool char)(__a <= __b);
2868}
2869
2870static inline __ATTRS_o_ai __vector __bool char
2871vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
2872 return (__vector __bool char)(__a <= __b);
2873}
2874
2875static inline __ATTRS_o_ai __vector __bool short
2876vec_cmple(__vector signed short __a, __vector signed short __b) {
2877 return (__vector __bool short)(__a <= __b);
2878}
2879
2880static inline __ATTRS_o_ai __vector __bool short
2881vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
2882 return (__vector __bool short)(__a <= __b);
2883}
2884
2885static inline __ATTRS_o_ai __vector __bool int
2886vec_cmple(__vector signed int __a, __vector signed int __b) {
2887 return (__vector __bool int)(__a <= __b);
2888}
2889
2890static inline __ATTRS_o_ai __vector __bool int
2891vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
2892 return (__vector __bool int)(__a <= __b);
2893}
2894
2895static inline __ATTRS_o_ai __vector __bool long long
2896vec_cmple(__vector signed long long __a, __vector signed long long __b) {
2897 return (__vector __bool long long)(__a <= __b);
2898}
2899
2900static inline __ATTRS_o_ai __vector __bool long long
2901vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
2902 return (__vector __bool long long)(__a <= __b);
2903}
2904
2905static inline __ATTRS_o_ai __vector __bool __int128
2906vec_cmple(__vector signed __int128 __a, __vector signed __int128 __b) {
2907 return (__vector __bool __int128)(__a <= __b);
2908}
2909
2910static inline __ATTRS_o_ai __vector __bool __int128
2911vec_cmple(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2912 return (__vector __bool __int128)(__a <= __b);
2913}
2914
2915#if __ARCH__ >= 12
2916static inline __ATTRS_o_ai __vector __bool int
2917vec_cmple(__vector float __a, __vector float __b) {
2918 return (__vector __bool int)(__a <= __b);
2919}
2920#endif
2921
2922static inline __ATTRS_o_ai __vector __bool long long
2923vec_cmple(__vector double __a, __vector double __b) {
2924 return (__vector __bool long long)(__a <= __b);
2925}
2926
2927/*-- vec_cmplt --------------------------------------------------------------*/
2928
2929static inline __ATTRS_o_ai __vector __bool char
2930vec_cmplt(__vector signed char __a, __vector signed char __b) {
2931 return (__vector __bool char)(__a < __b);
2932}
2933
2934static inline __ATTRS_o_ai __vector __bool char
2935vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
2936 return (__vector __bool char)(__a < __b);
2937}
2938
2939static inline __ATTRS_o_ai __vector __bool short
2940vec_cmplt(__vector signed short __a, __vector signed short __b) {
2941 return (__vector __bool short)(__a < __b);
2942}
2943
2944static inline __ATTRS_o_ai __vector __bool short
2945vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
2946 return (__vector __bool short)(__a < __b);
2947}
2948
2949static inline __ATTRS_o_ai __vector __bool int
2950vec_cmplt(__vector signed int __a, __vector signed int __b) {
2951 return (__vector __bool int)(__a < __b);
2952}
2953
2954static inline __ATTRS_o_ai __vector __bool int
2955vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
2956 return (__vector __bool int)(__a < __b);
2957}
2958
2959static inline __ATTRS_o_ai __vector __bool long long
2960vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
2961 return (__vector __bool long long)(__a < __b);
2962}
2963
2964static inline __ATTRS_o_ai __vector __bool long long
2965vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
2966 return (__vector __bool long long)(__a < __b);
2967}
2968
2969static inline __ATTRS_o_ai __vector __bool __int128
2970vec_cmplt(__vector signed __int128 __a, __vector signed __int128 __b) {
2971 return (__vector __bool __int128)(__a < __b);
2972}
2973
2974static inline __ATTRS_o_ai __vector __bool __int128
2975vec_cmplt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2976 return (__vector __bool __int128)(__a < __b);
2977}
2978
2979#if __ARCH__ >= 12
2980static inline __ATTRS_o_ai __vector __bool int
2981vec_cmplt(__vector float __a, __vector float __b) {
2982 return (__vector __bool int)(__a < __b);
2983}
2984#endif
2985
2986static inline __ATTRS_o_ai __vector __bool long long
2987vec_cmplt(__vector double __a, __vector double __b) {
2988 return (__vector __bool long long)(__a < __b);
2989}
2990
2991/*-- vec_all_eq -------------------------------------------------------------*/
2992
2993static inline __ATTRS_o_ai int
2994vec_all_eq(__vector signed char __a, __vector signed char __b) {
2995 int __cc;
2996 __builtin_s390_vceqbs((__vector unsigned char)__a,
2997 (__vector unsigned char)__b, &__cc);
2998 return __cc == 0;
2999}
3000
3001// This prototype is deprecated.
3002static inline __ATTRS_o_ai int
3003vec_all_eq(__vector signed char __a, __vector __bool char __b) {
3004 int __cc;
3005 __builtin_s390_vceqbs((__vector unsigned char)__a,
3006 (__vector unsigned char)__b, &__cc);
3007 return __cc == 0;
3008}
3009
3010// This prototype is deprecated.
3011static inline __ATTRS_o_ai int
3012vec_all_eq(__vector __bool char __a, __vector signed char __b) {
3013 int __cc;
3014 __builtin_s390_vceqbs((__vector unsigned char)__a,
3015 (__vector unsigned char)__b, &__cc);
3016 return __cc == 0;
3017}
3018
3019static inline __ATTRS_o_ai int
3020vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
3021 int __cc;
3022 __builtin_s390_vceqbs(__a, __b, &__cc);
3023 return __cc == 0;
3024}
3025
3026// This prototype is deprecated.
3027static inline __ATTRS_o_ai int
3028vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
3029 int __cc;
3030 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
3031 return __cc == 0;
3032}
3033
3034// This prototype is deprecated.
3035static inline __ATTRS_o_ai int
3036vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
3037 int __cc;
3038 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
3039 return __cc == 0;
3040}
3041
3042static inline __ATTRS_o_ai int
3043vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
3044 int __cc;
3045 __builtin_s390_vceqbs((__vector unsigned char)__a,
3046 (__vector unsigned char)__b, &__cc);
3047 return __cc == 0;
3048}
3049
3050static inline __ATTRS_o_ai int
3051vec_all_eq(__vector signed short __a, __vector signed short __b) {
3052 int __cc;
3053 __builtin_s390_vceqhs((__vector unsigned short)__a,
3054 (__vector unsigned short)__b, &__cc);
3055 return __cc == 0;
3056}
3057
3058// This prototype is deprecated.
3059static inline __ATTRS_o_ai int
3060vec_all_eq(__vector signed short __a, __vector __bool short __b) {
3061 int __cc;
3062 __builtin_s390_vceqhs((__vector unsigned short)__a,
3063 (__vector unsigned short)__b, &__cc);
3064 return __cc == 0;
3065}
3066
3067// This prototype is deprecated.
3068static inline __ATTRS_o_ai int
3069vec_all_eq(__vector __bool short __a, __vector signed short __b) {
3070 int __cc;
3071 __builtin_s390_vceqhs((__vector unsigned short)__a,
3072 (__vector unsigned short)__b, &__cc);
3073 return __cc == 0;
3074}
3075
3076static inline __ATTRS_o_ai int
3077vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
3078 int __cc;
3079 __builtin_s390_vceqhs(__a, __b, &__cc);
3080 return __cc == 0;
3081}
3082
3083// This prototype is deprecated.
3084static inline __ATTRS_o_ai int
3085vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
3086 int __cc;
3087 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3088 return __cc == 0;
3089}
3090
3091// This prototype is deprecated.
3092static inline __ATTRS_o_ai int
3093vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
3094 int __cc;
3095 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3096 return __cc == 0;
3097}
3098
3099static inline __ATTRS_o_ai int
3100vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
3101 int __cc;
3102 __builtin_s390_vceqhs((__vector unsigned short)__a,
3103 (__vector unsigned short)__b, &__cc);
3104 return __cc == 0;
3105}
3106
3107static inline __ATTRS_o_ai int
3108vec_all_eq(__vector signed int __a, __vector signed int __b) {
3109 int __cc;
3110 __builtin_s390_vceqfs((__vector unsigned int)__a,
3111 (__vector unsigned int)__b, &__cc);
3112 return __cc == 0;
3113}
3114
3115// This prototype is deprecated.
3116static inline __ATTRS_o_ai int
3117vec_all_eq(__vector signed int __a, __vector __bool int __b) {
3118 int __cc;
3119 __builtin_s390_vceqfs((__vector unsigned int)__a,
3120 (__vector unsigned int)__b, &__cc);
3121 return __cc == 0;
3122}
3123
3124// This prototype is deprecated.
3125static inline __ATTRS_o_ai int
3126vec_all_eq(__vector __bool int __a, __vector signed int __b) {
3127 int __cc;
3128 __builtin_s390_vceqfs((__vector unsigned int)__a,
3129 (__vector unsigned int)__b, &__cc);
3130 return __cc == 0;
3131}
3132
3133static inline __ATTRS_o_ai int
3134vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
3135 int __cc;
3136 __builtin_s390_vceqfs(__a, __b, &__cc);
3137 return __cc == 0;
3138}
3139
3140// This prototype is deprecated.
3141static inline __ATTRS_o_ai int
3142vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
3143 int __cc;
3144 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3145 return __cc == 0;
3146}
3147
3148// This prototype is deprecated.
3149static inline __ATTRS_o_ai int
3150vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
3151 int __cc;
3152 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3153 return __cc == 0;
3154}
3155
3156static inline __ATTRS_o_ai int
3157vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
3158 int __cc;
3159 __builtin_s390_vceqfs((__vector unsigned int)__a,
3160 (__vector unsigned int)__b, &__cc);
3161 return __cc == 0;
3162}
3163
3164static inline __ATTRS_o_ai int
3165vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
3166 int __cc;
3167 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3168 (__vector unsigned long long)__b, &__cc);
3169 return __cc == 0;
3170}
3171
3172// This prototype is deprecated.
3173static inline __ATTRS_o_ai int
3174vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
3175 int __cc;
3176 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3177 (__vector unsigned long long)__b, &__cc);
3178 return __cc == 0;
3179}
3180
3181// This prototype is deprecated.
3182static inline __ATTRS_o_ai int
3183vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
3184 int __cc;
3185 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3186 (__vector unsigned long long)__b, &__cc);
3187 return __cc == 0;
3188}
3189
3190static inline __ATTRS_o_ai int
3191vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
3192 int __cc;
3193 __builtin_s390_vceqgs(__a, __b, &__cc);
3194 return __cc == 0;
3195}
3196
3197// This prototype is deprecated.
3198static inline __ATTRS_o_ai int
3199vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
3200 int __cc;
3201 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3202 return __cc == 0;
3203}
3204
3205// This prototype is deprecated.
3206static inline __ATTRS_o_ai int
3207vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
3208 int __cc;
3209 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3210 return __cc == 0;
3211}
3212
3213static inline __ATTRS_o_ai int
3214vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
3215 int __cc;
3216 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3217 (__vector unsigned long long)__b, &__cc);
3218 return __cc == 0;
3219}
3220
3221#if __ARCH__ >= 15
3222static inline __ATTRS_o_ai int
3223vec_all_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
3224 int __cc;
3225 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3226 return __cc == 0;
3227}
3228
3229static inline __ATTRS_o_ai int
3230vec_all_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3231 int __cc;
3232 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3233 return __cc == 0;
3234}
3235
3236static inline __ATTRS_o_ai int
3237vec_all_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
3238 int __cc;
3239 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3240 return __cc == 0;
3241}
3242#endif
3243
3244#if __ARCH__ >= 12
3245static inline __ATTRS_o_ai int
3246vec_all_eq(__vector float __a, __vector float __b) {
3247 int __cc;
3248 __builtin_s390_vfcesbs(__a, __b, &__cc);
3249 return __cc == 0;
3250}
3251#endif
3252
3253static inline __ATTRS_o_ai int
3254vec_all_eq(__vector double __a, __vector double __b) {
3255 int __cc;
3256 __builtin_s390_vfcedbs(__a, __b, &__cc);
3257 return __cc == 0;
3258}
3259
3260/*-- vec_all_ne -------------------------------------------------------------*/
3261
3262static inline __ATTRS_o_ai int
3263vec_all_ne(__vector signed char __a, __vector signed char __b) {
3264 int __cc;
3265 __builtin_s390_vceqbs((__vector unsigned char)__a,
3266 (__vector unsigned char)__b, &__cc);
3267 return __cc == 3;
3268}
3269
3270// This prototype is deprecated.
3271static inline __ATTRS_o_ai int
3272vec_all_ne(__vector signed char __a, __vector __bool char __b) {
3273 int __cc;
3274 __builtin_s390_vceqbs((__vector unsigned char)__a,
3275 (__vector unsigned char)__b, &__cc);
3276 return __cc == 3;
3277}
3278
3279// This prototype is deprecated.
3280static inline __ATTRS_o_ai int
3281vec_all_ne(__vector __bool char __a, __vector signed char __b) {
3282 int __cc;
3283 __builtin_s390_vceqbs((__vector unsigned char)__a,
3284 (__vector unsigned char)__b, &__cc);
3285 return __cc == 3;
3286}
3287
3288static inline __ATTRS_o_ai int
3289vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
3290 int __cc;
3291 __builtin_s390_vceqbs((__vector unsigned char)__a,
3292 (__vector unsigned char)__b, &__cc);
3293 return __cc == 3;
3294}
3295
3296// This prototype is deprecated.
3297static inline __ATTRS_o_ai int
3298vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
3299 int __cc;
3300 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
3301 return __cc == 3;
3302}
3303
3304// This prototype is deprecated.
3305static inline __ATTRS_o_ai int
3306vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
3307 int __cc;
3308 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
3309 return __cc == 3;
3310}
3311
3312static inline __ATTRS_o_ai int
3313vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
3314 int __cc;
3315 __builtin_s390_vceqbs((__vector unsigned char)__a,
3316 (__vector unsigned char)__b, &__cc);
3317 return __cc == 3;
3318}
3319
3320static inline __ATTRS_o_ai int
3321vec_all_ne(__vector signed short __a, __vector signed short __b) {
3322 int __cc;
3323 __builtin_s390_vceqhs((__vector unsigned short)__a,
3324 (__vector unsigned short)__b, &__cc);
3325 return __cc == 3;
3326}
3327
3328// This prototype is deprecated.
3329static inline __ATTRS_o_ai int
3330vec_all_ne(__vector signed short __a, __vector __bool short __b) {
3331 int __cc;
3332 __builtin_s390_vceqhs((__vector unsigned short)__a,
3333 (__vector unsigned short)__b, &__cc);
3334 return __cc == 3;
3335}
3336
3337// This prototype is deprecated.
3338static inline __ATTRS_o_ai int
3339vec_all_ne(__vector __bool short __a, __vector signed short __b) {
3340 int __cc;
3341 __builtin_s390_vceqhs((__vector unsigned short)__a,
3342 (__vector unsigned short)__b, &__cc);
3343 return __cc == 3;
3344}
3345
3346static inline __ATTRS_o_ai int
3347vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
3348 int __cc;
3349 __builtin_s390_vceqhs(__a, __b, &__cc);
3350 return __cc == 3;
3351}
3352
3353// This prototype is deprecated.
3354static inline __ATTRS_o_ai int
3355vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
3356 int __cc;
3357 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3358 return __cc == 3;
3359}
3360
3361// This prototype is deprecated.
3362static inline __ATTRS_o_ai int
3363vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
3364 int __cc;
3365 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3366 return __cc == 3;
3367}
3368
3369static inline __ATTRS_o_ai int
3370vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
3371 int __cc;
3372 __builtin_s390_vceqhs((__vector unsigned short)__a,
3373 (__vector unsigned short)__b, &__cc);
3374 return __cc == 3;
3375}
3376
3377static inline __ATTRS_o_ai int
3378vec_all_ne(__vector signed int __a, __vector signed int __b) {
3379 int __cc;
3380 __builtin_s390_vceqfs((__vector unsigned int)__a,
3381 (__vector unsigned int)__b, &__cc);
3382 return __cc == 3;
3383}
3384
3385// This prototype is deprecated.
3386static inline __ATTRS_o_ai int
3387vec_all_ne(__vector signed int __a, __vector __bool int __b) {
3388 int __cc;
3389 __builtin_s390_vceqfs((__vector unsigned int)__a,
3390 (__vector unsigned int)__b, &__cc);
3391 return __cc == 3;
3392}
3393
3394// This prototype is deprecated.
3395static inline __ATTRS_o_ai int
3396vec_all_ne(__vector __bool int __a, __vector signed int __b) {
3397 int __cc;
3398 __builtin_s390_vceqfs((__vector unsigned int)__a,
3399 (__vector unsigned int)__b, &__cc);
3400 return __cc == 3;
3401}
3402
3403static inline __ATTRS_o_ai int
3404vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
3405 int __cc;
3406 __builtin_s390_vceqfs(__a, __b, &__cc);
3407 return __cc == 3;
3408}
3409
3410// This prototype is deprecated.
3411static inline __ATTRS_o_ai int
3412vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
3413 int __cc;
3414 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3415 return __cc == 3;
3416}
3417
3418// This prototype is deprecated.
3419static inline __ATTRS_o_ai int
3420vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
3421 int __cc;
3422 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3423 return __cc == 3;
3424}
3425
3426static inline __ATTRS_o_ai int
3427vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
3428 int __cc;
3429 __builtin_s390_vceqfs((__vector unsigned int)__a,
3430 (__vector unsigned int)__b, &__cc);
3431 return __cc == 3;
3432}
3433
3434static inline __ATTRS_o_ai int
3435vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
3436 int __cc;
3437 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3438 (__vector unsigned long long)__b, &__cc);
3439 return __cc == 3;
3440}
3441
3442// This prototype is deprecated.
3443static inline __ATTRS_o_ai int
3444vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
3445 int __cc;
3446 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3447 (__vector unsigned long long)__b, &__cc);
3448 return __cc == 3;
3449}
3450
3451// This prototype is deprecated.
3452static inline __ATTRS_o_ai int
3453vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
3454 int __cc;
3455 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3456 (__vector unsigned long long)__b, &__cc);
3457 return __cc == 3;
3458}
3459
3460static inline __ATTRS_o_ai int
3461vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
3462 int __cc;
3463 __builtin_s390_vceqgs(__a, __b, &__cc);
3464 return __cc == 3;
3465}
3466
3467// This prototype is deprecated.
3468static inline __ATTRS_o_ai int
3469vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
3470 int __cc;
3471 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3472 return __cc == 3;
3473}
3474
3475// This prototype is deprecated.
3476static inline __ATTRS_o_ai int
3477vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
3478 int __cc;
3479 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3480 return __cc == 3;
3481}
3482
3483static inline __ATTRS_o_ai int
3484vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
3485 int __cc;
3486 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3487 (__vector unsigned long long)__b, &__cc);
3488 return __cc == 3;
3489}
3490
3491#if __ARCH__ >= 15
3492static inline __ATTRS_o_ai int
3493vec_all_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
3494 int __cc;
3495 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3496 return __cc == 3;
3497}
3498
3499static inline __ATTRS_o_ai int
3500vec_all_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3501 int __cc;
3502 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3503 return __cc == 3;
3504}
3505
3506static inline __ATTRS_o_ai int
3507vec_all_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
3508 int __cc;
3509 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3510 return __cc == 3;
3511}
3512#endif
3513
3514#if __ARCH__ >= 12
3515static inline __ATTRS_o_ai int
3516vec_all_ne(__vector float __a, __vector float __b) {
3517 int __cc;
3518 __builtin_s390_vfcesbs(__a, __b, &__cc);
3519 return __cc == 3;
3520}
3521#endif
3522
3523static inline __ATTRS_o_ai int
3524vec_all_ne(__vector double __a, __vector double __b) {
3525 int __cc;
3526 __builtin_s390_vfcedbs(__a, __b, &__cc);
3527 return __cc == 3;
3528}
3529
3530/*-- vec_all_ge -------------------------------------------------------------*/
3531
3532static inline __ATTRS_o_ai int
3533vec_all_ge(__vector signed char __a, __vector signed char __b) {
3534 int __cc;
3535 __builtin_s390_vchbs(__b, __a, &__cc);
3536 return __cc == 3;
3537}
3538
3539// This prototype is deprecated.
3540static inline __ATTRS_o_ai int
3541vec_all_ge(__vector signed char __a, __vector __bool char __b) {
3542 int __cc;
3543 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3544 return __cc == 3;
3545}
3546
3547// This prototype is deprecated.
3548static inline __ATTRS_o_ai int
3549vec_all_ge(__vector __bool char __a, __vector signed char __b) {
3550 int __cc;
3551 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3552 return __cc == 3;
3553}
3554
3555static inline __ATTRS_o_ai int
3556vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
3557 int __cc;
3558 __builtin_s390_vchlbs(__b, __a, &__cc);
3559 return __cc == 3;
3560}
3561
3562// This prototype is deprecated.
3563static inline __ATTRS_o_ai int
3564vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
3565 int __cc;
3566 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3567 return __cc == 3;
3568}
3569
3570// This prototype is deprecated.
3571static inline __ATTRS_o_ai int
3572vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
3573 int __cc;
3574 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3575 return __cc == 3;
3576}
3577
3578// This prototype is deprecated.
3579static inline __ATTRS_o_ai int
3580vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
3581 int __cc;
3582 __builtin_s390_vchlbs((__vector unsigned char)__b,
3583 (__vector unsigned char)__a, &__cc);
3584 return __cc == 3;
3585}
3586
3587static inline __ATTRS_o_ai int
3588vec_all_ge(__vector signed short __a, __vector signed short __b) {
3589 int __cc;
3590 __builtin_s390_vchhs(__b, __a, &__cc);
3591 return __cc == 3;
3592}
3593
3594// This prototype is deprecated.
3595static inline __ATTRS_o_ai int
3596vec_all_ge(__vector signed short __a, __vector __bool short __b) {
3597 int __cc;
3598 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3599 return __cc == 3;
3600}
3601
3602// This prototype is deprecated.
3603static inline __ATTRS_o_ai int
3604vec_all_ge(__vector __bool short __a, __vector signed short __b) {
3605 int __cc;
3606 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3607 return __cc == 3;
3608}
3609
3610static inline __ATTRS_o_ai int
3611vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
3612 int __cc;
3613 __builtin_s390_vchlhs(__b, __a, &__cc);
3614 return __cc == 3;
3615}
3616
3617// This prototype is deprecated.
3618static inline __ATTRS_o_ai int
3619vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
3620 int __cc;
3621 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3622 return __cc == 3;
3623}
3624
3625// This prototype is deprecated.
3626static inline __ATTRS_o_ai int
3627vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
3628 int __cc;
3629 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3630 return __cc == 3;
3631}
3632
3633// This prototype is deprecated.
3634static inline __ATTRS_o_ai int
3635vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
3636 int __cc;
3637 __builtin_s390_vchlhs((__vector unsigned short)__b,
3638 (__vector unsigned short)__a, &__cc);
3639 return __cc == 3;
3640}
3641
3642static inline __ATTRS_o_ai int
3643vec_all_ge(__vector signed int __a, __vector signed int __b) {
3644 int __cc;
3645 __builtin_s390_vchfs(__b, __a, &__cc);
3646 return __cc == 3;
3647}
3648
3649// This prototype is deprecated.
3650static inline __ATTRS_o_ai int
3651vec_all_ge(__vector signed int __a, __vector __bool int __b) {
3652 int __cc;
3653 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3654 return __cc == 3;
3655}
3656
3657// This prototype is deprecated.
3658static inline __ATTRS_o_ai int
3659vec_all_ge(__vector __bool int __a, __vector signed int __b) {
3660 int __cc;
3661 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3662 return __cc == 3;
3663}
3664
3665static inline __ATTRS_o_ai int
3666vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
3667 int __cc;
3668 __builtin_s390_vchlfs(__b, __a, &__cc);
3669 return __cc == 3;
3670}
3671
3672// This prototype is deprecated.
3673static inline __ATTRS_o_ai int
3674vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
3675 int __cc;
3676 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3677 return __cc == 3;
3678}
3679
3680// This prototype is deprecated.
3681static inline __ATTRS_o_ai int
3682vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
3683 int __cc;
3684 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3685 return __cc == 3;
3686}
3687
3688// This prototype is deprecated.
3689static inline __ATTRS_o_ai int
3690vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
3691 int __cc;
3692 __builtin_s390_vchlfs((__vector unsigned int)__b,
3693 (__vector unsigned int)__a, &__cc);
3694 return __cc == 3;
3695}
3696
3697static inline __ATTRS_o_ai int
3698vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
3699 int __cc;
3700 __builtin_s390_vchgs(__b, __a, &__cc);
3701 return __cc == 3;
3702}
3703
3704// This prototype is deprecated.
3705static inline __ATTRS_o_ai int
3706vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
3707 int __cc;
3708 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3709 return __cc == 3;
3710}
3711
3712// This prototype is deprecated.
3713static inline __ATTRS_o_ai int
3714vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
3715 int __cc;
3716 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3717 return __cc == 3;
3718}
3719
3720static inline __ATTRS_o_ai int
3721vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
3722 int __cc;
3723 __builtin_s390_vchlgs(__b, __a, &__cc);
3724 return __cc == 3;
3725}
3726
3727// This prototype is deprecated.
3728static inline __ATTRS_o_ai int
3729vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
3730 int __cc;
3731 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
3732 return __cc == 3;
3733}
3734
3735// This prototype is deprecated.
3736static inline __ATTRS_o_ai int
3737vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
3738 int __cc;
3739 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
3740 return __cc == 3;
3741}
3742
3743// This prototype is deprecated.
3744static inline __ATTRS_o_ai int
3745vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
3746 int __cc;
3747 __builtin_s390_vchlgs((__vector unsigned long long)__b,
3748 (__vector unsigned long long)__a, &__cc);
3749 return __cc == 3;
3750}
3751
3752#if __ARCH__ >= 15
3753static inline __ATTRS_o_ai int
3754vec_all_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
3755 int __cc;
3756 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
3757 return __cc == 3;
3758}
3759
3760static inline __ATTRS_o_ai int
3761vec_all_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3762 int __cc;
3763 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
3764 return __cc == 3;
3765}
3766#endif
3767
3768#if __ARCH__ >= 12
3769static inline __ATTRS_o_ai int
3770vec_all_ge(__vector float __a, __vector float __b) {
3771 int __cc;
3772 __builtin_s390_vfchesbs(__a, __b, &__cc);
3773 return __cc == 0;
3774}
3775#endif
3776
3777static inline __ATTRS_o_ai int
3778vec_all_ge(__vector double __a, __vector double __b) {
3779 int __cc;
3780 __builtin_s390_vfchedbs(__a, __b, &__cc);
3781 return __cc == 0;
3782}
3783
3784/*-- vec_all_gt -------------------------------------------------------------*/
3785
3786static inline __ATTRS_o_ai int
3787vec_all_gt(__vector signed char __a, __vector signed char __b) {
3788 int __cc;
3789 __builtin_s390_vchbs(__a, __b, &__cc);
3790 return __cc == 0;
3791}
3792
3793// This prototype is deprecated.
3794static inline __ATTRS_o_ai int
3795vec_all_gt(__vector signed char __a, __vector __bool char __b) {
3796 int __cc;
3797 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3798 return __cc == 0;
3799}
3800
3801// This prototype is deprecated.
3802static inline __ATTRS_o_ai int
3803vec_all_gt(__vector __bool char __a, __vector signed char __b) {
3804 int __cc;
3805 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3806 return __cc == 0;
3807}
3808
3809static inline __ATTRS_o_ai int
3810vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
3811 int __cc;
3812 __builtin_s390_vchlbs(__a, __b, &__cc);
3813 return __cc == 0;
3814}
3815
3816// This prototype is deprecated.
3817static inline __ATTRS_o_ai int
3818vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
3819 int __cc;
3820 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3821 return __cc == 0;
3822}
3823
3824// This prototype is deprecated.
3825static inline __ATTRS_o_ai int
3826vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
3827 int __cc;
3828 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3829 return __cc == 0;
3830}
3831
3832// This prototype is deprecated.
3833static inline __ATTRS_o_ai int
3834vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
3835 int __cc;
3836 __builtin_s390_vchlbs((__vector unsigned char)__a,
3837 (__vector unsigned char)__b, &__cc);
3838 return __cc == 0;
3839}
3840
3841static inline __ATTRS_o_ai int
3842vec_all_gt(__vector signed short __a, __vector signed short __b) {
3843 int __cc;
3844 __builtin_s390_vchhs(__a, __b, &__cc);
3845 return __cc == 0;
3846}
3847
3848// This prototype is deprecated.
3849static inline __ATTRS_o_ai int
3850vec_all_gt(__vector signed short __a, __vector __bool short __b) {
3851 int __cc;
3852 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3853 return __cc == 0;
3854}
3855
3856// This prototype is deprecated.
3857static inline __ATTRS_o_ai int
3858vec_all_gt(__vector __bool short __a, __vector signed short __b) {
3859 int __cc;
3860 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3861 return __cc == 0;
3862}
3863
3864static inline __ATTRS_o_ai int
3865vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
3866 int __cc;
3867 __builtin_s390_vchlhs(__a, __b, &__cc);
3868 return __cc == 0;
3869}
3870
3871// This prototype is deprecated.
3872static inline __ATTRS_o_ai int
3873vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
3874 int __cc;
3875 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3876 return __cc == 0;
3877}
3878
3879// This prototype is deprecated.
3880static inline __ATTRS_o_ai int
3881vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
3882 int __cc;
3883 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3884 return __cc == 0;
3885}
3886
3887// This prototype is deprecated.
3888static inline __ATTRS_o_ai int
3889vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
3890 int __cc;
3891 __builtin_s390_vchlhs((__vector unsigned short)__a,
3892 (__vector unsigned short)__b, &__cc);
3893 return __cc == 0;
3894}
3895
3896static inline __ATTRS_o_ai int
3897vec_all_gt(__vector signed int __a, __vector signed int __b) {
3898 int __cc;
3899 __builtin_s390_vchfs(__a, __b, &__cc);
3900 return __cc == 0;
3901}
3902
3903// This prototype is deprecated.
3904static inline __ATTRS_o_ai int
3905vec_all_gt(__vector signed int __a, __vector __bool int __b) {
3906 int __cc;
3907 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3908 return __cc == 0;
3909}
3910
3911// This prototype is deprecated.
3912static inline __ATTRS_o_ai int
3913vec_all_gt(__vector __bool int __a, __vector signed int __b) {
3914 int __cc;
3915 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3916 return __cc == 0;
3917}
3918
3919static inline __ATTRS_o_ai int
3920vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
3921 int __cc;
3922 __builtin_s390_vchlfs(__a, __b, &__cc);
3923 return __cc == 0;
3924}
3925
3926// This prototype is deprecated.
3927static inline __ATTRS_o_ai int
3928vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
3929 int __cc;
3930 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3931 return __cc == 0;
3932}
3933
3934// This prototype is deprecated.
3935static inline __ATTRS_o_ai int
3936vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
3937 int __cc;
3938 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3939 return __cc == 0;
3940}
3941
3942// This prototype is deprecated.
3943static inline __ATTRS_o_ai int
3944vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
3945 int __cc;
3946 __builtin_s390_vchlfs((__vector unsigned int)__a,
3947 (__vector unsigned int)__b, &__cc);
3948 return __cc == 0;
3949}
3950
3951static inline __ATTRS_o_ai int
3952vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
3953 int __cc;
3954 __builtin_s390_vchgs(__a, __b, &__cc);
3955 return __cc == 0;
3956}
3957
3958// This prototype is deprecated.
3959static inline __ATTRS_o_ai int
3960vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
3961 int __cc;
3962 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3963 return __cc == 0;
3964}
3965
3966// This prototype is deprecated.
3967static inline __ATTRS_o_ai int
3968vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
3969 int __cc;
3970 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3971 return __cc == 0;
3972}
3973
3974static inline __ATTRS_o_ai int
3975vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
3976 int __cc;
3977 __builtin_s390_vchlgs(__a, __b, &__cc);
3978 return __cc == 0;
3979}
3980
3981// This prototype is deprecated.
3982static inline __ATTRS_o_ai int
3983vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
3984 int __cc;
3985 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3986 return __cc == 0;
3987}
3988
3989// This prototype is deprecated.
3990static inline __ATTRS_o_ai int
3991vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
3992 int __cc;
3993 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3994 return __cc == 0;
3995}
3996
3997// This prototype is deprecated.
3998static inline __ATTRS_o_ai int
3999vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
4000 int __cc;
4001 __builtin_s390_vchlgs((__vector unsigned long long)__a,
4002 (__vector unsigned long long)__b, &__cc);
4003 return __cc == 0;
4004}
4005
4006#if __ARCH__ >= 15
4007static inline __ATTRS_o_ai int
4008vec_all_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
4009 int __cc;
4010 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
4011 return __cc == 0;
4012}
4013
4014static inline __ATTRS_o_ai int
4015vec_all_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4016 int __cc;
4017 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4018 return __cc == 0;
4019}
4020#endif
4021
4022#if __ARCH__ >= 12
4023static inline __ATTRS_o_ai int
4024vec_all_gt(__vector float __a, __vector float __b) {
4025 int __cc;
4026 __builtin_s390_vfchsbs(__a, __b, &__cc);
4027 return __cc == 0;
4028}
4029#endif
4030
4031static inline __ATTRS_o_ai int
4032vec_all_gt(__vector double __a, __vector double __b) {
4033 int __cc;
4034 __builtin_s390_vfchdbs(__a, __b, &__cc);
4035 return __cc == 0;
4036}
4037
4038/*-- vec_all_le -------------------------------------------------------------*/
4039
4040static inline __ATTRS_o_ai int
4041vec_all_le(__vector signed char __a, __vector signed char __b) {
4042 int __cc;
4043 __builtin_s390_vchbs(__a, __b, &__cc);
4044 return __cc == 3;
4045}
4046
4047// This prototype is deprecated.
4048static inline __ATTRS_o_ai int
4049vec_all_le(__vector signed char __a, __vector __bool char __b) {
4050 int __cc;
4051 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
4052 return __cc == 3;
4053}
4054
4055// This prototype is deprecated.
4056static inline __ATTRS_o_ai int
4057vec_all_le(__vector __bool char __a, __vector signed char __b) {
4058 int __cc;
4059 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
4060 return __cc == 3;
4061}
4062
4063static inline __ATTRS_o_ai int
4064vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
4065 int __cc;
4066 __builtin_s390_vchlbs(__a, __b, &__cc);
4067 return __cc == 3;
4068}
4069
4070// This prototype is deprecated.
4071static inline __ATTRS_o_ai int
4072vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
4073 int __cc;
4074 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
4075 return __cc == 3;
4076}
4077
4078// This prototype is deprecated.
4079static inline __ATTRS_o_ai int
4080vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
4081 int __cc;
4082 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
4083 return __cc == 3;
4084}
4085
4086// This prototype is deprecated.
4087static inline __ATTRS_o_ai int
4088vec_all_le(__vector __bool char __a, __vector __bool char __b) {
4089 int __cc;
4090 __builtin_s390_vchlbs((__vector unsigned char)__a,
4091 (__vector unsigned char)__b, &__cc);
4092 return __cc == 3;
4093}
4094
4095static inline __ATTRS_o_ai int
4096vec_all_le(__vector signed short __a, __vector signed short __b) {
4097 int __cc;
4098 __builtin_s390_vchhs(__a, __b, &__cc);
4099 return __cc == 3;
4100}
4101
4102// This prototype is deprecated.
4103static inline __ATTRS_o_ai int
4104vec_all_le(__vector signed short __a, __vector __bool short __b) {
4105 int __cc;
4106 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
4107 return __cc == 3;
4108}
4109
4110// This prototype is deprecated.
4111static inline __ATTRS_o_ai int
4112vec_all_le(__vector __bool short __a, __vector signed short __b) {
4113 int __cc;
4114 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
4115 return __cc == 3;
4116}
4117
4118static inline __ATTRS_o_ai int
4119vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
4120 int __cc;
4121 __builtin_s390_vchlhs(__a, __b, &__cc);
4122 return __cc == 3;
4123}
4124
4125// This prototype is deprecated.
4126static inline __ATTRS_o_ai int
4127vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
4128 int __cc;
4129 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
4130 return __cc == 3;
4131}
4132
4133// This prototype is deprecated.
4134static inline __ATTRS_o_ai int
4135vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
4136 int __cc;
4137 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
4138 return __cc == 3;
4139}
4140
4141// This prototype is deprecated.
4142static inline __ATTRS_o_ai int
4143vec_all_le(__vector __bool short __a, __vector __bool short __b) {
4144 int __cc;
4145 __builtin_s390_vchlhs((__vector unsigned short)__a,
4146 (__vector unsigned short)__b, &__cc);
4147 return __cc == 3;
4148}
4149
4150static inline __ATTRS_o_ai int
4151vec_all_le(__vector signed int __a, __vector signed int __b) {
4152 int __cc;
4153 __builtin_s390_vchfs(__a, __b, &__cc);
4154 return __cc == 3;
4155}
4156
4157// This prototype is deprecated.
4158static inline __ATTRS_o_ai int
4159vec_all_le(__vector signed int __a, __vector __bool int __b) {
4160 int __cc;
4161 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
4162 return __cc == 3;
4163}
4164
4165// This prototype is deprecated.
4166static inline __ATTRS_o_ai int
4167vec_all_le(__vector __bool int __a, __vector signed int __b) {
4168 int __cc;
4169 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
4170 return __cc == 3;
4171}
4172
4173static inline __ATTRS_o_ai int
4174vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
4175 int __cc;
4176 __builtin_s390_vchlfs(__a, __b, &__cc);
4177 return __cc == 3;
4178}
4179
4180// This prototype is deprecated.
4181static inline __ATTRS_o_ai int
4182vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
4183 int __cc;
4184 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
4185 return __cc == 3;
4186}
4187
4188// This prototype is deprecated.
4189static inline __ATTRS_o_ai int
4190vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
4191 int __cc;
4192 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
4193 return __cc == 3;
4194}
4195
4196// This prototype is deprecated.
4197static inline __ATTRS_o_ai int
4198vec_all_le(__vector __bool int __a, __vector __bool int __b) {
4199 int __cc;
4200 __builtin_s390_vchlfs((__vector unsigned int)__a,
4201 (__vector unsigned int)__b, &__cc);
4202 return __cc == 3;
4203}
4204
4205static inline __ATTRS_o_ai int
4206vec_all_le(__vector signed long long __a, __vector signed long long __b) {
4207 int __cc;
4208 __builtin_s390_vchgs(__a, __b, &__cc);
4209 return __cc == 3;
4210}
4211
4212// This prototype is deprecated.
4213static inline __ATTRS_o_ai int
4214vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
4215 int __cc;
4216 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
4217 return __cc == 3;
4218}
4219
4220// This prototype is deprecated.
4221static inline __ATTRS_o_ai int
4222vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
4223 int __cc;
4224 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
4225 return __cc == 3;
4226}
4227
4228static inline __ATTRS_o_ai int
4229vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
4230 int __cc;
4231 __builtin_s390_vchlgs(__a, __b, &__cc);
4232 return __cc == 3;
4233}
4234
4235// This prototype is deprecated.
4236static inline __ATTRS_o_ai int
4237vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
4238 int __cc;
4239 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
4240 return __cc == 3;
4241}
4242
4243// This prototype is deprecated.
4244static inline __ATTRS_o_ai int
4245vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
4246 int __cc;
4247 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
4248 return __cc == 3;
4249}
4250
4251// This prototype is deprecated.
4252static inline __ATTRS_o_ai int
4253vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
4254 int __cc;
4255 __builtin_s390_vchlgs((__vector unsigned long long)__a,
4256 (__vector unsigned long long)__b, &__cc);
4257 return __cc == 3;
4258}
4259
4260#if __ARCH__ >= 15
4261static inline __ATTRS_o_ai int
4262vec_all_le(__vector signed __int128 __a, __vector signed __int128 __b) {
4263 int __cc;
4264 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
4265 return __cc == 3;
4266}
4267
4268static inline __ATTRS_o_ai int
4269vec_all_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4270 int __cc;
4271 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4272 return __cc == 3;
4273}
4274#endif
4275
4276#if __ARCH__ >= 12
4277static inline __ATTRS_o_ai int
4278vec_all_le(__vector float __a, __vector float __b) {
4279 int __cc;
4280 __builtin_s390_vfchesbs(__b, __a, &__cc);
4281 return __cc == 0;
4282}
4283#endif
4284
4285static inline __ATTRS_o_ai int
4286vec_all_le(__vector double __a, __vector double __b) {
4287 int __cc;
4288 __builtin_s390_vfchedbs(__b, __a, &__cc);
4289 return __cc == 0;
4290}
4291
4292/*-- vec_all_lt -------------------------------------------------------------*/
4293
4294static inline __ATTRS_o_ai int
4295vec_all_lt(__vector signed char __a, __vector signed char __b) {
4296 int __cc;
4297 __builtin_s390_vchbs(__b, __a, &__cc);
4298 return __cc == 0;
4299}
4300
4301// This prototype is deprecated.
4302static inline __ATTRS_o_ai int
4303vec_all_lt(__vector signed char __a, __vector __bool char __b) {
4304 int __cc;
4305 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
4306 return __cc == 0;
4307}
4308
4309// This prototype is deprecated.
4310static inline __ATTRS_o_ai int
4311vec_all_lt(__vector __bool char __a, __vector signed char __b) {
4312 int __cc;
4313 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
4314 return __cc == 0;
4315}
4316
4317static inline __ATTRS_o_ai int
4318vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
4319 int __cc;
4320 __builtin_s390_vchlbs(__b, __a, &__cc);
4321 return __cc == 0;
4322}
4323
4324// This prototype is deprecated.
4325static inline __ATTRS_o_ai int
4326vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
4327 int __cc;
4328 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
4329 return __cc == 0;
4330}
4331
4332// This prototype is deprecated.
4333static inline __ATTRS_o_ai int
4334vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
4335 int __cc;
4336 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
4337 return __cc == 0;
4338}
4339
4340// This prototype is deprecated.
4341static inline __ATTRS_o_ai int
4342vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
4343 int __cc;
4344 __builtin_s390_vchlbs((__vector unsigned char)__b,
4345 (__vector unsigned char)__a, &__cc);
4346 return __cc == 0;
4347}
4348
4349static inline __ATTRS_o_ai int
4350vec_all_lt(__vector signed short __a, __vector signed short __b) {
4351 int __cc;
4352 __builtin_s390_vchhs(__b, __a, &__cc);
4353 return __cc == 0;
4354}
4355
4356// This prototype is deprecated.
4357static inline __ATTRS_o_ai int
4358vec_all_lt(__vector signed short __a, __vector __bool short __b) {
4359 int __cc;
4360 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
4361 return __cc == 0;
4362}
4363
4364// This prototype is deprecated.
4365static inline __ATTRS_o_ai int
4366vec_all_lt(__vector __bool short __a, __vector signed short __b) {
4367 int __cc;
4368 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
4369 return __cc == 0;
4370}
4371
4372static inline __ATTRS_o_ai int
4373vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
4374 int __cc;
4375 __builtin_s390_vchlhs(__b, __a, &__cc);
4376 return __cc == 0;
4377}
4378
4379// This prototype is deprecated.
4380static inline __ATTRS_o_ai int
4381vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
4382 int __cc;
4383 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
4384 return __cc == 0;
4385}
4386
4387// This prototype is deprecated.
4388static inline __ATTRS_o_ai int
4389vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
4390 int __cc;
4391 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
4392 return __cc == 0;
4393}
4394
4395// This prototype is deprecated.
4396static inline __ATTRS_o_ai int
4397vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
4398 int __cc;
4399 __builtin_s390_vchlhs((__vector unsigned short)__b,
4400 (__vector unsigned short)__a, &__cc);
4401 return __cc == 0;
4402}
4403
4404static inline __ATTRS_o_ai int
4405vec_all_lt(__vector signed int __a, __vector signed int __b) {
4406 int __cc;
4407 __builtin_s390_vchfs(__b, __a, &__cc);
4408 return __cc == 0;
4409}
4410
4411// This prototype is deprecated.
4412static inline __ATTRS_o_ai int
4413vec_all_lt(__vector signed int __a, __vector __bool int __b) {
4414 int __cc;
4415 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4416 return __cc == 0;
4417}
4418
4419// This prototype is deprecated.
4420static inline __ATTRS_o_ai int
4421vec_all_lt(__vector __bool int __a, __vector signed int __b) {
4422 int __cc;
4423 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4424 return __cc == 0;
4425}
4426
4427static inline __ATTRS_o_ai int
4428vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
4429 int __cc;
4430 __builtin_s390_vchlfs(__b, __a, &__cc);
4431 return __cc == 0;
4432}
4433
4434// This prototype is deprecated.
4435static inline __ATTRS_o_ai int
4436vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
4437 int __cc;
4438 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4439 return __cc == 0;
4440}
4441
4442// This prototype is deprecated.
4443static inline __ATTRS_o_ai int
4444vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
4445 int __cc;
4446 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4447 return __cc == 0;
4448}
4449
4450// This prototype is deprecated.
4451static inline __ATTRS_o_ai int
4452vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
4453 int __cc;
4454 __builtin_s390_vchlfs((__vector unsigned int)__b,
4455 (__vector unsigned int)__a, &__cc);
4456 return __cc == 0;
4457}
4458
4459static inline __ATTRS_o_ai int
4460vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
4461 int __cc;
4462 __builtin_s390_vchgs(__b, __a, &__cc);
4463 return __cc == 0;
4464}
4465
4466// This prototype is deprecated.
4467static inline __ATTRS_o_ai int
4468vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
4469 int __cc;
4470 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4471 return __cc == 0;
4472}
4473
4474// This prototype is deprecated.
4475static inline __ATTRS_o_ai int
4476vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
4477 int __cc;
4478 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4479 return __cc == 0;
4480}
4481
4482static inline __ATTRS_o_ai int
4483vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
4484 int __cc;
4485 __builtin_s390_vchlgs(__b, __a, &__cc);
4486 return __cc == 0;
4487}
4488
4489// This prototype is deprecated.
4490static inline __ATTRS_o_ai int
4491vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
4492 int __cc;
4493 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4494 return __cc == 0;
4495}
4496
4497// This prototype is deprecated.
4498static inline __ATTRS_o_ai int
4499vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
4500 int __cc;
4501 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4502 return __cc == 0;
4503}
4504
4505// This prototype is deprecated.
4506static inline __ATTRS_o_ai int
4507vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
4508 int __cc;
4509 __builtin_s390_vchlgs((__vector unsigned long long)__b,
4510 (__vector unsigned long long)__a, &__cc);
4511 return __cc == 0;
4512}
4513
4514#if __ARCH__ >= 15
4515static inline __ATTRS_o_ai int
4516vec_all_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
4517 int __cc;
4518 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
4519 return __cc == 0;
4520}
4521
4522static inline __ATTRS_o_ai int
4523vec_all_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4524 int __cc;
4525 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
4526 return __cc == 0;
4527}
4528#endif
4529
4530#if __ARCH__ >= 12
4531static inline __ATTRS_o_ai int
4532vec_all_lt(__vector float __a, __vector float __b) {
4533 int __cc;
4534 __builtin_s390_vfchsbs(__b, __a, &__cc);
4535 return __cc == 0;
4536}
4537#endif
4538
4539static inline __ATTRS_o_ai int
4540vec_all_lt(__vector double __a, __vector double __b) {
4541 int __cc;
4542 __builtin_s390_vfchdbs(__b, __a, &__cc);
4543 return __cc == 0;
4544}
4545
4546/*-- vec_all_nge ------------------------------------------------------------*/
4547
4548#if __ARCH__ >= 12
4549static inline __ATTRS_o_ai int
4550vec_all_nge(__vector float __a, __vector float __b) {
4551 int __cc;
4552 __builtin_s390_vfchesbs(__a, __b, &__cc);
4553 return __cc == 3;
4554}
4555#endif
4556
4557static inline __ATTRS_o_ai int
4558vec_all_nge(__vector double __a, __vector double __b) {
4559 int __cc;
4560 __builtin_s390_vfchedbs(__a, __b, &__cc);
4561 return __cc == 3;
4562}
4563
4564/*-- vec_all_ngt ------------------------------------------------------------*/
4565
4566#if __ARCH__ >= 12
4567static inline __ATTRS_o_ai int
4568vec_all_ngt(__vector float __a, __vector float __b) {
4569 int __cc;
4570 __builtin_s390_vfchsbs(__a, __b, &__cc);
4571 return __cc == 3;
4572}
4573#endif
4574
4575static inline __ATTRS_o_ai int
4576vec_all_ngt(__vector double __a, __vector double __b) {
4577 int __cc;
4578 __builtin_s390_vfchdbs(__a, __b, &__cc);
4579 return __cc == 3;
4580}
4581
4582/*-- vec_all_nle ------------------------------------------------------------*/
4583
4584#if __ARCH__ >= 12
4585static inline __ATTRS_o_ai int
4586vec_all_nle(__vector float __a, __vector float __b) {
4587 int __cc;
4588 __builtin_s390_vfchesbs(__b, __a, &__cc);
4589 return __cc == 3;
4590}
4591#endif
4592
4593static inline __ATTRS_o_ai int
4594vec_all_nle(__vector double __a, __vector double __b) {
4595 int __cc;
4596 __builtin_s390_vfchedbs(__b, __a, &__cc);
4597 return __cc == 3;
4598}
4599
4600/*-- vec_all_nlt ------------------------------------------------------------*/
4601
4602#if __ARCH__ >= 12
4603static inline __ATTRS_o_ai int
4604vec_all_nlt(__vector float __a, __vector float __b) {
4605 int __cc;
4606 __builtin_s390_vfchsbs(__b, __a, &__cc);
4607 return __cc == 3;
4608}
4609#endif
4610
4611static inline __ATTRS_o_ai int
4612vec_all_nlt(__vector double __a, __vector double __b) {
4613 int __cc;
4614 __builtin_s390_vfchdbs(__b, __a, &__cc);
4615 return __cc == 3;
4616}
4617
4618/*-- vec_all_nan ------------------------------------------------------------*/
4619
4620#if __ARCH__ >= 12
4621static inline __ATTRS_o_ai int
4622vec_all_nan(__vector float __a) {
4623 int __cc;
4624 __builtin_s390_vftcisb(__a, 15, &__cc);
4625 return __cc == 0;
4626}
4627#endif
4628
4629static inline __ATTRS_o_ai int
4630vec_all_nan(__vector double __a) {
4631 int __cc;
4632 __builtin_s390_vftcidb(__a, 15, &__cc);
4633 return __cc == 0;
4634}
4635
4636/*-- vec_all_numeric --------------------------------------------------------*/
4637
4638#if __ARCH__ >= 12
4639static inline __ATTRS_o_ai int
4640vec_all_numeric(__vector float __a) {
4641 int __cc;
4642 __builtin_s390_vftcisb(__a, 15, &__cc);
4643 return __cc == 3;
4644}
4645#endif
4646
4647static inline __ATTRS_o_ai int
4648vec_all_numeric(__vector double __a) {
4649 int __cc;
4650 __builtin_s390_vftcidb(__a, 15, &__cc);
4651 return __cc == 3;
4652}
4653
4654/*-- vec_any_eq -------------------------------------------------------------*/
4655
4656static inline __ATTRS_o_ai int
4657vec_any_eq(__vector signed char __a, __vector signed char __b) {
4658 int __cc;
4659 __builtin_s390_vceqbs((__vector unsigned char)__a,
4660 (__vector unsigned char)__b, &__cc);
4661 return __cc <= 1;
4662}
4663
4664// This prototype is deprecated.
4665static inline __ATTRS_o_ai int
4666vec_any_eq(__vector signed char __a, __vector __bool char __b) {
4667 int __cc;
4668 __builtin_s390_vceqbs((__vector unsigned char)__a,
4669 (__vector unsigned char)__b, &__cc);
4670 return __cc <= 1;
4671}
4672
4673// This prototype is deprecated.
4674static inline __ATTRS_o_ai int
4675vec_any_eq(__vector __bool char __a, __vector signed char __b) {
4676 int __cc;
4677 __builtin_s390_vceqbs((__vector unsigned char)__a,
4678 (__vector unsigned char)__b, &__cc);
4679 return __cc <= 1;
4680}
4681
4682static inline __ATTRS_o_ai int
4683vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
4684 int __cc;
4685 __builtin_s390_vceqbs(__a, __b, &__cc);
4686 return __cc <= 1;
4687}
4688
4689// This prototype is deprecated.
4690static inline __ATTRS_o_ai int
4691vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
4692 int __cc;
4693 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4694 return __cc <= 1;
4695}
4696
4697// This prototype is deprecated.
4698static inline __ATTRS_o_ai int
4699vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
4700 int __cc;
4701 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4702 return __cc <= 1;
4703}
4704
4705static inline __ATTRS_o_ai int
4706vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
4707 int __cc;
4708 __builtin_s390_vceqbs((__vector unsigned char)__a,
4709 (__vector unsigned char)__b, &__cc);
4710 return __cc <= 1;
4711}
4712
4713static inline __ATTRS_o_ai int
4714vec_any_eq(__vector signed short __a, __vector signed short __b) {
4715 int __cc;
4716 __builtin_s390_vceqhs((__vector unsigned short)__a,
4717 (__vector unsigned short)__b, &__cc);
4718 return __cc <= 1;
4719}
4720
4721// This prototype is deprecated.
4722static inline __ATTRS_o_ai int
4723vec_any_eq(__vector signed short __a, __vector __bool short __b) {
4724 int __cc;
4725 __builtin_s390_vceqhs((__vector unsigned short)__a,
4726 (__vector unsigned short)__b, &__cc);
4727 return __cc <= 1;
4728}
4729
4730// This prototype is deprecated.
4731static inline __ATTRS_o_ai int
4732vec_any_eq(__vector __bool short __a, __vector signed short __b) {
4733 int __cc;
4734 __builtin_s390_vceqhs((__vector unsigned short)__a,
4735 (__vector unsigned short)__b, &__cc);
4736 return __cc <= 1;
4737}
4738
4739static inline __ATTRS_o_ai int
4740vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
4741 int __cc;
4742 __builtin_s390_vceqhs(__a, __b, &__cc);
4743 return __cc <= 1;
4744}
4745
4746// This prototype is deprecated.
4747static inline __ATTRS_o_ai int
4748vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
4749 int __cc;
4750 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
4751 return __cc <= 1;
4752}
4753
4754// This prototype is deprecated.
4755static inline __ATTRS_o_ai int
4756vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
4757 int __cc;
4758 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
4759 return __cc <= 1;
4760}
4761
4762static inline __ATTRS_o_ai int
4763vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
4764 int __cc;
4765 __builtin_s390_vceqhs((__vector unsigned short)__a,
4766 (__vector unsigned short)__b, &__cc);
4767 return __cc <= 1;
4768}
4769
4770static inline __ATTRS_o_ai int
4771vec_any_eq(__vector signed int __a, __vector signed int __b) {
4772 int __cc;
4773 __builtin_s390_vceqfs((__vector unsigned int)__a,
4774 (__vector unsigned int)__b, &__cc);
4775 return __cc <= 1;
4776}
4777
4778// This prototype is deprecated.
4779static inline __ATTRS_o_ai int
4780vec_any_eq(__vector signed int __a, __vector __bool int __b) {
4781 int __cc;
4782 __builtin_s390_vceqfs((__vector unsigned int)__a,
4783 (__vector unsigned int)__b, &__cc);
4784 return __cc <= 1;
4785}
4786
4787// This prototype is deprecated.
4788static inline __ATTRS_o_ai int
4789vec_any_eq(__vector __bool int __a, __vector signed int __b) {
4790 int __cc;
4791 __builtin_s390_vceqfs((__vector unsigned int)__a,
4792 (__vector unsigned int)__b, &__cc);
4793 return __cc <= 1;
4794}
4795
4796static inline __ATTRS_o_ai int
4797vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
4798 int __cc;
4799 __builtin_s390_vceqfs(__a, __b, &__cc);
4800 return __cc <= 1;
4801}
4802
4803// This prototype is deprecated.
4804static inline __ATTRS_o_ai int
4805vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
4806 int __cc;
4807 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
4808 return __cc <= 1;
4809}
4810
4811// This prototype is deprecated.
4812static inline __ATTRS_o_ai int
4813vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
4814 int __cc;
4815 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
4816 return __cc <= 1;
4817}
4818
4819static inline __ATTRS_o_ai int
4820vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
4821 int __cc;
4822 __builtin_s390_vceqfs((__vector unsigned int)__a,
4823 (__vector unsigned int)__b, &__cc);
4824 return __cc <= 1;
4825}
4826
4827static inline __ATTRS_o_ai int
4828vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
4829 int __cc;
4830 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4831 (__vector unsigned long long)__b, &__cc);
4832 return __cc <= 1;
4833}
4834
4835// This prototype is deprecated.
4836static inline __ATTRS_o_ai int
4837vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
4838 int __cc;
4839 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4840 (__vector unsigned long long)__b, &__cc);
4841 return __cc <= 1;
4842}
4843
4844// This prototype is deprecated.
4845static inline __ATTRS_o_ai int
4846vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
4847 int __cc;
4848 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4849 (__vector unsigned long long)__b, &__cc);
4850 return __cc <= 1;
4851}
4852
4853static inline __ATTRS_o_ai int
4854vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
4855 int __cc;
4856 __builtin_s390_vceqgs(__a, __b, &__cc);
4857 return __cc <= 1;
4858}
4859
4860// This prototype is deprecated.
4861static inline __ATTRS_o_ai int
4862vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
4863 int __cc;
4864 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
4865 return __cc <= 1;
4866}
4867
4868// This prototype is deprecated.
4869static inline __ATTRS_o_ai int
4870vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
4871 int __cc;
4872 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
4873 return __cc <= 1;
4874}
4875
4876static inline __ATTRS_o_ai int
4877vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
4878 int __cc;
4879 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4880 (__vector unsigned long long)__b, &__cc);
4881 return __cc <= 1;
4882}
4883
4884#if __ARCH__ >= 15
4885static inline __ATTRS_o_ai int
4886vec_any_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
4887 int __cc;
4888 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4889 return __cc <= 1;
4890}
4891
4892static inline __ATTRS_o_ai int
4893vec_any_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4894 int __cc;
4895 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4896 return __cc <= 1;
4897}
4898
4899static inline __ATTRS_o_ai int
4900vec_any_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
4901 int __cc;
4902 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4903 return __cc <= 1;
4904}
4905#endif
4906
4907#if __ARCH__ >= 12
4908static inline __ATTRS_o_ai int
4909vec_any_eq(__vector float __a, __vector float __b) {
4910 int __cc;
4911 __builtin_s390_vfcesbs(__a, __b, &__cc);
4912 return __cc <= 1;
4913}
4914#endif
4915
4916static inline __ATTRS_o_ai int
4917vec_any_eq(__vector double __a, __vector double __b) {
4918 int __cc;
4919 __builtin_s390_vfcedbs(__a, __b, &__cc);
4920 return __cc <= 1;
4921}
4922
4923/*-- vec_any_ne -------------------------------------------------------------*/
4924
4925static inline __ATTRS_o_ai int
4926vec_any_ne(__vector signed char __a, __vector signed char __b) {
4927 int __cc;
4928 __builtin_s390_vceqbs((__vector unsigned char)__a,
4929 (__vector unsigned char)__b, &__cc);
4930 return __cc != 0;
4931}
4932
4933// This prototype is deprecated.
4934static inline __ATTRS_o_ai int
4935vec_any_ne(__vector signed char __a, __vector __bool char __b) {
4936 int __cc;
4937 __builtin_s390_vceqbs((__vector unsigned char)__a,
4938 (__vector unsigned char)__b, &__cc);
4939 return __cc != 0;
4940}
4941
4942// This prototype is deprecated.
4943static inline __ATTRS_o_ai int
4944vec_any_ne(__vector __bool char __a, __vector signed char __b) {
4945 int __cc;
4946 __builtin_s390_vceqbs((__vector unsigned char)__a,
4947 (__vector unsigned char)__b, &__cc);
4948 return __cc != 0;
4949}
4950
4951static inline __ATTRS_o_ai int
4952vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
4953 int __cc;
4954 __builtin_s390_vceqbs(__a, __b, &__cc);
4955 return __cc != 0;
4956}
4957
4958// This prototype is deprecated.
4959static inline __ATTRS_o_ai int
4960vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
4961 int __cc;
4962 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4963 return __cc != 0;
4964}
4965
4966// This prototype is deprecated.
4967static inline __ATTRS_o_ai int
4968vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
4969 int __cc;
4970 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4971 return __cc != 0;
4972}
4973
4974static inline __ATTRS_o_ai int
4975vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
4976 int __cc;
4977 __builtin_s390_vceqbs((__vector unsigned char)__a,
4978 (__vector unsigned char)__b, &__cc);
4979 return __cc != 0;
4980}
4981
4982static inline __ATTRS_o_ai int
4983vec_any_ne(__vector signed short __a, __vector signed short __b) {
4984 int __cc;
4985 __builtin_s390_vceqhs((__vector unsigned short)__a,
4986 (__vector unsigned short)__b, &__cc);
4987 return __cc != 0;
4988}
4989
4990// This prototype is deprecated.
4991static inline __ATTRS_o_ai int
4992vec_any_ne(__vector signed short __a, __vector __bool short __b) {
4993 int __cc;
4994 __builtin_s390_vceqhs((__vector unsigned short)__a,
4995 (__vector unsigned short)__b, &__cc);
4996 return __cc != 0;
4997}
4998
4999// This prototype is deprecated.
5000static inline __ATTRS_o_ai int
5001vec_any_ne(__vector __bool short __a, __vector signed short __b) {
5002 int __cc;
5003 __builtin_s390_vceqhs((__vector unsigned short)__a,
5004 (__vector unsigned short)__b, &__cc);
5005 return __cc != 0;
5006}
5007
5008static inline __ATTRS_o_ai int
5009vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
5010 int __cc;
5011 __builtin_s390_vceqhs(__a, __b, &__cc);
5012 return __cc != 0;
5013}
5014
5015// This prototype is deprecated.
5016static inline __ATTRS_o_ai int
5017vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
5018 int __cc;
5019 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
5020 return __cc != 0;
5021}
5022
5023// This prototype is deprecated.
5024static inline __ATTRS_o_ai int
5025vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
5026 int __cc;
5027 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
5028 return __cc != 0;
5029}
5030
5031static inline __ATTRS_o_ai int
5032vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
5033 int __cc;
5034 __builtin_s390_vceqhs((__vector unsigned short)__a,
5035 (__vector unsigned short)__b, &__cc);
5036 return __cc != 0;
5037}
5038
5039static inline __ATTRS_o_ai int
5040vec_any_ne(__vector signed int __a, __vector signed int __b) {
5041 int __cc;
5042 __builtin_s390_vceqfs((__vector unsigned int)__a,
5043 (__vector unsigned int)__b, &__cc);
5044 return __cc != 0;
5045}
5046
5047// This prototype is deprecated.
5048static inline __ATTRS_o_ai int
5049vec_any_ne(__vector signed int __a, __vector __bool int __b) {
5050 int __cc;
5051 __builtin_s390_vceqfs((__vector unsigned int)__a,
5052 (__vector unsigned int)__b, &__cc);
5053 return __cc != 0;
5054}
5055
5056// This prototype is deprecated.
5057static inline __ATTRS_o_ai int
5058vec_any_ne(__vector __bool int __a, __vector signed int __b) {
5059 int __cc;
5060 __builtin_s390_vceqfs((__vector unsigned int)__a,
5061 (__vector unsigned int)__b, &__cc);
5062 return __cc != 0;
5063}
5064
5065static inline __ATTRS_o_ai int
5066vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
5067 int __cc;
5068 __builtin_s390_vceqfs(__a, __b, &__cc);
5069 return __cc != 0;
5070}
5071
5072// This prototype is deprecated.
5073static inline __ATTRS_o_ai int
5074vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
5075 int __cc;
5076 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
5077 return __cc != 0;
5078}
5079
5080// This prototype is deprecated.
5081static inline __ATTRS_o_ai int
5082vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
5083 int __cc;
5084 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
5085 return __cc != 0;
5086}
5087
5088static inline __ATTRS_o_ai int
5089vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
5090 int __cc;
5091 __builtin_s390_vceqfs((__vector unsigned int)__a,
5092 (__vector unsigned int)__b, &__cc);
5093 return __cc != 0;
5094}
5095
5096static inline __ATTRS_o_ai int
5097vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
5098 int __cc;
5099 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5100 (__vector unsigned long long)__b, &__cc);
5101 return __cc != 0;
5102}
5103
5104// This prototype is deprecated.
5105static inline __ATTRS_o_ai int
5106vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
5107 int __cc;
5108 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5109 (__vector unsigned long long)__b, &__cc);
5110 return __cc != 0;
5111}
5112
5113// This prototype is deprecated.
5114static inline __ATTRS_o_ai int
5115vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
5116 int __cc;
5117 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5118 (__vector unsigned long long)__b, &__cc);
5119 return __cc != 0;
5120}
5121
5122static inline __ATTRS_o_ai int
5123vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
5124 int __cc;
5125 __builtin_s390_vceqgs(__a, __b, &__cc);
5126 return __cc != 0;
5127}
5128
5129// This prototype is deprecated.
5130static inline __ATTRS_o_ai int
5131vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
5132 int __cc;
5133 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
5134 return __cc != 0;
5135}
5136
5137// This prototype is deprecated.
5138static inline __ATTRS_o_ai int
5139vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
5140 int __cc;
5141 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
5142 return __cc != 0;
5143}
5144
5145static inline __ATTRS_o_ai int
5146vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
5147 int __cc;
5148 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5149 (__vector unsigned long long)__b, &__cc);
5150 return __cc != 0;
5151}
5152
5153#if __ARCH__ >= 15
5154static inline __ATTRS_o_ai int
5155vec_any_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
5156 int __cc;
5157 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5158 return __cc != 0;
5159}
5160
5161static inline __ATTRS_o_ai int
5162vec_any_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5163 int __cc;
5164 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5165 return __cc != 0;
5166}
5167
5168static inline __ATTRS_o_ai int
5169vec_any_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
5170 int __cc;
5171 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5172 return __cc != 0;
5173}
5174#endif
5175
5176#if __ARCH__ >= 12
5177static inline __ATTRS_o_ai int
5178vec_any_ne(__vector float __a, __vector float __b) {
5179 int __cc;
5180 __builtin_s390_vfcesbs(__a, __b, &__cc);
5181 return __cc != 0;
5182}
5183#endif
5184
5185static inline __ATTRS_o_ai int
5186vec_any_ne(__vector double __a, __vector double __b) {
5187 int __cc;
5188 __builtin_s390_vfcedbs(__a, __b, &__cc);
5189 return __cc != 0;
5190}
5191
5192/*-- vec_any_ge -------------------------------------------------------------*/
5193
5194static inline __ATTRS_o_ai int
5195vec_any_ge(__vector signed char __a, __vector signed char __b) {
5196 int __cc;
5197 __builtin_s390_vchbs(__b, __a, &__cc);
5198 return __cc != 0;
5199}
5200
5201// This prototype is deprecated.
5202static inline __ATTRS_o_ai int
5203vec_any_ge(__vector signed char __a, __vector __bool char __b) {
5204 int __cc;
5205 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5206 return __cc != 0;
5207}
5208
5209// This prototype is deprecated.
5210static inline __ATTRS_o_ai int
5211vec_any_ge(__vector __bool char __a, __vector signed char __b) {
5212 int __cc;
5213 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5214 return __cc != 0;
5215}
5216
5217static inline __ATTRS_o_ai int
5218vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
5219 int __cc;
5220 __builtin_s390_vchlbs(__b, __a, &__cc);
5221 return __cc != 0;
5222}
5223
5224// This prototype is deprecated.
5225static inline __ATTRS_o_ai int
5226vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
5227 int __cc;
5228 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5229 return __cc != 0;
5230}
5231
5232// This prototype is deprecated.
5233static inline __ATTRS_o_ai int
5234vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
5235 int __cc;
5236 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5237 return __cc != 0;
5238}
5239
5240// This prototype is deprecated.
5241static inline __ATTRS_o_ai int
5242vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
5243 int __cc;
5244 __builtin_s390_vchlbs((__vector unsigned char)__b,
5245 (__vector unsigned char)__a, &__cc);
5246 return __cc != 0;
5247}
5248
5249static inline __ATTRS_o_ai int
5250vec_any_ge(__vector signed short __a, __vector signed short __b) {
5251 int __cc;
5252 __builtin_s390_vchhs(__b, __a, &__cc);
5253 return __cc != 0;
5254}
5255
5256// This prototype is deprecated.
5257static inline __ATTRS_o_ai int
5258vec_any_ge(__vector signed short __a, __vector __bool short __b) {
5259 int __cc;
5260 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
5261 return __cc != 0;
5262}
5263
5264// This prototype is deprecated.
5265static inline __ATTRS_o_ai int
5266vec_any_ge(__vector __bool short __a, __vector signed short __b) {
5267 int __cc;
5268 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
5269 return __cc != 0;
5270}
5271
5272static inline __ATTRS_o_ai int
5273vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
5274 int __cc;
5275 __builtin_s390_vchlhs(__b, __a, &__cc);
5276 return __cc != 0;
5277}
5278
5279// This prototype is deprecated.
5280static inline __ATTRS_o_ai int
5281vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
5282 int __cc;
5283 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
5284 return __cc != 0;
5285}
5286
5287// This prototype is deprecated.
5288static inline __ATTRS_o_ai int
5289vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
5290 int __cc;
5291 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
5292 return __cc != 0;
5293}
5294
5295// This prototype is deprecated.
5296static inline __ATTRS_o_ai int
5297vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
5298 int __cc;
5299 __builtin_s390_vchlhs((__vector unsigned short)__b,
5300 (__vector unsigned short)__a, &__cc);
5301 return __cc != 0;
5302}
5303
5304static inline __ATTRS_o_ai int
5305vec_any_ge(__vector signed int __a, __vector signed int __b) {
5306 int __cc;
5307 __builtin_s390_vchfs(__b, __a, &__cc);
5308 return __cc != 0;
5309}
5310
5311// This prototype is deprecated.
5312static inline __ATTRS_o_ai int
5313vec_any_ge(__vector signed int __a, __vector __bool int __b) {
5314 int __cc;
5315 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
5316 return __cc != 0;
5317}
5318
5319// This prototype is deprecated.
5320static inline __ATTRS_o_ai int
5321vec_any_ge(__vector __bool int __a, __vector signed int __b) {
5322 int __cc;
5323 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
5324 return __cc != 0;
5325}
5326
5327static inline __ATTRS_o_ai int
5328vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
5329 int __cc;
5330 __builtin_s390_vchlfs(__b, __a, &__cc);
5331 return __cc != 0;
5332}
5333
5334// This prototype is deprecated.
5335static inline __ATTRS_o_ai int
5336vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
5337 int __cc;
5338 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
5339 return __cc != 0;
5340}
5341
5342// This prototype is deprecated.
5343static inline __ATTRS_o_ai int
5344vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
5345 int __cc;
5346 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
5347 return __cc != 0;
5348}
5349
5350// This prototype is deprecated.
5351static inline __ATTRS_o_ai int
5352vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
5353 int __cc;
5354 __builtin_s390_vchlfs((__vector unsigned int)__b,
5355 (__vector unsigned int)__a, &__cc);
5356 return __cc != 0;
5357}
5358
5359static inline __ATTRS_o_ai int
5360vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
5361 int __cc;
5362 __builtin_s390_vchgs(__b, __a, &__cc);
5363 return __cc != 0;
5364}
5365
5366// This prototype is deprecated.
5367static inline __ATTRS_o_ai int
5368vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
5369 int __cc;
5370 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
5371 return __cc != 0;
5372}
5373
5374// This prototype is deprecated.
5375static inline __ATTRS_o_ai int
5376vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
5377 int __cc;
5378 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
5379 return __cc != 0;
5380}
5381
5382static inline __ATTRS_o_ai int
5383vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
5384 int __cc;
5385 __builtin_s390_vchlgs(__b, __a, &__cc);
5386 return __cc != 0;
5387}
5388
5389// This prototype is deprecated.
5390static inline __ATTRS_o_ai int
5391vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
5392 int __cc;
5393 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
5394 return __cc != 0;
5395}
5396
5397// This prototype is deprecated.
5398static inline __ATTRS_o_ai int
5399vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
5400 int __cc;
5401 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
5402 return __cc != 0;
5403}
5404
5405// This prototype is deprecated.
5406static inline __ATTRS_o_ai int
5407vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
5408 int __cc;
5409 __builtin_s390_vchlgs((__vector unsigned long long)__b,
5410 (__vector unsigned long long)__a, &__cc);
5411 return __cc != 0;
5412}
5413
5414#if __ARCH__ >= 15
5415static inline __ATTRS_o_ai int
5416vec_any_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
5417 int __cc;
5418 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
5419 return __cc != 0;
5420}
5421
5422static inline __ATTRS_o_ai int
5423vec_any_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5424 int __cc;
5425 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
5426 return __cc != 0;
5427}
5428#endif
5429
5430#if __ARCH__ >= 12
5431static inline __ATTRS_o_ai int
5432vec_any_ge(__vector float __a, __vector float __b) {
5433 int __cc;
5434 __builtin_s390_vfchesbs(__a, __b, &__cc);
5435 return __cc <= 1;
5436}
5437#endif
5438
5439static inline __ATTRS_o_ai int
5440vec_any_ge(__vector double __a, __vector double __b) {
5441 int __cc;
5442 __builtin_s390_vfchedbs(__a, __b, &__cc);
5443 return __cc <= 1;
5444}
5445
5446/*-- vec_any_gt -------------------------------------------------------------*/
5447
5448static inline __ATTRS_o_ai int
5449vec_any_gt(__vector signed char __a, __vector signed char __b) {
5450 int __cc;
5451 __builtin_s390_vchbs(__a, __b, &__cc);
5452 return __cc <= 1;
5453}
5454
5455// This prototype is deprecated.
5456static inline __ATTRS_o_ai int
5457vec_any_gt(__vector signed char __a, __vector __bool char __b) {
5458 int __cc;
5459 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5460 return __cc <= 1;
5461}
5462
5463// This prototype is deprecated.
5464static inline __ATTRS_o_ai int
5465vec_any_gt(__vector __bool char __a, __vector signed char __b) {
5466 int __cc;
5467 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5468 return __cc <= 1;
5469}
5470
5471static inline __ATTRS_o_ai int
5472vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
5473 int __cc;
5474 __builtin_s390_vchlbs(__a, __b, &__cc);
5475 return __cc <= 1;
5476}
5477
5478// This prototype is deprecated.
5479static inline __ATTRS_o_ai int
5480vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
5481 int __cc;
5482 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5483 return __cc <= 1;
5484}
5485
5486// This prototype is deprecated.
5487static inline __ATTRS_o_ai int
5488vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
5489 int __cc;
5490 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5491 return __cc <= 1;
5492}
5493
5494// This prototype is deprecated.
5495static inline __ATTRS_o_ai int
5496vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
5497 int __cc;
5498 __builtin_s390_vchlbs((__vector unsigned char)__a,
5499 (__vector unsigned char)__b, &__cc);
5500 return __cc <= 1;
5501}
5502
5503static inline __ATTRS_o_ai int
5504vec_any_gt(__vector signed short __a, __vector signed short __b) {
5505 int __cc;
5506 __builtin_s390_vchhs(__a, __b, &__cc);
5507 return __cc <= 1;
5508}
5509
5510// This prototype is deprecated.
5511static inline __ATTRS_o_ai int
5512vec_any_gt(__vector signed short __a, __vector __bool short __b) {
5513 int __cc;
5514 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5515 return __cc <= 1;
5516}
5517
5518// This prototype is deprecated.
5519static inline __ATTRS_o_ai int
5520vec_any_gt(__vector __bool short __a, __vector signed short __b) {
5521 int __cc;
5522 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5523 return __cc <= 1;
5524}
5525
5526static inline __ATTRS_o_ai int
5527vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
5528 int __cc;
5529 __builtin_s390_vchlhs(__a, __b, &__cc);
5530 return __cc <= 1;
5531}
5532
5533// This prototype is deprecated.
5534static inline __ATTRS_o_ai int
5535vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
5536 int __cc;
5537 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5538 return __cc <= 1;
5539}
5540
5541// This prototype is deprecated.
5542static inline __ATTRS_o_ai int
5543vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
5544 int __cc;
5545 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5546 return __cc <= 1;
5547}
5548
5549// This prototype is deprecated.
5550static inline __ATTRS_o_ai int
5551vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
5552 int __cc;
5553 __builtin_s390_vchlhs((__vector unsigned short)__a,
5554 (__vector unsigned short)__b, &__cc);
5555 return __cc <= 1;
5556}
5557
5558static inline __ATTRS_o_ai int
5559vec_any_gt(__vector signed int __a, __vector signed int __b) {
5560 int __cc;
5561 __builtin_s390_vchfs(__a, __b, &__cc);
5562 return __cc <= 1;
5563}
5564
5565// This prototype is deprecated.
5566static inline __ATTRS_o_ai int
5567vec_any_gt(__vector signed int __a, __vector __bool int __b) {
5568 int __cc;
5569 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5570 return __cc <= 1;
5571}
5572
5573// This prototype is deprecated.
5574static inline __ATTRS_o_ai int
5575vec_any_gt(__vector __bool int __a, __vector signed int __b) {
5576 int __cc;
5577 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5578 return __cc <= 1;
5579}
5580
5581static inline __ATTRS_o_ai int
5582vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
5583 int __cc;
5584 __builtin_s390_vchlfs(__a, __b, &__cc);
5585 return __cc <= 1;
5586}
5587
5588// This prototype is deprecated.
5589static inline __ATTRS_o_ai int
5590vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
5591 int __cc;
5592 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5593 return __cc <= 1;
5594}
5595
5596// This prototype is deprecated.
5597static inline __ATTRS_o_ai int
5598vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
5599 int __cc;
5600 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5601 return __cc <= 1;
5602}
5603
5604// This prototype is deprecated.
5605static inline __ATTRS_o_ai int
5606vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
5607 int __cc;
5608 __builtin_s390_vchlfs((__vector unsigned int)__a,
5609 (__vector unsigned int)__b, &__cc);
5610 return __cc <= 1;
5611}
5612
5613static inline __ATTRS_o_ai int
5614vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
5615 int __cc;
5616 __builtin_s390_vchgs(__a, __b, &__cc);
5617 return __cc <= 1;
5618}
5619
5620// This prototype is deprecated.
5621static inline __ATTRS_o_ai int
5622vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
5623 int __cc;
5624 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5625 return __cc <= 1;
5626}
5627
5628// This prototype is deprecated.
5629static inline __ATTRS_o_ai int
5630vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
5631 int __cc;
5632 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5633 return __cc <= 1;
5634}
5635
5636static inline __ATTRS_o_ai int
5637vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
5638 int __cc;
5639 __builtin_s390_vchlgs(__a, __b, &__cc);
5640 return __cc <= 1;
5641}
5642
5643// This prototype is deprecated.
5644static inline __ATTRS_o_ai int
5645vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
5646 int __cc;
5647 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5648 return __cc <= 1;
5649}
5650
5651// This prototype is deprecated.
5652static inline __ATTRS_o_ai int
5653vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
5654 int __cc;
5655 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5656 return __cc <= 1;
5657}
5658
5659// This prototype is deprecated.
5660static inline __ATTRS_o_ai int
5661vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
5662 int __cc;
5663 __builtin_s390_vchlgs((__vector unsigned long long)__a,
5664 (__vector unsigned long long)__b, &__cc);
5665 return __cc <= 1;
5666}
5667
5668#if __ARCH__ >= 15
5669static inline __ATTRS_o_ai int
5670vec_any_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
5671 int __cc;
5672 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
5673 return __cc <= 1;
5674}
5675
5676static inline __ATTRS_o_ai int
5677vec_any_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5678 int __cc;
5679 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5680 return __cc <= 1;
5681}
5682#endif
5683
5684#if __ARCH__ >= 12
5685static inline __ATTRS_o_ai int
5686vec_any_gt(__vector float __a, __vector float __b) {
5687 int __cc;
5688 __builtin_s390_vfchsbs(__a, __b, &__cc);
5689 return __cc <= 1;
5690}
5691#endif
5692
5693static inline __ATTRS_o_ai int
5694vec_any_gt(__vector double __a, __vector double __b) {
5695 int __cc;
5696 __builtin_s390_vfchdbs(__a, __b, &__cc);
5697 return __cc <= 1;
5698}
5699
5700/*-- vec_any_le -------------------------------------------------------------*/
5701
5702static inline __ATTRS_o_ai int
5703vec_any_le(__vector signed char __a, __vector signed char __b) {
5704 int __cc;
5705 __builtin_s390_vchbs(__a, __b, &__cc);
5706 return __cc != 0;
5707}
5708
5709// This prototype is deprecated.
5710static inline __ATTRS_o_ai int
5711vec_any_le(__vector signed char __a, __vector __bool char __b) {
5712 int __cc;
5713 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5714 return __cc != 0;
5715}
5716
5717// This prototype is deprecated.
5718static inline __ATTRS_o_ai int
5719vec_any_le(__vector __bool char __a, __vector signed char __b) {
5720 int __cc;
5721 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5722 return __cc != 0;
5723}
5724
5725static inline __ATTRS_o_ai int
5726vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
5727 int __cc;
5728 __builtin_s390_vchlbs(__a, __b, &__cc);
5729 return __cc != 0;
5730}
5731
5732// This prototype is deprecated.
5733static inline __ATTRS_o_ai int
5734vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
5735 int __cc;
5736 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5737 return __cc != 0;
5738}
5739
5740// This prototype is deprecated.
5741static inline __ATTRS_o_ai int
5742vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
5743 int __cc;
5744 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5745 return __cc != 0;
5746}
5747
5748// This prototype is deprecated.
5749static inline __ATTRS_o_ai int
5750vec_any_le(__vector __bool char __a, __vector __bool char __b) {
5751 int __cc;
5752 __builtin_s390_vchlbs((__vector unsigned char)__a,
5753 (__vector unsigned char)__b, &__cc);
5754 return __cc != 0;
5755}
5756
5757static inline __ATTRS_o_ai int
5758vec_any_le(__vector signed short __a, __vector signed short __b) {
5759 int __cc;
5760 __builtin_s390_vchhs(__a, __b, &__cc);
5761 return __cc != 0;
5762}
5763
5764// This prototype is deprecated.
5765static inline __ATTRS_o_ai int
5766vec_any_le(__vector signed short __a, __vector __bool short __b) {
5767 int __cc;
5768 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5769 return __cc != 0;
5770}
5771
5772// This prototype is deprecated.
5773static inline __ATTRS_o_ai int
5774vec_any_le(__vector __bool short __a, __vector signed short __b) {
5775 int __cc;
5776 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5777 return __cc != 0;
5778}
5779
5780static inline __ATTRS_o_ai int
5781vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
5782 int __cc;
5783 __builtin_s390_vchlhs(__a, __b, &__cc);
5784 return __cc != 0;
5785}
5786
5787// This prototype is deprecated.
5788static inline __ATTRS_o_ai int
5789vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
5790 int __cc;
5791 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5792 return __cc != 0;
5793}
5794
5795// This prototype is deprecated.
5796static inline __ATTRS_o_ai int
5797vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
5798 int __cc;
5799 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5800 return __cc != 0;
5801}
5802
5803// This prototype is deprecated.
5804static inline __ATTRS_o_ai int
5805vec_any_le(__vector __bool short __a, __vector __bool short __b) {
5806 int __cc;
5807 __builtin_s390_vchlhs((__vector unsigned short)__a,
5808 (__vector unsigned short)__b, &__cc);
5809 return __cc != 0;
5810}
5811
5812static inline __ATTRS_o_ai int
5813vec_any_le(__vector signed int __a, __vector signed int __b) {
5814 int __cc;
5815 __builtin_s390_vchfs(__a, __b, &__cc);
5816 return __cc != 0;
5817}
5818
5819// This prototype is deprecated.
5820static inline __ATTRS_o_ai int
5821vec_any_le(__vector signed int __a, __vector __bool int __b) {
5822 int __cc;
5823 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5824 return __cc != 0;
5825}
5826
5827// This prototype is deprecated.
5828static inline __ATTRS_o_ai int
5829vec_any_le(__vector __bool int __a, __vector signed int __b) {
5830 int __cc;
5831 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5832 return __cc != 0;
5833}
5834
5835static inline __ATTRS_o_ai int
5836vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
5837 int __cc;
5838 __builtin_s390_vchlfs(__a, __b, &__cc);
5839 return __cc != 0;
5840}
5841
5842// This prototype is deprecated.
5843static inline __ATTRS_o_ai int
5844vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
5845 int __cc;
5846 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5847 return __cc != 0;
5848}
5849
5850// This prototype is deprecated.
5851static inline __ATTRS_o_ai int
5852vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
5853 int __cc;
5854 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5855 return __cc != 0;
5856}
5857
5858// This prototype is deprecated.
5859static inline __ATTRS_o_ai int
5860vec_any_le(__vector __bool int __a, __vector __bool int __b) {
5861 int __cc;
5862 __builtin_s390_vchlfs((__vector unsigned int)__a,
5863 (__vector unsigned int)__b, &__cc);
5864 return __cc != 0;
5865}
5866
5867static inline __ATTRS_o_ai int
5868vec_any_le(__vector signed long long __a, __vector signed long long __b) {
5869 int __cc;
5870 __builtin_s390_vchgs(__a, __b, &__cc);
5871 return __cc != 0;
5872}
5873
5874// This prototype is deprecated.
5875static inline __ATTRS_o_ai int
5876vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
5877 int __cc;
5878 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5879 return __cc != 0;
5880}
5881
5882// This prototype is deprecated.
5883static inline __ATTRS_o_ai int
5884vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
5885 int __cc;
5886 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5887 return __cc != 0;
5888}
5889
5890static inline __ATTRS_o_ai int
5891vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
5892 int __cc;
5893 __builtin_s390_vchlgs(__a, __b, &__cc);
5894 return __cc != 0;
5895}
5896
5897// This prototype is deprecated.
5898static inline __ATTRS_o_ai int
5899vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
5900 int __cc;
5901 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5902 return __cc != 0;
5903}
5904
5905// This prototype is deprecated.
5906static inline __ATTRS_o_ai int
5907vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
5908 int __cc;
5909 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5910 return __cc != 0;
5911}
5912
5913// This prototype is deprecated.
5914static inline __ATTRS_o_ai int
5915vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
5916 int __cc;
5917 __builtin_s390_vchlgs((__vector unsigned long long)__a,
5918 (__vector unsigned long long)__b, &__cc);
5919 return __cc != 0;
5920}
5921
5922#if __ARCH__ >= 15
5923static inline __ATTRS_o_ai int
5924vec_any_le(__vector signed __int128 __a, __vector signed __int128 __b) {
5925 int __cc;
5926 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
5927 return __cc != 0;
5928}
5929
5930static inline __ATTRS_o_ai int
5931vec_any_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5932 int __cc;
5933 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5934 return __cc != 0;
5935}
5936#endif
5937
5938#if __ARCH__ >= 12
5939static inline __ATTRS_o_ai int
5940vec_any_le(__vector float __a, __vector float __b) {
5941 int __cc;
5942 __builtin_s390_vfchesbs(__b, __a, &__cc);
5943 return __cc <= 1;
5944}
5945#endif
5946
5947static inline __ATTRS_o_ai int
5948vec_any_le(__vector double __a, __vector double __b) {
5949 int __cc;
5950 __builtin_s390_vfchedbs(__b, __a, &__cc);
5951 return __cc <= 1;
5952}
5953
5954/*-- vec_any_lt -------------------------------------------------------------*/
5955
5956static inline __ATTRS_o_ai int
5957vec_any_lt(__vector signed char __a, __vector signed char __b) {
5958 int __cc;
5959 __builtin_s390_vchbs(__b, __a, &__cc);
5960 return __cc <= 1;
5961}
5962
5963// This prototype is deprecated.
5964static inline __ATTRS_o_ai int
5965vec_any_lt(__vector signed char __a, __vector __bool char __b) {
5966 int __cc;
5967 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5968 return __cc <= 1;
5969}
5970
5971// This prototype is deprecated.
5972static inline __ATTRS_o_ai int
5973vec_any_lt(__vector __bool char __a, __vector signed char __b) {
5974 int __cc;
5975 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5976 return __cc <= 1;
5977}
5978
5979static inline __ATTRS_o_ai int
5980vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
5981 int __cc;
5982 __builtin_s390_vchlbs(__b, __a, &__cc);
5983 return __cc <= 1;
5984}
5985
5986// This prototype is deprecated.
5987static inline __ATTRS_o_ai int
5988vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
5989 int __cc;
5990 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5991 return __cc <= 1;
5992}
5993
5994// This prototype is deprecated.
5995static inline __ATTRS_o_ai int
5996vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
5997 int __cc;
5998 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5999 return __cc <= 1;
6000}
6001
6002// This prototype is deprecated.
6003static inline __ATTRS_o_ai int
6004vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
6005 int __cc;
6006 __builtin_s390_vchlbs((__vector unsigned char)__b,
6007 (__vector unsigned char)__a, &__cc);
6008 return __cc <= 1;
6009}
6010
6011static inline __ATTRS_o_ai int
6012vec_any_lt(__vector signed short __a, __vector signed short __b) {
6013 int __cc;
6014 __builtin_s390_vchhs(__b, __a, &__cc);
6015 return __cc <= 1;
6016}
6017
6018// This prototype is deprecated.
6019static inline __ATTRS_o_ai int
6020vec_any_lt(__vector signed short __a, __vector __bool short __b) {
6021 int __cc;
6022 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
6023 return __cc <= 1;
6024}
6025
6026// This prototype is deprecated.
6027static inline __ATTRS_o_ai int
6028vec_any_lt(__vector __bool short __a, __vector signed short __b) {
6029 int __cc;
6030 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
6031 return __cc <= 1;
6032}
6033
6034static inline __ATTRS_o_ai int
6035vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
6036 int __cc;
6037 __builtin_s390_vchlhs(__b, __a, &__cc);
6038 return __cc <= 1;
6039}
6040
6041// This prototype is deprecated.
6042static inline __ATTRS_o_ai int
6043vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
6044 int __cc;
6045 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
6046 return __cc <= 1;
6047}
6048
6049// This prototype is deprecated.
6050static inline __ATTRS_o_ai int
6051vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
6052 int __cc;
6053 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
6054 return __cc <= 1;
6055}
6056
6057// This prototype is deprecated.
6058static inline __ATTRS_o_ai int
6059vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
6060 int __cc;
6061 __builtin_s390_vchlhs((__vector unsigned short)__b,
6062 (__vector unsigned short)__a, &__cc);
6063 return __cc <= 1;
6064}
6065
6066static inline __ATTRS_o_ai int
6067vec_any_lt(__vector signed int __a, __vector signed int __b) {
6068 int __cc;
6069 __builtin_s390_vchfs(__b, __a, &__cc);
6070 return __cc <= 1;
6071}
6072
6073// This prototype is deprecated.
6074static inline __ATTRS_o_ai int
6075vec_any_lt(__vector signed int __a, __vector __bool int __b) {
6076 int __cc;
6077 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
6078 return __cc <= 1;
6079}
6080
6081// This prototype is deprecated.
6082static inline __ATTRS_o_ai int
6083vec_any_lt(__vector __bool int __a, __vector signed int __b) {
6084 int __cc;
6085 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
6086 return __cc <= 1;
6087}
6088
6089static inline __ATTRS_o_ai int
6090vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
6091 int __cc;
6092 __builtin_s390_vchlfs(__b, __a, &__cc);
6093 return __cc <= 1;
6094}
6095
6096// This prototype is deprecated.
6097static inline __ATTRS_o_ai int
6098vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
6099 int __cc;
6100 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
6101 return __cc <= 1;
6102}
6103
6104// This prototype is deprecated.
6105static inline __ATTRS_o_ai int
6106vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
6107 int __cc;
6108 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
6109 return __cc <= 1;
6110}
6111
6112// This prototype is deprecated.
6113static inline __ATTRS_o_ai int
6114vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
6115 int __cc;
6116 __builtin_s390_vchlfs((__vector unsigned int)__b,
6117 (__vector unsigned int)__a, &__cc);
6118 return __cc <= 1;
6119}
6120
6121static inline __ATTRS_o_ai int
6122vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
6123 int __cc;
6124 __builtin_s390_vchgs(__b, __a, &__cc);
6125 return __cc <= 1;
6126}
6127
6128// This prototype is deprecated.
6129static inline __ATTRS_o_ai int
6130vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
6131 int __cc;
6132 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
6133 return __cc <= 1;
6134}
6135
6136// This prototype is deprecated.
6137static inline __ATTRS_o_ai int
6138vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
6139 int __cc;
6140 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
6141 return __cc <= 1;
6142}
6143
6144static inline __ATTRS_o_ai int
6145vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
6146 int __cc;
6147 __builtin_s390_vchlgs(__b, __a, &__cc);
6148 return __cc <= 1;
6149}
6150
6151// This prototype is deprecated.
6152static inline __ATTRS_o_ai int
6153vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
6154 int __cc;
6155 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
6156 return __cc <= 1;
6157}
6158
6159// This prototype is deprecated.
6160static inline __ATTRS_o_ai int
6161vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
6162 int __cc;
6163 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
6164 return __cc <= 1;
6165}
6166
6167// This prototype is deprecated.
6168static inline __ATTRS_o_ai int
6169vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
6170 int __cc;
6171 __builtin_s390_vchlgs((__vector unsigned long long)__b,
6172 (__vector unsigned long long)__a, &__cc);
6173 return __cc <= 1;
6174}
6175
6176#if __ARCH__ >= 15
6177static inline __ATTRS_o_ai int
6178vec_any_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
6179 int __cc;
6180 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
6181 return __cc <= 1;
6182}
6183
6184static inline __ATTRS_o_ai int
6185vec_any_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6186 int __cc;
6187 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
6188 return __cc <= 1;
6189}
6190#endif
6191
6192#if __ARCH__ >= 12
6193static inline __ATTRS_o_ai int
6194vec_any_lt(__vector float __a, __vector float __b) {
6195 int __cc;
6196 __builtin_s390_vfchsbs(__b, __a, &__cc);
6197 return __cc <= 1;
6198}
6199#endif
6200
6201static inline __ATTRS_o_ai int
6202vec_any_lt(__vector double __a, __vector double __b) {
6203 int __cc;
6204 __builtin_s390_vfchdbs(__b, __a, &__cc);
6205 return __cc <= 1;
6206}
6207
6208/*-- vec_any_nge ------------------------------------------------------------*/
6209
6210#if __ARCH__ >= 12
6211static inline __ATTRS_o_ai int
6212vec_any_nge(__vector float __a, __vector float __b) {
6213 int __cc;
6214 __builtin_s390_vfchesbs(__a, __b, &__cc);
6215 return __cc != 0;
6216}
6217#endif
6218
6219static inline __ATTRS_o_ai int
6220vec_any_nge(__vector double __a, __vector double __b) {
6221 int __cc;
6222 __builtin_s390_vfchedbs(__a, __b, &__cc);
6223 return __cc != 0;
6224}
6225
6226/*-- vec_any_ngt ------------------------------------------------------------*/
6227
6228#if __ARCH__ >= 12
6229static inline __ATTRS_o_ai int
6230vec_any_ngt(__vector float __a, __vector float __b) {
6231 int __cc;
6232 __builtin_s390_vfchsbs(__a, __b, &__cc);
6233 return __cc != 0;
6234}
6235#endif
6236
6237static inline __ATTRS_o_ai int
6238vec_any_ngt(__vector double __a, __vector double __b) {
6239 int __cc;
6240 __builtin_s390_vfchdbs(__a, __b, &__cc);
6241 return __cc != 0;
6242}
6243
6244/*-- vec_any_nle ------------------------------------------------------------*/
6245
6246#if __ARCH__ >= 12
6247static inline __ATTRS_o_ai int
6248vec_any_nle(__vector float __a, __vector float __b) {
6249 int __cc;
6250 __builtin_s390_vfchesbs(__b, __a, &__cc);
6251 return __cc != 0;
6252}
6253#endif
6254
6255static inline __ATTRS_o_ai int
6256vec_any_nle(__vector double __a, __vector double __b) {
6257 int __cc;
6258 __builtin_s390_vfchedbs(__b, __a, &__cc);
6259 return __cc != 0;
6260}
6261
6262/*-- vec_any_nlt ------------------------------------------------------------*/
6263
6264#if __ARCH__ >= 12
6265static inline __ATTRS_o_ai int
6266vec_any_nlt(__vector float __a, __vector float __b) {
6267 int __cc;
6268 __builtin_s390_vfchsbs(__b, __a, &__cc);
6269 return __cc != 0;
6270}
6271#endif
6272
6273static inline __ATTRS_o_ai int
6274vec_any_nlt(__vector double __a, __vector double __b) {
6275 int __cc;
6276 __builtin_s390_vfchdbs(__b, __a, &__cc);
6277 return __cc != 0;
6278}
6279
6280/*-- vec_any_nan ------------------------------------------------------------*/
6281
6282#if __ARCH__ >= 12
6283static inline __ATTRS_o_ai int
6284vec_any_nan(__vector float __a) {
6285 int __cc;
6286 __builtin_s390_vftcisb(__a, 15, &__cc);
6287 return __cc != 3;
6288}
6289#endif
6290
6291static inline __ATTRS_o_ai int
6292vec_any_nan(__vector double __a) {
6293 int __cc;
6294 __builtin_s390_vftcidb(__a, 15, &__cc);
6295 return __cc != 3;
6296}
6297
6298/*-- vec_any_numeric --------------------------------------------------------*/
6299
6300#if __ARCH__ >= 12
6301static inline __ATTRS_o_ai int
6302vec_any_numeric(__vector float __a) {
6303 int __cc;
6304 __builtin_s390_vftcisb(__a, 15, &__cc);
6305 return __cc != 0;
6306}
6307#endif
6308
6309static inline __ATTRS_o_ai int
6310vec_any_numeric(__vector double __a) {
6311 int __cc;
6312 __builtin_s390_vftcidb(__a, 15, &__cc);
6313 return __cc != 0;
6314}
6315
6316/*-- vec_blend --------------------------------------------------------------*/
6317
6318#if __ARCH__ >= 15
6319static inline __ATTRS_o_ai __vector signed char
6320vec_blend(__vector signed char __a, __vector signed char __b,
6321 __vector signed char __c) {
6322 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6323}
6324
6325static inline __ATTRS_o_ai __vector __bool char
6326vec_blend(__vector __bool char __a, __vector __bool char __b,
6327 __vector signed char __c) {
6328 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6329}
6330
6331static inline __ATTRS_o_ai __vector unsigned char
6332vec_blend(__vector unsigned char __a, __vector unsigned char __b,
6333 __vector signed char __c) {
6334 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6335}
6336
6337static inline __ATTRS_o_ai __vector signed short
6338vec_blend(__vector signed short __a, __vector signed short __b,
6339 __vector signed short __c) {
6340 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6341}
6342
6343static inline __ATTRS_o_ai __vector __bool short
6344vec_blend(__vector __bool short __a, __vector __bool short __b,
6345 __vector signed short __c) {
6346 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6347}
6348
6349static inline __ATTRS_o_ai __vector unsigned short
6350vec_blend(__vector unsigned short __a, __vector unsigned short __b,
6351 __vector signed short __c) {
6352 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6353}
6354
6355static inline __ATTRS_o_ai __vector signed int
6356vec_blend(__vector signed int __a, __vector signed int __b,
6357 __vector signed int __c) {
6358 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6359}
6360
6361static inline __ATTRS_o_ai __vector __bool int
6362vec_blend(__vector __bool int __a, __vector __bool int __b,
6363 __vector signed int __c) {
6364 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6365}
6366
6367static inline __ATTRS_o_ai __vector unsigned int
6368vec_blend(__vector unsigned int __a, __vector unsigned int __b,
6369 __vector signed int __c) {
6370 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6371}
6372
6373static inline __ATTRS_o_ai __vector signed long long
6374vec_blend(__vector signed long long __a, __vector signed long long __b,
6375 __vector signed long long __c) {
6376 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6377}
6378
6379static inline __ATTRS_o_ai __vector __bool long long
6380vec_blend(__vector __bool long long __a, __vector __bool long long __b,
6381 __vector signed long long __c) {
6382 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6383}
6384
6385static inline __ATTRS_o_ai __vector unsigned long long
6386vec_blend(__vector unsigned long long __a, __vector unsigned long long __b,
6387 __vector signed long long __c) {
6388 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6389}
6390
6391static inline __ATTRS_o_ai __vector signed __int128
6392vec_blend(__vector signed __int128 __a, __vector signed __int128 __b,
6393 __vector signed __int128 __c) {
6394 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6395}
6396
6397static inline __ATTRS_o_ai __vector __bool __int128
6398vec_blend(__vector __bool __int128 __a, __vector __bool __int128 __b,
6399 __vector signed __int128 __c) {
6400 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6401}
6402
6403static inline __ATTRS_o_ai __vector unsigned __int128
6404vec_blend(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
6405 __vector signed __int128 __c) {
6406 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6407}
6408
6409static inline __ATTRS_o_ai __vector float
6410vec_blend(__vector float __a, __vector float __b,
6411 __vector signed int __c) {
6412 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6413}
6414
6415static inline __ATTRS_o_ai __vector double
6416vec_blend(__vector double __a, __vector double __b,
6417 __vector signed long long __c) {
6418 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6419}
6420#endif
6421
6422/*-- vec_and ---------------------------------------------------------------*/
6423
6424static inline __ATTRS_o_ai __vector __bool char
6425vec_and(__vector __bool char __a, __vector __bool char __b) {
6426 return __a & __b;
6427}
6428
6429static inline __ATTRS_o_ai __vector signed char
6430vec_and(__vector signed char __a, __vector signed char __b) {
6431 return __a & __b;
6432}
6433
6434static inline __ATTRS_o_ai __vector unsigned char
6435vec_and(__vector unsigned char __a, __vector unsigned char __b) {
6436 return __a & __b;
6437}
6438
6439static inline __ATTRS_o_ai __vector __bool short
6440vec_and(__vector __bool short __a, __vector __bool short __b) {
6441 return __a & __b;
6442}
6443
6444static inline __ATTRS_o_ai __vector signed short
6445vec_and(__vector signed short __a, __vector signed short __b) {
6446 return __a & __b;
6447}
6448
6449static inline __ATTRS_o_ai __vector unsigned short
6450vec_and(__vector unsigned short __a, __vector unsigned short __b) {
6451 return __a & __b;
6452}
6453
6454static inline __ATTRS_o_ai __vector __bool int
6455vec_and(__vector __bool int __a, __vector __bool int __b) {
6456 return __a & __b;
6457}
6458
6459static inline __ATTRS_o_ai __vector signed int
6460vec_and(__vector signed int __a, __vector signed int __b) {
6461 return __a & __b;
6462}
6463
6464static inline __ATTRS_o_ai __vector unsigned int
6465vec_and(__vector unsigned int __a, __vector unsigned int __b) {
6466 return __a & __b;
6467}
6468
6469static inline __ATTRS_o_ai __vector __bool long long
6470vec_and(__vector __bool long long __a, __vector __bool long long __b) {
6471 return __a & __b;
6472}
6473
6474static inline __ATTRS_o_ai __vector signed long long
6475vec_and(__vector signed long long __a, __vector signed long long __b) {
6476 return __a & __b;
6477}
6478
6479static inline __ATTRS_o_ai __vector unsigned long long
6480vec_and(__vector unsigned long long __a, __vector unsigned long long __b) {
6481 return __a & __b;
6482}
6483
6484static inline __ATTRS_o_ai __vector __bool __int128
6485vec_and(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6486 return __a & __b;
6487}
6488
6489static inline __ATTRS_o_ai __vector signed __int128
6490vec_and(__vector signed __int128 __a, __vector signed __int128 __b) {
6491 return __a & __b;
6492}
6493
6494static inline __ATTRS_o_ai __vector unsigned __int128
6495vec_and(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6496 return __a & __b;
6497}
6498
6499#if __ARCH__ >= 12
6500static inline __ATTRS_o_ai __vector float
6501vec_and(__vector float __a, __vector float __b) {
6502 return (__vector float)((__vector unsigned int)__a &
6503 (__vector unsigned int)__b);
6504}
6505#endif
6506
6507static inline __ATTRS_o_ai __vector double
6508vec_and(__vector double __a, __vector double __b) {
6509 return (__vector double)((__vector unsigned long long)__a &
6510 (__vector unsigned long long)__b);
6511}
6512
6513/*-- vec_or ----------------------------------------------------------------*/
6514
6515static inline __ATTRS_o_ai __vector __bool char
6516vec_or(__vector __bool char __a, __vector __bool char __b) {
6517 return __a | __b;
6518}
6519
6520static inline __ATTRS_o_ai __vector signed char
6521vec_or(__vector signed char __a, __vector signed char __b) {
6522 return __a | __b;
6523}
6524
6525static inline __ATTRS_o_ai __vector unsigned char
6526vec_or(__vector unsigned char __a, __vector unsigned char __b) {
6527 return __a | __b;
6528}
6529
6530static inline __ATTRS_o_ai __vector __bool short
6531vec_or(__vector __bool short __a, __vector __bool short __b) {
6532 return __a | __b;
6533}
6534
6535static inline __ATTRS_o_ai __vector signed short
6536vec_or(__vector signed short __a, __vector signed short __b) {
6537 return __a | __b;
6538}
6539
6540static inline __ATTRS_o_ai __vector unsigned short
6541vec_or(__vector unsigned short __a, __vector unsigned short __b) {
6542 return __a | __b;
6543}
6544
6545static inline __ATTRS_o_ai __vector __bool int
6546vec_or(__vector __bool int __a, __vector __bool int __b) {
6547 return __a | __b;
6548}
6549
6550static inline __ATTRS_o_ai __vector signed int
6551vec_or(__vector signed int __a, __vector signed int __b) {
6552 return __a | __b;
6553}
6554
6555static inline __ATTRS_o_ai __vector unsigned int
6556vec_or(__vector unsigned int __a, __vector unsigned int __b) {
6557 return __a | __b;
6558}
6559
6560static inline __ATTRS_o_ai __vector __bool long long
6561vec_or(__vector __bool long long __a, __vector __bool long long __b) {
6562 return __a | __b;
6563}
6564
6565static inline __ATTRS_o_ai __vector signed long long
6566vec_or(__vector signed long long __a, __vector signed long long __b) {
6567 return __a | __b;
6568}
6569
6570static inline __ATTRS_o_ai __vector unsigned long long
6571vec_or(__vector unsigned long long __a, __vector unsigned long long __b) {
6572 return __a | __b;
6573}
6574
6575static inline __ATTRS_o_ai __vector __bool __int128
6576vec_or(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6577 return __a | __b;
6578}
6579
6580static inline __ATTRS_o_ai __vector signed __int128
6581vec_or(__vector signed __int128 __a, __vector signed __int128 __b) {
6582 return __a | __b;
6583}
6584
6585static inline __ATTRS_o_ai __vector unsigned __int128
6586vec_or(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6587 return __a | __b;
6588}
6589
6590#if __ARCH__ >= 12
6591static inline __ATTRS_o_ai __vector float
6592vec_or(__vector float __a, __vector float __b) {
6593 return (__vector float)((__vector unsigned int)__a |
6594 (__vector unsigned int)__b);
6595}
6596#endif
6597
6598static inline __ATTRS_o_ai __vector double
6599vec_or(__vector double __a, __vector double __b) {
6600 return (__vector double)((__vector unsigned long long)__a |
6601 (__vector unsigned long long)__b);
6602}
6603
6604/*-- vec_xor ----------------------------------------------------------------*/
6605
6606static inline __ATTRS_o_ai __vector __bool char
6607vec_xor(__vector __bool char __a, __vector __bool char __b) {
6608 return __a ^ __b;
6609}
6610
6611static inline __ATTRS_o_ai __vector signed char
6612vec_xor(__vector signed char __a, __vector signed char __b) {
6613 return __a ^ __b;
6614}
6615
6616static inline __ATTRS_o_ai __vector unsigned char
6617vec_xor(__vector unsigned char __a, __vector unsigned char __b) {
6618 return __a ^ __b;
6619}
6620
6621static inline __ATTRS_o_ai __vector __bool short
6622vec_xor(__vector __bool short __a, __vector __bool short __b) {
6623 return __a ^ __b;
6624}
6625
6626static inline __ATTRS_o_ai __vector signed short
6627vec_xor(__vector signed short __a, __vector signed short __b) {
6628 return __a ^ __b;
6629}
6630
6631static inline __ATTRS_o_ai __vector unsigned short
6632vec_xor(__vector unsigned short __a, __vector unsigned short __b) {
6633 return __a ^ __b;
6634}
6635
6636static inline __ATTRS_o_ai __vector __bool int
6637vec_xor(__vector __bool int __a, __vector __bool int __b) {
6638 return __a ^ __b;
6639}
6640
6641static inline __ATTRS_o_ai __vector signed int
6642vec_xor(__vector signed int __a, __vector signed int __b) {
6643 return __a ^ __b;
6644}
6645
6646static inline __ATTRS_o_ai __vector unsigned int
6647vec_xor(__vector unsigned int __a, __vector unsigned int __b) {
6648 return __a ^ __b;
6649}
6650
6651static inline __ATTRS_o_ai __vector __bool long long
6652vec_xor(__vector __bool long long __a, __vector __bool long long __b) {
6653 return __a ^ __b;
6654}
6655
6656static inline __ATTRS_o_ai __vector signed long long
6657vec_xor(__vector signed long long __a, __vector signed long long __b) {
6658 return __a ^ __b;
6659}
6660
6661static inline __ATTRS_o_ai __vector unsigned long long
6662vec_xor(__vector unsigned long long __a, __vector unsigned long long __b) {
6663 return __a ^ __b;
6664}
6665
6666static inline __ATTRS_o_ai __vector __bool __int128
6667vec_xor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6668 return __a ^ __b;
6669}
6670
6671static inline __ATTRS_o_ai __vector signed __int128
6672vec_xor(__vector signed __int128 __a, __vector signed __int128 __b) {
6673 return __a ^ __b;
6674}
6675
6676static inline __ATTRS_o_ai __vector unsigned __int128
6677vec_xor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6678 return __a ^ __b;
6679}
6680
6681#if __ARCH__ >= 12
6682static inline __ATTRS_o_ai __vector float
6683vec_xor(__vector float __a, __vector float __b) {
6684 return (__vector float)((__vector unsigned int)__a ^
6685 (__vector unsigned int)__b);
6686}
6687#endif
6688
6689static inline __ATTRS_o_ai __vector double
6690vec_xor(__vector double __a, __vector double __b) {
6691 return (__vector double)((__vector unsigned long long)__a ^
6692 (__vector unsigned long long)__b);
6693}
6694
6695/*-- vec_andc ---------------------------------------------------------------*/
6696
6697static inline __ATTRS_o_ai __vector __bool char
6698vec_andc(__vector __bool char __a, __vector __bool char __b) {
6699 return __a & ~__b;
6700}
6701
6702static inline __ATTRS_o_ai __vector signed char
6703vec_andc(__vector signed char __a, __vector signed char __b) {
6704 return __a & ~__b;
6705}
6706
6707// This prototype is deprecated.
6708static inline __ATTRS_o_ai __vector signed char
6709vec_andc(__vector __bool char __a, __vector signed char __b) {
6710 return __a & ~__b;
6711}
6712
6713// This prototype is deprecated.
6714static inline __ATTRS_o_ai __vector signed char
6715vec_andc(__vector signed char __a, __vector __bool char __b) {
6716 return __a & ~__b;
6717}
6718
6719static inline __ATTRS_o_ai __vector unsigned char
6720vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
6721 return __a & ~__b;
6722}
6723
6724// This prototype is deprecated.
6725static inline __ATTRS_o_ai __vector unsigned char
6726vec_andc(__vector __bool char __a, __vector unsigned char __b) {
6727 return __a & ~__b;
6728}
6729
6730// This prototype is deprecated.
6731static inline __ATTRS_o_ai __vector unsigned char
6732vec_andc(__vector unsigned char __a, __vector __bool char __b) {
6733 return __a & ~__b;
6734}
6735
6736static inline __ATTRS_o_ai __vector __bool short
6737vec_andc(__vector __bool short __a, __vector __bool short __b) {
6738 return __a & ~__b;
6739}
6740
6741static inline __ATTRS_o_ai __vector signed short
6742vec_andc(__vector signed short __a, __vector signed short __b) {
6743 return __a & ~__b;
6744}
6745
6746// This prototype is deprecated.
6747static inline __ATTRS_o_ai __vector signed short
6748vec_andc(__vector __bool short __a, __vector signed short __b) {
6749 return __a & ~__b;
6750}
6751
6752// This prototype is deprecated.
6753static inline __ATTRS_o_ai __vector signed short
6754vec_andc(__vector signed short __a, __vector __bool short __b) {
6755 return __a & ~__b;
6756}
6757
6758static inline __ATTRS_o_ai __vector unsigned short
6759vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
6760 return __a & ~__b;
6761}
6762
6763// This prototype is deprecated.
6764static inline __ATTRS_o_ai __vector unsigned short
6765vec_andc(__vector __bool short __a, __vector unsigned short __b) {
6766 return __a & ~__b;
6767}
6768
6769// This prototype is deprecated.
6770static inline __ATTRS_o_ai __vector unsigned short
6771vec_andc(__vector unsigned short __a, __vector __bool short __b) {
6772 return __a & ~__b;
6773}
6774
6775static inline __ATTRS_o_ai __vector __bool int
6776vec_andc(__vector __bool int __a, __vector __bool int __b) {
6777 return __a & ~__b;
6778}
6779
6780static inline __ATTRS_o_ai __vector signed int
6781vec_andc(__vector signed int __a, __vector signed int __b) {
6782 return __a & ~__b;
6783}
6784
6785// This prototype is deprecated.
6786static inline __ATTRS_o_ai __vector signed int
6787vec_andc(__vector __bool int __a, __vector signed int __b) {
6788 return __a & ~__b;
6789}
6790
6791// This prototype is deprecated.
6792static inline __ATTRS_o_ai __vector signed int
6793vec_andc(__vector signed int __a, __vector __bool int __b) {
6794 return __a & ~__b;
6795}
6796
6797static inline __ATTRS_o_ai __vector unsigned int
6798vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
6799 return __a & ~__b;
6800}
6801
6802// This prototype is deprecated.
6803static inline __ATTRS_o_ai __vector unsigned int
6804vec_andc(__vector __bool int __a, __vector unsigned int __b) {
6805 return __a & ~__b;
6806}
6807
6808// This prototype is deprecated.
6809static inline __ATTRS_o_ai __vector unsigned int
6810vec_andc(__vector unsigned int __a, __vector __bool int __b) {
6811 return __a & ~__b;
6812}
6813
6814static inline __ATTRS_o_ai __vector __bool long long
6815vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
6816 return __a & ~__b;
6817}
6818
6819static inline __ATTRS_o_ai __vector signed long long
6820vec_andc(__vector signed long long __a, __vector signed long long __b) {
6821 return __a & ~__b;
6822}
6823
6824// This prototype is deprecated.
6825static inline __ATTRS_o_ai __vector signed long long
6826vec_andc(__vector __bool long long __a, __vector signed long long __b) {
6827 return __a & ~__b;
6828}
6829
6830// This prototype is deprecated.
6831static inline __ATTRS_o_ai __vector signed long long
6832vec_andc(__vector signed long long __a, __vector __bool long long __b) {
6833 return __a & ~__b;
6834}
6835
6836static inline __ATTRS_o_ai __vector unsigned long long
6837vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
6838 return __a & ~__b;
6839}
6840
6841// This prototype is deprecated.
6842static inline __ATTRS_o_ai __vector unsigned long long
6843vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
6844 return __a & ~__b;
6845}
6846
6847// This prototype is deprecated.
6848static inline __ATTRS_o_ai __vector unsigned long long
6849vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
6850 return __a & ~__b;
6851}
6852
6853static inline __ATTRS_o_ai __vector __bool __int128
6854vec_andc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6855 return __a & ~__b;
6856}
6857
6858static inline __ATTRS_o_ai __vector signed __int128
6859vec_andc(__vector signed __int128 __a, __vector signed __int128 __b) {
6860 return __a & ~__b;
6861}
6862
6863static inline __ATTRS_o_ai __vector unsigned __int128
6864vec_andc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6865 return __a & ~__b;
6866}
6867
6868#if __ARCH__ >= 12
6869static inline __ATTRS_o_ai __vector float
6870vec_andc(__vector float __a, __vector float __b) {
6871 return (__vector float)((__vector unsigned int)__a &
6872 ~(__vector unsigned int)__b);
6873}
6874#endif
6875
6876static inline __ATTRS_o_ai __vector double
6877vec_andc(__vector double __a, __vector double __b) {
6878 return (__vector double)((__vector unsigned long long)__a &
6879 ~(__vector unsigned long long)__b);
6880}
6881
6882// This prototype is deprecated.
6883static inline __ATTRS_o_ai __vector double
6884vec_andc(__vector __bool long long __a, __vector double __b) {
6885 return (__vector double)((__vector unsigned long long)__a &
6886 ~(__vector unsigned long long)__b);
6887}
6888
6889// This prototype is deprecated.
6890static inline __ATTRS_o_ai __vector double
6891vec_andc(__vector double __a, __vector __bool long long __b) {
6892 return (__vector double)((__vector unsigned long long)__a &
6893 ~(__vector unsigned long long)__b);
6894}
6895
6896/*-- vec_nor ----------------------------------------------------------------*/
6897
6898static inline __ATTRS_o_ai __vector __bool char
6899vec_nor(__vector __bool char __a, __vector __bool char __b) {
6900 return ~(__a | __b);
6901}
6902
6903static inline __ATTRS_o_ai __vector signed char
6904vec_nor(__vector signed char __a, __vector signed char __b) {
6905 return ~(__a | __b);
6906}
6907
6908// This prototype is deprecated.
6909static inline __ATTRS_o_ai __vector signed char
6910vec_nor(__vector __bool char __a, __vector signed char __b) {
6911 return ~(__a | __b);
6912}
6913
6914// This prototype is deprecated.
6915static inline __ATTRS_o_ai __vector signed char
6916vec_nor(__vector signed char __a, __vector __bool char __b) {
6917 return ~(__a | __b);
6918}
6919
6920static inline __ATTRS_o_ai __vector unsigned char
6921vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
6922 return ~(__a | __b);
6923}
6924
6925// This prototype is deprecated.
6926static inline __ATTRS_o_ai __vector unsigned char
6927vec_nor(__vector __bool char __a, __vector unsigned char __b) {
6928 return ~(__a | __b);
6929}
6930
6931// This prototype is deprecated.
6932static inline __ATTRS_o_ai __vector unsigned char
6933vec_nor(__vector unsigned char __a, __vector __bool char __b) {
6934 return ~(__a | __b);
6935}
6936
6937static inline __ATTRS_o_ai __vector __bool short
6938vec_nor(__vector __bool short __a, __vector __bool short __b) {
6939 return ~(__a | __b);
6940}
6941
6942static inline __ATTRS_o_ai __vector signed short
6943vec_nor(__vector signed short __a, __vector signed short __b) {
6944 return ~(__a | __b);
6945}
6946
6947// This prototype is deprecated.
6948static inline __ATTRS_o_ai __vector signed short
6949vec_nor(__vector __bool short __a, __vector signed short __b) {
6950 return ~(__a | __b);
6951}
6952
6953// This prototype is deprecated.
6954static inline __ATTRS_o_ai __vector signed short
6955vec_nor(__vector signed short __a, __vector __bool short __b) {
6956 return ~(__a | __b);
6957}
6958
6959static inline __ATTRS_o_ai __vector unsigned short
6960vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
6961 return ~(__a | __b);
6962}
6963
6964// This prototype is deprecated.
6965static inline __ATTRS_o_ai __vector unsigned short
6966vec_nor(__vector __bool short __a, __vector unsigned short __b) {
6967 return ~(__a | __b);
6968}
6969
6970// This prototype is deprecated.
6971static inline __ATTRS_o_ai __vector unsigned short
6972vec_nor(__vector unsigned short __a, __vector __bool short __b) {
6973 return ~(__a | __b);
6974}
6975
6976static inline __ATTRS_o_ai __vector __bool int
6977vec_nor(__vector __bool int __a, __vector __bool int __b) {
6978 return ~(__a | __b);
6979}
6980
6981static inline __ATTRS_o_ai __vector signed int
6982vec_nor(__vector signed int __a, __vector signed int __b) {
6983 return ~(__a | __b);
6984}
6985
6986// This prototype is deprecated.
6987static inline __ATTRS_o_ai __vector signed int
6988vec_nor(__vector __bool int __a, __vector signed int __b) {
6989 return ~(__a | __b);
6990}
6991
6992// This prototype is deprecated.
6993static inline __ATTRS_o_ai __vector signed int
6994vec_nor(__vector signed int __a, __vector __bool int __b) {
6995 return ~(__a | __b);
6996}
6997
6998static inline __ATTRS_o_ai __vector unsigned int
6999vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
7000 return ~(__a | __b);
7001}
7002
7003// This prototype is deprecated.
7004static inline __ATTRS_o_ai __vector unsigned int
7005vec_nor(__vector __bool int __a, __vector unsigned int __b) {
7006 return ~(__a | __b);
7007}
7008
7009// This prototype is deprecated.
7010static inline __ATTRS_o_ai __vector unsigned int
7011vec_nor(__vector unsigned int __a, __vector __bool int __b) {
7012 return ~(__a | __b);
7013}
7014
7015static inline __ATTRS_o_ai __vector __bool long long
7016vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
7017 return ~(__a | __b);
7018}
7019
7020static inline __ATTRS_o_ai __vector signed long long
7021vec_nor(__vector signed long long __a, __vector signed long long __b) {
7022 return ~(__a | __b);
7023}
7024
7025// This prototype is deprecated.
7026static inline __ATTRS_o_ai __vector signed long long
7027vec_nor(__vector __bool long long __a, __vector signed long long __b) {
7028 return ~(__a | __b);
7029}
7030
7031// This prototype is deprecated.
7032static inline __ATTRS_o_ai __vector signed long long
7033vec_nor(__vector signed long long __a, __vector __bool long long __b) {
7034 return ~(__a | __b);
7035}
7036
7037static inline __ATTRS_o_ai __vector unsigned long long
7038vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
7039 return ~(__a | __b);
7040}
7041
7042// This prototype is deprecated.
7043static inline __ATTRS_o_ai __vector unsigned long long
7044vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
7045 return ~(__a | __b);
7046}
7047
7048// This prototype is deprecated.
7049static inline __ATTRS_o_ai __vector unsigned long long
7050vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
7051 return ~(__a | __b);
7052}
7053
7054static inline __ATTRS_o_ai __vector __bool __int128
7055vec_nor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7056 return ~(__a | __b);
7057}
7058
7059static inline __ATTRS_o_ai __vector signed __int128
7060vec_nor(__vector signed __int128 __a, __vector signed __int128 __b) {
7061 return ~(__a | __b);
7062}
7063
7064static inline __ATTRS_o_ai __vector unsigned __int128
7065vec_nor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7066 return ~(__a | __b);
7067}
7068
7069#if __ARCH__ >= 12
7070static inline __ATTRS_o_ai __vector float
7071vec_nor(__vector float __a, __vector float __b) {
7072 return (__vector float)~((__vector unsigned int)__a |
7073 (__vector unsigned int)__b);
7074}
7075#endif
7076
7077static inline __ATTRS_o_ai __vector double
7078vec_nor(__vector double __a, __vector double __b) {
7079 return (__vector double)~((__vector unsigned long long)__a |
7080 (__vector unsigned long long)__b);
7081}
7082
7083// This prototype is deprecated.
7084static inline __ATTRS_o_ai __vector double
7085vec_nor(__vector __bool long long __a, __vector double __b) {
7086 return (__vector double)~((__vector unsigned long long)__a |
7087 (__vector unsigned long long)__b);
7088}
7089
7090// This prototype is deprecated.
7091static inline __ATTRS_o_ai __vector double
7092vec_nor(__vector double __a, __vector __bool long long __b) {
7093 return (__vector double)~((__vector unsigned long long)__a |
7094 (__vector unsigned long long)__b);
7095}
7096
7097/*-- vec_orc ----------------------------------------------------------------*/
7098
7099#if __ARCH__ >= 12
7100static inline __ATTRS_o_ai __vector __bool char
7101vec_orc(__vector __bool char __a, __vector __bool char __b) {
7102 return __a | ~__b;
7103}
7104
7105static inline __ATTRS_o_ai __vector signed char
7106vec_orc(__vector signed char __a, __vector signed char __b) {
7107 return __a | ~__b;
7108}
7109
7110static inline __ATTRS_o_ai __vector unsigned char
7111vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
7112 return __a | ~__b;
7113}
7114
7115static inline __ATTRS_o_ai __vector __bool short
7116vec_orc(__vector __bool short __a, __vector __bool short __b) {
7117 return __a | ~__b;
7118}
7119
7120static inline __ATTRS_o_ai __vector signed short
7121vec_orc(__vector signed short __a, __vector signed short __b) {
7122 return __a | ~__b;
7123}
7124
7125static inline __ATTRS_o_ai __vector unsigned short
7126vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
7127 return __a | ~__b;
7128}
7129
7130static inline __ATTRS_o_ai __vector __bool int
7131vec_orc(__vector __bool int __a, __vector __bool int __b) {
7132 return __a | ~__b;
7133}
7134
7135static inline __ATTRS_o_ai __vector signed int
7136vec_orc(__vector signed int __a, __vector signed int __b) {
7137 return __a | ~__b;
7138}
7139
7140static inline __ATTRS_o_ai __vector unsigned int
7141vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
7142 return __a | ~__b;
7143}
7144
7145static inline __ATTRS_o_ai __vector __bool long long
7146vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
7147 return __a | ~__b;
7148}
7149
7150static inline __ATTRS_o_ai __vector signed long long
7151vec_orc(__vector signed long long __a, __vector signed long long __b) {
7152 return __a | ~__b;
7153}
7154
7155static inline __ATTRS_o_ai __vector unsigned long long
7156vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
7157 return __a | ~__b;
7158}
7159
7160static inline __ATTRS_o_ai __vector __bool __int128
7161vec_orc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7162 return __a | ~__b;
7163}
7164
7165static inline __ATTRS_o_ai __vector signed __int128
7166vec_orc(__vector signed __int128 __a, __vector signed __int128 __b) {
7167 return __a | ~__b;
7168}
7169
7170static inline __ATTRS_o_ai __vector unsigned __int128
7171vec_orc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7172 return __a | ~__b;
7173}
7174
7175static inline __ATTRS_o_ai __vector float
7176vec_orc(__vector float __a, __vector float __b) {
7177 return (__vector float)((__vector unsigned int)__a |
7178 ~(__vector unsigned int)__b);
7179}
7180
7181static inline __ATTRS_o_ai __vector double
7182vec_orc(__vector double __a, __vector double __b) {
7183 return (__vector double)((__vector unsigned long long)__a |
7184 ~(__vector unsigned long long)__b);
7185}
7186#endif
7187
7188/*-- vec_nand ---------------------------------------------------------------*/
7189
7190#if __ARCH__ >= 12
7191static inline __ATTRS_o_ai __vector __bool char
7192vec_nand(__vector __bool char __a, __vector __bool char __b) {
7193 return ~(__a & __b);
7194}
7195
7196static inline __ATTRS_o_ai __vector signed char
7197vec_nand(__vector signed char __a, __vector signed char __b) {
7198 return ~(__a & __b);
7199}
7200
7201static inline __ATTRS_o_ai __vector unsigned char
7202vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
7203 return ~(__a & __b);
7204}
7205
7206static inline __ATTRS_o_ai __vector __bool short
7207vec_nand(__vector __bool short __a, __vector __bool short __b) {
7208 return ~(__a & __b);
7209}
7210
7211static inline __ATTRS_o_ai __vector signed short
7212vec_nand(__vector signed short __a, __vector signed short __b) {
7213 return ~(__a & __b);
7214}
7215
7216static inline __ATTRS_o_ai __vector unsigned short
7217vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
7218 return ~(__a & __b);
7219}
7220
7221static inline __ATTRS_o_ai __vector __bool int
7222vec_nand(__vector __bool int __a, __vector __bool int __b) {
7223 return ~(__a & __b);
7224}
7225
7226static inline __ATTRS_o_ai __vector signed int
7227vec_nand(__vector signed int __a, __vector signed int __b) {
7228 return ~(__a & __b);
7229}
7230
7231static inline __ATTRS_o_ai __vector unsigned int
7232vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
7233 return ~(__a & __b);
7234}
7235
7236static inline __ATTRS_o_ai __vector __bool long long
7237vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
7238 return ~(__a & __b);
7239}
7240
7241static inline __ATTRS_o_ai __vector signed long long
7242vec_nand(__vector signed long long __a, __vector signed long long __b) {
7243 return ~(__a & __b);
7244}
7245
7246static inline __ATTRS_o_ai __vector unsigned long long
7247vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
7248 return ~(__a & __b);
7249}
7250
7251static inline __ATTRS_o_ai __vector __bool __int128
7252vec_nand(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7253 return ~(__a & __b);
7254}
7255
7256static inline __ATTRS_o_ai __vector signed __int128
7257vec_nand(__vector signed __int128 __a, __vector signed __int128 __b) {
7258 return ~(__a & __b);
7259}
7260
7261static inline __ATTRS_o_ai __vector unsigned __int128
7262vec_nand(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7263 return ~(__a & __b);
7264}
7265
7266static inline __ATTRS_o_ai __vector float
7267vec_nand(__vector float __a, __vector float __b) {
7268 return (__vector float)~((__vector unsigned int)__a &
7269 (__vector unsigned int)__b);
7270}
7271
7272static inline __ATTRS_o_ai __vector double
7273vec_nand(__vector double __a, __vector double __b) {
7274 return (__vector double)~((__vector unsigned long long)__a &
7275 (__vector unsigned long long)__b);
7276}
7277#endif
7278
7279/*-- vec_eqv ----------------------------------------------------------------*/
7280
7281#if __ARCH__ >= 12
7282static inline __ATTRS_o_ai __vector __bool char
7283vec_eqv(__vector __bool char __a, __vector __bool char __b) {
7284 return ~(__a ^ __b);
7285}
7286
7287static inline __ATTRS_o_ai __vector signed char
7288vec_eqv(__vector signed char __a, __vector signed char __b) {
7289 return ~(__a ^ __b);
7290}
7291
7292static inline __ATTRS_o_ai __vector unsigned char
7293vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
7294 return ~(__a ^ __b);
7295}
7296
7297static inline __ATTRS_o_ai __vector __bool short
7298vec_eqv(__vector __bool short __a, __vector __bool short __b) {
7299 return ~(__a ^ __b);
7300}
7301
7302static inline __ATTRS_o_ai __vector signed short
7303vec_eqv(__vector signed short __a, __vector signed short __b) {
7304 return ~(__a ^ __b);
7305}
7306
7307static inline __ATTRS_o_ai __vector unsigned short
7308vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
7309 return ~(__a ^ __b);
7310}
7311
7312static inline __ATTRS_o_ai __vector __bool int
7313vec_eqv(__vector __bool int __a, __vector __bool int __b) {
7314 return ~(__a ^ __b);
7315}
7316
7317static inline __ATTRS_o_ai __vector signed int
7318vec_eqv(__vector signed int __a, __vector signed int __b) {
7319 return ~(__a ^ __b);
7320}
7321
7322static inline __ATTRS_o_ai __vector unsigned int
7323vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
7324 return ~(__a ^ __b);
7325}
7326
7327static inline __ATTRS_o_ai __vector __bool long long
7328vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
7329 return ~(__a ^ __b);
7330}
7331
7332static inline __ATTRS_o_ai __vector signed long long
7333vec_eqv(__vector signed long long __a, __vector signed long long __b) {
7334 return ~(__a ^ __b);
7335}
7336
7337static inline __ATTRS_o_ai __vector unsigned long long
7338vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
7339 return ~(__a ^ __b);
7340}
7341
7342static inline __ATTRS_o_ai __vector __bool __int128
7343vec_eqv(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7344 return ~(__a ^ __b);
7345}
7346
7347static inline __ATTRS_o_ai __vector signed __int128
7348vec_eqv(__vector signed __int128 __a, __vector signed __int128 __b) {
7349 return ~(__a ^ __b);
7350}
7351
7352static inline __ATTRS_o_ai __vector unsigned __int128
7353vec_eqv(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7354 return ~(__a ^ __b);
7355}
7356
7357static inline __ATTRS_o_ai __vector float
7358vec_eqv(__vector float __a, __vector float __b) {
7359 return (__vector float)~((__vector unsigned int)__a ^
7360 (__vector unsigned int)__b);
7361}
7362
7363static inline __ATTRS_o_ai __vector double
7364vec_eqv(__vector double __a, __vector double __b) {
7365 return (__vector double)~((__vector unsigned long long)__a ^
7366 (__vector unsigned long long)__b);
7367}
7368#endif
7369
7370/*-- vec_evaluate -----------------------------------------------------------*/
7371
7372#if __ARCH__ >= 15
7373extern __ATTRS_o __vector signed char
7374vec_evaluate(__vector signed char __a, __vector signed char __b,
7375 __vector signed char __c, unsigned char __d)
7376 __constant(__d);
7377
7378extern __ATTRS_o __vector unsigned char
7379vec_evaluate(__vector unsigned char __a, __vector unsigned char __b,
7380 __vector unsigned char __c, unsigned char __d)
7381 __constant(__d);
7382
7383extern __ATTRS_o __vector __bool char
7384vec_evaluate(__vector __bool char __a, __vector __bool char __b,
7385 __vector __bool char __c, unsigned char __d)
7386 __constant(__d);
7387
7388extern __ATTRS_o __vector signed short
7389vec_evaluate(__vector signed short __a, __vector signed short __b,
7390 __vector signed short __c, unsigned char __d)
7391 __constant(__d);
7392
7393extern __ATTRS_o __vector unsigned short
7394vec_evaluate(__vector unsigned short __a, __vector unsigned short __b,
7395 __vector unsigned short __c, unsigned char __d)
7396 __constant(__d);
7397
7398extern __ATTRS_o __vector __bool short
7399vec_evaluate(__vector __bool short __a, __vector __bool short __b,
7400 __vector __bool short __c, unsigned char __d)
7401 __constant(__d);
7402
7403extern __ATTRS_o __vector signed int
7404vec_evaluate(__vector signed int __a, __vector signed int __b,
7405 __vector signed int __c, unsigned char __d)
7406 __constant(__d);
7407
7408extern __ATTRS_o __vector unsigned int
7409vec_evaluate(__vector unsigned int __a, __vector unsigned int __b,
7410 __vector unsigned int __c, unsigned char __d)
7411 __constant(__d);
7412
7413extern __ATTRS_o __vector __bool int
7414vec_evaluate(__vector __bool int __a, __vector __bool int __b,
7415 __vector __bool int __c, unsigned char __d)
7416 __constant(__d);
7417
7418extern __ATTRS_o __vector signed long long
7419vec_evaluate(__vector signed long long __a, __vector signed long long __b,
7420 __vector signed long long __c, unsigned char __d)
7421 __constant(__d);
7422
7423extern __ATTRS_o __vector unsigned long long
7424vec_evaluate(__vector unsigned long long __a, __vector unsigned long long __b,
7425 __vector unsigned long long __c, unsigned char __d)
7426 __constant(__d);
7427
7428extern __ATTRS_o __vector __bool long long
7429vec_evaluate(__vector __bool long long __a, __vector __bool long long __b,
7430 __vector __bool long long __c, unsigned char __d)
7431 __constant(__d);
7432
7433extern __ATTRS_o __vector signed __int128
7434vec_evaluate(__vector signed __int128 __a, __vector signed __int128 __b,
7435 __vector signed __int128 __c, unsigned char __d)
7436 __constant(__d);
7437
7438extern __ATTRS_o __vector unsigned __int128
7439vec_evaluate(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
7440 __vector unsigned __int128 __c, unsigned char __d)
7441 __constant(__d);
7442
7443extern __ATTRS_o __vector __bool __int128
7444vec_evaluate(__vector __bool __int128 __a, __vector __bool __int128 __b,
7445 __vector __bool __int128 __c, unsigned char __d)
7446 __constant(__d);
7447
7448#define vec_evaluate(A, B, C, D) \
7449 ((__typeof__((vec_evaluate)((A), (B), (C), (D)))) \
7450 __builtin_s390_veval((__vector unsigned char)(A), \
7451 (__vector unsigned char)(B), \
7452 (__vector unsigned char)(C), (D)))
7453#endif
7454
7455/*-- vec_cntlz --------------------------------------------------------------*/
7456
7457static inline __ATTRS_o_ai __vector unsigned char
7458vec_cntlz(__vector signed char __a) {
7459 return __builtin_s390_vclzb((__vector unsigned char)__a);
7460}
7461
7462static inline __ATTRS_o_ai __vector unsigned char
7463vec_cntlz(__vector unsigned char __a) {
7464 return __builtin_s390_vclzb(__a);
7465}
7466
7467static inline __ATTRS_o_ai __vector unsigned short
7468vec_cntlz(__vector signed short __a) {
7469 return __builtin_s390_vclzh((__vector unsigned short)__a);
7470}
7471
7472static inline __ATTRS_o_ai __vector unsigned short
7473vec_cntlz(__vector unsigned short __a) {
7474 return __builtin_s390_vclzh(__a);
7475}
7476
7477static inline __ATTRS_o_ai __vector unsigned int
7478vec_cntlz(__vector signed int __a) {
7479 return __builtin_s390_vclzf((__vector unsigned int)__a);
7480}
7481
7482static inline __ATTRS_o_ai __vector unsigned int
7483vec_cntlz(__vector unsigned int __a) {
7484 return __builtin_s390_vclzf(__a);
7485}
7486
7487static inline __ATTRS_o_ai __vector unsigned long long
7488vec_cntlz(__vector signed long long __a) {
7489 return __builtin_s390_vclzg((__vector unsigned long long)__a);
7490}
7491
7492static inline __ATTRS_o_ai __vector unsigned long long
7493vec_cntlz(__vector unsigned long long __a) {
7494 return __builtin_s390_vclzg(__a);
7495}
7496
7497#if __ARCH__ >= 15
7498static inline __ATTRS_o_ai __vector unsigned __int128
7499vec_cntlz(__vector signed __int128 __a) {
7500 return (__vector unsigned __int128)
7501 __builtin_s390_vclzq((unsigned __int128)__a);
7502}
7503
7504static inline __ATTRS_o_ai __vector unsigned __int128
7505vec_cntlz(__vector unsigned __int128 __a) {
7506 return (__vector unsigned __int128)
7507 __builtin_s390_vclzq((unsigned __int128)__a);
7508}
7509#endif
7510
7511/*-- vec_cnttz --------------------------------------------------------------*/
7512
7513static inline __ATTRS_o_ai __vector unsigned char
7514vec_cnttz(__vector signed char __a) {
7515 return __builtin_s390_vctzb((__vector unsigned char)__a);
7516}
7517
7518static inline __ATTRS_o_ai __vector unsigned char
7519vec_cnttz(__vector unsigned char __a) {
7520 return __builtin_s390_vctzb(__a);
7521}
7522
7523static inline __ATTRS_o_ai __vector unsigned short
7524vec_cnttz(__vector signed short __a) {
7525 return __builtin_s390_vctzh((__vector unsigned short)__a);
7526}
7527
7528static inline __ATTRS_o_ai __vector unsigned short
7529vec_cnttz(__vector unsigned short __a) {
7530 return __builtin_s390_vctzh(__a);
7531}
7532
7533static inline __ATTRS_o_ai __vector unsigned int
7534vec_cnttz(__vector signed int __a) {
7535 return __builtin_s390_vctzf((__vector unsigned int)__a);
7536}
7537
7538static inline __ATTRS_o_ai __vector unsigned int
7539vec_cnttz(__vector unsigned int __a) {
7540 return __builtin_s390_vctzf(__a);
7541}
7542
7543static inline __ATTRS_o_ai __vector unsigned long long
7544vec_cnttz(__vector signed long long __a) {
7545 return __builtin_s390_vctzg((__vector unsigned long long)__a);
7546}
7547
7548static inline __ATTRS_o_ai __vector unsigned long long
7549vec_cnttz(__vector unsigned long long __a) {
7550 return __builtin_s390_vctzg(__a);
7551}
7552
7553#if __ARCH__ >= 15
7554static inline __ATTRS_o_ai __vector unsigned __int128
7555vec_cnttz(__vector signed __int128 __a) {
7556 return (__vector unsigned __int128)
7557 __builtin_s390_vctzq((unsigned __int128)__a);
7558}
7559
7560static inline __ATTRS_o_ai __vector unsigned __int128
7561vec_cnttz(__vector unsigned __int128 __a) {
7562 return (__vector unsigned __int128)
7563 __builtin_s390_vctzq((unsigned __int128)__a);
7564}
7565#endif
7566
7567/*-- vec_popcnt -------------------------------------------------------------*/
7568
7569static inline __ATTRS_o_ai __vector unsigned char
7570vec_popcnt(__vector signed char __a) {
7571 return __builtin_elementwise_popcount((__vector unsigned char)__a);
7572}
7573
7574static inline __ATTRS_o_ai __vector unsigned char
7575vec_popcnt(__vector unsigned char __a) {
7576 return __builtin_elementwise_popcount(__a);
7577}
7578
7579static inline __ATTRS_o_ai __vector unsigned short
7580vec_popcnt(__vector signed short __a) {
7581 return __builtin_elementwise_popcount((__vector unsigned short)__a);
7582}
7583
7584static inline __ATTRS_o_ai __vector unsigned short
7585vec_popcnt(__vector unsigned short __a) {
7586 return __builtin_elementwise_popcount(__a);
7587}
7588
7589static inline __ATTRS_o_ai __vector unsigned int
7590vec_popcnt(__vector signed int __a) {
7591 return __builtin_elementwise_popcount((__vector unsigned int)__a);
7592}
7593
7594static inline __ATTRS_o_ai __vector unsigned int
7595vec_popcnt(__vector unsigned int __a) {
7596 return __builtin_elementwise_popcount(__a);
7597}
7598
7599static inline __ATTRS_o_ai __vector unsigned long long
7600vec_popcnt(__vector signed long long __a) {
7601 return __builtin_elementwise_popcount((__vector unsigned long long)__a);
7602}
7603
7604static inline __ATTRS_o_ai __vector unsigned long long
7605vec_popcnt(__vector unsigned long long __a) {
7606 return __builtin_elementwise_popcount(__a);
7607}
7608
7609/*-- vec_rl -----------------------------------------------------------------*/
7610
7611static inline __ATTRS_o_ai __vector signed char
7612vec_rl(__vector signed char __a, __vector unsigned char __b) {
7613 return (__vector signed char)__builtin_s390_verllvb(
7614 (__vector unsigned char)__a, __b);
7615}
7616
7617static inline __ATTRS_o_ai __vector unsigned char
7618vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
7619 return __builtin_s390_verllvb(__a, __b);
7620}
7621
7622static inline __ATTRS_o_ai __vector signed short
7623vec_rl(__vector signed short __a, __vector unsigned short __b) {
7624 return (__vector signed short)__builtin_s390_verllvh(
7625 (__vector unsigned short)__a, __b);
7626}
7627
7628static inline __ATTRS_o_ai __vector unsigned short
7629vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
7630 return __builtin_s390_verllvh(__a, __b);
7631}
7632
7633static inline __ATTRS_o_ai __vector signed int
7634vec_rl(__vector signed int __a, __vector unsigned int __b) {
7635 return (__vector signed int)__builtin_s390_verllvf(
7636 (__vector unsigned int)__a, __b);
7637}
7638
7639static inline __ATTRS_o_ai __vector unsigned int
7640vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
7641 return __builtin_s390_verllvf(__a, __b);
7642}
7643
7644static inline __ATTRS_o_ai __vector signed long long
7645vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
7646 return (__vector signed long long)__builtin_s390_verllvg(
7647 (__vector unsigned long long)__a, __b);
7648}
7649
7650static inline __ATTRS_o_ai __vector unsigned long long
7651vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
7652 return __builtin_s390_verllvg(__a, __b);
7653}
7654
7655/*-- vec_rli ----------------------------------------------------------------*/
7656
7657static inline __ATTRS_o_ai __vector signed char
7658vec_rli(__vector signed char __a, unsigned long __b) {
7659 return (__vector signed char)__builtin_s390_verllb(
7660 (__vector unsigned char)__a, (unsigned char)__b);
7661}
7662
7663static inline __ATTRS_o_ai __vector unsigned char
7664vec_rli(__vector unsigned char __a, unsigned long __b) {
7665 return __builtin_s390_verllb(__a, (unsigned char)__b);
7666}
7667
7668static inline __ATTRS_o_ai __vector signed short
7669vec_rli(__vector signed short __a, unsigned long __b) {
7670 return (__vector signed short)__builtin_s390_verllh(
7671 (__vector unsigned short)__a, (unsigned char)__b);
7672}
7673
7674static inline __ATTRS_o_ai __vector unsigned short
7675vec_rli(__vector unsigned short __a, unsigned long __b) {
7676 return __builtin_s390_verllh(__a, (unsigned char)__b);
7677}
7678
7679static inline __ATTRS_o_ai __vector signed int
7680vec_rli(__vector signed int __a, unsigned long __b) {
7681 return (__vector signed int)__builtin_s390_verllf(
7682 (__vector unsigned int)__a, (unsigned char)__b);
7683}
7684
7685static inline __ATTRS_o_ai __vector unsigned int
7686vec_rli(__vector unsigned int __a, unsigned long __b) {
7687 return __builtin_s390_verllf(__a, (unsigned char)__b);
7688}
7689
7690static inline __ATTRS_o_ai __vector signed long long
7691vec_rli(__vector signed long long __a, unsigned long __b) {
7692 return (__vector signed long long)__builtin_s390_verllg(
7693 (__vector unsigned long long)__a, (unsigned char)__b);
7694}
7695
7696static inline __ATTRS_o_ai __vector unsigned long long
7697vec_rli(__vector unsigned long long __a, unsigned long __b) {
7698 return __builtin_s390_verllg(__a, (unsigned char)__b);
7699}
7700
7701/*-- vec_rl_mask ------------------------------------------------------------*/
7702
7703extern __ATTRS_o __vector signed char
7704vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
7705 unsigned char __c) __constant(__c);
7706
7707extern __ATTRS_o __vector unsigned char
7708vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
7709 unsigned char __c) __constant(__c);
7710
7711extern __ATTRS_o __vector signed short
7712vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
7713 unsigned char __c) __constant(__c);
7714
7715extern __ATTRS_o __vector unsigned short
7716vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
7717 unsigned char __c) __constant(__c);
7718
7719extern __ATTRS_o __vector signed int
7720vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
7721 unsigned char __c) __constant(__c);
7722
7723extern __ATTRS_o __vector unsigned int
7724vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
7725 unsigned char __c) __constant(__c);
7726
7727extern __ATTRS_o __vector signed long long
7728vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
7729 unsigned char __c) __constant(__c);
7730
7731extern __ATTRS_o __vector unsigned long long
7732vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
7733 unsigned char __c) __constant(__c);
7734
7735#define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
7736 __extension__ ({ \
7737 __vector unsigned char __res; \
7738 __vector unsigned char __x = (__vector unsigned char)(X); \
7739 __vector unsigned char __y = (__vector unsigned char)(Y); \
7740 switch (sizeof ((X)[0])) { \
7741 case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
7742 (__vector unsigned char)__x, (__vector unsigned char)__x, \
7743 (__vector unsigned char)__y, (Z)); break; \
7744 case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
7745 (__vector unsigned short)__x, (__vector unsigned short)__x, \
7746 (__vector unsigned short)__y, (Z)); break; \
7747 case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
7748 (__vector unsigned int)__x, (__vector unsigned int)__x, \
7749 (__vector unsigned int)__y, (Z)); break; \
7750 default: __res = (__vector unsigned char) __builtin_s390_verimg( \
7751 (__vector unsigned long long)__x, (__vector unsigned long long)__x, \
7752 (__vector unsigned long long)__y, (Z)); break; \
7753 } __res; }))
7754
7755/*-- vec_sll ----------------------------------------------------------------*/
7756
7757static inline __ATTRS_o_ai __vector signed char
7758vec_sll(__vector signed char __a, __vector unsigned char __b) {
7759 return (__vector signed char)__builtin_s390_vsl(
7760 (__vector unsigned char)__a, __b);
7761}
7762
7763// This prototype is deprecated.
7764static inline __ATTRS_o_ai __vector signed char
7765vec_sll(__vector signed char __a, __vector unsigned short __b) {
7766 return (__vector signed char)__builtin_s390_vsl(
7767 (__vector unsigned char)__a, (__vector unsigned char)__b);
7768}
7769
7770// This prototype is deprecated.
7771static inline __ATTRS_o_ai __vector signed char
7772vec_sll(__vector signed char __a, __vector unsigned int __b) {
7773 return (__vector signed char)__builtin_s390_vsl(
7774 (__vector unsigned char)__a, (__vector unsigned char)__b);
7775}
7776
7777// This prototype is deprecated.
7778static inline __ATTRS_o_ai __vector __bool char
7779vec_sll(__vector __bool char __a, __vector unsigned char __b) {
7780 return (__vector __bool char)__builtin_s390_vsl(
7781 (__vector unsigned char)__a, __b);
7782}
7783
7784// This prototype is deprecated.
7785static inline __ATTRS_o_ai __vector __bool char
7786vec_sll(__vector __bool char __a, __vector unsigned short __b) {
7787 return (__vector __bool char)__builtin_s390_vsl(
7788 (__vector unsigned char)__a, (__vector unsigned char)__b);
7789}
7790
7791// This prototype is deprecated.
7792static inline __ATTRS_o_ai __vector __bool char
7793vec_sll(__vector __bool char __a, __vector unsigned int __b) {
7794 return (__vector __bool char)__builtin_s390_vsl(
7795 (__vector unsigned char)__a, (__vector unsigned char)__b);
7796}
7797
7798static inline __ATTRS_o_ai __vector unsigned char
7799vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
7800 return __builtin_s390_vsl(__a, __b);
7801}
7802
7803// This prototype is deprecated.
7804static inline __ATTRS_o_ai __vector unsigned char
7805vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
7806 return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
7807}
7808
7809// This prototype is deprecated.
7810static inline __ATTRS_o_ai __vector unsigned char
7811vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
7812 return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
7813}
7814
7815static inline __ATTRS_o_ai __vector signed short
7816vec_sll(__vector signed short __a, __vector unsigned char __b) {
7817 return (__vector signed short)__builtin_s390_vsl(
7818 (__vector unsigned char)__a, __b);
7819}
7820
7821// This prototype is deprecated.
7822static inline __ATTRS_o_ai __vector signed short
7823vec_sll(__vector signed short __a, __vector unsigned short __b) {
7824 return (__vector signed short)__builtin_s390_vsl(
7825 (__vector unsigned char)__a, (__vector unsigned char)__b);
7826}
7827
7828// This prototype is deprecated.
7829static inline __ATTRS_o_ai __vector signed short
7830vec_sll(__vector signed short __a, __vector unsigned int __b) {
7831 return (__vector signed short)__builtin_s390_vsl(
7832 (__vector unsigned char)__a, (__vector unsigned char)__b);
7833}
7834
7835// This prototype is deprecated.
7836static inline __ATTRS_o_ai __vector __bool short
7837vec_sll(__vector __bool short __a, __vector unsigned char __b) {
7838 return (__vector __bool short)__builtin_s390_vsl(
7839 (__vector unsigned char)__a, __b);
7840}
7841
7842// This prototype is deprecated.
7843static inline __ATTRS_o_ai __vector __bool short
7844vec_sll(__vector __bool short __a, __vector unsigned short __b) {
7845 return (__vector __bool short)__builtin_s390_vsl(
7846 (__vector unsigned char)__a, (__vector unsigned char)__b);
7847}
7848
7849// This prototype is deprecated.
7850static inline __ATTRS_o_ai __vector __bool short
7851vec_sll(__vector __bool short __a, __vector unsigned int __b) {
7852 return (__vector __bool short)__builtin_s390_vsl(
7853 (__vector unsigned char)__a, (__vector unsigned char)__b);
7854}
7855
7856static inline __ATTRS_o_ai __vector unsigned short
7857vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
7858 return (__vector unsigned short)__builtin_s390_vsl(
7859 (__vector unsigned char)__a, __b);
7860}
7861
7862// This prototype is deprecated.
7863static inline __ATTRS_o_ai __vector unsigned short
7864vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
7865 return (__vector unsigned short)__builtin_s390_vsl(
7866 (__vector unsigned char)__a, (__vector unsigned char)__b);
7867}
7868
7869// This prototype is deprecated.
7870static inline __ATTRS_o_ai __vector unsigned short
7871vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
7872 return (__vector unsigned short)__builtin_s390_vsl(
7873 (__vector unsigned char)__a, (__vector unsigned char)__b);
7874}
7875
7876static inline __ATTRS_o_ai __vector signed int
7877vec_sll(__vector signed int __a, __vector unsigned char __b) {
7878 return (__vector signed int)__builtin_s390_vsl(
7879 (__vector unsigned char)__a, __b);
7880}
7881
7882// This prototype is deprecated.
7883static inline __ATTRS_o_ai __vector signed int
7884vec_sll(__vector signed int __a, __vector unsigned short __b) {
7885 return (__vector signed int)__builtin_s390_vsl(
7886 (__vector unsigned char)__a, (__vector unsigned char)__b);
7887}
7888
7889// This prototype is deprecated.
7890static inline __ATTRS_o_ai __vector signed int
7891vec_sll(__vector signed int __a, __vector unsigned int __b) {
7892 return (__vector signed int)__builtin_s390_vsl(
7893 (__vector unsigned char)__a, (__vector unsigned char)__b);
7894}
7895
7896// This prototype is deprecated.
7897static inline __ATTRS_o_ai __vector __bool int
7898vec_sll(__vector __bool int __a, __vector unsigned char __b) {
7899 return (__vector __bool int)__builtin_s390_vsl(
7900 (__vector unsigned char)__a, __b);
7901}
7902
7903// This prototype is deprecated.
7904static inline __ATTRS_o_ai __vector __bool int
7905vec_sll(__vector __bool int __a, __vector unsigned short __b) {
7906 return (__vector __bool int)__builtin_s390_vsl(
7907 (__vector unsigned char)__a, (__vector unsigned char)__b);
7908}
7909
7910// This prototype is deprecated.
7911static inline __ATTRS_o_ai __vector __bool int
7912vec_sll(__vector __bool int __a, __vector unsigned int __b) {
7913 return (__vector __bool int)__builtin_s390_vsl(
7914 (__vector unsigned char)__a, (__vector unsigned char)__b);
7915}
7916
7917static inline __ATTRS_o_ai __vector unsigned int
7918vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
7919 return (__vector unsigned int)__builtin_s390_vsl(
7920 (__vector unsigned char)__a, __b);
7921}
7922
7923// This prototype is deprecated.
7924static inline __ATTRS_o_ai __vector unsigned int
7925vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
7926 return (__vector unsigned int)__builtin_s390_vsl(
7927 (__vector unsigned char)__a, (__vector unsigned char)__b);
7928}
7929
7930// This prototype is deprecated.
7931static inline __ATTRS_o_ai __vector unsigned int
7932vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
7933 return (__vector unsigned int)__builtin_s390_vsl(
7934 (__vector unsigned char)__a, (__vector unsigned char)__b);
7935}
7936
7937static inline __ATTRS_o_ai __vector signed long long
7938vec_sll(__vector signed long long __a, __vector unsigned char __b) {
7939 return (__vector signed long long)__builtin_s390_vsl(
7940 (__vector unsigned char)__a, __b);
7941}
7942
7943// This prototype is deprecated.
7944static inline __ATTRS_o_ai __vector signed long long
7945vec_sll(__vector signed long long __a, __vector unsigned short __b) {
7946 return (__vector signed long long)__builtin_s390_vsl(
7947 (__vector unsigned char)__a, (__vector unsigned char)__b);
7948}
7949
7950// This prototype is deprecated.
7951static inline __ATTRS_o_ai __vector signed long long
7952vec_sll(__vector signed long long __a, __vector unsigned int __b) {
7953 return (__vector signed long long)__builtin_s390_vsl(
7954 (__vector unsigned char)__a, (__vector unsigned char)__b);
7955}
7956
7957// This prototype is deprecated.
7958static inline __ATTRS_o_ai __vector __bool long long
7959vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
7960 return (__vector __bool long long)__builtin_s390_vsl(
7961 (__vector unsigned char)__a, __b);
7962}
7963
7964// This prototype is deprecated.
7965static inline __ATTRS_o_ai __vector __bool long long
7966vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
7967 return (__vector __bool long long)__builtin_s390_vsl(
7968 (__vector unsigned char)__a, (__vector unsigned char)__b);
7969}
7970
7971// This prototype is deprecated.
7972static inline __ATTRS_o_ai __vector __bool long long
7973vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
7974 return (__vector __bool long long)__builtin_s390_vsl(
7975 (__vector unsigned char)__a, (__vector unsigned char)__b);
7976}
7977
7978static inline __ATTRS_o_ai __vector unsigned long long
7979vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
7980 return (__vector unsigned long long)__builtin_s390_vsl(
7981 (__vector unsigned char)__a, __b);
7982}
7983
7984// This prototype is deprecated.
7985static inline __ATTRS_o_ai __vector unsigned long long
7986vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
7987 return (__vector unsigned long long)__builtin_s390_vsl(
7988 (__vector unsigned char)__a, (__vector unsigned char)__b);
7989}
7990
7991// This prototype is deprecated.
7992static inline __ATTRS_o_ai __vector unsigned long long
7993vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
7994 return (__vector unsigned long long)__builtin_s390_vsl(
7995 (__vector unsigned char)__a, (__vector unsigned char)__b);
7996}
7997
7998static inline __ATTRS_o_ai __vector signed __int128
7999vec_sll(__vector signed __int128 __a, __vector unsigned char __b) {
8000 return (__vector signed __int128)__builtin_s390_vsl(
8001 (__vector unsigned char)__a, __b);
8002}
8003
8004static inline __ATTRS_o_ai __vector unsigned __int128
8005vec_sll(__vector unsigned __int128 __a, __vector unsigned char __b) {
8006 return (__vector unsigned __int128)__builtin_s390_vsl(
8007 (__vector unsigned char)__a, __b);
8008}
8009
8010/*-- vec_slb ----------------------------------------------------------------*/
8011
8012// This prototype is deprecated.
8013static inline __ATTRS_o_ai __vector signed char
8014vec_slb(__vector signed char __a, __vector signed char __b) {
8015 return (__vector signed char)__builtin_s390_vslb(
8016 (__vector unsigned char)__a, (__vector unsigned char)__b);
8017}
8018
8019static inline __ATTRS_o_ai __vector signed char
8020vec_slb(__vector signed char __a, __vector unsigned char __b) {
8021 return (__vector signed char)__builtin_s390_vslb(
8022 (__vector unsigned char)__a, __b);
8023}
8024
8025// This prototype is deprecated.
8026static inline __ATTRS_o_ai __vector unsigned char
8027vec_slb(__vector unsigned char __a, __vector signed char __b) {
8028 return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
8029}
8030
8031static inline __ATTRS_o_ai __vector unsigned char
8032vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
8033 return __builtin_s390_vslb(__a, __b);
8034}
8035
8036// This prototype is deprecated.
8037static inline __ATTRS_o_ai __vector signed short
8038vec_slb(__vector signed short __a, __vector signed short __b) {
8039 return (__vector signed short)__builtin_s390_vslb(
8040 (__vector unsigned char)__a, (__vector unsigned char)__b);
8041}
8042
8043// This prototype is deprecated.
8044static inline __ATTRS_o_ai __vector signed short
8045vec_slb(__vector signed short __a, __vector unsigned short __b) {
8046 return (__vector signed short)__builtin_s390_vslb(
8047 (__vector unsigned char)__a, (__vector unsigned char)__b);
8048}
8049
8050static inline __ATTRS_o_ai __vector signed short
8051vec_slb(__vector signed short __a, __vector unsigned char __b) {
8052 return (__vector signed short)__builtin_s390_vslb(
8053 (__vector unsigned char)__a, __b);
8054}
8055
8056// This prototype is deprecated.
8057static inline __ATTRS_o_ai __vector unsigned short
8058vec_slb(__vector unsigned short __a, __vector signed short __b) {
8059 return (__vector unsigned short)__builtin_s390_vslb(
8060 (__vector unsigned char)__a, (__vector unsigned char)__b);
8061}
8062
8063// This prototype is deprecated.
8064static inline __ATTRS_o_ai __vector unsigned short
8065vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
8066 return (__vector unsigned short)__builtin_s390_vslb(
8067 (__vector unsigned char)__a, (__vector unsigned char)__b);
8068}
8069
8070static inline __ATTRS_o_ai __vector unsigned short
8071vec_slb(__vector unsigned short __a, __vector unsigned char __b) {
8072 return (__vector unsigned short)__builtin_s390_vslb(
8073 (__vector unsigned char)__a, __b);
8074}
8075
8076// This prototype is deprecated.
8077static inline __ATTRS_o_ai __vector signed int
8078vec_slb(__vector signed int __a, __vector signed int __b) {
8079 return (__vector signed int)__builtin_s390_vslb(
8080 (__vector unsigned char)__a, (__vector unsigned char)__b);
8081}
8082
8083// This prototype is deprecated.
8084static inline __ATTRS_o_ai __vector signed int
8085vec_slb(__vector signed int __a, __vector unsigned int __b) {
8086 return (__vector signed int)__builtin_s390_vslb(
8087 (__vector unsigned char)__a, (__vector unsigned char)__b);
8088}
8089
8090static inline __ATTRS_o_ai __vector signed int
8091vec_slb(__vector signed int __a, __vector unsigned char __b) {
8092 return (__vector signed int)__builtin_s390_vslb(
8093 (__vector unsigned char)__a, __b);
8094}
8095
8096// This prototype is deprecated.
8097static inline __ATTRS_o_ai __vector unsigned int
8098vec_slb(__vector unsigned int __a, __vector signed int __b) {
8099 return (__vector unsigned int)__builtin_s390_vslb(
8100 (__vector unsigned char)__a, (__vector unsigned char)__b);
8101}
8102
8103// This prototype is deprecated.
8104static inline __ATTRS_o_ai __vector unsigned int
8105vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
8106 return (__vector unsigned int)__builtin_s390_vslb(
8107 (__vector unsigned char)__a, (__vector unsigned char)__b);
8108}
8109
8110static inline __ATTRS_o_ai __vector unsigned int
8111vec_slb(__vector unsigned int __a, __vector unsigned char __b) {
8112 return (__vector unsigned int)__builtin_s390_vslb(
8113 (__vector unsigned char)__a, __b);
8114}
8115
8116// This prototype is deprecated.
8117static inline __ATTRS_o_ai __vector signed long long
8118vec_slb(__vector signed long long __a, __vector signed long long __b) {
8119 return (__vector signed long long)__builtin_s390_vslb(
8120 (__vector unsigned char)__a, (__vector unsigned char)__b);
8121}
8122
8123// This prototype is deprecated.
8124static inline __ATTRS_o_ai __vector signed long long
8125vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
8126 return (__vector signed long long)__builtin_s390_vslb(
8127 (__vector unsigned char)__a, (__vector unsigned char)__b);
8128}
8129
8130static inline __ATTRS_o_ai __vector signed long long
8131vec_slb(__vector signed long long __a, __vector unsigned char __b) {
8132 return (__vector signed long long)__builtin_s390_vslb(
8133 (__vector unsigned char)__a, __b);
8134}
8135
8136// This prototype is deprecated.
8137static inline __ATTRS_o_ai __vector unsigned long long
8138vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
8139 return (__vector unsigned long long)__builtin_s390_vslb(
8140 (__vector unsigned char)__a, (__vector unsigned char)__b);
8141}
8142
8143// This prototype is deprecated.
8144static inline __ATTRS_o_ai __vector unsigned long long
8145vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
8146 return (__vector unsigned long long)__builtin_s390_vslb(
8147 (__vector unsigned char)__a, (__vector unsigned char)__b);
8148}
8149
8150static inline __ATTRS_o_ai __vector unsigned long long
8151vec_slb(__vector unsigned long long __a, __vector unsigned char __b) {
8152 return (__vector unsigned long long)__builtin_s390_vslb(
8153 (__vector unsigned char)__a, __b);
8154}
8155
8156static inline __ATTRS_o_ai __vector signed __int128
8157vec_slb(__vector signed __int128 __a, __vector unsigned char __b) {
8158 return (__vector signed __int128)__builtin_s390_vslb(
8159 (__vector unsigned char)__a, __b);
8160}
8161
8162static inline __ATTRS_o_ai __vector unsigned __int128
8163vec_slb(__vector unsigned __int128 __a, __vector unsigned char __b) {
8164 return (__vector unsigned __int128)__builtin_s390_vslb(
8165 (__vector unsigned char)__a, __b);
8166}
8167
8168#if __ARCH__ >= 12
8169// This prototype is deprecated.
8170static inline __ATTRS_o_ai __vector float
8171vec_slb(__vector float __a, __vector signed int __b) {
8172 return (__vector float)__builtin_s390_vslb(
8173 (__vector unsigned char)__a, (__vector unsigned char)__b);
8174}
8175
8176// This prototype is deprecated.
8177static inline __ATTRS_o_ai __vector float
8178vec_slb(__vector float __a, __vector unsigned int __b) {
8179 return (__vector float)__builtin_s390_vslb(
8180 (__vector unsigned char)__a, (__vector unsigned char)__b);
8181}
8182
8183static inline __ATTRS_o_ai __vector float
8184vec_slb(__vector float __a, __vector unsigned char __b) {
8185 return (__vector float)__builtin_s390_vslb(
8186 (__vector unsigned char)__a, __b);
8187}
8188#endif
8189
8190// This prototype is deprecated.
8191static inline __ATTRS_o_ai __vector double
8192vec_slb(__vector double __a, __vector signed long long __b) {
8193 return (__vector double)__builtin_s390_vslb(
8194 (__vector unsigned char)__a, (__vector unsigned char)__b);
8195}
8196
8197// This prototype is deprecated.
8198static inline __ATTRS_o_ai __vector double
8199vec_slb(__vector double __a, __vector unsigned long long __b) {
8200 return (__vector double)__builtin_s390_vslb(
8201 (__vector unsigned char)__a, (__vector unsigned char)__b);
8202}
8203
8204static inline __ATTRS_o_ai __vector double
8205vec_slb(__vector double __a, __vector unsigned char __b) {
8206 return (__vector double)__builtin_s390_vslb(
8207 (__vector unsigned char)__a, __b);
8208}
8209
8210/*-- vec_sld ----------------------------------------------------------------*/
8211
8212extern __ATTRS_o __vector signed char
8213vec_sld(__vector signed char __a, __vector signed char __b, int __c)
8214 __constant_range(__c, 0, 15);
8215
8216// This prototype is deprecated.
8217extern __ATTRS_o __vector __bool char
8218vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
8219 __constant_range(__c, 0, 15);
8220
8221extern __ATTRS_o __vector unsigned char
8222vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
8223 __constant_range(__c, 0, 15);
8224
8225extern __ATTRS_o __vector signed short
8226vec_sld(__vector signed short __a, __vector signed short __b, int __c)
8227 __constant_range(__c, 0, 15);
8228
8229// This prototype is deprecated.
8230extern __ATTRS_o __vector __bool short
8231vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
8232 __constant_range(__c, 0, 15);
8233
8234extern __ATTRS_o __vector unsigned short
8235vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
8236 __constant_range(__c, 0, 15);
8237
8238extern __ATTRS_o __vector signed int
8239vec_sld(__vector signed int __a, __vector signed int __b, int __c)
8240 __constant_range(__c, 0, 15);
8241
8242// This prototype is deprecated.
8243extern __ATTRS_o __vector __bool int
8244vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
8245 __constant_range(__c, 0, 15);
8246
8247extern __ATTRS_o __vector unsigned int
8248vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
8249 __constant_range(__c, 0, 15);
8250
8251extern __ATTRS_o __vector signed long long
8252vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
8253 __constant_range(__c, 0, 15);
8254
8255// This prototype is deprecated.
8256extern __ATTRS_o __vector __bool long long
8257vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
8258 __constant_range(__c, 0, 15);
8259
8260extern __ATTRS_o __vector unsigned long long
8261vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
8262 int __c)
8263 __constant_range(__c, 0, 15);
8264
8265extern __ATTRS_o __vector signed __int128
8266vec_sld(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8267 __constant_range(__c, 0, 15);
8268
8269extern __ATTRS_o __vector unsigned __int128
8270vec_sld(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8271 int __c)
8272 __constant_range(__c, 0, 15);
8273
8274#if __ARCH__ >= 12
8275extern __ATTRS_o __vector float
8276vec_sld(__vector float __a, __vector float __b, int __c)
8277 __constant_range(__c, 0, 15);
8278#endif
8279
8280extern __ATTRS_o __vector double
8281vec_sld(__vector double __a, __vector double __b, int __c)
8282 __constant_range(__c, 0, 15);
8283
8284#define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
8285 __builtin_s390_vsldb((__vector unsigned char)(X), \
8286 (__vector unsigned char)(Y), (Z)))
8287
8288/*-- vec_sldw ---------------------------------------------------------------*/
8289
8290extern __ATTRS_o __vector signed char
8291vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
8292 __constant_range(__c, 0, 3);
8293
8294extern __ATTRS_o __vector unsigned char
8295vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
8296 __constant_range(__c, 0, 3);
8297
8298extern __ATTRS_o __vector signed short
8299vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
8300 __constant_range(__c, 0, 3);
8301
8302extern __ATTRS_o __vector unsigned short
8303vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
8304 __constant_range(__c, 0, 3);
8305
8306extern __ATTRS_o __vector signed int
8307vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
8308 __constant_range(__c, 0, 3);
8309
8310extern __ATTRS_o __vector unsigned int
8311vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
8312 __constant_range(__c, 0, 3);
8313
8314extern __ATTRS_o __vector signed long long
8315vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
8316 __constant_range(__c, 0, 3);
8317
8318extern __ATTRS_o __vector unsigned long long
8319vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
8320 int __c)
8321 __constant_range(__c, 0, 3);
8322
8323extern __ATTRS_o __vector signed __int128
8324vec_sldw(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8325 __constant_range(__c, 0, 3);
8326
8327extern __ATTRS_o __vector unsigned __int128
8328vec_sldw(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8329 int __c)
8330 __constant_range(__c, 0, 3);
8331
8332// This prototype is deprecated.
8333extern __ATTRS_o __vector double
8334vec_sldw(__vector double __a, __vector double __b, int __c)
8335 __constant_range(__c, 0, 3);
8336
8337#define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
8338 __builtin_s390_vsldb((__vector unsigned char)(X), \
8339 (__vector unsigned char)(Y), (Z) * 4))
8340
8341/*-- vec_sldb ---------------------------------------------------------------*/
8342
8343#if __ARCH__ >= 13
8344
8345extern __ATTRS_o __vector signed char
8346vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
8347 __constant_range(__c, 0, 7);
8348
8349extern __ATTRS_o __vector unsigned char
8350vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
8351 __constant_range(__c, 0, 7);
8352
8353extern __ATTRS_o __vector signed short
8354vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
8355 __constant_range(__c, 0, 7);
8356
8357extern __ATTRS_o __vector unsigned short
8358vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
8359 __constant_range(__c, 0, 7);
8360
8361extern __ATTRS_o __vector signed int
8362vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
8363 __constant_range(__c, 0, 7);
8364
8365extern __ATTRS_o __vector unsigned int
8366vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
8367 __constant_range(__c, 0, 7);
8368
8369extern __ATTRS_o __vector signed long long
8370vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
8371 __constant_range(__c, 0, 7);
8372
8373extern __ATTRS_o __vector unsigned long long
8374vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
8375 int __c)
8376 __constant_range(__c, 0, 7);
8377
8378extern __ATTRS_o __vector signed __int128
8379vec_sldb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8380 __constant_range(__c, 0, 7);
8381
8382extern __ATTRS_o __vector unsigned __int128
8383vec_sldb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8384 int __c)
8385 __constant_range(__c, 0, 7);
8386
8387extern __ATTRS_o __vector float
8388vec_sldb(__vector float __a, __vector float __b, int __c)
8389 __constant_range(__c, 0, 7);
8390
8391extern __ATTRS_o __vector double
8392vec_sldb(__vector double __a, __vector double __b, int __c)
8393 __constant_range(__c, 0, 7);
8394
8395#define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
8396 __builtin_s390_vsld((__vector unsigned char)(X), \
8397 (__vector unsigned char)(Y), (Z)))
8398
8399#endif
8400
8401/*-- vec_sral ---------------------------------------------------------------*/
8402
8403static inline __ATTRS_o_ai __vector signed char
8404vec_sral(__vector signed char __a, __vector unsigned char __b) {
8405 return (__vector signed char)__builtin_s390_vsra(
8406 (__vector unsigned char)__a, __b);
8407}
8408
8409// This prototype is deprecated.
8410static inline __ATTRS_o_ai __vector signed char
8411vec_sral(__vector signed char __a, __vector unsigned short __b) {
8412 return (__vector signed char)__builtin_s390_vsra(
8413 (__vector unsigned char)__a, (__vector unsigned char)__b);
8414}
8415
8416// This prototype is deprecated.
8417static inline __ATTRS_o_ai __vector signed char
8418vec_sral(__vector signed char __a, __vector unsigned int __b) {
8419 return (__vector signed char)__builtin_s390_vsra(
8420 (__vector unsigned char)__a, (__vector unsigned char)__b);
8421}
8422
8423// This prototype is deprecated.
8424static inline __ATTRS_o_ai __vector __bool char
8425vec_sral(__vector __bool char __a, __vector unsigned char __b) {
8426 return (__vector __bool char)__builtin_s390_vsra(
8427 (__vector unsigned char)__a, __b);
8428}
8429
8430// This prototype is deprecated.
8431static inline __ATTRS_o_ai __vector __bool char
8432vec_sral(__vector __bool char __a, __vector unsigned short __b) {
8433 return (__vector __bool char)__builtin_s390_vsra(
8434 (__vector unsigned char)__a, (__vector unsigned char)__b);
8435}
8436
8437// This prototype is deprecated.
8438static inline __ATTRS_o_ai __vector __bool char
8439vec_sral(__vector __bool char __a, __vector unsigned int __b) {
8440 return (__vector __bool char)__builtin_s390_vsra(
8441 (__vector unsigned char)__a, (__vector unsigned char)__b);
8442}
8443
8444static inline __ATTRS_o_ai __vector unsigned char
8445vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
8446 return __builtin_s390_vsra(__a, __b);
8447}
8448
8449// This prototype is deprecated.
8450static inline __ATTRS_o_ai __vector unsigned char
8451vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
8452 return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
8453}
8454
8455// This prototype is deprecated.
8456static inline __ATTRS_o_ai __vector unsigned char
8457vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
8458 return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
8459}
8460
8461static inline __ATTRS_o_ai __vector signed short
8462vec_sral(__vector signed short __a, __vector unsigned char __b) {
8463 return (__vector signed short)__builtin_s390_vsra(
8464 (__vector unsigned char)__a, __b);
8465}
8466
8467// This prototype is deprecated.
8468static inline __ATTRS_o_ai __vector signed short
8469vec_sral(__vector signed short __a, __vector unsigned short __b) {
8470 return (__vector signed short)__builtin_s390_vsra(
8471 (__vector unsigned char)__a, (__vector unsigned char)__b);
8472}
8473
8474// This prototype is deprecated.
8475static inline __ATTRS_o_ai __vector signed short
8476vec_sral(__vector signed short __a, __vector unsigned int __b) {
8477 return (__vector signed short)__builtin_s390_vsra(
8478 (__vector unsigned char)__a, (__vector unsigned char)__b);
8479}
8480
8481// This prototype is deprecated.
8482static inline __ATTRS_o_ai __vector __bool short
8483vec_sral(__vector __bool short __a, __vector unsigned char __b) {
8484 return (__vector __bool short)__builtin_s390_vsra(
8485 (__vector unsigned char)__a, __b);
8486}
8487
8488// This prototype is deprecated.
8489static inline __ATTRS_o_ai __vector __bool short
8490vec_sral(__vector __bool short __a, __vector unsigned short __b) {
8491 return (__vector __bool short)__builtin_s390_vsra(
8492 (__vector unsigned char)__a, (__vector unsigned char)__b);
8493}
8494
8495// This prototype is deprecated.
8496static inline __ATTRS_o_ai __vector __bool short
8497vec_sral(__vector __bool short __a, __vector unsigned int __b) {
8498 return (__vector __bool short)__builtin_s390_vsra(
8499 (__vector unsigned char)__a, (__vector unsigned char)__b);
8500}
8501
8502static inline __ATTRS_o_ai __vector unsigned short
8503vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
8504 return (__vector unsigned short)__builtin_s390_vsra(
8505 (__vector unsigned char)__a, __b);
8506}
8507
8508// This prototype is deprecated.
8509static inline __ATTRS_o_ai __vector unsigned short
8510vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
8511 return (__vector unsigned short)__builtin_s390_vsra(
8512 (__vector unsigned char)__a, (__vector unsigned char)__b);
8513}
8514
8515// This prototype is deprecated.
8516static inline __ATTRS_o_ai __vector unsigned short
8517vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
8518 return (__vector unsigned short)__builtin_s390_vsra(
8519 (__vector unsigned char)__a, (__vector unsigned char)__b);
8520}
8521
8522static inline __ATTRS_o_ai __vector signed int
8523vec_sral(__vector signed int __a, __vector unsigned char __b) {
8524 return (__vector signed int)__builtin_s390_vsra(
8525 (__vector unsigned char)__a, __b);
8526}
8527
8528// This prototype is deprecated.
8529static inline __ATTRS_o_ai __vector signed int
8530vec_sral(__vector signed int __a, __vector unsigned short __b) {
8531 return (__vector signed int)__builtin_s390_vsra(
8532 (__vector unsigned char)__a, (__vector unsigned char)__b);
8533}
8534
8535// This prototype is deprecated.
8536static inline __ATTRS_o_ai __vector signed int
8537vec_sral(__vector signed int __a, __vector unsigned int __b) {
8538 return (__vector signed int)__builtin_s390_vsra(
8539 (__vector unsigned char)__a, (__vector unsigned char)__b);
8540}
8541
8542// This prototype is deprecated.
8543static inline __ATTRS_o_ai __vector __bool int
8544vec_sral(__vector __bool int __a, __vector unsigned char __b) {
8545 return (__vector __bool int)__builtin_s390_vsra(
8546 (__vector unsigned char)__a, __b);
8547}
8548
8549// This prototype is deprecated.
8550static inline __ATTRS_o_ai __vector __bool int
8551vec_sral(__vector __bool int __a, __vector unsigned short __b) {
8552 return (__vector __bool int)__builtin_s390_vsra(
8553 (__vector unsigned char)__a, (__vector unsigned char)__b);
8554}
8555
8556// This prototype is deprecated.
8557static inline __ATTRS_o_ai __vector __bool int
8558vec_sral(__vector __bool int __a, __vector unsigned int __b) {
8559 return (__vector __bool int)__builtin_s390_vsra(
8560 (__vector unsigned char)__a, (__vector unsigned char)__b);
8561}
8562
8563static inline __ATTRS_o_ai __vector unsigned int
8564vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
8565 return (__vector unsigned int)__builtin_s390_vsra(
8566 (__vector unsigned char)__a, __b);
8567}
8568
8569// This prototype is deprecated.
8570static inline __ATTRS_o_ai __vector unsigned int
8571vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
8572 return (__vector unsigned int)__builtin_s390_vsra(
8573 (__vector unsigned char)__a, (__vector unsigned char)__b);
8574}
8575
8576// This prototype is deprecated.
8577static inline __ATTRS_o_ai __vector unsigned int
8578vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
8579 return (__vector unsigned int)__builtin_s390_vsra(
8580 (__vector unsigned char)__a, (__vector unsigned char)__b);
8581}
8582
8583static inline __ATTRS_o_ai __vector signed long long
8584vec_sral(__vector signed long long __a, __vector unsigned char __b) {
8585 return (__vector signed long long)__builtin_s390_vsra(
8586 (__vector unsigned char)__a, __b);
8587}
8588
8589// This prototype is deprecated.
8590static inline __ATTRS_o_ai __vector signed long long
8591vec_sral(__vector signed long long __a, __vector unsigned short __b) {
8592 return (__vector signed long long)__builtin_s390_vsra(
8593 (__vector unsigned char)__a, (__vector unsigned char)__b);
8594}
8595
8596// This prototype is deprecated.
8597static inline __ATTRS_o_ai __vector signed long long
8598vec_sral(__vector signed long long __a, __vector unsigned int __b) {
8599 return (__vector signed long long)__builtin_s390_vsra(
8600 (__vector unsigned char)__a, (__vector unsigned char)__b);
8601}
8602
8603// This prototype is deprecated.
8604static inline __ATTRS_o_ai __vector __bool long long
8605vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
8606 return (__vector __bool long long)__builtin_s390_vsra(
8607 (__vector unsigned char)__a, __b);
8608}
8609
8610// This prototype is deprecated.
8611static inline __ATTRS_o_ai __vector __bool long long
8612vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
8613 return (__vector __bool long long)__builtin_s390_vsra(
8614 (__vector unsigned char)__a, (__vector unsigned char)__b);
8615}
8616
8617// This prototype is deprecated.
8618static inline __ATTRS_o_ai __vector __bool long long
8619vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
8620 return (__vector __bool long long)__builtin_s390_vsra(
8621 (__vector unsigned char)__a, (__vector unsigned char)__b);
8622}
8623
8624static inline __ATTRS_o_ai __vector unsigned long long
8625vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
8626 return (__vector unsigned long long)__builtin_s390_vsra(
8627 (__vector unsigned char)__a, __b);
8628}
8629
8630// This prototype is deprecated.
8631static inline __ATTRS_o_ai __vector unsigned long long
8632vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
8633 return (__vector unsigned long long)__builtin_s390_vsra(
8634 (__vector unsigned char)__a, (__vector unsigned char)__b);
8635}
8636
8637// This prototype is deprecated.
8638static inline __ATTRS_o_ai __vector unsigned long long
8639vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
8640 return (__vector unsigned long long)__builtin_s390_vsra(
8641 (__vector unsigned char)__a, (__vector unsigned char)__b);
8642}
8643
8644static inline __ATTRS_o_ai __vector signed __int128
8645vec_sral(__vector signed __int128 __a, __vector unsigned char __b) {
8646 return (__vector signed __int128)__builtin_s390_vsra(
8647 (__vector unsigned char)__a, __b);
8648}
8649
8650static inline __ATTRS_o_ai __vector unsigned __int128
8651vec_sral(__vector unsigned __int128 __a, __vector unsigned char __b) {
8652 return (__vector unsigned __int128)__builtin_s390_vsra(
8653 (__vector unsigned char)__a, __b);
8654}
8655
8656/*-- vec_srab ---------------------------------------------------------------*/
8657
8658// This prototype is deprecated.
8659static inline __ATTRS_o_ai __vector signed char
8660vec_srab(__vector signed char __a, __vector signed char __b) {
8661 return (__vector signed char)__builtin_s390_vsrab(
8662 (__vector unsigned char)__a, (__vector unsigned char)__b);
8663}
8664
8665static inline __ATTRS_o_ai __vector signed char
8666vec_srab(__vector signed char __a, __vector unsigned char __b) {
8667 return (__vector signed char)__builtin_s390_vsrab(
8668 (__vector unsigned char)__a, __b);
8669}
8670
8671// This prototype is deprecated.
8672static inline __ATTRS_o_ai __vector unsigned char
8673vec_srab(__vector unsigned char __a, __vector signed char __b) {
8674 return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
8675}
8676
8677static inline __ATTRS_o_ai __vector unsigned char
8678vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
8679 return __builtin_s390_vsrab(__a, __b);
8680}
8681
8682// This prototype is deprecated.
8683static inline __ATTRS_o_ai __vector signed short
8684vec_srab(__vector signed short __a, __vector signed short __b) {
8685 return (__vector signed short)__builtin_s390_vsrab(
8686 (__vector unsigned char)__a, (__vector unsigned char)__b);
8687}
8688
8689// This prototype is deprecated.
8690static inline __ATTRS_o_ai __vector signed short
8691vec_srab(__vector signed short __a, __vector unsigned short __b) {
8692 return (__vector signed short)__builtin_s390_vsrab(
8693 (__vector unsigned char)__a, (__vector unsigned char)__b);
8694}
8695
8696static inline __ATTRS_o_ai __vector signed short
8697vec_srab(__vector signed short __a, __vector unsigned char __b) {
8698 return (__vector signed short)__builtin_s390_vsrab(
8699 (__vector unsigned char)__a, __b);
8700}
8701
8702// This prototype is deprecated.
8703static inline __ATTRS_o_ai __vector unsigned short
8704vec_srab(__vector unsigned short __a, __vector signed short __b) {
8705 return (__vector unsigned short)__builtin_s390_vsrab(
8706 (__vector unsigned char)__a, (__vector unsigned char)__b);
8707}
8708
8709// This prototype is deprecated.
8710static inline __ATTRS_o_ai __vector unsigned short
8711vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
8712 return (__vector unsigned short)__builtin_s390_vsrab(
8713 (__vector unsigned char)__a, (__vector unsigned char)__b);
8714}
8715
8716static inline __ATTRS_o_ai __vector unsigned short
8717vec_srab(__vector unsigned short __a, __vector unsigned char __b) {
8718 return (__vector unsigned short)__builtin_s390_vsrab(
8719 (__vector unsigned char)__a, __b);
8720}
8721
8722// This prototype is deprecated.
8723static inline __ATTRS_o_ai __vector signed int
8724vec_srab(__vector signed int __a, __vector signed int __b) {
8725 return (__vector signed int)__builtin_s390_vsrab(
8726 (__vector unsigned char)__a, (__vector unsigned char)__b);
8727}
8728
8729// This prototype is deprecated.
8730static inline __ATTRS_o_ai __vector signed int
8731vec_srab(__vector signed int __a, __vector unsigned int __b) {
8732 return (__vector signed int)__builtin_s390_vsrab(
8733 (__vector unsigned char)__a, (__vector unsigned char)__b);
8734}
8735
8736static inline __ATTRS_o_ai __vector signed int
8737vec_srab(__vector signed int __a, __vector unsigned char __b) {
8738 return (__vector signed int)__builtin_s390_vsrab(
8739 (__vector unsigned char)__a, __b);
8740}
8741
8742// This prototype is deprecated.
8743static inline __ATTRS_o_ai __vector unsigned int
8744vec_srab(__vector unsigned int __a, __vector signed int __b) {
8745 return (__vector unsigned int)__builtin_s390_vsrab(
8746 (__vector unsigned char)__a, (__vector unsigned char)__b);
8747}
8748
8749// This prototype is deprecated.
8750static inline __ATTRS_o_ai __vector unsigned int
8751vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
8752 return (__vector unsigned int)__builtin_s390_vsrab(
8753 (__vector unsigned char)__a, (__vector unsigned char)__b);
8754}
8755
8756static inline __ATTRS_o_ai __vector unsigned int
8757vec_srab(__vector unsigned int __a, __vector unsigned char __b) {
8758 return (__vector unsigned int)__builtin_s390_vsrab(
8759 (__vector unsigned char)__a, __b);
8760}
8761
8762// This prototype is deprecated.
8763static inline __ATTRS_o_ai __vector signed long long
8764vec_srab(__vector signed long long __a, __vector signed long long __b) {
8765 return (__vector signed long long)__builtin_s390_vsrab(
8766 (__vector unsigned char)__a, (__vector unsigned char)__b);
8767}
8768
8769// This prototype is deprecated.
8770static inline __ATTRS_o_ai __vector signed long long
8771vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
8772 return (__vector signed long long)__builtin_s390_vsrab(
8773 (__vector unsigned char)__a, (__vector unsigned char)__b);
8774}
8775
8776static inline __ATTRS_o_ai __vector signed long long
8777vec_srab(__vector signed long long __a, __vector unsigned char __b) {
8778 return (__vector signed long long)__builtin_s390_vsrab(
8779 (__vector unsigned char)__a, __b);
8780}
8781
8782// This prototype is deprecated.
8783static inline __ATTRS_o_ai __vector unsigned long long
8784vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
8785 return (__vector unsigned long long)__builtin_s390_vsrab(
8786 (__vector unsigned char)__a, (__vector unsigned char)__b);
8787}
8788
8789// This prototype is deprecated.
8790static inline __ATTRS_o_ai __vector unsigned long long
8791vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
8792 return (__vector unsigned long long)__builtin_s390_vsrab(
8793 (__vector unsigned char)__a, (__vector unsigned char)__b);
8794}
8795
8796static inline __ATTRS_o_ai __vector unsigned long long
8797vec_srab(__vector unsigned long long __a, __vector unsigned char __b) {
8798 return (__vector unsigned long long)__builtin_s390_vsrab(
8799 (__vector unsigned char)__a, __b);
8800}
8801
8802static inline __ATTRS_o_ai __vector signed __int128
8803vec_srab(__vector signed __int128 __a, __vector unsigned char __b) {
8804 return (__vector signed __int128)__builtin_s390_vsrab(
8805 (__vector unsigned char)__a, __b);
8806}
8807
8808static inline __ATTRS_o_ai __vector unsigned __int128
8809vec_srab(__vector unsigned __int128 __a, __vector unsigned char __b) {
8810 return (__vector unsigned __int128)__builtin_s390_vsrab(
8811 (__vector unsigned char)__a, __b);
8812}
8813
8814#if __ARCH__ >= 12
8815// This prototype is deprecated.
8816static inline __ATTRS_o_ai __vector float
8817vec_srab(__vector float __a, __vector signed int __b) {
8818 return (__vector float)__builtin_s390_vsrab(
8819 (__vector unsigned char)__a, (__vector unsigned char)__b);
8820}
8821
8822// This prototype is deprecated.
8823static inline __ATTRS_o_ai __vector float
8824vec_srab(__vector float __a, __vector unsigned int __b) {
8825 return (__vector float)__builtin_s390_vsrab(
8826 (__vector unsigned char)__a, (__vector unsigned char)__b);
8827}
8828
8829static inline __ATTRS_o_ai __vector float
8830vec_srab(__vector float __a, __vector unsigned char __b) {
8831 return (__vector float)__builtin_s390_vsrab(
8832 (__vector unsigned char)__a, __b);
8833}
8834#endif
8835
8836// This prototype is deprecated.
8837static inline __ATTRS_o_ai __vector double
8838vec_srab(__vector double __a, __vector signed long long __b) {
8839 return (__vector double)__builtin_s390_vsrab(
8840 (__vector unsigned char)__a, (__vector unsigned char)__b);
8841}
8842
8843// This prototype is deprecated.
8844static inline __ATTRS_o_ai __vector double
8845vec_srab(__vector double __a, __vector unsigned long long __b) {
8846 return (__vector double)__builtin_s390_vsrab(
8847 (__vector unsigned char)__a, (__vector unsigned char)__b);
8848}
8849
8850static inline __ATTRS_o_ai __vector double
8851vec_srab(__vector double __a, __vector unsigned char __b) {
8852 return (__vector double)__builtin_s390_vsrab(
8853 (__vector unsigned char)__a, __b);
8854}
8855
8856/*-- vec_srl ----------------------------------------------------------------*/
8857
8858static inline __ATTRS_o_ai __vector signed char
8859vec_srl(__vector signed char __a, __vector unsigned char __b) {
8860 return (__vector signed char)__builtin_s390_vsrl(
8861 (__vector unsigned char)__a, __b);
8862}
8863
8864// This prototype is deprecated.
8865static inline __ATTRS_o_ai __vector signed char
8866vec_srl(__vector signed char __a, __vector unsigned short __b) {
8867 return (__vector signed char)__builtin_s390_vsrl(
8868 (__vector unsigned char)__a, (__vector unsigned char)__b);
8869}
8870
8871// This prototype is deprecated.
8872static inline __ATTRS_o_ai __vector signed char
8873vec_srl(__vector signed char __a, __vector unsigned int __b) {
8874 return (__vector signed char)__builtin_s390_vsrl(
8875 (__vector unsigned char)__a, (__vector unsigned char)__b);
8876}
8877
8878// This prototype is deprecated.
8879static inline __ATTRS_o_ai __vector __bool char
8880vec_srl(__vector __bool char __a, __vector unsigned char __b) {
8881 return (__vector __bool char)__builtin_s390_vsrl(
8882 (__vector unsigned char)__a, __b);
8883}
8884
8885// This prototype is deprecated.
8886static inline __ATTRS_o_ai __vector __bool char
8887vec_srl(__vector __bool char __a, __vector unsigned short __b) {
8888 return (__vector __bool char)__builtin_s390_vsrl(
8889 (__vector unsigned char)__a, (__vector unsigned char)__b);
8890}
8891
8892// This prototype is deprecated.
8893static inline __ATTRS_o_ai __vector __bool char
8894vec_srl(__vector __bool char __a, __vector unsigned int __b) {
8895 return (__vector __bool char)__builtin_s390_vsrl(
8896 (__vector unsigned char)__a, (__vector unsigned char)__b);
8897}
8898
8899static inline __ATTRS_o_ai __vector unsigned char
8900vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
8901 return __builtin_s390_vsrl(__a, __b);
8902}
8903
8904// This prototype is deprecated.
8905static inline __ATTRS_o_ai __vector unsigned char
8906vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
8907 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
8908}
8909
8910// This prototype is deprecated.
8911static inline __ATTRS_o_ai __vector unsigned char
8912vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
8913 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
8914}
8915
8916static inline __ATTRS_o_ai __vector signed short
8917vec_srl(__vector signed short __a, __vector unsigned char __b) {
8918 return (__vector signed short)__builtin_s390_vsrl(
8919 (__vector unsigned char)__a, __b);
8920}
8921
8922// This prototype is deprecated.
8923static inline __ATTRS_o_ai __vector signed short
8924vec_srl(__vector signed short __a, __vector unsigned short __b) {
8925 return (__vector signed short)__builtin_s390_vsrl(
8926 (__vector unsigned char)__a, (__vector unsigned char)__b);
8927}
8928
8929// This prototype is deprecated.
8930static inline __ATTRS_o_ai __vector signed short
8931vec_srl(__vector signed short __a, __vector unsigned int __b) {
8932 return (__vector signed short)__builtin_s390_vsrl(
8933 (__vector unsigned char)__a, (__vector unsigned char)__b);
8934}
8935
8936// This prototype is deprecated.
8937static inline __ATTRS_o_ai __vector __bool short
8938vec_srl(__vector __bool short __a, __vector unsigned char __b) {
8939 return (__vector __bool short)__builtin_s390_vsrl(
8940 (__vector unsigned char)__a, __b);
8941}
8942
8943// This prototype is deprecated.
8944static inline __ATTRS_o_ai __vector __bool short
8945vec_srl(__vector __bool short __a, __vector unsigned short __b) {
8946 return (__vector __bool short)__builtin_s390_vsrl(
8947 (__vector unsigned char)__a, (__vector unsigned char)__b);
8948}
8949
8950// This prototype is deprecated.
8951static inline __ATTRS_o_ai __vector __bool short
8952vec_srl(__vector __bool short __a, __vector unsigned int __b) {
8953 return (__vector __bool short)__builtin_s390_vsrl(
8954 (__vector unsigned char)__a, (__vector unsigned char)__b);
8955}
8956
8957static inline __ATTRS_o_ai __vector unsigned short
8958vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
8959 return (__vector unsigned short)__builtin_s390_vsrl(
8960 (__vector unsigned char)__a, __b);
8961}
8962
8963// This prototype is deprecated.
8964static inline __ATTRS_o_ai __vector unsigned short
8965vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
8966 return (__vector unsigned short)__builtin_s390_vsrl(
8967 (__vector unsigned char)__a, (__vector unsigned char)__b);
8968}
8969
8970// This prototype is deprecated.
8971static inline __ATTRS_o_ai __vector unsigned short
8972vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
8973 return (__vector unsigned short)__builtin_s390_vsrl(
8974 (__vector unsigned char)__a, (__vector unsigned char)__b);
8975}
8976
8977static inline __ATTRS_o_ai __vector signed int
8978vec_srl(__vector signed int __a, __vector unsigned char __b) {
8979 return (__vector signed int)__builtin_s390_vsrl(
8980 (__vector unsigned char)__a, __b);
8981}
8982
8983// This prototype is deprecated.
8984static inline __ATTRS_o_ai __vector signed int
8985vec_srl(__vector signed int __a, __vector unsigned short __b) {
8986 return (__vector signed int)__builtin_s390_vsrl(
8987 (__vector unsigned char)__a, (__vector unsigned char)__b);
8988}
8989
8990// This prototype is deprecated.
8991static inline __ATTRS_o_ai __vector signed int
8992vec_srl(__vector signed int __a, __vector unsigned int __b) {
8993 return (__vector signed int)__builtin_s390_vsrl(
8994 (__vector unsigned char)__a, (__vector unsigned char)__b);
8995}
8996
8997// This prototype is deprecated.
8998static inline __ATTRS_o_ai __vector __bool int
8999vec_srl(__vector __bool int __a, __vector unsigned char __b) {
9000 return (__vector __bool int)__builtin_s390_vsrl(
9001 (__vector unsigned char)__a, __b);
9002}
9003
9004// This prototype is deprecated.
9005static inline __ATTRS_o_ai __vector __bool int
9006vec_srl(__vector __bool int __a, __vector unsigned short __b) {
9007 return (__vector __bool int)__builtin_s390_vsrl(
9008 (__vector unsigned char)__a, (__vector unsigned char)__b);
9009}
9010
9011// This prototype is deprecated.
9012static inline __ATTRS_o_ai __vector __bool int
9013vec_srl(__vector __bool int __a, __vector unsigned int __b) {
9014 return (__vector __bool int)__builtin_s390_vsrl(
9015 (__vector unsigned char)__a, (__vector unsigned char)__b);
9016}
9017
9018static inline __ATTRS_o_ai __vector unsigned int
9019vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
9020 return (__vector unsigned int)__builtin_s390_vsrl(
9021 (__vector unsigned char)__a, __b);
9022}
9023
9024// This prototype is deprecated.
9025static inline __ATTRS_o_ai __vector unsigned int
9026vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
9027 return (__vector unsigned int)__builtin_s390_vsrl(
9028 (__vector unsigned char)__a, (__vector unsigned char)__b);
9029}
9030
9031// This prototype is deprecated.
9032static inline __ATTRS_o_ai __vector unsigned int
9033vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
9034 return (__vector unsigned int)__builtin_s390_vsrl(
9035 (__vector unsigned char)__a, (__vector unsigned char)__b);
9036}
9037
9038static inline __ATTRS_o_ai __vector signed long long
9039vec_srl(__vector signed long long __a, __vector unsigned char __b) {
9040 return (__vector signed long long)__builtin_s390_vsrl(
9041 (__vector unsigned char)__a, __b);
9042}
9043
9044// This prototype is deprecated.
9045static inline __ATTRS_o_ai __vector signed long long
9046vec_srl(__vector signed long long __a, __vector unsigned short __b) {
9047 return (__vector signed long long)__builtin_s390_vsrl(
9048 (__vector unsigned char)__a, (__vector unsigned char)__b);
9049}
9050
9051// This prototype is deprecated.
9052static inline __ATTRS_o_ai __vector signed long long
9053vec_srl(__vector signed long long __a, __vector unsigned int __b) {
9054 return (__vector signed long long)__builtin_s390_vsrl(
9055 (__vector unsigned char)__a, (__vector unsigned char)__b);
9056}
9057
9058// This prototype is deprecated.
9059static inline __ATTRS_o_ai __vector __bool long long
9060vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
9061 return (__vector __bool long long)__builtin_s390_vsrl(
9062 (__vector unsigned char)__a, __b);
9063}
9064
9065// This prototype is deprecated.
9066static inline __ATTRS_o_ai __vector __bool long long
9067vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
9068 return (__vector __bool long long)__builtin_s390_vsrl(
9069 (__vector unsigned char)__a, (__vector unsigned char)__b);
9070}
9071
9072// This prototype is deprecated.
9073static inline __ATTRS_o_ai __vector __bool long long
9074vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
9075 return (__vector __bool long long)__builtin_s390_vsrl(
9076 (__vector unsigned char)__a, (__vector unsigned char)__b);
9077}
9078
9079static inline __ATTRS_o_ai __vector unsigned long long
9080vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
9081 return (__vector unsigned long long)__builtin_s390_vsrl(
9082 (__vector unsigned char)__a, __b);
9083}
9084
9085// This prototype is deprecated.
9086static inline __ATTRS_o_ai __vector unsigned long long
9087vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
9088 return (__vector unsigned long long)__builtin_s390_vsrl(
9089 (__vector unsigned char)__a, (__vector unsigned char)__b);
9090}
9091
9092// This prototype is deprecated.
9093static inline __ATTRS_o_ai __vector unsigned long long
9094vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
9095 return (__vector unsigned long long)__builtin_s390_vsrl(
9096 (__vector unsigned char)__a, (__vector unsigned char)__b);
9097}
9098
9099static inline __ATTRS_o_ai __vector signed __int128
9100vec_srl(__vector signed __int128 __a, __vector unsigned char __b) {
9101 return (__vector signed __int128)__builtin_s390_vsrl(
9102 (__vector unsigned char)__a, __b);
9103}
9104
9105static inline __ATTRS_o_ai __vector unsigned __int128
9106vec_srl(__vector unsigned __int128 __a, __vector unsigned char __b) {
9107 return (__vector unsigned __int128)__builtin_s390_vsrl(
9108 (__vector unsigned char)__a, __b);
9109}
9110
9111/*-- vec_srb ----------------------------------------------------------------*/
9112
9113// This prototype is deprecated.
9114static inline __ATTRS_o_ai __vector signed char
9115vec_srb(__vector signed char __a, __vector signed char __b) {
9116 return (__vector signed char)__builtin_s390_vsrlb(
9117 (__vector unsigned char)__a, (__vector unsigned char)__b);
9118}
9119
9120static inline __ATTRS_o_ai __vector signed char
9121vec_srb(__vector signed char __a, __vector unsigned char __b) {
9122 return (__vector signed char)__builtin_s390_vsrlb(
9123 (__vector unsigned char)__a, __b);
9124}
9125
9126// This prototype is deprecated.
9127static inline __ATTRS_o_ai __vector unsigned char
9128vec_srb(__vector unsigned char __a, __vector signed char __b) {
9129 return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
9130}
9131
9132static inline __ATTRS_o_ai __vector unsigned char
9133vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
9134 return __builtin_s390_vsrlb(__a, __b);
9135}
9136
9137// This prototype is deprecated.
9138static inline __ATTRS_o_ai __vector signed short
9139vec_srb(__vector signed short __a, __vector signed short __b) {
9140 return (__vector signed short)__builtin_s390_vsrlb(
9141 (__vector unsigned char)__a, (__vector unsigned char)__b);
9142}
9143
9144// This prototype is deprecated.
9145static inline __ATTRS_o_ai __vector signed short
9146vec_srb(__vector signed short __a, __vector unsigned short __b) {
9147 return (__vector signed short)__builtin_s390_vsrlb(
9148 (__vector unsigned char)__a, (__vector unsigned char)__b);
9149}
9150
9151static inline __ATTRS_o_ai __vector signed short
9152vec_srb(__vector signed short __a, __vector unsigned char __b) {
9153 return (__vector signed short)__builtin_s390_vsrlb(
9154 (__vector unsigned char)__a, __b);
9155}
9156
9157// This prototype is deprecated.
9158static inline __ATTRS_o_ai __vector unsigned short
9159vec_srb(__vector unsigned short __a, __vector signed short __b) {
9160 return (__vector unsigned short)__builtin_s390_vsrlb(
9161 (__vector unsigned char)__a, (__vector unsigned char)__b);
9162}
9163
9164// This prototype is deprecated.
9165static inline __ATTRS_o_ai __vector unsigned short
9166vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
9167 return (__vector unsigned short)__builtin_s390_vsrlb(
9168 (__vector unsigned char)__a, (__vector unsigned char)__b);
9169}
9170
9171static inline __ATTRS_o_ai __vector unsigned short
9172vec_srb(__vector unsigned short __a, __vector unsigned char __b) {
9173 return (__vector unsigned short)__builtin_s390_vsrlb(
9174 (__vector unsigned char)__a, __b);
9175}
9176
9177// This prototype is deprecated.
9178static inline __ATTRS_o_ai __vector signed int
9179vec_srb(__vector signed int __a, __vector signed int __b) {
9180 return (__vector signed int)__builtin_s390_vsrlb(
9181 (__vector unsigned char)__a, (__vector unsigned char)__b);
9182}
9183
9184// This prototype is deprecated.
9185static inline __ATTRS_o_ai __vector signed int
9186vec_srb(__vector signed int __a, __vector unsigned int __b) {
9187 return (__vector signed int)__builtin_s390_vsrlb(
9188 (__vector unsigned char)__a, (__vector unsigned char)__b);
9189}
9190
9191static inline __ATTRS_o_ai __vector signed int
9192vec_srb(__vector signed int __a, __vector unsigned char __b) {
9193 return (__vector signed int)__builtin_s390_vsrlb(
9194 (__vector unsigned char)__a, __b);
9195}
9196
9197// This prototype is deprecated.
9198static inline __ATTRS_o_ai __vector unsigned int
9199vec_srb(__vector unsigned int __a, __vector signed int __b) {
9200 return (__vector unsigned int)__builtin_s390_vsrlb(
9201 (__vector unsigned char)__a, (__vector unsigned char)__b);
9202}
9203
9204// This prototype is deprecated.
9205static inline __ATTRS_o_ai __vector unsigned int
9206vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
9207 return (__vector unsigned int)__builtin_s390_vsrlb(
9208 (__vector unsigned char)__a, (__vector unsigned char)__b);
9209}
9210
9211static inline __ATTRS_o_ai __vector unsigned int
9212vec_srb(__vector unsigned int __a, __vector unsigned char __b) {
9213 return (__vector unsigned int)__builtin_s390_vsrlb(
9214 (__vector unsigned char)__a, __b);
9215}
9216
9217// This prototype is deprecated.
9218static inline __ATTRS_o_ai __vector signed long long
9219vec_srb(__vector signed long long __a, __vector signed long long __b) {
9220 return (__vector signed long long)__builtin_s390_vsrlb(
9221 (__vector unsigned char)__a, (__vector unsigned char)__b);
9222}
9223
9224// This prototype is deprecated.
9225static inline __ATTRS_o_ai __vector signed long long
9226vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
9227 return (__vector signed long long)__builtin_s390_vsrlb(
9228 (__vector unsigned char)__a, (__vector unsigned char)__b);
9229}
9230
9231static inline __ATTRS_o_ai __vector signed long long
9232vec_srb(__vector signed long long __a, __vector unsigned char __b) {
9233 return (__vector signed long long)__builtin_s390_vsrlb(
9234 (__vector unsigned char)__a, __b);
9235}
9236
9237// This prototype is deprecated.
9238static inline __ATTRS_o_ai __vector unsigned long long
9239vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
9240 return (__vector unsigned long long)__builtin_s390_vsrlb(
9241 (__vector unsigned char)__a, (__vector unsigned char)__b);
9242}
9243
9244// This prototype is deprecated.
9245static inline __ATTRS_o_ai __vector unsigned long long
9246vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
9247 return (__vector unsigned long long)__builtin_s390_vsrlb(
9248 (__vector unsigned char)__a, (__vector unsigned char)__b);
9249}
9250
9251static inline __ATTRS_o_ai __vector unsigned long long
9252vec_srb(__vector unsigned long long __a, __vector unsigned char __b) {
9253 return (__vector unsigned long long)__builtin_s390_vsrlb(
9254 (__vector unsigned char)__a, __b);
9255}
9256
9257static inline __ATTRS_o_ai __vector signed __int128
9258vec_srb(__vector signed __int128 __a, __vector unsigned char __b) {
9259 return (__vector signed __int128)__builtin_s390_vsrlb(
9260 (__vector unsigned char)__a, __b);
9261}
9262
9263static inline __ATTRS_o_ai __vector unsigned __int128
9264vec_srb(__vector unsigned __int128 __a, __vector unsigned char __b) {
9265 return (__vector unsigned __int128)__builtin_s390_vsrlb(
9266 (__vector unsigned char)__a, __b);
9267}
9268
9269#if __ARCH__ >= 12
9270// This prototype is deprecated.
9271static inline __ATTRS_o_ai __vector float
9272vec_srb(__vector float __a, __vector signed int __b) {
9273 return (__vector float)__builtin_s390_vsrlb(
9274 (__vector unsigned char)__a, (__vector unsigned char)__b);
9275}
9276
9277// This prototype is deprecated.
9278static inline __ATTRS_o_ai __vector float
9279vec_srb(__vector float __a, __vector unsigned int __b) {
9280 return (__vector float)__builtin_s390_vsrlb(
9281 (__vector unsigned char)__a, (__vector unsigned char)__b);
9282}
9283
9284static inline __ATTRS_o_ai __vector float
9285vec_srb(__vector float __a, __vector unsigned char __b) {
9286 return (__vector float)__builtin_s390_vsrlb(
9287 (__vector unsigned char)__a, __b);
9288}
9289#endif
9290
9291// This prototype is deprecated.
9292static inline __ATTRS_o_ai __vector double
9293vec_srb(__vector double __a, __vector signed long long __b) {
9294 return (__vector double)__builtin_s390_vsrlb(
9295 (__vector unsigned char)__a, (__vector unsigned char)__b);
9296}
9297
9298// This prototype is deprecated.
9299static inline __ATTRS_o_ai __vector double
9300vec_srb(__vector double __a, __vector unsigned long long __b) {
9301 return (__vector double)__builtin_s390_vsrlb(
9302 (__vector unsigned char)__a, (__vector unsigned char)__b);
9303}
9304
9305static inline __ATTRS_o_ai __vector double
9306vec_srb(__vector double __a, __vector unsigned char __b) {
9307 return (__vector double)__builtin_s390_vsrlb(
9308 (__vector unsigned char)__a, __b);
9309}
9310
9311/*-- vec_srdb ---------------------------------------------------------------*/
9312
9313#if __ARCH__ >= 13
9314
9315extern __ATTRS_o __vector signed char
9316vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
9317 __constant_range(__c, 0, 7);
9318
9319extern __ATTRS_o __vector unsigned char
9320vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
9321 __constant_range(__c, 0, 7);
9322
9323extern __ATTRS_o __vector signed short
9324vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
9325 __constant_range(__c, 0, 7);
9326
9327extern __ATTRS_o __vector unsigned short
9328vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
9329 __constant_range(__c, 0, 7);
9330
9331extern __ATTRS_o __vector signed int
9332vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
9333 __constant_range(__c, 0, 7);
9334
9335extern __ATTRS_o __vector unsigned int
9336vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
9337 __constant_range(__c, 0, 7);
9338
9339extern __ATTRS_o __vector signed long long
9340vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
9341 __constant_range(__c, 0, 7);
9342
9343extern __ATTRS_o __vector unsigned long long
9344vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
9345 int __c)
9346 __constant_range(__c, 0, 7);
9347
9348extern __ATTRS_o __vector signed __int128
9349vec_srdb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
9350 __constant_range(__c, 0, 7);
9351
9352extern __ATTRS_o __vector unsigned __int128
9353vec_srdb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9354 int __c)
9355 __constant_range(__c, 0, 7);
9356
9357extern __ATTRS_o __vector float
9358vec_srdb(__vector float __a, __vector float __b, int __c)
9359 __constant_range(__c, 0, 7);
9360
9361extern __ATTRS_o __vector double
9362vec_srdb(__vector double __a, __vector double __b, int __c)
9363 __constant_range(__c, 0, 7);
9364
9365#define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
9366 __builtin_s390_vsrd((__vector unsigned char)(X), \
9367 (__vector unsigned char)(Y), (Z)))
9368
9369#endif
9370
9371/*-- vec_abs ----------------------------------------------------------------*/
9372
9373static inline __ATTRS_o_ai __vector signed char
9374vec_abs(__vector signed char __a) {
9375 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
9376}
9377
9378static inline __ATTRS_o_ai __vector signed short
9379vec_abs(__vector signed short __a) {
9380 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
9381}
9382
9383static inline __ATTRS_o_ai __vector signed int
9384vec_abs(__vector signed int __a) {
9385 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
9386}
9387
9388static inline __ATTRS_o_ai __vector signed long long
9389vec_abs(__vector signed long long __a) {
9390 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
9391}
9392
9393static inline __ATTRS_o_ai __vector signed __int128
9394vec_abs(__vector signed __int128 __a) {
9395 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed __int128)0));
9396}
9397
9398#if __ARCH__ >= 12
9399static inline __ATTRS_o_ai __vector float
9400vec_abs(__vector float __a) {
9401 return __builtin_s390_vflpsb(__a);
9402}
9403#endif
9404
9405static inline __ATTRS_o_ai __vector double
9406vec_abs(__vector double __a) {
9407 return __builtin_s390_vflpdb(__a);
9408}
9409
9410/*-- vec_nabs ---------------------------------------------------------------*/
9411
9412#if __ARCH__ >= 12
9413static inline __ATTRS_o_ai __vector float
9414vec_nabs(__vector float __a) {
9415 return __builtin_s390_vflnsb(__a);
9416}
9417#endif
9418
9419static inline __ATTRS_o_ai __vector double
9420vec_nabs(__vector double __a) {
9421 return __builtin_s390_vflndb(__a);
9422}
9423
9424/*-- vec_max ----------------------------------------------------------------*/
9425
9426static inline __ATTRS_o_ai __vector signed char
9427vec_max(__vector signed char __a, __vector signed char __b) {
9428 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9429}
9430
9431// This prototype is deprecated.
9432static inline __ATTRS_o_ai __vector signed char
9433vec_max(__vector signed char __a, __vector __bool char __b) {
9434 __vector signed char __bc = (__vector signed char)__b;
9435 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9436}
9437
9438// This prototype is deprecated.
9439static inline __ATTRS_o_ai __vector signed char
9440vec_max(__vector __bool char __a, __vector signed char __b) {
9441 __vector signed char __ac = (__vector signed char)__a;
9442 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9443}
9444
9445static inline __ATTRS_o_ai __vector unsigned char
9446vec_max(__vector unsigned char __a, __vector unsigned char __b) {
9447 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9448}
9449
9450// This prototype is deprecated.
9451static inline __ATTRS_o_ai __vector unsigned char
9452vec_max(__vector unsigned char __a, __vector __bool char __b) {
9453 __vector unsigned char __bc = (__vector unsigned char)__b;
9454 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9455}
9456
9457// This prototype is deprecated.
9458static inline __ATTRS_o_ai __vector unsigned char
9459vec_max(__vector __bool char __a, __vector unsigned char __b) {
9460 __vector unsigned char __ac = (__vector unsigned char)__a;
9461 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9462}
9463
9464static inline __ATTRS_o_ai __vector signed short
9465vec_max(__vector signed short __a, __vector signed short __b) {
9466 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9467}
9468
9469// This prototype is deprecated.
9470static inline __ATTRS_o_ai __vector signed short
9471vec_max(__vector signed short __a, __vector __bool short __b) {
9472 __vector signed short __bc = (__vector signed short)__b;
9473 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9474}
9475
9476// This prototype is deprecated.
9477static inline __ATTRS_o_ai __vector signed short
9478vec_max(__vector __bool short __a, __vector signed short __b) {
9479 __vector signed short __ac = (__vector signed short)__a;
9480 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9481}
9482
9483static inline __ATTRS_o_ai __vector unsigned short
9484vec_max(__vector unsigned short __a, __vector unsigned short __b) {
9485 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9486}
9487
9488// This prototype is deprecated.
9489static inline __ATTRS_o_ai __vector unsigned short
9490vec_max(__vector unsigned short __a, __vector __bool short __b) {
9491 __vector unsigned short __bc = (__vector unsigned short)__b;
9492 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9493}
9494
9495// This prototype is deprecated.
9496static inline __ATTRS_o_ai __vector unsigned short
9497vec_max(__vector __bool short __a, __vector unsigned short __b) {
9498 __vector unsigned short __ac = (__vector unsigned short)__a;
9499 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9500}
9501
9502static inline __ATTRS_o_ai __vector signed int
9503vec_max(__vector signed int __a, __vector signed int __b) {
9504 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9505}
9506
9507// This prototype is deprecated.
9508static inline __ATTRS_o_ai __vector signed int
9509vec_max(__vector signed int __a, __vector __bool int __b) {
9510 __vector signed int __bc = (__vector signed int)__b;
9511 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9512}
9513
9514// This prototype is deprecated.
9515static inline __ATTRS_o_ai __vector signed int
9516vec_max(__vector __bool int __a, __vector signed int __b) {
9517 __vector signed int __ac = (__vector signed int)__a;
9518 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9519}
9520
9521static inline __ATTRS_o_ai __vector unsigned int
9522vec_max(__vector unsigned int __a, __vector unsigned int __b) {
9523 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9524}
9525
9526// This prototype is deprecated.
9527static inline __ATTRS_o_ai __vector unsigned int
9528vec_max(__vector unsigned int __a, __vector __bool int __b) {
9529 __vector unsigned int __bc = (__vector unsigned int)__b;
9530 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9531}
9532
9533// This prototype is deprecated.
9534static inline __ATTRS_o_ai __vector unsigned int
9535vec_max(__vector __bool int __a, __vector unsigned int __b) {
9536 __vector unsigned int __ac = (__vector unsigned int)__a;
9537 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9538}
9539
9540static inline __ATTRS_o_ai __vector signed long long
9541vec_max(__vector signed long long __a, __vector signed long long __b) {
9542 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9543}
9544
9545// This prototype is deprecated.
9546static inline __ATTRS_o_ai __vector signed long long
9547vec_max(__vector signed long long __a, __vector __bool long long __b) {
9548 __vector signed long long __bc = (__vector signed long long)__b;
9549 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9550}
9551
9552// This prototype is deprecated.
9553static inline __ATTRS_o_ai __vector signed long long
9554vec_max(__vector __bool long long __a, __vector signed long long __b) {
9555 __vector signed long long __ac = (__vector signed long long)__a;
9556 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9557}
9558
9559static inline __ATTRS_o_ai __vector unsigned long long
9560vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
9561 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9562}
9563
9564// This prototype is deprecated.
9565static inline __ATTRS_o_ai __vector unsigned long long
9566vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
9567 __vector unsigned long long __bc = (__vector unsigned long long)__b;
9568 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9569}
9570
9571// This prototype is deprecated.
9572static inline __ATTRS_o_ai __vector unsigned long long
9573vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
9574 __vector unsigned long long __ac = (__vector unsigned long long)__a;
9575 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9576}
9577
9578static inline __ATTRS_o_ai __vector signed __int128
9579vec_max(__vector signed __int128 __a, __vector signed __int128 __b) {
9580 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9581}
9582
9583static inline __ATTRS_o_ai __vector unsigned __int128
9584vec_max(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9585 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9586}
9587
9588#if __ARCH__ >= 12
9589static inline __ATTRS_o_ai __vector float
9590vec_max(__vector float __a, __vector float __b) {
9591 return __builtin_s390_vfmaxsb(__a, __b, 0);
9592}
9593#endif
9594
9595static inline __ATTRS_o_ai __vector double
9596vec_max(__vector double __a, __vector double __b) {
9597#if __ARCH__ >= 12
9598 return __builtin_s390_vfmaxdb(__a, __b, 0);
9599#else
9600 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9601#endif
9602}
9603
9604/*-- vec_min ----------------------------------------------------------------*/
9605
9606static inline __ATTRS_o_ai __vector signed char
9607vec_min(__vector signed char __a, __vector signed char __b) {
9608 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9609}
9610
9611// This prototype is deprecated.
9612static inline __ATTRS_o_ai __vector signed char
9613vec_min(__vector signed char __a, __vector __bool char __b) {
9614 __vector signed char __bc = (__vector signed char)__b;
9615 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9616}
9617
9618// This prototype is deprecated.
9619static inline __ATTRS_o_ai __vector signed char
9620vec_min(__vector __bool char __a, __vector signed char __b) {
9621 __vector signed char __ac = (__vector signed char)__a;
9622 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9623}
9624
9625static inline __ATTRS_o_ai __vector unsigned char
9626vec_min(__vector unsigned char __a, __vector unsigned char __b) {
9627 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9628}
9629
9630// This prototype is deprecated.
9631static inline __ATTRS_o_ai __vector unsigned char
9632vec_min(__vector unsigned char __a, __vector __bool char __b) {
9633 __vector unsigned char __bc = (__vector unsigned char)__b;
9634 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9635}
9636
9637// This prototype is deprecated.
9638static inline __ATTRS_o_ai __vector unsigned char
9639vec_min(__vector __bool char __a, __vector unsigned char __b) {
9640 __vector unsigned char __ac = (__vector unsigned char)__a;
9641 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9642}
9643
9644static inline __ATTRS_o_ai __vector signed short
9645vec_min(__vector signed short __a, __vector signed short __b) {
9646 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9647}
9648
9649// This prototype is deprecated.
9650static inline __ATTRS_o_ai __vector signed short
9651vec_min(__vector signed short __a, __vector __bool short __b) {
9652 __vector signed short __bc = (__vector signed short)__b;
9653 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9654}
9655
9656// This prototype is deprecated.
9657static inline __ATTRS_o_ai __vector signed short
9658vec_min(__vector __bool short __a, __vector signed short __b) {
9659 __vector signed short __ac = (__vector signed short)__a;
9660 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9661}
9662
9663static inline __ATTRS_o_ai __vector unsigned short
9664vec_min(__vector unsigned short __a, __vector unsigned short __b) {
9665 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9666}
9667
9668// This prototype is deprecated.
9669static inline __ATTRS_o_ai __vector unsigned short
9670vec_min(__vector unsigned short __a, __vector __bool short __b) {
9671 __vector unsigned short __bc = (__vector unsigned short)__b;
9672 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9673}
9674
9675// This prototype is deprecated.
9676static inline __ATTRS_o_ai __vector unsigned short
9677vec_min(__vector __bool short __a, __vector unsigned short __b) {
9678 __vector unsigned short __ac = (__vector unsigned short)__a;
9679 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9680}
9681
9682static inline __ATTRS_o_ai __vector signed int
9683vec_min(__vector signed int __a, __vector signed int __b) {
9684 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9685}
9686
9687// This prototype is deprecated.
9688static inline __ATTRS_o_ai __vector signed int
9689vec_min(__vector signed int __a, __vector __bool int __b) {
9690 __vector signed int __bc = (__vector signed int)__b;
9691 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9692}
9693
9694// This prototype is deprecated.
9695static inline __ATTRS_o_ai __vector signed int
9696vec_min(__vector __bool int __a, __vector signed int __b) {
9697 __vector signed int __ac = (__vector signed int)__a;
9698 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9699}
9700
9701static inline __ATTRS_o_ai __vector unsigned int
9702vec_min(__vector unsigned int __a, __vector unsigned int __b) {
9703 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9704}
9705
9706// This prototype is deprecated.
9707static inline __ATTRS_o_ai __vector unsigned int
9708vec_min(__vector unsigned int __a, __vector __bool int __b) {
9709 __vector unsigned int __bc = (__vector unsigned int)__b;
9710 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9711}
9712
9713// This prototype is deprecated.
9714static inline __ATTRS_o_ai __vector unsigned int
9715vec_min(__vector __bool int __a, __vector unsigned int __b) {
9716 __vector unsigned int __ac = (__vector unsigned int)__a;
9717 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9718}
9719
9720static inline __ATTRS_o_ai __vector signed long long
9721vec_min(__vector signed long long __a, __vector signed long long __b) {
9722 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9723}
9724
9725// This prototype is deprecated.
9726static inline __ATTRS_o_ai __vector signed long long
9727vec_min(__vector signed long long __a, __vector __bool long long __b) {
9728 __vector signed long long __bc = (__vector signed long long)__b;
9729 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9730}
9731
9732// This prototype is deprecated.
9733static inline __ATTRS_o_ai __vector signed long long
9734vec_min(__vector __bool long long __a, __vector signed long long __b) {
9735 __vector signed long long __ac = (__vector signed long long)__a;
9736 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9737}
9738
9739static inline __ATTRS_o_ai __vector unsigned long long
9740vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
9741 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9742}
9743
9744// This prototype is deprecated.
9745static inline __ATTRS_o_ai __vector unsigned long long
9746vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
9747 __vector unsigned long long __bc = (__vector unsigned long long)__b;
9748 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9749}
9750
9751// This prototype is deprecated.
9752static inline __ATTRS_o_ai __vector unsigned long long
9753vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
9754 __vector unsigned long long __ac = (__vector unsigned long long)__a;
9755 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9756}
9757
9758static inline __ATTRS_o_ai __vector signed __int128
9759vec_min(__vector signed __int128 __a, __vector signed __int128 __b) {
9760 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9761}
9762
9763static inline __ATTRS_o_ai __vector unsigned __int128
9764vec_min(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9765 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9766}
9767
9768#if __ARCH__ >= 12
9769static inline __ATTRS_o_ai __vector float
9770vec_min(__vector float __a, __vector float __b) {
9771 return __builtin_s390_vfminsb(__a, __b, 0);
9772}
9773#endif
9774
9775static inline __ATTRS_o_ai __vector double
9776vec_min(__vector double __a, __vector double __b) {
9777#if __ARCH__ >= 12
9778 return __builtin_s390_vfmindb(__a, __b, 0);
9779#else
9780 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9781#endif
9782}
9783
9784/*-- vec_add_u128 -----------------------------------------------------------*/
9785
9786// This prototype is deprecated.
9787static inline __ATTRS_ai __vector unsigned char
9788vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
9789 return (__vector unsigned char)(__vector unsigned __int128)
9790 ((__int128)__a + (__int128)__b);
9791}
9792
9793/*-- vec_addc ---------------------------------------------------------------*/
9794
9795static inline __ATTRS_o_ai __vector unsigned char
9796vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
9797 return __builtin_s390_vaccb(__a, __b);
9798}
9799
9800static inline __ATTRS_o_ai __vector unsigned short
9801vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
9802 return __builtin_s390_vacch(__a, __b);
9803}
9804
9805static inline __ATTRS_o_ai __vector unsigned int
9806vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
9807 return __builtin_s390_vaccf(__a, __b);
9808}
9809
9810static inline __ATTRS_o_ai __vector unsigned long long
9811vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
9812 return __builtin_s390_vaccg(__a, __b);
9813}
9814
9815static inline __ATTRS_o_ai __vector unsigned __int128
9816vec_addc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9817 return (__vector unsigned __int128)
9818 __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
9819}
9820
9821/*-- vec_addc_u128 ----------------------------------------------------------*/
9822
9823// This prototype is deprecated.
9824static inline __ATTRS_ai __vector unsigned char
9825vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
9826 return (__vector unsigned char)(__vector unsigned __int128)
9827 __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
9828}
9829
9830/*-- vec_adde ---------------------------------------------------------------*/
9831
9832static inline __ATTRS_ai __vector unsigned __int128
9833vec_adde(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9834 __vector unsigned __int128 __c) {
9835 return (__vector unsigned __int128)
9836 __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
9837 (unsigned __int128)__c);
9838}
9839
9840/*-- vec_adde_u128 ----------------------------------------------------------*/
9841
9842// This prototype is deprecated.
9843static inline __ATTRS_ai __vector unsigned char
9844vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
9845 __vector unsigned char __c) {
9846 return (__vector unsigned char)(__vector unsigned __int128)
9847 __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
9848 (unsigned __int128)__c);
9849}
9850
9851/*-- vec_addec --------------------------------------------------------------*/
9852
9853static inline __ATTRS_ai __vector unsigned __int128
9854vec_addec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9855 __vector unsigned __int128 __c) {
9856 return (__vector unsigned __int128)
9857 __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
9858 (unsigned __int128)__c);
9859}
9860
9861/*-- vec_addec_u128 ---------------------------------------------------------*/
9862
9863// This prototype is deprecated.
9864static inline __ATTRS_ai __vector unsigned char
9865vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
9866 __vector unsigned char __c) {
9867 return (__vector unsigned char)(__vector unsigned __int128)
9868 __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
9869 (unsigned __int128)__c);
9870}
9871
9872/*-- vec_avg ----------------------------------------------------------------*/
9873
9874static inline __ATTRS_o_ai __vector signed char
9875vec_avg(__vector signed char __a, __vector signed char __b) {
9876 return __builtin_s390_vavgb(__a, __b);
9877}
9878
9879static inline __ATTRS_o_ai __vector signed short
9880vec_avg(__vector signed short __a, __vector signed short __b) {
9881 return __builtin_s390_vavgh(__a, __b);
9882}
9883
9884static inline __ATTRS_o_ai __vector signed int
9885vec_avg(__vector signed int __a, __vector signed int __b) {
9886 return __builtin_s390_vavgf(__a, __b);
9887}
9888
9889static inline __ATTRS_o_ai __vector signed long long
9890vec_avg(__vector signed long long __a, __vector signed long long __b) {
9891 return __builtin_s390_vavgg(__a, __b);
9892}
9893
9894#if __ARCH__ >= 15
9895static inline __ATTRS_o_ai __vector signed __int128
9896vec_avg(__vector signed __int128 __a, __vector signed __int128 __b) {
9897 return (__vector signed __int128)
9898 __builtin_s390_vavgq((signed __int128)__a, (signed __int128)__b);
9899}
9900#endif
9901
9902static inline __ATTRS_o_ai __vector unsigned char
9903vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
9904 return __builtin_s390_vavglb(__a, __b);
9905}
9906
9907static inline __ATTRS_o_ai __vector unsigned short
9908vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
9909 return __builtin_s390_vavglh(__a, __b);
9910}
9911
9912static inline __ATTRS_o_ai __vector unsigned int
9913vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
9914 return __builtin_s390_vavglf(__a, __b);
9915}
9916
9917static inline __ATTRS_o_ai __vector unsigned long long
9918vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
9919 return __builtin_s390_vavglg(__a, __b);
9920}
9921
9922#if __ARCH__ >= 15
9923static inline __ATTRS_o_ai __vector unsigned __int128
9924vec_avg(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9925 return (__vector unsigned __int128)
9926 __builtin_s390_vavglq((unsigned __int128)__a, (unsigned __int128)__b);
9927}
9928#endif
9929
9930/*-- vec_checksum -----------------------------------------------------------*/
9931
9932static inline __ATTRS_ai __vector unsigned int
9933vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
9934 return __builtin_s390_vcksm(__a, __b);
9935}
9936
9937/*-- vec_gfmsum -------------------------------------------------------------*/
9938
9939static inline __ATTRS_o_ai __vector unsigned short
9940vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
9941 return __builtin_s390_vgfmb(__a, __b);
9942}
9943
9944static inline __ATTRS_o_ai __vector unsigned int
9945vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
9946 return __builtin_s390_vgfmh(__a, __b);
9947}
9948
9949static inline __ATTRS_o_ai __vector unsigned long long
9950vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
9951 return __builtin_s390_vgfmf(__a, __b);
9952}
9953
9954static inline __ATTRS_o_ai __vector unsigned __int128
9955vec_gfmsum(__vector unsigned long long __a, __vector unsigned long long __b) {
9956 return (__vector unsigned __int128)__builtin_s390_vgfmg(__a, __b);
9957}
9958
9959/*-- vec_gfmsum_128 ---------------------------------------------------------*/
9960
9961// This prototype is deprecated.
9962static inline __ATTRS_o_ai __vector unsigned char
9963vec_gfmsum_128(__vector unsigned long long __a,
9964 __vector unsigned long long __b) {
9965 return (__vector unsigned char)(__vector unsigned __int128)
9966 __builtin_s390_vgfmg(__a, __b);
9967}
9968
9969/*-- vec_gfmsum_accum -------------------------------------------------------*/
9970
9971static inline __ATTRS_o_ai __vector unsigned short
9972vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
9973 __vector unsigned short __c) {
9974 return __builtin_s390_vgfmab(__a, __b, __c);
9975}
9976
9977static inline __ATTRS_o_ai __vector unsigned int
9978vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
9979 __vector unsigned int __c) {
9980 return __builtin_s390_vgfmah(__a, __b, __c);
9981}
9982
9983static inline __ATTRS_o_ai __vector unsigned long long
9984vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
9985 __vector unsigned long long __c) {
9986 return __builtin_s390_vgfmaf(__a, __b, __c);
9987}
9988
9989static inline __ATTRS_o_ai __vector unsigned __int128
9990vec_gfmsum_accum(__vector unsigned long long __a, __vector unsigned long long __b,
9991 __vector unsigned __int128 __c) {
9992 return (__vector unsigned __int128)
9993 __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
9994}
9995
9996/*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
9997
9998// This prototype is deprecated.
9999static inline __ATTRS_o_ai __vector unsigned char
10000vec_gfmsum_accum_128(__vector unsigned long long __a,
10001 __vector unsigned long long __b,
10002 __vector unsigned char __c) {
10003 return (__vector unsigned char)(__vector unsigned __int128)
10004 __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
10005}
10006
10007/*-- vec_mladd --------------------------------------------------------------*/
10008
10009static inline __ATTRS_o_ai __vector signed char
10010vec_mladd(__vector signed char __a, __vector signed char __b,
10011 __vector signed char __c) {
10012 return __a * __b + __c;
10013}
10014
10015static inline __ATTRS_o_ai __vector signed char
10016vec_mladd(__vector unsigned char __a, __vector signed char __b,
10017 __vector signed char __c) {
10018 return (__vector signed char)__a * __b + __c;
10019}
10020
10021static inline __ATTRS_o_ai __vector signed char
10022vec_mladd(__vector signed char __a, __vector unsigned char __b,
10023 __vector unsigned char __c) {
10024 return __a * (__vector signed char)__b + (__vector signed char)__c;
10025}
10026
10027static inline __ATTRS_o_ai __vector unsigned char
10028vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
10029 __vector unsigned char __c) {
10030 return __a * __b + __c;
10031}
10032
10033static inline __ATTRS_o_ai __vector signed short
10034vec_mladd(__vector signed short __a, __vector signed short __b,
10035 __vector signed short __c) {
10036 return __a * __b + __c;
10037}
10038
10039static inline __ATTRS_o_ai __vector signed short
10040vec_mladd(__vector unsigned short __a, __vector signed short __b,
10041 __vector signed short __c) {
10042 return (__vector signed short)__a * __b + __c;
10043}
10044
10045static inline __ATTRS_o_ai __vector signed short
10046vec_mladd(__vector signed short __a, __vector unsigned short __b,
10047 __vector unsigned short __c) {
10048 return __a * (__vector signed short)__b + (__vector signed short)__c;
10049}
10050
10051static inline __ATTRS_o_ai __vector unsigned short
10052vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
10053 __vector unsigned short __c) {
10054 return __a * __b + __c;
10055}
10056
10057static inline __ATTRS_o_ai __vector signed int
10058vec_mladd(__vector signed int __a, __vector signed int __b,
10059 __vector signed int __c) {
10060 return __a * __b + __c;
10061}
10062
10063static inline __ATTRS_o_ai __vector signed int
10064vec_mladd(__vector unsigned int __a, __vector signed int __b,
10065 __vector signed int __c) {
10066 return (__vector signed int)__a * __b + __c;
10067}
10068
10069static inline __ATTRS_o_ai __vector signed int
10070vec_mladd(__vector signed int __a, __vector unsigned int __b,
10071 __vector unsigned int __c) {
10072 return __a * (__vector signed int)__b + (__vector signed int)__c;
10073}
10074
10075static inline __ATTRS_o_ai __vector unsigned int
10076vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
10077 __vector unsigned int __c) {
10078 return __a * __b + __c;
10079}
10080
10081#if __ARCH__ >= 15
10082static inline __ATTRS_o_ai __vector signed long long
10083vec_mladd(__vector signed long long __a, __vector signed long long __b,
10084 __vector signed long long __c) {
10085 return __a * __b + __c;
10086}
10087
10088static inline __ATTRS_o_ai __vector signed long long
10089vec_mladd(__vector unsigned long long __a, __vector signed long long __b,
10090 __vector signed long long __c) {
10091 return (__vector signed long long)__a * __b + __c;
10092}
10093
10094static inline __ATTRS_o_ai __vector signed long long
10095vec_mladd(__vector signed long long __a, __vector unsigned long long __b,
10096 __vector unsigned long long __c) {
10097 return __a * (__vector signed long long)__b + (__vector signed long long)__c;
10098}
10099
10100static inline __ATTRS_o_ai __vector unsigned long long
10101vec_mladd(__vector unsigned long long __a, __vector unsigned long long __b,
10102 __vector unsigned long long __c) {
10103 return __a * __b + __c;
10104}
10105
10106static inline __ATTRS_o_ai __vector signed __int128
10107vec_mladd(__vector signed __int128 __a, __vector signed __int128 __b,
10108 __vector signed __int128 __c) {
10109 return __a * __b + __c;
10110}
10111
10112static inline __ATTRS_o_ai __vector signed __int128
10113vec_mladd(__vector unsigned __int128 __a, __vector signed __int128 __b,
10114 __vector signed __int128 __c) {
10115 return (__vector signed __int128)__a * __b + __c;
10116}
10117
10118static inline __ATTRS_o_ai __vector signed __int128
10119vec_mladd(__vector signed __int128 __a, __vector unsigned __int128 __b,
10120 __vector unsigned __int128 __c) {
10121 return __a * (__vector signed __int128)__b + (__vector signed __int128)__c;
10122}
10123
10124static inline __ATTRS_o_ai __vector unsigned __int128
10125vec_mladd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10126 __vector unsigned __int128 __c) {
10127 return __a * __b + __c;
10128}
10129#endif
10130
10131/*-- vec_mhadd --------------------------------------------------------------*/
10132
10133static inline __ATTRS_o_ai __vector signed char
10134vec_mhadd(__vector signed char __a, __vector signed char __b,
10135 __vector signed char __c) {
10136 return __builtin_s390_vmahb(__a, __b, __c);
10137}
10138
10139static inline __ATTRS_o_ai __vector unsigned char
10140vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
10141 __vector unsigned char __c) {
10142 return __builtin_s390_vmalhb(__a, __b, __c);
10143}
10144
10145static inline __ATTRS_o_ai __vector signed short
10146vec_mhadd(__vector signed short __a, __vector signed short __b,
10147 __vector signed short __c) {
10148 return __builtin_s390_vmahh(__a, __b, __c);
10149}
10150
10151static inline __ATTRS_o_ai __vector unsigned short
10152vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
10153 __vector unsigned short __c) {
10154 return __builtin_s390_vmalhh(__a, __b, __c);
10155}
10156
10157static inline __ATTRS_o_ai __vector signed int
10158vec_mhadd(__vector signed int __a, __vector signed int __b,
10159 __vector signed int __c) {
10160 return __builtin_s390_vmahf(__a, __b, __c);
10161}
10162
10163static inline __ATTRS_o_ai __vector unsigned int
10164vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
10165 __vector unsigned int __c) {
10166 return __builtin_s390_vmalhf(__a, __b, __c);
10167}
10168
10169#if __ARCH__ >= 15
10170static inline __ATTRS_o_ai __vector signed long long
10171vec_mhadd(__vector signed long long __a, __vector signed long long __b,
10172 __vector signed long long __c) {
10173 return __builtin_s390_vmahg(__a, __b, __c);
10174}
10175
10176static inline __ATTRS_o_ai __vector unsigned long long
10177vec_mhadd(__vector unsigned long long __a, __vector unsigned long long __b,
10178 __vector unsigned long long __c) {
10179 return __builtin_s390_vmalhg(__a, __b, __c);
10180}
10181
10182static inline __ATTRS_o_ai __vector signed __int128
10183vec_mhadd(__vector signed __int128 __a, __vector signed __int128 __b,
10184 __vector signed __int128 __c) {
10185 return (__vector signed __int128)
10186 __builtin_s390_vmahq((signed __int128)__a, (signed __int128)__b, (signed __int128)__c);
10187}
10188
10189static inline __ATTRS_o_ai __vector unsigned __int128
10190vec_mhadd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10191 __vector unsigned __int128 __c) {
10192 return (__vector unsigned __int128)
10193 __builtin_s390_vmalhq((unsigned __int128)__a, (unsigned __int128)__b, (unsigned __int128)__c);
10194}
10195#endif
10196
10197/*-- vec_meadd --------------------------------------------------------------*/
10198
10199static inline __ATTRS_o_ai __vector signed short
10200vec_meadd(__vector signed char __a, __vector signed char __b,
10201 __vector signed short __c) {
10202 return __builtin_s390_vmaeb(__a, __b, __c);
10203}
10204
10205static inline __ATTRS_o_ai __vector unsigned short
10206vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
10207 __vector unsigned short __c) {
10208 return __builtin_s390_vmaleb(__a, __b, __c);
10209}
10210
10211static inline __ATTRS_o_ai __vector signed int
10212vec_meadd(__vector signed short __a, __vector signed short __b,
10213 __vector signed int __c) {
10214 return __builtin_s390_vmaeh(__a, __b, __c);
10215}
10216
10217static inline __ATTRS_o_ai __vector unsigned int
10218vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
10219 __vector unsigned int __c) {
10220 return __builtin_s390_vmaleh(__a, __b, __c);
10221}
10222
10223static inline __ATTRS_o_ai __vector signed long long
10224vec_meadd(__vector signed int __a, __vector signed int __b,
10225 __vector signed long long __c) {
10226 return __builtin_s390_vmaef(__a, __b, __c);
10227}
10228
10229static inline __ATTRS_o_ai __vector unsigned long long
10230vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
10231 __vector unsigned long long __c) {
10232 return __builtin_s390_vmalef(__a, __b, __c);
10233}
10234
10235#if __ARCH__ >= 15
10236static inline __ATTRS_o_ai __vector signed __int128
10237vec_meadd(__vector signed long long __a, __vector signed long long __b,
10238 __vector signed __int128 __c) {
10239 return (__vector signed __int128)
10240 __builtin_s390_vmaeg(__a, __b, (signed __int128)__c);
10241}
10242
10243static inline __ATTRS_o_ai __vector unsigned __int128
10244vec_meadd(__vector unsigned long long __a, __vector unsigned long long __b,
10245 __vector unsigned __int128 __c) {
10246 return (__vector unsigned __int128)
10247 __builtin_s390_vmaleg(__a, __b, (unsigned __int128)__c);
10248}
10249#endif
10250
10251/*-- vec_moadd --------------------------------------------------------------*/
10252
10253static inline __ATTRS_o_ai __vector signed short
10254vec_moadd(__vector signed char __a, __vector signed char __b,
10255 __vector signed short __c) {
10256 return __builtin_s390_vmaob(__a, __b, __c);
10257}
10258
10259static inline __ATTRS_o_ai __vector unsigned short
10260vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
10261 __vector unsigned short __c) {
10262 return __builtin_s390_vmalob(__a, __b, __c);
10263}
10264
10265static inline __ATTRS_o_ai __vector signed int
10266vec_moadd(__vector signed short __a, __vector signed short __b,
10267 __vector signed int __c) {
10268 return __builtin_s390_vmaoh(__a, __b, __c);
10269}
10270
10271static inline __ATTRS_o_ai __vector unsigned int
10272vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
10273 __vector unsigned int __c) {
10274 return __builtin_s390_vmaloh(__a, __b, __c);
10275}
10276
10277static inline __ATTRS_o_ai __vector signed long long
10278vec_moadd(__vector signed int __a, __vector signed int __b,
10279 __vector signed long long __c) {
10280 return __builtin_s390_vmaof(__a, __b, __c);
10281}
10282
10283static inline __ATTRS_o_ai __vector unsigned long long
10284vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
10285 __vector unsigned long long __c) {
10286 return __builtin_s390_vmalof(__a, __b, __c);
10287}
10288
10289#if __ARCH__ >= 15
10290static inline __ATTRS_o_ai __vector signed __int128
10291vec_moadd(__vector signed long long __a, __vector signed long long __b,
10292 __vector signed __int128 __c) {
10293 return (__vector signed __int128)
10294 __builtin_s390_vmaog(__a, __b, (signed __int128)__c);
10295}
10296
10297static inline __ATTRS_o_ai __vector unsigned __int128
10298vec_moadd(__vector unsigned long long __a, __vector unsigned long long __b,
10299 __vector unsigned __int128 __c) {
10300 return (__vector unsigned __int128)
10301 __builtin_s390_vmalog(__a, __b, (unsigned __int128)__c);
10302}
10303#endif
10304
10305/*-- vec_mulh ---------------------------------------------------------------*/
10306
10307static inline __ATTRS_o_ai __vector signed char
10308vec_mulh(__vector signed char __a, __vector signed char __b) {
10309 return __builtin_s390_vmhb(__a, __b);
10310}
10311
10312static inline __ATTRS_o_ai __vector unsigned char
10313vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
10314 return __builtin_s390_vmlhb(__a, __b);
10315}
10316
10317static inline __ATTRS_o_ai __vector signed short
10318vec_mulh(__vector signed short __a, __vector signed short __b) {
10319 return __builtin_s390_vmhh(__a, __b);
10320}
10321
10322static inline __ATTRS_o_ai __vector unsigned short
10323vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
10324 return __builtin_s390_vmlhh(__a, __b);
10325}
10326
10327static inline __ATTRS_o_ai __vector signed int
10328vec_mulh(__vector signed int __a, __vector signed int __b) {
10329 return __builtin_s390_vmhf(__a, __b);
10330}
10331
10332static inline __ATTRS_o_ai __vector unsigned int
10333vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
10334 return __builtin_s390_vmlhf(__a, __b);
10335}
10336
10337#if __ARCH__ >= 15
10338static inline __ATTRS_o_ai __vector signed long long
10339vec_mulh(__vector signed long long __a, __vector signed long long __b) {
10340 return __builtin_s390_vmhg(__a, __b);
10341}
10342
10343static inline __ATTRS_o_ai __vector unsigned long long
10344vec_mulh(__vector unsigned long long __a, __vector unsigned long long __b) {
10345 return __builtin_s390_vmlhg(__a, __b);
10346}
10347
10348static inline __ATTRS_o_ai __vector signed __int128
10349vec_mulh(__vector signed __int128 __a, __vector signed __int128 __b) {
10350 return (__vector signed __int128)
10351 __builtin_s390_vmhq((signed __int128)__a, (signed __int128)__b);
10352}
10353
10354static inline __ATTRS_o_ai __vector unsigned __int128
10355vec_mulh(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
10356 return (__vector unsigned __int128)
10357 __builtin_s390_vmlhq((unsigned __int128)__a, (unsigned __int128)__b);
10358}
10359#endif
10360
10361/*-- vec_mule ---------------------------------------------------------------*/
10362
10363static inline __ATTRS_o_ai __vector signed short
10364vec_mule(__vector signed char __a, __vector signed char __b) {
10365 return __builtin_s390_vmeb(__a, __b);
10366}
10367
10368static inline __ATTRS_o_ai __vector unsigned short
10369vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
10370 return __builtin_s390_vmleb(__a, __b);
10371}
10372
10373static inline __ATTRS_o_ai __vector signed int
10374vec_mule(__vector signed short __a, __vector signed short __b) {
10375 return __builtin_s390_vmeh(__a, __b);
10376}
10377
10378static inline __ATTRS_o_ai __vector unsigned int
10379vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
10380 return __builtin_s390_vmleh(__a, __b);
10381}
10382
10383static inline __ATTRS_o_ai __vector signed long long
10384vec_mule(__vector signed int __a, __vector signed int __b) {
10385 return __builtin_s390_vmef(__a, __b);
10386}
10387
10388static inline __ATTRS_o_ai __vector unsigned long long
10389vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
10390 return __builtin_s390_vmlef(__a, __b);
10391}
10392
10393#if __ARCH__ >= 15
10394static inline __ATTRS_o_ai __vector signed __int128
10395vec_mule(__vector signed long long __a, __vector signed long long __b) {
10396 return (__vector signed __int128)__builtin_s390_vmeg(__a, __b);
10397}
10398
10399static inline __ATTRS_o_ai __vector unsigned __int128
10400vec_mule(__vector unsigned long long __a, __vector unsigned long long __b) {
10401 return (__vector unsigned __int128)__builtin_s390_vmleg(__a, __b);
10402}
10403#endif
10404
10405/*-- vec_mulo ---------------------------------------------------------------*/
10406
10407static inline __ATTRS_o_ai __vector signed short
10408vec_mulo(__vector signed char __a, __vector signed char __b) {
10409 return __builtin_s390_vmob(__a, __b);
10410}
10411
10412static inline __ATTRS_o_ai __vector unsigned short
10413vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
10414 return __builtin_s390_vmlob(__a, __b);
10415}
10416
10417static inline __ATTRS_o_ai __vector signed int
10418vec_mulo(__vector signed short __a, __vector signed short __b) {
10419 return __builtin_s390_vmoh(__a, __b);
10420}
10421
10422static inline __ATTRS_o_ai __vector unsigned int
10423vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
10424 return __builtin_s390_vmloh(__a, __b);
10425}
10426
10427static inline __ATTRS_o_ai __vector signed long long
10428vec_mulo(__vector signed int __a, __vector signed int __b) {
10429 return __builtin_s390_vmof(__a, __b);
10430}
10431
10432static inline __ATTRS_o_ai __vector unsigned long long
10433vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
10434 return __builtin_s390_vmlof(__a, __b);
10435}
10436
10437#if __ARCH__ >= 15
10438static inline __ATTRS_o_ai __vector signed __int128
10439vec_mulo(__vector signed long long __a, __vector signed long long __b) {
10440 return (__vector signed __int128)__builtin_s390_vmog(__a, __b);
10441}
10442
10443static inline __ATTRS_o_ai __vector unsigned __int128
10444vec_mulo(__vector unsigned long long __a, __vector unsigned long long __b) {
10445 return (__vector unsigned __int128)__builtin_s390_vmlog(__a, __b);
10446}
10447#endif
10448
10449/*-- vec_msum ---------------------------------------------------------------*/
10450
10451#if __ARCH__ >= 12
10452extern __ATTRS_o __vector unsigned __int128
10453vec_msum(__vector unsigned long long __a, __vector unsigned long long __b,
10454 __vector unsigned __int128 __c, int __d)
10455 __constant_range(__d, 0, 15);
10456
10457#define vec_msum(X, Y, Z, W) \
10458 ((__typeof__((vec_msum)((X), (Y), (Z), (W)))) \
10459 __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
10460#endif
10461
10462/*-- vec_msum_u128 ----------------------------------------------------------*/
10463
10464#if __ARCH__ >= 12
10465// This prototype is deprecated.
10466extern __ATTRS_o __vector unsigned char
10467vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b,
10468 __vector unsigned char __c, int __d)
10469 __constant_range(__d, 0, 15);
10470
10471#define vec_msum_u128(X, Y, Z, W) \
10472 ((__typeof__((vec_msum_u128)((X), (Y), (Z), (W)))) \
10473 (__vector unsigned __int128) \
10474 __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
10475#endif
10476
10477/*-- vec_sub_u128 -----------------------------------------------------------*/
10478
10479// This prototype is deprecated.
10480static inline __ATTRS_ai __vector unsigned char
10481vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
10482 return (__vector unsigned char)(__vector unsigned __int128)
10483 ((__int128)__a - (__int128)__b);
10484}
10485
10486/*-- vec_subc ---------------------------------------------------------------*/
10487
10488static inline __ATTRS_o_ai __vector unsigned char
10489vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
10490 return __builtin_s390_vscbib(__a, __b);
10491}
10492
10493static inline __ATTRS_o_ai __vector unsigned short
10494vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
10495 return __builtin_s390_vscbih(__a, __b);
10496}
10497
10498static inline __ATTRS_o_ai __vector unsigned int
10499vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
10500 return __builtin_s390_vscbif(__a, __b);
10501}
10502
10503static inline __ATTRS_o_ai __vector unsigned long long
10504vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
10505 return __builtin_s390_vscbig(__a, __b);
10506}
10507
10508static inline __ATTRS_o_ai __vector unsigned __int128
10509vec_subc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
10510 return (__vector unsigned __int128)
10511 __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
10512}
10513
10514/*-- vec_subc_u128 ----------------------------------------------------------*/
10515
10516// This prototype is deprecated.
10517static inline __ATTRS_ai __vector unsigned char
10518vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
10519 return (__vector unsigned char)(__vector unsigned __int128)
10520 __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
10521}
10522
10523/*-- vec_sube ---------------------------------------------------------------*/
10524
10525static inline __ATTRS_ai __vector unsigned __int128
10526vec_sube(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10527 __vector unsigned __int128 __c) {
10528 return (__vector unsigned __int128)
10529 __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
10530 (unsigned __int128)__c);
10531}
10532
10533/*-- vec_sube_u128 ----------------------------------------------------------*/
10534
10535// This prototype is deprecated.
10536static inline __ATTRS_ai __vector unsigned char
10537vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
10538 __vector unsigned char __c) {
10539 return (__vector unsigned char)(__vector unsigned __int128)
10540 __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
10541 (unsigned __int128)__c);
10542}
10543
10544/*-- vec_subec --------------------------------------------------------------*/
10545
10546static inline __ATTRS_ai __vector unsigned __int128
10547vec_subec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10548 __vector unsigned __int128 __c) {
10549 return (__vector unsigned __int128)
10550 __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
10551 (unsigned __int128)__c);
10552}
10553
10554/*-- vec_subec_u128 ---------------------------------------------------------*/
10555
10556// This prototype is deprecated.
10557static inline __ATTRS_ai __vector unsigned char
10558vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
10559 __vector unsigned char __c) {
10560 return (__vector unsigned char)(__vector unsigned __int128)
10561 __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
10562 (unsigned __int128)__c);
10563}
10564
10565/*-- vec_sum2 ---------------------------------------------------------------*/
10566
10567static inline __ATTRS_o_ai __vector unsigned long long
10568vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
10569 return __builtin_s390_vsumgh(__a, __b);
10570}
10571
10572static inline __ATTRS_o_ai __vector unsigned long long
10573vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
10574 return __builtin_s390_vsumgf(__a, __b);
10575}
10576
10577/*-- vec_sum ----------------------------------------------------------------*/
10578
10579static inline __ATTRS_o_ai __vector unsigned __int128
10580vec_sum(__vector unsigned int __a, __vector unsigned int __b) {
10581 return (__vector unsigned __int128)__builtin_s390_vsumqf(__a, __b);
10582}
10583
10584static inline __ATTRS_o_ai __vector unsigned __int128
10585vec_sum(__vector unsigned long long __a, __vector unsigned long long __b) {
10586 return (__vector unsigned __int128)__builtin_s390_vsumqg(__a, __b);
10587}
10588
10589/*-- vec_sum_u128 -----------------------------------------------------------*/
10590
10591// This prototype is deprecated.
10592static inline __ATTRS_o_ai __vector unsigned char
10593vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
10594 return (__vector unsigned char)(__vector unsigned __int128)
10595 __builtin_s390_vsumqf(__a, __b);
10596}
10597
10598// This prototype is deprecated.
10599static inline __ATTRS_o_ai __vector unsigned char
10600vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
10601 return (__vector unsigned char)(__vector unsigned __int128)
10602 __builtin_s390_vsumqg(__a, __b);
10603}
10604
10605/*-- vec_sum4 ---------------------------------------------------------------*/
10606
10607static inline __ATTRS_o_ai __vector unsigned int
10608vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
10609 return __builtin_s390_vsumb(__a, __b);
10610}
10611
10612static inline __ATTRS_o_ai __vector unsigned int
10613vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
10614 return __builtin_s390_vsumh(__a, __b);
10615}
10616
10617/*-- vec_test_mask ----------------------------------------------------------*/
10618
10619static inline __ATTRS_o_ai int
10620vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
10621 return __builtin_s390_vtm((__vector unsigned char)__a,
10622 (__vector unsigned char)__b);
10623}
10624
10625static inline __ATTRS_o_ai int
10626vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
10627 return __builtin_s390_vtm(__a, __b);
10628}
10629
10630static inline __ATTRS_o_ai int
10631vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
10632 return __builtin_s390_vtm((__vector unsigned char)__a,
10633 (__vector unsigned char)__b);
10634}
10635
10636static inline __ATTRS_o_ai int
10637vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
10638 return __builtin_s390_vtm((__vector unsigned char)__a,
10639 (__vector unsigned char)__b);
10640}
10641
10642static inline __ATTRS_o_ai int
10643vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
10644 return __builtin_s390_vtm((__vector unsigned char)__a,
10645 (__vector unsigned char)__b);
10646}
10647
10648static inline __ATTRS_o_ai int
10649vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
10650 return __builtin_s390_vtm((__vector unsigned char)__a,
10651 (__vector unsigned char)__b);
10652}
10653
10654static inline __ATTRS_o_ai int
10655vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
10656 return __builtin_s390_vtm((__vector unsigned char)__a,
10657 (__vector unsigned char)__b);
10658}
10659
10660static inline __ATTRS_o_ai int
10661vec_test_mask(__vector unsigned long long __a,
10662 __vector unsigned long long __b) {
10663 return __builtin_s390_vtm((__vector unsigned char)__a,
10664 (__vector unsigned char)__b);
10665}
10666
10667static inline __ATTRS_o_ai int
10668vec_test_mask(__vector signed __int128 __a, __vector unsigned __int128 __b) {
10669 return __builtin_s390_vtm((__vector unsigned char)__a,
10670 (__vector unsigned char)__b);
10671}
10672
10673static inline __ATTRS_o_ai int
10674vec_test_mask(__vector unsigned __int128 __a,
10675 __vector unsigned __int128 __b) {
10676 return __builtin_s390_vtm((__vector unsigned char)__a,
10677 (__vector unsigned char)__b);
10678}
10679
10680#if __ARCH__ >= 12
10681static inline __ATTRS_o_ai int
10682vec_test_mask(__vector float __a, __vector unsigned int __b) {
10683 return __builtin_s390_vtm((__vector unsigned char)__a,
10684 (__vector unsigned char)__b);
10685}
10686#endif
10687
10688static inline __ATTRS_o_ai int
10689vec_test_mask(__vector double __a, __vector unsigned long long __b) {
10690 return __builtin_s390_vtm((__vector unsigned char)__a,
10691 (__vector unsigned char)__b);
10692}
10693
10694/*-- vec_madd ---------------------------------------------------------------*/
10695
10696#if __ARCH__ >= 12
10697static inline __ATTRS_o_ai __vector float
10698vec_madd(__vector float __a, __vector float __b, __vector float __c) {
10699 return __builtin_s390_vfmasb(__a, __b, __c);
10700}
10701#endif
10702
10703static inline __ATTRS_o_ai __vector double
10704vec_madd(__vector double __a, __vector double __b, __vector double __c) {
10705 return __builtin_s390_vfmadb(__a, __b, __c);
10706}
10707
10708/*-- vec_msub ---------------------------------------------------------------*/
10709
10710#if __ARCH__ >= 12
10711static inline __ATTRS_o_ai __vector float
10712vec_msub(__vector float __a, __vector float __b, __vector float __c) {
10713 return __builtin_s390_vfmssb(__a, __b, __c);
10714}
10715#endif
10716
10717static inline __ATTRS_o_ai __vector double
10718vec_msub(__vector double __a, __vector double __b, __vector double __c) {
10719 return __builtin_s390_vfmsdb(__a, __b, __c);
10720}
10721
10722/*-- vec_nmadd ---------------------------------------------------------------*/
10723
10724#if __ARCH__ >= 12
10725static inline __ATTRS_o_ai __vector float
10726vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
10727 return __builtin_s390_vfnmasb(__a, __b, __c);
10728}
10729
10730static inline __ATTRS_o_ai __vector double
10731vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
10732 return __builtin_s390_vfnmadb(__a, __b, __c);
10733}
10734#endif
10735
10736/*-- vec_nmsub ---------------------------------------------------------------*/
10737
10738#if __ARCH__ >= 12
10739static inline __ATTRS_o_ai __vector float
10740vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
10741 return __builtin_s390_vfnmssb(__a, __b, __c);
10742}
10743
10744static inline __ATTRS_o_ai __vector double
10745vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
10746 return __builtin_s390_vfnmsdb(__a, __b, __c);
10747}
10748#endif
10749
10750/*-- vec_sqrt ---------------------------------------------------------------*/
10751
10752#if __ARCH__ >= 12
10753static inline __ATTRS_o_ai __vector float
10754vec_sqrt(__vector float __a) {
10755 return __builtin_s390_vfsqsb(__a);
10756}
10757#endif
10758
10759static inline __ATTRS_o_ai __vector double
10760vec_sqrt(__vector double __a) {
10761 return __builtin_s390_vfsqdb(__a);
10762}
10763
10764/*-- vec_ld2f ---------------------------------------------------------------*/
10765
10766// This prototype is deprecated.
10767static inline __ATTRS_ai __vector double
10768vec_ld2f(const float *__ptr) {
10769 typedef float __v2f32 __attribute__((__vector_size__(8)));
10770 return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
10771}
10772
10773/*-- vec_st2f ---------------------------------------------------------------*/
10774
10775// This prototype is deprecated.
10776static inline __ATTRS_ai void
10777vec_st2f(__vector double __a, float *__ptr) {
10778 typedef float __v2f32 __attribute__((__vector_size__(8)));
10779 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
10780}
10781
10782/*-- vec_ctd ----------------------------------------------------------------*/
10783
10784// This prototype is deprecated.
10785static inline __ATTRS_o_ai __vector double
10786vec_ctd(__vector signed long long __a, int __b)
10787 __constant_range(__b, 0, 31) {
10788 __vector double __conv = __builtin_convertvector(__a, __vector double);
10789 __conv *= ((__vector double)(__vector unsigned long long)
10790 ((0x3ffULL - __b) << 52));
10791 return __conv;
10792}
10793
10794// This prototype is deprecated.
10795static inline __ATTRS_o_ai __vector double
10796vec_ctd(__vector unsigned long long __a, int __b)
10797 __constant_range(__b, 0, 31) {
10798 __vector double __conv = __builtin_convertvector(__a, __vector double);
10799 __conv *= ((__vector double)(__vector unsigned long long)
10800 ((0x3ffULL - __b) << 52));
10801 return __conv;
10802}
10803
10804/*-- vec_ctsl ---------------------------------------------------------------*/
10805
10806// This prototype is deprecated.
10807static inline __ATTRS_o_ai __vector signed long long
10808vec_ctsl(__vector double __a, int __b)
10809 __constant_range(__b, 0, 31) {
10810 __a *= ((__vector double)(__vector unsigned long long)
10811 ((0x3ffULL + __b) << 52));
10812 return __builtin_convertvector(__a, __vector signed long long);
10813}
10814
10815/*-- vec_ctul ---------------------------------------------------------------*/
10816
10817// This prototype is deprecated.
10818static inline __ATTRS_o_ai __vector unsigned long long
10819vec_ctul(__vector double __a, int __b)
10820 __constant_range(__b, 0, 31) {
10821 __a *= ((__vector double)(__vector unsigned long long)
10822 ((0x3ffULL + __b) << 52));
10823 return __builtin_convertvector(__a, __vector unsigned long long);
10824}
10825
10826/*-- vec_doublee ------------------------------------------------------------*/
10827
10828#if __ARCH__ >= 12
10829static inline __ATTRS_ai __vector double
10830vec_doublee(__vector float __a) {
10831 typedef float __v2f32 __attribute__((__vector_size__(8)));
10832 __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
10833 return __builtin_convertvector(__pack, __vector double);
10834}
10835#endif
10836
10837/*-- vec_floate -------------------------------------------------------------*/
10838
10839#if __ARCH__ >= 12
10840static inline __ATTRS_ai __vector float
10841vec_floate(__vector double __a) {
10842 typedef float __v2f32 __attribute__((__vector_size__(8)));
10843 __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
10844 return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
10845}
10846#endif
10847
10848/*-- vec_double -------------------------------------------------------------*/
10849
10850static inline __ATTRS_o_ai __vector double
10851vec_double(__vector signed long long __a) {
10852 return __builtin_convertvector(__a, __vector double);
10853}
10854
10855static inline __ATTRS_o_ai __vector double
10856vec_double(__vector unsigned long long __a) {
10857 return __builtin_convertvector(__a, __vector double);
10858}
10859
10860/*-- vec_float --------------------------------------------------------------*/
10861
10862#if __ARCH__ >= 13
10863
10864static inline __ATTRS_o_ai __vector float
10865vec_float(__vector signed int __a) {
10866 return __builtin_convertvector(__a, __vector float);
10867}
10868
10869static inline __ATTRS_o_ai __vector float
10870vec_float(__vector unsigned int __a) {
10871 return __builtin_convertvector(__a, __vector float);
10872}
10873
10874#endif
10875
10876/*-- vec_signed -------------------------------------------------------------*/
10877
10878static inline __ATTRS_o_ai __vector signed long long
10879vec_signed(__vector double __a) {
10880 return __builtin_convertvector(__a, __vector signed long long);
10881}
10882
10883#if __ARCH__ >= 13
10884static inline __ATTRS_o_ai __vector signed int
10885vec_signed(__vector float __a) {
10886 return __builtin_convertvector(__a, __vector signed int);
10887}
10888#endif
10889
10890/*-- vec_unsigned -----------------------------------------------------------*/
10891
10892static inline __ATTRS_o_ai __vector unsigned long long
10893vec_unsigned(__vector double __a) {
10894 return __builtin_convertvector(__a, __vector unsigned long long);
10895}
10896
10897#if __ARCH__ >= 13
10898static inline __ATTRS_o_ai __vector unsigned int
10899vec_unsigned(__vector float __a) {
10900 return __builtin_convertvector(__a, __vector unsigned int);
10901}
10902#endif
10903
10904/*-- vec_roundp -------------------------------------------------------------*/
10905
10906#if __ARCH__ >= 12
10907static inline __ATTRS_o_ai __vector float
10908vec_roundp(__vector float __a) {
10909 return __builtin_s390_vfisb(__a, 4, 6);
10910}
10911#endif
10912
10913static inline __ATTRS_o_ai __vector double
10914vec_roundp(__vector double __a) {
10915 return __builtin_s390_vfidb(__a, 4, 6);
10916}
10917
10918/*-- vec_ceil ---------------------------------------------------------------*/
10919
10920#if __ARCH__ >= 12
10921static inline __ATTRS_o_ai __vector float
10922vec_ceil(__vector float __a) {
10923 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
10924 return __builtin_s390_vfisb(__a, 4, 6);
10925}
10926#endif
10927
10928static inline __ATTRS_o_ai __vector double
10929vec_ceil(__vector double __a) {
10930 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
10931 return __builtin_s390_vfidb(__a, 4, 6);
10932}
10933
10934/*-- vec_roundm -------------------------------------------------------------*/
10935
10936#if __ARCH__ >= 12
10937static inline __ATTRS_o_ai __vector float
10938vec_roundm(__vector float __a) {
10939 return __builtin_s390_vfisb(__a, 4, 7);
10940}
10941#endif
10942
10943static inline __ATTRS_o_ai __vector double
10944vec_roundm(__vector double __a) {
10945 return __builtin_s390_vfidb(__a, 4, 7);
10946}
10947
10948/*-- vec_floor --------------------------------------------------------------*/
10949
10950#if __ARCH__ >= 12
10951static inline __ATTRS_o_ai __vector float
10952vec_floor(__vector float __a) {
10953 // On this platform, vec_floor never triggers the IEEE-inexact exception.
10954 return __builtin_s390_vfisb(__a, 4, 7);
10955}
10956#endif
10957
10958static inline __ATTRS_o_ai __vector double
10959vec_floor(__vector double __a) {
10960 // On this platform, vec_floor never triggers the IEEE-inexact exception.
10961 return __builtin_s390_vfidb(__a, 4, 7);
10962}
10963
10964/*-- vec_roundz -------------------------------------------------------------*/
10965
10966#if __ARCH__ >= 12
10967static inline __ATTRS_o_ai __vector float
10968vec_roundz(__vector float __a) {
10969 return __builtin_s390_vfisb(__a, 4, 5);
10970}
10971#endif
10972
10973static inline __ATTRS_o_ai __vector double
10974vec_roundz(__vector double __a) {
10975 return __builtin_s390_vfidb(__a, 4, 5);
10976}
10977
10978/*-- vec_trunc --------------------------------------------------------------*/
10979
10980#if __ARCH__ >= 12
10981static inline __ATTRS_o_ai __vector float
10982vec_trunc(__vector float __a) {
10983 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
10984 return __builtin_s390_vfisb(__a, 4, 5);
10985}
10986#endif
10987
10988static inline __ATTRS_o_ai __vector double
10989vec_trunc(__vector double __a) {
10990 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
10991 return __builtin_s390_vfidb(__a, 4, 5);
10992}
10993
10994/*-- vec_roundc -------------------------------------------------------------*/
10995
10996#if __ARCH__ >= 12
10997static inline __ATTRS_o_ai __vector float
10998vec_roundc(__vector float __a) {
10999 return __builtin_s390_vfisb(__a, 4, 0);
11000}
11001#endif
11002
11003static inline __ATTRS_o_ai __vector double
11004vec_roundc(__vector double __a) {
11005 return __builtin_s390_vfidb(__a, 4, 0);
11006}
11007
11008/*-- vec_rint ---------------------------------------------------------------*/
11009
11010#if __ARCH__ >= 12
11011static inline __ATTRS_o_ai __vector float
11012vec_rint(__vector float __a) {
11013 // vec_rint may trigger the IEEE-inexact exception.
11014 return __builtin_s390_vfisb(__a, 0, 0);
11015}
11016#endif
11017
11018static inline __ATTRS_o_ai __vector double
11019vec_rint(__vector double __a) {
11020 // vec_rint may trigger the IEEE-inexact exception.
11021 return __builtin_s390_vfidb(__a, 0, 0);
11022}
11023
11024/*-- vec_round --------------------------------------------------------------*/
11025
11026#if __ARCH__ >= 12
11027static inline __ATTRS_o_ai __vector float
11028vec_round(__vector float __a) {
11029 return __builtin_s390_vfisb(__a, 4, 4);
11030}
11031#endif
11032
11033static inline __ATTRS_o_ai __vector double
11034vec_round(__vector double __a) {
11035 return __builtin_s390_vfidb(__a, 4, 4);
11036}
11037
11038/*-- vec_fp_test_data_class -------------------------------------------------*/
11039
11040#if __ARCH__ >= 12
11041extern __ATTRS_o __vector __bool int
11042vec_fp_test_data_class(__vector float __a, int __b, int *__c)
11043 __constant_range(__b, 0, 4095);
11044
11045extern __ATTRS_o __vector __bool long long
11046vec_fp_test_data_class(__vector double __a, int __b, int *__c)
11047 __constant_range(__b, 0, 4095);
11048
11049#define vec_fp_test_data_class(X, Y, Z) \
11050 ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
11051 __extension__ ({ \
11052 __vector unsigned char __res; \
11053 __vector unsigned char __x = (__vector unsigned char)(X); \
11054 int *__z = (Z); \
11055 switch (sizeof ((X)[0])) { \
11056 case 4: __res = (__vector unsigned char) \
11057 __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
11058 break; \
11059 default: __res = (__vector unsigned char) \
11060 __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
11061 break; \
11062 } __res; }))
11063#else
11064#define vec_fp_test_data_class(X, Y, Z) \
11065 ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
11066#endif
11067
11068#define __VEC_CLASS_FP_ZERO_P (1 << 11)
11069#define __VEC_CLASS_FP_ZERO_N (1 << 10)
11070#define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
11071#define __VEC_CLASS_FP_NORMAL_P (1 << 9)
11072#define __VEC_CLASS_FP_NORMAL_N (1 << 8)
11073#define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
11074 __VEC_CLASS_FP_NORMAL_N)
11075#define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
11076#define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
11077#define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
11078 __VEC_CLASS_FP_SUBNORMAL_N)
11079#define __VEC_CLASS_FP_INFINITY_P (1 << 5)
11080#define __VEC_CLASS_FP_INFINITY_N (1 << 4)
11081#define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
11082 __VEC_CLASS_FP_INFINITY_N)
11083#define __VEC_CLASS_FP_QNAN_P (1 << 3)
11084#define __VEC_CLASS_FP_QNAN_N (1 << 2)
11085#define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
11086#define __VEC_CLASS_FP_SNAN_P (1 << 1)
11087#define __VEC_CLASS_FP_SNAN_N (1 << 0)
11088#define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
11089#define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
11090#define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
11091 __VEC_CLASS_FP_SUBNORMAL | \
11092 __VEC_CLASS_FP_ZERO | \
11093 __VEC_CLASS_FP_INFINITY)
11094
11095/*-- vec_extend_to_fp32_hi --------------------------------------------------*/
11096
11097#if __ARCH__ >= 14
11098#define vec_extend_to_fp32_hi(X, W) \
11099 ((__vector float)__builtin_s390_vclfnhs((X), (W)));
11100#endif
11101
11102/*-- vec_extend_to_fp32_hi --------------------------------------------------*/
11103
11104#if __ARCH__ >= 14
11105#define vec_extend_to_fp32_lo(X, W) \
11106 ((__vector float)__builtin_s390_vclfnls((X), (W)));
11107#endif
11108
11109/*-- vec_round_from_fp32 ----------------------------------------------------*/
11110
11111#if __ARCH__ >= 14
11112#define vec_round_from_fp32(X, Y, W) \
11113 ((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W)));
11114#endif
11115
11116/*-- vec_convert_to_fp16 ----------------------------------------------------*/
11117
11118#if __ARCH__ >= 14
11119#define vec_convert_to_fp16(X, W) \
11120 ((__vector unsigned short)__builtin_s390_vcfn((X), (W)));
11121#endif
11122
11123/*-- vec_convert_from_fp16 --------------------------------------------------*/
11124
11125#if __ARCH__ >= 14
11126#define vec_convert_from_fp16(X, W) \
11127 ((__vector unsigned short)__builtin_s390_vcnf((X), (W)));
11128#endif
11129
11130/*-- vec_cp_until_zero ------------------------------------------------------*/
11131
11132static inline __ATTRS_o_ai __vector signed char
11133vec_cp_until_zero(__vector signed char __a) {
11134 return ((__vector signed char)
11135 __builtin_s390_vistrb((__vector unsigned char)__a));
11136}
11137
11138static inline __ATTRS_o_ai __vector __bool char
11139vec_cp_until_zero(__vector __bool char __a) {
11140 return ((__vector __bool char)
11141 __builtin_s390_vistrb((__vector unsigned char)__a));
11142}
11143
11144static inline __ATTRS_o_ai __vector unsigned char
11145vec_cp_until_zero(__vector unsigned char __a) {
11146 return __builtin_s390_vistrb(__a);
11147}
11148
11149static inline __ATTRS_o_ai __vector signed short
11150vec_cp_until_zero(__vector signed short __a) {
11151 return ((__vector signed short)
11152 __builtin_s390_vistrh((__vector unsigned short)__a));
11153}
11154
11155static inline __ATTRS_o_ai __vector __bool short
11156vec_cp_until_zero(__vector __bool short __a) {
11157 return ((__vector __bool short)
11158 __builtin_s390_vistrh((__vector unsigned short)__a));
11159}
11160
11161static inline __ATTRS_o_ai __vector unsigned short
11162vec_cp_until_zero(__vector unsigned short __a) {
11163 return __builtin_s390_vistrh(__a);
11164}
11165
11166static inline __ATTRS_o_ai __vector signed int
11167vec_cp_until_zero(__vector signed int __a) {
11168 return ((__vector signed int)
11169 __builtin_s390_vistrf((__vector unsigned int)__a));
11170}
11171
11172static inline __ATTRS_o_ai __vector __bool int
11173vec_cp_until_zero(__vector __bool int __a) {
11174 return ((__vector __bool int)
11175 __builtin_s390_vistrf((__vector unsigned int)__a));
11176}
11177
11178static inline __ATTRS_o_ai __vector unsigned int
11179vec_cp_until_zero(__vector unsigned int __a) {
11180 return __builtin_s390_vistrf(__a);
11181}
11182
11183/*-- vec_cp_until_zero_cc ---------------------------------------------------*/
11184
11185static inline __ATTRS_o_ai __vector signed char
11186vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
11187 return (__vector signed char)
11188 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
11189}
11190
11191static inline __ATTRS_o_ai __vector __bool char
11192vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
11193 return (__vector __bool char)
11194 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
11195}
11196
11197static inline __ATTRS_o_ai __vector unsigned char
11198vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
11199 return __builtin_s390_vistrbs(__a, __cc);
11200}
11201
11202static inline __ATTRS_o_ai __vector signed short
11203vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
11204 return (__vector signed short)
11205 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
11206}
11207
11208static inline __ATTRS_o_ai __vector __bool short
11209vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
11210 return (__vector __bool short)
11211 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
11212}
11213
11214static inline __ATTRS_o_ai __vector unsigned short
11215vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
11216 return __builtin_s390_vistrhs(__a, __cc);
11217}
11218
11219static inline __ATTRS_o_ai __vector signed int
11220vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
11221 return (__vector signed int)
11222 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
11223}
11224
11225static inline __ATTRS_o_ai __vector __bool int
11226vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
11227 return (__vector __bool int)
11228 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
11229}
11230
11231static inline __ATTRS_o_ai __vector unsigned int
11232vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
11233 return __builtin_s390_vistrfs(__a, __cc);
11234}
11235
11236/*-- vec_cmpeq_idx ----------------------------------------------------------*/
11237
11238static inline __ATTRS_o_ai __vector signed char
11239vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
11240 return (__vector signed char)
11241 __builtin_s390_vfeeb((__vector unsigned char)__a,
11242 (__vector unsigned char)__b);
11243}
11244
11245static inline __ATTRS_o_ai __vector unsigned char
11246vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
11247 return __builtin_s390_vfeeb((__vector unsigned char)__a,
11248 (__vector unsigned char)__b);
11249}
11250
11251static inline __ATTRS_o_ai __vector unsigned char
11252vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
11253 return __builtin_s390_vfeeb(__a, __b);
11254}
11255
11256static inline __ATTRS_o_ai __vector signed short
11257vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
11258 return (__vector signed short)
11259 __builtin_s390_vfeeh((__vector unsigned short)__a,
11260 (__vector unsigned short)__b);
11261}
11262
11263static inline __ATTRS_o_ai __vector unsigned short
11264vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
11265 return __builtin_s390_vfeeh((__vector unsigned short)__a,
11266 (__vector unsigned short)__b);
11267}
11268
11269static inline __ATTRS_o_ai __vector unsigned short
11270vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
11271 return __builtin_s390_vfeeh(__a, __b);
11272}
11273
11274static inline __ATTRS_o_ai __vector signed int
11275vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
11276 return (__vector signed int)
11277 __builtin_s390_vfeef((__vector unsigned int)__a,
11278 (__vector unsigned int)__b);
11279}
11280
11281static inline __ATTRS_o_ai __vector unsigned int
11282vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
11283 return __builtin_s390_vfeef((__vector unsigned int)__a,
11284 (__vector unsigned int)__b);
11285}
11286
11287static inline __ATTRS_o_ai __vector unsigned int
11288vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
11289 return __builtin_s390_vfeef(__a, __b);
11290}
11291
11292/*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
11293
11294static inline __ATTRS_o_ai __vector signed char
11295vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
11296 return (__vector signed char)
11297 __builtin_s390_vfeebs((__vector unsigned char)__a,
11298 (__vector unsigned char)__b, __cc);
11299}
11300
11301static inline __ATTRS_o_ai __vector unsigned char
11302vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
11303 return __builtin_s390_vfeebs((__vector unsigned char)__a,
11304 (__vector unsigned char)__b, __cc);
11305}
11306
11307static inline __ATTRS_o_ai __vector unsigned char
11308vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11309 int *__cc) {
11310 return __builtin_s390_vfeebs(__a, __b, __cc);
11311}
11312
11313static inline __ATTRS_o_ai __vector signed short
11314vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
11315 int *__cc) {
11316 return (__vector signed short)
11317 __builtin_s390_vfeehs((__vector unsigned short)__a,
11318 (__vector unsigned short)__b, __cc);
11319}
11320
11321static inline __ATTRS_o_ai __vector unsigned short
11322vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
11323 return __builtin_s390_vfeehs((__vector unsigned short)__a,
11324 (__vector unsigned short)__b, __cc);
11325}
11326
11327static inline __ATTRS_o_ai __vector unsigned short
11328vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11329 int *__cc) {
11330 return __builtin_s390_vfeehs(__a, __b, __cc);
11331}
11332
11333static inline __ATTRS_o_ai __vector signed int
11334vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
11335 return (__vector signed int)
11336 __builtin_s390_vfeefs((__vector unsigned int)__a,
11337 (__vector unsigned int)__b, __cc);
11338}
11339
11340static inline __ATTRS_o_ai __vector unsigned int
11341vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
11342 return __builtin_s390_vfeefs((__vector unsigned int)__a,
11343 (__vector unsigned int)__b, __cc);
11344}
11345
11346static inline __ATTRS_o_ai __vector unsigned int
11347vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11348 int *__cc) {
11349 return __builtin_s390_vfeefs(__a, __b, __cc);
11350}
11351
11352/*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
11353
11354static inline __ATTRS_o_ai __vector signed char
11355vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
11356 return (__vector signed char)
11357 __builtin_s390_vfeezb((__vector unsigned char)__a,
11358 (__vector unsigned char)__b);
11359}
11360
11361static inline __ATTRS_o_ai __vector unsigned char
11362vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
11363 return __builtin_s390_vfeezb((__vector unsigned char)__a,
11364 (__vector unsigned char)__b);
11365}
11366
11367static inline __ATTRS_o_ai __vector unsigned char
11368vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
11369 return __builtin_s390_vfeezb(__a, __b);
11370}
11371
11372static inline __ATTRS_o_ai __vector signed short
11373vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
11374 return (__vector signed short)
11375 __builtin_s390_vfeezh((__vector unsigned short)__a,
11376 (__vector unsigned short)__b);
11377}
11378
11379static inline __ATTRS_o_ai __vector unsigned short
11380vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
11381 return __builtin_s390_vfeezh((__vector unsigned short)__a,
11382 (__vector unsigned short)__b);
11383}
11384
11385static inline __ATTRS_o_ai __vector unsigned short
11386vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
11387 return __builtin_s390_vfeezh(__a, __b);
11388}
11389
11390static inline __ATTRS_o_ai __vector signed int
11391vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
11392 return (__vector signed int)
11393 __builtin_s390_vfeezf((__vector unsigned int)__a,
11394 (__vector unsigned int)__b);
11395}
11396
11397static inline __ATTRS_o_ai __vector unsigned int
11398vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
11399 return __builtin_s390_vfeezf((__vector unsigned int)__a,
11400 (__vector unsigned int)__b);
11401}
11402
11403static inline __ATTRS_o_ai __vector unsigned int
11404vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
11405 return __builtin_s390_vfeezf(__a, __b);
11406}
11407
11408/*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
11409
11410static inline __ATTRS_o_ai __vector signed char
11411vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
11412 int *__cc) {
11413 return (__vector signed char)
11414 __builtin_s390_vfeezbs((__vector unsigned char)__a,
11415 (__vector unsigned char)__b, __cc);
11416}
11417
11418static inline __ATTRS_o_ai __vector unsigned char
11419vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
11420 int *__cc) {
11421 return __builtin_s390_vfeezbs((__vector unsigned char)__a,
11422 (__vector unsigned char)__b, __cc);
11423}
11424
11425static inline __ATTRS_o_ai __vector unsigned char
11426vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11427 int *__cc) {
11428 return __builtin_s390_vfeezbs(__a, __b, __cc);
11429}
11430
11431static inline __ATTRS_o_ai __vector signed short
11432vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
11433 int *__cc) {
11434 return (__vector signed short)
11435 __builtin_s390_vfeezhs((__vector unsigned short)__a,
11436 (__vector unsigned short)__b, __cc);
11437}
11438
11439static inline __ATTRS_o_ai __vector unsigned short
11440vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
11441 int *__cc) {
11442 return __builtin_s390_vfeezhs((__vector unsigned short)__a,
11443 (__vector unsigned short)__b, __cc);
11444}
11445
11446static inline __ATTRS_o_ai __vector unsigned short
11447vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11448 int *__cc) {
11449 return __builtin_s390_vfeezhs(__a, __b, __cc);
11450}
11451
11452static inline __ATTRS_o_ai __vector signed int
11453vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
11454 int *__cc) {
11455 return (__vector signed int)
11456 __builtin_s390_vfeezfs((__vector unsigned int)__a,
11457 (__vector unsigned int)__b, __cc);
11458}
11459
11460static inline __ATTRS_o_ai __vector unsigned int
11461vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
11462 int *__cc) {
11463 return __builtin_s390_vfeezfs((__vector unsigned int)__a,
11464 (__vector unsigned int)__b, __cc);
11465}
11466
11467static inline __ATTRS_o_ai __vector unsigned int
11468vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11469 int *__cc) {
11470 return __builtin_s390_vfeezfs(__a, __b, __cc);
11471}
11472
11473/*-- vec_cmpne_idx ----------------------------------------------------------*/
11474
11475static inline __ATTRS_o_ai __vector signed char
11476vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
11477 return (__vector signed char)
11478 __builtin_s390_vfeneb((__vector unsigned char)__a,
11479 (__vector unsigned char)__b);
11480}
11481
11482static inline __ATTRS_o_ai __vector unsigned char
11483vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
11484 return __builtin_s390_vfeneb((__vector unsigned char)__a,
11485 (__vector unsigned char)__b);
11486}
11487
11488static inline __ATTRS_o_ai __vector unsigned char
11489vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
11490 return __builtin_s390_vfeneb(__a, __b);
11491}
11492
11493static inline __ATTRS_o_ai __vector signed short
11494vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
11495 return (__vector signed short)
11496 __builtin_s390_vfeneh((__vector unsigned short)__a,
11497 (__vector unsigned short)__b);
11498}
11499
11500static inline __ATTRS_o_ai __vector unsigned short
11501vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
11502 return __builtin_s390_vfeneh((__vector unsigned short)__a,
11503 (__vector unsigned short)__b);
11504}
11505
11506static inline __ATTRS_o_ai __vector unsigned short
11507vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
11508 return __builtin_s390_vfeneh(__a, __b);
11509}
11510
11511static inline __ATTRS_o_ai __vector signed int
11512vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
11513 return (__vector signed int)
11514 __builtin_s390_vfenef((__vector unsigned int)__a,
11515 (__vector unsigned int)__b);
11516}
11517
11518static inline __ATTRS_o_ai __vector unsigned int
11519vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
11520 return __builtin_s390_vfenef((__vector unsigned int)__a,
11521 (__vector unsigned int)__b);
11522}
11523
11524static inline __ATTRS_o_ai __vector unsigned int
11525vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
11526 return __builtin_s390_vfenef(__a, __b);
11527}
11528
11529/*-- vec_cmpne_idx_cc -------------------------------------------------------*/
11530
11531static inline __ATTRS_o_ai __vector signed char
11532vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
11533 return (__vector signed char)
11534 __builtin_s390_vfenebs((__vector unsigned char)__a,
11535 (__vector unsigned char)__b, __cc);
11536}
11537
11538static inline __ATTRS_o_ai __vector unsigned char
11539vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
11540 return __builtin_s390_vfenebs((__vector unsigned char)__a,
11541 (__vector unsigned char)__b, __cc);
11542}
11543
11544static inline __ATTRS_o_ai __vector unsigned char
11545vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11546 int *__cc) {
11547 return __builtin_s390_vfenebs(__a, __b, __cc);
11548}
11549
11550static inline __ATTRS_o_ai __vector signed short
11551vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
11552 int *__cc) {
11553 return (__vector signed short)
11554 __builtin_s390_vfenehs((__vector unsigned short)__a,
11555 (__vector unsigned short)__b, __cc);
11556}
11557
11558static inline __ATTRS_o_ai __vector unsigned short
11559vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
11560 int *__cc) {
11561 return __builtin_s390_vfenehs((__vector unsigned short)__a,
11562 (__vector unsigned short)__b, __cc);
11563}
11564
11565static inline __ATTRS_o_ai __vector unsigned short
11566vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11567 int *__cc) {
11568 return __builtin_s390_vfenehs(__a, __b, __cc);
11569}
11570
11571static inline __ATTRS_o_ai __vector signed int
11572vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
11573 return (__vector signed int)
11574 __builtin_s390_vfenefs((__vector unsigned int)__a,
11575 (__vector unsigned int)__b, __cc);
11576}
11577
11578static inline __ATTRS_o_ai __vector unsigned int
11579vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
11580 return __builtin_s390_vfenefs((__vector unsigned int)__a,
11581 (__vector unsigned int)__b, __cc);
11582}
11583
11584static inline __ATTRS_o_ai __vector unsigned int
11585vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11586 int *__cc) {
11587 return __builtin_s390_vfenefs(__a, __b, __cc);
11588}
11589
11590/*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
11591
11592static inline __ATTRS_o_ai __vector signed char
11593vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
11594 return (__vector signed char)
11595 __builtin_s390_vfenezb((__vector unsigned char)__a,
11596 (__vector unsigned char)__b);
11597}
11598
11599static inline __ATTRS_o_ai __vector unsigned char
11600vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
11601 return __builtin_s390_vfenezb((__vector unsigned char)__a,
11602 (__vector unsigned char)__b);
11603}
11604
11605static inline __ATTRS_o_ai __vector unsigned char
11606vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
11607 return __builtin_s390_vfenezb(__a, __b);
11608}
11609
11610static inline __ATTRS_o_ai __vector signed short
11611vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
11612 return (__vector signed short)
11613 __builtin_s390_vfenezh((__vector unsigned short)__a,
11614 (__vector unsigned short)__b);
11615}
11616
11617static inline __ATTRS_o_ai __vector unsigned short
11618vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
11619 return __builtin_s390_vfenezh((__vector unsigned short)__a,
11620 (__vector unsigned short)__b);
11621}
11622
11623static inline __ATTRS_o_ai __vector unsigned short
11624vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
11625 return __builtin_s390_vfenezh(__a, __b);
11626}
11627
11628static inline __ATTRS_o_ai __vector signed int
11629vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
11630 return (__vector signed int)
11631 __builtin_s390_vfenezf((__vector unsigned int)__a,
11632 (__vector unsigned int)__b);
11633}
11634
11635static inline __ATTRS_o_ai __vector unsigned int
11636vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
11637 return __builtin_s390_vfenezf((__vector unsigned int)__a,
11638 (__vector unsigned int)__b);
11639}
11640
11641static inline __ATTRS_o_ai __vector unsigned int
11642vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
11643 return __builtin_s390_vfenezf(__a, __b);
11644}
11645
11646/*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
11647
11648static inline __ATTRS_o_ai __vector signed char
11649vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
11650 int *__cc) {
11651 return (__vector signed char)
11652 __builtin_s390_vfenezbs((__vector unsigned char)__a,
11653 (__vector unsigned char)__b, __cc);
11654}
11655
11656static inline __ATTRS_o_ai __vector unsigned char
11657vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
11658 int *__cc) {
11659 return __builtin_s390_vfenezbs((__vector unsigned char)__a,
11660 (__vector unsigned char)__b, __cc);
11661}
11662
11663static inline __ATTRS_o_ai __vector unsigned char
11664vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11665 int *__cc) {
11666 return __builtin_s390_vfenezbs(__a, __b, __cc);
11667}
11668
11669static inline __ATTRS_o_ai __vector signed short
11670vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
11671 int *__cc) {
11672 return (__vector signed short)
11673 __builtin_s390_vfenezhs((__vector unsigned short)__a,
11674 (__vector unsigned short)__b, __cc);
11675}
11676
11677static inline __ATTRS_o_ai __vector unsigned short
11678vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
11679 int *__cc) {
11680 return __builtin_s390_vfenezhs((__vector unsigned short)__a,
11681 (__vector unsigned short)__b, __cc);
11682}
11683
11684static inline __ATTRS_o_ai __vector unsigned short
11685vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11686 int *__cc) {
11687 return __builtin_s390_vfenezhs(__a, __b, __cc);
11688}
11689
11690static inline __ATTRS_o_ai __vector signed int
11691vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
11692 int *__cc) {
11693 return (__vector signed int)
11694 __builtin_s390_vfenezfs((__vector unsigned int)__a,
11695 (__vector unsigned int)__b, __cc);
11696}
11697
11698static inline __ATTRS_o_ai __vector unsigned int
11699vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
11700 int *__cc) {
11701 return __builtin_s390_vfenezfs((__vector unsigned int)__a,
11702 (__vector unsigned int)__b, __cc);
11703}
11704
11705static inline __ATTRS_o_ai __vector unsigned int
11706vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11707 int *__cc) {
11708 return __builtin_s390_vfenezfs(__a, __b, __cc);
11709}
11710
11711/*-- vec_cmprg --------------------------------------------------------------*/
11712
11713static inline __ATTRS_o_ai __vector __bool char
11714vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
11715 __vector unsigned char __c) {
11716 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
11717}
11718
11719static inline __ATTRS_o_ai __vector __bool short
11720vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
11721 __vector unsigned short __c) {
11722 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
11723}
11724
11725static inline __ATTRS_o_ai __vector __bool int
11726vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
11727 __vector unsigned int __c) {
11728 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
11729}
11730
11731/*-- vec_cmprg_cc -----------------------------------------------------------*/
11732
11733static inline __ATTRS_o_ai __vector __bool char
11734vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
11735 __vector unsigned char __c, int *__cc) {
11736 return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
11737}
11738
11739static inline __ATTRS_o_ai __vector __bool short
11740vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
11741 __vector unsigned short __c, int *__cc) {
11742 return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
11743}
11744
11745static inline __ATTRS_o_ai __vector __bool int
11746vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
11747 __vector unsigned int __c, int *__cc) {
11748 return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
11749}
11750
11751/*-- vec_cmprg_idx ----------------------------------------------------------*/
11752
11753static inline __ATTRS_o_ai __vector unsigned char
11754vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
11755 __vector unsigned char __c) {
11756 return __builtin_s390_vstrcb(__a, __b, __c, 0);
11757}
11758
11759static inline __ATTRS_o_ai __vector unsigned short
11760vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
11761 __vector unsigned short __c) {
11762 return __builtin_s390_vstrch(__a, __b, __c, 0);
11763}
11764
11765static inline __ATTRS_o_ai __vector unsigned int
11766vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
11767 __vector unsigned int __c) {
11768 return __builtin_s390_vstrcf(__a, __b, __c, 0);
11769}
11770
11771/*-- vec_cmprg_idx_cc -------------------------------------------------------*/
11772
11773static inline __ATTRS_o_ai __vector unsigned char
11774vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11775 __vector unsigned char __c, int *__cc) {
11776 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
11777}
11778
11779static inline __ATTRS_o_ai __vector unsigned short
11780vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11781 __vector unsigned short __c, int *__cc) {
11782 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
11783}
11784
11785static inline __ATTRS_o_ai __vector unsigned int
11786vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11787 __vector unsigned int __c, int *__cc) {
11788 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
11789}
11790
11791/*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
11792
11793static inline __ATTRS_o_ai __vector unsigned char
11794vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
11795 __vector unsigned char __c) {
11796 return __builtin_s390_vstrczb(__a, __b, __c, 0);
11797}
11798
11799static inline __ATTRS_o_ai __vector unsigned short
11800vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
11801 __vector unsigned short __c) {
11802 return __builtin_s390_vstrczh(__a, __b, __c, 0);
11803}
11804
11805static inline __ATTRS_o_ai __vector unsigned int
11806vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
11807 __vector unsigned int __c) {
11808 return __builtin_s390_vstrczf(__a, __b, __c, 0);
11809}
11810
11811/*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
11812
11813static inline __ATTRS_o_ai __vector unsigned char
11814vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11815 __vector unsigned char __c, int *__cc) {
11816 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
11817}
11818
11819static inline __ATTRS_o_ai __vector unsigned short
11820vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11821 __vector unsigned short __c, int *__cc) {
11822 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
11823}
11824
11825static inline __ATTRS_o_ai __vector unsigned int
11826vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11827 __vector unsigned int __c, int *__cc) {
11828 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
11829}
11830
11831/*-- vec_cmpnrg -------------------------------------------------------------*/
11832
11833static inline __ATTRS_o_ai __vector __bool char
11834vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
11835 __vector unsigned char __c) {
11836 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
11837}
11838
11839static inline __ATTRS_o_ai __vector __bool short
11840vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
11841 __vector unsigned short __c) {
11842 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
11843}
11844
11845static inline __ATTRS_o_ai __vector __bool int
11846vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
11847 __vector unsigned int __c) {
11848 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
11849}
11850
11851/*-- vec_cmpnrg_cc ----------------------------------------------------------*/
11852
11853static inline __ATTRS_o_ai __vector __bool char
11854vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
11855 __vector unsigned char __c, int *__cc) {
11856 return (__vector __bool char)
11857 __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
11858}
11859
11860static inline __ATTRS_o_ai __vector __bool short
11861vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
11862 __vector unsigned short __c, int *__cc) {
11863 return (__vector __bool short)
11864 __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
11865}
11866
11867static inline __ATTRS_o_ai __vector __bool int
11868vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
11869 __vector unsigned int __c, int *__cc) {
11870 return (__vector __bool int)
11871 __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
11872}
11873
11874/*-- vec_cmpnrg_idx ---------------------------------------------------------*/
11875
11876static inline __ATTRS_o_ai __vector unsigned char
11877vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
11878 __vector unsigned char __c) {
11879 return __builtin_s390_vstrcb(__a, __b, __c, 8);
11880}
11881
11882static inline __ATTRS_o_ai __vector unsigned short
11883vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
11884 __vector unsigned short __c) {
11885 return __builtin_s390_vstrch(__a, __b, __c, 8);
11886}
11887
11888static inline __ATTRS_o_ai __vector unsigned int
11889vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
11890 __vector unsigned int __c) {
11891 return __builtin_s390_vstrcf(__a, __b, __c, 8);
11892}
11893
11894/*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
11895
11896static inline __ATTRS_o_ai __vector unsigned char
11897vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11898 __vector unsigned char __c, int *__cc) {
11899 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
11900}
11901
11902static inline __ATTRS_o_ai __vector unsigned short
11903vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11904 __vector unsigned short __c, int *__cc) {
11905 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
11906}
11907
11908static inline __ATTRS_o_ai __vector unsigned int
11909vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11910 __vector unsigned int __c, int *__cc) {
11911 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
11912}
11913
11914/*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
11915
11916static inline __ATTRS_o_ai __vector unsigned char
11917vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
11918 __vector unsigned char __c) {
11919 return __builtin_s390_vstrczb(__a, __b, __c, 8);
11920}
11921
11922static inline __ATTRS_o_ai __vector unsigned short
11923vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
11924 __vector unsigned short __c) {
11925 return __builtin_s390_vstrczh(__a, __b, __c, 8);
11926}
11927
11928static inline __ATTRS_o_ai __vector unsigned int
11929vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
11930 __vector unsigned int __c) {
11931 return __builtin_s390_vstrczf(__a, __b, __c, 8);
11932}
11933
11934/*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
11935
11936static inline __ATTRS_o_ai __vector unsigned char
11937vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
11938 __vector unsigned char __b,
11939 __vector unsigned char __c, int *__cc) {
11940 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
11941}
11942
11943static inline __ATTRS_o_ai __vector unsigned short
11944vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
11945 __vector unsigned short __b,
11946 __vector unsigned short __c, int *__cc) {
11947 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
11948}
11949
11950static inline __ATTRS_o_ai __vector unsigned int
11951vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
11952 __vector unsigned int __b,
11953 __vector unsigned int __c, int *__cc) {
11954 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
11955}
11956
11957/*-- vec_find_any_eq --------------------------------------------------------*/
11958
11959static inline __ATTRS_o_ai __vector __bool char
11960vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
11961 return (__vector __bool char)
11962 __builtin_s390_vfaeb((__vector unsigned char)__a,
11963 (__vector unsigned char)__b, 4);
11964}
11965
11966static inline __ATTRS_o_ai __vector __bool char
11967vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
11968 return (__vector __bool char)
11969 __builtin_s390_vfaeb((__vector unsigned char)__a,
11970 (__vector unsigned char)__b, 4);
11971}
11972
11973static inline __ATTRS_o_ai __vector __bool char
11974vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
11975 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
11976}
11977
11978static inline __ATTRS_o_ai __vector __bool short
11979vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
11980 return (__vector __bool short)
11981 __builtin_s390_vfaeh((__vector unsigned short)__a,
11982 (__vector unsigned short)__b, 4);
11983}
11984
11985static inline __ATTRS_o_ai __vector __bool short
11986vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
11987 return (__vector __bool short)
11988 __builtin_s390_vfaeh((__vector unsigned short)__a,
11989 (__vector unsigned short)__b, 4);
11990}
11991
11992static inline __ATTRS_o_ai __vector __bool short
11993vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
11994 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
11995}
11996
11997static inline __ATTRS_o_ai __vector __bool int
11998vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
11999 return (__vector __bool int)
12000 __builtin_s390_vfaef((__vector unsigned int)__a,
12001 (__vector unsigned int)__b, 4);
12002}
12003
12004static inline __ATTRS_o_ai __vector __bool int
12005vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
12006 return (__vector __bool int)
12007 __builtin_s390_vfaef((__vector unsigned int)__a,
12008 (__vector unsigned int)__b, 4);
12009}
12010
12011static inline __ATTRS_o_ai __vector __bool int
12012vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
12013 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
12014}
12015
12016/*-- vec_find_any_eq_cc -----------------------------------------------------*/
12017
12018static inline __ATTRS_o_ai __vector __bool char
12019vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
12020 int *__cc) {
12021 return (__vector __bool char)
12022 __builtin_s390_vfaebs((__vector unsigned char)__a,
12023 (__vector unsigned char)__b, 4, __cc);
12024}
12025
12026static inline __ATTRS_o_ai __vector __bool char
12027vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
12028 int *__cc) {
12029 return (__vector __bool char)
12030 __builtin_s390_vfaebs((__vector unsigned char)__a,
12031 (__vector unsigned char)__b, 4, __cc);
12032}
12033
12034static inline __ATTRS_o_ai __vector __bool char
12035vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
12036 int *__cc) {
12037 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
12038}
12039
12040static inline __ATTRS_o_ai __vector __bool short
12041vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
12042 int *__cc) {
12043 return (__vector __bool short)
12044 __builtin_s390_vfaehs((__vector unsigned short)__a,
12045 (__vector unsigned short)__b, 4, __cc);
12046}
12047
12048static inline __ATTRS_o_ai __vector __bool short
12049vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
12050 int *__cc) {
12051 return (__vector __bool short)
12052 __builtin_s390_vfaehs((__vector unsigned short)__a,
12053 (__vector unsigned short)__b, 4, __cc);
12054}
12055
12056static inline __ATTRS_o_ai __vector __bool short
12057vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
12058 int *__cc) {
12059 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
12060}
12061
12062static inline __ATTRS_o_ai __vector __bool int
12063vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
12064 int *__cc) {
12065 return (__vector __bool int)
12066 __builtin_s390_vfaefs((__vector unsigned int)__a,
12067 (__vector unsigned int)__b, 4, __cc);
12068}
12069
12070static inline __ATTRS_o_ai __vector __bool int
12071vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
12072 int *__cc) {
12073 return (__vector __bool int)
12074 __builtin_s390_vfaefs((__vector unsigned int)__a,
12075 (__vector unsigned int)__b, 4, __cc);
12076}
12077
12078static inline __ATTRS_o_ai __vector __bool int
12079vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
12080 int *__cc) {
12081 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
12082}
12083
12084/*-- vec_find_any_eq_idx ----------------------------------------------------*/
12085
12086static inline __ATTRS_o_ai __vector signed char
12087vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
12088 return (__vector signed char)
12089 __builtin_s390_vfaeb((__vector unsigned char)__a,
12090 (__vector unsigned char)__b, 0);
12091}
12092
12093static inline __ATTRS_o_ai __vector unsigned char
12094vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
12095 return __builtin_s390_vfaeb((__vector unsigned char)__a,
12096 (__vector unsigned char)__b, 0);
12097}
12098
12099static inline __ATTRS_o_ai __vector unsigned char
12100vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
12101 return __builtin_s390_vfaeb(__a, __b, 0);
12102}
12103
12104static inline __ATTRS_o_ai __vector signed short
12105vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
12106 return (__vector signed short)
12107 __builtin_s390_vfaeh((__vector unsigned short)__a,
12108 (__vector unsigned short)__b, 0);
12109}
12110
12111static inline __ATTRS_o_ai __vector unsigned short
12112vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
12113 return __builtin_s390_vfaeh((__vector unsigned short)__a,
12114 (__vector unsigned short)__b, 0);
12115}
12116
12117static inline __ATTRS_o_ai __vector unsigned short
12118vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
12119 return __builtin_s390_vfaeh(__a, __b, 0);
12120}
12121
12122static inline __ATTRS_o_ai __vector signed int
12123vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
12124 return (__vector signed int)
12125 __builtin_s390_vfaef((__vector unsigned int)__a,
12126 (__vector unsigned int)__b, 0);
12127}
12128
12129static inline __ATTRS_o_ai __vector unsigned int
12130vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
12131 return __builtin_s390_vfaef((__vector unsigned int)__a,
12132 (__vector unsigned int)__b, 0);
12133}
12134
12135static inline __ATTRS_o_ai __vector unsigned int
12136vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
12137 return __builtin_s390_vfaef(__a, __b, 0);
12138}
12139
12140/*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
12141
12142static inline __ATTRS_o_ai __vector signed char
12143vec_find_any_eq_idx_cc(__vector signed char __a,
12144 __vector signed char __b, int *__cc) {
12145 return (__vector signed char)
12146 __builtin_s390_vfaebs((__vector unsigned char)__a,
12147 (__vector unsigned char)__b, 0, __cc);
12148}
12149
12150static inline __ATTRS_o_ai __vector unsigned char
12151vec_find_any_eq_idx_cc(__vector __bool char __a,
12152 __vector __bool char __b, int *__cc) {
12153 return __builtin_s390_vfaebs((__vector unsigned char)__a,
12154 (__vector unsigned char)__b, 0, __cc);
12155}
12156
12157static inline __ATTRS_o_ai __vector unsigned char
12158vec_find_any_eq_idx_cc(__vector unsigned char __a,
12159 __vector unsigned char __b, int *__cc) {
12160 return __builtin_s390_vfaebs(__a, __b, 0, __cc);
12161}
12162
12163static inline __ATTRS_o_ai __vector signed short
12164vec_find_any_eq_idx_cc(__vector signed short __a,
12165 __vector signed short __b, int *__cc) {
12166 return (__vector signed short)
12167 __builtin_s390_vfaehs((__vector unsigned short)__a,
12168 (__vector unsigned short)__b, 0, __cc);
12169}
12170
12171static inline __ATTRS_o_ai __vector unsigned short
12172vec_find_any_eq_idx_cc(__vector __bool short __a,
12173 __vector __bool short __b, int *__cc) {
12174 return __builtin_s390_vfaehs((__vector unsigned short)__a,
12175 (__vector unsigned short)__b, 0, __cc);
12176}
12177
12178static inline __ATTRS_o_ai __vector unsigned short
12179vec_find_any_eq_idx_cc(__vector unsigned short __a,
12180 __vector unsigned short __b, int *__cc) {
12181 return __builtin_s390_vfaehs(__a, __b, 0, __cc);
12182}
12183
12184static inline __ATTRS_o_ai __vector signed int
12185vec_find_any_eq_idx_cc(__vector signed int __a,
12186 __vector signed int __b, int *__cc) {
12187 return (__vector signed int)
12188 __builtin_s390_vfaefs((__vector unsigned int)__a,
12189 (__vector unsigned int)__b, 0, __cc);
12190}
12191
12192static inline __ATTRS_o_ai __vector unsigned int
12193vec_find_any_eq_idx_cc(__vector __bool int __a,
12194 __vector __bool int __b, int *__cc) {
12195 return __builtin_s390_vfaefs((__vector unsigned int)__a,
12196 (__vector unsigned int)__b, 0, __cc);
12197}
12198
12199static inline __ATTRS_o_ai __vector unsigned int
12200vec_find_any_eq_idx_cc(__vector unsigned int __a,
12201 __vector unsigned int __b, int *__cc) {
12202 return __builtin_s390_vfaefs(__a, __b, 0, __cc);
12203}
12204
12205/*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
12206
12207static inline __ATTRS_o_ai __vector signed char
12208vec_find_any_eq_or_0_idx(__vector signed char __a,
12209 __vector signed char __b) {
12210 return (__vector signed char)
12211 __builtin_s390_vfaezb((__vector unsigned char)__a,
12212 (__vector unsigned char)__b, 0);
12213}
12214
12215static inline __ATTRS_o_ai __vector unsigned char
12216vec_find_any_eq_or_0_idx(__vector __bool char __a,
12217 __vector __bool char __b) {
12218 return __builtin_s390_vfaezb((__vector unsigned char)__a,
12219 (__vector unsigned char)__b, 0);
12220}
12221
12222static inline __ATTRS_o_ai __vector unsigned char
12223vec_find_any_eq_or_0_idx(__vector unsigned char __a,
12224 __vector unsigned char __b) {
12225 return __builtin_s390_vfaezb(__a, __b, 0);
12226}
12227
12228static inline __ATTRS_o_ai __vector signed short
12229vec_find_any_eq_or_0_idx(__vector signed short __a,
12230 __vector signed short __b) {
12231 return (__vector signed short)
12232 __builtin_s390_vfaezh((__vector unsigned short)__a,
12233 (__vector unsigned short)__b, 0);
12234}
12235
12236static inline __ATTRS_o_ai __vector unsigned short
12237vec_find_any_eq_or_0_idx(__vector __bool short __a,
12238 __vector __bool short __b) {
12239 return __builtin_s390_vfaezh((__vector unsigned short)__a,
12240 (__vector unsigned short)__b, 0);
12241}
12242
12243static inline __ATTRS_o_ai __vector unsigned short
12244vec_find_any_eq_or_0_idx(__vector unsigned short __a,
12245 __vector unsigned short __b) {
12246 return __builtin_s390_vfaezh(__a, __b, 0);
12247}
12248
12249static inline __ATTRS_o_ai __vector signed int
12250vec_find_any_eq_or_0_idx(__vector signed int __a,
12251 __vector signed int __b) {
12252 return (__vector signed int)
12253 __builtin_s390_vfaezf((__vector unsigned int)__a,
12254 (__vector unsigned int)__b, 0);
12255}
12256
12257static inline __ATTRS_o_ai __vector unsigned int
12258vec_find_any_eq_or_0_idx(__vector __bool int __a,
12259 __vector __bool int __b) {
12260 return __builtin_s390_vfaezf((__vector unsigned int)__a,
12261 (__vector unsigned int)__b, 0);
12262}
12263
12264static inline __ATTRS_o_ai __vector unsigned int
12265vec_find_any_eq_or_0_idx(__vector unsigned int __a,
12266 __vector unsigned int __b) {
12267 return __builtin_s390_vfaezf(__a, __b, 0);
12268}
12269
12270/*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
12271
12272static inline __ATTRS_o_ai __vector signed char
12273vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
12274 __vector signed char __b, int *__cc) {
12275 return (__vector signed char)
12276 __builtin_s390_vfaezbs((__vector unsigned char)__a,
12277 (__vector unsigned char)__b, 0, __cc);
12278}
12279
12280static inline __ATTRS_o_ai __vector unsigned char
12281vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
12282 __vector __bool char __b, int *__cc) {
12283 return __builtin_s390_vfaezbs((__vector unsigned char)__a,
12284 (__vector unsigned char)__b, 0, __cc);
12285}
12286
12287static inline __ATTRS_o_ai __vector unsigned char
12288vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
12289 __vector unsigned char __b, int *__cc) {
12290 return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
12291}
12292
12293static inline __ATTRS_o_ai __vector signed short
12294vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
12295 __vector signed short __b, int *__cc) {
12296 return (__vector signed short)
12297 __builtin_s390_vfaezhs((__vector unsigned short)__a,
12298 (__vector unsigned short)__b, 0, __cc);
12299}
12300
12301static inline __ATTRS_o_ai __vector unsigned short
12302vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
12303 __vector __bool short __b, int *__cc) {
12304 return __builtin_s390_vfaezhs((__vector unsigned short)__a,
12305 (__vector unsigned short)__b, 0, __cc);
12306}
12307
12308static inline __ATTRS_o_ai __vector unsigned short
12309vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
12310 __vector unsigned short __b, int *__cc) {
12311 return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
12312}
12313
12314static inline __ATTRS_o_ai __vector signed int
12315vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
12316 __vector signed int __b, int *__cc) {
12317 return (__vector signed int)
12318 __builtin_s390_vfaezfs((__vector unsigned int)__a,
12319 (__vector unsigned int)__b, 0, __cc);
12320}
12321
12322static inline __ATTRS_o_ai __vector unsigned int
12323vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
12324 __vector __bool int __b, int *__cc) {
12325 return __builtin_s390_vfaezfs((__vector unsigned int)__a,
12326 (__vector unsigned int)__b, 0, __cc);
12327}
12328
12329static inline __ATTRS_o_ai __vector unsigned int
12330vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
12331 __vector unsigned int __b, int *__cc) {
12332 return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
12333}
12334
12335/*-- vec_find_any_ne --------------------------------------------------------*/
12336
12337static inline __ATTRS_o_ai __vector __bool char
12338vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
12339 return (__vector __bool char)
12340 __builtin_s390_vfaeb((__vector unsigned char)__a,
12341 (__vector unsigned char)__b, 12);
12342}
12343
12344static inline __ATTRS_o_ai __vector __bool char
12345vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
12346 return (__vector __bool char)
12347 __builtin_s390_vfaeb((__vector unsigned char)__a,
12348 (__vector unsigned char)__b, 12);
12349}
12350
12351static inline __ATTRS_o_ai __vector __bool char
12352vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
12353 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
12354}
12355
12356static inline __ATTRS_o_ai __vector __bool short
12357vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
12358 return (__vector __bool short)
12359 __builtin_s390_vfaeh((__vector unsigned short)__a,
12360 (__vector unsigned short)__b, 12);
12361}
12362
12363static inline __ATTRS_o_ai __vector __bool short
12364vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
12365 return (__vector __bool short)
12366 __builtin_s390_vfaeh((__vector unsigned short)__a,
12367 (__vector unsigned short)__b, 12);
12368}
12369
12370static inline __ATTRS_o_ai __vector __bool short
12371vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
12372 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
12373}
12374
12375static inline __ATTRS_o_ai __vector __bool int
12376vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
12377 return (__vector __bool int)
12378 __builtin_s390_vfaef((__vector unsigned int)__a,
12379 (__vector unsigned int)__b, 12);
12380}
12381
12382static inline __ATTRS_o_ai __vector __bool int
12383vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
12384 return (__vector __bool int)
12385 __builtin_s390_vfaef((__vector unsigned int)__a,
12386 (__vector unsigned int)__b, 12);
12387}
12388
12389static inline __ATTRS_o_ai __vector __bool int
12390vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
12391 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
12392}
12393
12394/*-- vec_find_any_ne_cc -----------------------------------------------------*/
12395
12396static inline __ATTRS_o_ai __vector __bool char
12397vec_find_any_ne_cc(__vector signed char __a,
12398 __vector signed char __b, int *__cc) {
12399 return (__vector __bool char)
12400 __builtin_s390_vfaebs((__vector unsigned char)__a,
12401 (__vector unsigned char)__b, 12, __cc);
12402}
12403
12404static inline __ATTRS_o_ai __vector __bool char
12405vec_find_any_ne_cc(__vector __bool char __a,
12406 __vector __bool char __b, int *__cc) {
12407 return (__vector __bool char)
12408 __builtin_s390_vfaebs((__vector unsigned char)__a,
12409 (__vector unsigned char)__b, 12, __cc);
12410}
12411
12412static inline __ATTRS_o_ai __vector __bool char
12413vec_find_any_ne_cc(__vector unsigned char __a,
12414 __vector unsigned char __b, int *__cc) {
12415 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
12416}
12417
12418static inline __ATTRS_o_ai __vector __bool short
12419vec_find_any_ne_cc(__vector signed short __a,
12420 __vector signed short __b, int *__cc) {
12421 return (__vector __bool short)
12422 __builtin_s390_vfaehs((__vector unsigned short)__a,
12423 (__vector unsigned short)__b, 12, __cc);
12424}
12425
12426static inline __ATTRS_o_ai __vector __bool short
12427vec_find_any_ne_cc(__vector __bool short __a,
12428 __vector __bool short __b, int *__cc) {
12429 return (__vector __bool short)
12430 __builtin_s390_vfaehs((__vector unsigned short)__a,
12431 (__vector unsigned short)__b, 12, __cc);
12432}
12433
12434static inline __ATTRS_o_ai __vector __bool short
12435vec_find_any_ne_cc(__vector unsigned short __a,
12436 __vector unsigned short __b, int *__cc) {
12437 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
12438}
12439
12440static inline __ATTRS_o_ai __vector __bool int
12441vec_find_any_ne_cc(__vector signed int __a,
12442 __vector signed int __b, int *__cc) {
12443 return (__vector __bool int)
12444 __builtin_s390_vfaefs((__vector unsigned int)__a,
12445 (__vector unsigned int)__b, 12, __cc);
12446}
12447
12448static inline __ATTRS_o_ai __vector __bool int
12449vec_find_any_ne_cc(__vector __bool int __a,
12450 __vector __bool int __b, int *__cc) {
12451 return (__vector __bool int)
12452 __builtin_s390_vfaefs((__vector unsigned int)__a,
12453 (__vector unsigned int)__b, 12, __cc);
12454}
12455
12456static inline __ATTRS_o_ai __vector __bool int
12457vec_find_any_ne_cc(__vector unsigned int __a,
12458 __vector unsigned int __b, int *__cc) {
12459 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
12460}
12461
12462/*-- vec_find_any_ne_idx ----------------------------------------------------*/
12463
12464static inline __ATTRS_o_ai __vector signed char
12465vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
12466 return (__vector signed char)
12467 __builtin_s390_vfaeb((__vector unsigned char)__a,
12468 (__vector unsigned char)__b, 8);
12469}
12470
12471static inline __ATTRS_o_ai __vector unsigned char
12472vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
12473 return __builtin_s390_vfaeb((__vector unsigned char)__a,
12474 (__vector unsigned char)__b, 8);
12475}
12476
12477static inline __ATTRS_o_ai __vector unsigned char
12478vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
12479 return __builtin_s390_vfaeb(__a, __b, 8);
12480}
12481
12482static inline __ATTRS_o_ai __vector signed short
12483vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
12484 return (__vector signed short)
12485 __builtin_s390_vfaeh((__vector unsigned short)__a,
12486 (__vector unsigned short)__b, 8);
12487}
12488
12489static inline __ATTRS_o_ai __vector unsigned short
12490vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
12491 return __builtin_s390_vfaeh((__vector unsigned short)__a,
12492 (__vector unsigned short)__b, 8);
12493}
12494
12495static inline __ATTRS_o_ai __vector unsigned short
12496vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
12497 return __builtin_s390_vfaeh(__a, __b, 8);
12498}
12499
12500static inline __ATTRS_o_ai __vector signed int
12501vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
12502 return (__vector signed int)
12503 __builtin_s390_vfaef((__vector unsigned int)__a,
12504 (__vector unsigned int)__b, 8);
12505}
12506
12507static inline __ATTRS_o_ai __vector unsigned int
12508vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
12509 return __builtin_s390_vfaef((__vector unsigned int)__a,
12510 (__vector unsigned int)__b, 8);
12511}
12512
12513static inline __ATTRS_o_ai __vector unsigned int
12514vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
12515 return __builtin_s390_vfaef(__a, __b, 8);
12516}
12517
12518/*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
12519
12520static inline __ATTRS_o_ai __vector signed char
12521vec_find_any_ne_idx_cc(__vector signed char __a,
12522 __vector signed char __b, int *__cc) {
12523 return (__vector signed char)
12524 __builtin_s390_vfaebs((__vector unsigned char)__a,
12525 (__vector unsigned char)__b, 8, __cc);
12526}
12527
12528static inline __ATTRS_o_ai __vector unsigned char
12529vec_find_any_ne_idx_cc(__vector __bool char __a,
12530 __vector __bool char __b, int *__cc) {
12531 return __builtin_s390_vfaebs((__vector unsigned char)__a,
12532 (__vector unsigned char)__b, 8, __cc);
12533}
12534
12535static inline __ATTRS_o_ai __vector unsigned char
12536vec_find_any_ne_idx_cc(__vector unsigned char __a,
12537 __vector unsigned char __b,
12538 int *__cc) {
12539 return __builtin_s390_vfaebs(__a, __b, 8, __cc);
12540}
12541
12542static inline __ATTRS_o_ai __vector signed short
12543vec_find_any_ne_idx_cc(__vector signed short __a,
12544 __vector signed short __b, int *__cc) {
12545 return (__vector signed short)
12546 __builtin_s390_vfaehs((__vector unsigned short)__a,
12547 (__vector unsigned short)__b, 8, __cc);
12548}
12549
12550static inline __ATTRS_o_ai __vector unsigned short
12551vec_find_any_ne_idx_cc(__vector __bool short __a,
12552 __vector __bool short __b, int *__cc) {
12553 return __builtin_s390_vfaehs((__vector unsigned short)__a,
12554 (__vector unsigned short)__b, 8, __cc);
12555}
12556
12557static inline __ATTRS_o_ai __vector unsigned short
12558vec_find_any_ne_idx_cc(__vector unsigned short __a,
12559 __vector unsigned short __b, int *__cc) {
12560 return __builtin_s390_vfaehs(__a, __b, 8, __cc);
12561}
12562
12563static inline __ATTRS_o_ai __vector signed int
12564vec_find_any_ne_idx_cc(__vector signed int __a,
12565 __vector signed int __b, int *__cc) {
12566 return (__vector signed int)
12567 __builtin_s390_vfaefs((__vector unsigned int)__a,
12568 (__vector unsigned int)__b, 8, __cc);
12569}
12570
12571static inline __ATTRS_o_ai __vector unsigned int
12572vec_find_any_ne_idx_cc(__vector __bool int __a,
12573 __vector __bool int __b, int *__cc) {
12574 return __builtin_s390_vfaefs((__vector unsigned int)__a,
12575 (__vector unsigned int)__b, 8, __cc);
12576}
12577
12578static inline __ATTRS_o_ai __vector unsigned int
12579vec_find_any_ne_idx_cc(__vector unsigned int __a,
12580 __vector unsigned int __b, int *__cc) {
12581 return __builtin_s390_vfaefs(__a, __b, 8, __cc);
12582}
12583
12584/*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
12585
12586static inline __ATTRS_o_ai __vector signed char
12587vec_find_any_ne_or_0_idx(__vector signed char __a,
12588 __vector signed char __b) {
12589 return (__vector signed char)
12590 __builtin_s390_vfaezb((__vector unsigned char)__a,
12591 (__vector unsigned char)__b, 8);
12592}
12593
12594static inline __ATTRS_o_ai __vector unsigned char
12595vec_find_any_ne_or_0_idx(__vector __bool char __a,
12596 __vector __bool char __b) {
12597 return __builtin_s390_vfaezb((__vector unsigned char)__a,
12598 (__vector unsigned char)__b, 8);
12599}
12600
12601static inline __ATTRS_o_ai __vector unsigned char
12602vec_find_any_ne_or_0_idx(__vector unsigned char __a,
12603 __vector unsigned char __b) {
12604 return __builtin_s390_vfaezb(__a, __b, 8);
12605}
12606
12607static inline __ATTRS_o_ai __vector signed short
12608vec_find_any_ne_or_0_idx(__vector signed short __a,
12609 __vector signed short __b) {
12610 return (__vector signed short)
12611 __builtin_s390_vfaezh((__vector unsigned short)__a,
12612 (__vector unsigned short)__b, 8);
12613}
12614
12615static inline __ATTRS_o_ai __vector unsigned short
12616vec_find_any_ne_or_0_idx(__vector __bool short __a,
12617 __vector __bool short __b) {
12618 return __builtin_s390_vfaezh((__vector unsigned short)__a,
12619 (__vector unsigned short)__b, 8);
12620}
12621
12622static inline __ATTRS_o_ai __vector unsigned short
12623vec_find_any_ne_or_0_idx(__vector unsigned short __a,
12624 __vector unsigned short __b) {
12625 return __builtin_s390_vfaezh(__a, __b, 8);
12626}
12627
12628static inline __ATTRS_o_ai __vector signed int
12629vec_find_any_ne_or_0_idx(__vector signed int __a,
12630 __vector signed int __b) {
12631 return (__vector signed int)
12632 __builtin_s390_vfaezf((__vector unsigned int)__a,
12633 (__vector unsigned int)__b, 8);
12634}
12635
12636static inline __ATTRS_o_ai __vector unsigned int
12637vec_find_any_ne_or_0_idx(__vector __bool int __a,
12638 __vector __bool int __b) {
12639 return __builtin_s390_vfaezf((__vector unsigned int)__a,
12640 (__vector unsigned int)__b, 8);
12641}
12642
12643static inline __ATTRS_o_ai __vector unsigned int
12644vec_find_any_ne_or_0_idx(__vector unsigned int __a,
12645 __vector unsigned int __b) {
12646 return __builtin_s390_vfaezf(__a, __b, 8);
12647}
12648
12649/*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
12650
12651static inline __ATTRS_o_ai __vector signed char
12652vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
12653 __vector signed char __b, int *__cc) {
12654 return (__vector signed char)
12655 __builtin_s390_vfaezbs((__vector unsigned char)__a,
12656 (__vector unsigned char)__b, 8, __cc);
12657}
12658
12659static inline __ATTRS_o_ai __vector unsigned char
12660vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
12661 __vector __bool char __b, int *__cc) {
12662 return __builtin_s390_vfaezbs((__vector unsigned char)__a,
12663 (__vector unsigned char)__b, 8, __cc);
12664}
12665
12666static inline __ATTRS_o_ai __vector unsigned char
12667vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
12668 __vector unsigned char __b, int *__cc) {
12669 return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
12670}
12671
12672static inline __ATTRS_o_ai __vector signed short
12673vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
12674 __vector signed short __b, int *__cc) {
12675 return (__vector signed short)
12676 __builtin_s390_vfaezhs((__vector unsigned short)__a,
12677 (__vector unsigned short)__b, 8, __cc);
12678}
12679
12680static inline __ATTRS_o_ai __vector unsigned short
12681vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
12682 __vector __bool short __b, int *__cc) {
12683 return __builtin_s390_vfaezhs((__vector unsigned short)__a,
12684 (__vector unsigned short)__b, 8, __cc);
12685}
12686
12687static inline __ATTRS_o_ai __vector unsigned short
12688vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
12689 __vector unsigned short __b, int *__cc) {
12690 return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
12691}
12692
12693static inline __ATTRS_o_ai __vector signed int
12694vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
12695 __vector signed int __b, int *__cc) {
12696 return (__vector signed int)
12697 __builtin_s390_vfaezfs((__vector unsigned int)__a,
12698 (__vector unsigned int)__b, 8, __cc);
12699}
12700
12701static inline __ATTRS_o_ai __vector unsigned int
12702vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
12703 __vector __bool int __b, int *__cc) {
12704 return __builtin_s390_vfaezfs((__vector unsigned int)__a,
12705 (__vector unsigned int)__b, 8, __cc);
12706}
12707
12708static inline __ATTRS_o_ai __vector unsigned int
12709vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
12710 __vector unsigned int __b, int *__cc) {
12711 return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
12712}
12713
12714/*-- vec_search_string_cc ---------------------------------------------------*/
12715
12716#if __ARCH__ >= 13
12717
12718static inline __ATTRS_o_ai __vector unsigned char
12719vec_search_string_cc(__vector signed char __a, __vector signed char __b,
12720 __vector unsigned char __c, int *__cc) {
12721 return __builtin_s390_vstrsb((__vector unsigned char)__a,
12722 (__vector unsigned char)__b, __c, __cc);
12723}
12724
12725static inline __ATTRS_o_ai __vector unsigned char
12726vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
12727 __vector unsigned char __c, int *__cc) {
12728 return __builtin_s390_vstrsb((__vector unsigned char)__a,
12729 (__vector unsigned char)__b, __c, __cc);
12730}
12731
12732static inline __ATTRS_o_ai __vector unsigned char
12733vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
12734 __vector unsigned char __c, int *__cc) {
12735 return __builtin_s390_vstrsb(__a, __b, __c, __cc);
12736}
12737
12738static inline __ATTRS_o_ai __vector unsigned char
12739vec_search_string_cc(__vector signed short __a, __vector signed short __b,
12740 __vector unsigned char __c, int *__cc) {
12741 return __builtin_s390_vstrsh((__vector unsigned short)__a,
12742 (__vector unsigned short)__b, __c, __cc);
12743}
12744
12745static inline __ATTRS_o_ai __vector unsigned char
12746vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
12747 __vector unsigned char __c, int *__cc) {
12748 return __builtin_s390_vstrsh((__vector unsigned short)__a,
12749 (__vector unsigned short)__b, __c, __cc);
12750}
12751
12752static inline __ATTRS_o_ai __vector unsigned char
12753vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
12754 __vector unsigned char __c, int *__cc) {
12755 return __builtin_s390_vstrsh(__a, __b, __c, __cc);
12756}
12757
12758static inline __ATTRS_o_ai __vector unsigned char
12759vec_search_string_cc(__vector signed int __a, __vector signed int __b,
12760 __vector unsigned char __c, int *__cc) {
12761 return __builtin_s390_vstrsf((__vector unsigned int)__a,
12762 (__vector unsigned int)__b, __c, __cc);
12763}
12764
12765static inline __ATTRS_o_ai __vector unsigned char
12766vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
12767 __vector unsigned char __c, int *__cc) {
12768 return __builtin_s390_vstrsf((__vector unsigned int)__a,
12769 (__vector unsigned int)__b, __c, __cc);
12770}
12771
12772static inline __ATTRS_o_ai __vector unsigned char
12773vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
12774 __vector unsigned char __c, int *__cc) {
12775 return __builtin_s390_vstrsf(__a, __b, __c, __cc);
12776}
12777
12778#endif
12779
12780/*-- vec_search_string_until_zero_cc ----------------------------------------*/
12781
12782#if __ARCH__ >= 13
12783
12784static inline __ATTRS_o_ai __vector unsigned char
12785vec_search_string_until_zero_cc(__vector signed char __a,
12786 __vector signed char __b,
12787 __vector unsigned char __c, int *__cc) {
12788 return __builtin_s390_vstrszb((__vector unsigned char)__a,
12789 (__vector unsigned char)__b, __c, __cc);
12790}
12791
12792static inline __ATTRS_o_ai __vector unsigned char
12793vec_search_string_until_zero_cc(__vector __bool char __a,
12794 __vector __bool char __b,
12795 __vector unsigned char __c, int *__cc) {
12796 return __builtin_s390_vstrszb((__vector unsigned char)__a,
12797 (__vector unsigned char)__b, __c, __cc);
12798}
12799
12800static inline __ATTRS_o_ai __vector unsigned char
12801vec_search_string_until_zero_cc(__vector unsigned char __a,
12802 __vector unsigned char __b,
12803 __vector unsigned char __c, int *__cc) {
12804 return __builtin_s390_vstrszb(__a, __b, __c, __cc);
12805}
12806
12807static inline __ATTRS_o_ai __vector unsigned char
12808vec_search_string_until_zero_cc(__vector signed short __a,
12809 __vector signed short __b,
12810 __vector unsigned char __c, int *__cc) {
12811 return __builtin_s390_vstrszh((__vector unsigned short)__a,
12812 (__vector unsigned short)__b, __c, __cc);
12813}
12814
12815static inline __ATTRS_o_ai __vector unsigned char
12816vec_search_string_until_zero_cc(__vector __bool short __a,
12817 __vector __bool short __b,
12818 __vector unsigned char __c, int *__cc) {
12819 return __builtin_s390_vstrszh((__vector unsigned short)__a,
12820 (__vector unsigned short)__b, __c, __cc);
12821}
12822
12823static inline __ATTRS_o_ai __vector unsigned char
12824vec_search_string_until_zero_cc(__vector unsigned short __a,
12825 __vector unsigned short __b,
12826 __vector unsigned char __c, int *__cc) {
12827 return __builtin_s390_vstrszh(__a, __b, __c, __cc);
12828}
12829
12830static inline __ATTRS_o_ai __vector unsigned char
12831vec_search_string_until_zero_cc(__vector signed int __a,
12832 __vector signed int __b,
12833 __vector unsigned char __c, int *__cc) {
12834 return __builtin_s390_vstrszf((__vector unsigned int)__a,
12835 (__vector unsigned int)__b, __c, __cc);
12836}
12837
12838static inline __ATTRS_o_ai __vector unsigned char
12839vec_search_string_until_zero_cc(__vector __bool int __a,
12840 __vector __bool int __b,
12841 __vector unsigned char __c, int *__cc) {
12842 return __builtin_s390_vstrszf((__vector unsigned int)__a,
12843 (__vector unsigned int)__b, __c, __cc);
12844}
12845
12846static inline __ATTRS_o_ai __vector unsigned char
12847vec_search_string_until_zero_cc(__vector unsigned int __a,
12848 __vector unsigned int __b,
12849 __vector unsigned char __c, int *__cc) {
12850 return __builtin_s390_vstrszf(__a, __b, __c, __cc);
12851}
12852
12853#endif
12854
12855#undef __constant_pow2_range
12856#undef __constant_range
12857#undef __constant
12858#undef __ATTRS_o
12859#undef __ATTRS_o_ai
12860#undef __ATTRS_ai
12861
12862#else
12863
12864#error "Use -fzvector to enable vector extensions"
12865
12866#endif
12867
12868#endif /* _VECINTRIN_H */
#define V(N, I)
_Float16 __2f16 __attribute__((ext_vector_type(2)))
Zeroes the upper 128 bits (bits 255:128) of all YMM registers.
__device__ double
__device__ float
#define __constant
static __inline__ vector signed int __ATTRS_o_ai vec_sube(vector signed int __a, vector signed int __b, vector signed int __c)
Definition altivec.h:12471
static __inline__ vector bool char __ATTRS_o_ai vec_cmpeq(vector signed char __a, vector signed char __b)
Definition altivec.h:1708
static __inline__ signed char __ATTRS_o_ai vec_extract(vector signed char __a, signed int __b)
Definition altivec.h:13541
static __inline__ __ATTRS_o_ai vector signed char vec_xl(ptrdiff_t __offset, const signed char *__ptr)
Definition altivec.h:17728
static __inline__ __ATTRS_o_ai void vec_xst(vector signed char __vec, ptrdiff_t __offset, signed char *__ptr)
Definition altivec.h:17998
static __inline__ vector float __ATTRS_o_ai vec_ceil(vector float __a)
Definition altivec.h:1659
static __inline__ int __ATTRS_o_ai vec_any_ngt(vector float __a, vector float __b)
Definition altivec.h:17261
static __inline__ int __ATTRS_o_ai vec_any_ne(vector signed char __a, vector signed char __b)
Definition altivec.h:17035
static __inline__ int __ATTRS_o_ai vec_any_nge(vector float __a, vector float __b)
Definition altivec.h:17243
static __inline__ vector signed char __ATTRS_o_ai vec_sldw(vector signed char __a, vector signed char __b, unsigned const int __c)
Definition altivec.h:9301
static __inline__ __ATTRS_o_ai vector bool char vec_reve(vector bool char __a)
Definition altivec.h:17528
static __inline__ vector float vector float vector float __c
Definition altivec.h:4800
static __inline__ vector int __ATTRS_o_ai vec_msum(vector signed char __a, vector unsigned char __b, vector int __c)
Definition altivec.h:6059
static __inline__ vector short __ATTRS_o_ai vec_mule(vector signed char __a, vector signed char __b)
Definition altivec.h:6263
static __inline__ int __ATTRS_o_ai vec_any_le(vector signed char __a, vector signed char __b)
Definition altivec.h:16640
static __inline__ vector float vector float __b
Definition altivec.h:578
static __inline__ vector float __ATTRS_o_ai vec_round(vector float __a)
Definition altivec.h:8469
#define vec_xld2
Definition altivec.h:17717
#define vec_xlw4
Definition altivec.h:17718
static __inline__ vector signed int __ATTRS_o_ai vec_subc(vector signed int __a, vector signed int __b)
Definition altivec.h:12108
static __inline__ vector signed int __ATTRS_o_ai vec_addc(vector signed int __a, vector signed int __b)
Definition altivec.h:585
static __inline__ int __ATTRS_o_ai vec_all_le(vector signed char __a, vector signed char __b)
Definition altivec.h:15377
static __inline__ vector signed char __ATTRS_o_ai vec_splats(signed char __a)
Definition altivec.h:14737
static __inline__ vector bool char __ATTRS_o_ai vec_revb(vector bool char __a)
Definition altivec.h:17601
static __inline__ int __ATTRS_o_ai vec_any_nan(vector float __a)
Definition altivec.h:17020
static __inline__ int __ATTRS_o_ai vec_all_eq(vector signed char __a, vector signed char __b)
Definition altivec.h:14802
static __inline__ vector signed char __ATTRS_o_ai vec_andc(vector signed char __a, vector signed char __b)
Definition altivec.h:1235
static __inline__ vector signed int __ATTRS_o_ai vec_sld(vector signed int, vector signed int, unsigned const int __c)
Definition altivec.h:9149
static __inline__ vector short __ATTRS_o_ai vec_unpackl(vector signed char __a)
Definition altivec.h:12781
static __inline__ int __ATTRS_o_ai vec_all_ne(vector signed char __a, vector signed char __b)
Definition altivec.h:15755
#define vec_xstd2
Definition altivec.h:17995
static __inline__ vector signed int __ATTRS_o_ai vec_signed(vector float __a)
Definition altivec.h:3495
static __inline__ vector signed char __ATTRS_o_ai vec_and(vector signed char __a, vector signed char __b)
Definition altivec.h:882
static __inline__ vector signed char __ATTRS_o_ai vec_avg(vector signed char __a, vector signed char __b)
Definition altivec.h:1586
static __inline__ vector signed char __ATTRS_o_ai vec_splat_s8(signed char __a)
Definition altivec.h:10320
static __inline__ int __ATTRS_o_ai vec_all_nan(vector float __a)
Definition altivec.h:15739
static __inline__ vector signed char __ATTRS_o_ai vec_mergel(vector signed char __a, vector signed char __b)
Definition altivec.h:5361
static __inline__ int __ATTRS_o_ai vec_all_ngt(vector float __a, vector float __b)
Definition altivec.h:15981
static __inline__ vector float __ATTRS_o_ai vec_floor(vector float __a)
Definition altivec.h:4026
static __inline__ int __ATTRS_o_ai vec_all_gt(vector signed char __a, vector signed char __b)
Definition altivec.h:15190
static __inline__ vector int __ATTRS_o_ai vec_splat_s32(signed char __a)
Definition altivec.h:10353
#define __ATTRS_o_ai
Definition altivec.h:46
static __inline__ vector signed char __ATTRS_o_ai vec_promote(signed char __a, int __b)
Definition altivec.h:14648
static __inline__ vector signed char __ATTRS_o_ai vec_perm(vector signed char __a, vector signed char __b, vector unsigned char __c)
Definition altivec.h:7962
static __inline__ vector signed short __ATTRS_o_ai vec_mladd(vector signed short, vector signed short, vector signed short)
static __inline__ vector signed char __ATTRS_o_ai vec_sel(vector signed char __a, vector signed char __b, vector unsigned char __c)
Definition altivec.h:8588
static __inline__ int __ATTRS_o_ai vec_any_numeric(vector float __a)
Definition altivec.h:17315
static __inline__ vector float __ATTRS_o_ai vec_float(vector signed int __a)
Definition altivec.h:3579
static __inline__ vector unsigned int __ATTRS_o_ai vec_splat_u32(signed char __a)
Definition altivec.h:10384
static __inline__ vector signed char __ATTRS_o_ai vec_mergeh(vector signed char __a, vector signed char __b)
Definition altivec.h:5091
static __inline__ vector signed char __ATTRS_o_ai vec_rl(vector signed char __a, vector unsigned char __b)
Definition altivec.h:8287
static __inline__ vector bool char __ATTRS_o_ai vec_cmplt(vector signed char __a, vector signed char __b)
Definition altivec.h:2435
static __inline__ vector unsigned int __ATTRS_o_ai vec_unsigned(vector float __a)
Definition altivec.h:3537
static __inline__ vector float __ATTRS_o_ai vec_roundp(vector float __a)
Definition altivec.h:1674
static __inline__ vector signed char __ATTRS_o_ai vec_max(vector signed char __a, vector signed char __b)
Definition altivec.h:4838
static __inline__ int __ATTRS_o_ai vec_all_lt(vector signed char __a, vector signed char __b)
Definition altivec.h:15558
static __inline__ int __ATTRS_o_ai vec_any_ge(vector signed char __a, vector signed char __b)
Definition altivec.h:16260
#define vec_xstw4
Definition altivec.h:17996
static __inline__ vector signed int __ATTRS_o_ai vec_adde(vector signed int __a, vector signed int __b, vector signed int __c)
Definition altivec.h:383
static __inline__ int __ATTRS_o_ai vec_all_numeric(vector float __a)
Definition altivec.h:16036
static __inline__ vector signed char __ATTRS_o_ai vec_nor(vector signed char __a, vector signed char __b)
Definition altivec.h:6729
static __inline__ vector bool char __ATTRS_o_ai vec_cmpge(vector signed char __a, vector signed char __b)
Definition altivec.h:2243
static __inline__ vector signed char __ATTRS_o_ai vec_pack(vector signed short __a, vector signed short __b)
Definition altivec.h:7389
static __inline__ vector unsigned char __ATTRS_o_ai vec_packsu(vector short __a, vector short __b)
Definition altivec.h:7844
static __inline__ vector short __ATTRS_o_ai vec_mulo(vector signed char __a, vector signed char __b)
Definition altivec.h:6409
static __inline__ int __ATTRS_o_ai vec_all_nge(vector float __a, vector float __b)
Definition altivec.h:15963
static __inline__ vector signed char __ATTRS_o_ai vec_srl(vector signed char __a, vector unsigned char __b)
Definition altivec.h:10619
static __inline__ vector signed char __ATTRS_o_ai vec_min(vector signed char __a, vector signed char __b)
Definition altivec.h:5742
static __inline__ vector signed char __ATTRS_o_ai vec_splat(vector signed char __a, unsigned const int __b)
Definition altivec.h:10090
static vector float __ATTRS_o_ai vec_nabs(vector float __a)
Definition altivec.h:18267
static __inline__ vector signed char __ATTRS_o_ai vec_or(vector signed char __a, vector signed char __b)
Definition altivec.h:6865
static __inline__ vector short __ATTRS_o_ai vec_unpackh(vector signed char __a)
Definition altivec.h:12642
static __inline__ vector short __ATTRS_o_ai vec_splat_s16(signed char __a)
Definition altivec.h:10337
static __inline__ int __ATTRS_o_ai vec_any_nlt(vector float __a, vector float __b)
Definition altivec.h:17297
static __inline__ vector signed char __ATTRS_o_ai vec_abs(vector signed char __a)
Definition altivec.h:117
static __inline__ vector signed short __ATTRS_o_ai vec_madd(vector signed short __a, vector signed short __b, vector signed short __c)
Definition altivec.h:4756
static __inline__ int __ATTRS_o_ai vec_any_lt(vector signed char __a, vector signed char __b)
Definition altivec.h:16830
static __inline__ vector unsigned char __ATTRS_o_ai vec_xor(vector unsigned char __a, vector unsigned char __b)
Definition altivec.h:13207
static __inline__ int __ATTRS_o_ai vec_all_ge(vector signed char __a, vector signed char __b)
Definition altivec.h:15010
static __inline__ vector float __ATTRS_o_ai vec_roundm(vector float __a)
Definition altivec.h:4041
static __inline__ int __ATTRS_o_ai vec_all_nle(vector float __a, vector float __b)
Definition altivec.h:16000
static __inline__ vector float __ATTRS_o_ai vec_trunc(vector float __a)
Definition altivec.h:12597
static __inline__ vector bool char __ATTRS_o_ai vec_cmpgt(vector signed char __a, vector signed char __b)
Definition altivec.h:2131
static __inline__ vector signed char __ATTRS_o_ai vec_insert(signed char __a, vector signed char __b, int __c)
Definition altivec.h:13668
static __inline__ vector signed char __ATTRS_o_ai vec_sll(vector signed char __a, vector unsigned char __b)
Definition altivec.h:9524
static __inline__ int __ATTRS_o_ai vec_any_gt(vector signed char __a, vector signed char __b)
Definition altivec.h:16450
static __inline__ vector bool char __ATTRS_o_ai vec_cmple(vector signed char __a, vector signed char __b)
Definition altivec.h:2369
static __inline__ vector unsigned short __ATTRS_o_ai vec_splat_u16(signed char __a)
Definition altivec.h:10376
static __inline__ int __ATTRS_o_ai vec_all_nlt(vector float __a, vector float __b)
Definition altivec.h:16018
static __inline__ vector signed char __ATTRS_o_ai vec_packs(vector short __a, vector short __b)
Definition altivec.h:7715
static __inline__ int __ATTRS_o_ai vec_any_eq(vector signed char __a, vector signed char __b)
Definition altivec.h:16052
static __inline__ vector float __ATTRS_o_ai vec_roundz(vector float __a)
Definition altivec.h:12612
static __inline__ int __ATTRS_o_ai vec_any_nle(vector float __a, vector float __b)
Definition altivec.h:17279
static __inline__ vector float __ATTRS_o_ai vec_nmsub(vector float __a, vector float __b, vector float __c)
Definition altivec.h:6699
static __inline__ vector unsigned char __ATTRS_o_ai vec_splat_u8(unsigned char __a)
Definition altivec.h:10368
static __inline__ void int __a
Definition emmintrin.h:4077
static __inline__ void unsigned int __value
#define __conv
Definition opencl-c.h:36