1 /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2 *
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 *
7 *===-----------------------------------------------------------------------===
8 */
9
10 #if defined(__s390x__) && defined(__VEC__)
11
12 #define __ATTRS_ai __attribute__((__always_inline__))
13 #define __ATTRS_o __attribute__((__overloadable__))
14 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
15
16 #define __constant(PARM) \
17 __attribute__((__enable_if__ ((PARM) == (PARM), \
18 "argument must be a constant integer")))
19 #define __constant_range(PARM, LOW, HIGH) \
20 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
21 "argument must be a constant integer from " #LOW " to " #HIGH)))
22 #define __constant_pow2_range(PARM, LOW, HIGH) \
23 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
24 ((PARM) & ((PARM) - 1)) == 0, \
25 "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
26
27 /*-- __lcbb -----------------------------------------------------------------*/
28
29 extern __ATTRS_o unsigned int
30 __lcbb(const void *__ptr, unsigned short __len)
31 __constant_pow2_range(__len, 64, 4096);
32
33 #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
34 __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
35 ((Y) == 64 ? 0 : \
36 (Y) == 128 ? 1 : \
37 (Y) == 256 ? 2 : \
38 (Y) == 512 ? 3 : \
39 (Y) == 1024 ? 4 : \
40 (Y) == 2048 ? 5 : \
41 (Y) == 4096 ? 6 : 0) : 0))
42
43 /*-- vec_extract ------------------------------------------------------------*/
44
45 static inline __ATTRS_o_ai signed char
vec_extract(__vector signed char __vec,int __index)46 vec_extract(__vector signed char __vec, int __index) {
47 return __vec[__index & 15];
48 }
49
50 static inline __ATTRS_o_ai unsigned char
vec_extract(__vector __bool char __vec,int __index)51 vec_extract(__vector __bool char __vec, int __index) {
52 return __vec[__index & 15];
53 }
54
55 static inline __ATTRS_o_ai unsigned char
vec_extract(__vector unsigned char __vec,int __index)56 vec_extract(__vector unsigned char __vec, int __index) {
57 return __vec[__index & 15];
58 }
59
60 static inline __ATTRS_o_ai signed short
vec_extract(__vector signed short __vec,int __index)61 vec_extract(__vector signed short __vec, int __index) {
62 return __vec[__index & 7];
63 }
64
65 static inline __ATTRS_o_ai unsigned short
vec_extract(__vector __bool short __vec,int __index)66 vec_extract(__vector __bool short __vec, int __index) {
67 return __vec[__index & 7];
68 }
69
70 static inline __ATTRS_o_ai unsigned short
vec_extract(__vector unsigned short __vec,int __index)71 vec_extract(__vector unsigned short __vec, int __index) {
72 return __vec[__index & 7];
73 }
74
75 static inline __ATTRS_o_ai signed int
vec_extract(__vector signed int __vec,int __index)76 vec_extract(__vector signed int __vec, int __index) {
77 return __vec[__index & 3];
78 }
79
80 static inline __ATTRS_o_ai unsigned int
vec_extract(__vector __bool int __vec,int __index)81 vec_extract(__vector __bool int __vec, int __index) {
82 return __vec[__index & 3];
83 }
84
85 static inline __ATTRS_o_ai unsigned int
vec_extract(__vector unsigned int __vec,int __index)86 vec_extract(__vector unsigned int __vec, int __index) {
87 return __vec[__index & 3];
88 }
89
90 static inline __ATTRS_o_ai signed long long
vec_extract(__vector signed long long __vec,int __index)91 vec_extract(__vector signed long long __vec, int __index) {
92 return __vec[__index & 1];
93 }
94
95 static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector __bool long long __vec,int __index)96 vec_extract(__vector __bool long long __vec, int __index) {
97 return __vec[__index & 1];
98 }
99
100 static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector unsigned long long __vec,int __index)101 vec_extract(__vector unsigned long long __vec, int __index) {
102 return __vec[__index & 1];
103 }
104
105 #if __ARCH__ >= 12
106 static inline __ATTRS_o_ai float
vec_extract(__vector float __vec,int __index)107 vec_extract(__vector float __vec, int __index) {
108 return __vec[__index & 3];
109 }
110 #endif
111
112 static inline __ATTRS_o_ai double
vec_extract(__vector double __vec,int __index)113 vec_extract(__vector double __vec, int __index) {
114 return __vec[__index & 1];
115 }
116
117 /*-- vec_insert -------------------------------------------------------------*/
118
119 static inline __ATTRS_o_ai __vector signed char
vec_insert(signed char __scalar,__vector signed char __vec,int __index)120 vec_insert(signed char __scalar, __vector signed char __vec, int __index) {
121 __vec[__index & 15] = __scalar;
122 return __vec;
123 }
124
125 // This prototype is deprecated.
126 static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector __bool char __vec,int __index)127 vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {
128 __vector unsigned char __newvec = (__vector unsigned char)__vec;
129 __newvec[__index & 15] = (unsigned char)__scalar;
130 return __newvec;
131 }
132
133 static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector unsigned char __vec,int __index)134 vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
135 __vec[__index & 15] = __scalar;
136 return __vec;
137 }
138
139 static inline __ATTRS_o_ai __vector signed short
vec_insert(signed short __scalar,__vector signed short __vec,int __index)140 vec_insert(signed short __scalar, __vector signed short __vec, int __index) {
141 __vec[__index & 7] = __scalar;
142 return __vec;
143 }
144
145 // This prototype is deprecated.
146 static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector __bool short __vec,int __index)147 vec_insert(unsigned short __scalar, __vector __bool short __vec,
148 int __index) {
149 __vector unsigned short __newvec = (__vector unsigned short)__vec;
150 __newvec[__index & 7] = (unsigned short)__scalar;
151 return __newvec;
152 }
153
154 static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector unsigned short __vec,int __index)155 vec_insert(unsigned short __scalar, __vector unsigned short __vec,
156 int __index) {
157 __vec[__index & 7] = __scalar;
158 return __vec;
159 }
160
161 static inline __ATTRS_o_ai __vector signed int
vec_insert(signed int __scalar,__vector signed int __vec,int __index)162 vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
163 __vec[__index & 3] = __scalar;
164 return __vec;
165 }
166
167 // This prototype is deprecated.
168 static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector __bool int __vec,int __index)169 vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
170 __vector unsigned int __newvec = (__vector unsigned int)__vec;
171 __newvec[__index & 3] = __scalar;
172 return __newvec;
173 }
174
175 static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector unsigned int __vec,int __index)176 vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
177 __vec[__index & 3] = __scalar;
178 return __vec;
179 }
180
181 static inline __ATTRS_o_ai __vector signed long long
vec_insert(signed long long __scalar,__vector signed long long __vec,int __index)182 vec_insert(signed long long __scalar, __vector signed long long __vec,
183 int __index) {
184 __vec[__index & 1] = __scalar;
185 return __vec;
186 }
187
188 // This prototype is deprecated.
189 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar,__vector __bool long long __vec,int __index)190 vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
191 int __index) {
192 __vector unsigned long long __newvec = (__vector unsigned long long)__vec;
193 __newvec[__index & 1] = __scalar;
194 return __newvec;
195 }
196
197 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar,__vector unsigned long long __vec,int __index)198 vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
199 int __index) {
200 __vec[__index & 1] = __scalar;
201 return __vec;
202 }
203
204 #if __ARCH__ >= 12
205 static inline __ATTRS_o_ai __vector float
vec_insert(float __scalar,__vector float __vec,int __index)206 vec_insert(float __scalar, __vector float __vec, int __index) {
207 __vec[__index & 1] = __scalar;
208 return __vec;
209 }
210 #endif
211
212 static inline __ATTRS_o_ai __vector double
vec_insert(double __scalar,__vector double __vec,int __index)213 vec_insert(double __scalar, __vector double __vec, int __index) {
214 __vec[__index & 1] = __scalar;
215 return __vec;
216 }
217
218 /*-- vec_promote ------------------------------------------------------------*/
219
220 static inline __ATTRS_o_ai __vector signed char
vec_promote(signed char __scalar,int __index)221 vec_promote(signed char __scalar, int __index) {
222 const __vector signed char __zero = (__vector signed char)0;
223 __vector signed char __vec = __builtin_shufflevector(__zero, __zero,
224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
225 __vec[__index & 15] = __scalar;
226 return __vec;
227 }
228
229 static inline __ATTRS_o_ai __vector unsigned char
vec_promote(unsigned char __scalar,int __index)230 vec_promote(unsigned char __scalar, int __index) {
231 const __vector unsigned char __zero = (__vector unsigned char)0;
232 __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
233 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
234 __vec[__index & 15] = __scalar;
235 return __vec;
236 }
237
238 static inline __ATTRS_o_ai __vector signed short
vec_promote(signed short __scalar,int __index)239 vec_promote(signed short __scalar, int __index) {
240 const __vector signed short __zero = (__vector signed short)0;
241 __vector signed short __vec = __builtin_shufflevector(__zero, __zero,
242 -1, -1, -1, -1, -1, -1, -1, -1);
243 __vec[__index & 7] = __scalar;
244 return __vec;
245 }
246
247 static inline __ATTRS_o_ai __vector unsigned short
vec_promote(unsigned short __scalar,int __index)248 vec_promote(unsigned short __scalar, int __index) {
249 const __vector unsigned short __zero = (__vector unsigned short)0;
250 __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
251 -1, -1, -1, -1, -1, -1, -1, -1);
252 __vec[__index & 7] = __scalar;
253 return __vec;
254 }
255
256 static inline __ATTRS_o_ai __vector signed int
vec_promote(signed int __scalar,int __index)257 vec_promote(signed int __scalar, int __index) {
258 const __vector signed int __zero = (__vector signed int)0;
259 __vector signed int __vec = __builtin_shufflevector(__zero, __zero,
260 -1, -1, -1, -1);
261 __vec[__index & 3] = __scalar;
262 return __vec;
263 }
264
265 static inline __ATTRS_o_ai __vector unsigned int
vec_promote(unsigned int __scalar,int __index)266 vec_promote(unsigned int __scalar, int __index) {
267 const __vector unsigned int __zero = (__vector unsigned int)0;
268 __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
269 -1, -1, -1, -1);
270 __vec[__index & 3] = __scalar;
271 return __vec;
272 }
273
274 static inline __ATTRS_o_ai __vector signed long long
vec_promote(signed long long __scalar,int __index)275 vec_promote(signed long long __scalar, int __index) {
276 const __vector signed long long __zero = (__vector signed long long)0;
277 __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
278 -1, -1);
279 __vec[__index & 1] = __scalar;
280 return __vec;
281 }
282
283 static inline __ATTRS_o_ai __vector unsigned long long
vec_promote(unsigned long long __scalar,int __index)284 vec_promote(unsigned long long __scalar, int __index) {
285 const __vector unsigned long long __zero = (__vector unsigned long long)0;
286 __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
287 -1, -1);
288 __vec[__index & 1] = __scalar;
289 return __vec;
290 }
291
292 #if __ARCH__ >= 12
293 static inline __ATTRS_o_ai __vector float
vec_promote(float __scalar,int __index)294 vec_promote(float __scalar, int __index) {
295 const __vector float __zero = (__vector float)0.0f;
296 __vector float __vec = __builtin_shufflevector(__zero, __zero,
297 -1, -1, -1, -1);
298 __vec[__index & 3] = __scalar;
299 return __vec;
300 }
301 #endif
302
303 static inline __ATTRS_o_ai __vector double
vec_promote(double __scalar,int __index)304 vec_promote(double __scalar, int __index) {
305 const __vector double __zero = (__vector double)0.0;
306 __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
307 __vec[__index & 1] = __scalar;
308 return __vec;
309 }
310
311 /*-- vec_insert_and_zero ----------------------------------------------------*/
312
313 static inline __ATTRS_o_ai __vector signed char
vec_insert_and_zero(const signed char * __ptr)314 vec_insert_and_zero(const signed char *__ptr) {
315 __vector signed char __vec = (__vector signed char)0;
316 __vec[7] = *__ptr;
317 return __vec;
318 }
319
320 static inline __ATTRS_o_ai __vector unsigned char
vec_insert_and_zero(const unsigned char * __ptr)321 vec_insert_and_zero(const unsigned char *__ptr) {
322 __vector unsigned char __vec = (__vector unsigned char)0;
323 __vec[7] = *__ptr;
324 return __vec;
325 }
326
327 static inline __ATTRS_o_ai __vector signed short
vec_insert_and_zero(const signed short * __ptr)328 vec_insert_and_zero(const signed short *__ptr) {
329 __vector signed short __vec = (__vector signed short)0;
330 __vec[3] = *__ptr;
331 return __vec;
332 }
333
334 static inline __ATTRS_o_ai __vector unsigned short
vec_insert_and_zero(const unsigned short * __ptr)335 vec_insert_and_zero(const unsigned short *__ptr) {
336 __vector unsigned short __vec = (__vector unsigned short)0;
337 __vec[3] = *__ptr;
338 return __vec;
339 }
340
341 static inline __ATTRS_o_ai __vector signed int
vec_insert_and_zero(const signed int * __ptr)342 vec_insert_and_zero(const signed int *__ptr) {
343 __vector signed int __vec = (__vector signed int)0;
344 __vec[1] = *__ptr;
345 return __vec;
346 }
347
348 static inline __ATTRS_o_ai __vector unsigned int
vec_insert_and_zero(const unsigned int * __ptr)349 vec_insert_and_zero(const unsigned int *__ptr) {
350 __vector unsigned int __vec = (__vector unsigned int)0;
351 __vec[1] = *__ptr;
352 return __vec;
353 }
354
355 static inline __ATTRS_o_ai __vector signed long long
vec_insert_and_zero(const signed long long * __ptr)356 vec_insert_and_zero(const signed long long *__ptr) {
357 __vector signed long long __vec = (__vector signed long long)0;
358 __vec[0] = *__ptr;
359 return __vec;
360 }
361
362 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert_and_zero(const unsigned long long * __ptr)363 vec_insert_and_zero(const unsigned long long *__ptr) {
364 __vector unsigned long long __vec = (__vector unsigned long long)0;
365 __vec[0] = *__ptr;
366 return __vec;
367 }
368
369 #if __ARCH__ >= 12
370 static inline __ATTRS_o_ai __vector float
vec_insert_and_zero(const float * __ptr)371 vec_insert_and_zero(const float *__ptr) {
372 __vector float __vec = (__vector float)0.0f;
373 __vec[1] = *__ptr;
374 return __vec;
375 }
376 #endif
377
378 static inline __ATTRS_o_ai __vector double
vec_insert_and_zero(const double * __ptr)379 vec_insert_and_zero(const double *__ptr) {
380 __vector double __vec = (__vector double)0.0;
381 __vec[0] = *__ptr;
382 return __vec;
383 }
384
385 /*-- vec_perm ---------------------------------------------------------------*/
386
387 static inline __ATTRS_o_ai __vector signed char
vec_perm(__vector signed char __a,__vector signed char __b,__vector unsigned char __c)388 vec_perm(__vector signed char __a, __vector signed char __b,
389 __vector unsigned char __c) {
390 return (__vector signed char)__builtin_s390_vperm(
391 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
392 }
393
394 static inline __ATTRS_o_ai __vector unsigned char
vec_perm(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)395 vec_perm(__vector unsigned char __a, __vector unsigned char __b,
396 __vector unsigned char __c) {
397 return (__vector unsigned char)__builtin_s390_vperm(
398 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
399 }
400
401 static inline __ATTRS_o_ai __vector __bool char
vec_perm(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c)402 vec_perm(__vector __bool char __a, __vector __bool char __b,
403 __vector unsigned char __c) {
404 return (__vector __bool char)__builtin_s390_vperm(
405 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
406 }
407
408 static inline __ATTRS_o_ai __vector signed short
vec_perm(__vector signed short __a,__vector signed short __b,__vector unsigned char __c)409 vec_perm(__vector signed short __a, __vector signed short __b,
410 __vector unsigned char __c) {
411 return (__vector signed short)__builtin_s390_vperm(
412 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
413 }
414
415 static inline __ATTRS_o_ai __vector unsigned short
vec_perm(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c)416 vec_perm(__vector unsigned short __a, __vector unsigned short __b,
417 __vector unsigned char __c) {
418 return (__vector unsigned short)__builtin_s390_vperm(
419 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
420 }
421
422 static inline __ATTRS_o_ai __vector __bool short
vec_perm(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c)423 vec_perm(__vector __bool short __a, __vector __bool short __b,
424 __vector unsigned char __c) {
425 return (__vector __bool short)__builtin_s390_vperm(
426 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
427 }
428
429 static inline __ATTRS_o_ai __vector signed int
vec_perm(__vector signed int __a,__vector signed int __b,__vector unsigned char __c)430 vec_perm(__vector signed int __a, __vector signed int __b,
431 __vector unsigned char __c) {
432 return (__vector signed int)__builtin_s390_vperm(
433 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
434 }
435
436 static inline __ATTRS_o_ai __vector unsigned int
vec_perm(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c)437 vec_perm(__vector unsigned int __a, __vector unsigned int __b,
438 __vector unsigned char __c) {
439 return (__vector unsigned int)__builtin_s390_vperm(
440 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
441 }
442
443 static inline __ATTRS_o_ai __vector __bool int
vec_perm(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c)444 vec_perm(__vector __bool int __a, __vector __bool int __b,
445 __vector unsigned char __c) {
446 return (__vector __bool int)__builtin_s390_vperm(
447 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
448 }
449
450 static inline __ATTRS_o_ai __vector signed long long
vec_perm(__vector signed long long __a,__vector signed long long __b,__vector unsigned char __c)451 vec_perm(__vector signed long long __a, __vector signed long long __b,
452 __vector unsigned char __c) {
453 return (__vector signed long long)__builtin_s390_vperm(
454 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
455 }
456
457 static inline __ATTRS_o_ai __vector unsigned long long
vec_perm(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned char __c)458 vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
459 __vector unsigned char __c) {
460 return (__vector unsigned long long)__builtin_s390_vperm(
461 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
462 }
463
464 static inline __ATTRS_o_ai __vector __bool long long
vec_perm(__vector __bool long long __a,__vector __bool long long __b,__vector unsigned char __c)465 vec_perm(__vector __bool long long __a, __vector __bool long long __b,
466 __vector unsigned char __c) {
467 return (__vector __bool long long)__builtin_s390_vperm(
468 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
469 }
470
471 #if __ARCH__ >= 12
472 static inline __ATTRS_o_ai __vector float
vec_perm(__vector float __a,__vector float __b,__vector unsigned char __c)473 vec_perm(__vector float __a, __vector float __b,
474 __vector unsigned char __c) {
475 return (__vector float)__builtin_s390_vperm(
476 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
477 }
478 #endif
479
480 static inline __ATTRS_o_ai __vector double
vec_perm(__vector double __a,__vector double __b,__vector unsigned char __c)481 vec_perm(__vector double __a, __vector double __b,
482 __vector unsigned char __c) {
483 return (__vector double)__builtin_s390_vperm(
484 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
485 }
486
487 /*-- vec_permi --------------------------------------------------------------*/
488
489 // This prototype is deprecated.
490 extern __ATTRS_o __vector signed long long
491 vec_permi(__vector signed long long __a, __vector signed long long __b,
492 int __c)
493 __constant_range(__c, 0, 3);
494
495 // This prototype is deprecated.
496 extern __ATTRS_o __vector unsigned long long
497 vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
498 int __c)
499 __constant_range(__c, 0, 3);
500
501 // This prototype is deprecated.
502 extern __ATTRS_o __vector __bool long long
503 vec_permi(__vector __bool long long __a, __vector __bool long long __b,
504 int __c)
505 __constant_range(__c, 0, 3);
506
507 // This prototype is deprecated.
508 extern __ATTRS_o __vector double
509 vec_permi(__vector double __a, __vector double __b, int __c)
510 __constant_range(__c, 0, 3);
511
512 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
513 __builtin_s390_vpdi((__vector unsigned long long)(X), \
514 (__vector unsigned long long)(Y), \
515 (((Z) & 2) << 1) | ((Z) & 1)))
516
517 /*-- vec_bperm_u128 ---------------------------------------------------------*/
518
519 #if __ARCH__ >= 12
520 static inline __ATTRS_ai __vector unsigned long long
vec_bperm_u128(__vector unsigned char __a,__vector unsigned char __b)521 vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
522 return __builtin_s390_vbperm(__a, __b);
523 }
524 #endif
525
526 /*-- vec_revb ---------------------------------------------------------------*/
527
528 static inline __ATTRS_o_ai __vector signed short
vec_revb(__vector signed short __vec)529 vec_revb(__vector signed short __vec) {
530 return (__vector signed short)
531 __builtin_s390_vlbrh((__vector unsigned short)__vec);
532 }
533
534 static inline __ATTRS_o_ai __vector unsigned short
vec_revb(__vector unsigned short __vec)535 vec_revb(__vector unsigned short __vec) {
536 return __builtin_s390_vlbrh(__vec);
537 }
538
539 static inline __ATTRS_o_ai __vector signed int
vec_revb(__vector signed int __vec)540 vec_revb(__vector signed int __vec) {
541 return (__vector signed int)
542 __builtin_s390_vlbrf((__vector unsigned int)__vec);
543 }
544
545 static inline __ATTRS_o_ai __vector unsigned int
vec_revb(__vector unsigned int __vec)546 vec_revb(__vector unsigned int __vec) {
547 return __builtin_s390_vlbrf(__vec);
548 }
549
550 static inline __ATTRS_o_ai __vector signed long long
vec_revb(__vector signed long long __vec)551 vec_revb(__vector signed long long __vec) {
552 return (__vector signed long long)
553 __builtin_s390_vlbrg((__vector unsigned long long)__vec);
554 }
555
556 static inline __ATTRS_o_ai __vector unsigned long long
vec_revb(__vector unsigned long long __vec)557 vec_revb(__vector unsigned long long __vec) {
558 return __builtin_s390_vlbrg(__vec);
559 }
560
561 #if __ARCH__ >= 12
562 static inline __ATTRS_o_ai __vector float
vec_revb(__vector float __vec)563 vec_revb(__vector float __vec) {
564 return (__vector float)
565 __builtin_s390_vlbrf((__vector unsigned int)__vec);
566 }
567 #endif
568
569 static inline __ATTRS_o_ai __vector double
vec_revb(__vector double __vec)570 vec_revb(__vector double __vec) {
571 return (__vector double)
572 __builtin_s390_vlbrg((__vector unsigned long long)__vec);
573 }
574
575 /*-- vec_reve ---------------------------------------------------------------*/
576
577 static inline __ATTRS_o_ai __vector signed char
vec_reve(__vector signed char __vec)578 vec_reve(__vector signed char __vec) {
579 return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
580 __vec[11], __vec[10], __vec[9], __vec[8],
581 __vec[7], __vec[6], __vec[5], __vec[4],
582 __vec[3], __vec[2], __vec[1], __vec[0] };
583 }
584
585 static inline __ATTRS_o_ai __vector unsigned char
vec_reve(__vector unsigned char __vec)586 vec_reve(__vector unsigned char __vec) {
587 return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
588 __vec[11], __vec[10], __vec[9], __vec[8],
589 __vec[7], __vec[6], __vec[5], __vec[4],
590 __vec[3], __vec[2], __vec[1], __vec[0] };
591 }
592
593 static inline __ATTRS_o_ai __vector __bool char
vec_reve(__vector __bool char __vec)594 vec_reve(__vector __bool char __vec) {
595 return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
596 __vec[11], __vec[10], __vec[9], __vec[8],
597 __vec[7], __vec[6], __vec[5], __vec[4],
598 __vec[3], __vec[2], __vec[1], __vec[0] };
599 }
600
601 static inline __ATTRS_o_ai __vector signed short
vec_reve(__vector signed short __vec)602 vec_reve(__vector signed short __vec) {
603 return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
604 __vec[3], __vec[2], __vec[1], __vec[0] };
605 }
606
607 static inline __ATTRS_o_ai __vector unsigned short
vec_reve(__vector unsigned short __vec)608 vec_reve(__vector unsigned short __vec) {
609 return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
610 __vec[3], __vec[2], __vec[1], __vec[0] };
611 }
612
613 static inline __ATTRS_o_ai __vector __bool short
vec_reve(__vector __bool short __vec)614 vec_reve(__vector __bool short __vec) {
615 return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
616 __vec[3], __vec[2], __vec[1], __vec[0] };
617 }
618
619 static inline __ATTRS_o_ai __vector signed int
vec_reve(__vector signed int __vec)620 vec_reve(__vector signed int __vec) {
621 return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
622 }
623
624 static inline __ATTRS_o_ai __vector unsigned int
vec_reve(__vector unsigned int __vec)625 vec_reve(__vector unsigned int __vec) {
626 return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
627 }
628
629 static inline __ATTRS_o_ai __vector __bool int
vec_reve(__vector __bool int __vec)630 vec_reve(__vector __bool int __vec) {
631 return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
632 }
633
634 static inline __ATTRS_o_ai __vector signed long long
vec_reve(__vector signed long long __vec)635 vec_reve(__vector signed long long __vec) {
636 return (__vector signed long long) { __vec[1], __vec[0] };
637 }
638
639 static inline __ATTRS_o_ai __vector unsigned long long
vec_reve(__vector unsigned long long __vec)640 vec_reve(__vector unsigned long long __vec) {
641 return (__vector unsigned long long) { __vec[1], __vec[0] };
642 }
643
644 static inline __ATTRS_o_ai __vector __bool long long
vec_reve(__vector __bool long long __vec)645 vec_reve(__vector __bool long long __vec) {
646 return (__vector __bool long long) { __vec[1], __vec[0] };
647 }
648
649 #if __ARCH__ >= 12
650 static inline __ATTRS_o_ai __vector float
vec_reve(__vector float __vec)651 vec_reve(__vector float __vec) {
652 return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
653 }
654 #endif
655
656 static inline __ATTRS_o_ai __vector double
vec_reve(__vector double __vec)657 vec_reve(__vector double __vec) {
658 return (__vector double) { __vec[1], __vec[0] };
659 }
660
661 /*-- vec_sel ----------------------------------------------------------------*/
662
663 static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a,__vector signed char __b,__vector unsigned char __c)664 vec_sel(__vector signed char __a, __vector signed char __b,
665 __vector unsigned char __c) {
666 return (((__vector signed char)__c & __b) |
667 (~(__vector signed char)__c & __a));
668 }
669
670 static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a,__vector signed char __b,__vector __bool char __c)671 vec_sel(__vector signed char __a, __vector signed char __b,
672 __vector __bool char __c) {
673 return (((__vector signed char)__c & __b) |
674 (~(__vector signed char)__c & __a));
675 }
676
677 static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c)678 vec_sel(__vector __bool char __a, __vector __bool char __b,
679 __vector unsigned char __c) {
680 return (((__vector __bool char)__c & __b) |
681 (~(__vector __bool char)__c & __a));
682 }
683
684 static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a,__vector __bool char __b,__vector __bool char __c)685 vec_sel(__vector __bool char __a, __vector __bool char __b,
686 __vector __bool char __c) {
687 return (__c & __b) | (~__c & __a);
688 }
689
690 static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)691 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
692 __vector unsigned char __c) {
693 return (__c & __b) | (~__c & __a);
694 }
695
696 static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a,__vector unsigned char __b,__vector __bool char __c)697 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
698 __vector __bool char __c) {
699 return (((__vector unsigned char)__c & __b) |
700 (~(__vector unsigned char)__c & __a));
701 }
702
703 static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a,__vector signed short __b,__vector unsigned short __c)704 vec_sel(__vector signed short __a, __vector signed short __b,
705 __vector unsigned short __c) {
706 return (((__vector signed short)__c & __b) |
707 (~(__vector signed short)__c & __a));
708 }
709
710 static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a,__vector signed short __b,__vector __bool short __c)711 vec_sel(__vector signed short __a, __vector signed short __b,
712 __vector __bool short __c) {
713 return (((__vector signed short)__c & __b) |
714 (~(__vector signed short)__c & __a));
715 }
716
717 static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a,__vector __bool short __b,__vector unsigned short __c)718 vec_sel(__vector __bool short __a, __vector __bool short __b,
719 __vector unsigned short __c) {
720 return (((__vector __bool short)__c & __b) |
721 (~(__vector __bool short)__c & __a));
722 }
723
724 static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a,__vector __bool short __b,__vector __bool short __c)725 vec_sel(__vector __bool short __a, __vector __bool short __b,
726 __vector __bool short __c) {
727 return (__c & __b) | (~__c & __a);
728 }
729
730 static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)731 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
732 __vector unsigned short __c) {
733 return (__c & __b) | (~__c & __a);
734 }
735
736 static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a,__vector unsigned short __b,__vector __bool short __c)737 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
738 __vector __bool short __c) {
739 return (((__vector unsigned short)__c & __b) |
740 (~(__vector unsigned short)__c & __a));
741 }
742
743 static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a,__vector signed int __b,__vector unsigned int __c)744 vec_sel(__vector signed int __a, __vector signed int __b,
745 __vector unsigned int __c) {
746 return (((__vector signed int)__c & __b) |
747 (~(__vector signed int)__c & __a));
748 }
749
750 static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a,__vector signed int __b,__vector __bool int __c)751 vec_sel(__vector signed int __a, __vector signed int __b,
752 __vector __bool int __c) {
753 return (((__vector signed int)__c & __b) |
754 (~(__vector signed int)__c & __a));
755 }
756
757 static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a,__vector __bool int __b,__vector unsigned int __c)758 vec_sel(__vector __bool int __a, __vector __bool int __b,
759 __vector unsigned int __c) {
760 return (((__vector __bool int)__c & __b) |
761 (~(__vector __bool int)__c & __a));
762 }
763
764 static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a,__vector __bool int __b,__vector __bool int __c)765 vec_sel(__vector __bool int __a, __vector __bool int __b,
766 __vector __bool int __c) {
767 return (__c & __b) | (~__c & __a);
768 }
769
770 static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)771 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
772 __vector unsigned int __c) {
773 return (__c & __b) | (~__c & __a);
774 }
775
776 static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a,__vector unsigned int __b,__vector __bool int __c)777 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
778 __vector __bool int __c) {
779 return (((__vector unsigned int)__c & __b) |
780 (~(__vector unsigned int)__c & __a));
781 }
782
783 static inline __ATTRS_o_ai __vector signed long long
vec_sel(__vector signed long long __a,__vector signed long long __b,__vector unsigned long long __c)784 vec_sel(__vector signed long long __a, __vector signed long long __b,
785 __vector unsigned long long __c) {
786 return (((__vector signed long long)__c & __b) |
787 (~(__vector signed long long)__c & __a));
788 }
789
790 static inline __ATTRS_o_ai __vector signed long long
vec_sel(__vector signed long long __a,__vector signed long long __b,__vector __bool long long __c)791 vec_sel(__vector signed long long __a, __vector signed long long __b,
792 __vector __bool long long __c) {
793 return (((__vector signed long long)__c & __b) |
794 (~(__vector signed long long)__c & __a));
795 }
796
797 static inline __ATTRS_o_ai __vector __bool long long
vec_sel(__vector __bool long long __a,__vector __bool long long __b,__vector unsigned long long __c)798 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
799 __vector unsigned long long __c) {
800 return (((__vector __bool long long)__c & __b) |
801 (~(__vector __bool long long)__c & __a));
802 }
803
804 static inline __ATTRS_o_ai __vector __bool long long
vec_sel(__vector __bool long long __a,__vector __bool long long __b,__vector __bool long long __c)805 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
806 __vector __bool long long __c) {
807 return (__c & __b) | (~__c & __a);
808 }
809
810 static inline __ATTRS_o_ai __vector unsigned long long
vec_sel(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned long long __c)811 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
812 __vector unsigned long long __c) {
813 return (__c & __b) | (~__c & __a);
814 }
815
816 static inline __ATTRS_o_ai __vector unsigned long long
vec_sel(__vector unsigned long long __a,__vector unsigned long long __b,__vector __bool long long __c)817 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
818 __vector __bool long long __c) {
819 return (((__vector unsigned long long)__c & __b) |
820 (~(__vector unsigned long long)__c & __a));
821 }
822
823 #if __ARCH__ >= 12
824 static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector unsigned int __c)825 vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
826 return (__vector float)((__c & (__vector unsigned int)__b) |
827 (~__c & (__vector unsigned int)__a));
828 }
829
830 static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector __bool int __c)831 vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
832 __vector unsigned int __ac = (__vector unsigned int)__a;
833 __vector unsigned int __bc = (__vector unsigned int)__b;
834 __vector unsigned int __cc = (__vector unsigned int)__c;
835 return (__vector float)((__cc & __bc) | (~__cc & __ac));
836 }
837 #endif
838
839 static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector unsigned long long __c)840 vec_sel(__vector double __a, __vector double __b,
841 __vector unsigned long long __c) {
842 return (__vector double)((__c & (__vector unsigned long long)__b) |
843 (~__c & (__vector unsigned long long)__a));
844 }
845
846 static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector __bool long long __c)847 vec_sel(__vector double __a, __vector double __b,
848 __vector __bool long long __c) {
849 __vector unsigned long long __ac = (__vector unsigned long long)__a;
850 __vector unsigned long long __bc = (__vector unsigned long long)__b;
851 __vector unsigned long long __cc = (__vector unsigned long long)__c;
852 return (__vector double)((__cc & __bc) | (~__cc & __ac));
853 }
854
855 /*-- vec_gather_element -----------------------------------------------------*/
856
857 static inline __ATTRS_o_ai __vector signed int
vec_gather_element(__vector signed int __vec,__vector unsigned int __offset,const signed int * __ptr,int __index)858 vec_gather_element(__vector signed int __vec,
859 __vector unsigned int __offset,
860 const signed int *__ptr, int __index)
861 __constant_range(__index, 0, 3) {
862 __vec[__index] = *(const signed int *)(
863 (const char *)__ptr + __offset[__index]);
864 return __vec;
865 }
866
867 static inline __ATTRS_o_ai __vector __bool int
vec_gather_element(__vector __bool int __vec,__vector unsigned int __offset,const unsigned int * __ptr,int __index)868 vec_gather_element(__vector __bool int __vec,
869 __vector unsigned int __offset,
870 const unsigned int *__ptr, int __index)
871 __constant_range(__index, 0, 3) {
872 __vec[__index] = *(const unsigned int *)(
873 (const char *)__ptr + __offset[__index]);
874 return __vec;
875 }
876
877 static inline __ATTRS_o_ai __vector unsigned int
vec_gather_element(__vector unsigned int __vec,__vector unsigned int __offset,const unsigned int * __ptr,int __index)878 vec_gather_element(__vector unsigned int __vec,
879 __vector unsigned int __offset,
880 const unsigned int *__ptr, int __index)
881 __constant_range(__index, 0, 3) {
882 __vec[__index] = *(const unsigned int *)(
883 (const char *)__ptr + __offset[__index]);
884 return __vec;
885 }
886
887 static inline __ATTRS_o_ai __vector signed long long
vec_gather_element(__vector signed long long __vec,__vector unsigned long long __offset,const signed long long * __ptr,int __index)888 vec_gather_element(__vector signed long long __vec,
889 __vector unsigned long long __offset,
890 const signed long long *__ptr, int __index)
891 __constant_range(__index, 0, 1) {
892 __vec[__index] = *(const signed long long *)(
893 (const char *)__ptr + __offset[__index]);
894 return __vec;
895 }
896
897 static inline __ATTRS_o_ai __vector __bool long long
vec_gather_element(__vector __bool long long __vec,__vector unsigned long long __offset,const unsigned long long * __ptr,int __index)898 vec_gather_element(__vector __bool long long __vec,
899 __vector unsigned long long __offset,
900 const unsigned long long *__ptr, int __index)
901 __constant_range(__index, 0, 1) {
902 __vec[__index] = *(const unsigned long long *)(
903 (const char *)__ptr + __offset[__index]);
904 return __vec;
905 }
906
907 static inline __ATTRS_o_ai __vector unsigned long long
vec_gather_element(__vector unsigned long long __vec,__vector unsigned long long __offset,const unsigned long long * __ptr,int __index)908 vec_gather_element(__vector unsigned long long __vec,
909 __vector unsigned long long __offset,
910 const unsigned long long *__ptr, int __index)
911 __constant_range(__index, 0, 1) {
912 __vec[__index] = *(const unsigned long long *)(
913 (const char *)__ptr + __offset[__index]);
914 return __vec;
915 }
916
917 #if __ARCH__ >= 12
918 static inline __ATTRS_o_ai __vector float
vec_gather_element(__vector float __vec,__vector unsigned int __offset,const float * __ptr,int __index)919 vec_gather_element(__vector float __vec,
920 __vector unsigned int __offset,
921 const float *__ptr, int __index)
922 __constant_range(__index, 0, 3) {
923 __vec[__index] = *(const float *)(
924 (const char *)__ptr + __offset[__index]);
925 return __vec;
926 }
927 #endif
928
929 static inline __ATTRS_o_ai __vector double
vec_gather_element(__vector double __vec,__vector unsigned long long __offset,const double * __ptr,int __index)930 vec_gather_element(__vector double __vec,
931 __vector unsigned long long __offset,
932 const double *__ptr, int __index)
933 __constant_range(__index, 0, 1) {
934 __vec[__index] = *(const double *)(
935 (const char *)__ptr + __offset[__index]);
936 return __vec;
937 }
938
939 /*-- vec_scatter_element ----------------------------------------------------*/
940
941 static inline __ATTRS_o_ai void
vec_scatter_element(__vector signed int __vec,__vector unsigned int __offset,signed int * __ptr,int __index)942 vec_scatter_element(__vector signed int __vec,
943 __vector unsigned int __offset,
944 signed int *__ptr, int __index)
945 __constant_range(__index, 0, 3) {
946 *(signed int *)((char *)__ptr + __offset[__index]) =
947 __vec[__index];
948 }
949
950 static inline __ATTRS_o_ai void
vec_scatter_element(__vector __bool int __vec,__vector unsigned int __offset,unsigned int * __ptr,int __index)951 vec_scatter_element(__vector __bool int __vec,
952 __vector unsigned int __offset,
953 unsigned int *__ptr, int __index)
954 __constant_range(__index, 0, 3) {
955 *(unsigned int *)((char *)__ptr + __offset[__index]) =
956 __vec[__index];
957 }
958
959 static inline __ATTRS_o_ai void
vec_scatter_element(__vector unsigned int __vec,__vector unsigned int __offset,unsigned int * __ptr,int __index)960 vec_scatter_element(__vector unsigned int __vec,
961 __vector unsigned int __offset,
962 unsigned int *__ptr, int __index)
963 __constant_range(__index, 0, 3) {
964 *(unsigned int *)((char *)__ptr + __offset[__index]) =
965 __vec[__index];
966 }
967
968 static inline __ATTRS_o_ai void
vec_scatter_element(__vector signed long long __vec,__vector unsigned long long __offset,signed long long * __ptr,int __index)969 vec_scatter_element(__vector signed long long __vec,
970 __vector unsigned long long __offset,
971 signed long long *__ptr, int __index)
972 __constant_range(__index, 0, 1) {
973 *(signed long long *)((char *)__ptr + __offset[__index]) =
974 __vec[__index];
975 }
976
977 static inline __ATTRS_o_ai void
vec_scatter_element(__vector __bool long long __vec,__vector unsigned long long __offset,unsigned long long * __ptr,int __index)978 vec_scatter_element(__vector __bool long long __vec,
979 __vector unsigned long long __offset,
980 unsigned long long *__ptr, int __index)
981 __constant_range(__index, 0, 1) {
982 *(unsigned long long *)((char *)__ptr + __offset[__index]) =
983 __vec[__index];
984 }
985
986 static inline __ATTRS_o_ai void
vec_scatter_element(__vector unsigned long long __vec,__vector unsigned long long __offset,unsigned long long * __ptr,int __index)987 vec_scatter_element(__vector unsigned long long __vec,
988 __vector unsigned long long __offset,
989 unsigned long long *__ptr, int __index)
990 __constant_range(__index, 0, 1) {
991 *(unsigned long long *)((char *)__ptr + __offset[__index]) =
992 __vec[__index];
993 }
994
995 #if __ARCH__ >= 12
996 static inline __ATTRS_o_ai void
vec_scatter_element(__vector float __vec,__vector unsigned int __offset,float * __ptr,int __index)997 vec_scatter_element(__vector float __vec,
998 __vector unsigned int __offset,
999 float *__ptr, int __index)
1000 __constant_range(__index, 0, 3) {
1001 *(float *)((char *)__ptr + __offset[__index]) =
1002 __vec[__index];
1003 }
1004 #endif
1005
1006 static inline __ATTRS_o_ai void
vec_scatter_element(__vector double __vec,__vector unsigned long long __offset,double * __ptr,int __index)1007 vec_scatter_element(__vector double __vec,
1008 __vector unsigned long long __offset,
1009 double *__ptr, int __index)
1010 __constant_range(__index, 0, 1) {
1011 *(double *)((char *)__ptr + __offset[__index]) =
1012 __vec[__index];
1013 }
1014
1015 /*-- vec_xl -----------------------------------------------------------------*/
1016
1017 static inline __ATTRS_o_ai __vector signed char
vec_xl(long __offset,const signed char * __ptr)1018 vec_xl(long __offset, const signed char *__ptr) {
1019 return *(const __vector signed char *)
1020 ((const char *)__ptr + __offset);
1021 }
1022
1023 static inline __ATTRS_o_ai __vector unsigned char
vec_xl(long __offset,const unsigned char * __ptr)1024 vec_xl(long __offset, const unsigned char *__ptr) {
1025 return *(const __vector unsigned char *)
1026 ((const char *)__ptr + __offset);
1027 }
1028
1029 static inline __ATTRS_o_ai __vector signed short
vec_xl(long __offset,const signed short * __ptr)1030 vec_xl(long __offset, const signed short *__ptr) {
1031 return *(const __vector signed short *)
1032 ((const char *)__ptr + __offset);
1033 }
1034
1035 static inline __ATTRS_o_ai __vector unsigned short
vec_xl(long __offset,const unsigned short * __ptr)1036 vec_xl(long __offset, const unsigned short *__ptr) {
1037 return *(const __vector unsigned short *)
1038 ((const char *)__ptr + __offset);
1039 }
1040
1041 static inline __ATTRS_o_ai __vector signed int
vec_xl(long __offset,const signed int * __ptr)1042 vec_xl(long __offset, const signed int *__ptr) {
1043 return *(const __vector signed int *)
1044 ((const char *)__ptr + __offset);
1045 }
1046
1047 static inline __ATTRS_o_ai __vector unsigned int
vec_xl(long __offset,const unsigned int * __ptr)1048 vec_xl(long __offset, const unsigned int *__ptr) {
1049 return *(const __vector unsigned int *)
1050 ((const char *)__ptr + __offset);
1051 }
1052
1053 static inline __ATTRS_o_ai __vector signed long long
vec_xl(long __offset,const signed long long * __ptr)1054 vec_xl(long __offset, const signed long long *__ptr) {
1055 return *(const __vector signed long long *)
1056 ((const char *)__ptr + __offset);
1057 }
1058
1059 static inline __ATTRS_o_ai __vector unsigned long long
vec_xl(long __offset,const unsigned long long * __ptr)1060 vec_xl(long __offset, const unsigned long long *__ptr) {
1061 return *(const __vector unsigned long long *)
1062 ((const char *)__ptr + __offset);
1063 }
1064
1065 #if __ARCH__ >= 12
1066 static inline __ATTRS_o_ai __vector float
vec_xl(long __offset,const float * __ptr)1067 vec_xl(long __offset, const float *__ptr) {
1068 return *(const __vector float *)
1069 ((const char *)__ptr + __offset);
1070 }
1071 #endif
1072
1073 static inline __ATTRS_o_ai __vector double
vec_xl(long __offset,const double * __ptr)1074 vec_xl(long __offset, const double *__ptr) {
1075 return *(const __vector double *)
1076 ((const char *)__ptr + __offset);
1077 }
1078
1079 /*-- vec_xld2 ---------------------------------------------------------------*/
1080
1081 // This prototype is deprecated.
1082 static inline __ATTRS_o_ai __vector signed char
vec_xld2(long __offset,const signed char * __ptr)1083 vec_xld2(long __offset, const signed char *__ptr) {
1084 return *(const __vector signed char *)
1085 ((const char *)__ptr + __offset);
1086 }
1087
1088 // This prototype is deprecated.
1089 static inline __ATTRS_o_ai __vector unsigned char
vec_xld2(long __offset,const unsigned char * __ptr)1090 vec_xld2(long __offset, const unsigned char *__ptr) {
1091 return *(const __vector unsigned char *)
1092 ((const char *)__ptr + __offset);
1093 }
1094
1095 // This prototype is deprecated.
1096 static inline __ATTRS_o_ai __vector signed short
vec_xld2(long __offset,const signed short * __ptr)1097 vec_xld2(long __offset, const signed short *__ptr) {
1098 return *(const __vector signed short *)
1099 ((const char *)__ptr + __offset);
1100 }
1101
1102 // This prototype is deprecated.
1103 static inline __ATTRS_o_ai __vector unsigned short
vec_xld2(long __offset,const unsigned short * __ptr)1104 vec_xld2(long __offset, const unsigned short *__ptr) {
1105 return *(const __vector unsigned short *)
1106 ((const char *)__ptr + __offset);
1107 }
1108
1109 // This prototype is deprecated.
1110 static inline __ATTRS_o_ai __vector signed int
vec_xld2(long __offset,const signed int * __ptr)1111 vec_xld2(long __offset, const signed int *__ptr) {
1112 return *(const __vector signed int *)
1113 ((const char *)__ptr + __offset);
1114 }
1115
1116 // This prototype is deprecated.
1117 static inline __ATTRS_o_ai __vector unsigned int
vec_xld2(long __offset,const unsigned int * __ptr)1118 vec_xld2(long __offset, const unsigned int *__ptr) {
1119 return *(const __vector unsigned int *)
1120 ((const char *)__ptr + __offset);
1121 }
1122
1123 // This prototype is deprecated.
1124 static inline __ATTRS_o_ai __vector signed long long
vec_xld2(long __offset,const signed long long * __ptr)1125 vec_xld2(long __offset, const signed long long *__ptr) {
1126 return *(const __vector signed long long *)
1127 ((const char *)__ptr + __offset);
1128 }
1129
1130 // This prototype is deprecated.
1131 static inline __ATTRS_o_ai __vector unsigned long long
vec_xld2(long __offset,const unsigned long long * __ptr)1132 vec_xld2(long __offset, const unsigned long long *__ptr) {
1133 return *(const __vector unsigned long long *)
1134 ((const char *)__ptr + __offset);
1135 }
1136
1137 // This prototype is deprecated.
1138 static inline __ATTRS_o_ai __vector double
vec_xld2(long __offset,const double * __ptr)1139 vec_xld2(long __offset, const double *__ptr) {
1140 return *(const __vector double *)
1141 ((const char *)__ptr + __offset);
1142 }
1143
1144 /*-- vec_xlw4 ---------------------------------------------------------------*/
1145
1146 // This prototype is deprecated.
1147 static inline __ATTRS_o_ai __vector signed char
vec_xlw4(long __offset,const signed char * __ptr)1148 vec_xlw4(long __offset, const signed char *__ptr) {
1149 return *(const __vector signed char *)
1150 ((const char *)__ptr + __offset);
1151 }
1152
1153 // This prototype is deprecated.
1154 static inline __ATTRS_o_ai __vector unsigned char
vec_xlw4(long __offset,const unsigned char * __ptr)1155 vec_xlw4(long __offset, const unsigned char *__ptr) {
1156 return *(const __vector unsigned char *)
1157 ((const char *)__ptr + __offset);
1158 }
1159
1160 // This prototype is deprecated.
1161 static inline __ATTRS_o_ai __vector signed short
vec_xlw4(long __offset,const signed short * __ptr)1162 vec_xlw4(long __offset, const signed short *__ptr) {
1163 return *(const __vector signed short *)
1164 ((const char *)__ptr + __offset);
1165 }
1166
1167 // This prototype is deprecated.
1168 static inline __ATTRS_o_ai __vector unsigned short
vec_xlw4(long __offset,const unsigned short * __ptr)1169 vec_xlw4(long __offset, const unsigned short *__ptr) {
1170 return *(const __vector unsigned short *)
1171 ((const char *)__ptr + __offset);
1172 }
1173
1174 // This prototype is deprecated.
1175 static inline __ATTRS_o_ai __vector signed int
vec_xlw4(long __offset,const signed int * __ptr)1176 vec_xlw4(long __offset, const signed int *__ptr) {
1177 return *(const __vector signed int *)
1178 ((const char *)__ptr + __offset);
1179 }
1180
1181 // This prototype is deprecated.
1182 static inline __ATTRS_o_ai __vector unsigned int
vec_xlw4(long __offset,const unsigned int * __ptr)1183 vec_xlw4(long __offset, const unsigned int *__ptr) {
1184 return *(const __vector unsigned int *)
1185 ((const char *)__ptr + __offset);
1186 }
1187
1188 /*-- vec_xst ----------------------------------------------------------------*/
1189
1190 static inline __ATTRS_o_ai void
vec_xst(__vector signed char __vec,long __offset,signed char * __ptr)1191 vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
1192 *(__vector signed char *)((char *)__ptr + __offset) = __vec;
1193 }
1194
1195 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1196 vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1197 *(__vector unsigned char *)((char *)__ptr + __offset) = __vec;
1198 }
1199
1200 static inline __ATTRS_o_ai void
vec_xst(__vector signed short __vec,long __offset,signed short * __ptr)1201 vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
1202 *(__vector signed short *)((char *)__ptr + __offset) = __vec;
1203 }
1204
1205 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1206 vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1207 *(__vector unsigned short *)((char *)__ptr + __offset) = __vec;
1208 }
1209
1210 static inline __ATTRS_o_ai void
vec_xst(__vector signed int __vec,long __offset,signed int * __ptr)1211 vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
1212 *(__vector signed int *)((char *)__ptr + __offset) = __vec;
1213 }
1214
1215 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1216 vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1217 *(__vector unsigned int *)((char *)__ptr + __offset) = __vec;
1218 }
1219
1220 static inline __ATTRS_o_ai void
vec_xst(__vector signed long long __vec,long __offset,signed long long * __ptr)1221 vec_xst(__vector signed long long __vec, long __offset,
1222 signed long long *__ptr) {
1223 *(__vector signed long long *)((char *)__ptr + __offset) = __vec;
1224 }
1225
1226 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1227 vec_xst(__vector unsigned long long __vec, long __offset,
1228 unsigned long long *__ptr) {
1229 *(__vector unsigned long long *)((char *)__ptr + __offset) = __vec;
1230 }
1231
1232 #if __ARCH__ >= 12
1233 static inline __ATTRS_o_ai void
vec_xst(__vector float __vec,long __offset,float * __ptr)1234 vec_xst(__vector float __vec, long __offset, float *__ptr) {
1235 *(__vector float *)((char *)__ptr + __offset) = __vec;
1236 }
1237 #endif
1238
1239 static inline __ATTRS_o_ai void
vec_xst(__vector double __vec,long __offset,double * __ptr)1240 vec_xst(__vector double __vec, long __offset, double *__ptr) {
1241 *(__vector double *)((char *)__ptr + __offset) = __vec;
1242 }
1243
1244 /*-- vec_xstd2 --------------------------------------------------------------*/
1245
1246 // This prototype is deprecated.
1247 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed char __vec,long __offset,signed char * __ptr)1248 vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
1249 *(__vector signed char *)((char *)__ptr + __offset) = __vec;
1250 }
1251
1252 // This prototype is deprecated.
1253 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1254 vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1255 *(__vector unsigned char *)((char *)__ptr + __offset) = __vec;
1256 }
1257
1258 // This prototype is deprecated.
1259 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed short __vec,long __offset,signed short * __ptr)1260 vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
1261 *(__vector signed short *)((char *)__ptr + __offset) = __vec;
1262 }
1263
1264 // This prototype is deprecated.
1265 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1266 vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1267 *(__vector unsigned short *)((char *)__ptr + __offset) = __vec;
1268 }
1269
1270 // This prototype is deprecated.
1271 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed int __vec,long __offset,signed int * __ptr)1272 vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
1273 *(__vector signed int *)((char *)__ptr + __offset) = __vec;
1274 }
1275
1276 // This prototype is deprecated.
1277 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1278 vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1279 *(__vector unsigned int *)((char *)__ptr + __offset) = __vec;
1280 }
1281
1282 // This prototype is deprecated.
1283 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed long long __vec,long __offset,signed long long * __ptr)1284 vec_xstd2(__vector signed long long __vec, long __offset,
1285 signed long long *__ptr) {
1286 *(__vector signed long long *)((char *)__ptr + __offset) = __vec;
1287 }
1288
1289 // This prototype is deprecated.
1290 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1291 vec_xstd2(__vector unsigned long long __vec, long __offset,
1292 unsigned long long *__ptr) {
1293 *(__vector unsigned long long *)((char *)__ptr + __offset) = __vec;
1294 }
1295
1296 // This prototype is deprecated.
1297 static inline __ATTRS_o_ai void
vec_xstd2(__vector double __vec,long __offset,double * __ptr)1298 vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
1299 *(__vector double *)((char *)__ptr + __offset) = __vec;
1300 }
1301
1302 /*-- vec_xstw4 --------------------------------------------------------------*/
1303
1304 // This prototype is deprecated.
1305 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed char __vec,long __offset,signed char * __ptr)1306 vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
1307 *(__vector signed char *)((char *)__ptr + __offset) = __vec;
1308 }
1309
1310 // This prototype is deprecated.
1311 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1312 vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1313 *(__vector unsigned char *)((char *)__ptr + __offset) = __vec;
1314 }
1315
1316 // This prototype is deprecated.
1317 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed short __vec,long __offset,signed short * __ptr)1318 vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
1319 *(__vector signed short *)((char *)__ptr + __offset) = __vec;
1320 }
1321
1322 // This prototype is deprecated.
1323 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1324 vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1325 *(__vector unsigned short *)((char *)__ptr + __offset) = __vec;
1326 }
1327
1328 // This prototype is deprecated.
1329 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed int __vec,long __offset,signed int * __ptr)1330 vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
1331 *(__vector signed int *)((char *)__ptr + __offset) = __vec;
1332 }
1333
1334 // This prototype is deprecated.
1335 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1336 vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1337 *(__vector unsigned int *)((char *)__ptr + __offset) = __vec;
1338 }
1339
1340 /*-- vec_load_bndry ---------------------------------------------------------*/
1341
1342 extern __ATTRS_o __vector signed char
1343 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1344 __constant_pow2_range(__len, 64, 4096);
1345
1346 extern __ATTRS_o __vector unsigned char
1347 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1348 __constant_pow2_range(__len, 64, 4096);
1349
1350 extern __ATTRS_o __vector signed short
1351 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1352 __constant_pow2_range(__len, 64, 4096);
1353
1354 extern __ATTRS_o __vector unsigned short
1355 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1356 __constant_pow2_range(__len, 64, 4096);
1357
1358 extern __ATTRS_o __vector signed int
1359 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1360 __constant_pow2_range(__len, 64, 4096);
1361
1362 extern __ATTRS_o __vector unsigned int
1363 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1364 __constant_pow2_range(__len, 64, 4096);
1365
1366 extern __ATTRS_o __vector signed long long
1367 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1368 __constant_pow2_range(__len, 64, 4096);
1369
1370 extern __ATTRS_o __vector unsigned long long
1371 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1372 __constant_pow2_range(__len, 64, 4096);
1373
1374 #if __ARCH__ >= 12
1375 extern __ATTRS_o __vector float
1376 vec_load_bndry(const float *__ptr, unsigned short __len)
1377 __constant_pow2_range(__len, 64, 4096);
1378 #endif
1379
1380 extern __ATTRS_o __vector double
1381 vec_load_bndry(const double *__ptr, unsigned short __len)
1382 __constant_pow2_range(__len, 64, 4096);
1383
1384 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1385 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1386 (Y) == 128 ? 1 : \
1387 (Y) == 256 ? 2 : \
1388 (Y) == 512 ? 3 : \
1389 (Y) == 1024 ? 4 : \
1390 (Y) == 2048 ? 5 : \
1391 (Y) == 4096 ? 6 : -1)))
1392
1393 /*-- vec_load_len -----------------------------------------------------------*/
1394
1395 static inline __ATTRS_o_ai __vector signed char
vec_load_len(const signed char * __ptr,unsigned int __len)1396 vec_load_len(const signed char *__ptr, unsigned int __len) {
1397 return (__vector signed char)__builtin_s390_vll(__len, __ptr);
1398 }
1399
1400 static inline __ATTRS_o_ai __vector unsigned char
vec_load_len(const unsigned char * __ptr,unsigned int __len)1401 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1402 return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
1403 }
1404
1405 static inline __ATTRS_o_ai __vector signed short
vec_load_len(const signed short * __ptr,unsigned int __len)1406 vec_load_len(const signed short *__ptr, unsigned int __len) {
1407 return (__vector signed short)__builtin_s390_vll(__len, __ptr);
1408 }
1409
1410 static inline __ATTRS_o_ai __vector unsigned short
vec_load_len(const unsigned short * __ptr,unsigned int __len)1411 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1412 return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
1413 }
1414
1415 static inline __ATTRS_o_ai __vector signed int
vec_load_len(const signed int * __ptr,unsigned int __len)1416 vec_load_len(const signed int *__ptr, unsigned int __len) {
1417 return (__vector signed int)__builtin_s390_vll(__len, __ptr);
1418 }
1419
1420 static inline __ATTRS_o_ai __vector unsigned int
vec_load_len(const unsigned int * __ptr,unsigned int __len)1421 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1422 return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
1423 }
1424
1425 static inline __ATTRS_o_ai __vector signed long long
vec_load_len(const signed long long * __ptr,unsigned int __len)1426 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1427 return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
1428 }
1429
1430 static inline __ATTRS_o_ai __vector unsigned long long
vec_load_len(const unsigned long long * __ptr,unsigned int __len)1431 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1432 return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1433 }
1434
1435 #if __ARCH__ >= 12
1436 static inline __ATTRS_o_ai __vector float
vec_load_len(const float * __ptr,unsigned int __len)1437 vec_load_len(const float *__ptr, unsigned int __len) {
1438 return (__vector float)__builtin_s390_vll(__len, __ptr);
1439 }
1440 #endif
1441
1442 static inline __ATTRS_o_ai __vector double
vec_load_len(const double * __ptr,unsigned int __len)1443 vec_load_len(const double *__ptr, unsigned int __len) {
1444 return (__vector double)__builtin_s390_vll(__len, __ptr);
1445 }
1446
1447 /*-- vec_load_len_r ---------------------------------------------------------*/
1448
1449 #if __ARCH__ >= 12
1450 static inline __ATTRS_ai __vector unsigned char
vec_load_len_r(const unsigned char * __ptr,unsigned int __len)1451 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1452 return (__vector unsigned char)__builtin_s390_vlrl(__len, __ptr);
1453 }
1454 #endif
1455
1456 /*-- vec_store_len ----------------------------------------------------------*/
1457
1458 static inline __ATTRS_o_ai void
vec_store_len(__vector signed char __vec,signed char * __ptr,unsigned int __len)1459 vec_store_len(__vector signed char __vec, signed char *__ptr,
1460 unsigned int __len) {
1461 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1462 }
1463
1464 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1465 vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
1466 unsigned int __len) {
1467 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1468 }
1469
1470 static inline __ATTRS_o_ai void
vec_store_len(__vector signed short __vec,signed short * __ptr,unsigned int __len)1471 vec_store_len(__vector signed short __vec, signed short *__ptr,
1472 unsigned int __len) {
1473 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1474 }
1475
1476 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned short __vec,unsigned short * __ptr,unsigned int __len)1477 vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
1478 unsigned int __len) {
1479 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1480 }
1481
1482 static inline __ATTRS_o_ai void
vec_store_len(__vector signed int __vec,signed int * __ptr,unsigned int __len)1483 vec_store_len(__vector signed int __vec, signed int *__ptr,
1484 unsigned int __len) {
1485 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1486 }
1487
1488 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned int __vec,unsigned int * __ptr,unsigned int __len)1489 vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
1490 unsigned int __len) {
1491 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1492 }
1493
1494 static inline __ATTRS_o_ai void
vec_store_len(__vector signed long long __vec,signed long long * __ptr,unsigned int __len)1495 vec_store_len(__vector signed long long __vec, signed long long *__ptr,
1496 unsigned int __len) {
1497 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1498 }
1499
1500 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned long long __vec,unsigned long long * __ptr,unsigned int __len)1501 vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
1502 unsigned int __len) {
1503 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1504 }
1505
1506 #if __ARCH__ >= 12
1507 static inline __ATTRS_o_ai void
vec_store_len(__vector float __vec,float * __ptr,unsigned int __len)1508 vec_store_len(__vector float __vec, float *__ptr,
1509 unsigned int __len) {
1510 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1511 }
1512 #endif
1513
1514 static inline __ATTRS_o_ai void
vec_store_len(__vector double __vec,double * __ptr,unsigned int __len)1515 vec_store_len(__vector double __vec, double *__ptr,
1516 unsigned int __len) {
1517 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1518 }
1519
1520 /*-- vec_store_len_r --------------------------------------------------------*/
1521
1522 #if __ARCH__ >= 12
1523 static inline __ATTRS_ai void
vec_store_len_r(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1524 vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
1525 unsigned int __len) {
1526 __builtin_s390_vstrl((__vector signed char)__vec, __len, __ptr);
1527 }
1528 #endif
1529
1530 /*-- vec_load_pair ----------------------------------------------------------*/
1531
1532 static inline __ATTRS_o_ai __vector signed long long
vec_load_pair(signed long long __a,signed long long __b)1533 vec_load_pair(signed long long __a, signed long long __b) {
1534 return (__vector signed long long)(__a, __b);
1535 }
1536
1537 static inline __ATTRS_o_ai __vector unsigned long long
vec_load_pair(unsigned long long __a,unsigned long long __b)1538 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1539 return (__vector unsigned long long)(__a, __b);
1540 }
1541
1542 /*-- vec_genmask ------------------------------------------------------------*/
1543
1544 static inline __ATTRS_o_ai __vector unsigned char
vec_genmask(unsigned short __mask)1545 vec_genmask(unsigned short __mask)
1546 __constant(__mask) {
1547 return (__vector unsigned char)(
1548 __mask & 0x8000 ? 0xff : 0,
1549 __mask & 0x4000 ? 0xff : 0,
1550 __mask & 0x2000 ? 0xff : 0,
1551 __mask & 0x1000 ? 0xff : 0,
1552 __mask & 0x0800 ? 0xff : 0,
1553 __mask & 0x0400 ? 0xff : 0,
1554 __mask & 0x0200 ? 0xff : 0,
1555 __mask & 0x0100 ? 0xff : 0,
1556 __mask & 0x0080 ? 0xff : 0,
1557 __mask & 0x0040 ? 0xff : 0,
1558 __mask & 0x0020 ? 0xff : 0,
1559 __mask & 0x0010 ? 0xff : 0,
1560 __mask & 0x0008 ? 0xff : 0,
1561 __mask & 0x0004 ? 0xff : 0,
1562 __mask & 0x0002 ? 0xff : 0,
1563 __mask & 0x0001 ? 0xff : 0);
1564 }
1565
1566 /*-- vec_genmasks_* ---------------------------------------------------------*/
1567
1568 static inline __ATTRS_o_ai __vector unsigned char
vec_genmasks_8(unsigned char __first,unsigned char __last)1569 vec_genmasks_8(unsigned char __first, unsigned char __last)
1570 __constant(__first) __constant(__last) {
1571 unsigned char __bit1 = __first & 7;
1572 unsigned char __bit2 = __last & 7;
1573 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1574 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1575 unsigned char __value = (__bit1 <= __bit2 ?
1576 __mask1 & ~__mask2 :
1577 __mask1 | ~__mask2);
1578 return (__vector unsigned char)__value;
1579 }
1580
1581 static inline __ATTRS_o_ai __vector unsigned short
vec_genmasks_16(unsigned char __first,unsigned char __last)1582 vec_genmasks_16(unsigned char __first, unsigned char __last)
1583 __constant(__first) __constant(__last) {
1584 unsigned char __bit1 = __first & 15;
1585 unsigned char __bit2 = __last & 15;
1586 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1587 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1588 unsigned short __value = (__bit1 <= __bit2 ?
1589 __mask1 & ~__mask2 :
1590 __mask1 | ~__mask2);
1591 return (__vector unsigned short)__value;
1592 }
1593
1594 static inline __ATTRS_o_ai __vector unsigned int
vec_genmasks_32(unsigned char __first,unsigned char __last)1595 vec_genmasks_32(unsigned char __first, unsigned char __last)
1596 __constant(__first) __constant(__last) {
1597 unsigned char __bit1 = __first & 31;
1598 unsigned char __bit2 = __last & 31;
1599 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1600 unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1601 unsigned int __value = (__bit1 <= __bit2 ?
1602 __mask1 & ~__mask2 :
1603 __mask1 | ~__mask2);
1604 return (__vector unsigned int)__value;
1605 }
1606
1607 static inline __ATTRS_o_ai __vector unsigned long long
vec_genmasks_64(unsigned char __first,unsigned char __last)1608 vec_genmasks_64(unsigned char __first, unsigned char __last)
1609 __constant(__first) __constant(__last) {
1610 unsigned char __bit1 = __first & 63;
1611 unsigned char __bit2 = __last & 63;
1612 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1613 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1614 unsigned long long __value = (__bit1 <= __bit2 ?
1615 __mask1 & ~__mask2 :
1616 __mask1 | ~__mask2);
1617 return (__vector unsigned long long)__value;
1618 }
1619
1620 /*-- vec_splat --------------------------------------------------------------*/
1621
1622 static inline __ATTRS_o_ai __vector signed char
vec_splat(__vector signed char __vec,int __index)1623 vec_splat(__vector signed char __vec, int __index)
1624 __constant_range(__index, 0, 15) {
1625 return (__vector signed char)__vec[__index];
1626 }
1627
1628 static inline __ATTRS_o_ai __vector __bool char
vec_splat(__vector __bool char __vec,int __index)1629 vec_splat(__vector __bool char __vec, int __index)
1630 __constant_range(__index, 0, 15) {
1631 return (__vector __bool char)(__vector unsigned char)__vec[__index];
1632 }
1633
1634 static inline __ATTRS_o_ai __vector unsigned char
vec_splat(__vector unsigned char __vec,int __index)1635 vec_splat(__vector unsigned char __vec, int __index)
1636 __constant_range(__index, 0, 15) {
1637 return (__vector unsigned char)__vec[__index];
1638 }
1639
1640 static inline __ATTRS_o_ai __vector signed short
vec_splat(__vector signed short __vec,int __index)1641 vec_splat(__vector signed short __vec, int __index)
1642 __constant_range(__index, 0, 7) {
1643 return (__vector signed short)__vec[__index];
1644 }
1645
1646 static inline __ATTRS_o_ai __vector __bool short
vec_splat(__vector __bool short __vec,int __index)1647 vec_splat(__vector __bool short __vec, int __index)
1648 __constant_range(__index, 0, 7) {
1649 return (__vector __bool short)(__vector unsigned short)__vec[__index];
1650 }
1651
1652 static inline __ATTRS_o_ai __vector unsigned short
vec_splat(__vector unsigned short __vec,int __index)1653 vec_splat(__vector unsigned short __vec, int __index)
1654 __constant_range(__index, 0, 7) {
1655 return (__vector unsigned short)__vec[__index];
1656 }
1657
1658 static inline __ATTRS_o_ai __vector signed int
vec_splat(__vector signed int __vec,int __index)1659 vec_splat(__vector signed int __vec, int __index)
1660 __constant_range(__index, 0, 3) {
1661 return (__vector signed int)__vec[__index];
1662 }
1663
1664 static inline __ATTRS_o_ai __vector __bool int
vec_splat(__vector __bool int __vec,int __index)1665 vec_splat(__vector __bool int __vec, int __index)
1666 __constant_range(__index, 0, 3) {
1667 return (__vector __bool int)(__vector unsigned int)__vec[__index];
1668 }
1669
1670 static inline __ATTRS_o_ai __vector unsigned int
vec_splat(__vector unsigned int __vec,int __index)1671 vec_splat(__vector unsigned int __vec, int __index)
1672 __constant_range(__index, 0, 3) {
1673 return (__vector unsigned int)__vec[__index];
1674 }
1675
1676 static inline __ATTRS_o_ai __vector signed long long
vec_splat(__vector signed long long __vec,int __index)1677 vec_splat(__vector signed long long __vec, int __index)
1678 __constant_range(__index, 0, 1) {
1679 return (__vector signed long long)__vec[__index];
1680 }
1681
1682 static inline __ATTRS_o_ai __vector __bool long long
vec_splat(__vector __bool long long __vec,int __index)1683 vec_splat(__vector __bool long long __vec, int __index)
1684 __constant_range(__index, 0, 1) {
1685 return ((__vector __bool long long)
1686 (__vector unsigned long long)__vec[__index]);
1687 }
1688
1689 static inline __ATTRS_o_ai __vector unsigned long long
vec_splat(__vector unsigned long long __vec,int __index)1690 vec_splat(__vector unsigned long long __vec, int __index)
1691 __constant_range(__index, 0, 1) {
1692 return (__vector unsigned long long)__vec[__index];
1693 }
1694
1695 #if __ARCH__ >= 12
1696 static inline __ATTRS_o_ai __vector float
vec_splat(__vector float __vec,int __index)1697 vec_splat(__vector float __vec, int __index)
1698 __constant_range(__index, 0, 3) {
1699 return (__vector float)__vec[__index];
1700 }
1701 #endif
1702
1703 static inline __ATTRS_o_ai __vector double
vec_splat(__vector double __vec,int __index)1704 vec_splat(__vector double __vec, int __index)
1705 __constant_range(__index, 0, 1) {
1706 return (__vector double)__vec[__index];
1707 }
1708
1709 /*-- vec_splat_s* -----------------------------------------------------------*/
1710
1711 static inline __ATTRS_ai __vector signed char
vec_splat_s8(signed char __scalar)1712 vec_splat_s8(signed char __scalar)
1713 __constant(__scalar) {
1714 return (__vector signed char)__scalar;
1715 }
1716
1717 static inline __ATTRS_ai __vector signed short
vec_splat_s16(signed short __scalar)1718 vec_splat_s16(signed short __scalar)
1719 __constant(__scalar) {
1720 return (__vector signed short)__scalar;
1721 }
1722
1723 static inline __ATTRS_ai __vector signed int
vec_splat_s32(signed short __scalar)1724 vec_splat_s32(signed short __scalar)
1725 __constant(__scalar) {
1726 return (__vector signed int)(signed int)__scalar;
1727 }
1728
1729 static inline __ATTRS_ai __vector signed long long
vec_splat_s64(signed short __scalar)1730 vec_splat_s64(signed short __scalar)
1731 __constant(__scalar) {
1732 return (__vector signed long long)(signed long)__scalar;
1733 }
1734
1735 /*-- vec_splat_u* -----------------------------------------------------------*/
1736
1737 static inline __ATTRS_ai __vector unsigned char
vec_splat_u8(unsigned char __scalar)1738 vec_splat_u8(unsigned char __scalar)
1739 __constant(__scalar) {
1740 return (__vector unsigned char)__scalar;
1741 }
1742
1743 static inline __ATTRS_ai __vector unsigned short
vec_splat_u16(unsigned short __scalar)1744 vec_splat_u16(unsigned short __scalar)
1745 __constant(__scalar) {
1746 return (__vector unsigned short)__scalar;
1747 }
1748
1749 static inline __ATTRS_ai __vector unsigned int
vec_splat_u32(signed short __scalar)1750 vec_splat_u32(signed short __scalar)
1751 __constant(__scalar) {
1752 return (__vector unsigned int)(signed int)__scalar;
1753 }
1754
1755 static inline __ATTRS_ai __vector unsigned long long
vec_splat_u64(signed short __scalar)1756 vec_splat_u64(signed short __scalar)
1757 __constant(__scalar) {
1758 return (__vector unsigned long long)(signed long long)__scalar;
1759 }
1760
1761 /*-- vec_splats -------------------------------------------------------------*/
1762
1763 static inline __ATTRS_o_ai __vector signed char
vec_splats(signed char __scalar)1764 vec_splats(signed char __scalar) {
1765 return (__vector signed char)__scalar;
1766 }
1767
1768 static inline __ATTRS_o_ai __vector unsigned char
vec_splats(unsigned char __scalar)1769 vec_splats(unsigned char __scalar) {
1770 return (__vector unsigned char)__scalar;
1771 }
1772
1773 static inline __ATTRS_o_ai __vector signed short
vec_splats(signed short __scalar)1774 vec_splats(signed short __scalar) {
1775 return (__vector signed short)__scalar;
1776 }
1777
1778 static inline __ATTRS_o_ai __vector unsigned short
vec_splats(unsigned short __scalar)1779 vec_splats(unsigned short __scalar) {
1780 return (__vector unsigned short)__scalar;
1781 }
1782
1783 static inline __ATTRS_o_ai __vector signed int
vec_splats(signed int __scalar)1784 vec_splats(signed int __scalar) {
1785 return (__vector signed int)__scalar;
1786 }
1787
1788 static inline __ATTRS_o_ai __vector unsigned int
vec_splats(unsigned int __scalar)1789 vec_splats(unsigned int __scalar) {
1790 return (__vector unsigned int)__scalar;
1791 }
1792
1793 static inline __ATTRS_o_ai __vector signed long long
vec_splats(signed long long __scalar)1794 vec_splats(signed long long __scalar) {
1795 return (__vector signed long long)__scalar;
1796 }
1797
1798 static inline __ATTRS_o_ai __vector unsigned long long
vec_splats(unsigned long long __scalar)1799 vec_splats(unsigned long long __scalar) {
1800 return (__vector unsigned long long)__scalar;
1801 }
1802
1803 #if __ARCH__ >= 12
1804 static inline __ATTRS_o_ai __vector float
vec_splats(float __scalar)1805 vec_splats(float __scalar) {
1806 return (__vector float)__scalar;
1807 }
1808 #endif
1809
1810 static inline __ATTRS_o_ai __vector double
vec_splats(double __scalar)1811 vec_splats(double __scalar) {
1812 return (__vector double)__scalar;
1813 }
1814
1815 /*-- vec_extend_s64 ---------------------------------------------------------*/
1816
1817 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed char __a)1818 vec_extend_s64(__vector signed char __a) {
1819 return (__vector signed long long)(__a[7], __a[15]);
1820 }
1821
1822 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed short __a)1823 vec_extend_s64(__vector signed short __a) {
1824 return (__vector signed long long)(__a[3], __a[7]);
1825 }
1826
1827 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed int __a)1828 vec_extend_s64(__vector signed int __a) {
1829 return (__vector signed long long)(__a[1], __a[3]);
1830 }
1831
1832 /*-- vec_mergeh -------------------------------------------------------------*/
1833
1834 static inline __ATTRS_o_ai __vector signed char
vec_mergeh(__vector signed char __a,__vector signed char __b)1835 vec_mergeh(__vector signed char __a, __vector signed char __b) {
1836 return (__vector signed char)(
1837 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1838 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1839 }
1840
1841 static inline __ATTRS_o_ai __vector __bool char
vec_mergeh(__vector __bool char __a,__vector __bool char __b)1842 vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
1843 return (__vector __bool char)(
1844 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1845 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1846 }
1847
1848 static inline __ATTRS_o_ai __vector unsigned char
vec_mergeh(__vector unsigned char __a,__vector unsigned char __b)1849 vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
1850 return (__vector unsigned char)(
1851 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1852 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1853 }
1854
1855 static inline __ATTRS_o_ai __vector signed short
vec_mergeh(__vector signed short __a,__vector signed short __b)1856 vec_mergeh(__vector signed short __a, __vector signed short __b) {
1857 return (__vector signed short)(
1858 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1859 }
1860
1861 static inline __ATTRS_o_ai __vector __bool short
vec_mergeh(__vector __bool short __a,__vector __bool short __b)1862 vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
1863 return (__vector __bool short)(
1864 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1865 }
1866
1867 static inline __ATTRS_o_ai __vector unsigned short
vec_mergeh(__vector unsigned short __a,__vector unsigned short __b)1868 vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
1869 return (__vector unsigned short)(
1870 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1871 }
1872
1873 static inline __ATTRS_o_ai __vector signed int
vec_mergeh(__vector signed int __a,__vector signed int __b)1874 vec_mergeh(__vector signed int __a, __vector signed int __b) {
1875 return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1876 }
1877
1878 static inline __ATTRS_o_ai __vector __bool int
vec_mergeh(__vector __bool int __a,__vector __bool int __b)1879 vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
1880 return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
1881 }
1882
1883 static inline __ATTRS_o_ai __vector unsigned int
vec_mergeh(__vector unsigned int __a,__vector unsigned int __b)1884 vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
1885 return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1886 }
1887
1888 static inline __ATTRS_o_ai __vector signed long long
vec_mergeh(__vector signed long long __a,__vector signed long long __b)1889 vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
1890 return (__vector signed long long)(__a[0], __b[0]);
1891 }
1892
1893 static inline __ATTRS_o_ai __vector __bool long long
vec_mergeh(__vector __bool long long __a,__vector __bool long long __b)1894 vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
1895 return (__vector __bool long long)(__a[0], __b[0]);
1896 }
1897
1898 static inline __ATTRS_o_ai __vector unsigned long long
vec_mergeh(__vector unsigned long long __a,__vector unsigned long long __b)1899 vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
1900 return (__vector unsigned long long)(__a[0], __b[0]);
1901 }
1902
1903 #if __ARCH__ >= 12
1904 static inline __ATTRS_o_ai __vector float
vec_mergeh(__vector float __a,__vector float __b)1905 vec_mergeh(__vector float __a, __vector float __b) {
1906 return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
1907 }
1908 #endif
1909
1910 static inline __ATTRS_o_ai __vector double
vec_mergeh(__vector double __a,__vector double __b)1911 vec_mergeh(__vector double __a, __vector double __b) {
1912 return (__vector double)(__a[0], __b[0]);
1913 }
1914
1915 /*-- vec_mergel -------------------------------------------------------------*/
1916
1917 static inline __ATTRS_o_ai __vector signed char
vec_mergel(__vector signed char __a,__vector signed char __b)1918 vec_mergel(__vector signed char __a, __vector signed char __b) {
1919 return (__vector signed char)(
1920 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1921 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1922 }
1923
1924 static inline __ATTRS_o_ai __vector __bool char
vec_mergel(__vector __bool char __a,__vector __bool char __b)1925 vec_mergel(__vector __bool char __a, __vector __bool char __b) {
1926 return (__vector __bool char)(
1927 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1928 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1929 }
1930
1931 static inline __ATTRS_o_ai __vector unsigned char
vec_mergel(__vector unsigned char __a,__vector unsigned char __b)1932 vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
1933 return (__vector unsigned char)(
1934 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1935 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1936 }
1937
1938 static inline __ATTRS_o_ai __vector signed short
vec_mergel(__vector signed short __a,__vector signed short __b)1939 vec_mergel(__vector signed short __a, __vector signed short __b) {
1940 return (__vector signed short)(
1941 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1942 }
1943
1944 static inline __ATTRS_o_ai __vector __bool short
vec_mergel(__vector __bool short __a,__vector __bool short __b)1945 vec_mergel(__vector __bool short __a, __vector __bool short __b) {
1946 return (__vector __bool short)(
1947 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1948 }
1949
1950 static inline __ATTRS_o_ai __vector unsigned short
vec_mergel(__vector unsigned short __a,__vector unsigned short __b)1951 vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
1952 return (__vector unsigned short)(
1953 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1954 }
1955
1956 static inline __ATTRS_o_ai __vector signed int
vec_mergel(__vector signed int __a,__vector signed int __b)1957 vec_mergel(__vector signed int __a, __vector signed int __b) {
1958 return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1959 }
1960
1961 static inline __ATTRS_o_ai __vector __bool int
vec_mergel(__vector __bool int __a,__vector __bool int __b)1962 vec_mergel(__vector __bool int __a, __vector __bool int __b) {
1963 return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
1964 }
1965
1966 static inline __ATTRS_o_ai __vector unsigned int
vec_mergel(__vector unsigned int __a,__vector unsigned int __b)1967 vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
1968 return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1969 }
1970
1971 static inline __ATTRS_o_ai __vector signed long long
vec_mergel(__vector signed long long __a,__vector signed long long __b)1972 vec_mergel(__vector signed long long __a, __vector signed long long __b) {
1973 return (__vector signed long long)(__a[1], __b[1]);
1974 }
1975
1976 static inline __ATTRS_o_ai __vector __bool long long
vec_mergel(__vector __bool long long __a,__vector __bool long long __b)1977 vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
1978 return (__vector __bool long long)(__a[1], __b[1]);
1979 }
1980
1981 static inline __ATTRS_o_ai __vector unsigned long long
vec_mergel(__vector unsigned long long __a,__vector unsigned long long __b)1982 vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
1983 return (__vector unsigned long long)(__a[1], __b[1]);
1984 }
1985
1986 #if __ARCH__ >= 12
1987 static inline __ATTRS_o_ai __vector float
vec_mergel(__vector float __a,__vector float __b)1988 vec_mergel(__vector float __a, __vector float __b) {
1989 return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
1990 }
1991 #endif
1992
1993 static inline __ATTRS_o_ai __vector double
vec_mergel(__vector double __a,__vector double __b)1994 vec_mergel(__vector double __a, __vector double __b) {
1995 return (__vector double)(__a[1], __b[1]);
1996 }
1997
1998 /*-- vec_pack ---------------------------------------------------------------*/
1999
2000 static inline __ATTRS_o_ai __vector signed char
vec_pack(__vector signed short __a,__vector signed short __b)2001 vec_pack(__vector signed short __a, __vector signed short __b) {
2002 __vector signed char __ac = (__vector signed char)__a;
2003 __vector signed char __bc = (__vector signed char)__b;
2004 return (__vector signed char)(
2005 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2006 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2007 }
2008
2009 static inline __ATTRS_o_ai __vector __bool char
vec_pack(__vector __bool short __a,__vector __bool short __b)2010 vec_pack(__vector __bool short __a, __vector __bool short __b) {
2011 __vector __bool char __ac = (__vector __bool char)__a;
2012 __vector __bool char __bc = (__vector __bool char)__b;
2013 return (__vector __bool char)(
2014 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2015 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2016 }
2017
2018 static inline __ATTRS_o_ai __vector unsigned char
vec_pack(__vector unsigned short __a,__vector unsigned short __b)2019 vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
2020 __vector unsigned char __ac = (__vector unsigned char)__a;
2021 __vector unsigned char __bc = (__vector unsigned char)__b;
2022 return (__vector unsigned char)(
2023 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2024 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2025 }
2026
2027 static inline __ATTRS_o_ai __vector signed short
vec_pack(__vector signed int __a,__vector signed int __b)2028 vec_pack(__vector signed int __a, __vector signed int __b) {
2029 __vector signed short __ac = (__vector signed short)__a;
2030 __vector signed short __bc = (__vector signed short)__b;
2031 return (__vector signed short)(
2032 __ac[1], __ac[3], __ac[5], __ac[7],
2033 __bc[1], __bc[3], __bc[5], __bc[7]);
2034 }
2035
2036 static inline __ATTRS_o_ai __vector __bool short
vec_pack(__vector __bool int __a,__vector __bool int __b)2037 vec_pack(__vector __bool int __a, __vector __bool int __b) {
2038 __vector __bool short __ac = (__vector __bool short)__a;
2039 __vector __bool short __bc = (__vector __bool short)__b;
2040 return (__vector __bool short)(
2041 __ac[1], __ac[3], __ac[5], __ac[7],
2042 __bc[1], __bc[3], __bc[5], __bc[7]);
2043 }
2044
2045 static inline __ATTRS_o_ai __vector unsigned short
vec_pack(__vector unsigned int __a,__vector unsigned int __b)2046 vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
2047 __vector unsigned short __ac = (__vector unsigned short)__a;
2048 __vector unsigned short __bc = (__vector unsigned short)__b;
2049 return (__vector unsigned short)(
2050 __ac[1], __ac[3], __ac[5], __ac[7],
2051 __bc[1], __bc[3], __bc[5], __bc[7]);
2052 }
2053
2054 static inline __ATTRS_o_ai __vector signed int
vec_pack(__vector signed long long __a,__vector signed long long __b)2055 vec_pack(__vector signed long long __a, __vector signed long long __b) {
2056 __vector signed int __ac = (__vector signed int)__a;
2057 __vector signed int __bc = (__vector signed int)__b;
2058 return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2059 }
2060
2061 static inline __ATTRS_o_ai __vector __bool int
vec_pack(__vector __bool long long __a,__vector __bool long long __b)2062 vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
2063 __vector __bool int __ac = (__vector __bool int)__a;
2064 __vector __bool int __bc = (__vector __bool int)__b;
2065 return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2066 }
2067
2068 static inline __ATTRS_o_ai __vector unsigned int
vec_pack(__vector unsigned long long __a,__vector unsigned long long __b)2069 vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
2070 __vector unsigned int __ac = (__vector unsigned int)__a;
2071 __vector unsigned int __bc = (__vector unsigned int)__b;
2072 return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2073 }
2074
2075 /*-- vec_packs --------------------------------------------------------------*/
2076
2077 static inline __ATTRS_o_ai __vector signed char
vec_packs(__vector signed short __a,__vector signed short __b)2078 vec_packs(__vector signed short __a, __vector signed short __b) {
2079 return __builtin_s390_vpksh(__a, __b);
2080 }
2081
2082 static inline __ATTRS_o_ai __vector unsigned char
vec_packs(__vector unsigned short __a,__vector unsigned short __b)2083 vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
2084 return __builtin_s390_vpklsh(__a, __b);
2085 }
2086
2087 static inline __ATTRS_o_ai __vector signed short
vec_packs(__vector signed int __a,__vector signed int __b)2088 vec_packs(__vector signed int __a, __vector signed int __b) {
2089 return __builtin_s390_vpksf(__a, __b);
2090 }
2091
2092 static inline __ATTRS_o_ai __vector unsigned short
vec_packs(__vector unsigned int __a,__vector unsigned int __b)2093 vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
2094 return __builtin_s390_vpklsf(__a, __b);
2095 }
2096
2097 static inline __ATTRS_o_ai __vector signed int
vec_packs(__vector signed long long __a,__vector signed long long __b)2098 vec_packs(__vector signed long long __a, __vector signed long long __b) {
2099 return __builtin_s390_vpksg(__a, __b);
2100 }
2101
2102 static inline __ATTRS_o_ai __vector unsigned int
vec_packs(__vector unsigned long long __a,__vector unsigned long long __b)2103 vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
2104 return __builtin_s390_vpklsg(__a, __b);
2105 }
2106
2107 /*-- vec_packs_cc -----------------------------------------------------------*/
2108
2109 static inline __ATTRS_o_ai __vector signed char
vec_packs_cc(__vector signed short __a,__vector signed short __b,int * __cc)2110 vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
2111 return __builtin_s390_vpkshs(__a, __b, __cc);
2112 }
2113
2114 static inline __ATTRS_o_ai __vector unsigned char
vec_packs_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2115 vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
2116 int *__cc) {
2117 return __builtin_s390_vpklshs(__a, __b, __cc);
2118 }
2119
2120 static inline __ATTRS_o_ai __vector signed short
vec_packs_cc(__vector signed int __a,__vector signed int __b,int * __cc)2121 vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
2122 return __builtin_s390_vpksfs(__a, __b, __cc);
2123 }
2124
2125 static inline __ATTRS_o_ai __vector unsigned short
vec_packs_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2126 vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2127 return __builtin_s390_vpklsfs(__a, __b, __cc);
2128 }
2129
2130 static inline __ATTRS_o_ai __vector signed int
vec_packs_cc(__vector signed long long __a,__vector signed long long __b,int * __cc)2131 vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
2132 int *__cc) {
2133 return __builtin_s390_vpksgs(__a, __b, __cc);
2134 }
2135
2136 static inline __ATTRS_o_ai __vector unsigned int
vec_packs_cc(__vector unsigned long long __a,__vector unsigned long long __b,int * __cc)2137 vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2138 int *__cc) {
2139 return __builtin_s390_vpklsgs(__a, __b, __cc);
2140 }
2141
2142 /*-- vec_packsu -------------------------------------------------------------*/
2143
2144 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector signed short __a,__vector signed short __b)2145 vec_packsu(__vector signed short __a, __vector signed short __b) {
2146 const __vector signed short __zero = (__vector signed short)0;
2147 return __builtin_s390_vpklsh(
2148 (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
2149 (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
2150 }
2151
2152 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector unsigned short __a,__vector unsigned short __b)2153 vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
2154 return __builtin_s390_vpklsh(__a, __b);
2155 }
2156
2157 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector signed int __a,__vector signed int __b)2158 vec_packsu(__vector signed int __a, __vector signed int __b) {
2159 const __vector signed int __zero = (__vector signed int)0;
2160 return __builtin_s390_vpklsf(
2161 (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
2162 (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
2163 }
2164
2165 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector unsigned int __a,__vector unsigned int __b)2166 vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
2167 return __builtin_s390_vpklsf(__a, __b);
2168 }
2169
2170 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector signed long long __a,__vector signed long long __b)2171 vec_packsu(__vector signed long long __a, __vector signed long long __b) {
2172 const __vector signed long long __zero = (__vector signed long long)0;
2173 return __builtin_s390_vpklsg(
2174 (__vector unsigned long long)(__a >= __zero) &
2175 (__vector unsigned long long)__a,
2176 (__vector unsigned long long)(__b >= __zero) &
2177 (__vector unsigned long long)__b);
2178 }
2179
2180 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector unsigned long long __a,__vector unsigned long long __b)2181 vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
2182 return __builtin_s390_vpklsg(__a, __b);
2183 }
2184
2185 /*-- vec_packsu_cc ----------------------------------------------------------*/
2186
2187 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2188 vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
2189 int *__cc) {
2190 return __builtin_s390_vpklshs(__a, __b, __cc);
2191 }
2192
2193 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2194 vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2195 return __builtin_s390_vpklsfs(__a, __b, __cc);
2196 }
2197
2198 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu_cc(__vector unsigned long long __a,__vector unsigned long long __b,int * __cc)2199 vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2200 int *__cc) {
2201 return __builtin_s390_vpklsgs(__a, __b, __cc);
2202 }
2203
2204 /*-- vec_unpackh ------------------------------------------------------------*/
2205
2206 static inline __ATTRS_o_ai __vector signed short
vec_unpackh(__vector signed char __a)2207 vec_unpackh(__vector signed char __a) {
2208 return __builtin_s390_vuphb(__a);
2209 }
2210
2211 static inline __ATTRS_o_ai __vector __bool short
vec_unpackh(__vector __bool char __a)2212 vec_unpackh(__vector __bool char __a) {
2213 return ((__vector __bool short)
2214 __builtin_s390_vuphb((__vector signed char)__a));
2215 }
2216
2217 static inline __ATTRS_o_ai __vector unsigned short
vec_unpackh(__vector unsigned char __a)2218 vec_unpackh(__vector unsigned char __a) {
2219 return __builtin_s390_vuplhb(__a);
2220 }
2221
2222 static inline __ATTRS_o_ai __vector signed int
vec_unpackh(__vector signed short __a)2223 vec_unpackh(__vector signed short __a) {
2224 return __builtin_s390_vuphh(__a);
2225 }
2226
2227 static inline __ATTRS_o_ai __vector __bool int
vec_unpackh(__vector __bool short __a)2228 vec_unpackh(__vector __bool short __a) {
2229 return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
2230 }
2231
2232 static inline __ATTRS_o_ai __vector unsigned int
vec_unpackh(__vector unsigned short __a)2233 vec_unpackh(__vector unsigned short __a) {
2234 return __builtin_s390_vuplhh(__a);
2235 }
2236
2237 static inline __ATTRS_o_ai __vector signed long long
vec_unpackh(__vector signed int __a)2238 vec_unpackh(__vector signed int __a) {
2239 return __builtin_s390_vuphf(__a);
2240 }
2241
2242 static inline __ATTRS_o_ai __vector __bool long long
vec_unpackh(__vector __bool int __a)2243 vec_unpackh(__vector __bool int __a) {
2244 return ((__vector __bool long long)
2245 __builtin_s390_vuphf((__vector signed int)__a));
2246 }
2247
2248 static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackh(__vector unsigned int __a)2249 vec_unpackh(__vector unsigned int __a) {
2250 return __builtin_s390_vuplhf(__a);
2251 }
2252
2253 /*-- vec_unpackl ------------------------------------------------------------*/
2254
2255 static inline __ATTRS_o_ai __vector signed short
vec_unpackl(__vector signed char __a)2256 vec_unpackl(__vector signed char __a) {
2257 return __builtin_s390_vuplb(__a);
2258 }
2259
2260 static inline __ATTRS_o_ai __vector __bool short
vec_unpackl(__vector __bool char __a)2261 vec_unpackl(__vector __bool char __a) {
2262 return ((__vector __bool short)
2263 __builtin_s390_vuplb((__vector signed char)__a));
2264 }
2265
2266 static inline __ATTRS_o_ai __vector unsigned short
vec_unpackl(__vector unsigned char __a)2267 vec_unpackl(__vector unsigned char __a) {
2268 return __builtin_s390_vupllb(__a);
2269 }
2270
2271 static inline __ATTRS_o_ai __vector signed int
vec_unpackl(__vector signed short __a)2272 vec_unpackl(__vector signed short __a) {
2273 return __builtin_s390_vuplhw(__a);
2274 }
2275
2276 static inline __ATTRS_o_ai __vector __bool int
vec_unpackl(__vector __bool short __a)2277 vec_unpackl(__vector __bool short __a) {
2278 return ((__vector __bool int)
2279 __builtin_s390_vuplhw((__vector signed short)__a));
2280 }
2281
2282 static inline __ATTRS_o_ai __vector unsigned int
vec_unpackl(__vector unsigned short __a)2283 vec_unpackl(__vector unsigned short __a) {
2284 return __builtin_s390_vupllh(__a);
2285 }
2286
2287 static inline __ATTRS_o_ai __vector signed long long
vec_unpackl(__vector signed int __a)2288 vec_unpackl(__vector signed int __a) {
2289 return __builtin_s390_vuplf(__a);
2290 }
2291
2292 static inline __ATTRS_o_ai __vector __bool long long
vec_unpackl(__vector __bool int __a)2293 vec_unpackl(__vector __bool int __a) {
2294 return ((__vector __bool long long)
2295 __builtin_s390_vuplf((__vector signed int)__a));
2296 }
2297
2298 static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackl(__vector unsigned int __a)2299 vec_unpackl(__vector unsigned int __a) {
2300 return __builtin_s390_vupllf(__a);
2301 }
2302
2303 /*-- vec_cmpeq --------------------------------------------------------------*/
2304
2305 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector __bool char __a,__vector __bool char __b)2306 vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
2307 return (__vector __bool char)(__a == __b);
2308 }
2309
2310 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector signed char __a,__vector signed char __b)2311 vec_cmpeq(__vector signed char __a, __vector signed char __b) {
2312 return (__vector __bool char)(__a == __b);
2313 }
2314
2315 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector unsigned char __a,__vector unsigned char __b)2316 vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
2317 return (__vector __bool char)(__a == __b);
2318 }
2319
2320 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector __bool short __a,__vector __bool short __b)2321 vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
2322 return (__vector __bool short)(__a == __b);
2323 }
2324
2325 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector signed short __a,__vector signed short __b)2326 vec_cmpeq(__vector signed short __a, __vector signed short __b) {
2327 return (__vector __bool short)(__a == __b);
2328 }
2329
2330 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector unsigned short __a,__vector unsigned short __b)2331 vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
2332 return (__vector __bool short)(__a == __b);
2333 }
2334
2335 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector __bool int __a,__vector __bool int __b)2336 vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
2337 return (__vector __bool int)(__a == __b);
2338 }
2339
2340 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector signed int __a,__vector signed int __b)2341 vec_cmpeq(__vector signed int __a, __vector signed int __b) {
2342 return (__vector __bool int)(__a == __b);
2343 }
2344
2345 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector unsigned int __a,__vector unsigned int __b)2346 vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
2347 return (__vector __bool int)(__a == __b);
2348 }
2349
2350 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector __bool long long __a,__vector __bool long long __b)2351 vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
2352 return (__vector __bool long long)(__a == __b);
2353 }
2354
2355 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector signed long long __a,__vector signed long long __b)2356 vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
2357 return (__vector __bool long long)(__a == __b);
2358 }
2359
2360 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector unsigned long long __a,__vector unsigned long long __b)2361 vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
2362 return (__vector __bool long long)(__a == __b);
2363 }
2364
2365 #if __ARCH__ >= 12
2366 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector float __a,__vector float __b)2367 vec_cmpeq(__vector float __a, __vector float __b) {
2368 return (__vector __bool int)(__a == __b);
2369 }
2370 #endif
2371
2372 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector double __a,__vector double __b)2373 vec_cmpeq(__vector double __a, __vector double __b) {
2374 return (__vector __bool long long)(__a == __b);
2375 }
2376
2377 /*-- vec_cmpge --------------------------------------------------------------*/
2378
2379 static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector signed char __a,__vector signed char __b)2380 vec_cmpge(__vector signed char __a, __vector signed char __b) {
2381 return (__vector __bool char)(__a >= __b);
2382 }
2383
2384 static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector unsigned char __a,__vector unsigned char __b)2385 vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
2386 return (__vector __bool char)(__a >= __b);
2387 }
2388
2389 static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector signed short __a,__vector signed short __b)2390 vec_cmpge(__vector signed short __a, __vector signed short __b) {
2391 return (__vector __bool short)(__a >= __b);
2392 }
2393
2394 static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector unsigned short __a,__vector unsigned short __b)2395 vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
2396 return (__vector __bool short)(__a >= __b);
2397 }
2398
2399 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector signed int __a,__vector signed int __b)2400 vec_cmpge(__vector signed int __a, __vector signed int __b) {
2401 return (__vector __bool int)(__a >= __b);
2402 }
2403
2404 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector unsigned int __a,__vector unsigned int __b)2405 vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
2406 return (__vector __bool int)(__a >= __b);
2407 }
2408
2409 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector signed long long __a,__vector signed long long __b)2410 vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
2411 return (__vector __bool long long)(__a >= __b);
2412 }
2413
2414 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector unsigned long long __a,__vector unsigned long long __b)2415 vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
2416 return (__vector __bool long long)(__a >= __b);
2417 }
2418
2419 #if __ARCH__ >= 12
2420 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector float __a,__vector float __b)2421 vec_cmpge(__vector float __a, __vector float __b) {
2422 return (__vector __bool int)(__a >= __b);
2423 }
2424 #endif
2425
2426 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector double __a,__vector double __b)2427 vec_cmpge(__vector double __a, __vector double __b) {
2428 return (__vector __bool long long)(__a >= __b);
2429 }
2430
2431 /*-- vec_cmpgt --------------------------------------------------------------*/
2432
2433 static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector signed char __a,__vector signed char __b)2434 vec_cmpgt(__vector signed char __a, __vector signed char __b) {
2435 return (__vector __bool char)(__a > __b);
2436 }
2437
2438 static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector unsigned char __a,__vector unsigned char __b)2439 vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
2440 return (__vector __bool char)(__a > __b);
2441 }
2442
2443 static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector signed short __a,__vector signed short __b)2444 vec_cmpgt(__vector signed short __a, __vector signed short __b) {
2445 return (__vector __bool short)(__a > __b);
2446 }
2447
2448 static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector unsigned short __a,__vector unsigned short __b)2449 vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
2450 return (__vector __bool short)(__a > __b);
2451 }
2452
2453 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector signed int __a,__vector signed int __b)2454 vec_cmpgt(__vector signed int __a, __vector signed int __b) {
2455 return (__vector __bool int)(__a > __b);
2456 }
2457
2458 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector unsigned int __a,__vector unsigned int __b)2459 vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
2460 return (__vector __bool int)(__a > __b);
2461 }
2462
2463 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector signed long long __a,__vector signed long long __b)2464 vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
2465 return (__vector __bool long long)(__a > __b);
2466 }
2467
2468 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector unsigned long long __a,__vector unsigned long long __b)2469 vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
2470 return (__vector __bool long long)(__a > __b);
2471 }
2472
2473 #if __ARCH__ >= 12
2474 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector float __a,__vector float __b)2475 vec_cmpgt(__vector float __a, __vector float __b) {
2476 return (__vector __bool int)(__a > __b);
2477 }
2478 #endif
2479
2480 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector double __a,__vector double __b)2481 vec_cmpgt(__vector double __a, __vector double __b) {
2482 return (__vector __bool long long)(__a > __b);
2483 }
2484
2485 /*-- vec_cmple --------------------------------------------------------------*/
2486
2487 static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector signed char __a,__vector signed char __b)2488 vec_cmple(__vector signed char __a, __vector signed char __b) {
2489 return (__vector __bool char)(__a <= __b);
2490 }
2491
2492 static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector unsigned char __a,__vector unsigned char __b)2493 vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
2494 return (__vector __bool char)(__a <= __b);
2495 }
2496
2497 static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector signed short __a,__vector signed short __b)2498 vec_cmple(__vector signed short __a, __vector signed short __b) {
2499 return (__vector __bool short)(__a <= __b);
2500 }
2501
2502 static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector unsigned short __a,__vector unsigned short __b)2503 vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
2504 return (__vector __bool short)(__a <= __b);
2505 }
2506
2507 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector signed int __a,__vector signed int __b)2508 vec_cmple(__vector signed int __a, __vector signed int __b) {
2509 return (__vector __bool int)(__a <= __b);
2510 }
2511
2512 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector unsigned int __a,__vector unsigned int __b)2513 vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
2514 return (__vector __bool int)(__a <= __b);
2515 }
2516
2517 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector signed long long __a,__vector signed long long __b)2518 vec_cmple(__vector signed long long __a, __vector signed long long __b) {
2519 return (__vector __bool long long)(__a <= __b);
2520 }
2521
2522 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector unsigned long long __a,__vector unsigned long long __b)2523 vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
2524 return (__vector __bool long long)(__a <= __b);
2525 }
2526
2527 #if __ARCH__ >= 12
2528 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector float __a,__vector float __b)2529 vec_cmple(__vector float __a, __vector float __b) {
2530 return (__vector __bool int)(__a <= __b);
2531 }
2532 #endif
2533
2534 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector double __a,__vector double __b)2535 vec_cmple(__vector double __a, __vector double __b) {
2536 return (__vector __bool long long)(__a <= __b);
2537 }
2538
2539 /*-- vec_cmplt --------------------------------------------------------------*/
2540
2541 static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector signed char __a,__vector signed char __b)2542 vec_cmplt(__vector signed char __a, __vector signed char __b) {
2543 return (__vector __bool char)(__a < __b);
2544 }
2545
2546 static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector unsigned char __a,__vector unsigned char __b)2547 vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
2548 return (__vector __bool char)(__a < __b);
2549 }
2550
2551 static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector signed short __a,__vector signed short __b)2552 vec_cmplt(__vector signed short __a, __vector signed short __b) {
2553 return (__vector __bool short)(__a < __b);
2554 }
2555
2556 static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector unsigned short __a,__vector unsigned short __b)2557 vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
2558 return (__vector __bool short)(__a < __b);
2559 }
2560
2561 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector signed int __a,__vector signed int __b)2562 vec_cmplt(__vector signed int __a, __vector signed int __b) {
2563 return (__vector __bool int)(__a < __b);
2564 }
2565
2566 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector unsigned int __a,__vector unsigned int __b)2567 vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
2568 return (__vector __bool int)(__a < __b);
2569 }
2570
2571 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector signed long long __a,__vector signed long long __b)2572 vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
2573 return (__vector __bool long long)(__a < __b);
2574 }
2575
2576 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector unsigned long long __a,__vector unsigned long long __b)2577 vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
2578 return (__vector __bool long long)(__a < __b);
2579 }
2580
2581 #if __ARCH__ >= 12
2582 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector float __a,__vector float __b)2583 vec_cmplt(__vector float __a, __vector float __b) {
2584 return (__vector __bool int)(__a < __b);
2585 }
2586 #endif
2587
2588 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector double __a,__vector double __b)2589 vec_cmplt(__vector double __a, __vector double __b) {
2590 return (__vector __bool long long)(__a < __b);
2591 }
2592
2593 /*-- vec_all_eq -------------------------------------------------------------*/
2594
2595 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector signed char __b)2596 vec_all_eq(__vector signed char __a, __vector signed char __b) {
2597 int __cc;
2598 __builtin_s390_vceqbs(__a, __b, &__cc);
2599 return __cc == 0;
2600 }
2601
2602 // This prototype is deprecated.
2603 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector __bool char __b)2604 vec_all_eq(__vector signed char __a, __vector __bool char __b) {
2605 int __cc;
2606 __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
2607 return __cc == 0;
2608 }
2609
2610 // This prototype is deprecated.
2611 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector signed char __b)2612 vec_all_eq(__vector __bool char __a, __vector signed char __b) {
2613 int __cc;
2614 __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
2615 return __cc == 0;
2616 }
2617
2618 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector unsigned char __b)2619 vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
2620 int __cc;
2621 __builtin_s390_vceqbs((__vector signed char)__a,
2622 (__vector signed char)__b, &__cc);
2623 return __cc == 0;
2624 }
2625
2626 // This prototype is deprecated.
2627 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector __bool char __b)2628 vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
2629 int __cc;
2630 __builtin_s390_vceqbs((__vector signed char)__a,
2631 (__vector signed char)__b, &__cc);
2632 return __cc == 0;
2633 }
2634
2635 // This prototype is deprecated.
2636 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector unsigned char __b)2637 vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
2638 int __cc;
2639 __builtin_s390_vceqbs((__vector signed char)__a,
2640 (__vector signed char)__b, &__cc);
2641 return __cc == 0;
2642 }
2643
2644 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector __bool char __b)2645 vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
2646 int __cc;
2647 __builtin_s390_vceqbs((__vector signed char)__a,
2648 (__vector signed char)__b, &__cc);
2649 return __cc == 0;
2650 }
2651
2652 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector signed short __b)2653 vec_all_eq(__vector signed short __a, __vector signed short __b) {
2654 int __cc;
2655 __builtin_s390_vceqhs(__a, __b, &__cc);
2656 return __cc == 0;
2657 }
2658
2659 // This prototype is deprecated.
2660 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector __bool short __b)2661 vec_all_eq(__vector signed short __a, __vector __bool short __b) {
2662 int __cc;
2663 __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
2664 return __cc == 0;
2665 }
2666
2667 // This prototype is deprecated.
2668 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector signed short __b)2669 vec_all_eq(__vector __bool short __a, __vector signed short __b) {
2670 int __cc;
2671 __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
2672 return __cc == 0;
2673 }
2674
2675 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector unsigned short __b)2676 vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
2677 int __cc;
2678 __builtin_s390_vceqhs((__vector signed short)__a,
2679 (__vector signed short)__b, &__cc);
2680 return __cc == 0;
2681 }
2682
2683 // This prototype is deprecated.
2684 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector __bool short __b)2685 vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
2686 int __cc;
2687 __builtin_s390_vceqhs((__vector signed short)__a,
2688 (__vector signed short)__b, &__cc);
2689 return __cc == 0;
2690 }
2691
2692 // This prototype is deprecated.
2693 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector unsigned short __b)2694 vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
2695 int __cc;
2696 __builtin_s390_vceqhs((__vector signed short)__a,
2697 (__vector signed short)__b, &__cc);
2698 return __cc == 0;
2699 }
2700
2701 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector __bool short __b)2702 vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
2703 int __cc;
2704 __builtin_s390_vceqhs((__vector signed short)__a,
2705 (__vector signed short)__b, &__cc);
2706 return __cc == 0;
2707 }
2708
2709 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector signed int __b)2710 vec_all_eq(__vector signed int __a, __vector signed int __b) {
2711 int __cc;
2712 __builtin_s390_vceqfs(__a, __b, &__cc);
2713 return __cc == 0;
2714 }
2715
2716 // This prototype is deprecated.
2717 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector __bool int __b)2718 vec_all_eq(__vector signed int __a, __vector __bool int __b) {
2719 int __cc;
2720 __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
2721 return __cc == 0;
2722 }
2723
2724 // This prototype is deprecated.
2725 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector signed int __b)2726 vec_all_eq(__vector __bool int __a, __vector signed int __b) {
2727 int __cc;
2728 __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
2729 return __cc == 0;
2730 }
2731
2732 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector unsigned int __b)2733 vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
2734 int __cc;
2735 __builtin_s390_vceqfs((__vector signed int)__a,
2736 (__vector signed int)__b, &__cc);
2737 return __cc == 0;
2738 }
2739
2740 // This prototype is deprecated.
2741 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector __bool int __b)2742 vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
2743 int __cc;
2744 __builtin_s390_vceqfs((__vector signed int)__a,
2745 (__vector signed int)__b, &__cc);
2746 return __cc == 0;
2747 }
2748
2749 // This prototype is deprecated.
2750 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector unsigned int __b)2751 vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
2752 int __cc;
2753 __builtin_s390_vceqfs((__vector signed int)__a,
2754 (__vector signed int)__b, &__cc);
2755 return __cc == 0;
2756 }
2757
2758 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector __bool int __b)2759 vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
2760 int __cc;
2761 __builtin_s390_vceqfs((__vector signed int)__a,
2762 (__vector signed int)__b, &__cc);
2763 return __cc == 0;
2764 }
2765
2766 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector signed long long __b)2767 vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
2768 int __cc;
2769 __builtin_s390_vceqgs(__a, __b, &__cc);
2770 return __cc == 0;
2771 }
2772
2773 // This prototype is deprecated.
2774 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector __bool long long __b)2775 vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
2776 int __cc;
2777 __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
2778 return __cc == 0;
2779 }
2780
2781 // This prototype is deprecated.
2782 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector signed long long __b)2783 vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
2784 int __cc;
2785 __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
2786 return __cc == 0;
2787 }
2788
2789 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector unsigned long long __b)2790 vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
2791 int __cc;
2792 __builtin_s390_vceqgs((__vector signed long long)__a,
2793 (__vector signed long long)__b, &__cc);
2794 return __cc == 0;
2795 }
2796
2797 // This prototype is deprecated.
2798 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector __bool long long __b)2799 vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
2800 int __cc;
2801 __builtin_s390_vceqgs((__vector signed long long)__a,
2802 (__vector signed long long)__b, &__cc);
2803 return __cc == 0;
2804 }
2805
2806 // This prototype is deprecated.
2807 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector unsigned long long __b)2808 vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
2809 int __cc;
2810 __builtin_s390_vceqgs((__vector signed long long)__a,
2811 (__vector signed long long)__b, &__cc);
2812 return __cc == 0;
2813 }
2814
2815 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector __bool long long __b)2816 vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
2817 int __cc;
2818 __builtin_s390_vceqgs((__vector signed long long)__a,
2819 (__vector signed long long)__b, &__cc);
2820 return __cc == 0;
2821 }
2822
2823 #if __ARCH__ >= 12
2824 static inline __ATTRS_o_ai int
vec_all_eq(__vector float __a,__vector float __b)2825 vec_all_eq(__vector float __a, __vector float __b) {
2826 int __cc;
2827 __builtin_s390_vfcesbs(__a, __b, &__cc);
2828 return __cc == 0;
2829 }
2830 #endif
2831
2832 static inline __ATTRS_o_ai int
vec_all_eq(__vector double __a,__vector double __b)2833 vec_all_eq(__vector double __a, __vector double __b) {
2834 int __cc;
2835 __builtin_s390_vfcedbs(__a, __b, &__cc);
2836 return __cc == 0;
2837 }
2838
2839 /*-- vec_all_ne -------------------------------------------------------------*/
2840
2841 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector signed char __b)2842 vec_all_ne(__vector signed char __a, __vector signed char __b) {
2843 int __cc;
2844 __builtin_s390_vceqbs(__a, __b, &__cc);
2845 return __cc == 3;
2846 }
2847
2848 // This prototype is deprecated.
2849 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector __bool char __b)2850 vec_all_ne(__vector signed char __a, __vector __bool char __b) {
2851 int __cc;
2852 __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
2853 return __cc == 3;
2854 }
2855
2856 // This prototype is deprecated.
2857 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector signed char __b)2858 vec_all_ne(__vector __bool char __a, __vector signed char __b) {
2859 int __cc;
2860 __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
2861 return __cc == 3;
2862 }
2863
2864 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector unsigned char __b)2865 vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
2866 int __cc;
2867 __builtin_s390_vceqbs((__vector signed char)__a,
2868 (__vector signed char)__b, &__cc);
2869 return __cc == 3;
2870 }
2871
2872 // This prototype is deprecated.
2873 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector __bool char __b)2874 vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
2875 int __cc;
2876 __builtin_s390_vceqbs((__vector signed char)__a,
2877 (__vector signed char)__b, &__cc);
2878 return __cc == 3;
2879 }
2880
2881 // This prototype is deprecated.
2882 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector unsigned char __b)2883 vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
2884 int __cc;
2885 __builtin_s390_vceqbs((__vector signed char)__a,
2886 (__vector signed char)__b, &__cc);
2887 return __cc == 3;
2888 }
2889
2890 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector __bool char __b)2891 vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
2892 int __cc;
2893 __builtin_s390_vceqbs((__vector signed char)__a,
2894 (__vector signed char)__b, &__cc);
2895 return __cc == 3;
2896 }
2897
2898 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector signed short __b)2899 vec_all_ne(__vector signed short __a, __vector signed short __b) {
2900 int __cc;
2901 __builtin_s390_vceqhs(__a, __b, &__cc);
2902 return __cc == 3;
2903 }
2904
2905 // This prototype is deprecated.
2906 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector __bool short __b)2907 vec_all_ne(__vector signed short __a, __vector __bool short __b) {
2908 int __cc;
2909 __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
2910 return __cc == 3;
2911 }
2912
2913 // This prototype is deprecated.
2914 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector signed short __b)2915 vec_all_ne(__vector __bool short __a, __vector signed short __b) {
2916 int __cc;
2917 __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
2918 return __cc == 3;
2919 }
2920
2921 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector unsigned short __b)2922 vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
2923 int __cc;
2924 __builtin_s390_vceqhs((__vector signed short)__a,
2925 (__vector signed short)__b, &__cc);
2926 return __cc == 3;
2927 }
2928
2929 // This prototype is deprecated.
2930 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector __bool short __b)2931 vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
2932 int __cc;
2933 __builtin_s390_vceqhs((__vector signed short)__a,
2934 (__vector signed short)__b, &__cc);
2935 return __cc == 3;
2936 }
2937
2938 // This prototype is deprecated.
2939 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector unsigned short __b)2940 vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
2941 int __cc;
2942 __builtin_s390_vceqhs((__vector signed short)__a,
2943 (__vector signed short)__b, &__cc);
2944 return __cc == 3;
2945 }
2946
2947 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector __bool short __b)2948 vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
2949 int __cc;
2950 __builtin_s390_vceqhs((__vector signed short)__a,
2951 (__vector signed short)__b, &__cc);
2952 return __cc == 3;
2953 }
2954
2955 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector signed int __b)2956 vec_all_ne(__vector signed int __a, __vector signed int __b) {
2957 int __cc;
2958 __builtin_s390_vceqfs(__a, __b, &__cc);
2959 return __cc == 3;
2960 }
2961
2962 // This prototype is deprecated.
2963 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector __bool int __b)2964 vec_all_ne(__vector signed int __a, __vector __bool int __b) {
2965 int __cc;
2966 __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
2967 return __cc == 3;
2968 }
2969
2970 // This prototype is deprecated.
2971 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector signed int __b)2972 vec_all_ne(__vector __bool int __a, __vector signed int __b) {
2973 int __cc;
2974 __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
2975 return __cc == 3;
2976 }
2977
2978 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector unsigned int __b)2979 vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
2980 int __cc;
2981 __builtin_s390_vceqfs((__vector signed int)__a,
2982 (__vector signed int)__b, &__cc);
2983 return __cc == 3;
2984 }
2985
2986 // This prototype is deprecated.
2987 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector __bool int __b)2988 vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
2989 int __cc;
2990 __builtin_s390_vceqfs((__vector signed int)__a,
2991 (__vector signed int)__b, &__cc);
2992 return __cc == 3;
2993 }
2994
2995 // This prototype is deprecated.
2996 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector unsigned int __b)2997 vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
2998 int __cc;
2999 __builtin_s390_vceqfs((__vector signed int)__a,
3000 (__vector signed int)__b, &__cc);
3001 return __cc == 3;
3002 }
3003
3004 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector __bool int __b)3005 vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
3006 int __cc;
3007 __builtin_s390_vceqfs((__vector signed int)__a,
3008 (__vector signed int)__b, &__cc);
3009 return __cc == 3;
3010 }
3011
3012 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector signed long long __b)3013 vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
3014 int __cc;
3015 __builtin_s390_vceqgs(__a, __b, &__cc);
3016 return __cc == 3;
3017 }
3018
3019 // This prototype is deprecated.
3020 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector __bool long long __b)3021 vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
3022 int __cc;
3023 __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
3024 return __cc == 3;
3025 }
3026
3027 // This prototype is deprecated.
3028 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector signed long long __b)3029 vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
3030 int __cc;
3031 __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
3032 return __cc == 3;
3033 }
3034
3035 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector unsigned long long __b)3036 vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
3037 int __cc;
3038 __builtin_s390_vceqgs((__vector signed long long)__a,
3039 (__vector signed long long)__b, &__cc);
3040 return __cc == 3;
3041 }
3042
3043 // This prototype is deprecated.
3044 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector __bool long long __b)3045 vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
3046 int __cc;
3047 __builtin_s390_vceqgs((__vector signed long long)__a,
3048 (__vector signed long long)__b, &__cc);
3049 return __cc == 3;
3050 }
3051
3052 // This prototype is deprecated.
3053 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector unsigned long long __b)3054 vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
3055 int __cc;
3056 __builtin_s390_vceqgs((__vector signed long long)__a,
3057 (__vector signed long long)__b, &__cc);
3058 return __cc == 3;
3059 }
3060
3061 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector __bool long long __b)3062 vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
3063 int __cc;
3064 __builtin_s390_vceqgs((__vector signed long long)__a,
3065 (__vector signed long long)__b, &__cc);
3066 return __cc == 3;
3067 }
3068
3069 #if __ARCH__ >= 12
3070 static inline __ATTRS_o_ai int
vec_all_ne(__vector float __a,__vector float __b)3071 vec_all_ne(__vector float __a, __vector float __b) {
3072 int __cc;
3073 __builtin_s390_vfcesbs(__a, __b, &__cc);
3074 return __cc == 3;
3075 }
3076 #endif
3077
3078 static inline __ATTRS_o_ai int
vec_all_ne(__vector double __a,__vector double __b)3079 vec_all_ne(__vector double __a, __vector double __b) {
3080 int __cc;
3081 __builtin_s390_vfcedbs(__a, __b, &__cc);
3082 return __cc == 3;
3083 }
3084
3085 /*-- vec_all_ge -------------------------------------------------------------*/
3086
3087 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector signed char __b)3088 vec_all_ge(__vector signed char __a, __vector signed char __b) {
3089 int __cc;
3090 __builtin_s390_vchbs(__b, __a, &__cc);
3091 return __cc == 3;
3092 }
3093
3094 // This prototype is deprecated.
3095 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector __bool char __b)3096 vec_all_ge(__vector signed char __a, __vector __bool char __b) {
3097 int __cc;
3098 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3099 return __cc == 3;
3100 }
3101
3102 // This prototype is deprecated.
3103 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector signed char __b)3104 vec_all_ge(__vector __bool char __a, __vector signed char __b) {
3105 int __cc;
3106 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3107 return __cc == 3;
3108 }
3109
3110 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector unsigned char __b)3111 vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
3112 int __cc;
3113 __builtin_s390_vchlbs(__b, __a, &__cc);
3114 return __cc == 3;
3115 }
3116
3117 // This prototype is deprecated.
3118 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector __bool char __b)3119 vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
3120 int __cc;
3121 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3122 return __cc == 3;
3123 }
3124
3125 // This prototype is deprecated.
3126 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector unsigned char __b)3127 vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
3128 int __cc;
3129 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3130 return __cc == 3;
3131 }
3132
3133 // This prototype is deprecated.
3134 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector __bool char __b)3135 vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
3136 int __cc;
3137 __builtin_s390_vchlbs((__vector unsigned char)__b,
3138 (__vector unsigned char)__a, &__cc);
3139 return __cc == 3;
3140 }
3141
3142 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector signed short __b)3143 vec_all_ge(__vector signed short __a, __vector signed short __b) {
3144 int __cc;
3145 __builtin_s390_vchhs(__b, __a, &__cc);
3146 return __cc == 3;
3147 }
3148
3149 // This prototype is deprecated.
3150 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector __bool short __b)3151 vec_all_ge(__vector signed short __a, __vector __bool short __b) {
3152 int __cc;
3153 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3154 return __cc == 3;
3155 }
3156
3157 // This prototype is deprecated.
3158 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector signed short __b)3159 vec_all_ge(__vector __bool short __a, __vector signed short __b) {
3160 int __cc;
3161 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3162 return __cc == 3;
3163 }
3164
3165 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector unsigned short __b)3166 vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
3167 int __cc;
3168 __builtin_s390_vchlhs(__b, __a, &__cc);
3169 return __cc == 3;
3170 }
3171
3172 // This prototype is deprecated.
3173 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector __bool short __b)3174 vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
3175 int __cc;
3176 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3177 return __cc == 3;
3178 }
3179
3180 // This prototype is deprecated.
3181 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector unsigned short __b)3182 vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
3183 int __cc;
3184 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3185 return __cc == 3;
3186 }
3187
3188 // This prototype is deprecated.
3189 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector __bool short __b)3190 vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
3191 int __cc;
3192 __builtin_s390_vchlhs((__vector unsigned short)__b,
3193 (__vector unsigned short)__a, &__cc);
3194 return __cc == 3;
3195 }
3196
3197 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector signed int __b)3198 vec_all_ge(__vector signed int __a, __vector signed int __b) {
3199 int __cc;
3200 __builtin_s390_vchfs(__b, __a, &__cc);
3201 return __cc == 3;
3202 }
3203
3204 // This prototype is deprecated.
3205 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector __bool int __b)3206 vec_all_ge(__vector signed int __a, __vector __bool int __b) {
3207 int __cc;
3208 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3209 return __cc == 3;
3210 }
3211
3212 // This prototype is deprecated.
3213 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector signed int __b)3214 vec_all_ge(__vector __bool int __a, __vector signed int __b) {
3215 int __cc;
3216 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3217 return __cc == 3;
3218 }
3219
3220 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector unsigned int __b)3221 vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
3222 int __cc;
3223 __builtin_s390_vchlfs(__b, __a, &__cc);
3224 return __cc == 3;
3225 }
3226
3227 // This prototype is deprecated.
3228 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector __bool int __b)3229 vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
3230 int __cc;
3231 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3232 return __cc == 3;
3233 }
3234
3235 // This prototype is deprecated.
3236 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector unsigned int __b)3237 vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
3238 int __cc;
3239 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3240 return __cc == 3;
3241 }
3242
3243 // This prototype is deprecated.
3244 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector __bool int __b)3245 vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
3246 int __cc;
3247 __builtin_s390_vchlfs((__vector unsigned int)__b,
3248 (__vector unsigned int)__a, &__cc);
3249 return __cc == 3;
3250 }
3251
3252 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector signed long long __b)3253 vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
3254 int __cc;
3255 __builtin_s390_vchgs(__b, __a, &__cc);
3256 return __cc == 3;
3257 }
3258
3259 // This prototype is deprecated.
3260 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector __bool long long __b)3261 vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
3262 int __cc;
3263 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3264 return __cc == 3;
3265 }
3266
3267 // This prototype is deprecated.
3268 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector signed long long __b)3269 vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
3270 int __cc;
3271 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3272 return __cc == 3;
3273 }
3274
3275 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector unsigned long long __b)3276 vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
3277 int __cc;
3278 __builtin_s390_vchlgs(__b, __a, &__cc);
3279 return __cc == 3;
3280 }
3281
3282 // This prototype is deprecated.
3283 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector __bool long long __b)3284 vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
3285 int __cc;
3286 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
3287 return __cc == 3;
3288 }
3289
3290 // This prototype is deprecated.
3291 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector unsigned long long __b)3292 vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
3293 int __cc;
3294 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
3295 return __cc == 3;
3296 }
3297
3298 // This prototype is deprecated.
3299 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector __bool long long __b)3300 vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
3301 int __cc;
3302 __builtin_s390_vchlgs((__vector unsigned long long)__b,
3303 (__vector unsigned long long)__a, &__cc);
3304 return __cc == 3;
3305 }
3306
3307 #if __ARCH__ >= 12
3308 static inline __ATTRS_o_ai int
vec_all_ge(__vector float __a,__vector float __b)3309 vec_all_ge(__vector float __a, __vector float __b) {
3310 int __cc;
3311 __builtin_s390_vfchesbs(__a, __b, &__cc);
3312 return __cc == 0;
3313 }
3314 #endif
3315
3316 static inline __ATTRS_o_ai int
vec_all_ge(__vector double __a,__vector double __b)3317 vec_all_ge(__vector double __a, __vector double __b) {
3318 int __cc;
3319 __builtin_s390_vfchedbs(__a, __b, &__cc);
3320 return __cc == 0;
3321 }
3322
3323 /*-- vec_all_gt -------------------------------------------------------------*/
3324
3325 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector signed char __b)3326 vec_all_gt(__vector signed char __a, __vector signed char __b) {
3327 int __cc;
3328 __builtin_s390_vchbs(__a, __b, &__cc);
3329 return __cc == 0;
3330 }
3331
3332 // This prototype is deprecated.
3333 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector __bool char __b)3334 vec_all_gt(__vector signed char __a, __vector __bool char __b) {
3335 int __cc;
3336 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3337 return __cc == 0;
3338 }
3339
3340 // This prototype is deprecated.
3341 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector signed char __b)3342 vec_all_gt(__vector __bool char __a, __vector signed char __b) {
3343 int __cc;
3344 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3345 return __cc == 0;
3346 }
3347
3348 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector unsigned char __b)3349 vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
3350 int __cc;
3351 __builtin_s390_vchlbs(__a, __b, &__cc);
3352 return __cc == 0;
3353 }
3354
3355 // This prototype is deprecated.
3356 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector __bool char __b)3357 vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
3358 int __cc;
3359 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3360 return __cc == 0;
3361 }
3362
3363 // This prototype is deprecated.
3364 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector unsigned char __b)3365 vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
3366 int __cc;
3367 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3368 return __cc == 0;
3369 }
3370
3371 // This prototype is deprecated.
3372 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector __bool char __b)3373 vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
3374 int __cc;
3375 __builtin_s390_vchlbs((__vector unsigned char)__a,
3376 (__vector unsigned char)__b, &__cc);
3377 return __cc == 0;
3378 }
3379
3380 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector signed short __b)3381 vec_all_gt(__vector signed short __a, __vector signed short __b) {
3382 int __cc;
3383 __builtin_s390_vchhs(__a, __b, &__cc);
3384 return __cc == 0;
3385 }
3386
3387 // This prototype is deprecated.
3388 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector __bool short __b)3389 vec_all_gt(__vector signed short __a, __vector __bool short __b) {
3390 int __cc;
3391 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3392 return __cc == 0;
3393 }
3394
3395 // This prototype is deprecated.
3396 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector signed short __b)3397 vec_all_gt(__vector __bool short __a, __vector signed short __b) {
3398 int __cc;
3399 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3400 return __cc == 0;
3401 }
3402
3403 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector unsigned short __b)3404 vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
3405 int __cc;
3406 __builtin_s390_vchlhs(__a, __b, &__cc);
3407 return __cc == 0;
3408 }
3409
3410 // This prototype is deprecated.
3411 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector __bool short __b)3412 vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
3413 int __cc;
3414 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3415 return __cc == 0;
3416 }
3417
3418 // This prototype is deprecated.
3419 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector unsigned short __b)3420 vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
3421 int __cc;
3422 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3423 return __cc == 0;
3424 }
3425
3426 // This prototype is deprecated.
3427 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector __bool short __b)3428 vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
3429 int __cc;
3430 __builtin_s390_vchlhs((__vector unsigned short)__a,
3431 (__vector unsigned short)__b, &__cc);
3432 return __cc == 0;
3433 }
3434
3435 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector signed int __b)3436 vec_all_gt(__vector signed int __a, __vector signed int __b) {
3437 int __cc;
3438 __builtin_s390_vchfs(__a, __b, &__cc);
3439 return __cc == 0;
3440 }
3441
3442 // This prototype is deprecated.
3443 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector __bool int __b)3444 vec_all_gt(__vector signed int __a, __vector __bool int __b) {
3445 int __cc;
3446 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3447 return __cc == 0;
3448 }
3449
3450 // This prototype is deprecated.
3451 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector signed int __b)3452 vec_all_gt(__vector __bool int __a, __vector signed int __b) {
3453 int __cc;
3454 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3455 return __cc == 0;
3456 }
3457
3458 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector unsigned int __b)3459 vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
3460 int __cc;
3461 __builtin_s390_vchlfs(__a, __b, &__cc);
3462 return __cc == 0;
3463 }
3464
3465 // This prototype is deprecated.
3466 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector __bool int __b)3467 vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
3468 int __cc;
3469 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3470 return __cc == 0;
3471 }
3472
3473 // This prototype is deprecated.
3474 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector unsigned int __b)3475 vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
3476 int __cc;
3477 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3478 return __cc == 0;
3479 }
3480
3481 // This prototype is deprecated.
3482 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector __bool int __b)3483 vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
3484 int __cc;
3485 __builtin_s390_vchlfs((__vector unsigned int)__a,
3486 (__vector unsigned int)__b, &__cc);
3487 return __cc == 0;
3488 }
3489
3490 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector signed long long __b)3491 vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
3492 int __cc;
3493 __builtin_s390_vchgs(__a, __b, &__cc);
3494 return __cc == 0;
3495 }
3496
3497 // This prototype is deprecated.
3498 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector __bool long long __b)3499 vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
3500 int __cc;
3501 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3502 return __cc == 0;
3503 }
3504
3505 // This prototype is deprecated.
3506 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector signed long long __b)3507 vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
3508 int __cc;
3509 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3510 return __cc == 0;
3511 }
3512
3513 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector unsigned long long __b)3514 vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
3515 int __cc;
3516 __builtin_s390_vchlgs(__a, __b, &__cc);
3517 return __cc == 0;
3518 }
3519
3520 // This prototype is deprecated.
3521 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector __bool long long __b)3522 vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
3523 int __cc;
3524 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3525 return __cc == 0;
3526 }
3527
3528 // This prototype is deprecated.
3529 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector unsigned long long __b)3530 vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
3531 int __cc;
3532 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3533 return __cc == 0;
3534 }
3535
3536 // This prototype is deprecated.
3537 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector __bool long long __b)3538 vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
3539 int __cc;
3540 __builtin_s390_vchlgs((__vector unsigned long long)__a,
3541 (__vector unsigned long long)__b, &__cc);
3542 return __cc == 0;
3543 }
3544
3545 #if __ARCH__ >= 12
3546 static inline __ATTRS_o_ai int
vec_all_gt(__vector float __a,__vector float __b)3547 vec_all_gt(__vector float __a, __vector float __b) {
3548 int __cc;
3549 __builtin_s390_vfchsbs(__a, __b, &__cc);
3550 return __cc == 0;
3551 }
3552 #endif
3553
3554 static inline __ATTRS_o_ai int
vec_all_gt(__vector double __a,__vector double __b)3555 vec_all_gt(__vector double __a, __vector double __b) {
3556 int __cc;
3557 __builtin_s390_vfchdbs(__a, __b, &__cc);
3558 return __cc == 0;
3559 }
3560
3561 /*-- vec_all_le -------------------------------------------------------------*/
3562
3563 static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector signed char __b)3564 vec_all_le(__vector signed char __a, __vector signed char __b) {
3565 int __cc;
3566 __builtin_s390_vchbs(__a, __b, &__cc);
3567 return __cc == 3;
3568 }
3569
3570 // This prototype is deprecated.
3571 static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector __bool char __b)3572 vec_all_le(__vector signed char __a, __vector __bool char __b) {
3573 int __cc;
3574 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3575 return __cc == 3;
3576 }
3577
3578 // This prototype is deprecated.
3579 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector signed char __b)3580 vec_all_le(__vector __bool char __a, __vector signed char __b) {
3581 int __cc;
3582 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3583 return __cc == 3;
3584 }
3585
3586 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector unsigned char __b)3587 vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
3588 int __cc;
3589 __builtin_s390_vchlbs(__a, __b, &__cc);
3590 return __cc == 3;
3591 }
3592
3593 // This prototype is deprecated.
3594 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector __bool char __b)3595 vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
3596 int __cc;
3597 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3598 return __cc == 3;
3599 }
3600
3601 // This prototype is deprecated.
3602 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector unsigned char __b)3603 vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
3604 int __cc;
3605 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3606 return __cc == 3;
3607 }
3608
3609 // This prototype is deprecated.
3610 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector __bool char __b)3611 vec_all_le(__vector __bool char __a, __vector __bool char __b) {
3612 int __cc;
3613 __builtin_s390_vchlbs((__vector unsigned char)__a,
3614 (__vector unsigned char)__b, &__cc);
3615 return __cc == 3;
3616 }
3617
3618 static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector signed short __b)3619 vec_all_le(__vector signed short __a, __vector signed short __b) {
3620 int __cc;
3621 __builtin_s390_vchhs(__a, __b, &__cc);
3622 return __cc == 3;
3623 }
3624
3625 // This prototype is deprecated.
3626 static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector __bool short __b)3627 vec_all_le(__vector signed short __a, __vector __bool short __b) {
3628 int __cc;
3629 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3630 return __cc == 3;
3631 }
3632
3633 // This prototype is deprecated.
3634 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector signed short __b)3635 vec_all_le(__vector __bool short __a, __vector signed short __b) {
3636 int __cc;
3637 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3638 return __cc == 3;
3639 }
3640
3641 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector unsigned short __b)3642 vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
3643 int __cc;
3644 __builtin_s390_vchlhs(__a, __b, &__cc);
3645 return __cc == 3;
3646 }
3647
3648 // This prototype is deprecated.
3649 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector __bool short __b)3650 vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
3651 int __cc;
3652 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3653 return __cc == 3;
3654 }
3655
3656 // This prototype is deprecated.
3657 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector unsigned short __b)3658 vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
3659 int __cc;
3660 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3661 return __cc == 3;
3662 }
3663
3664 // This prototype is deprecated.
3665 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector __bool short __b)3666 vec_all_le(__vector __bool short __a, __vector __bool short __b) {
3667 int __cc;
3668 __builtin_s390_vchlhs((__vector unsigned short)__a,
3669 (__vector unsigned short)__b, &__cc);
3670 return __cc == 3;
3671 }
3672
3673 static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector signed int __b)3674 vec_all_le(__vector signed int __a, __vector signed int __b) {
3675 int __cc;
3676 __builtin_s390_vchfs(__a, __b, &__cc);
3677 return __cc == 3;
3678 }
3679
3680 // This prototype is deprecated.
3681 static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector __bool int __b)3682 vec_all_le(__vector signed int __a, __vector __bool int __b) {
3683 int __cc;
3684 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3685 return __cc == 3;
3686 }
3687
3688 // This prototype is deprecated.
3689 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector signed int __b)3690 vec_all_le(__vector __bool int __a, __vector signed int __b) {
3691 int __cc;
3692 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3693 return __cc == 3;
3694 }
3695
3696 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector unsigned int __b)3697 vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
3698 int __cc;
3699 __builtin_s390_vchlfs(__a, __b, &__cc);
3700 return __cc == 3;
3701 }
3702
3703 // This prototype is deprecated.
3704 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector __bool int __b)3705 vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
3706 int __cc;
3707 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3708 return __cc == 3;
3709 }
3710
3711 // This prototype is deprecated.
3712 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector unsigned int __b)3713 vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
3714 int __cc;
3715 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3716 return __cc == 3;
3717 }
3718
3719 // This prototype is deprecated.
3720 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector __bool int __b)3721 vec_all_le(__vector __bool int __a, __vector __bool int __b) {
3722 int __cc;
3723 __builtin_s390_vchlfs((__vector unsigned int)__a,
3724 (__vector unsigned int)__b, &__cc);
3725 return __cc == 3;
3726 }
3727
3728 static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector signed long long __b)3729 vec_all_le(__vector signed long long __a, __vector signed long long __b) {
3730 int __cc;
3731 __builtin_s390_vchgs(__a, __b, &__cc);
3732 return __cc == 3;
3733 }
3734
3735 // This prototype is deprecated.
3736 static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector __bool long long __b)3737 vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
3738 int __cc;
3739 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3740 return __cc == 3;
3741 }
3742
3743 // This prototype is deprecated.
3744 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector signed long long __b)3745 vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
3746 int __cc;
3747 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3748 return __cc == 3;
3749 }
3750
3751 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector unsigned long long __b)3752 vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
3753 int __cc;
3754 __builtin_s390_vchlgs(__a, __b, &__cc);
3755 return __cc == 3;
3756 }
3757
3758 // This prototype is deprecated.
3759 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector __bool long long __b)3760 vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
3761 int __cc;
3762 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3763 return __cc == 3;
3764 }
3765
3766 // This prototype is deprecated.
3767 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector unsigned long long __b)3768 vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
3769 int __cc;
3770 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3771 return __cc == 3;
3772 }
3773
3774 // This prototype is deprecated.
3775 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector __bool long long __b)3776 vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
3777 int __cc;
3778 __builtin_s390_vchlgs((__vector unsigned long long)__a,
3779 (__vector unsigned long long)__b, &__cc);
3780 return __cc == 3;
3781 }
3782
3783 #if __ARCH__ >= 12
3784 static inline __ATTRS_o_ai int
vec_all_le(__vector float __a,__vector float __b)3785 vec_all_le(__vector float __a, __vector float __b) {
3786 int __cc;
3787 __builtin_s390_vfchesbs(__b, __a, &__cc);
3788 return __cc == 0;
3789 }
3790 #endif
3791
3792 static inline __ATTRS_o_ai int
vec_all_le(__vector double __a,__vector double __b)3793 vec_all_le(__vector double __a, __vector double __b) {
3794 int __cc;
3795 __builtin_s390_vfchedbs(__b, __a, &__cc);
3796 return __cc == 0;
3797 }
3798
3799 /*-- vec_all_lt -------------------------------------------------------------*/
3800
3801 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector signed char __b)3802 vec_all_lt(__vector signed char __a, __vector signed char __b) {
3803 int __cc;
3804 __builtin_s390_vchbs(__b, __a, &__cc);
3805 return __cc == 0;
3806 }
3807
3808 // This prototype is deprecated.
3809 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector __bool char __b)3810 vec_all_lt(__vector signed char __a, __vector __bool char __b) {
3811 int __cc;
3812 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3813 return __cc == 0;
3814 }
3815
3816 // This prototype is deprecated.
3817 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector signed char __b)3818 vec_all_lt(__vector __bool char __a, __vector signed char __b) {
3819 int __cc;
3820 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3821 return __cc == 0;
3822 }
3823
3824 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector unsigned char __b)3825 vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
3826 int __cc;
3827 __builtin_s390_vchlbs(__b, __a, &__cc);
3828 return __cc == 0;
3829 }
3830
3831 // This prototype is deprecated.
3832 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector __bool char __b)3833 vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
3834 int __cc;
3835 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3836 return __cc == 0;
3837 }
3838
3839 // This prototype is deprecated.
3840 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector unsigned char __b)3841 vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
3842 int __cc;
3843 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3844 return __cc == 0;
3845 }
3846
3847 // This prototype is deprecated.
3848 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector __bool char __b)3849 vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
3850 int __cc;
3851 __builtin_s390_vchlbs((__vector unsigned char)__b,
3852 (__vector unsigned char)__a, &__cc);
3853 return __cc == 0;
3854 }
3855
3856 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector signed short __b)3857 vec_all_lt(__vector signed short __a, __vector signed short __b) {
3858 int __cc;
3859 __builtin_s390_vchhs(__b, __a, &__cc);
3860 return __cc == 0;
3861 }
3862
3863 // This prototype is deprecated.
3864 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector __bool short __b)3865 vec_all_lt(__vector signed short __a, __vector __bool short __b) {
3866 int __cc;
3867 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3868 return __cc == 0;
3869 }
3870
3871 // This prototype is deprecated.
3872 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector signed short __b)3873 vec_all_lt(__vector __bool short __a, __vector signed short __b) {
3874 int __cc;
3875 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3876 return __cc == 0;
3877 }
3878
3879 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector unsigned short __b)3880 vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
3881 int __cc;
3882 __builtin_s390_vchlhs(__b, __a, &__cc);
3883 return __cc == 0;
3884 }
3885
3886 // This prototype is deprecated.
3887 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector __bool short __b)3888 vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
3889 int __cc;
3890 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3891 return __cc == 0;
3892 }
3893
3894 // This prototype is deprecated.
3895 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector unsigned short __b)3896 vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
3897 int __cc;
3898 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3899 return __cc == 0;
3900 }
3901
3902 // This prototype is deprecated.
3903 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector __bool short __b)3904 vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
3905 int __cc;
3906 __builtin_s390_vchlhs((__vector unsigned short)__b,
3907 (__vector unsigned short)__a, &__cc);
3908 return __cc == 0;
3909 }
3910
3911 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector signed int __b)3912 vec_all_lt(__vector signed int __a, __vector signed int __b) {
3913 int __cc;
3914 __builtin_s390_vchfs(__b, __a, &__cc);
3915 return __cc == 0;
3916 }
3917
3918 // This prototype is deprecated.
3919 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector __bool int __b)3920 vec_all_lt(__vector signed int __a, __vector __bool int __b) {
3921 int __cc;
3922 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3923 return __cc == 0;
3924 }
3925
3926 // This prototype is deprecated.
3927 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector signed int __b)3928 vec_all_lt(__vector __bool int __a, __vector signed int __b) {
3929 int __cc;
3930 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3931 return __cc == 0;
3932 }
3933
3934 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector unsigned int __b)3935 vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
3936 int __cc;
3937 __builtin_s390_vchlfs(__b, __a, &__cc);
3938 return __cc == 0;
3939 }
3940
3941 // This prototype is deprecated.
3942 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector __bool int __b)3943 vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
3944 int __cc;
3945 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3946 return __cc == 0;
3947 }
3948
3949 // This prototype is deprecated.
3950 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector unsigned int __b)3951 vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
3952 int __cc;
3953 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3954 return __cc == 0;
3955 }
3956
3957 // This prototype is deprecated.
3958 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector __bool int __b)3959 vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
3960 int __cc;
3961 __builtin_s390_vchlfs((__vector unsigned int)__b,
3962 (__vector unsigned int)__a, &__cc);
3963 return __cc == 0;
3964 }
3965
3966 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector signed long long __b)3967 vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
3968 int __cc;
3969 __builtin_s390_vchgs(__b, __a, &__cc);
3970 return __cc == 0;
3971 }
3972
3973 // This prototype is deprecated.
3974 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector __bool long long __b)3975 vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
3976 int __cc;
3977 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3978 return __cc == 0;
3979 }
3980
3981 // This prototype is deprecated.
3982 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector signed long long __b)3983 vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
3984 int __cc;
3985 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3986 return __cc == 0;
3987 }
3988
3989 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector unsigned long long __b)3990 vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
3991 int __cc;
3992 __builtin_s390_vchlgs(__b, __a, &__cc);
3993 return __cc == 0;
3994 }
3995
3996 // This prototype is deprecated.
3997 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector __bool long long __b)3998 vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
3999 int __cc;
4000 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4001 return __cc == 0;
4002 }
4003
4004 // This prototype is deprecated.
4005 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector unsigned long long __b)4006 vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
4007 int __cc;
4008 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4009 return __cc == 0;
4010 }
4011
4012 // This prototype is deprecated.
4013 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector __bool long long __b)4014 vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
4015 int __cc;
4016 __builtin_s390_vchlgs((__vector unsigned long long)__b,
4017 (__vector unsigned long long)__a, &__cc);
4018 return __cc == 0;
4019 }
4020
4021 #if __ARCH__ >= 12
4022 static inline __ATTRS_o_ai int
vec_all_lt(__vector float __a,__vector float __b)4023 vec_all_lt(__vector float __a, __vector float __b) {
4024 int __cc;
4025 __builtin_s390_vfchsbs(__b, __a, &__cc);
4026 return __cc == 0;
4027 }
4028 #endif
4029
4030 static inline __ATTRS_o_ai int
vec_all_lt(__vector double __a,__vector double __b)4031 vec_all_lt(__vector double __a, __vector double __b) {
4032 int __cc;
4033 __builtin_s390_vfchdbs(__b, __a, &__cc);
4034 return __cc == 0;
4035 }
4036
4037 /*-- vec_all_nge ------------------------------------------------------------*/
4038
4039 #if __ARCH__ >= 12
4040 static inline __ATTRS_o_ai int
vec_all_nge(__vector float __a,__vector float __b)4041 vec_all_nge(__vector float __a, __vector float __b) {
4042 int __cc;
4043 __builtin_s390_vfchesbs(__a, __b, &__cc);
4044 return __cc == 3;
4045 }
4046 #endif
4047
4048 static inline __ATTRS_o_ai int
vec_all_nge(__vector double __a,__vector double __b)4049 vec_all_nge(__vector double __a, __vector double __b) {
4050 int __cc;
4051 __builtin_s390_vfchedbs(__a, __b, &__cc);
4052 return __cc == 3;
4053 }
4054
4055 /*-- vec_all_ngt ------------------------------------------------------------*/
4056
4057 #if __ARCH__ >= 12
4058 static inline __ATTRS_o_ai int
vec_all_ngt(__vector float __a,__vector float __b)4059 vec_all_ngt(__vector float __a, __vector float __b) {
4060 int __cc;
4061 __builtin_s390_vfchsbs(__a, __b, &__cc);
4062 return __cc == 3;
4063 }
4064 #endif
4065
4066 static inline __ATTRS_o_ai int
vec_all_ngt(__vector double __a,__vector double __b)4067 vec_all_ngt(__vector double __a, __vector double __b) {
4068 int __cc;
4069 __builtin_s390_vfchdbs(__a, __b, &__cc);
4070 return __cc == 3;
4071 }
4072
4073 /*-- vec_all_nle ------------------------------------------------------------*/
4074
4075 #if __ARCH__ >= 12
4076 static inline __ATTRS_o_ai int
vec_all_nle(__vector float __a,__vector float __b)4077 vec_all_nle(__vector float __a, __vector float __b) {
4078 int __cc;
4079 __builtin_s390_vfchesbs(__b, __a, &__cc);
4080 return __cc == 3;
4081 }
4082 #endif
4083
4084 static inline __ATTRS_o_ai int
vec_all_nle(__vector double __a,__vector double __b)4085 vec_all_nle(__vector double __a, __vector double __b) {
4086 int __cc;
4087 __builtin_s390_vfchedbs(__b, __a, &__cc);
4088 return __cc == 3;
4089 }
4090
4091 /*-- vec_all_nlt ------------------------------------------------------------*/
4092
4093 #if __ARCH__ >= 12
4094 static inline __ATTRS_o_ai int
vec_all_nlt(__vector float __a,__vector float __b)4095 vec_all_nlt(__vector float __a, __vector float __b) {
4096 int __cc;
4097 __builtin_s390_vfchsbs(__b, __a, &__cc);
4098 return __cc == 3;
4099 }
4100 #endif
4101
4102 static inline __ATTRS_o_ai int
vec_all_nlt(__vector double __a,__vector double __b)4103 vec_all_nlt(__vector double __a, __vector double __b) {
4104 int __cc;
4105 __builtin_s390_vfchdbs(__b, __a, &__cc);
4106 return __cc == 3;
4107 }
4108
4109 /*-- vec_all_nan ------------------------------------------------------------*/
4110
4111 #if __ARCH__ >= 12
4112 static inline __ATTRS_o_ai int
vec_all_nan(__vector float __a)4113 vec_all_nan(__vector float __a) {
4114 int __cc;
4115 __builtin_s390_vftcisb(__a, 15, &__cc);
4116 return __cc == 0;
4117 }
4118 #endif
4119
4120 static inline __ATTRS_o_ai int
vec_all_nan(__vector double __a)4121 vec_all_nan(__vector double __a) {
4122 int __cc;
4123 __builtin_s390_vftcidb(__a, 15, &__cc);
4124 return __cc == 0;
4125 }
4126
4127 /*-- vec_all_numeric --------------------------------------------------------*/
4128
4129 #if __ARCH__ >= 12
4130 static inline __ATTRS_o_ai int
vec_all_numeric(__vector float __a)4131 vec_all_numeric(__vector float __a) {
4132 int __cc;
4133 __builtin_s390_vftcisb(__a, 15, &__cc);
4134 return __cc == 3;
4135 }
4136 #endif
4137
4138 static inline __ATTRS_o_ai int
vec_all_numeric(__vector double __a)4139 vec_all_numeric(__vector double __a) {
4140 int __cc;
4141 __builtin_s390_vftcidb(__a, 15, &__cc);
4142 return __cc == 3;
4143 }
4144
4145 /*-- vec_any_eq -------------------------------------------------------------*/
4146
4147 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector signed char __b)4148 vec_any_eq(__vector signed char __a, __vector signed char __b) {
4149 int __cc;
4150 __builtin_s390_vceqbs(__a, __b, &__cc);
4151 return __cc <= 1;
4152 }
4153
4154 // This prototype is deprecated.
4155 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector __bool char __b)4156 vec_any_eq(__vector signed char __a, __vector __bool char __b) {
4157 int __cc;
4158 __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
4159 return __cc <= 1;
4160 }
4161
4162 // This prototype is deprecated.
4163 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector signed char __b)4164 vec_any_eq(__vector __bool char __a, __vector signed char __b) {
4165 int __cc;
4166 __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
4167 return __cc <= 1;
4168 }
4169
4170 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector unsigned char __b)4171 vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
4172 int __cc;
4173 __builtin_s390_vceqbs((__vector signed char)__a,
4174 (__vector signed char)__b, &__cc);
4175 return __cc <= 1;
4176 }
4177
4178 // This prototype is deprecated.
4179 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector __bool char __b)4180 vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
4181 int __cc;
4182 __builtin_s390_vceqbs((__vector signed char)__a,
4183 (__vector signed char)__b, &__cc);
4184 return __cc <= 1;
4185 }
4186
4187 // This prototype is deprecated.
4188 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector unsigned char __b)4189 vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
4190 int __cc;
4191 __builtin_s390_vceqbs((__vector signed char)__a,
4192 (__vector signed char)__b, &__cc);
4193 return __cc <= 1;
4194 }
4195
4196 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector __bool char __b)4197 vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
4198 int __cc;
4199 __builtin_s390_vceqbs((__vector signed char)__a,
4200 (__vector signed char)__b, &__cc);
4201 return __cc <= 1;
4202 }
4203
4204 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector signed short __b)4205 vec_any_eq(__vector signed short __a, __vector signed short __b) {
4206 int __cc;
4207 __builtin_s390_vceqhs(__a, __b, &__cc);
4208 return __cc <= 1;
4209 }
4210
4211 // This prototype is deprecated.
4212 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector __bool short __b)4213 vec_any_eq(__vector signed short __a, __vector __bool short __b) {
4214 int __cc;
4215 __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
4216 return __cc <= 1;
4217 }
4218
4219 // This prototype is deprecated.
4220 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector signed short __b)4221 vec_any_eq(__vector __bool short __a, __vector signed short __b) {
4222 int __cc;
4223 __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
4224 return __cc <= 1;
4225 }
4226
4227 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector unsigned short __b)4228 vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
4229 int __cc;
4230 __builtin_s390_vceqhs((__vector signed short)__a,
4231 (__vector signed short)__b, &__cc);
4232 return __cc <= 1;
4233 }
4234
4235 // This prototype is deprecated.
4236 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector __bool short __b)4237 vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
4238 int __cc;
4239 __builtin_s390_vceqhs((__vector signed short)__a,
4240 (__vector signed short)__b, &__cc);
4241 return __cc <= 1;
4242 }
4243
4244 // This prototype is deprecated.
4245 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector unsigned short __b)4246 vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
4247 int __cc;
4248 __builtin_s390_vceqhs((__vector signed short)__a,
4249 (__vector signed short)__b, &__cc);
4250 return __cc <= 1;
4251 }
4252
4253 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector __bool short __b)4254 vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
4255 int __cc;
4256 __builtin_s390_vceqhs((__vector signed short)__a,
4257 (__vector signed short)__b, &__cc);
4258 return __cc <= 1;
4259 }
4260
4261 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector signed int __b)4262 vec_any_eq(__vector signed int __a, __vector signed int __b) {
4263 int __cc;
4264 __builtin_s390_vceqfs(__a, __b, &__cc);
4265 return __cc <= 1;
4266 }
4267
4268 // This prototype is deprecated.
4269 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector __bool int __b)4270 vec_any_eq(__vector signed int __a, __vector __bool int __b) {
4271 int __cc;
4272 __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
4273 return __cc <= 1;
4274 }
4275
4276 // This prototype is deprecated.
4277 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector signed int __b)4278 vec_any_eq(__vector __bool int __a, __vector signed int __b) {
4279 int __cc;
4280 __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
4281 return __cc <= 1;
4282 }
4283
4284 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector unsigned int __b)4285 vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
4286 int __cc;
4287 __builtin_s390_vceqfs((__vector signed int)__a,
4288 (__vector signed int)__b, &__cc);
4289 return __cc <= 1;
4290 }
4291
4292 // This prototype is deprecated.
4293 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector __bool int __b)4294 vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
4295 int __cc;
4296 __builtin_s390_vceqfs((__vector signed int)__a,
4297 (__vector signed int)__b, &__cc);
4298 return __cc <= 1;
4299 }
4300
4301 // This prototype is deprecated.
4302 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector unsigned int __b)4303 vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
4304 int __cc;
4305 __builtin_s390_vceqfs((__vector signed int)__a,
4306 (__vector signed int)__b, &__cc);
4307 return __cc <= 1;
4308 }
4309
4310 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector __bool int __b)4311 vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
4312 int __cc;
4313 __builtin_s390_vceqfs((__vector signed int)__a,
4314 (__vector signed int)__b, &__cc);
4315 return __cc <= 1;
4316 }
4317
4318 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector signed long long __b)4319 vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
4320 int __cc;
4321 __builtin_s390_vceqgs(__a, __b, &__cc);
4322 return __cc <= 1;
4323 }
4324
4325 // This prototype is deprecated.
4326 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector __bool long long __b)4327 vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
4328 int __cc;
4329 __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
4330 return __cc <= 1;
4331 }
4332
4333 // This prototype is deprecated.
4334 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector signed long long __b)4335 vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
4336 int __cc;
4337 __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
4338 return __cc <= 1;
4339 }
4340
4341 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector unsigned long long __b)4342 vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
4343 int __cc;
4344 __builtin_s390_vceqgs((__vector signed long long)__a,
4345 (__vector signed long long)__b, &__cc);
4346 return __cc <= 1;
4347 }
4348
4349 // This prototype is deprecated.
4350 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector __bool long long __b)4351 vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
4352 int __cc;
4353 __builtin_s390_vceqgs((__vector signed long long)__a,
4354 (__vector signed long long)__b, &__cc);
4355 return __cc <= 1;
4356 }
4357
4358 // This prototype is deprecated.
4359 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector unsigned long long __b)4360 vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
4361 int __cc;
4362 __builtin_s390_vceqgs((__vector signed long long)__a,
4363 (__vector signed long long)__b, &__cc);
4364 return __cc <= 1;
4365 }
4366
4367 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector __bool long long __b)4368 vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
4369 int __cc;
4370 __builtin_s390_vceqgs((__vector signed long long)__a,
4371 (__vector signed long long)__b, &__cc);
4372 return __cc <= 1;
4373 }
4374
4375 #if __ARCH__ >= 12
4376 static inline __ATTRS_o_ai int
vec_any_eq(__vector float __a,__vector float __b)4377 vec_any_eq(__vector float __a, __vector float __b) {
4378 int __cc;
4379 __builtin_s390_vfcesbs(__a, __b, &__cc);
4380 return __cc <= 1;
4381 }
4382 #endif
4383
4384 static inline __ATTRS_o_ai int
vec_any_eq(__vector double __a,__vector double __b)4385 vec_any_eq(__vector double __a, __vector double __b) {
4386 int __cc;
4387 __builtin_s390_vfcedbs(__a, __b, &__cc);
4388 return __cc <= 1;
4389 }
4390
4391 /*-- vec_any_ne -------------------------------------------------------------*/
4392
4393 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector signed char __b)4394 vec_any_ne(__vector signed char __a, __vector signed char __b) {
4395 int __cc;
4396 __builtin_s390_vceqbs(__a, __b, &__cc);
4397 return __cc != 0;
4398 }
4399
4400 // This prototype is deprecated.
4401 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector __bool char __b)4402 vec_any_ne(__vector signed char __a, __vector __bool char __b) {
4403 int __cc;
4404 __builtin_s390_vceqbs(__a, (__vector signed char)__b, &__cc);
4405 return __cc != 0;
4406 }
4407
4408 // This prototype is deprecated.
4409 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector signed char __b)4410 vec_any_ne(__vector __bool char __a, __vector signed char __b) {
4411 int __cc;
4412 __builtin_s390_vceqbs((__vector signed char)__a, __b, &__cc);
4413 return __cc != 0;
4414 }
4415
4416 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector unsigned char __b)4417 vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
4418 int __cc;
4419 __builtin_s390_vceqbs((__vector signed char)__a,
4420 (__vector signed char)__b, &__cc);
4421 return __cc != 0;
4422 }
4423
4424 // This prototype is deprecated.
4425 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector __bool char __b)4426 vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
4427 int __cc;
4428 __builtin_s390_vceqbs((__vector signed char)__a,
4429 (__vector signed char)__b, &__cc);
4430 return __cc != 0;
4431 }
4432
4433 // This prototype is deprecated.
4434 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector unsigned char __b)4435 vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
4436 int __cc;
4437 __builtin_s390_vceqbs((__vector signed char)__a,
4438 (__vector signed char)__b, &__cc);
4439 return __cc != 0;
4440 }
4441
4442 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector __bool char __b)4443 vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
4444 int __cc;
4445 __builtin_s390_vceqbs((__vector signed char)__a,
4446 (__vector signed char)__b, &__cc);
4447 return __cc != 0;
4448 }
4449
4450 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector signed short __b)4451 vec_any_ne(__vector signed short __a, __vector signed short __b) {
4452 int __cc;
4453 __builtin_s390_vceqhs(__a, __b, &__cc);
4454 return __cc != 0;
4455 }
4456
4457 // This prototype is deprecated.
4458 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector __bool short __b)4459 vec_any_ne(__vector signed short __a, __vector __bool short __b) {
4460 int __cc;
4461 __builtin_s390_vceqhs(__a, (__vector signed short)__b, &__cc);
4462 return __cc != 0;
4463 }
4464
4465 // This prototype is deprecated.
4466 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector signed short __b)4467 vec_any_ne(__vector __bool short __a, __vector signed short __b) {
4468 int __cc;
4469 __builtin_s390_vceqhs((__vector signed short)__a, __b, &__cc);
4470 return __cc != 0;
4471 }
4472
4473 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector unsigned short __b)4474 vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
4475 int __cc;
4476 __builtin_s390_vceqhs((__vector signed short)__a,
4477 (__vector signed short)__b, &__cc);
4478 return __cc != 0;
4479 }
4480
4481 // This prototype is deprecated.
4482 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector __bool short __b)4483 vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
4484 int __cc;
4485 __builtin_s390_vceqhs((__vector signed short)__a,
4486 (__vector signed short)__b, &__cc);
4487 return __cc != 0;
4488 }
4489
4490 // This prototype is deprecated.
4491 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector unsigned short __b)4492 vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
4493 int __cc;
4494 __builtin_s390_vceqhs((__vector signed short)__a,
4495 (__vector signed short)__b, &__cc);
4496 return __cc != 0;
4497 }
4498
4499 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector __bool short __b)4500 vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
4501 int __cc;
4502 __builtin_s390_vceqhs((__vector signed short)__a,
4503 (__vector signed short)__b, &__cc);
4504 return __cc != 0;
4505 }
4506
4507 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector signed int __b)4508 vec_any_ne(__vector signed int __a, __vector signed int __b) {
4509 int __cc;
4510 __builtin_s390_vceqfs(__a, __b, &__cc);
4511 return __cc != 0;
4512 }
4513
4514 // This prototype is deprecated.
4515 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector __bool int __b)4516 vec_any_ne(__vector signed int __a, __vector __bool int __b) {
4517 int __cc;
4518 __builtin_s390_vceqfs(__a, (__vector signed int)__b, &__cc);
4519 return __cc != 0;
4520 }
4521
4522 // This prototype is deprecated.
4523 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector signed int __b)4524 vec_any_ne(__vector __bool int __a, __vector signed int __b) {
4525 int __cc;
4526 __builtin_s390_vceqfs((__vector signed int)__a, __b, &__cc);
4527 return __cc != 0;
4528 }
4529
4530 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector unsigned int __b)4531 vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
4532 int __cc;
4533 __builtin_s390_vceqfs((__vector signed int)__a,
4534 (__vector signed int)__b, &__cc);
4535 return __cc != 0;
4536 }
4537
4538 // This prototype is deprecated.
4539 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector __bool int __b)4540 vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
4541 int __cc;
4542 __builtin_s390_vceqfs((__vector signed int)__a,
4543 (__vector signed int)__b, &__cc);
4544 return __cc != 0;
4545 }
4546
4547 // This prototype is deprecated.
4548 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector unsigned int __b)4549 vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
4550 int __cc;
4551 __builtin_s390_vceqfs((__vector signed int)__a,
4552 (__vector signed int)__b, &__cc);
4553 return __cc != 0;
4554 }
4555
4556 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector __bool int __b)4557 vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
4558 int __cc;
4559 __builtin_s390_vceqfs((__vector signed int)__a,
4560 (__vector signed int)__b, &__cc);
4561 return __cc != 0;
4562 }
4563
4564 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector signed long long __b)4565 vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
4566 int __cc;
4567 __builtin_s390_vceqgs(__a, __b, &__cc);
4568 return __cc != 0;
4569 }
4570
4571 // This prototype is deprecated.
4572 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector __bool long long __b)4573 vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
4574 int __cc;
4575 __builtin_s390_vceqgs(__a, (__vector signed long long)__b, &__cc);
4576 return __cc != 0;
4577 }
4578
4579 // This prototype is deprecated.
4580 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector signed long long __b)4581 vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
4582 int __cc;
4583 __builtin_s390_vceqgs((__vector signed long long)__a, __b, &__cc);
4584 return __cc != 0;
4585 }
4586
4587 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector unsigned long long __b)4588 vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
4589 int __cc;
4590 __builtin_s390_vceqgs((__vector signed long long)__a,
4591 (__vector signed long long)__b, &__cc);
4592 return __cc != 0;
4593 }
4594
4595 // This prototype is deprecated.
4596 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector __bool long long __b)4597 vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
4598 int __cc;
4599 __builtin_s390_vceqgs((__vector signed long long)__a,
4600 (__vector signed long long)__b, &__cc);
4601 return __cc != 0;
4602 }
4603
4604 // This prototype is deprecated.
4605 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector unsigned long long __b)4606 vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
4607 int __cc;
4608 __builtin_s390_vceqgs((__vector signed long long)__a,
4609 (__vector signed long long)__b, &__cc);
4610 return __cc != 0;
4611 }
4612
4613 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector __bool long long __b)4614 vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
4615 int __cc;
4616 __builtin_s390_vceqgs((__vector signed long long)__a,
4617 (__vector signed long long)__b, &__cc);
4618 return __cc != 0;
4619 }
4620
4621 #if __ARCH__ >= 12
4622 static inline __ATTRS_o_ai int
vec_any_ne(__vector float __a,__vector float __b)4623 vec_any_ne(__vector float __a, __vector float __b) {
4624 int __cc;
4625 __builtin_s390_vfcesbs(__a, __b, &__cc);
4626 return __cc != 0;
4627 }
4628 #endif
4629
4630 static inline __ATTRS_o_ai int
vec_any_ne(__vector double __a,__vector double __b)4631 vec_any_ne(__vector double __a, __vector double __b) {
4632 int __cc;
4633 __builtin_s390_vfcedbs(__a, __b, &__cc);
4634 return __cc != 0;
4635 }
4636
4637 /*-- vec_any_ge -------------------------------------------------------------*/
4638
4639 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector signed char __b)4640 vec_any_ge(__vector signed char __a, __vector signed char __b) {
4641 int __cc;
4642 __builtin_s390_vchbs(__b, __a, &__cc);
4643 return __cc != 0;
4644 }
4645
4646 // This prototype is deprecated.
4647 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector __bool char __b)4648 vec_any_ge(__vector signed char __a, __vector __bool char __b) {
4649 int __cc;
4650 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
4651 return __cc != 0;
4652 }
4653
4654 // This prototype is deprecated.
4655 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector signed char __b)4656 vec_any_ge(__vector __bool char __a, __vector signed char __b) {
4657 int __cc;
4658 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
4659 return __cc != 0;
4660 }
4661
4662 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector unsigned char __b)4663 vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
4664 int __cc;
4665 __builtin_s390_vchlbs(__b, __a, &__cc);
4666 return __cc != 0;
4667 }
4668
4669 // This prototype is deprecated.
4670 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector __bool char __b)4671 vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
4672 int __cc;
4673 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
4674 return __cc != 0;
4675 }
4676
4677 // This prototype is deprecated.
4678 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector unsigned char __b)4679 vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
4680 int __cc;
4681 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
4682 return __cc != 0;
4683 }
4684
4685 // This prototype is deprecated.
4686 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector __bool char __b)4687 vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
4688 int __cc;
4689 __builtin_s390_vchlbs((__vector unsigned char)__b,
4690 (__vector unsigned char)__a, &__cc);
4691 return __cc != 0;
4692 }
4693
4694 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector signed short __b)4695 vec_any_ge(__vector signed short __a, __vector signed short __b) {
4696 int __cc;
4697 __builtin_s390_vchhs(__b, __a, &__cc);
4698 return __cc != 0;
4699 }
4700
4701 // This prototype is deprecated.
4702 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector __bool short __b)4703 vec_any_ge(__vector signed short __a, __vector __bool short __b) {
4704 int __cc;
4705 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
4706 return __cc != 0;
4707 }
4708
4709 // This prototype is deprecated.
4710 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector signed short __b)4711 vec_any_ge(__vector __bool short __a, __vector signed short __b) {
4712 int __cc;
4713 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
4714 return __cc != 0;
4715 }
4716
4717 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector unsigned short __b)4718 vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
4719 int __cc;
4720 __builtin_s390_vchlhs(__b, __a, &__cc);
4721 return __cc != 0;
4722 }
4723
4724 // This prototype is deprecated.
4725 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector __bool short __b)4726 vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
4727 int __cc;
4728 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
4729 return __cc != 0;
4730 }
4731
4732 // This prototype is deprecated.
4733 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector unsigned short __b)4734 vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
4735 int __cc;
4736 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
4737 return __cc != 0;
4738 }
4739
4740 // This prototype is deprecated.
4741 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector __bool short __b)4742 vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
4743 int __cc;
4744 __builtin_s390_vchlhs((__vector unsigned short)__b,
4745 (__vector unsigned short)__a, &__cc);
4746 return __cc != 0;
4747 }
4748
4749 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector signed int __b)4750 vec_any_ge(__vector signed int __a, __vector signed int __b) {
4751 int __cc;
4752 __builtin_s390_vchfs(__b, __a, &__cc);
4753 return __cc != 0;
4754 }
4755
4756 // This prototype is deprecated.
4757 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector __bool int __b)4758 vec_any_ge(__vector signed int __a, __vector __bool int __b) {
4759 int __cc;
4760 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4761 return __cc != 0;
4762 }
4763
4764 // This prototype is deprecated.
4765 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector signed int __b)4766 vec_any_ge(__vector __bool int __a, __vector signed int __b) {
4767 int __cc;
4768 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4769 return __cc != 0;
4770 }
4771
4772 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector unsigned int __b)4773 vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
4774 int __cc;
4775 __builtin_s390_vchlfs(__b, __a, &__cc);
4776 return __cc != 0;
4777 }
4778
4779 // This prototype is deprecated.
4780 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector __bool int __b)4781 vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
4782 int __cc;
4783 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4784 return __cc != 0;
4785 }
4786
4787 // This prototype is deprecated.
4788 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector unsigned int __b)4789 vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
4790 int __cc;
4791 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4792 return __cc != 0;
4793 }
4794
4795 // This prototype is deprecated.
4796 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector __bool int __b)4797 vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
4798 int __cc;
4799 __builtin_s390_vchlfs((__vector unsigned int)__b,
4800 (__vector unsigned int)__a, &__cc);
4801 return __cc != 0;
4802 }
4803
4804 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector signed long long __b)4805 vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
4806 int __cc;
4807 __builtin_s390_vchgs(__b, __a, &__cc);
4808 return __cc != 0;
4809 }
4810
4811 // This prototype is deprecated.
4812 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector __bool long long __b)4813 vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
4814 int __cc;
4815 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4816 return __cc != 0;
4817 }
4818
4819 // This prototype is deprecated.
4820 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector signed long long __b)4821 vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
4822 int __cc;
4823 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4824 return __cc != 0;
4825 }
4826
4827 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector unsigned long long __b)4828 vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
4829 int __cc;
4830 __builtin_s390_vchlgs(__b, __a, &__cc);
4831 return __cc != 0;
4832 }
4833
4834 // This prototype is deprecated.
4835 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector __bool long long __b)4836 vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
4837 int __cc;
4838 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4839 return __cc != 0;
4840 }
4841
4842 // This prototype is deprecated.
4843 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector unsigned long long __b)4844 vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
4845 int __cc;
4846 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4847 return __cc != 0;
4848 }
4849
4850 // This prototype is deprecated.
4851 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector __bool long long __b)4852 vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
4853 int __cc;
4854 __builtin_s390_vchlgs((__vector unsigned long long)__b,
4855 (__vector unsigned long long)__a, &__cc);
4856 return __cc != 0;
4857 }
4858
4859 #if __ARCH__ >= 12
4860 static inline __ATTRS_o_ai int
vec_any_ge(__vector float __a,__vector float __b)4861 vec_any_ge(__vector float __a, __vector float __b) {
4862 int __cc;
4863 __builtin_s390_vfchesbs(__a, __b, &__cc);
4864 return __cc <= 1;
4865 }
4866 #endif
4867
4868 static inline __ATTRS_o_ai int
vec_any_ge(__vector double __a,__vector double __b)4869 vec_any_ge(__vector double __a, __vector double __b) {
4870 int __cc;
4871 __builtin_s390_vfchedbs(__a, __b, &__cc);
4872 return __cc <= 1;
4873 }
4874
4875 /*-- vec_any_gt -------------------------------------------------------------*/
4876
4877 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector signed char __b)4878 vec_any_gt(__vector signed char __a, __vector signed char __b) {
4879 int __cc;
4880 __builtin_s390_vchbs(__a, __b, &__cc);
4881 return __cc <= 1;
4882 }
4883
4884 // This prototype is deprecated.
4885 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector __bool char __b)4886 vec_any_gt(__vector signed char __a, __vector __bool char __b) {
4887 int __cc;
4888 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
4889 return __cc <= 1;
4890 }
4891
4892 // This prototype is deprecated.
4893 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector signed char __b)4894 vec_any_gt(__vector __bool char __a, __vector signed char __b) {
4895 int __cc;
4896 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
4897 return __cc <= 1;
4898 }
4899
4900 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector unsigned char __b)4901 vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
4902 int __cc;
4903 __builtin_s390_vchlbs(__a, __b, &__cc);
4904 return __cc <= 1;
4905 }
4906
4907 // This prototype is deprecated.
4908 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector __bool char __b)4909 vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
4910 int __cc;
4911 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
4912 return __cc <= 1;
4913 }
4914
4915 // This prototype is deprecated.
4916 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector unsigned char __b)4917 vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
4918 int __cc;
4919 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
4920 return __cc <= 1;
4921 }
4922
4923 // This prototype is deprecated.
4924 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector __bool char __b)4925 vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
4926 int __cc;
4927 __builtin_s390_vchlbs((__vector unsigned char)__a,
4928 (__vector unsigned char)__b, &__cc);
4929 return __cc <= 1;
4930 }
4931
4932 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector signed short __b)4933 vec_any_gt(__vector signed short __a, __vector signed short __b) {
4934 int __cc;
4935 __builtin_s390_vchhs(__a, __b, &__cc);
4936 return __cc <= 1;
4937 }
4938
4939 // This prototype is deprecated.
4940 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector __bool short __b)4941 vec_any_gt(__vector signed short __a, __vector __bool short __b) {
4942 int __cc;
4943 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
4944 return __cc <= 1;
4945 }
4946
4947 // This prototype is deprecated.
4948 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector signed short __b)4949 vec_any_gt(__vector __bool short __a, __vector signed short __b) {
4950 int __cc;
4951 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
4952 return __cc <= 1;
4953 }
4954
4955 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector unsigned short __b)4956 vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
4957 int __cc;
4958 __builtin_s390_vchlhs(__a, __b, &__cc);
4959 return __cc <= 1;
4960 }
4961
4962 // This prototype is deprecated.
4963 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector __bool short __b)4964 vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
4965 int __cc;
4966 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
4967 return __cc <= 1;
4968 }
4969
4970 // This prototype is deprecated.
4971 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector unsigned short __b)4972 vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
4973 int __cc;
4974 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
4975 return __cc <= 1;
4976 }
4977
4978 // This prototype is deprecated.
4979 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector __bool short __b)4980 vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
4981 int __cc;
4982 __builtin_s390_vchlhs((__vector unsigned short)__a,
4983 (__vector unsigned short)__b, &__cc);
4984 return __cc <= 1;
4985 }
4986
4987 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector signed int __b)4988 vec_any_gt(__vector signed int __a, __vector signed int __b) {
4989 int __cc;
4990 __builtin_s390_vchfs(__a, __b, &__cc);
4991 return __cc <= 1;
4992 }
4993
4994 // This prototype is deprecated.
4995 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector __bool int __b)4996 vec_any_gt(__vector signed int __a, __vector __bool int __b) {
4997 int __cc;
4998 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
4999 return __cc <= 1;
5000 }
5001
5002 // This prototype is deprecated.
5003 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector signed int __b)5004 vec_any_gt(__vector __bool int __a, __vector signed int __b) {
5005 int __cc;
5006 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5007 return __cc <= 1;
5008 }
5009
5010 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector unsigned int __b)5011 vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
5012 int __cc;
5013 __builtin_s390_vchlfs(__a, __b, &__cc);
5014 return __cc <= 1;
5015 }
5016
5017 // This prototype is deprecated.
5018 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector __bool int __b)5019 vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
5020 int __cc;
5021 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5022 return __cc <= 1;
5023 }
5024
5025 // This prototype is deprecated.
5026 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector unsigned int __b)5027 vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
5028 int __cc;
5029 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5030 return __cc <= 1;
5031 }
5032
5033 // This prototype is deprecated.
5034 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector __bool int __b)5035 vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
5036 int __cc;
5037 __builtin_s390_vchlfs((__vector unsigned int)__a,
5038 (__vector unsigned int)__b, &__cc);
5039 return __cc <= 1;
5040 }
5041
5042 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector signed long long __b)5043 vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
5044 int __cc;
5045 __builtin_s390_vchgs(__a, __b, &__cc);
5046 return __cc <= 1;
5047 }
5048
5049 // This prototype is deprecated.
5050 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector __bool long long __b)5051 vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
5052 int __cc;
5053 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5054 return __cc <= 1;
5055 }
5056
5057 // This prototype is deprecated.
5058 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector signed long long __b)5059 vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
5060 int __cc;
5061 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5062 return __cc <= 1;
5063 }
5064
5065 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector unsigned long long __b)5066 vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
5067 int __cc;
5068 __builtin_s390_vchlgs(__a, __b, &__cc);
5069 return __cc <= 1;
5070 }
5071
5072 // This prototype is deprecated.
5073 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector __bool long long __b)5074 vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
5075 int __cc;
5076 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5077 return __cc <= 1;
5078 }
5079
5080 // This prototype is deprecated.
5081 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector unsigned long long __b)5082 vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
5083 int __cc;
5084 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5085 return __cc <= 1;
5086 }
5087
5088 // This prototype is deprecated.
5089 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector __bool long long __b)5090 vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
5091 int __cc;
5092 __builtin_s390_vchlgs((__vector unsigned long long)__a,
5093 (__vector unsigned long long)__b, &__cc);
5094 return __cc <= 1;
5095 }
5096
5097 #if __ARCH__ >= 12
5098 static inline __ATTRS_o_ai int
vec_any_gt(__vector float __a,__vector float __b)5099 vec_any_gt(__vector float __a, __vector float __b) {
5100 int __cc;
5101 __builtin_s390_vfchsbs(__a, __b, &__cc);
5102 return __cc <= 1;
5103 }
5104 #endif
5105
5106 static inline __ATTRS_o_ai int
vec_any_gt(__vector double __a,__vector double __b)5107 vec_any_gt(__vector double __a, __vector double __b) {
5108 int __cc;
5109 __builtin_s390_vfchdbs(__a, __b, &__cc);
5110 return __cc <= 1;
5111 }
5112
5113 /*-- vec_any_le -------------------------------------------------------------*/
5114
5115 static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector signed char __b)5116 vec_any_le(__vector signed char __a, __vector signed char __b) {
5117 int __cc;
5118 __builtin_s390_vchbs(__a, __b, &__cc);
5119 return __cc != 0;
5120 }
5121
5122 // This prototype is deprecated.
5123 static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector __bool char __b)5124 vec_any_le(__vector signed char __a, __vector __bool char __b) {
5125 int __cc;
5126 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5127 return __cc != 0;
5128 }
5129
5130 // This prototype is deprecated.
5131 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector signed char __b)5132 vec_any_le(__vector __bool char __a, __vector signed char __b) {
5133 int __cc;
5134 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5135 return __cc != 0;
5136 }
5137
5138 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector unsigned char __b)5139 vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
5140 int __cc;
5141 __builtin_s390_vchlbs(__a, __b, &__cc);
5142 return __cc != 0;
5143 }
5144
5145 // This prototype is deprecated.
5146 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector __bool char __b)5147 vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
5148 int __cc;
5149 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5150 return __cc != 0;
5151 }
5152
5153 // This prototype is deprecated.
5154 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector unsigned char __b)5155 vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
5156 int __cc;
5157 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5158 return __cc != 0;
5159 }
5160
5161 // This prototype is deprecated.
5162 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector __bool char __b)5163 vec_any_le(__vector __bool char __a, __vector __bool char __b) {
5164 int __cc;
5165 __builtin_s390_vchlbs((__vector unsigned char)__a,
5166 (__vector unsigned char)__b, &__cc);
5167 return __cc != 0;
5168 }
5169
5170 static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector signed short __b)5171 vec_any_le(__vector signed short __a, __vector signed short __b) {
5172 int __cc;
5173 __builtin_s390_vchhs(__a, __b, &__cc);
5174 return __cc != 0;
5175 }
5176
5177 // This prototype is deprecated.
5178 static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector __bool short __b)5179 vec_any_le(__vector signed short __a, __vector __bool short __b) {
5180 int __cc;
5181 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5182 return __cc != 0;
5183 }
5184
5185 // This prototype is deprecated.
5186 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector signed short __b)5187 vec_any_le(__vector __bool short __a, __vector signed short __b) {
5188 int __cc;
5189 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5190 return __cc != 0;
5191 }
5192
5193 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector unsigned short __b)5194 vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
5195 int __cc;
5196 __builtin_s390_vchlhs(__a, __b, &__cc);
5197 return __cc != 0;
5198 }
5199
5200 // This prototype is deprecated.
5201 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector __bool short __b)5202 vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
5203 int __cc;
5204 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5205 return __cc != 0;
5206 }
5207
5208 // This prototype is deprecated.
5209 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector unsigned short __b)5210 vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
5211 int __cc;
5212 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5213 return __cc != 0;
5214 }
5215
5216 // This prototype is deprecated.
5217 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector __bool short __b)5218 vec_any_le(__vector __bool short __a, __vector __bool short __b) {
5219 int __cc;
5220 __builtin_s390_vchlhs((__vector unsigned short)__a,
5221 (__vector unsigned short)__b, &__cc);
5222 return __cc != 0;
5223 }
5224
5225 static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector signed int __b)5226 vec_any_le(__vector signed int __a, __vector signed int __b) {
5227 int __cc;
5228 __builtin_s390_vchfs(__a, __b, &__cc);
5229 return __cc != 0;
5230 }
5231
5232 // This prototype is deprecated.
5233 static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector __bool int __b)5234 vec_any_le(__vector signed int __a, __vector __bool int __b) {
5235 int __cc;
5236 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5237 return __cc != 0;
5238 }
5239
5240 // This prototype is deprecated.
5241 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector signed int __b)5242 vec_any_le(__vector __bool int __a, __vector signed int __b) {
5243 int __cc;
5244 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5245 return __cc != 0;
5246 }
5247
5248 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector unsigned int __b)5249 vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
5250 int __cc;
5251 __builtin_s390_vchlfs(__a, __b, &__cc);
5252 return __cc != 0;
5253 }
5254
5255 // This prototype is deprecated.
5256 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector __bool int __b)5257 vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
5258 int __cc;
5259 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5260 return __cc != 0;
5261 }
5262
5263 // This prototype is deprecated.
5264 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector unsigned int __b)5265 vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
5266 int __cc;
5267 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5268 return __cc != 0;
5269 }
5270
5271 // This prototype is deprecated.
5272 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector __bool int __b)5273 vec_any_le(__vector __bool int __a, __vector __bool int __b) {
5274 int __cc;
5275 __builtin_s390_vchlfs((__vector unsigned int)__a,
5276 (__vector unsigned int)__b, &__cc);
5277 return __cc != 0;
5278 }
5279
5280 static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector signed long long __b)5281 vec_any_le(__vector signed long long __a, __vector signed long long __b) {
5282 int __cc;
5283 __builtin_s390_vchgs(__a, __b, &__cc);
5284 return __cc != 0;
5285 }
5286
5287 // This prototype is deprecated.
5288 static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector __bool long long __b)5289 vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
5290 int __cc;
5291 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5292 return __cc != 0;
5293 }
5294
5295 // This prototype is deprecated.
5296 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector signed long long __b)5297 vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
5298 int __cc;
5299 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5300 return __cc != 0;
5301 }
5302
5303 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector unsigned long long __b)5304 vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
5305 int __cc;
5306 __builtin_s390_vchlgs(__a, __b, &__cc);
5307 return __cc != 0;
5308 }
5309
5310 // This prototype is deprecated.
5311 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector __bool long long __b)5312 vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
5313 int __cc;
5314 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5315 return __cc != 0;
5316 }
5317
5318 // This prototype is deprecated.
5319 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector unsigned long long __b)5320 vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
5321 int __cc;
5322 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5323 return __cc != 0;
5324 }
5325
5326 // This prototype is deprecated.
5327 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector __bool long long __b)5328 vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
5329 int __cc;
5330 __builtin_s390_vchlgs((__vector unsigned long long)__a,
5331 (__vector unsigned long long)__b, &__cc);
5332 return __cc != 0;
5333 }
5334
5335 #if __ARCH__ >= 12
5336 static inline __ATTRS_o_ai int
vec_any_le(__vector float __a,__vector float __b)5337 vec_any_le(__vector float __a, __vector float __b) {
5338 int __cc;
5339 __builtin_s390_vfchesbs(__b, __a, &__cc);
5340 return __cc <= 1;
5341 }
5342 #endif
5343
5344 static inline __ATTRS_o_ai int
vec_any_le(__vector double __a,__vector double __b)5345 vec_any_le(__vector double __a, __vector double __b) {
5346 int __cc;
5347 __builtin_s390_vfchedbs(__b, __a, &__cc);
5348 return __cc <= 1;
5349 }
5350
5351 /*-- vec_any_lt -------------------------------------------------------------*/
5352
5353 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector signed char __b)5354 vec_any_lt(__vector signed char __a, __vector signed char __b) {
5355 int __cc;
5356 __builtin_s390_vchbs(__b, __a, &__cc);
5357 return __cc <= 1;
5358 }
5359
5360 // This prototype is deprecated.
5361 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector __bool char __b)5362 vec_any_lt(__vector signed char __a, __vector __bool char __b) {
5363 int __cc;
5364 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5365 return __cc <= 1;
5366 }
5367
5368 // This prototype is deprecated.
5369 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector signed char __b)5370 vec_any_lt(__vector __bool char __a, __vector signed char __b) {
5371 int __cc;
5372 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5373 return __cc <= 1;
5374 }
5375
5376 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector unsigned char __b)5377 vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
5378 int __cc;
5379 __builtin_s390_vchlbs(__b, __a, &__cc);
5380 return __cc <= 1;
5381 }
5382
5383 // This prototype is deprecated.
5384 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector __bool char __b)5385 vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
5386 int __cc;
5387 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5388 return __cc <= 1;
5389 }
5390
5391 // This prototype is deprecated.
5392 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector unsigned char __b)5393 vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
5394 int __cc;
5395 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5396 return __cc <= 1;
5397 }
5398
5399 // This prototype is deprecated.
5400 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector __bool char __b)5401 vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
5402 int __cc;
5403 __builtin_s390_vchlbs((__vector unsigned char)__b,
5404 (__vector unsigned char)__a, &__cc);
5405 return __cc <= 1;
5406 }
5407
5408 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector signed short __b)5409 vec_any_lt(__vector signed short __a, __vector signed short __b) {
5410 int __cc;
5411 __builtin_s390_vchhs(__b, __a, &__cc);
5412 return __cc <= 1;
5413 }
5414
5415 // This prototype is deprecated.
5416 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector __bool short __b)5417 vec_any_lt(__vector signed short __a, __vector __bool short __b) {
5418 int __cc;
5419 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
5420 return __cc <= 1;
5421 }
5422
5423 // This prototype is deprecated.
5424 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector signed short __b)5425 vec_any_lt(__vector __bool short __a, __vector signed short __b) {
5426 int __cc;
5427 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
5428 return __cc <= 1;
5429 }
5430
5431 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector unsigned short __b)5432 vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
5433 int __cc;
5434 __builtin_s390_vchlhs(__b, __a, &__cc);
5435 return __cc <= 1;
5436 }
5437
5438 // This prototype is deprecated.
5439 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector __bool short __b)5440 vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
5441 int __cc;
5442 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
5443 return __cc <= 1;
5444 }
5445
5446 // This prototype is deprecated.
5447 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector unsigned short __b)5448 vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
5449 int __cc;
5450 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
5451 return __cc <= 1;
5452 }
5453
5454 // This prototype is deprecated.
5455 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector __bool short __b)5456 vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
5457 int __cc;
5458 __builtin_s390_vchlhs((__vector unsigned short)__b,
5459 (__vector unsigned short)__a, &__cc);
5460 return __cc <= 1;
5461 }
5462
5463 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector signed int __b)5464 vec_any_lt(__vector signed int __a, __vector signed int __b) {
5465 int __cc;
5466 __builtin_s390_vchfs(__b, __a, &__cc);
5467 return __cc <= 1;
5468 }
5469
5470 // This prototype is deprecated.
5471 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector __bool int __b)5472 vec_any_lt(__vector signed int __a, __vector __bool int __b) {
5473 int __cc;
5474 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
5475 return __cc <= 1;
5476 }
5477
5478 // This prototype is deprecated.
5479 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector signed int __b)5480 vec_any_lt(__vector __bool int __a, __vector signed int __b) {
5481 int __cc;
5482 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
5483 return __cc <= 1;
5484 }
5485
5486 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector unsigned int __b)5487 vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
5488 int __cc;
5489 __builtin_s390_vchlfs(__b, __a, &__cc);
5490 return __cc <= 1;
5491 }
5492
5493 // This prototype is deprecated.
5494 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector __bool int __b)5495 vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
5496 int __cc;
5497 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
5498 return __cc <= 1;
5499 }
5500
5501 // This prototype is deprecated.
5502 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector unsigned int __b)5503 vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
5504 int __cc;
5505 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
5506 return __cc <= 1;
5507 }
5508
5509 // This prototype is deprecated.
5510 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector __bool int __b)5511 vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
5512 int __cc;
5513 __builtin_s390_vchlfs((__vector unsigned int)__b,
5514 (__vector unsigned int)__a, &__cc);
5515 return __cc <= 1;
5516 }
5517
5518 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector signed long long __b)5519 vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
5520 int __cc;
5521 __builtin_s390_vchgs(__b, __a, &__cc);
5522 return __cc <= 1;
5523 }
5524
5525 // This prototype is deprecated.
5526 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector __bool long long __b)5527 vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
5528 int __cc;
5529 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
5530 return __cc <= 1;
5531 }
5532
5533 // This prototype is deprecated.
5534 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector signed long long __b)5535 vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
5536 int __cc;
5537 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
5538 return __cc <= 1;
5539 }
5540
5541 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector unsigned long long __b)5542 vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
5543 int __cc;
5544 __builtin_s390_vchlgs(__b, __a, &__cc);
5545 return __cc <= 1;
5546 }
5547
5548 // This prototype is deprecated.
5549 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector __bool long long __b)5550 vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
5551 int __cc;
5552 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
5553 return __cc <= 1;
5554 }
5555
5556 // This prototype is deprecated.
5557 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector unsigned long long __b)5558 vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
5559 int __cc;
5560 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
5561 return __cc <= 1;
5562 }
5563
5564 // This prototype is deprecated.
5565 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector __bool long long __b)5566 vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
5567 int __cc;
5568 __builtin_s390_vchlgs((__vector unsigned long long)__b,
5569 (__vector unsigned long long)__a, &__cc);
5570 return __cc <= 1;
5571 }
5572
5573 #if __ARCH__ >= 12
5574 static inline __ATTRS_o_ai int
vec_any_lt(__vector float __a,__vector float __b)5575 vec_any_lt(__vector float __a, __vector float __b) {
5576 int __cc;
5577 __builtin_s390_vfchsbs(__b, __a, &__cc);
5578 return __cc <= 1;
5579 }
5580 #endif
5581
5582 static inline __ATTRS_o_ai int
vec_any_lt(__vector double __a,__vector double __b)5583 vec_any_lt(__vector double __a, __vector double __b) {
5584 int __cc;
5585 __builtin_s390_vfchdbs(__b, __a, &__cc);
5586 return __cc <= 1;
5587 }
5588
5589 /*-- vec_any_nge ------------------------------------------------------------*/
5590
5591 #if __ARCH__ >= 12
5592 static inline __ATTRS_o_ai int
vec_any_nge(__vector float __a,__vector float __b)5593 vec_any_nge(__vector float __a, __vector float __b) {
5594 int __cc;
5595 __builtin_s390_vfchesbs(__a, __b, &__cc);
5596 return __cc != 0;
5597 }
5598 #endif
5599
5600 static inline __ATTRS_o_ai int
vec_any_nge(__vector double __a,__vector double __b)5601 vec_any_nge(__vector double __a, __vector double __b) {
5602 int __cc;
5603 __builtin_s390_vfchedbs(__a, __b, &__cc);
5604 return __cc != 0;
5605 }
5606
5607 /*-- vec_any_ngt ------------------------------------------------------------*/
5608
5609 #if __ARCH__ >= 12
5610 static inline __ATTRS_o_ai int
vec_any_ngt(__vector float __a,__vector float __b)5611 vec_any_ngt(__vector float __a, __vector float __b) {
5612 int __cc;
5613 __builtin_s390_vfchsbs(__a, __b, &__cc);
5614 return __cc != 0;
5615 }
5616 #endif
5617
5618 static inline __ATTRS_o_ai int
vec_any_ngt(__vector double __a,__vector double __b)5619 vec_any_ngt(__vector double __a, __vector double __b) {
5620 int __cc;
5621 __builtin_s390_vfchdbs(__a, __b, &__cc);
5622 return __cc != 0;
5623 }
5624
5625 /*-- vec_any_nle ------------------------------------------------------------*/
5626
5627 #if __ARCH__ >= 12
5628 static inline __ATTRS_o_ai int
vec_any_nle(__vector float __a,__vector float __b)5629 vec_any_nle(__vector float __a, __vector float __b) {
5630 int __cc;
5631 __builtin_s390_vfchesbs(__b, __a, &__cc);
5632 return __cc != 0;
5633 }
5634 #endif
5635
5636 static inline __ATTRS_o_ai int
vec_any_nle(__vector double __a,__vector double __b)5637 vec_any_nle(__vector double __a, __vector double __b) {
5638 int __cc;
5639 __builtin_s390_vfchedbs(__b, __a, &__cc);
5640 return __cc != 0;
5641 }
5642
5643 /*-- vec_any_nlt ------------------------------------------------------------*/
5644
5645 #if __ARCH__ >= 12
5646 static inline __ATTRS_o_ai int
vec_any_nlt(__vector float __a,__vector float __b)5647 vec_any_nlt(__vector float __a, __vector float __b) {
5648 int __cc;
5649 __builtin_s390_vfchsbs(__b, __a, &__cc);
5650 return __cc != 0;
5651 }
5652 #endif
5653
5654 static inline __ATTRS_o_ai int
vec_any_nlt(__vector double __a,__vector double __b)5655 vec_any_nlt(__vector double __a, __vector double __b) {
5656 int __cc;
5657 __builtin_s390_vfchdbs(__b, __a, &__cc);
5658 return __cc != 0;
5659 }
5660
5661 /*-- vec_any_nan ------------------------------------------------------------*/
5662
5663 #if __ARCH__ >= 12
5664 static inline __ATTRS_o_ai int
vec_any_nan(__vector float __a)5665 vec_any_nan(__vector float __a) {
5666 int __cc;
5667 __builtin_s390_vftcisb(__a, 15, &__cc);
5668 return __cc != 3;
5669 }
5670 #endif
5671
5672 static inline __ATTRS_o_ai int
vec_any_nan(__vector double __a)5673 vec_any_nan(__vector double __a) {
5674 int __cc;
5675 __builtin_s390_vftcidb(__a, 15, &__cc);
5676 return __cc != 3;
5677 }
5678
5679 /*-- vec_any_numeric --------------------------------------------------------*/
5680
5681 #if __ARCH__ >= 12
5682 static inline __ATTRS_o_ai int
vec_any_numeric(__vector float __a)5683 vec_any_numeric(__vector float __a) {
5684 int __cc;
5685 __builtin_s390_vftcisb(__a, 15, &__cc);
5686 return __cc != 0;
5687 }
5688 #endif
5689
5690 static inline __ATTRS_o_ai int
vec_any_numeric(__vector double __a)5691 vec_any_numeric(__vector double __a) {
5692 int __cc;
5693 __builtin_s390_vftcidb(__a, 15, &__cc);
5694 return __cc != 0;
5695 }
5696
5697 /*-- vec_andc ---------------------------------------------------------------*/
5698
5699 static inline __ATTRS_o_ai __vector __bool char
vec_andc(__vector __bool char __a,__vector __bool char __b)5700 vec_andc(__vector __bool char __a, __vector __bool char __b) {
5701 return __a & ~__b;
5702 }
5703
5704 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector signed char __b)5705 vec_andc(__vector signed char __a, __vector signed char __b) {
5706 return __a & ~__b;
5707 }
5708
5709 // This prototype is deprecated.
5710 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector __bool char __a,__vector signed char __b)5711 vec_andc(__vector __bool char __a, __vector signed char __b) {
5712 return __a & ~__b;
5713 }
5714
5715 // This prototype is deprecated.
5716 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector __bool char __b)5717 vec_andc(__vector signed char __a, __vector __bool char __b) {
5718 return __a & ~__b;
5719 }
5720
5721 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector unsigned char __b)5722 vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
5723 return __a & ~__b;
5724 }
5725
5726 // This prototype is deprecated.
5727 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector __bool char __a,__vector unsigned char __b)5728 vec_andc(__vector __bool char __a, __vector unsigned char __b) {
5729 return __a & ~__b;
5730 }
5731
5732 // This prototype is deprecated.
5733 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector __bool char __b)5734 vec_andc(__vector unsigned char __a, __vector __bool char __b) {
5735 return __a & ~__b;
5736 }
5737
5738 static inline __ATTRS_o_ai __vector __bool short
vec_andc(__vector __bool short __a,__vector __bool short __b)5739 vec_andc(__vector __bool short __a, __vector __bool short __b) {
5740 return __a & ~__b;
5741 }
5742
5743 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector signed short __b)5744 vec_andc(__vector signed short __a, __vector signed short __b) {
5745 return __a & ~__b;
5746 }
5747
5748 // This prototype is deprecated.
5749 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector __bool short __a,__vector signed short __b)5750 vec_andc(__vector __bool short __a, __vector signed short __b) {
5751 return __a & ~__b;
5752 }
5753
5754 // This prototype is deprecated.
5755 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector __bool short __b)5756 vec_andc(__vector signed short __a, __vector __bool short __b) {
5757 return __a & ~__b;
5758 }
5759
5760 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector unsigned short __b)5761 vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
5762 return __a & ~__b;
5763 }
5764
5765 // This prototype is deprecated.
5766 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector __bool short __a,__vector unsigned short __b)5767 vec_andc(__vector __bool short __a, __vector unsigned short __b) {
5768 return __a & ~__b;
5769 }
5770
5771 // This prototype is deprecated.
5772 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector __bool short __b)5773 vec_andc(__vector unsigned short __a, __vector __bool short __b) {
5774 return __a & ~__b;
5775 }
5776
5777 static inline __ATTRS_o_ai __vector __bool int
vec_andc(__vector __bool int __a,__vector __bool int __b)5778 vec_andc(__vector __bool int __a, __vector __bool int __b) {
5779 return __a & ~__b;
5780 }
5781
5782 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector signed int __b)5783 vec_andc(__vector signed int __a, __vector signed int __b) {
5784 return __a & ~__b;
5785 }
5786
5787 // This prototype is deprecated.
5788 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector __bool int __a,__vector signed int __b)5789 vec_andc(__vector __bool int __a, __vector signed int __b) {
5790 return __a & ~__b;
5791 }
5792
5793 // This prototype is deprecated.
5794 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector __bool int __b)5795 vec_andc(__vector signed int __a, __vector __bool int __b) {
5796 return __a & ~__b;
5797 }
5798
5799 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector unsigned int __b)5800 vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
5801 return __a & ~__b;
5802 }
5803
5804 // This prototype is deprecated.
5805 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector __bool int __a,__vector unsigned int __b)5806 vec_andc(__vector __bool int __a, __vector unsigned int __b) {
5807 return __a & ~__b;
5808 }
5809
5810 // This prototype is deprecated.
5811 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector __bool int __b)5812 vec_andc(__vector unsigned int __a, __vector __bool int __b) {
5813 return __a & ~__b;
5814 }
5815
5816 static inline __ATTRS_o_ai __vector __bool long long
vec_andc(__vector __bool long long __a,__vector __bool long long __b)5817 vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
5818 return __a & ~__b;
5819 }
5820
5821 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector signed long long __b)5822 vec_andc(__vector signed long long __a, __vector signed long long __b) {
5823 return __a & ~__b;
5824 }
5825
5826 // This prototype is deprecated.
5827 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector __bool long long __a,__vector signed long long __b)5828 vec_andc(__vector __bool long long __a, __vector signed long long __b) {
5829 return __a & ~__b;
5830 }
5831
5832 // This prototype is deprecated.
5833 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector __bool long long __b)5834 vec_andc(__vector signed long long __a, __vector __bool long long __b) {
5835 return __a & ~__b;
5836 }
5837
5838 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector unsigned long long __b)5839 vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
5840 return __a & ~__b;
5841 }
5842
5843 // This prototype is deprecated.
5844 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector __bool long long __a,__vector unsigned long long __b)5845 vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
5846 return __a & ~__b;
5847 }
5848
5849 // This prototype is deprecated.
5850 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector __bool long long __b)5851 vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
5852 return __a & ~__b;
5853 }
5854
5855 #if __ARCH__ >= 12
5856 static inline __ATTRS_o_ai __vector float
vec_andc(__vector float __a,__vector float __b)5857 vec_andc(__vector float __a, __vector float __b) {
5858 return (__vector float)((__vector unsigned int)__a &
5859 ~(__vector unsigned int)__b);
5860 }
5861 #endif
5862
5863 static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector double __b)5864 vec_andc(__vector double __a, __vector double __b) {
5865 return (__vector double)((__vector unsigned long long)__a &
5866 ~(__vector unsigned long long)__b);
5867 }
5868
5869 // This prototype is deprecated.
5870 static inline __ATTRS_o_ai __vector double
vec_andc(__vector __bool long long __a,__vector double __b)5871 vec_andc(__vector __bool long long __a, __vector double __b) {
5872 return (__vector double)((__vector unsigned long long)__a &
5873 ~(__vector unsigned long long)__b);
5874 }
5875
5876 // This prototype is deprecated.
5877 static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector __bool long long __b)5878 vec_andc(__vector double __a, __vector __bool long long __b) {
5879 return (__vector double)((__vector unsigned long long)__a &
5880 ~(__vector unsigned long long)__b);
5881 }
5882
5883 /*-- vec_nor ----------------------------------------------------------------*/
5884
5885 static inline __ATTRS_o_ai __vector __bool char
vec_nor(__vector __bool char __a,__vector __bool char __b)5886 vec_nor(__vector __bool char __a, __vector __bool char __b) {
5887 return ~(__a | __b);
5888 }
5889
5890 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector signed char __b)5891 vec_nor(__vector signed char __a, __vector signed char __b) {
5892 return ~(__a | __b);
5893 }
5894
5895 // This prototype is deprecated.
5896 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector __bool char __a,__vector signed char __b)5897 vec_nor(__vector __bool char __a, __vector signed char __b) {
5898 return ~(__a | __b);
5899 }
5900
5901 // This prototype is deprecated.
5902 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector __bool char __b)5903 vec_nor(__vector signed char __a, __vector __bool char __b) {
5904 return ~(__a | __b);
5905 }
5906
5907 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector unsigned char __b)5908 vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
5909 return ~(__a | __b);
5910 }
5911
5912 // This prototype is deprecated.
5913 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector __bool char __a,__vector unsigned char __b)5914 vec_nor(__vector __bool char __a, __vector unsigned char __b) {
5915 return ~(__a | __b);
5916 }
5917
5918 // This prototype is deprecated.
5919 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector __bool char __b)5920 vec_nor(__vector unsigned char __a, __vector __bool char __b) {
5921 return ~(__a | __b);
5922 }
5923
5924 static inline __ATTRS_o_ai __vector __bool short
vec_nor(__vector __bool short __a,__vector __bool short __b)5925 vec_nor(__vector __bool short __a, __vector __bool short __b) {
5926 return ~(__a | __b);
5927 }
5928
5929 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector signed short __b)5930 vec_nor(__vector signed short __a, __vector signed short __b) {
5931 return ~(__a | __b);
5932 }
5933
5934 // This prototype is deprecated.
5935 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector __bool short __a,__vector signed short __b)5936 vec_nor(__vector __bool short __a, __vector signed short __b) {
5937 return ~(__a | __b);
5938 }
5939
5940 // This prototype is deprecated.
5941 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector __bool short __b)5942 vec_nor(__vector signed short __a, __vector __bool short __b) {
5943 return ~(__a | __b);
5944 }
5945
5946 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector unsigned short __b)5947 vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
5948 return ~(__a | __b);
5949 }
5950
5951 // This prototype is deprecated.
5952 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector __bool short __a,__vector unsigned short __b)5953 vec_nor(__vector __bool short __a, __vector unsigned short __b) {
5954 return ~(__a | __b);
5955 }
5956
5957 // This prototype is deprecated.
5958 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector __bool short __b)5959 vec_nor(__vector unsigned short __a, __vector __bool short __b) {
5960 return ~(__a | __b);
5961 }
5962
5963 static inline __ATTRS_o_ai __vector __bool int
vec_nor(__vector __bool int __a,__vector __bool int __b)5964 vec_nor(__vector __bool int __a, __vector __bool int __b) {
5965 return ~(__a | __b);
5966 }
5967
5968 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector signed int __b)5969 vec_nor(__vector signed int __a, __vector signed int __b) {
5970 return ~(__a | __b);
5971 }
5972
5973 // This prototype is deprecated.
5974 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector __bool int __a,__vector signed int __b)5975 vec_nor(__vector __bool int __a, __vector signed int __b) {
5976 return ~(__a | __b);
5977 }
5978
5979 // This prototype is deprecated.
5980 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector __bool int __b)5981 vec_nor(__vector signed int __a, __vector __bool int __b) {
5982 return ~(__a | __b);
5983 }
5984
5985 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector unsigned int __b)5986 vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
5987 return ~(__a | __b);
5988 }
5989
5990 // This prototype is deprecated.
5991 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector __bool int __a,__vector unsigned int __b)5992 vec_nor(__vector __bool int __a, __vector unsigned int __b) {
5993 return ~(__a | __b);
5994 }
5995
5996 // This prototype is deprecated.
5997 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector __bool int __b)5998 vec_nor(__vector unsigned int __a, __vector __bool int __b) {
5999 return ~(__a | __b);
6000 }
6001
6002 static inline __ATTRS_o_ai __vector __bool long long
vec_nor(__vector __bool long long __a,__vector __bool long long __b)6003 vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
6004 return ~(__a | __b);
6005 }
6006
6007 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector signed long long __b)6008 vec_nor(__vector signed long long __a, __vector signed long long __b) {
6009 return ~(__a | __b);
6010 }
6011
6012 // This prototype is deprecated.
6013 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector __bool long long __a,__vector signed long long __b)6014 vec_nor(__vector __bool long long __a, __vector signed long long __b) {
6015 return ~(__a | __b);
6016 }
6017
6018 // This prototype is deprecated.
6019 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector __bool long long __b)6020 vec_nor(__vector signed long long __a, __vector __bool long long __b) {
6021 return ~(__a | __b);
6022 }
6023
6024 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector unsigned long long __b)6025 vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
6026 return ~(__a | __b);
6027 }
6028
6029 // This prototype is deprecated.
6030 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector __bool long long __a,__vector unsigned long long __b)6031 vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
6032 return ~(__a | __b);
6033 }
6034
6035 // This prototype is deprecated.
6036 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector __bool long long __b)6037 vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
6038 return ~(__a | __b);
6039 }
6040
6041 #if __ARCH__ >= 12
6042 static inline __ATTRS_o_ai __vector float
vec_nor(__vector float __a,__vector float __b)6043 vec_nor(__vector float __a, __vector float __b) {
6044 return (__vector float)~((__vector unsigned int)__a |
6045 (__vector unsigned int)__b);
6046 }
6047 #endif
6048
6049 static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector double __b)6050 vec_nor(__vector double __a, __vector double __b) {
6051 return (__vector double)~((__vector unsigned long long)__a |
6052 (__vector unsigned long long)__b);
6053 }
6054
6055 // This prototype is deprecated.
6056 static inline __ATTRS_o_ai __vector double
vec_nor(__vector __bool long long __a,__vector double __b)6057 vec_nor(__vector __bool long long __a, __vector double __b) {
6058 return (__vector double)~((__vector unsigned long long)__a |
6059 (__vector unsigned long long)__b);
6060 }
6061
6062 // This prototype is deprecated.
6063 static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector __bool long long __b)6064 vec_nor(__vector double __a, __vector __bool long long __b) {
6065 return (__vector double)~((__vector unsigned long long)__a |
6066 (__vector unsigned long long)__b);
6067 }
6068
6069 /*-- vec_orc ----------------------------------------------------------------*/
6070
6071 #if __ARCH__ >= 12
6072 static inline __ATTRS_o_ai __vector __bool char
vec_orc(__vector __bool char __a,__vector __bool char __b)6073 vec_orc(__vector __bool char __a, __vector __bool char __b) {
6074 return __a | ~__b;
6075 }
6076
6077 static inline __ATTRS_o_ai __vector signed char
vec_orc(__vector signed char __a,__vector signed char __b)6078 vec_orc(__vector signed char __a, __vector signed char __b) {
6079 return __a | ~__b;
6080 }
6081
6082 static inline __ATTRS_o_ai __vector unsigned char
vec_orc(__vector unsigned char __a,__vector unsigned char __b)6083 vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
6084 return __a | ~__b;
6085 }
6086
6087 static inline __ATTRS_o_ai __vector __bool short
vec_orc(__vector __bool short __a,__vector __bool short __b)6088 vec_orc(__vector __bool short __a, __vector __bool short __b) {
6089 return __a | ~__b;
6090 }
6091
6092 static inline __ATTRS_o_ai __vector signed short
vec_orc(__vector signed short __a,__vector signed short __b)6093 vec_orc(__vector signed short __a, __vector signed short __b) {
6094 return __a | ~__b;
6095 }
6096
6097 static inline __ATTRS_o_ai __vector unsigned short
vec_orc(__vector unsigned short __a,__vector unsigned short __b)6098 vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
6099 return __a | ~__b;
6100 }
6101
6102 static inline __ATTRS_o_ai __vector __bool int
vec_orc(__vector __bool int __a,__vector __bool int __b)6103 vec_orc(__vector __bool int __a, __vector __bool int __b) {
6104 return __a | ~__b;
6105 }
6106
6107 static inline __ATTRS_o_ai __vector signed int
vec_orc(__vector signed int __a,__vector signed int __b)6108 vec_orc(__vector signed int __a, __vector signed int __b) {
6109 return __a | ~__b;
6110 }
6111
6112 static inline __ATTRS_o_ai __vector unsigned int
vec_orc(__vector unsigned int __a,__vector unsigned int __b)6113 vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
6114 return __a | ~__b;
6115 }
6116
6117 static inline __ATTRS_o_ai __vector __bool long long
vec_orc(__vector __bool long long __a,__vector __bool long long __b)6118 vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
6119 return __a | ~__b;
6120 }
6121
6122 static inline __ATTRS_o_ai __vector signed long long
vec_orc(__vector signed long long __a,__vector signed long long __b)6123 vec_orc(__vector signed long long __a, __vector signed long long __b) {
6124 return __a | ~__b;
6125 }
6126
6127 static inline __ATTRS_o_ai __vector unsigned long long
vec_orc(__vector unsigned long long __a,__vector unsigned long long __b)6128 vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
6129 return __a | ~__b;
6130 }
6131
6132 static inline __ATTRS_o_ai __vector float
vec_orc(__vector float __a,__vector float __b)6133 vec_orc(__vector float __a, __vector float __b) {
6134 return (__vector float)((__vector unsigned int)__a |
6135 ~(__vector unsigned int)__b);
6136 }
6137
6138 static inline __ATTRS_o_ai __vector double
vec_orc(__vector double __a,__vector double __b)6139 vec_orc(__vector double __a, __vector double __b) {
6140 return (__vector double)((__vector unsigned long long)__a |
6141 ~(__vector unsigned long long)__b);
6142 }
6143 #endif
6144
6145 /*-- vec_nand ---------------------------------------------------------------*/
6146
6147 #if __ARCH__ >= 12
6148 static inline __ATTRS_o_ai __vector __bool char
vec_nand(__vector __bool char __a,__vector __bool char __b)6149 vec_nand(__vector __bool char __a, __vector __bool char __b) {
6150 return ~(__a & __b);
6151 }
6152
6153 static inline __ATTRS_o_ai __vector signed char
vec_nand(__vector signed char __a,__vector signed char __b)6154 vec_nand(__vector signed char __a, __vector signed char __b) {
6155 return ~(__a & __b);
6156 }
6157
6158 static inline __ATTRS_o_ai __vector unsigned char
vec_nand(__vector unsigned char __a,__vector unsigned char __b)6159 vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
6160 return ~(__a & __b);
6161 }
6162
6163 static inline __ATTRS_o_ai __vector __bool short
vec_nand(__vector __bool short __a,__vector __bool short __b)6164 vec_nand(__vector __bool short __a, __vector __bool short __b) {
6165 return ~(__a & __b);
6166 }
6167
6168 static inline __ATTRS_o_ai __vector signed short
vec_nand(__vector signed short __a,__vector signed short __b)6169 vec_nand(__vector signed short __a, __vector signed short __b) {
6170 return ~(__a & __b);
6171 }
6172
6173 static inline __ATTRS_o_ai __vector unsigned short
vec_nand(__vector unsigned short __a,__vector unsigned short __b)6174 vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
6175 return ~(__a & __b);
6176 }
6177
6178 static inline __ATTRS_o_ai __vector __bool int
vec_nand(__vector __bool int __a,__vector __bool int __b)6179 vec_nand(__vector __bool int __a, __vector __bool int __b) {
6180 return ~(__a & __b);
6181 }
6182
6183 static inline __ATTRS_o_ai __vector signed int
vec_nand(__vector signed int __a,__vector signed int __b)6184 vec_nand(__vector signed int __a, __vector signed int __b) {
6185 return ~(__a & __b);
6186 }
6187
6188 static inline __ATTRS_o_ai __vector unsigned int
vec_nand(__vector unsigned int __a,__vector unsigned int __b)6189 vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
6190 return ~(__a & __b);
6191 }
6192
6193 static inline __ATTRS_o_ai __vector __bool long long
vec_nand(__vector __bool long long __a,__vector __bool long long __b)6194 vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
6195 return ~(__a & __b);
6196 }
6197
6198 static inline __ATTRS_o_ai __vector signed long long
vec_nand(__vector signed long long __a,__vector signed long long __b)6199 vec_nand(__vector signed long long __a, __vector signed long long __b) {
6200 return ~(__a & __b);
6201 }
6202
6203 static inline __ATTRS_o_ai __vector unsigned long long
vec_nand(__vector unsigned long long __a,__vector unsigned long long __b)6204 vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
6205 return ~(__a & __b);
6206 }
6207
6208 static inline __ATTRS_o_ai __vector float
vec_nand(__vector float __a,__vector float __b)6209 vec_nand(__vector float __a, __vector float __b) {
6210 return (__vector float)~((__vector unsigned int)__a &
6211 (__vector unsigned int)__b);
6212 }
6213
6214 static inline __ATTRS_o_ai __vector double
vec_nand(__vector double __a,__vector double __b)6215 vec_nand(__vector double __a, __vector double __b) {
6216 return (__vector double)~((__vector unsigned long long)__a &
6217 (__vector unsigned long long)__b);
6218 }
6219 #endif
6220
6221 /*-- vec_eqv ----------------------------------------------------------------*/
6222
6223 #if __ARCH__ >= 12
6224 static inline __ATTRS_o_ai __vector __bool char
vec_eqv(__vector __bool char __a,__vector __bool char __b)6225 vec_eqv(__vector __bool char __a, __vector __bool char __b) {
6226 return ~(__a ^ __b);
6227 }
6228
6229 static inline __ATTRS_o_ai __vector signed char
vec_eqv(__vector signed char __a,__vector signed char __b)6230 vec_eqv(__vector signed char __a, __vector signed char __b) {
6231 return ~(__a ^ __b);
6232 }
6233
6234 static inline __ATTRS_o_ai __vector unsigned char
vec_eqv(__vector unsigned char __a,__vector unsigned char __b)6235 vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
6236 return ~(__a ^ __b);
6237 }
6238
6239 static inline __ATTRS_o_ai __vector __bool short
vec_eqv(__vector __bool short __a,__vector __bool short __b)6240 vec_eqv(__vector __bool short __a, __vector __bool short __b) {
6241 return ~(__a ^ __b);
6242 }
6243
6244 static inline __ATTRS_o_ai __vector signed short
vec_eqv(__vector signed short __a,__vector signed short __b)6245 vec_eqv(__vector signed short __a, __vector signed short __b) {
6246 return ~(__a ^ __b);
6247 }
6248
6249 static inline __ATTRS_o_ai __vector unsigned short
vec_eqv(__vector unsigned short __a,__vector unsigned short __b)6250 vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
6251 return ~(__a ^ __b);
6252 }
6253
6254 static inline __ATTRS_o_ai __vector __bool int
vec_eqv(__vector __bool int __a,__vector __bool int __b)6255 vec_eqv(__vector __bool int __a, __vector __bool int __b) {
6256 return ~(__a ^ __b);
6257 }
6258
6259 static inline __ATTRS_o_ai __vector signed int
vec_eqv(__vector signed int __a,__vector signed int __b)6260 vec_eqv(__vector signed int __a, __vector signed int __b) {
6261 return ~(__a ^ __b);
6262 }
6263
6264 static inline __ATTRS_o_ai __vector unsigned int
vec_eqv(__vector unsigned int __a,__vector unsigned int __b)6265 vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
6266 return ~(__a ^ __b);
6267 }
6268
6269 static inline __ATTRS_o_ai __vector __bool long long
vec_eqv(__vector __bool long long __a,__vector __bool long long __b)6270 vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
6271 return ~(__a ^ __b);
6272 }
6273
6274 static inline __ATTRS_o_ai __vector signed long long
vec_eqv(__vector signed long long __a,__vector signed long long __b)6275 vec_eqv(__vector signed long long __a, __vector signed long long __b) {
6276 return ~(__a ^ __b);
6277 }
6278
6279 static inline __ATTRS_o_ai __vector unsigned long long
vec_eqv(__vector unsigned long long __a,__vector unsigned long long __b)6280 vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
6281 return ~(__a ^ __b);
6282 }
6283
6284 static inline __ATTRS_o_ai __vector float
vec_eqv(__vector float __a,__vector float __b)6285 vec_eqv(__vector float __a, __vector float __b) {
6286 return (__vector float)~((__vector unsigned int)__a ^
6287 (__vector unsigned int)__b);
6288 }
6289
6290 static inline __ATTRS_o_ai __vector double
vec_eqv(__vector double __a,__vector double __b)6291 vec_eqv(__vector double __a, __vector double __b) {
6292 return (__vector double)~((__vector unsigned long long)__a ^
6293 (__vector unsigned long long)__b);
6294 }
6295 #endif
6296
6297 /*-- vec_cntlz --------------------------------------------------------------*/
6298
6299 static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector signed char __a)6300 vec_cntlz(__vector signed char __a) {
6301 return __builtin_s390_vclzb((__vector unsigned char)__a);
6302 }
6303
6304 static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector unsigned char __a)6305 vec_cntlz(__vector unsigned char __a) {
6306 return __builtin_s390_vclzb(__a);
6307 }
6308
6309 static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector signed short __a)6310 vec_cntlz(__vector signed short __a) {
6311 return __builtin_s390_vclzh((__vector unsigned short)__a);
6312 }
6313
6314 static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector unsigned short __a)6315 vec_cntlz(__vector unsigned short __a) {
6316 return __builtin_s390_vclzh(__a);
6317 }
6318
6319 static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector signed int __a)6320 vec_cntlz(__vector signed int __a) {
6321 return __builtin_s390_vclzf((__vector unsigned int)__a);
6322 }
6323
6324 static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector unsigned int __a)6325 vec_cntlz(__vector unsigned int __a) {
6326 return __builtin_s390_vclzf(__a);
6327 }
6328
6329 static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector signed long long __a)6330 vec_cntlz(__vector signed long long __a) {
6331 return __builtin_s390_vclzg((__vector unsigned long long)__a);
6332 }
6333
6334 static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector unsigned long long __a)6335 vec_cntlz(__vector unsigned long long __a) {
6336 return __builtin_s390_vclzg(__a);
6337 }
6338
6339 /*-- vec_cnttz --------------------------------------------------------------*/
6340
6341 static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector signed char __a)6342 vec_cnttz(__vector signed char __a) {
6343 return __builtin_s390_vctzb((__vector unsigned char)__a);
6344 }
6345
6346 static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector unsigned char __a)6347 vec_cnttz(__vector unsigned char __a) {
6348 return __builtin_s390_vctzb(__a);
6349 }
6350
6351 static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector signed short __a)6352 vec_cnttz(__vector signed short __a) {
6353 return __builtin_s390_vctzh((__vector unsigned short)__a);
6354 }
6355
6356 static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector unsigned short __a)6357 vec_cnttz(__vector unsigned short __a) {
6358 return __builtin_s390_vctzh(__a);
6359 }
6360
6361 static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector signed int __a)6362 vec_cnttz(__vector signed int __a) {
6363 return __builtin_s390_vctzf((__vector unsigned int)__a);
6364 }
6365
6366 static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector unsigned int __a)6367 vec_cnttz(__vector unsigned int __a) {
6368 return __builtin_s390_vctzf(__a);
6369 }
6370
6371 static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector signed long long __a)6372 vec_cnttz(__vector signed long long __a) {
6373 return __builtin_s390_vctzg((__vector unsigned long long)__a);
6374 }
6375
6376 static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector unsigned long long __a)6377 vec_cnttz(__vector unsigned long long __a) {
6378 return __builtin_s390_vctzg(__a);
6379 }
6380
6381 /*-- vec_popcnt -------------------------------------------------------------*/
6382
6383 static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector signed char __a)6384 vec_popcnt(__vector signed char __a) {
6385 return __builtin_s390_vpopctb((__vector unsigned char)__a);
6386 }
6387
6388 static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector unsigned char __a)6389 vec_popcnt(__vector unsigned char __a) {
6390 return __builtin_s390_vpopctb(__a);
6391 }
6392
6393 static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector signed short __a)6394 vec_popcnt(__vector signed short __a) {
6395 return __builtin_s390_vpopcth((__vector unsigned short)__a);
6396 }
6397
6398 static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector unsigned short __a)6399 vec_popcnt(__vector unsigned short __a) {
6400 return __builtin_s390_vpopcth(__a);
6401 }
6402
6403 static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector signed int __a)6404 vec_popcnt(__vector signed int __a) {
6405 return __builtin_s390_vpopctf((__vector unsigned int)__a);
6406 }
6407
6408 static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector unsigned int __a)6409 vec_popcnt(__vector unsigned int __a) {
6410 return __builtin_s390_vpopctf(__a);
6411 }
6412
6413 static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector signed long long __a)6414 vec_popcnt(__vector signed long long __a) {
6415 return __builtin_s390_vpopctg((__vector unsigned long long)__a);
6416 }
6417
6418 static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector unsigned long long __a)6419 vec_popcnt(__vector unsigned long long __a) {
6420 return __builtin_s390_vpopctg(__a);
6421 }
6422
6423 /*-- vec_rl -----------------------------------------------------------------*/
6424
6425 static inline __ATTRS_o_ai __vector signed char
vec_rl(__vector signed char __a,__vector unsigned char __b)6426 vec_rl(__vector signed char __a, __vector unsigned char __b) {
6427 return (__vector signed char)__builtin_s390_verllvb(
6428 (__vector unsigned char)__a, __b);
6429 }
6430
6431 static inline __ATTRS_o_ai __vector unsigned char
vec_rl(__vector unsigned char __a,__vector unsigned char __b)6432 vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
6433 return __builtin_s390_verllvb(__a, __b);
6434 }
6435
6436 static inline __ATTRS_o_ai __vector signed short
vec_rl(__vector signed short __a,__vector unsigned short __b)6437 vec_rl(__vector signed short __a, __vector unsigned short __b) {
6438 return (__vector signed short)__builtin_s390_verllvh(
6439 (__vector unsigned short)__a, __b);
6440 }
6441
6442 static inline __ATTRS_o_ai __vector unsigned short
vec_rl(__vector unsigned short __a,__vector unsigned short __b)6443 vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
6444 return __builtin_s390_verllvh(__a, __b);
6445 }
6446
6447 static inline __ATTRS_o_ai __vector signed int
vec_rl(__vector signed int __a,__vector unsigned int __b)6448 vec_rl(__vector signed int __a, __vector unsigned int __b) {
6449 return (__vector signed int)__builtin_s390_verllvf(
6450 (__vector unsigned int)__a, __b);
6451 }
6452
6453 static inline __ATTRS_o_ai __vector unsigned int
vec_rl(__vector unsigned int __a,__vector unsigned int __b)6454 vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
6455 return __builtin_s390_verllvf(__a, __b);
6456 }
6457
6458 static inline __ATTRS_o_ai __vector signed long long
vec_rl(__vector signed long long __a,__vector unsigned long long __b)6459 vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
6460 return (__vector signed long long)__builtin_s390_verllvg(
6461 (__vector unsigned long long)__a, __b);
6462 }
6463
6464 static inline __ATTRS_o_ai __vector unsigned long long
vec_rl(__vector unsigned long long __a,__vector unsigned long long __b)6465 vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
6466 return __builtin_s390_verllvg(__a, __b);
6467 }
6468
6469 /*-- vec_rli ----------------------------------------------------------------*/
6470
6471 static inline __ATTRS_o_ai __vector signed char
vec_rli(__vector signed char __a,unsigned long __b)6472 vec_rli(__vector signed char __a, unsigned long __b) {
6473 return (__vector signed char)__builtin_s390_verllb(
6474 (__vector unsigned char)__a, (int)__b);
6475 }
6476
6477 static inline __ATTRS_o_ai __vector unsigned char
vec_rli(__vector unsigned char __a,unsigned long __b)6478 vec_rli(__vector unsigned char __a, unsigned long __b) {
6479 return __builtin_s390_verllb(__a, (int)__b);
6480 }
6481
6482 static inline __ATTRS_o_ai __vector signed short
vec_rli(__vector signed short __a,unsigned long __b)6483 vec_rli(__vector signed short __a, unsigned long __b) {
6484 return (__vector signed short)__builtin_s390_verllh(
6485 (__vector unsigned short)__a, (int)__b);
6486 }
6487
6488 static inline __ATTRS_o_ai __vector unsigned short
vec_rli(__vector unsigned short __a,unsigned long __b)6489 vec_rli(__vector unsigned short __a, unsigned long __b) {
6490 return __builtin_s390_verllh(__a, (int)__b);
6491 }
6492
6493 static inline __ATTRS_o_ai __vector signed int
vec_rli(__vector signed int __a,unsigned long __b)6494 vec_rli(__vector signed int __a, unsigned long __b) {
6495 return (__vector signed int)__builtin_s390_verllf(
6496 (__vector unsigned int)__a, (int)__b);
6497 }
6498
6499 static inline __ATTRS_o_ai __vector unsigned int
vec_rli(__vector unsigned int __a,unsigned long __b)6500 vec_rli(__vector unsigned int __a, unsigned long __b) {
6501 return __builtin_s390_verllf(__a, (int)__b);
6502 }
6503
6504 static inline __ATTRS_o_ai __vector signed long long
vec_rli(__vector signed long long __a,unsigned long __b)6505 vec_rli(__vector signed long long __a, unsigned long __b) {
6506 return (__vector signed long long)__builtin_s390_verllg(
6507 (__vector unsigned long long)__a, (int)__b);
6508 }
6509
6510 static inline __ATTRS_o_ai __vector unsigned long long
vec_rli(__vector unsigned long long __a,unsigned long __b)6511 vec_rli(__vector unsigned long long __a, unsigned long __b) {
6512 return __builtin_s390_verllg(__a, (int)__b);
6513 }
6514
6515 /*-- vec_rl_mask ------------------------------------------------------------*/
6516
6517 extern __ATTRS_o __vector signed char
6518 vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
6519 unsigned char __c) __constant(__c);
6520
6521 extern __ATTRS_o __vector unsigned char
6522 vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
6523 unsigned char __c) __constant(__c);
6524
6525 extern __ATTRS_o __vector signed short
6526 vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
6527 unsigned char __c) __constant(__c);
6528
6529 extern __ATTRS_o __vector unsigned short
6530 vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
6531 unsigned char __c) __constant(__c);
6532
6533 extern __ATTRS_o __vector signed int
6534 vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
6535 unsigned char __c) __constant(__c);
6536
6537 extern __ATTRS_o __vector unsigned int
6538 vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
6539 unsigned char __c) __constant(__c);
6540
6541 extern __ATTRS_o __vector signed long long
6542 vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
6543 unsigned char __c) __constant(__c);
6544
6545 extern __ATTRS_o __vector unsigned long long
6546 vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
6547 unsigned char __c) __constant(__c);
6548
6549 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
6550 __extension__ ({ \
6551 __vector unsigned char __res; \
6552 __vector unsigned char __x = (__vector unsigned char)(X); \
6553 __vector unsigned char __y = (__vector unsigned char)(Y); \
6554 switch (sizeof ((X)[0])) { \
6555 case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
6556 (__vector unsigned char)__x, (__vector unsigned char)__x, \
6557 (__vector unsigned char)__y, (Z)); break; \
6558 case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
6559 (__vector unsigned short)__x, (__vector unsigned short)__x, \
6560 (__vector unsigned short)__y, (Z)); break; \
6561 case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
6562 (__vector unsigned int)__x, (__vector unsigned int)__x, \
6563 (__vector unsigned int)__y, (Z)); break; \
6564 default: __res = (__vector unsigned char) __builtin_s390_verimg( \
6565 (__vector unsigned long long)__x, (__vector unsigned long long)__x, \
6566 (__vector unsigned long long)__y, (Z)); break; \
6567 } __res; }))
6568
6569 /*-- vec_sll ----------------------------------------------------------------*/
6570
6571 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned char __b)6572 vec_sll(__vector signed char __a, __vector unsigned char __b) {
6573 return (__vector signed char)__builtin_s390_vsl(
6574 (__vector unsigned char)__a, __b);
6575 }
6576
6577 // This prototype is deprecated.
6578 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned short __b)6579 vec_sll(__vector signed char __a, __vector unsigned short __b) {
6580 return (__vector signed char)__builtin_s390_vsl(
6581 (__vector unsigned char)__a, (__vector unsigned char)__b);
6582 }
6583
6584 // This prototype is deprecated.
6585 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned int __b)6586 vec_sll(__vector signed char __a, __vector unsigned int __b) {
6587 return (__vector signed char)__builtin_s390_vsl(
6588 (__vector unsigned char)__a, (__vector unsigned char)__b);
6589 }
6590
6591 // This prototype is deprecated.
6592 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned char __b)6593 vec_sll(__vector __bool char __a, __vector unsigned char __b) {
6594 return (__vector __bool char)__builtin_s390_vsl(
6595 (__vector unsigned char)__a, __b);
6596 }
6597
6598 // This prototype is deprecated.
6599 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned short __b)6600 vec_sll(__vector __bool char __a, __vector unsigned short __b) {
6601 return (__vector __bool char)__builtin_s390_vsl(
6602 (__vector unsigned char)__a, (__vector unsigned char)__b);
6603 }
6604
6605 // This prototype is deprecated.
6606 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned int __b)6607 vec_sll(__vector __bool char __a, __vector unsigned int __b) {
6608 return (__vector __bool char)__builtin_s390_vsl(
6609 (__vector unsigned char)__a, (__vector unsigned char)__b);
6610 }
6611
6612 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned char __b)6613 vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
6614 return __builtin_s390_vsl(__a, __b);
6615 }
6616
6617 // This prototype is deprecated.
6618 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned short __b)6619 vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
6620 return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
6621 }
6622
6623 // This prototype is deprecated.
6624 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned int __b)6625 vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
6626 return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
6627 }
6628
6629 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned char __b)6630 vec_sll(__vector signed short __a, __vector unsigned char __b) {
6631 return (__vector signed short)__builtin_s390_vsl(
6632 (__vector unsigned char)__a, __b);
6633 }
6634
6635 // This prototype is deprecated.
6636 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned short __b)6637 vec_sll(__vector signed short __a, __vector unsigned short __b) {
6638 return (__vector signed short)__builtin_s390_vsl(
6639 (__vector unsigned char)__a, (__vector unsigned char)__b);
6640 }
6641
6642 // This prototype is deprecated.
6643 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned int __b)6644 vec_sll(__vector signed short __a, __vector unsigned int __b) {
6645 return (__vector signed short)__builtin_s390_vsl(
6646 (__vector unsigned char)__a, (__vector unsigned char)__b);
6647 }
6648
6649 // This prototype is deprecated.
6650 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned char __b)6651 vec_sll(__vector __bool short __a, __vector unsigned char __b) {
6652 return (__vector __bool short)__builtin_s390_vsl(
6653 (__vector unsigned char)__a, __b);
6654 }
6655
6656 // This prototype is deprecated.
6657 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned short __b)6658 vec_sll(__vector __bool short __a, __vector unsigned short __b) {
6659 return (__vector __bool short)__builtin_s390_vsl(
6660 (__vector unsigned char)__a, (__vector unsigned char)__b);
6661 }
6662
6663 // This prototype is deprecated.
6664 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned int __b)6665 vec_sll(__vector __bool short __a, __vector unsigned int __b) {
6666 return (__vector __bool short)__builtin_s390_vsl(
6667 (__vector unsigned char)__a, (__vector unsigned char)__b);
6668 }
6669
6670 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned char __b)6671 vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
6672 return (__vector unsigned short)__builtin_s390_vsl(
6673 (__vector unsigned char)__a, __b);
6674 }
6675
6676 // This prototype is deprecated.
6677 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned short __b)6678 vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
6679 return (__vector unsigned short)__builtin_s390_vsl(
6680 (__vector unsigned char)__a, (__vector unsigned char)__b);
6681 }
6682
6683 // This prototype is deprecated.
6684 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned int __b)6685 vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
6686 return (__vector unsigned short)__builtin_s390_vsl(
6687 (__vector unsigned char)__a, (__vector unsigned char)__b);
6688 }
6689
6690 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned char __b)6691 vec_sll(__vector signed int __a, __vector unsigned char __b) {
6692 return (__vector signed int)__builtin_s390_vsl(
6693 (__vector unsigned char)__a, __b);
6694 }
6695
6696 // This prototype is deprecated.
6697 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned short __b)6698 vec_sll(__vector signed int __a, __vector unsigned short __b) {
6699 return (__vector signed int)__builtin_s390_vsl(
6700 (__vector unsigned char)__a, (__vector unsigned char)__b);
6701 }
6702
6703 // This prototype is deprecated.
6704 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned int __b)6705 vec_sll(__vector signed int __a, __vector unsigned int __b) {
6706 return (__vector signed int)__builtin_s390_vsl(
6707 (__vector unsigned char)__a, (__vector unsigned char)__b);
6708 }
6709
6710 // This prototype is deprecated.
6711 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned char __b)6712 vec_sll(__vector __bool int __a, __vector unsigned char __b) {
6713 return (__vector __bool int)__builtin_s390_vsl(
6714 (__vector unsigned char)__a, __b);
6715 }
6716
6717 // This prototype is deprecated.
6718 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned short __b)6719 vec_sll(__vector __bool int __a, __vector unsigned short __b) {
6720 return (__vector __bool int)__builtin_s390_vsl(
6721 (__vector unsigned char)__a, (__vector unsigned char)__b);
6722 }
6723
6724 // This prototype is deprecated.
6725 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned int __b)6726 vec_sll(__vector __bool int __a, __vector unsigned int __b) {
6727 return (__vector __bool int)__builtin_s390_vsl(
6728 (__vector unsigned char)__a, (__vector unsigned char)__b);
6729 }
6730
6731 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned char __b)6732 vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
6733 return (__vector unsigned int)__builtin_s390_vsl(
6734 (__vector unsigned char)__a, __b);
6735 }
6736
6737 // This prototype is deprecated.
6738 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned short __b)6739 vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
6740 return (__vector unsigned int)__builtin_s390_vsl(
6741 (__vector unsigned char)__a, (__vector unsigned char)__b);
6742 }
6743
6744 // This prototype is deprecated.
6745 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned int __b)6746 vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
6747 return (__vector unsigned int)__builtin_s390_vsl(
6748 (__vector unsigned char)__a, (__vector unsigned char)__b);
6749 }
6750
6751 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned char __b)6752 vec_sll(__vector signed long long __a, __vector unsigned char __b) {
6753 return (__vector signed long long)__builtin_s390_vsl(
6754 (__vector unsigned char)__a, __b);
6755 }
6756
6757 // This prototype is deprecated.
6758 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned short __b)6759 vec_sll(__vector signed long long __a, __vector unsigned short __b) {
6760 return (__vector signed long long)__builtin_s390_vsl(
6761 (__vector unsigned char)__a, (__vector unsigned char)__b);
6762 }
6763
6764 // This prototype is deprecated.
6765 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned int __b)6766 vec_sll(__vector signed long long __a, __vector unsigned int __b) {
6767 return (__vector signed long long)__builtin_s390_vsl(
6768 (__vector unsigned char)__a, (__vector unsigned char)__b);
6769 }
6770
6771 // This prototype is deprecated.
6772 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned char __b)6773 vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
6774 return (__vector __bool long long)__builtin_s390_vsl(
6775 (__vector unsigned char)__a, __b);
6776 }
6777
6778 // This prototype is deprecated.
6779 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned short __b)6780 vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
6781 return (__vector __bool long long)__builtin_s390_vsl(
6782 (__vector unsigned char)__a, (__vector unsigned char)__b);
6783 }
6784
6785 // This prototype is deprecated.
6786 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned int __b)6787 vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
6788 return (__vector __bool long long)__builtin_s390_vsl(
6789 (__vector unsigned char)__a, (__vector unsigned char)__b);
6790 }
6791
6792 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned char __b)6793 vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
6794 return (__vector unsigned long long)__builtin_s390_vsl(
6795 (__vector unsigned char)__a, __b);
6796 }
6797
6798 // This prototype is deprecated.
6799 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned short __b)6800 vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
6801 return (__vector unsigned long long)__builtin_s390_vsl(
6802 (__vector unsigned char)__a, (__vector unsigned char)__b);
6803 }
6804
6805 // This prototype is deprecated.
6806 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned int __b)6807 vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
6808 return (__vector unsigned long long)__builtin_s390_vsl(
6809 (__vector unsigned char)__a, (__vector unsigned char)__b);
6810 }
6811
6812 /*-- vec_slb ----------------------------------------------------------------*/
6813
6814 static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector signed char __b)6815 vec_slb(__vector signed char __a, __vector signed char __b) {
6816 return (__vector signed char)__builtin_s390_vslb(
6817 (__vector unsigned char)__a, (__vector unsigned char)__b);
6818 }
6819
6820 static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector unsigned char __b)6821 vec_slb(__vector signed char __a, __vector unsigned char __b) {
6822 return (__vector signed char)__builtin_s390_vslb(
6823 (__vector unsigned char)__a, __b);
6824 }
6825
6826 static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector signed char __b)6827 vec_slb(__vector unsigned char __a, __vector signed char __b) {
6828 return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
6829 }
6830
6831 static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector unsigned char __b)6832 vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
6833 return __builtin_s390_vslb(__a, __b);
6834 }
6835
6836 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector signed short __b)6837 vec_slb(__vector signed short __a, __vector signed short __b) {
6838 return (__vector signed short)__builtin_s390_vslb(
6839 (__vector unsigned char)__a, (__vector unsigned char)__b);
6840 }
6841
6842 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector unsigned short __b)6843 vec_slb(__vector signed short __a, __vector unsigned short __b) {
6844 return (__vector signed short)__builtin_s390_vslb(
6845 (__vector unsigned char)__a, (__vector unsigned char)__b);
6846 }
6847
6848 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector signed short __b)6849 vec_slb(__vector unsigned short __a, __vector signed short __b) {
6850 return (__vector unsigned short)__builtin_s390_vslb(
6851 (__vector unsigned char)__a, (__vector unsigned char)__b);
6852 }
6853
6854 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector unsigned short __b)6855 vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
6856 return (__vector unsigned short)__builtin_s390_vslb(
6857 (__vector unsigned char)__a, (__vector unsigned char)__b);
6858 }
6859
6860 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector signed int __b)6861 vec_slb(__vector signed int __a, __vector signed int __b) {
6862 return (__vector signed int)__builtin_s390_vslb(
6863 (__vector unsigned char)__a, (__vector unsigned char)__b);
6864 }
6865
6866 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector unsigned int __b)6867 vec_slb(__vector signed int __a, __vector unsigned int __b) {
6868 return (__vector signed int)__builtin_s390_vslb(
6869 (__vector unsigned char)__a, (__vector unsigned char)__b);
6870 }
6871
6872 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector signed int __b)6873 vec_slb(__vector unsigned int __a, __vector signed int __b) {
6874 return (__vector unsigned int)__builtin_s390_vslb(
6875 (__vector unsigned char)__a, (__vector unsigned char)__b);
6876 }
6877
6878 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector unsigned int __b)6879 vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
6880 return (__vector unsigned int)__builtin_s390_vslb(
6881 (__vector unsigned char)__a, (__vector unsigned char)__b);
6882 }
6883
6884 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector signed long long __b)6885 vec_slb(__vector signed long long __a, __vector signed long long __b) {
6886 return (__vector signed long long)__builtin_s390_vslb(
6887 (__vector unsigned char)__a, (__vector unsigned char)__b);
6888 }
6889
6890 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector unsigned long long __b)6891 vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
6892 return (__vector signed long long)__builtin_s390_vslb(
6893 (__vector unsigned char)__a, (__vector unsigned char)__b);
6894 }
6895
6896 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector signed long long __b)6897 vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
6898 return (__vector unsigned long long)__builtin_s390_vslb(
6899 (__vector unsigned char)__a, (__vector unsigned char)__b);
6900 }
6901
6902 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector unsigned long long __b)6903 vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
6904 return (__vector unsigned long long)__builtin_s390_vslb(
6905 (__vector unsigned char)__a, (__vector unsigned char)__b);
6906 }
6907
6908 #if __ARCH__ >= 12
6909 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector signed int __b)6910 vec_slb(__vector float __a, __vector signed int __b) {
6911 return (__vector float)__builtin_s390_vslb(
6912 (__vector unsigned char)__a, (__vector unsigned char)__b);
6913 }
6914
6915 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector unsigned int __b)6916 vec_slb(__vector float __a, __vector unsigned int __b) {
6917 return (__vector float)__builtin_s390_vslb(
6918 (__vector unsigned char)__a, (__vector unsigned char)__b);
6919 }
6920 #endif
6921
6922 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector signed long long __b)6923 vec_slb(__vector double __a, __vector signed long long __b) {
6924 return (__vector double)__builtin_s390_vslb(
6925 (__vector unsigned char)__a, (__vector unsigned char)__b);
6926 }
6927
6928 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector unsigned long long __b)6929 vec_slb(__vector double __a, __vector unsigned long long __b) {
6930 return (__vector double)__builtin_s390_vslb(
6931 (__vector unsigned char)__a, (__vector unsigned char)__b);
6932 }
6933
6934 /*-- vec_sld ----------------------------------------------------------------*/
6935
6936 extern __ATTRS_o __vector signed char
6937 vec_sld(__vector signed char __a, __vector signed char __b, int __c)
6938 __constant_range(__c, 0, 15);
6939
6940 extern __ATTRS_o __vector __bool char
6941 vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
6942 __constant_range(__c, 0, 15);
6943
6944 extern __ATTRS_o __vector unsigned char
6945 vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
6946 __constant_range(__c, 0, 15);
6947
6948 extern __ATTRS_o __vector signed short
6949 vec_sld(__vector signed short __a, __vector signed short __b, int __c)
6950 __constant_range(__c, 0, 15);
6951
6952 extern __ATTRS_o __vector __bool short
6953 vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
6954 __constant_range(__c, 0, 15);
6955
6956 extern __ATTRS_o __vector unsigned short
6957 vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
6958 __constant_range(__c, 0, 15);
6959
6960 extern __ATTRS_o __vector signed int
6961 vec_sld(__vector signed int __a, __vector signed int __b, int __c)
6962 __constant_range(__c, 0, 15);
6963
6964 extern __ATTRS_o __vector __bool int
6965 vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
6966 __constant_range(__c, 0, 15);
6967
6968 extern __ATTRS_o __vector unsigned int
6969 vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
6970 __constant_range(__c, 0, 15);
6971
6972 extern __ATTRS_o __vector signed long long
6973 vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
6974 __constant_range(__c, 0, 15);
6975
6976 extern __ATTRS_o __vector __bool long long
6977 vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
6978 __constant_range(__c, 0, 15);
6979
6980 extern __ATTRS_o __vector unsigned long long
6981 vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
6982 int __c)
6983 __constant_range(__c, 0, 15);
6984
6985 #if __ARCH__ >= 12
6986 extern __ATTRS_o __vector float
6987 vec_sld(__vector float __a, __vector float __b, int __c)
6988 __constant_range(__c, 0, 15);
6989 #endif
6990
6991 extern __ATTRS_o __vector double
6992 vec_sld(__vector double __a, __vector double __b, int __c)
6993 __constant_range(__c, 0, 15);
6994
6995 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
6996 __builtin_s390_vsldb((__vector unsigned char)(X), \
6997 (__vector unsigned char)(Y), (Z)))
6998
6999 /*-- vec_sldw ---------------------------------------------------------------*/
7000
7001 extern __ATTRS_o __vector signed char
7002 vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
7003 __constant_range(__c, 0, 3);
7004
7005 extern __ATTRS_o __vector unsigned char
7006 vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
7007 __constant_range(__c, 0, 3);
7008
7009 extern __ATTRS_o __vector signed short
7010 vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
7011 __constant_range(__c, 0, 3);
7012
7013 extern __ATTRS_o __vector unsigned short
7014 vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
7015 __constant_range(__c, 0, 3);
7016
7017 extern __ATTRS_o __vector signed int
7018 vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
7019 __constant_range(__c, 0, 3);
7020
7021 extern __ATTRS_o __vector unsigned int
7022 vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
7023 __constant_range(__c, 0, 3);
7024
7025 extern __ATTRS_o __vector signed long long
7026 vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
7027 __constant_range(__c, 0, 3);
7028
7029 extern __ATTRS_o __vector unsigned long long
7030 vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
7031 int __c)
7032 __constant_range(__c, 0, 3);
7033
7034 // This prototype is deprecated.
7035 extern __ATTRS_o __vector double
7036 vec_sldw(__vector double __a, __vector double __b, int __c)
7037 __constant_range(__c, 0, 3);
7038
7039 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
7040 __builtin_s390_vsldb((__vector unsigned char)(X), \
7041 (__vector unsigned char)(Y), (Z) * 4))
7042
7043 /*-- vec_sldb ---------------------------------------------------------------*/
7044
7045 #if __ARCH__ >= 13
7046
7047 extern __ATTRS_o __vector signed char
7048 vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
7049 __constant_range(__c, 0, 7);
7050
7051 extern __ATTRS_o __vector unsigned char
7052 vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
7053 __constant_range(__c, 0, 7);
7054
7055 extern __ATTRS_o __vector signed short
7056 vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
7057 __constant_range(__c, 0, 7);
7058
7059 extern __ATTRS_o __vector unsigned short
7060 vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
7061 __constant_range(__c, 0, 7);
7062
7063 extern __ATTRS_o __vector signed int
7064 vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
7065 __constant_range(__c, 0, 7);
7066
7067 extern __ATTRS_o __vector unsigned int
7068 vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
7069 __constant_range(__c, 0, 7);
7070
7071 extern __ATTRS_o __vector signed long long
7072 vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
7073 __constant_range(__c, 0, 7);
7074
7075 extern __ATTRS_o __vector unsigned long long
7076 vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
7077 int __c)
7078 __constant_range(__c, 0, 7);
7079
7080 extern __ATTRS_o __vector float
7081 vec_sldb(__vector float __a, __vector float __b, int __c)
7082 __constant_range(__c, 0, 7);
7083
7084 extern __ATTRS_o __vector double
7085 vec_sldb(__vector double __a, __vector double __b, int __c)
7086 __constant_range(__c, 0, 7);
7087
7088 #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
7089 __builtin_s390_vsld((__vector unsigned char)(X), \
7090 (__vector unsigned char)(Y), (Z)))
7091
7092 #endif
7093
7094 /*-- vec_sral ---------------------------------------------------------------*/
7095
7096 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned char __b)7097 vec_sral(__vector signed char __a, __vector unsigned char __b) {
7098 return (__vector signed char)__builtin_s390_vsra(
7099 (__vector unsigned char)__a, __b);
7100 }
7101
7102 // This prototype is deprecated.
7103 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned short __b)7104 vec_sral(__vector signed char __a, __vector unsigned short __b) {
7105 return (__vector signed char)__builtin_s390_vsra(
7106 (__vector unsigned char)__a, (__vector unsigned char)__b);
7107 }
7108
7109 // This prototype is deprecated.
7110 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned int __b)7111 vec_sral(__vector signed char __a, __vector unsigned int __b) {
7112 return (__vector signed char)__builtin_s390_vsra(
7113 (__vector unsigned char)__a, (__vector unsigned char)__b);
7114 }
7115
7116 // This prototype is deprecated.
7117 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned char __b)7118 vec_sral(__vector __bool char __a, __vector unsigned char __b) {
7119 return (__vector __bool char)__builtin_s390_vsra(
7120 (__vector unsigned char)__a, __b);
7121 }
7122
7123 // This prototype is deprecated.
7124 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned short __b)7125 vec_sral(__vector __bool char __a, __vector unsigned short __b) {
7126 return (__vector __bool char)__builtin_s390_vsra(
7127 (__vector unsigned char)__a, (__vector unsigned char)__b);
7128 }
7129
7130 // This prototype is deprecated.
7131 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned int __b)7132 vec_sral(__vector __bool char __a, __vector unsigned int __b) {
7133 return (__vector __bool char)__builtin_s390_vsra(
7134 (__vector unsigned char)__a, (__vector unsigned char)__b);
7135 }
7136
7137 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned char __b)7138 vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
7139 return __builtin_s390_vsra(__a, __b);
7140 }
7141
7142 // This prototype is deprecated.
7143 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned short __b)7144 vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
7145 return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
7146 }
7147
7148 // This prototype is deprecated.
7149 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned int __b)7150 vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
7151 return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
7152 }
7153
7154 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned char __b)7155 vec_sral(__vector signed short __a, __vector unsigned char __b) {
7156 return (__vector signed short)__builtin_s390_vsra(
7157 (__vector unsigned char)__a, __b);
7158 }
7159
7160 // This prototype is deprecated.
7161 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned short __b)7162 vec_sral(__vector signed short __a, __vector unsigned short __b) {
7163 return (__vector signed short)__builtin_s390_vsra(
7164 (__vector unsigned char)__a, (__vector unsigned char)__b);
7165 }
7166
7167 // This prototype is deprecated.
7168 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned int __b)7169 vec_sral(__vector signed short __a, __vector unsigned int __b) {
7170 return (__vector signed short)__builtin_s390_vsra(
7171 (__vector unsigned char)__a, (__vector unsigned char)__b);
7172 }
7173
7174 // This prototype is deprecated.
7175 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned char __b)7176 vec_sral(__vector __bool short __a, __vector unsigned char __b) {
7177 return (__vector __bool short)__builtin_s390_vsra(
7178 (__vector unsigned char)__a, __b);
7179 }
7180
7181 // This prototype is deprecated.
7182 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned short __b)7183 vec_sral(__vector __bool short __a, __vector unsigned short __b) {
7184 return (__vector __bool short)__builtin_s390_vsra(
7185 (__vector unsigned char)__a, (__vector unsigned char)__b);
7186 }
7187
7188 // This prototype is deprecated.
7189 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned int __b)7190 vec_sral(__vector __bool short __a, __vector unsigned int __b) {
7191 return (__vector __bool short)__builtin_s390_vsra(
7192 (__vector unsigned char)__a, (__vector unsigned char)__b);
7193 }
7194
7195 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned char __b)7196 vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
7197 return (__vector unsigned short)__builtin_s390_vsra(
7198 (__vector unsigned char)__a, __b);
7199 }
7200
7201 // This prototype is deprecated.
7202 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned short __b)7203 vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
7204 return (__vector unsigned short)__builtin_s390_vsra(
7205 (__vector unsigned char)__a, (__vector unsigned char)__b);
7206 }
7207
7208 // This prototype is deprecated.
7209 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned int __b)7210 vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
7211 return (__vector unsigned short)__builtin_s390_vsra(
7212 (__vector unsigned char)__a, (__vector unsigned char)__b);
7213 }
7214
7215 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned char __b)7216 vec_sral(__vector signed int __a, __vector unsigned char __b) {
7217 return (__vector signed int)__builtin_s390_vsra(
7218 (__vector unsigned char)__a, __b);
7219 }
7220
7221 // This prototype is deprecated.
7222 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned short __b)7223 vec_sral(__vector signed int __a, __vector unsigned short __b) {
7224 return (__vector signed int)__builtin_s390_vsra(
7225 (__vector unsigned char)__a, (__vector unsigned char)__b);
7226 }
7227
7228 // This prototype is deprecated.
7229 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned int __b)7230 vec_sral(__vector signed int __a, __vector unsigned int __b) {
7231 return (__vector signed int)__builtin_s390_vsra(
7232 (__vector unsigned char)__a, (__vector unsigned char)__b);
7233 }
7234
7235 // This prototype is deprecated.
7236 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned char __b)7237 vec_sral(__vector __bool int __a, __vector unsigned char __b) {
7238 return (__vector __bool int)__builtin_s390_vsra(
7239 (__vector unsigned char)__a, __b);
7240 }
7241
7242 // This prototype is deprecated.
7243 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned short __b)7244 vec_sral(__vector __bool int __a, __vector unsigned short __b) {
7245 return (__vector __bool int)__builtin_s390_vsra(
7246 (__vector unsigned char)__a, (__vector unsigned char)__b);
7247 }
7248
7249 // This prototype is deprecated.
7250 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned int __b)7251 vec_sral(__vector __bool int __a, __vector unsigned int __b) {
7252 return (__vector __bool int)__builtin_s390_vsra(
7253 (__vector unsigned char)__a, (__vector unsigned char)__b);
7254 }
7255
7256 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned char __b)7257 vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
7258 return (__vector unsigned int)__builtin_s390_vsra(
7259 (__vector unsigned char)__a, __b);
7260 }
7261
7262 // This prototype is deprecated.
7263 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned short __b)7264 vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
7265 return (__vector unsigned int)__builtin_s390_vsra(
7266 (__vector unsigned char)__a, (__vector unsigned char)__b);
7267 }
7268
7269 // This prototype is deprecated.
7270 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned int __b)7271 vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
7272 return (__vector unsigned int)__builtin_s390_vsra(
7273 (__vector unsigned char)__a, (__vector unsigned char)__b);
7274 }
7275
7276 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned char __b)7277 vec_sral(__vector signed long long __a, __vector unsigned char __b) {
7278 return (__vector signed long long)__builtin_s390_vsra(
7279 (__vector unsigned char)__a, __b);
7280 }
7281
7282 // This prototype is deprecated.
7283 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned short __b)7284 vec_sral(__vector signed long long __a, __vector unsigned short __b) {
7285 return (__vector signed long long)__builtin_s390_vsra(
7286 (__vector unsigned char)__a, (__vector unsigned char)__b);
7287 }
7288
7289 // This prototype is deprecated.
7290 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned int __b)7291 vec_sral(__vector signed long long __a, __vector unsigned int __b) {
7292 return (__vector signed long long)__builtin_s390_vsra(
7293 (__vector unsigned char)__a, (__vector unsigned char)__b);
7294 }
7295
7296 // This prototype is deprecated.
7297 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned char __b)7298 vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
7299 return (__vector __bool long long)__builtin_s390_vsra(
7300 (__vector unsigned char)__a, __b);
7301 }
7302
7303 // This prototype is deprecated.
7304 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned short __b)7305 vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
7306 return (__vector __bool long long)__builtin_s390_vsra(
7307 (__vector unsigned char)__a, (__vector unsigned char)__b);
7308 }
7309
7310 // This prototype is deprecated.
7311 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned int __b)7312 vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
7313 return (__vector __bool long long)__builtin_s390_vsra(
7314 (__vector unsigned char)__a, (__vector unsigned char)__b);
7315 }
7316
7317 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned char __b)7318 vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
7319 return (__vector unsigned long long)__builtin_s390_vsra(
7320 (__vector unsigned char)__a, __b);
7321 }
7322
7323 // This prototype is deprecated.
7324 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned short __b)7325 vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
7326 return (__vector unsigned long long)__builtin_s390_vsra(
7327 (__vector unsigned char)__a, (__vector unsigned char)__b);
7328 }
7329
7330 // This prototype is deprecated.
7331 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned int __b)7332 vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
7333 return (__vector unsigned long long)__builtin_s390_vsra(
7334 (__vector unsigned char)__a, (__vector unsigned char)__b);
7335 }
7336
7337 /*-- vec_srab ---------------------------------------------------------------*/
7338
7339 static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector signed char __b)7340 vec_srab(__vector signed char __a, __vector signed char __b) {
7341 return (__vector signed char)__builtin_s390_vsrab(
7342 (__vector unsigned char)__a, (__vector unsigned char)__b);
7343 }
7344
7345 static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector unsigned char __b)7346 vec_srab(__vector signed char __a, __vector unsigned char __b) {
7347 return (__vector signed char)__builtin_s390_vsrab(
7348 (__vector unsigned char)__a, __b);
7349 }
7350
7351 static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector signed char __b)7352 vec_srab(__vector unsigned char __a, __vector signed char __b) {
7353 return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
7354 }
7355
7356 static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector unsigned char __b)7357 vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
7358 return __builtin_s390_vsrab(__a, __b);
7359 }
7360
7361 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector signed short __b)7362 vec_srab(__vector signed short __a, __vector signed short __b) {
7363 return (__vector signed short)__builtin_s390_vsrab(
7364 (__vector unsigned char)__a, (__vector unsigned char)__b);
7365 }
7366
7367 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector unsigned short __b)7368 vec_srab(__vector signed short __a, __vector unsigned short __b) {
7369 return (__vector signed short)__builtin_s390_vsrab(
7370 (__vector unsigned char)__a, (__vector unsigned char)__b);
7371 }
7372
7373 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector signed short __b)7374 vec_srab(__vector unsigned short __a, __vector signed short __b) {
7375 return (__vector unsigned short)__builtin_s390_vsrab(
7376 (__vector unsigned char)__a, (__vector unsigned char)__b);
7377 }
7378
7379 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector unsigned short __b)7380 vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
7381 return (__vector unsigned short)__builtin_s390_vsrab(
7382 (__vector unsigned char)__a, (__vector unsigned char)__b);
7383 }
7384
7385 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector signed int __b)7386 vec_srab(__vector signed int __a, __vector signed int __b) {
7387 return (__vector signed int)__builtin_s390_vsrab(
7388 (__vector unsigned char)__a, (__vector unsigned char)__b);
7389 }
7390
7391 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector unsigned int __b)7392 vec_srab(__vector signed int __a, __vector unsigned int __b) {
7393 return (__vector signed int)__builtin_s390_vsrab(
7394 (__vector unsigned char)__a, (__vector unsigned char)__b);
7395 }
7396
7397 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector signed int __b)7398 vec_srab(__vector unsigned int __a, __vector signed int __b) {
7399 return (__vector unsigned int)__builtin_s390_vsrab(
7400 (__vector unsigned char)__a, (__vector unsigned char)__b);
7401 }
7402
7403 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector unsigned int __b)7404 vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
7405 return (__vector unsigned int)__builtin_s390_vsrab(
7406 (__vector unsigned char)__a, (__vector unsigned char)__b);
7407 }
7408
7409 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector signed long long __b)7410 vec_srab(__vector signed long long __a, __vector signed long long __b) {
7411 return (__vector signed long long)__builtin_s390_vsrab(
7412 (__vector unsigned char)__a, (__vector unsigned char)__b);
7413 }
7414
7415 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector unsigned long long __b)7416 vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
7417 return (__vector signed long long)__builtin_s390_vsrab(
7418 (__vector unsigned char)__a, (__vector unsigned char)__b);
7419 }
7420
7421 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector signed long long __b)7422 vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
7423 return (__vector unsigned long long)__builtin_s390_vsrab(
7424 (__vector unsigned char)__a, (__vector unsigned char)__b);
7425 }
7426
7427 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector unsigned long long __b)7428 vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
7429 return (__vector unsigned long long)__builtin_s390_vsrab(
7430 (__vector unsigned char)__a, (__vector unsigned char)__b);
7431 }
7432
7433 #if __ARCH__ >= 12
7434 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector signed int __b)7435 vec_srab(__vector float __a, __vector signed int __b) {
7436 return (__vector float)__builtin_s390_vsrab(
7437 (__vector unsigned char)__a, (__vector unsigned char)__b);
7438 }
7439
7440 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector unsigned int __b)7441 vec_srab(__vector float __a, __vector unsigned int __b) {
7442 return (__vector float)__builtin_s390_vsrab(
7443 (__vector unsigned char)__a, (__vector unsigned char)__b);
7444 }
7445 #endif
7446
7447 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector signed long long __b)7448 vec_srab(__vector double __a, __vector signed long long __b) {
7449 return (__vector double)__builtin_s390_vsrab(
7450 (__vector unsigned char)__a, (__vector unsigned char)__b);
7451 }
7452
7453 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector unsigned long long __b)7454 vec_srab(__vector double __a, __vector unsigned long long __b) {
7455 return (__vector double)__builtin_s390_vsrab(
7456 (__vector unsigned char)__a, (__vector unsigned char)__b);
7457 }
7458
7459 /*-- vec_srl ----------------------------------------------------------------*/
7460
7461 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned char __b)7462 vec_srl(__vector signed char __a, __vector unsigned char __b) {
7463 return (__vector signed char)__builtin_s390_vsrl(
7464 (__vector unsigned char)__a, __b);
7465 }
7466
7467 // This prototype is deprecated.
7468 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned short __b)7469 vec_srl(__vector signed char __a, __vector unsigned short __b) {
7470 return (__vector signed char)__builtin_s390_vsrl(
7471 (__vector unsigned char)__a, (__vector unsigned char)__b);
7472 }
7473
7474 // This prototype is deprecated.
7475 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned int __b)7476 vec_srl(__vector signed char __a, __vector unsigned int __b) {
7477 return (__vector signed char)__builtin_s390_vsrl(
7478 (__vector unsigned char)__a, (__vector unsigned char)__b);
7479 }
7480
7481 // This prototype is deprecated.
7482 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned char __b)7483 vec_srl(__vector __bool char __a, __vector unsigned char __b) {
7484 return (__vector __bool char)__builtin_s390_vsrl(
7485 (__vector unsigned char)__a, __b);
7486 }
7487
7488 // This prototype is deprecated.
7489 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned short __b)7490 vec_srl(__vector __bool char __a, __vector unsigned short __b) {
7491 return (__vector __bool char)__builtin_s390_vsrl(
7492 (__vector unsigned char)__a, (__vector unsigned char)__b);
7493 }
7494
7495 // This prototype is deprecated.
7496 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned int __b)7497 vec_srl(__vector __bool char __a, __vector unsigned int __b) {
7498 return (__vector __bool char)__builtin_s390_vsrl(
7499 (__vector unsigned char)__a, (__vector unsigned char)__b);
7500 }
7501
7502 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned char __b)7503 vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
7504 return __builtin_s390_vsrl(__a, __b);
7505 }
7506
7507 // This prototype is deprecated.
7508 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned short __b)7509 vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
7510 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
7511 }
7512
7513 // This prototype is deprecated.
7514 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned int __b)7515 vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
7516 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
7517 }
7518
7519 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned char __b)7520 vec_srl(__vector signed short __a, __vector unsigned char __b) {
7521 return (__vector signed short)__builtin_s390_vsrl(
7522 (__vector unsigned char)__a, __b);
7523 }
7524
7525 // This prototype is deprecated.
7526 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned short __b)7527 vec_srl(__vector signed short __a, __vector unsigned short __b) {
7528 return (__vector signed short)__builtin_s390_vsrl(
7529 (__vector unsigned char)__a, (__vector unsigned char)__b);
7530 }
7531
7532 // This prototype is deprecated.
7533 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned int __b)7534 vec_srl(__vector signed short __a, __vector unsigned int __b) {
7535 return (__vector signed short)__builtin_s390_vsrl(
7536 (__vector unsigned char)__a, (__vector unsigned char)__b);
7537 }
7538
7539 // This prototype is deprecated.
7540 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned char __b)7541 vec_srl(__vector __bool short __a, __vector unsigned char __b) {
7542 return (__vector __bool short)__builtin_s390_vsrl(
7543 (__vector unsigned char)__a, __b);
7544 }
7545
7546 // This prototype is deprecated.
7547 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned short __b)7548 vec_srl(__vector __bool short __a, __vector unsigned short __b) {
7549 return (__vector __bool short)__builtin_s390_vsrl(
7550 (__vector unsigned char)__a, (__vector unsigned char)__b);
7551 }
7552
7553 // This prototype is deprecated.
7554 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned int __b)7555 vec_srl(__vector __bool short __a, __vector unsigned int __b) {
7556 return (__vector __bool short)__builtin_s390_vsrl(
7557 (__vector unsigned char)__a, (__vector unsigned char)__b);
7558 }
7559
7560 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned char __b)7561 vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
7562 return (__vector unsigned short)__builtin_s390_vsrl(
7563 (__vector unsigned char)__a, __b);
7564 }
7565
7566 // This prototype is deprecated.
7567 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned short __b)7568 vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
7569 return (__vector unsigned short)__builtin_s390_vsrl(
7570 (__vector unsigned char)__a, (__vector unsigned char)__b);
7571 }
7572
7573 // This prototype is deprecated.
7574 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned int __b)7575 vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
7576 return (__vector unsigned short)__builtin_s390_vsrl(
7577 (__vector unsigned char)__a, (__vector unsigned char)__b);
7578 }
7579
7580 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned char __b)7581 vec_srl(__vector signed int __a, __vector unsigned char __b) {
7582 return (__vector signed int)__builtin_s390_vsrl(
7583 (__vector unsigned char)__a, __b);
7584 }
7585
7586 // This prototype is deprecated.
7587 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned short __b)7588 vec_srl(__vector signed int __a, __vector unsigned short __b) {
7589 return (__vector signed int)__builtin_s390_vsrl(
7590 (__vector unsigned char)__a, (__vector unsigned char)__b);
7591 }
7592
7593 // This prototype is deprecated.
7594 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned int __b)7595 vec_srl(__vector signed int __a, __vector unsigned int __b) {
7596 return (__vector signed int)__builtin_s390_vsrl(
7597 (__vector unsigned char)__a, (__vector unsigned char)__b);
7598 }
7599
7600 // This prototype is deprecated.
7601 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned char __b)7602 vec_srl(__vector __bool int __a, __vector unsigned char __b) {
7603 return (__vector __bool int)__builtin_s390_vsrl(
7604 (__vector unsigned char)__a, __b);
7605 }
7606
7607 // This prototype is deprecated.
7608 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned short __b)7609 vec_srl(__vector __bool int __a, __vector unsigned short __b) {
7610 return (__vector __bool int)__builtin_s390_vsrl(
7611 (__vector unsigned char)__a, (__vector unsigned char)__b);
7612 }
7613
7614 // This prototype is deprecated.
7615 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned int __b)7616 vec_srl(__vector __bool int __a, __vector unsigned int __b) {
7617 return (__vector __bool int)__builtin_s390_vsrl(
7618 (__vector unsigned char)__a, (__vector unsigned char)__b);
7619 }
7620
7621 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned char __b)7622 vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
7623 return (__vector unsigned int)__builtin_s390_vsrl(
7624 (__vector unsigned char)__a, __b);
7625 }
7626
7627 // This prototype is deprecated.
7628 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned short __b)7629 vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
7630 return (__vector unsigned int)__builtin_s390_vsrl(
7631 (__vector unsigned char)__a, (__vector unsigned char)__b);
7632 }
7633
7634 // This prototype is deprecated.
7635 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned int __b)7636 vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
7637 return (__vector unsigned int)__builtin_s390_vsrl(
7638 (__vector unsigned char)__a, (__vector unsigned char)__b);
7639 }
7640
7641 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned char __b)7642 vec_srl(__vector signed long long __a, __vector unsigned char __b) {
7643 return (__vector signed long long)__builtin_s390_vsrl(
7644 (__vector unsigned char)__a, __b);
7645 }
7646
7647 // This prototype is deprecated.
7648 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned short __b)7649 vec_srl(__vector signed long long __a, __vector unsigned short __b) {
7650 return (__vector signed long long)__builtin_s390_vsrl(
7651 (__vector unsigned char)__a, (__vector unsigned char)__b);
7652 }
7653
7654 // This prototype is deprecated.
7655 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned int __b)7656 vec_srl(__vector signed long long __a, __vector unsigned int __b) {
7657 return (__vector signed long long)__builtin_s390_vsrl(
7658 (__vector unsigned char)__a, (__vector unsigned char)__b);
7659 }
7660
7661 // This prototype is deprecated.
7662 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned char __b)7663 vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
7664 return (__vector __bool long long)__builtin_s390_vsrl(
7665 (__vector unsigned char)__a, __b);
7666 }
7667
7668 // This prototype is deprecated.
7669 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned short __b)7670 vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
7671 return (__vector __bool long long)__builtin_s390_vsrl(
7672 (__vector unsigned char)__a, (__vector unsigned char)__b);
7673 }
7674
7675 // This prototype is deprecated.
7676 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned int __b)7677 vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
7678 return (__vector __bool long long)__builtin_s390_vsrl(
7679 (__vector unsigned char)__a, (__vector unsigned char)__b);
7680 }
7681
7682 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned char __b)7683 vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
7684 return (__vector unsigned long long)__builtin_s390_vsrl(
7685 (__vector unsigned char)__a, __b);
7686 }
7687
7688 // This prototype is deprecated.
7689 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned short __b)7690 vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
7691 return (__vector unsigned long long)__builtin_s390_vsrl(
7692 (__vector unsigned char)__a, (__vector unsigned char)__b);
7693 }
7694
7695 // This prototype is deprecated.
7696 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned int __b)7697 vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
7698 return (__vector unsigned long long)__builtin_s390_vsrl(
7699 (__vector unsigned char)__a, (__vector unsigned char)__b);
7700 }
7701
7702 /*-- vec_srb ----------------------------------------------------------------*/
7703
7704 static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector signed char __b)7705 vec_srb(__vector signed char __a, __vector signed char __b) {
7706 return (__vector signed char)__builtin_s390_vsrlb(
7707 (__vector unsigned char)__a, (__vector unsigned char)__b);
7708 }
7709
7710 static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector unsigned char __b)7711 vec_srb(__vector signed char __a, __vector unsigned char __b) {
7712 return (__vector signed char)__builtin_s390_vsrlb(
7713 (__vector unsigned char)__a, __b);
7714 }
7715
7716 static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector signed char __b)7717 vec_srb(__vector unsigned char __a, __vector signed char __b) {
7718 return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
7719 }
7720
7721 static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector unsigned char __b)7722 vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
7723 return __builtin_s390_vsrlb(__a, __b);
7724 }
7725
7726 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector signed short __b)7727 vec_srb(__vector signed short __a, __vector signed short __b) {
7728 return (__vector signed short)__builtin_s390_vsrlb(
7729 (__vector unsigned char)__a, (__vector unsigned char)__b);
7730 }
7731
7732 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector unsigned short __b)7733 vec_srb(__vector signed short __a, __vector unsigned short __b) {
7734 return (__vector signed short)__builtin_s390_vsrlb(
7735 (__vector unsigned char)__a, (__vector unsigned char)__b);
7736 }
7737
7738 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector signed short __b)7739 vec_srb(__vector unsigned short __a, __vector signed short __b) {
7740 return (__vector unsigned short)__builtin_s390_vsrlb(
7741 (__vector unsigned char)__a, (__vector unsigned char)__b);
7742 }
7743
7744 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector unsigned short __b)7745 vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
7746 return (__vector unsigned short)__builtin_s390_vsrlb(
7747 (__vector unsigned char)__a, (__vector unsigned char)__b);
7748 }
7749
7750 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector signed int __b)7751 vec_srb(__vector signed int __a, __vector signed int __b) {
7752 return (__vector signed int)__builtin_s390_vsrlb(
7753 (__vector unsigned char)__a, (__vector unsigned char)__b);
7754 }
7755
7756 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector unsigned int __b)7757 vec_srb(__vector signed int __a, __vector unsigned int __b) {
7758 return (__vector signed int)__builtin_s390_vsrlb(
7759 (__vector unsigned char)__a, (__vector unsigned char)__b);
7760 }
7761
7762 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector signed int __b)7763 vec_srb(__vector unsigned int __a, __vector signed int __b) {
7764 return (__vector unsigned int)__builtin_s390_vsrlb(
7765 (__vector unsigned char)__a, (__vector unsigned char)__b);
7766 }
7767
7768 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector unsigned int __b)7769 vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
7770 return (__vector unsigned int)__builtin_s390_vsrlb(
7771 (__vector unsigned char)__a, (__vector unsigned char)__b);
7772 }
7773
7774 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector signed long long __b)7775 vec_srb(__vector signed long long __a, __vector signed long long __b) {
7776 return (__vector signed long long)__builtin_s390_vsrlb(
7777 (__vector unsigned char)__a, (__vector unsigned char)__b);
7778 }
7779
7780 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector unsigned long long __b)7781 vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
7782 return (__vector signed long long)__builtin_s390_vsrlb(
7783 (__vector unsigned char)__a, (__vector unsigned char)__b);
7784 }
7785
7786 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector signed long long __b)7787 vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
7788 return (__vector unsigned long long)__builtin_s390_vsrlb(
7789 (__vector unsigned char)__a, (__vector unsigned char)__b);
7790 }
7791
7792 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector unsigned long long __b)7793 vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
7794 return (__vector unsigned long long)__builtin_s390_vsrlb(
7795 (__vector unsigned char)__a, (__vector unsigned char)__b);
7796 }
7797
7798 #if __ARCH__ >= 12
7799 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector signed int __b)7800 vec_srb(__vector float __a, __vector signed int __b) {
7801 return (__vector float)__builtin_s390_vsrlb(
7802 (__vector unsigned char)__a, (__vector unsigned char)__b);
7803 }
7804
7805 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector unsigned int __b)7806 vec_srb(__vector float __a, __vector unsigned int __b) {
7807 return (__vector float)__builtin_s390_vsrlb(
7808 (__vector unsigned char)__a, (__vector unsigned char)__b);
7809 }
7810 #endif
7811
7812 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector signed long long __b)7813 vec_srb(__vector double __a, __vector signed long long __b) {
7814 return (__vector double)__builtin_s390_vsrlb(
7815 (__vector unsigned char)__a, (__vector unsigned char)__b);
7816 }
7817
7818 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector unsigned long long __b)7819 vec_srb(__vector double __a, __vector unsigned long long __b) {
7820 return (__vector double)__builtin_s390_vsrlb(
7821 (__vector unsigned char)__a, (__vector unsigned char)__b);
7822 }
7823
7824 /*-- vec_srdb ---------------------------------------------------------------*/
7825
7826 #if __ARCH__ >= 13
7827
7828 extern __ATTRS_o __vector signed char
7829 vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
7830 __constant_range(__c, 0, 7);
7831
7832 extern __ATTRS_o __vector unsigned char
7833 vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
7834 __constant_range(__c, 0, 7);
7835
7836 extern __ATTRS_o __vector signed short
7837 vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
7838 __constant_range(__c, 0, 7);
7839
7840 extern __ATTRS_o __vector unsigned short
7841 vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
7842 __constant_range(__c, 0, 7);
7843
7844 extern __ATTRS_o __vector signed int
7845 vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
7846 __constant_range(__c, 0, 7);
7847
7848 extern __ATTRS_o __vector unsigned int
7849 vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
7850 __constant_range(__c, 0, 7);
7851
7852 extern __ATTRS_o __vector signed long long
7853 vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
7854 __constant_range(__c, 0, 7);
7855
7856 extern __ATTRS_o __vector unsigned long long
7857 vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
7858 int __c)
7859 __constant_range(__c, 0, 7);
7860
7861 extern __ATTRS_o __vector float
7862 vec_srdb(__vector float __a, __vector float __b, int __c)
7863 __constant_range(__c, 0, 7);
7864
7865 extern __ATTRS_o __vector double
7866 vec_srdb(__vector double __a, __vector double __b, int __c)
7867 __constant_range(__c, 0, 7);
7868
7869 #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
7870 __builtin_s390_vsrd((__vector unsigned char)(X), \
7871 (__vector unsigned char)(Y), (Z)))
7872
7873 #endif
7874
7875 /*-- vec_abs ----------------------------------------------------------------*/
7876
7877 static inline __ATTRS_o_ai __vector signed char
vec_abs(__vector signed char __a)7878 vec_abs(__vector signed char __a) {
7879 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
7880 }
7881
7882 static inline __ATTRS_o_ai __vector signed short
vec_abs(__vector signed short __a)7883 vec_abs(__vector signed short __a) {
7884 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
7885 }
7886
7887 static inline __ATTRS_o_ai __vector signed int
vec_abs(__vector signed int __a)7888 vec_abs(__vector signed int __a) {
7889 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
7890 }
7891
7892 static inline __ATTRS_o_ai __vector signed long long
vec_abs(__vector signed long long __a)7893 vec_abs(__vector signed long long __a) {
7894 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
7895 }
7896
7897 #if __ARCH__ >= 12
7898 static inline __ATTRS_o_ai __vector float
vec_abs(__vector float __a)7899 vec_abs(__vector float __a) {
7900 return __builtin_s390_vflpsb(__a);
7901 }
7902 #endif
7903
7904 static inline __ATTRS_o_ai __vector double
vec_abs(__vector double __a)7905 vec_abs(__vector double __a) {
7906 return __builtin_s390_vflpdb(__a);
7907 }
7908
7909 /*-- vec_nabs ---------------------------------------------------------------*/
7910
7911 #if __ARCH__ >= 12
7912 static inline __ATTRS_o_ai __vector float
vec_nabs(__vector float __a)7913 vec_nabs(__vector float __a) {
7914 return __builtin_s390_vflnsb(__a);
7915 }
7916 #endif
7917
7918 static inline __ATTRS_o_ai __vector double
vec_nabs(__vector double __a)7919 vec_nabs(__vector double __a) {
7920 return __builtin_s390_vflndb(__a);
7921 }
7922
7923 /*-- vec_max ----------------------------------------------------------------*/
7924
7925 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector signed char __b)7926 vec_max(__vector signed char __a, __vector signed char __b) {
7927 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7928 }
7929
7930 // This prototype is deprecated.
7931 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector __bool char __b)7932 vec_max(__vector signed char __a, __vector __bool char __b) {
7933 __vector signed char __bc = (__vector signed char)__b;
7934 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7935 }
7936
7937 // This prototype is deprecated.
7938 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector __bool char __a,__vector signed char __b)7939 vec_max(__vector __bool char __a, __vector signed char __b) {
7940 __vector signed char __ac = (__vector signed char)__a;
7941 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7942 }
7943
7944 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector unsigned char __b)7945 vec_max(__vector unsigned char __a, __vector unsigned char __b) {
7946 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7947 }
7948
7949 // This prototype is deprecated.
7950 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector __bool char __b)7951 vec_max(__vector unsigned char __a, __vector __bool char __b) {
7952 __vector unsigned char __bc = (__vector unsigned char)__b;
7953 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7954 }
7955
7956 // This prototype is deprecated.
7957 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector __bool char __a,__vector unsigned char __b)7958 vec_max(__vector __bool char __a, __vector unsigned char __b) {
7959 __vector unsigned char __ac = (__vector unsigned char)__a;
7960 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7961 }
7962
7963 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector signed short __b)7964 vec_max(__vector signed short __a, __vector signed short __b) {
7965 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7966 }
7967
7968 // This prototype is deprecated.
7969 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector __bool short __b)7970 vec_max(__vector signed short __a, __vector __bool short __b) {
7971 __vector signed short __bc = (__vector signed short)__b;
7972 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7973 }
7974
7975 // This prototype is deprecated.
7976 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector __bool short __a,__vector signed short __b)7977 vec_max(__vector __bool short __a, __vector signed short __b) {
7978 __vector signed short __ac = (__vector signed short)__a;
7979 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7980 }
7981
7982 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector unsigned short __b)7983 vec_max(__vector unsigned short __a, __vector unsigned short __b) {
7984 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7985 }
7986
7987 // This prototype is deprecated.
7988 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector __bool short __b)7989 vec_max(__vector unsigned short __a, __vector __bool short __b) {
7990 __vector unsigned short __bc = (__vector unsigned short)__b;
7991 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7992 }
7993
7994 // This prototype is deprecated.
7995 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector __bool short __a,__vector unsigned short __b)7996 vec_max(__vector __bool short __a, __vector unsigned short __b) {
7997 __vector unsigned short __ac = (__vector unsigned short)__a;
7998 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7999 }
8000
8001 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector signed int __b)8002 vec_max(__vector signed int __a, __vector signed int __b) {
8003 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8004 }
8005
8006 // This prototype is deprecated.
8007 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector __bool int __b)8008 vec_max(__vector signed int __a, __vector __bool int __b) {
8009 __vector signed int __bc = (__vector signed int)__b;
8010 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8011 }
8012
8013 // This prototype is deprecated.
8014 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector __bool int __a,__vector signed int __b)8015 vec_max(__vector __bool int __a, __vector signed int __b) {
8016 __vector signed int __ac = (__vector signed int)__a;
8017 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8018 }
8019
8020 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector unsigned int __b)8021 vec_max(__vector unsigned int __a, __vector unsigned int __b) {
8022 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8023 }
8024
8025 // This prototype is deprecated.
8026 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector __bool int __b)8027 vec_max(__vector unsigned int __a, __vector __bool int __b) {
8028 __vector unsigned int __bc = (__vector unsigned int)__b;
8029 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8030 }
8031
8032 // This prototype is deprecated.
8033 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector __bool int __a,__vector unsigned int __b)8034 vec_max(__vector __bool int __a, __vector unsigned int __b) {
8035 __vector unsigned int __ac = (__vector unsigned int)__a;
8036 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8037 }
8038
8039 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector signed long long __b)8040 vec_max(__vector signed long long __a, __vector signed long long __b) {
8041 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8042 }
8043
8044 // This prototype is deprecated.
8045 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector __bool long long __b)8046 vec_max(__vector signed long long __a, __vector __bool long long __b) {
8047 __vector signed long long __bc = (__vector signed long long)__b;
8048 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8049 }
8050
8051 // This prototype is deprecated.
8052 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector __bool long long __a,__vector signed long long __b)8053 vec_max(__vector __bool long long __a, __vector signed long long __b) {
8054 __vector signed long long __ac = (__vector signed long long)__a;
8055 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8056 }
8057
8058 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector unsigned long long __b)8059 vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
8060 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8061 }
8062
8063 // This prototype is deprecated.
8064 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector __bool long long __b)8065 vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
8066 __vector unsigned long long __bc = (__vector unsigned long long)__b;
8067 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
8068 }
8069
8070 // This prototype is deprecated.
8071 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector __bool long long __a,__vector unsigned long long __b)8072 vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
8073 __vector unsigned long long __ac = (__vector unsigned long long)__a;
8074 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
8075 }
8076
8077 #if __ARCH__ >= 12
8078 static inline __ATTRS_o_ai __vector float
vec_max(__vector float __a,__vector float __b)8079 vec_max(__vector float __a, __vector float __b) {
8080 return __builtin_s390_vfmaxsb(__a, __b, 0);
8081 }
8082 #endif
8083
8084 static inline __ATTRS_o_ai __vector double
vec_max(__vector double __a,__vector double __b)8085 vec_max(__vector double __a, __vector double __b) {
8086 #if __ARCH__ >= 12
8087 return __builtin_s390_vfmaxdb(__a, __b, 0);
8088 #else
8089 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
8090 #endif
8091 }
8092
8093 /*-- vec_min ----------------------------------------------------------------*/
8094
8095 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector signed char __b)8096 vec_min(__vector signed char __a, __vector signed char __b) {
8097 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8098 }
8099
8100 // This prototype is deprecated.
8101 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector __bool char __b)8102 vec_min(__vector signed char __a, __vector __bool char __b) {
8103 __vector signed char __bc = (__vector signed char)__b;
8104 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8105 }
8106
8107 // This prototype is deprecated.
8108 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector __bool char __a,__vector signed char __b)8109 vec_min(__vector __bool char __a, __vector signed char __b) {
8110 __vector signed char __ac = (__vector signed char)__a;
8111 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8112 }
8113
8114 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector unsigned char __b)8115 vec_min(__vector unsigned char __a, __vector unsigned char __b) {
8116 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8117 }
8118
8119 // This prototype is deprecated.
8120 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector __bool char __b)8121 vec_min(__vector unsigned char __a, __vector __bool char __b) {
8122 __vector unsigned char __bc = (__vector unsigned char)__b;
8123 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8124 }
8125
8126 // This prototype is deprecated.
8127 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector __bool char __a,__vector unsigned char __b)8128 vec_min(__vector __bool char __a, __vector unsigned char __b) {
8129 __vector unsigned char __ac = (__vector unsigned char)__a;
8130 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8131 }
8132
8133 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector signed short __b)8134 vec_min(__vector signed short __a, __vector signed short __b) {
8135 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8136 }
8137
8138 // This prototype is deprecated.
8139 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector __bool short __b)8140 vec_min(__vector signed short __a, __vector __bool short __b) {
8141 __vector signed short __bc = (__vector signed short)__b;
8142 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8143 }
8144
8145 // This prototype is deprecated.
8146 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector __bool short __a,__vector signed short __b)8147 vec_min(__vector __bool short __a, __vector signed short __b) {
8148 __vector signed short __ac = (__vector signed short)__a;
8149 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8150 }
8151
8152 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector unsigned short __b)8153 vec_min(__vector unsigned short __a, __vector unsigned short __b) {
8154 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8155 }
8156
8157 // This prototype is deprecated.
8158 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector __bool short __b)8159 vec_min(__vector unsigned short __a, __vector __bool short __b) {
8160 __vector unsigned short __bc = (__vector unsigned short)__b;
8161 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8162 }
8163
8164 // This prototype is deprecated.
8165 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector __bool short __a,__vector unsigned short __b)8166 vec_min(__vector __bool short __a, __vector unsigned short __b) {
8167 __vector unsigned short __ac = (__vector unsigned short)__a;
8168 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8169 }
8170
8171 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector signed int __b)8172 vec_min(__vector signed int __a, __vector signed int __b) {
8173 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8174 }
8175
8176 // This prototype is deprecated.
8177 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector __bool int __b)8178 vec_min(__vector signed int __a, __vector __bool int __b) {
8179 __vector signed int __bc = (__vector signed int)__b;
8180 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8181 }
8182
8183 // This prototype is deprecated.
8184 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector __bool int __a,__vector signed int __b)8185 vec_min(__vector __bool int __a, __vector signed int __b) {
8186 __vector signed int __ac = (__vector signed int)__a;
8187 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8188 }
8189
8190 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector unsigned int __b)8191 vec_min(__vector unsigned int __a, __vector unsigned int __b) {
8192 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8193 }
8194
8195 // This prototype is deprecated.
8196 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector __bool int __b)8197 vec_min(__vector unsigned int __a, __vector __bool int __b) {
8198 __vector unsigned int __bc = (__vector unsigned int)__b;
8199 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8200 }
8201
8202 // This prototype is deprecated.
8203 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector __bool int __a,__vector unsigned int __b)8204 vec_min(__vector __bool int __a, __vector unsigned int __b) {
8205 __vector unsigned int __ac = (__vector unsigned int)__a;
8206 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8207 }
8208
8209 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector signed long long __b)8210 vec_min(__vector signed long long __a, __vector signed long long __b) {
8211 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8212 }
8213
8214 // This prototype is deprecated.
8215 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector __bool long long __b)8216 vec_min(__vector signed long long __a, __vector __bool long long __b) {
8217 __vector signed long long __bc = (__vector signed long long)__b;
8218 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8219 }
8220
8221 // This prototype is deprecated.
8222 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector __bool long long __a,__vector signed long long __b)8223 vec_min(__vector __bool long long __a, __vector signed long long __b) {
8224 __vector signed long long __ac = (__vector signed long long)__a;
8225 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8226 }
8227
8228 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector unsigned long long __b)8229 vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
8230 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8231 }
8232
8233 // This prototype is deprecated.
8234 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector __bool long long __b)8235 vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
8236 __vector unsigned long long __bc = (__vector unsigned long long)__b;
8237 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
8238 }
8239
8240 // This prototype is deprecated.
8241 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector __bool long long __a,__vector unsigned long long __b)8242 vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
8243 __vector unsigned long long __ac = (__vector unsigned long long)__a;
8244 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
8245 }
8246
8247 #if __ARCH__ >= 12
8248 static inline __ATTRS_o_ai __vector float
vec_min(__vector float __a,__vector float __b)8249 vec_min(__vector float __a, __vector float __b) {
8250 return __builtin_s390_vfminsb(__a, __b, 0);
8251 }
8252 #endif
8253
8254 static inline __ATTRS_o_ai __vector double
vec_min(__vector double __a,__vector double __b)8255 vec_min(__vector double __a, __vector double __b) {
8256 #if __ARCH__ >= 12
8257 return __builtin_s390_vfmindb(__a, __b, 0);
8258 #else
8259 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
8260 #endif
8261 }
8262
8263 /*-- vec_add_u128 -----------------------------------------------------------*/
8264
8265 static inline __ATTRS_ai __vector unsigned char
vec_add_u128(__vector unsigned char __a,__vector unsigned char __b)8266 vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
8267 return __builtin_s390_vaq(__a, __b);
8268 }
8269
8270 /*-- vec_addc ---------------------------------------------------------------*/
8271
8272 static inline __ATTRS_o_ai __vector unsigned char
vec_addc(__vector unsigned char __a,__vector unsigned char __b)8273 vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
8274 return __builtin_s390_vaccb(__a, __b);
8275 }
8276
8277 static inline __ATTRS_o_ai __vector unsigned short
vec_addc(__vector unsigned short __a,__vector unsigned short __b)8278 vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
8279 return __builtin_s390_vacch(__a, __b);
8280 }
8281
8282 static inline __ATTRS_o_ai __vector unsigned int
vec_addc(__vector unsigned int __a,__vector unsigned int __b)8283 vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
8284 return __builtin_s390_vaccf(__a, __b);
8285 }
8286
8287 static inline __ATTRS_o_ai __vector unsigned long long
vec_addc(__vector unsigned long long __a,__vector unsigned long long __b)8288 vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
8289 return __builtin_s390_vaccg(__a, __b);
8290 }
8291
8292 /*-- vec_addc_u128 ----------------------------------------------------------*/
8293
8294 static inline __ATTRS_ai __vector unsigned char
vec_addc_u128(__vector unsigned char __a,__vector unsigned char __b)8295 vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
8296 return __builtin_s390_vaccq(__a, __b);
8297 }
8298
8299 /*-- vec_adde_u128 ----------------------------------------------------------*/
8300
8301 static inline __ATTRS_ai __vector unsigned char
vec_adde_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8302 vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
8303 __vector unsigned char __c) {
8304 return __builtin_s390_vacq(__a, __b, __c);
8305 }
8306
8307 /*-- vec_addec_u128 ---------------------------------------------------------*/
8308
8309 static inline __ATTRS_ai __vector unsigned char
vec_addec_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8310 vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
8311 __vector unsigned char __c) {
8312 return __builtin_s390_vacccq(__a, __b, __c);
8313 }
8314
8315 /*-- vec_avg ----------------------------------------------------------------*/
8316
8317 static inline __ATTRS_o_ai __vector signed char
vec_avg(__vector signed char __a,__vector signed char __b)8318 vec_avg(__vector signed char __a, __vector signed char __b) {
8319 return __builtin_s390_vavgb(__a, __b);
8320 }
8321
8322 static inline __ATTRS_o_ai __vector signed short
vec_avg(__vector signed short __a,__vector signed short __b)8323 vec_avg(__vector signed short __a, __vector signed short __b) {
8324 return __builtin_s390_vavgh(__a, __b);
8325 }
8326
8327 static inline __ATTRS_o_ai __vector signed int
vec_avg(__vector signed int __a,__vector signed int __b)8328 vec_avg(__vector signed int __a, __vector signed int __b) {
8329 return __builtin_s390_vavgf(__a, __b);
8330 }
8331
8332 static inline __ATTRS_o_ai __vector signed long long
vec_avg(__vector signed long long __a,__vector signed long long __b)8333 vec_avg(__vector signed long long __a, __vector signed long long __b) {
8334 return __builtin_s390_vavgg(__a, __b);
8335 }
8336
8337 static inline __ATTRS_o_ai __vector unsigned char
vec_avg(__vector unsigned char __a,__vector unsigned char __b)8338 vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
8339 return __builtin_s390_vavglb(__a, __b);
8340 }
8341
8342 static inline __ATTRS_o_ai __vector unsigned short
vec_avg(__vector unsigned short __a,__vector unsigned short __b)8343 vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
8344 return __builtin_s390_vavglh(__a, __b);
8345 }
8346
8347 static inline __ATTRS_o_ai __vector unsigned int
vec_avg(__vector unsigned int __a,__vector unsigned int __b)8348 vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
8349 return __builtin_s390_vavglf(__a, __b);
8350 }
8351
8352 static inline __ATTRS_o_ai __vector unsigned long long
vec_avg(__vector unsigned long long __a,__vector unsigned long long __b)8353 vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
8354 return __builtin_s390_vavglg(__a, __b);
8355 }
8356
8357 /*-- vec_checksum -----------------------------------------------------------*/
8358
8359 static inline __ATTRS_ai __vector unsigned int
vec_checksum(__vector unsigned int __a,__vector unsigned int __b)8360 vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
8361 return __builtin_s390_vcksm(__a, __b);
8362 }
8363
8364 /*-- vec_gfmsum -------------------------------------------------------------*/
8365
8366 static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum(__vector unsigned char __a,__vector unsigned char __b)8367 vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
8368 return __builtin_s390_vgfmb(__a, __b);
8369 }
8370
8371 static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum(__vector unsigned short __a,__vector unsigned short __b)8372 vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
8373 return __builtin_s390_vgfmh(__a, __b);
8374 }
8375
8376 static inline __ATTRS_o_ai __vector unsigned long long
vec_gfmsum(__vector unsigned int __a,__vector unsigned int __b)8377 vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
8378 return __builtin_s390_vgfmf(__a, __b);
8379 }
8380
8381 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
8382
8383 static inline __ATTRS_o_ai __vector unsigned char
vec_gfmsum_128(__vector unsigned long long __a,__vector unsigned long long __b)8384 vec_gfmsum_128(__vector unsigned long long __a,
8385 __vector unsigned long long __b) {
8386 return __builtin_s390_vgfmg(__a, __b);
8387 }
8388
8389 /*-- vec_gfmsum_accum -------------------------------------------------------*/
8390
8391 static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum_accum(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)8392 vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
8393 __vector unsigned short __c) {
8394 return __builtin_s390_vgfmab(__a, __b, __c);
8395 }
8396
8397 static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum_accum(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)8398 vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
8399 __vector unsigned int __c) {
8400 return __builtin_s390_vgfmah(__a, __b, __c);
8401 }
8402
8403 static inline __ATTRS_o_ai __vector unsigned long long
vec_gfmsum_accum(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)8404 vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
8405 __vector unsigned long long __c) {
8406 return __builtin_s390_vgfmaf(__a, __b, __c);
8407 }
8408
8409 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
8410
8411 static inline __ATTRS_o_ai __vector unsigned char
vec_gfmsum_accum_128(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned char __c)8412 vec_gfmsum_accum_128(__vector unsigned long long __a,
8413 __vector unsigned long long __b,
8414 __vector unsigned char __c) {
8415 return __builtin_s390_vgfmag(__a, __b, __c);
8416 }
8417
8418 /*-- vec_mladd --------------------------------------------------------------*/
8419
8420 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a,__vector signed char __b,__vector signed char __c)8421 vec_mladd(__vector signed char __a, __vector signed char __b,
8422 __vector signed char __c) {
8423 return __a * __b + __c;
8424 }
8425
8426 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector unsigned char __a,__vector signed char __b,__vector signed char __c)8427 vec_mladd(__vector unsigned char __a, __vector signed char __b,
8428 __vector signed char __c) {
8429 return (__vector signed char)__a * __b + __c;
8430 }
8431
8432 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a,__vector unsigned char __b,__vector unsigned char __c)8433 vec_mladd(__vector signed char __a, __vector unsigned char __b,
8434 __vector unsigned char __c) {
8435 return __a * (__vector signed char)__b + (__vector signed char)__c;
8436 }
8437
8438 static inline __ATTRS_o_ai __vector unsigned char
vec_mladd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8439 vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
8440 __vector unsigned char __c) {
8441 return __a * __b + __c;
8442 }
8443
8444 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a,__vector signed short __b,__vector signed short __c)8445 vec_mladd(__vector signed short __a, __vector signed short __b,
8446 __vector signed short __c) {
8447 return __a * __b + __c;
8448 }
8449
8450 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector unsigned short __a,__vector signed short __b,__vector signed short __c)8451 vec_mladd(__vector unsigned short __a, __vector signed short __b,
8452 __vector signed short __c) {
8453 return (__vector signed short)__a * __b + __c;
8454 }
8455
8456 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a,__vector unsigned short __b,__vector unsigned short __c)8457 vec_mladd(__vector signed short __a, __vector unsigned short __b,
8458 __vector unsigned short __c) {
8459 return __a * (__vector signed short)__b + (__vector signed short)__c;
8460 }
8461
8462 static inline __ATTRS_o_ai __vector unsigned short
vec_mladd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)8463 vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
8464 __vector unsigned short __c) {
8465 return __a * __b + __c;
8466 }
8467
8468 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a,__vector signed int __b,__vector signed int __c)8469 vec_mladd(__vector signed int __a, __vector signed int __b,
8470 __vector signed int __c) {
8471 return __a * __b + __c;
8472 }
8473
8474 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector unsigned int __a,__vector signed int __b,__vector signed int __c)8475 vec_mladd(__vector unsigned int __a, __vector signed int __b,
8476 __vector signed int __c) {
8477 return (__vector signed int)__a * __b + __c;
8478 }
8479
8480 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a,__vector unsigned int __b,__vector unsigned int __c)8481 vec_mladd(__vector signed int __a, __vector unsigned int __b,
8482 __vector unsigned int __c) {
8483 return __a * (__vector signed int)__b + (__vector signed int)__c;
8484 }
8485
8486 static inline __ATTRS_o_ai __vector unsigned int
vec_mladd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)8487 vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
8488 __vector unsigned int __c) {
8489 return __a * __b + __c;
8490 }
8491
8492 /*-- vec_mhadd --------------------------------------------------------------*/
8493
8494 static inline __ATTRS_o_ai __vector signed char
vec_mhadd(__vector signed char __a,__vector signed char __b,__vector signed char __c)8495 vec_mhadd(__vector signed char __a, __vector signed char __b,
8496 __vector signed char __c) {
8497 return __builtin_s390_vmahb(__a, __b, __c);
8498 }
8499
8500 static inline __ATTRS_o_ai __vector unsigned char
vec_mhadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8501 vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
8502 __vector unsigned char __c) {
8503 return __builtin_s390_vmalhb(__a, __b, __c);
8504 }
8505
8506 static inline __ATTRS_o_ai __vector signed short
vec_mhadd(__vector signed short __a,__vector signed short __b,__vector signed short __c)8507 vec_mhadd(__vector signed short __a, __vector signed short __b,
8508 __vector signed short __c) {
8509 return __builtin_s390_vmahh(__a, __b, __c);
8510 }
8511
8512 static inline __ATTRS_o_ai __vector unsigned short
vec_mhadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)8513 vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
8514 __vector unsigned short __c) {
8515 return __builtin_s390_vmalhh(__a, __b, __c);
8516 }
8517
8518 static inline __ATTRS_o_ai __vector signed int
vec_mhadd(__vector signed int __a,__vector signed int __b,__vector signed int __c)8519 vec_mhadd(__vector signed int __a, __vector signed int __b,
8520 __vector signed int __c) {
8521 return __builtin_s390_vmahf(__a, __b, __c);
8522 }
8523
8524 static inline __ATTRS_o_ai __vector unsigned int
vec_mhadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)8525 vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
8526 __vector unsigned int __c) {
8527 return __builtin_s390_vmalhf(__a, __b, __c);
8528 }
8529
8530 /*-- vec_meadd --------------------------------------------------------------*/
8531
8532 static inline __ATTRS_o_ai __vector signed short
vec_meadd(__vector signed char __a,__vector signed char __b,__vector signed short __c)8533 vec_meadd(__vector signed char __a, __vector signed char __b,
8534 __vector signed short __c) {
8535 return __builtin_s390_vmaeb(__a, __b, __c);
8536 }
8537
8538 static inline __ATTRS_o_ai __vector unsigned short
vec_meadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)8539 vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
8540 __vector unsigned short __c) {
8541 return __builtin_s390_vmaleb(__a, __b, __c);
8542 }
8543
8544 static inline __ATTRS_o_ai __vector signed int
vec_meadd(__vector signed short __a,__vector signed short __b,__vector signed int __c)8545 vec_meadd(__vector signed short __a, __vector signed short __b,
8546 __vector signed int __c) {
8547 return __builtin_s390_vmaeh(__a, __b, __c);
8548 }
8549
8550 static inline __ATTRS_o_ai __vector unsigned int
vec_meadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)8551 vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
8552 __vector unsigned int __c) {
8553 return __builtin_s390_vmaleh(__a, __b, __c);
8554 }
8555
8556 static inline __ATTRS_o_ai __vector signed long long
vec_meadd(__vector signed int __a,__vector signed int __b,__vector signed long long __c)8557 vec_meadd(__vector signed int __a, __vector signed int __b,
8558 __vector signed long long __c) {
8559 return __builtin_s390_vmaef(__a, __b, __c);
8560 }
8561
8562 static inline __ATTRS_o_ai __vector unsigned long long
vec_meadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)8563 vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
8564 __vector unsigned long long __c) {
8565 return __builtin_s390_vmalef(__a, __b, __c);
8566 }
8567
8568 /*-- vec_moadd --------------------------------------------------------------*/
8569
8570 static inline __ATTRS_o_ai __vector signed short
vec_moadd(__vector signed char __a,__vector signed char __b,__vector signed short __c)8571 vec_moadd(__vector signed char __a, __vector signed char __b,
8572 __vector signed short __c) {
8573 return __builtin_s390_vmaob(__a, __b, __c);
8574 }
8575
8576 static inline __ATTRS_o_ai __vector unsigned short
vec_moadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)8577 vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
8578 __vector unsigned short __c) {
8579 return __builtin_s390_vmalob(__a, __b, __c);
8580 }
8581
8582 static inline __ATTRS_o_ai __vector signed int
vec_moadd(__vector signed short __a,__vector signed short __b,__vector signed int __c)8583 vec_moadd(__vector signed short __a, __vector signed short __b,
8584 __vector signed int __c) {
8585 return __builtin_s390_vmaoh(__a, __b, __c);
8586 }
8587
8588 static inline __ATTRS_o_ai __vector unsigned int
vec_moadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)8589 vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
8590 __vector unsigned int __c) {
8591 return __builtin_s390_vmaloh(__a, __b, __c);
8592 }
8593
8594 static inline __ATTRS_o_ai __vector signed long long
vec_moadd(__vector signed int __a,__vector signed int __b,__vector signed long long __c)8595 vec_moadd(__vector signed int __a, __vector signed int __b,
8596 __vector signed long long __c) {
8597 return __builtin_s390_vmaof(__a, __b, __c);
8598 }
8599
8600 static inline __ATTRS_o_ai __vector unsigned long long
vec_moadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)8601 vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
8602 __vector unsigned long long __c) {
8603 return __builtin_s390_vmalof(__a, __b, __c);
8604 }
8605
8606 /*-- vec_mulh ---------------------------------------------------------------*/
8607
8608 static inline __ATTRS_o_ai __vector signed char
vec_mulh(__vector signed char __a,__vector signed char __b)8609 vec_mulh(__vector signed char __a, __vector signed char __b) {
8610 return __builtin_s390_vmhb(__a, __b);
8611 }
8612
8613 static inline __ATTRS_o_ai __vector unsigned char
vec_mulh(__vector unsigned char __a,__vector unsigned char __b)8614 vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
8615 return __builtin_s390_vmlhb(__a, __b);
8616 }
8617
8618 static inline __ATTRS_o_ai __vector signed short
vec_mulh(__vector signed short __a,__vector signed short __b)8619 vec_mulh(__vector signed short __a, __vector signed short __b) {
8620 return __builtin_s390_vmhh(__a, __b);
8621 }
8622
8623 static inline __ATTRS_o_ai __vector unsigned short
vec_mulh(__vector unsigned short __a,__vector unsigned short __b)8624 vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
8625 return __builtin_s390_vmlhh(__a, __b);
8626 }
8627
8628 static inline __ATTRS_o_ai __vector signed int
vec_mulh(__vector signed int __a,__vector signed int __b)8629 vec_mulh(__vector signed int __a, __vector signed int __b) {
8630 return __builtin_s390_vmhf(__a, __b);
8631 }
8632
8633 static inline __ATTRS_o_ai __vector unsigned int
vec_mulh(__vector unsigned int __a,__vector unsigned int __b)8634 vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
8635 return __builtin_s390_vmlhf(__a, __b);
8636 }
8637
8638 /*-- vec_mule ---------------------------------------------------------------*/
8639
8640 static inline __ATTRS_o_ai __vector signed short
vec_mule(__vector signed char __a,__vector signed char __b)8641 vec_mule(__vector signed char __a, __vector signed char __b) {
8642 return __builtin_s390_vmeb(__a, __b);
8643 }
8644
8645 static inline __ATTRS_o_ai __vector unsigned short
vec_mule(__vector unsigned char __a,__vector unsigned char __b)8646 vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
8647 return __builtin_s390_vmleb(__a, __b);
8648 }
8649
8650 static inline __ATTRS_o_ai __vector signed int
vec_mule(__vector signed short __a,__vector signed short __b)8651 vec_mule(__vector signed short __a, __vector signed short __b) {
8652 return __builtin_s390_vmeh(__a, __b);
8653 }
8654
8655 static inline __ATTRS_o_ai __vector unsigned int
vec_mule(__vector unsigned short __a,__vector unsigned short __b)8656 vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
8657 return __builtin_s390_vmleh(__a, __b);
8658 }
8659
8660 static inline __ATTRS_o_ai __vector signed long long
vec_mule(__vector signed int __a,__vector signed int __b)8661 vec_mule(__vector signed int __a, __vector signed int __b) {
8662 return __builtin_s390_vmef(__a, __b);
8663 }
8664
8665 static inline __ATTRS_o_ai __vector unsigned long long
vec_mule(__vector unsigned int __a,__vector unsigned int __b)8666 vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
8667 return __builtin_s390_vmlef(__a, __b);
8668 }
8669
8670 /*-- vec_mulo ---------------------------------------------------------------*/
8671
8672 static inline __ATTRS_o_ai __vector signed short
vec_mulo(__vector signed char __a,__vector signed char __b)8673 vec_mulo(__vector signed char __a, __vector signed char __b) {
8674 return __builtin_s390_vmob(__a, __b);
8675 }
8676
8677 static inline __ATTRS_o_ai __vector unsigned short
vec_mulo(__vector unsigned char __a,__vector unsigned char __b)8678 vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
8679 return __builtin_s390_vmlob(__a, __b);
8680 }
8681
8682 static inline __ATTRS_o_ai __vector signed int
vec_mulo(__vector signed short __a,__vector signed short __b)8683 vec_mulo(__vector signed short __a, __vector signed short __b) {
8684 return __builtin_s390_vmoh(__a, __b);
8685 }
8686
8687 static inline __ATTRS_o_ai __vector unsigned int
vec_mulo(__vector unsigned short __a,__vector unsigned short __b)8688 vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
8689 return __builtin_s390_vmloh(__a, __b);
8690 }
8691
8692 static inline __ATTRS_o_ai __vector signed long long
vec_mulo(__vector signed int __a,__vector signed int __b)8693 vec_mulo(__vector signed int __a, __vector signed int __b) {
8694 return __builtin_s390_vmof(__a, __b);
8695 }
8696
8697 static inline __ATTRS_o_ai __vector unsigned long long
vec_mulo(__vector unsigned int __a,__vector unsigned int __b)8698 vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
8699 return __builtin_s390_vmlof(__a, __b);
8700 }
8701
8702 /*-- vec_msum_u128 ----------------------------------------------------------*/
8703
8704 #if __ARCH__ >= 12
8705 #define vec_msum_u128(X, Y, Z, W) \
8706 ((__vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W)));
8707 #endif
8708
8709 /*-- vec_sub_u128 -----------------------------------------------------------*/
8710
8711 static inline __ATTRS_ai __vector unsigned char
vec_sub_u128(__vector unsigned char __a,__vector unsigned char __b)8712 vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
8713 return __builtin_s390_vsq(__a, __b);
8714 }
8715
8716 /*-- vec_subc ---------------------------------------------------------------*/
8717
8718 static inline __ATTRS_o_ai __vector unsigned char
vec_subc(__vector unsigned char __a,__vector unsigned char __b)8719 vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
8720 return __builtin_s390_vscbib(__a, __b);
8721 }
8722
8723 static inline __ATTRS_o_ai __vector unsigned short
vec_subc(__vector unsigned short __a,__vector unsigned short __b)8724 vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
8725 return __builtin_s390_vscbih(__a, __b);
8726 }
8727
8728 static inline __ATTRS_o_ai __vector unsigned int
vec_subc(__vector unsigned int __a,__vector unsigned int __b)8729 vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
8730 return __builtin_s390_vscbif(__a, __b);
8731 }
8732
8733 static inline __ATTRS_o_ai __vector unsigned long long
vec_subc(__vector unsigned long long __a,__vector unsigned long long __b)8734 vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
8735 return __builtin_s390_vscbig(__a, __b);
8736 }
8737
8738 /*-- vec_subc_u128 ----------------------------------------------------------*/
8739
8740 static inline __ATTRS_ai __vector unsigned char
vec_subc_u128(__vector unsigned char __a,__vector unsigned char __b)8741 vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
8742 return __builtin_s390_vscbiq(__a, __b);
8743 }
8744
8745 /*-- vec_sube_u128 ----------------------------------------------------------*/
8746
8747 static inline __ATTRS_ai __vector unsigned char
vec_sube_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8748 vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
8749 __vector unsigned char __c) {
8750 return __builtin_s390_vsbiq(__a, __b, __c);
8751 }
8752
8753 /*-- vec_subec_u128 ---------------------------------------------------------*/
8754
8755 static inline __ATTRS_ai __vector unsigned char
vec_subec_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)8756 vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
8757 __vector unsigned char __c) {
8758 return __builtin_s390_vsbcbiq(__a, __b, __c);
8759 }
8760
8761 /*-- vec_sum2 ---------------------------------------------------------------*/
8762
8763 static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned short __a,__vector unsigned short __b)8764 vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
8765 return __builtin_s390_vsumgh(__a, __b);
8766 }
8767
8768 static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned int __a,__vector unsigned int __b)8769 vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
8770 return __builtin_s390_vsumgf(__a, __b);
8771 }
8772
8773 /*-- vec_sum_u128 -----------------------------------------------------------*/
8774
8775 static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned int __a,__vector unsigned int __b)8776 vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
8777 return __builtin_s390_vsumqf(__a, __b);
8778 }
8779
8780 static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned long long __a,__vector unsigned long long __b)8781 vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
8782 return __builtin_s390_vsumqg(__a, __b);
8783 }
8784
8785 /*-- vec_sum4 ---------------------------------------------------------------*/
8786
8787 static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned char __a,__vector unsigned char __b)8788 vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
8789 return __builtin_s390_vsumb(__a, __b);
8790 }
8791
8792 static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned short __a,__vector unsigned short __b)8793 vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
8794 return __builtin_s390_vsumh(__a, __b);
8795 }
8796
8797 /*-- vec_test_mask ----------------------------------------------------------*/
8798
8799 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed char __a,__vector unsigned char __b)8800 vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
8801 return __builtin_s390_vtm((__vector unsigned char)__a,
8802 (__vector unsigned char)__b);
8803 }
8804
8805 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned char __a,__vector unsigned char __b)8806 vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
8807 return __builtin_s390_vtm(__a, __b);
8808 }
8809
8810 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed short __a,__vector unsigned short __b)8811 vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
8812 return __builtin_s390_vtm((__vector unsigned char)__a,
8813 (__vector unsigned char)__b);
8814 }
8815
8816 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned short __a,__vector unsigned short __b)8817 vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
8818 return __builtin_s390_vtm((__vector unsigned char)__a,
8819 (__vector unsigned char)__b);
8820 }
8821
8822 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed int __a,__vector unsigned int __b)8823 vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
8824 return __builtin_s390_vtm((__vector unsigned char)__a,
8825 (__vector unsigned char)__b);
8826 }
8827
8828 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned int __a,__vector unsigned int __b)8829 vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
8830 return __builtin_s390_vtm((__vector unsigned char)__a,
8831 (__vector unsigned char)__b);
8832 }
8833
8834 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed long long __a,__vector unsigned long long __b)8835 vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
8836 return __builtin_s390_vtm((__vector unsigned char)__a,
8837 (__vector unsigned char)__b);
8838 }
8839
8840 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned long long __a,__vector unsigned long long __b)8841 vec_test_mask(__vector unsigned long long __a,
8842 __vector unsigned long long __b) {
8843 return __builtin_s390_vtm((__vector unsigned char)__a,
8844 (__vector unsigned char)__b);
8845 }
8846
8847 #if __ARCH__ >= 12
8848 static inline __ATTRS_o_ai int
vec_test_mask(__vector float __a,__vector unsigned int __b)8849 vec_test_mask(__vector float __a, __vector unsigned int __b) {
8850 return __builtin_s390_vtm((__vector unsigned char)__a,
8851 (__vector unsigned char)__b);
8852 }
8853 #endif
8854
8855 static inline __ATTRS_o_ai int
vec_test_mask(__vector double __a,__vector unsigned long long __b)8856 vec_test_mask(__vector double __a, __vector unsigned long long __b) {
8857 return __builtin_s390_vtm((__vector unsigned char)__a,
8858 (__vector unsigned char)__b);
8859 }
8860
8861 /*-- vec_madd ---------------------------------------------------------------*/
8862
8863 #if __ARCH__ >= 12
8864 static inline __ATTRS_o_ai __vector float
vec_madd(__vector float __a,__vector float __b,__vector float __c)8865 vec_madd(__vector float __a, __vector float __b, __vector float __c) {
8866 return __builtin_s390_vfmasb(__a, __b, __c);
8867 }
8868 #endif
8869
8870 static inline __ATTRS_o_ai __vector double
vec_madd(__vector double __a,__vector double __b,__vector double __c)8871 vec_madd(__vector double __a, __vector double __b, __vector double __c) {
8872 return __builtin_s390_vfmadb(__a, __b, __c);
8873 }
8874
8875 /*-- vec_msub ---------------------------------------------------------------*/
8876
8877 #if __ARCH__ >= 12
8878 static inline __ATTRS_o_ai __vector float
vec_msub(__vector float __a,__vector float __b,__vector float __c)8879 vec_msub(__vector float __a, __vector float __b, __vector float __c) {
8880 return __builtin_s390_vfmssb(__a, __b, __c);
8881 }
8882 #endif
8883
8884 static inline __ATTRS_o_ai __vector double
vec_msub(__vector double __a,__vector double __b,__vector double __c)8885 vec_msub(__vector double __a, __vector double __b, __vector double __c) {
8886 return __builtin_s390_vfmsdb(__a, __b, __c);
8887 }
8888
8889 /*-- vec_nmadd ---------------------------------------------------------------*/
8890
8891 #if __ARCH__ >= 12
8892 static inline __ATTRS_o_ai __vector float
vec_nmadd(__vector float __a,__vector float __b,__vector float __c)8893 vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
8894 return __builtin_s390_vfnmasb(__a, __b, __c);
8895 }
8896
8897 static inline __ATTRS_o_ai __vector double
vec_nmadd(__vector double __a,__vector double __b,__vector double __c)8898 vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
8899 return __builtin_s390_vfnmadb(__a, __b, __c);
8900 }
8901 #endif
8902
8903 /*-- vec_nmsub ---------------------------------------------------------------*/
8904
8905 #if __ARCH__ >= 12
8906 static inline __ATTRS_o_ai __vector float
vec_nmsub(__vector float __a,__vector float __b,__vector float __c)8907 vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
8908 return __builtin_s390_vfnmssb(__a, __b, __c);
8909 }
8910
8911 static inline __ATTRS_o_ai __vector double
vec_nmsub(__vector double __a,__vector double __b,__vector double __c)8912 vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
8913 return __builtin_s390_vfnmsdb(__a, __b, __c);
8914 }
8915 #endif
8916
8917 /*-- vec_sqrt ---------------------------------------------------------------*/
8918
8919 #if __ARCH__ >= 12
8920 static inline __ATTRS_o_ai __vector float
vec_sqrt(__vector float __a)8921 vec_sqrt(__vector float __a) {
8922 return __builtin_s390_vfsqsb(__a);
8923 }
8924 #endif
8925
8926 static inline __ATTRS_o_ai __vector double
vec_sqrt(__vector double __a)8927 vec_sqrt(__vector double __a) {
8928 return __builtin_s390_vfsqdb(__a);
8929 }
8930
8931 /*-- vec_ld2f ---------------------------------------------------------------*/
8932
8933 // This prototype is deprecated.
8934 static inline __ATTRS_ai __vector double
vec_ld2f(const float * __ptr)8935 vec_ld2f(const float *__ptr) {
8936 typedef float __v2f32 __attribute__((__vector_size__(8)));
8937 return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
8938 }
8939
8940 /*-- vec_st2f ---------------------------------------------------------------*/
8941
8942 // This prototype is deprecated.
8943 static inline __ATTRS_ai void
vec_st2f(__vector double __a,float * __ptr)8944 vec_st2f(__vector double __a, float *__ptr) {
8945 typedef float __v2f32 __attribute__((__vector_size__(8)));
8946 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
8947 }
8948
8949 /*-- vec_ctd ----------------------------------------------------------------*/
8950
8951 // This prototype is deprecated.
8952 static inline __ATTRS_o_ai __vector double
vec_ctd(__vector signed long long __a,int __b)8953 vec_ctd(__vector signed long long __a, int __b)
8954 __constant_range(__b, 0, 31) {
8955 __vector double __conv = __builtin_convertvector(__a, __vector double);
8956 __conv *= ((__vector double)(__vector unsigned long long)
8957 ((0x3ffULL - __b) << 52));
8958 return __conv;
8959 }
8960
8961 // This prototype is deprecated.
8962 static inline __ATTRS_o_ai __vector double
vec_ctd(__vector unsigned long long __a,int __b)8963 vec_ctd(__vector unsigned long long __a, int __b)
8964 __constant_range(__b, 0, 31) {
8965 __vector double __conv = __builtin_convertvector(__a, __vector double);
8966 __conv *= ((__vector double)(__vector unsigned long long)
8967 ((0x3ffULL - __b) << 52));
8968 return __conv;
8969 }
8970
8971 /*-- vec_ctsl ---------------------------------------------------------------*/
8972
8973 // This prototype is deprecated.
8974 static inline __ATTRS_o_ai __vector signed long long
vec_ctsl(__vector double __a,int __b)8975 vec_ctsl(__vector double __a, int __b)
8976 __constant_range(__b, 0, 31) {
8977 __a *= ((__vector double)(__vector unsigned long long)
8978 ((0x3ffULL + __b) << 52));
8979 return __builtin_convertvector(__a, __vector signed long long);
8980 }
8981
8982 /*-- vec_ctul ---------------------------------------------------------------*/
8983
8984 // This prototype is deprecated.
8985 static inline __ATTRS_o_ai __vector unsigned long long
vec_ctul(__vector double __a,int __b)8986 vec_ctul(__vector double __a, int __b)
8987 __constant_range(__b, 0, 31) {
8988 __a *= ((__vector double)(__vector unsigned long long)
8989 ((0x3ffULL + __b) << 52));
8990 return __builtin_convertvector(__a, __vector unsigned long long);
8991 }
8992
8993 /*-- vec_doublee ------------------------------------------------------------*/
8994
8995 #if __ARCH__ >= 12
8996 static inline __ATTRS_ai __vector double
vec_doublee(__vector float __a)8997 vec_doublee(__vector float __a) {
8998 typedef float __v2f32 __attribute__((__vector_size__(8)));
8999 __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
9000 return __builtin_convertvector(__pack, __vector double);
9001 }
9002 #endif
9003
9004 /*-- vec_floate -------------------------------------------------------------*/
9005
9006 #if __ARCH__ >= 12
9007 static inline __ATTRS_ai __vector float
vec_floate(__vector double __a)9008 vec_floate(__vector double __a) {
9009 typedef float __v2f32 __attribute__((__vector_size__(8)));
9010 __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
9011 return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
9012 }
9013 #endif
9014
9015 /*-- vec_double -------------------------------------------------------------*/
9016
9017 static inline __ATTRS_o_ai __vector double
vec_double(__vector signed long long __a)9018 vec_double(__vector signed long long __a) {
9019 return __builtin_convertvector(__a, __vector double);
9020 }
9021
9022 static inline __ATTRS_o_ai __vector double
vec_double(__vector unsigned long long __a)9023 vec_double(__vector unsigned long long __a) {
9024 return __builtin_convertvector(__a, __vector double);
9025 }
9026
9027 /*-- vec_float --------------------------------------------------------------*/
9028
9029 #if __ARCH__ >= 13
9030
9031 static inline __ATTRS_o_ai __vector float
vec_float(__vector signed int __a)9032 vec_float(__vector signed int __a) {
9033 return __builtin_convertvector(__a, __vector float);
9034 }
9035
9036 static inline __ATTRS_o_ai __vector float
vec_float(__vector unsigned int __a)9037 vec_float(__vector unsigned int __a) {
9038 return __builtin_convertvector(__a, __vector float);
9039 }
9040
9041 #endif
9042
9043 /*-- vec_signed -------------------------------------------------------------*/
9044
9045 static inline __ATTRS_o_ai __vector signed long long
vec_signed(__vector double __a)9046 vec_signed(__vector double __a) {
9047 return __builtin_convertvector(__a, __vector signed long long);
9048 }
9049
9050 #if __ARCH__ >= 13
9051 static inline __ATTRS_o_ai __vector signed int
vec_signed(__vector float __a)9052 vec_signed(__vector float __a) {
9053 return __builtin_convertvector(__a, __vector signed int);
9054 }
9055 #endif
9056
9057 /*-- vec_unsigned -----------------------------------------------------------*/
9058
9059 static inline __ATTRS_o_ai __vector unsigned long long
vec_unsigned(__vector double __a)9060 vec_unsigned(__vector double __a) {
9061 return __builtin_convertvector(__a, __vector unsigned long long);
9062 }
9063
9064 #if __ARCH__ >= 13
9065 static inline __ATTRS_o_ai __vector unsigned int
vec_unsigned(__vector float __a)9066 vec_unsigned(__vector float __a) {
9067 return __builtin_convertvector(__a, __vector unsigned int);
9068 }
9069 #endif
9070
9071 /*-- vec_roundp -------------------------------------------------------------*/
9072
9073 #if __ARCH__ >= 12
9074 static inline __ATTRS_o_ai __vector float
vec_roundp(__vector float __a)9075 vec_roundp(__vector float __a) {
9076 return __builtin_s390_vfisb(__a, 4, 6);
9077 }
9078 #endif
9079
9080 static inline __ATTRS_o_ai __vector double
vec_roundp(__vector double __a)9081 vec_roundp(__vector double __a) {
9082 return __builtin_s390_vfidb(__a, 4, 6);
9083 }
9084
9085 /*-- vec_ceil ---------------------------------------------------------------*/
9086
9087 #if __ARCH__ >= 12
9088 static inline __ATTRS_o_ai __vector float
vec_ceil(__vector float __a)9089 vec_ceil(__vector float __a) {
9090 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9091 return __builtin_s390_vfisb(__a, 4, 6);
9092 }
9093 #endif
9094
9095 static inline __ATTRS_o_ai __vector double
vec_ceil(__vector double __a)9096 vec_ceil(__vector double __a) {
9097 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
9098 return __builtin_s390_vfidb(__a, 4, 6);
9099 }
9100
9101 /*-- vec_roundm -------------------------------------------------------------*/
9102
9103 #if __ARCH__ >= 12
9104 static inline __ATTRS_o_ai __vector float
vec_roundm(__vector float __a)9105 vec_roundm(__vector float __a) {
9106 return __builtin_s390_vfisb(__a, 4, 7);
9107 }
9108 #endif
9109
9110 static inline __ATTRS_o_ai __vector double
vec_roundm(__vector double __a)9111 vec_roundm(__vector double __a) {
9112 return __builtin_s390_vfidb(__a, 4, 7);
9113 }
9114
9115 /*-- vec_floor --------------------------------------------------------------*/
9116
9117 #if __ARCH__ >= 12
9118 static inline __ATTRS_o_ai __vector float
vec_floor(__vector float __a)9119 vec_floor(__vector float __a) {
9120 // On this platform, vec_floor never triggers the IEEE-inexact exception.
9121 return __builtin_s390_vfisb(__a, 4, 7);
9122 }
9123 #endif
9124
9125 static inline __ATTRS_o_ai __vector double
vec_floor(__vector double __a)9126 vec_floor(__vector double __a) {
9127 // On this platform, vec_floor never triggers the IEEE-inexact exception.
9128 return __builtin_s390_vfidb(__a, 4, 7);
9129 }
9130
9131 /*-- vec_roundz -------------------------------------------------------------*/
9132
9133 #if __ARCH__ >= 12
9134 static inline __ATTRS_o_ai __vector float
vec_roundz(__vector float __a)9135 vec_roundz(__vector float __a) {
9136 return __builtin_s390_vfisb(__a, 4, 5);
9137 }
9138 #endif
9139
9140 static inline __ATTRS_o_ai __vector double
vec_roundz(__vector double __a)9141 vec_roundz(__vector double __a) {
9142 return __builtin_s390_vfidb(__a, 4, 5);
9143 }
9144
9145 /*-- vec_trunc --------------------------------------------------------------*/
9146
9147 #if __ARCH__ >= 12
9148 static inline __ATTRS_o_ai __vector float
vec_trunc(__vector float __a)9149 vec_trunc(__vector float __a) {
9150 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9151 return __builtin_s390_vfisb(__a, 4, 5);
9152 }
9153 #endif
9154
9155 static inline __ATTRS_o_ai __vector double
vec_trunc(__vector double __a)9156 vec_trunc(__vector double __a) {
9157 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
9158 return __builtin_s390_vfidb(__a, 4, 5);
9159 }
9160
9161 /*-- vec_roundc -------------------------------------------------------------*/
9162
9163 #if __ARCH__ >= 12
9164 static inline __ATTRS_o_ai __vector float
vec_roundc(__vector float __a)9165 vec_roundc(__vector float __a) {
9166 return __builtin_s390_vfisb(__a, 4, 0);
9167 }
9168 #endif
9169
9170 static inline __ATTRS_o_ai __vector double
vec_roundc(__vector double __a)9171 vec_roundc(__vector double __a) {
9172 return __builtin_s390_vfidb(__a, 4, 0);
9173 }
9174
9175 /*-- vec_rint ---------------------------------------------------------------*/
9176
9177 #if __ARCH__ >= 12
9178 static inline __ATTRS_o_ai __vector float
vec_rint(__vector float __a)9179 vec_rint(__vector float __a) {
9180 // vec_rint may trigger the IEEE-inexact exception.
9181 return __builtin_s390_vfisb(__a, 0, 0);
9182 }
9183 #endif
9184
9185 static inline __ATTRS_o_ai __vector double
vec_rint(__vector double __a)9186 vec_rint(__vector double __a) {
9187 // vec_rint may trigger the IEEE-inexact exception.
9188 return __builtin_s390_vfidb(__a, 0, 0);
9189 }
9190
9191 /*-- vec_round --------------------------------------------------------------*/
9192
9193 #if __ARCH__ >= 12
9194 static inline __ATTRS_o_ai __vector float
vec_round(__vector float __a)9195 vec_round(__vector float __a) {
9196 return __builtin_s390_vfisb(__a, 4, 4);
9197 }
9198 #endif
9199
9200 static inline __ATTRS_o_ai __vector double
vec_round(__vector double __a)9201 vec_round(__vector double __a) {
9202 return __builtin_s390_vfidb(__a, 4, 4);
9203 }
9204
9205 /*-- vec_fp_test_data_class -------------------------------------------------*/
9206
9207 #if __ARCH__ >= 12
9208 extern __ATTRS_o __vector __bool int
9209 vec_fp_test_data_class(__vector float __a, int __b, int *__c)
9210 __constant_range(__b, 0, 4095);
9211
9212 extern __ATTRS_o __vector __bool long long
9213 vec_fp_test_data_class(__vector double __a, int __b, int *__c)
9214 __constant_range(__b, 0, 4095);
9215
9216 #define vec_fp_test_data_class(X, Y, Z) \
9217 ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
9218 __extension__ ({ \
9219 __vector unsigned char __res; \
9220 __vector unsigned char __x = (__vector unsigned char)(X); \
9221 int *__z = (Z); \
9222 switch (sizeof ((X)[0])) { \
9223 case 4: __res = (__vector unsigned char) \
9224 __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
9225 break; \
9226 default: __res = (__vector unsigned char) \
9227 __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
9228 break; \
9229 } __res; }))
9230 #else
9231 #define vec_fp_test_data_class(X, Y, Z) \
9232 ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
9233 #endif
9234
9235 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
9236 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
9237 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
9238 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
9239 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
9240 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
9241 __VEC_CLASS_FP_NORMAL_N)
9242 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
9243 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
9244 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
9245 __VEC_CLASS_FP_SUBNORMAL_N)
9246 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
9247 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
9248 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
9249 __VEC_CLASS_FP_INFINITY_N)
9250 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
9251 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
9252 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
9253 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
9254 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
9255 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
9256 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
9257 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
9258 __VEC_CLASS_FP_SUBNORMAL | \
9259 __VEC_CLASS_FP_ZERO | \
9260 __VEC_CLASS_FP_INFINITY)
9261
9262 /*-- vec_cp_until_zero ------------------------------------------------------*/
9263
9264 static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero(__vector signed char __a)9265 vec_cp_until_zero(__vector signed char __a) {
9266 return ((__vector signed char)
9267 __builtin_s390_vistrb((__vector unsigned char)__a));
9268 }
9269
9270 static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero(__vector __bool char __a)9271 vec_cp_until_zero(__vector __bool char __a) {
9272 return ((__vector __bool char)
9273 __builtin_s390_vistrb((__vector unsigned char)__a));
9274 }
9275
9276 static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero(__vector unsigned char __a)9277 vec_cp_until_zero(__vector unsigned char __a) {
9278 return __builtin_s390_vistrb(__a);
9279 }
9280
9281 static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero(__vector signed short __a)9282 vec_cp_until_zero(__vector signed short __a) {
9283 return ((__vector signed short)
9284 __builtin_s390_vistrh((__vector unsigned short)__a));
9285 }
9286
9287 static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero(__vector __bool short __a)9288 vec_cp_until_zero(__vector __bool short __a) {
9289 return ((__vector __bool short)
9290 __builtin_s390_vistrh((__vector unsigned short)__a));
9291 }
9292
9293 static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero(__vector unsigned short __a)9294 vec_cp_until_zero(__vector unsigned short __a) {
9295 return __builtin_s390_vistrh(__a);
9296 }
9297
9298 static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero(__vector signed int __a)9299 vec_cp_until_zero(__vector signed int __a) {
9300 return ((__vector signed int)
9301 __builtin_s390_vistrf((__vector unsigned int)__a));
9302 }
9303
9304 static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero(__vector __bool int __a)9305 vec_cp_until_zero(__vector __bool int __a) {
9306 return ((__vector __bool int)
9307 __builtin_s390_vistrf((__vector unsigned int)__a));
9308 }
9309
9310 static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero(__vector unsigned int __a)9311 vec_cp_until_zero(__vector unsigned int __a) {
9312 return __builtin_s390_vistrf(__a);
9313 }
9314
9315 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
9316
9317 static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero_cc(__vector signed char __a,int * __cc)9318 vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
9319 return (__vector signed char)
9320 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
9321 }
9322
9323 static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero_cc(__vector __bool char __a,int * __cc)9324 vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
9325 return (__vector __bool char)
9326 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
9327 }
9328
9329 static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero_cc(__vector unsigned char __a,int * __cc)9330 vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
9331 return __builtin_s390_vistrbs(__a, __cc);
9332 }
9333
9334 static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero_cc(__vector signed short __a,int * __cc)9335 vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
9336 return (__vector signed short)
9337 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
9338 }
9339
9340 static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero_cc(__vector __bool short __a,int * __cc)9341 vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
9342 return (__vector __bool short)
9343 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
9344 }
9345
9346 static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero_cc(__vector unsigned short __a,int * __cc)9347 vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
9348 return __builtin_s390_vistrhs(__a, __cc);
9349 }
9350
9351 static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero_cc(__vector signed int __a,int * __cc)9352 vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
9353 return (__vector signed int)
9354 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
9355 }
9356
9357 static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero_cc(__vector __bool int __a,int * __cc)9358 vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
9359 return (__vector __bool int)
9360 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
9361 }
9362
9363 static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero_cc(__vector unsigned int __a,int * __cc)9364 vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
9365 return __builtin_s390_vistrfs(__a, __cc);
9366 }
9367
9368 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
9369
9370 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx(__vector signed char __a,__vector signed char __b)9371 vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
9372 return (__vector signed char)
9373 __builtin_s390_vfeeb((__vector unsigned char)__a,
9374 (__vector unsigned char)__b);
9375 }
9376
9377 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector __bool char __a,__vector __bool char __b)9378 vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
9379 return __builtin_s390_vfeeb((__vector unsigned char)__a,
9380 (__vector unsigned char)__b);
9381 }
9382
9383 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector unsigned char __a,__vector unsigned char __b)9384 vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
9385 return __builtin_s390_vfeeb(__a, __b);
9386 }
9387
9388 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx(__vector signed short __a,__vector signed short __b)9389 vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
9390 return (__vector signed short)
9391 __builtin_s390_vfeeh((__vector unsigned short)__a,
9392 (__vector unsigned short)__b);
9393 }
9394
9395 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector __bool short __a,__vector __bool short __b)9396 vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
9397 return __builtin_s390_vfeeh((__vector unsigned short)__a,
9398 (__vector unsigned short)__b);
9399 }
9400
9401 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector unsigned short __a,__vector unsigned short __b)9402 vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
9403 return __builtin_s390_vfeeh(__a, __b);
9404 }
9405
9406 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx(__vector signed int __a,__vector signed int __b)9407 vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
9408 return (__vector signed int)
9409 __builtin_s390_vfeef((__vector unsigned int)__a,
9410 (__vector unsigned int)__b);
9411 }
9412
9413 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector __bool int __a,__vector __bool int __b)9414 vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
9415 return __builtin_s390_vfeef((__vector unsigned int)__a,
9416 (__vector unsigned int)__b);
9417 }
9418
9419 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector unsigned int __a,__vector unsigned int __b)9420 vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
9421 return __builtin_s390_vfeef(__a, __b);
9422 }
9423
9424 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
9425
9426 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9427 vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
9428 return (__vector signed char)
9429 __builtin_s390_vfeebs((__vector unsigned char)__a,
9430 (__vector unsigned char)__b, __cc);
9431 }
9432
9433 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9434 vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
9435 return __builtin_s390_vfeebs((__vector unsigned char)__a,
9436 (__vector unsigned char)__b, __cc);
9437 }
9438
9439 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9440 vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9441 int *__cc) {
9442 return __builtin_s390_vfeebs(__a, __b, __cc);
9443 }
9444
9445 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9446 vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
9447 int *__cc) {
9448 return (__vector signed short)
9449 __builtin_s390_vfeehs((__vector unsigned short)__a,
9450 (__vector unsigned short)__b, __cc);
9451 }
9452
9453 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9454 vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
9455 return __builtin_s390_vfeehs((__vector unsigned short)__a,
9456 (__vector unsigned short)__b, __cc);
9457 }
9458
9459 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9460 vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9461 int *__cc) {
9462 return __builtin_s390_vfeehs(__a, __b, __cc);
9463 }
9464
9465 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9466 vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
9467 return (__vector signed int)
9468 __builtin_s390_vfeefs((__vector unsigned int)__a,
9469 (__vector unsigned int)__b, __cc);
9470 }
9471
9472 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9473 vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
9474 return __builtin_s390_vfeefs((__vector unsigned int)__a,
9475 (__vector unsigned int)__b, __cc);
9476 }
9477
9478 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9479 vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9480 int *__cc) {
9481 return __builtin_s390_vfeefs(__a, __b, __cc);
9482 }
9483
9484 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
9485
9486 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx(__vector signed char __a,__vector signed char __b)9487 vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
9488 return (__vector signed char)
9489 __builtin_s390_vfeezb((__vector unsigned char)__a,
9490 (__vector unsigned char)__b);
9491 }
9492
9493 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector __bool char __a,__vector __bool char __b)9494 vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
9495 return __builtin_s390_vfeezb((__vector unsigned char)__a,
9496 (__vector unsigned char)__b);
9497 }
9498
9499 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)9500 vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
9501 return __builtin_s390_vfeezb(__a, __b);
9502 }
9503
9504 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx(__vector signed short __a,__vector signed short __b)9505 vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
9506 return (__vector signed short)
9507 __builtin_s390_vfeezh((__vector unsigned short)__a,
9508 (__vector unsigned short)__b);
9509 }
9510
9511 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector __bool short __a,__vector __bool short __b)9512 vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
9513 return __builtin_s390_vfeezh((__vector unsigned short)__a,
9514 (__vector unsigned short)__b);
9515 }
9516
9517 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)9518 vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
9519 return __builtin_s390_vfeezh(__a, __b);
9520 }
9521
9522 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx(__vector signed int __a,__vector signed int __b)9523 vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
9524 return (__vector signed int)
9525 __builtin_s390_vfeezf((__vector unsigned int)__a,
9526 (__vector unsigned int)__b);
9527 }
9528
9529 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector __bool int __a,__vector __bool int __b)9530 vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
9531 return __builtin_s390_vfeezf((__vector unsigned int)__a,
9532 (__vector unsigned int)__b);
9533 }
9534
9535 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)9536 vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
9537 return __builtin_s390_vfeezf(__a, __b);
9538 }
9539
9540 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
9541
9542 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9543 vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
9544 int *__cc) {
9545 return (__vector signed char)
9546 __builtin_s390_vfeezbs((__vector unsigned char)__a,
9547 (__vector unsigned char)__b, __cc);
9548 }
9549
9550 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9551 vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
9552 int *__cc) {
9553 return __builtin_s390_vfeezbs((__vector unsigned char)__a,
9554 (__vector unsigned char)__b, __cc);
9555 }
9556
9557 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9558 vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9559 int *__cc) {
9560 return __builtin_s390_vfeezbs(__a, __b, __cc);
9561 }
9562
9563 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9564 vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
9565 int *__cc) {
9566 return (__vector signed short)
9567 __builtin_s390_vfeezhs((__vector unsigned short)__a,
9568 (__vector unsigned short)__b, __cc);
9569 }
9570
9571 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9572 vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
9573 int *__cc) {
9574 return __builtin_s390_vfeezhs((__vector unsigned short)__a,
9575 (__vector unsigned short)__b, __cc);
9576 }
9577
9578 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9579 vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9580 int *__cc) {
9581 return __builtin_s390_vfeezhs(__a, __b, __cc);
9582 }
9583
9584 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9585 vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
9586 int *__cc) {
9587 return (__vector signed int)
9588 __builtin_s390_vfeezfs((__vector unsigned int)__a,
9589 (__vector unsigned int)__b, __cc);
9590 }
9591
9592 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9593 vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
9594 int *__cc) {
9595 return __builtin_s390_vfeezfs((__vector unsigned int)__a,
9596 (__vector unsigned int)__b, __cc);
9597 }
9598
9599 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9600 vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9601 int *__cc) {
9602 return __builtin_s390_vfeezfs(__a, __b, __cc);
9603 }
9604
9605 /*-- vec_cmpne_idx ----------------------------------------------------------*/
9606
9607 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx(__vector signed char __a,__vector signed char __b)9608 vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
9609 return (__vector signed char)
9610 __builtin_s390_vfeneb((__vector unsigned char)__a,
9611 (__vector unsigned char)__b);
9612 }
9613
9614 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector __bool char __a,__vector __bool char __b)9615 vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
9616 return __builtin_s390_vfeneb((__vector unsigned char)__a,
9617 (__vector unsigned char)__b);
9618 }
9619
9620 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector unsigned char __a,__vector unsigned char __b)9621 vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
9622 return __builtin_s390_vfeneb(__a, __b);
9623 }
9624
9625 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx(__vector signed short __a,__vector signed short __b)9626 vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
9627 return (__vector signed short)
9628 __builtin_s390_vfeneh((__vector unsigned short)__a,
9629 (__vector unsigned short)__b);
9630 }
9631
9632 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector __bool short __a,__vector __bool short __b)9633 vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
9634 return __builtin_s390_vfeneh((__vector unsigned short)__a,
9635 (__vector unsigned short)__b);
9636 }
9637
9638 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector unsigned short __a,__vector unsigned short __b)9639 vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
9640 return __builtin_s390_vfeneh(__a, __b);
9641 }
9642
9643 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx(__vector signed int __a,__vector signed int __b)9644 vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
9645 return (__vector signed int)
9646 __builtin_s390_vfenef((__vector unsigned int)__a,
9647 (__vector unsigned int)__b);
9648 }
9649
9650 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector __bool int __a,__vector __bool int __b)9651 vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
9652 return __builtin_s390_vfenef((__vector unsigned int)__a,
9653 (__vector unsigned int)__b);
9654 }
9655
9656 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector unsigned int __a,__vector unsigned int __b)9657 vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
9658 return __builtin_s390_vfenef(__a, __b);
9659 }
9660
9661 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
9662
9663 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9664 vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
9665 return (__vector signed char)
9666 __builtin_s390_vfenebs((__vector unsigned char)__a,
9667 (__vector unsigned char)__b, __cc);
9668 }
9669
9670 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9671 vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
9672 return __builtin_s390_vfenebs((__vector unsigned char)__a,
9673 (__vector unsigned char)__b, __cc);
9674 }
9675
9676 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9677 vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9678 int *__cc) {
9679 return __builtin_s390_vfenebs(__a, __b, __cc);
9680 }
9681
9682 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9683 vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
9684 int *__cc) {
9685 return (__vector signed short)
9686 __builtin_s390_vfenehs((__vector unsigned short)__a,
9687 (__vector unsigned short)__b, __cc);
9688 }
9689
9690 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9691 vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
9692 int *__cc) {
9693 return __builtin_s390_vfenehs((__vector unsigned short)__a,
9694 (__vector unsigned short)__b, __cc);
9695 }
9696
9697 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9698 vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9699 int *__cc) {
9700 return __builtin_s390_vfenehs(__a, __b, __cc);
9701 }
9702
9703 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9704 vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
9705 return (__vector signed int)
9706 __builtin_s390_vfenefs((__vector unsigned int)__a,
9707 (__vector unsigned int)__b, __cc);
9708 }
9709
9710 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9711 vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
9712 return __builtin_s390_vfenefs((__vector unsigned int)__a,
9713 (__vector unsigned int)__b, __cc);
9714 }
9715
9716 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9717 vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9718 int *__cc) {
9719 return __builtin_s390_vfenefs(__a, __b, __cc);
9720 }
9721
9722 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
9723
9724 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx(__vector signed char __a,__vector signed char __b)9725 vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
9726 return (__vector signed char)
9727 __builtin_s390_vfenezb((__vector unsigned char)__a,
9728 (__vector unsigned char)__b);
9729 }
9730
9731 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector __bool char __a,__vector __bool char __b)9732 vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
9733 return __builtin_s390_vfenezb((__vector unsigned char)__a,
9734 (__vector unsigned char)__b);
9735 }
9736
9737 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)9738 vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
9739 return __builtin_s390_vfenezb(__a, __b);
9740 }
9741
9742 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx(__vector signed short __a,__vector signed short __b)9743 vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
9744 return (__vector signed short)
9745 __builtin_s390_vfenezh((__vector unsigned short)__a,
9746 (__vector unsigned short)__b);
9747 }
9748
9749 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector __bool short __a,__vector __bool short __b)9750 vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
9751 return __builtin_s390_vfenezh((__vector unsigned short)__a,
9752 (__vector unsigned short)__b);
9753 }
9754
9755 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)9756 vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
9757 return __builtin_s390_vfenezh(__a, __b);
9758 }
9759
9760 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx(__vector signed int __a,__vector signed int __b)9761 vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
9762 return (__vector signed int)
9763 __builtin_s390_vfenezf((__vector unsigned int)__a,
9764 (__vector unsigned int)__b);
9765 }
9766
9767 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector __bool int __a,__vector __bool int __b)9768 vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
9769 return __builtin_s390_vfenezf((__vector unsigned int)__a,
9770 (__vector unsigned int)__b);
9771 }
9772
9773 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)9774 vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
9775 return __builtin_s390_vfenezf(__a, __b);
9776 }
9777
9778 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
9779
9780 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)9781 vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
9782 int *__cc) {
9783 return (__vector signed char)
9784 __builtin_s390_vfenezbs((__vector unsigned char)__a,
9785 (__vector unsigned char)__b, __cc);
9786 }
9787
9788 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)9789 vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
9790 int *__cc) {
9791 return __builtin_s390_vfenezbs((__vector unsigned char)__a,
9792 (__vector unsigned char)__b, __cc);
9793 }
9794
9795 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)9796 vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9797 int *__cc) {
9798 return __builtin_s390_vfenezbs(__a, __b, __cc);
9799 }
9800
9801 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)9802 vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
9803 int *__cc) {
9804 return (__vector signed short)
9805 __builtin_s390_vfenezhs((__vector unsigned short)__a,
9806 (__vector unsigned short)__b, __cc);
9807 }
9808
9809 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)9810 vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
9811 int *__cc) {
9812 return __builtin_s390_vfenezhs((__vector unsigned short)__a,
9813 (__vector unsigned short)__b, __cc);
9814 }
9815
9816 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)9817 vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9818 int *__cc) {
9819 return __builtin_s390_vfenezhs(__a, __b, __cc);
9820 }
9821
9822 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)9823 vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
9824 int *__cc) {
9825 return (__vector signed int)
9826 __builtin_s390_vfenezfs((__vector unsigned int)__a,
9827 (__vector unsigned int)__b, __cc);
9828 }
9829
9830 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)9831 vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
9832 int *__cc) {
9833 return __builtin_s390_vfenezfs((__vector unsigned int)__a,
9834 (__vector unsigned int)__b, __cc);
9835 }
9836
9837 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)9838 vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9839 int *__cc) {
9840 return __builtin_s390_vfenezfs(__a, __b, __cc);
9841 }
9842
9843 /*-- vec_cmprg --------------------------------------------------------------*/
9844
9845 static inline __ATTRS_o_ai __vector __bool char
vec_cmprg(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9846 vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
9847 __vector unsigned char __c) {
9848 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
9849 }
9850
9851 static inline __ATTRS_o_ai __vector __bool short
vec_cmprg(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)9852 vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
9853 __vector unsigned short __c) {
9854 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
9855 }
9856
9857 static inline __ATTRS_o_ai __vector __bool int
vec_cmprg(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)9858 vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
9859 __vector unsigned int __c) {
9860 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
9861 }
9862
9863 /*-- vec_cmprg_cc -----------------------------------------------------------*/
9864
9865 static inline __ATTRS_o_ai __vector __bool char
vec_cmprg_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)9866 vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
9867 __vector unsigned char __c, int *__cc) {
9868 return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
9869 }
9870
9871 static inline __ATTRS_o_ai __vector __bool short
vec_cmprg_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)9872 vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
9873 __vector unsigned short __c, int *__cc) {
9874 return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
9875 }
9876
9877 static inline __ATTRS_o_ai __vector __bool int
vec_cmprg_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)9878 vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
9879 __vector unsigned int __c, int *__cc) {
9880 return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
9881 }
9882
9883 /*-- vec_cmprg_idx ----------------------------------------------------------*/
9884
9885 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9886 vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
9887 __vector unsigned char __c) {
9888 return __builtin_s390_vstrcb(__a, __b, __c, 0);
9889 }
9890
9891 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)9892 vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
9893 __vector unsigned short __c) {
9894 return __builtin_s390_vstrch(__a, __b, __c, 0);
9895 }
9896
9897 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)9898 vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
9899 __vector unsigned int __c) {
9900 return __builtin_s390_vstrcf(__a, __b, __c, 0);
9901 }
9902
9903 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
9904
9905 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_idx_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)9906 vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9907 __vector unsigned char __c, int *__cc) {
9908 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
9909 }
9910
9911 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_idx_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)9912 vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9913 __vector unsigned short __c, int *__cc) {
9914 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
9915 }
9916
9917 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_idx_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)9918 vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9919 __vector unsigned int __c, int *__cc) {
9920 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
9921 }
9922
9923 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
9924
9925 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_or_0_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9926 vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
9927 __vector unsigned char __c) {
9928 return __builtin_s390_vstrczb(__a, __b, __c, 0);
9929 }
9930
9931 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_or_0_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)9932 vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
9933 __vector unsigned short __c) {
9934 return __builtin_s390_vstrczh(__a, __b, __c, 0);
9935 }
9936
9937 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_or_0_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)9938 vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
9939 __vector unsigned int __c) {
9940 return __builtin_s390_vstrczf(__a, __b, __c, 0);
9941 }
9942
9943 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
9944
9945 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)9946 vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
9947 __vector unsigned char __c, int *__cc) {
9948 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
9949 }
9950
9951 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)9952 vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
9953 __vector unsigned short __c, int *__cc) {
9954 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
9955 }
9956
9957 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)9958 vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
9959 __vector unsigned int __c, int *__cc) {
9960 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
9961 }
9962
9963 /*-- vec_cmpnrg -------------------------------------------------------------*/
9964
9965 static inline __ATTRS_o_ai __vector __bool char
vec_cmpnrg(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9966 vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
9967 __vector unsigned char __c) {
9968 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
9969 }
9970
9971 static inline __ATTRS_o_ai __vector __bool short
vec_cmpnrg(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)9972 vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
9973 __vector unsigned short __c) {
9974 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
9975 }
9976
9977 static inline __ATTRS_o_ai __vector __bool int
vec_cmpnrg(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)9978 vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
9979 __vector unsigned int __c) {
9980 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
9981 }
9982
9983 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
9984
9985 static inline __ATTRS_o_ai __vector __bool char
vec_cmpnrg_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)9986 vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
9987 __vector unsigned char __c, int *__cc) {
9988 return (__vector __bool char)
9989 __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
9990 }
9991
9992 static inline __ATTRS_o_ai __vector __bool short
vec_cmpnrg_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)9993 vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
9994 __vector unsigned short __c, int *__cc) {
9995 return (__vector __bool short)
9996 __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
9997 }
9998
9999 static inline __ATTRS_o_ai __vector __bool int
vec_cmpnrg_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)10000 vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
10001 __vector unsigned int __c, int *__cc) {
10002 return (__vector __bool int)
10003 __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
10004 }
10005
10006 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
10007
10008 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10009 vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
10010 __vector unsigned char __c) {
10011 return __builtin_s390_vstrcb(__a, __b, __c, 8);
10012 }
10013
10014 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)10015 vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
10016 __vector unsigned short __c) {
10017 return __builtin_s390_vstrch(__a, __b, __c, 8);
10018 }
10019
10020 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)10021 vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
10022 __vector unsigned int __c) {
10023 return __builtin_s390_vstrcf(__a, __b, __c, 8);
10024 }
10025
10026 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
10027
10028 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_idx_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)10029 vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
10030 __vector unsigned char __c, int *__cc) {
10031 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
10032 }
10033
10034 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_idx_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)10035 vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
10036 __vector unsigned short __c, int *__cc) {
10037 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
10038 }
10039
10040 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_idx_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)10041 vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
10042 __vector unsigned int __c, int *__cc) {
10043 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
10044 }
10045
10046 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
10047
10048 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_or_0_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10049 vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
10050 __vector unsigned char __c) {
10051 return __builtin_s390_vstrczb(__a, __b, __c, 8);
10052 }
10053
10054 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_or_0_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)10055 vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
10056 __vector unsigned short __c) {
10057 return __builtin_s390_vstrczh(__a, __b, __c, 8);
10058 }
10059
10060 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_or_0_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)10061 vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
10062 __vector unsigned int __c) {
10063 return __builtin_s390_vstrczf(__a, __b, __c, 8);
10064 }
10065
10066 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
10067
10068 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)10069 vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
10070 __vector unsigned char __b,
10071 __vector unsigned char __c, int *__cc) {
10072 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
10073 }
10074
10075 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c,int * __cc)10076 vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
10077 __vector unsigned short __b,
10078 __vector unsigned short __c, int *__cc) {
10079 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
10080 }
10081
10082 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c,int * __cc)10083 vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
10084 __vector unsigned int __b,
10085 __vector unsigned int __c, int *__cc) {
10086 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
10087 }
10088
10089 /*-- vec_find_any_eq --------------------------------------------------------*/
10090
10091 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector signed char __a,__vector signed char __b)10092 vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
10093 return (__vector __bool char)
10094 __builtin_s390_vfaeb((__vector unsigned char)__a,
10095 (__vector unsigned char)__b, 4);
10096 }
10097
10098 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector __bool char __a,__vector __bool char __b)10099 vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
10100 return (__vector __bool char)
10101 __builtin_s390_vfaeb((__vector unsigned char)__a,
10102 (__vector unsigned char)__b, 4);
10103 }
10104
10105 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector unsigned char __a,__vector unsigned char __b)10106 vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
10107 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
10108 }
10109
10110 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector signed short __a,__vector signed short __b)10111 vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
10112 return (__vector __bool short)
10113 __builtin_s390_vfaeh((__vector unsigned short)__a,
10114 (__vector unsigned short)__b, 4);
10115 }
10116
10117 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector __bool short __a,__vector __bool short __b)10118 vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
10119 return (__vector __bool short)
10120 __builtin_s390_vfaeh((__vector unsigned short)__a,
10121 (__vector unsigned short)__b, 4);
10122 }
10123
10124 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector unsigned short __a,__vector unsigned short __b)10125 vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
10126 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
10127 }
10128
10129 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector signed int __a,__vector signed int __b)10130 vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
10131 return (__vector __bool int)
10132 __builtin_s390_vfaef((__vector unsigned int)__a,
10133 (__vector unsigned int)__b, 4);
10134 }
10135
10136 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector __bool int __a,__vector __bool int __b)10137 vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
10138 return (__vector __bool int)
10139 __builtin_s390_vfaef((__vector unsigned int)__a,
10140 (__vector unsigned int)__b, 4);
10141 }
10142
10143 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector unsigned int __a,__vector unsigned int __b)10144 vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
10145 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
10146 }
10147
10148 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
10149
10150 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector signed char __a,__vector signed char __b,int * __cc)10151 vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
10152 int *__cc) {
10153 return (__vector __bool char)
10154 __builtin_s390_vfaebs((__vector unsigned char)__a,
10155 (__vector unsigned char)__b, 4, __cc);
10156 }
10157
10158 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10159 vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
10160 int *__cc) {
10161 return (__vector __bool char)
10162 __builtin_s390_vfaebs((__vector unsigned char)__a,
10163 (__vector unsigned char)__b, 4, __cc);
10164 }
10165
10166 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10167 vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
10168 int *__cc) {
10169 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
10170 }
10171
10172 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector signed short __a,__vector signed short __b,int * __cc)10173 vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
10174 int *__cc) {
10175 return (__vector __bool short)
10176 __builtin_s390_vfaehs((__vector unsigned short)__a,
10177 (__vector unsigned short)__b, 4, __cc);
10178 }
10179
10180 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10181 vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
10182 int *__cc) {
10183 return (__vector __bool short)
10184 __builtin_s390_vfaehs((__vector unsigned short)__a,
10185 (__vector unsigned short)__b, 4, __cc);
10186 }
10187
10188 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10189 vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
10190 int *__cc) {
10191 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
10192 }
10193
10194 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector signed int __a,__vector signed int __b,int * __cc)10195 vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
10196 int *__cc) {
10197 return (__vector __bool int)
10198 __builtin_s390_vfaefs((__vector unsigned int)__a,
10199 (__vector unsigned int)__b, 4, __cc);
10200 }
10201
10202 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10203 vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
10204 int *__cc) {
10205 return (__vector __bool int)
10206 __builtin_s390_vfaefs((__vector unsigned int)__a,
10207 (__vector unsigned int)__b, 4, __cc);
10208 }
10209
10210 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10211 vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
10212 int *__cc) {
10213 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
10214 }
10215
10216 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
10217
10218 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx(__vector signed char __a,__vector signed char __b)10219 vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
10220 return (__vector signed char)
10221 __builtin_s390_vfaeb((__vector unsigned char)__a,
10222 (__vector unsigned char)__b, 0);
10223 }
10224
10225 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector __bool char __a,__vector __bool char __b)10226 vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
10227 return __builtin_s390_vfaeb((__vector unsigned char)__a,
10228 (__vector unsigned char)__b, 0);
10229 }
10230
10231 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector unsigned char __a,__vector unsigned char __b)10232 vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
10233 return __builtin_s390_vfaeb(__a, __b, 0);
10234 }
10235
10236 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx(__vector signed short __a,__vector signed short __b)10237 vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
10238 return (__vector signed short)
10239 __builtin_s390_vfaeh((__vector unsigned short)__a,
10240 (__vector unsigned short)__b, 0);
10241 }
10242
10243 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector __bool short __a,__vector __bool short __b)10244 vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
10245 return __builtin_s390_vfaeh((__vector unsigned short)__a,
10246 (__vector unsigned short)__b, 0);
10247 }
10248
10249 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector unsigned short __a,__vector unsigned short __b)10250 vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
10251 return __builtin_s390_vfaeh(__a, __b, 0);
10252 }
10253
10254 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx(__vector signed int __a,__vector signed int __b)10255 vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
10256 return (__vector signed int)
10257 __builtin_s390_vfaef((__vector unsigned int)__a,
10258 (__vector unsigned int)__b, 0);
10259 }
10260
10261 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector __bool int __a,__vector __bool int __b)10262 vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
10263 return __builtin_s390_vfaef((__vector unsigned int)__a,
10264 (__vector unsigned int)__b, 0);
10265 }
10266
10267 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector unsigned int __a,__vector unsigned int __b)10268 vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
10269 return __builtin_s390_vfaef(__a, __b, 0);
10270 }
10271
10272 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
10273
10274 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)10275 vec_find_any_eq_idx_cc(__vector signed char __a,
10276 __vector signed char __b, int *__cc) {
10277 return (__vector signed char)
10278 __builtin_s390_vfaebs((__vector unsigned char)__a,
10279 (__vector unsigned char)__b, 0, __cc);
10280 }
10281
10282 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10283 vec_find_any_eq_idx_cc(__vector __bool char __a,
10284 __vector __bool char __b, int *__cc) {
10285 return __builtin_s390_vfaebs((__vector unsigned char)__a,
10286 (__vector unsigned char)__b, 0, __cc);
10287 }
10288
10289 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10290 vec_find_any_eq_idx_cc(__vector unsigned char __a,
10291 __vector unsigned char __b, int *__cc) {
10292 return __builtin_s390_vfaebs(__a, __b, 0, __cc);
10293 }
10294
10295 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)10296 vec_find_any_eq_idx_cc(__vector signed short __a,
10297 __vector signed short __b, int *__cc) {
10298 return (__vector signed short)
10299 __builtin_s390_vfaehs((__vector unsigned short)__a,
10300 (__vector unsigned short)__b, 0, __cc);
10301 }
10302
10303 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10304 vec_find_any_eq_idx_cc(__vector __bool short __a,
10305 __vector __bool short __b, int *__cc) {
10306 return __builtin_s390_vfaehs((__vector unsigned short)__a,
10307 (__vector unsigned short)__b, 0, __cc);
10308 }
10309
10310 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10311 vec_find_any_eq_idx_cc(__vector unsigned short __a,
10312 __vector unsigned short __b, int *__cc) {
10313 return __builtin_s390_vfaehs(__a, __b, 0, __cc);
10314 }
10315
10316 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)10317 vec_find_any_eq_idx_cc(__vector signed int __a,
10318 __vector signed int __b, int *__cc) {
10319 return (__vector signed int)
10320 __builtin_s390_vfaefs((__vector unsigned int)__a,
10321 (__vector unsigned int)__b, 0, __cc);
10322 }
10323
10324 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10325 vec_find_any_eq_idx_cc(__vector __bool int __a,
10326 __vector __bool int __b, int *__cc) {
10327 return __builtin_s390_vfaefs((__vector unsigned int)__a,
10328 (__vector unsigned int)__b, 0, __cc);
10329 }
10330
10331 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10332 vec_find_any_eq_idx_cc(__vector unsigned int __a,
10333 __vector unsigned int __b, int *__cc) {
10334 return __builtin_s390_vfaefs(__a, __b, 0, __cc);
10335 }
10336
10337 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
10338
10339 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_or_0_idx(__vector signed char __a,__vector signed char __b)10340 vec_find_any_eq_or_0_idx(__vector signed char __a,
10341 __vector signed char __b) {
10342 return (__vector signed char)
10343 __builtin_s390_vfaezb((__vector unsigned char)__a,
10344 (__vector unsigned char)__b, 0);
10345 }
10346
10347 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector __bool char __a,__vector __bool char __b)10348 vec_find_any_eq_or_0_idx(__vector __bool char __a,
10349 __vector __bool char __b) {
10350 return __builtin_s390_vfaezb((__vector unsigned char)__a,
10351 (__vector unsigned char)__b, 0);
10352 }
10353
10354 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)10355 vec_find_any_eq_or_0_idx(__vector unsigned char __a,
10356 __vector unsigned char __b) {
10357 return __builtin_s390_vfaezb(__a, __b, 0);
10358 }
10359
10360 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_or_0_idx(__vector signed short __a,__vector signed short __b)10361 vec_find_any_eq_or_0_idx(__vector signed short __a,
10362 __vector signed short __b) {
10363 return (__vector signed short)
10364 __builtin_s390_vfaezh((__vector unsigned short)__a,
10365 (__vector unsigned short)__b, 0);
10366 }
10367
10368 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector __bool short __a,__vector __bool short __b)10369 vec_find_any_eq_or_0_idx(__vector __bool short __a,
10370 __vector __bool short __b) {
10371 return __builtin_s390_vfaezh((__vector unsigned short)__a,
10372 (__vector unsigned short)__b, 0);
10373 }
10374
10375 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)10376 vec_find_any_eq_or_0_idx(__vector unsigned short __a,
10377 __vector unsigned short __b) {
10378 return __builtin_s390_vfaezh(__a, __b, 0);
10379 }
10380
10381 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_or_0_idx(__vector signed int __a,__vector signed int __b)10382 vec_find_any_eq_or_0_idx(__vector signed int __a,
10383 __vector signed int __b) {
10384 return (__vector signed int)
10385 __builtin_s390_vfaezf((__vector unsigned int)__a,
10386 (__vector unsigned int)__b, 0);
10387 }
10388
10389 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector __bool int __a,__vector __bool int __b)10390 vec_find_any_eq_or_0_idx(__vector __bool int __a,
10391 __vector __bool int __b) {
10392 return __builtin_s390_vfaezf((__vector unsigned int)__a,
10393 (__vector unsigned int)__b, 0);
10394 }
10395
10396 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)10397 vec_find_any_eq_or_0_idx(__vector unsigned int __a,
10398 __vector unsigned int __b) {
10399 return __builtin_s390_vfaezf(__a, __b, 0);
10400 }
10401
10402 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
10403
10404 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)10405 vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
10406 __vector signed char __b, int *__cc) {
10407 return (__vector signed char)
10408 __builtin_s390_vfaezbs((__vector unsigned char)__a,
10409 (__vector unsigned char)__b, 0, __cc);
10410 }
10411
10412 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10413 vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
10414 __vector __bool char __b, int *__cc) {
10415 return __builtin_s390_vfaezbs((__vector unsigned char)__a,
10416 (__vector unsigned char)__b, 0, __cc);
10417 }
10418
10419 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10420 vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
10421 __vector unsigned char __b, int *__cc) {
10422 return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
10423 }
10424
10425 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)10426 vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
10427 __vector signed short __b, int *__cc) {
10428 return (__vector signed short)
10429 __builtin_s390_vfaezhs((__vector unsigned short)__a,
10430 (__vector unsigned short)__b, 0, __cc);
10431 }
10432
10433 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10434 vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
10435 __vector __bool short __b, int *__cc) {
10436 return __builtin_s390_vfaezhs((__vector unsigned short)__a,
10437 (__vector unsigned short)__b, 0, __cc);
10438 }
10439
10440 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10441 vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
10442 __vector unsigned short __b, int *__cc) {
10443 return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
10444 }
10445
10446 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)10447 vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
10448 __vector signed int __b, int *__cc) {
10449 return (__vector signed int)
10450 __builtin_s390_vfaezfs((__vector unsigned int)__a,
10451 (__vector unsigned int)__b, 0, __cc);
10452 }
10453
10454 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10455 vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
10456 __vector __bool int __b, int *__cc) {
10457 return __builtin_s390_vfaezfs((__vector unsigned int)__a,
10458 (__vector unsigned int)__b, 0, __cc);
10459 }
10460
10461 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10462 vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
10463 __vector unsigned int __b, int *__cc) {
10464 return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
10465 }
10466
10467 /*-- vec_find_any_ne --------------------------------------------------------*/
10468
10469 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector signed char __a,__vector signed char __b)10470 vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
10471 return (__vector __bool char)
10472 __builtin_s390_vfaeb((__vector unsigned char)__a,
10473 (__vector unsigned char)__b, 12);
10474 }
10475
10476 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector __bool char __a,__vector __bool char __b)10477 vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
10478 return (__vector __bool char)
10479 __builtin_s390_vfaeb((__vector unsigned char)__a,
10480 (__vector unsigned char)__b, 12);
10481 }
10482
10483 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector unsigned char __a,__vector unsigned char __b)10484 vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
10485 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
10486 }
10487
10488 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector signed short __a,__vector signed short __b)10489 vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
10490 return (__vector __bool short)
10491 __builtin_s390_vfaeh((__vector unsigned short)__a,
10492 (__vector unsigned short)__b, 12);
10493 }
10494
10495 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector __bool short __a,__vector __bool short __b)10496 vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
10497 return (__vector __bool short)
10498 __builtin_s390_vfaeh((__vector unsigned short)__a,
10499 (__vector unsigned short)__b, 12);
10500 }
10501
10502 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector unsigned short __a,__vector unsigned short __b)10503 vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
10504 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
10505 }
10506
10507 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector signed int __a,__vector signed int __b)10508 vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
10509 return (__vector __bool int)
10510 __builtin_s390_vfaef((__vector unsigned int)__a,
10511 (__vector unsigned int)__b, 12);
10512 }
10513
10514 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector __bool int __a,__vector __bool int __b)10515 vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
10516 return (__vector __bool int)
10517 __builtin_s390_vfaef((__vector unsigned int)__a,
10518 (__vector unsigned int)__b, 12);
10519 }
10520
10521 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector unsigned int __a,__vector unsigned int __b)10522 vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
10523 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
10524 }
10525
10526 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
10527
10528 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector signed char __a,__vector signed char __b,int * __cc)10529 vec_find_any_ne_cc(__vector signed char __a,
10530 __vector signed char __b, int *__cc) {
10531 return (__vector __bool char)
10532 __builtin_s390_vfaebs((__vector unsigned char)__a,
10533 (__vector unsigned char)__b, 12, __cc);
10534 }
10535
10536 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10537 vec_find_any_ne_cc(__vector __bool char __a,
10538 __vector __bool char __b, int *__cc) {
10539 return (__vector __bool char)
10540 __builtin_s390_vfaebs((__vector unsigned char)__a,
10541 (__vector unsigned char)__b, 12, __cc);
10542 }
10543
10544 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10545 vec_find_any_ne_cc(__vector unsigned char __a,
10546 __vector unsigned char __b, int *__cc) {
10547 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
10548 }
10549
10550 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector signed short __a,__vector signed short __b,int * __cc)10551 vec_find_any_ne_cc(__vector signed short __a,
10552 __vector signed short __b, int *__cc) {
10553 return (__vector __bool short)
10554 __builtin_s390_vfaehs((__vector unsigned short)__a,
10555 (__vector unsigned short)__b, 12, __cc);
10556 }
10557
10558 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10559 vec_find_any_ne_cc(__vector __bool short __a,
10560 __vector __bool short __b, int *__cc) {
10561 return (__vector __bool short)
10562 __builtin_s390_vfaehs((__vector unsigned short)__a,
10563 (__vector unsigned short)__b, 12, __cc);
10564 }
10565
10566 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10567 vec_find_any_ne_cc(__vector unsigned short __a,
10568 __vector unsigned short __b, int *__cc) {
10569 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
10570 }
10571
10572 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector signed int __a,__vector signed int __b,int * __cc)10573 vec_find_any_ne_cc(__vector signed int __a,
10574 __vector signed int __b, int *__cc) {
10575 return (__vector __bool int)
10576 __builtin_s390_vfaefs((__vector unsigned int)__a,
10577 (__vector unsigned int)__b, 12, __cc);
10578 }
10579
10580 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10581 vec_find_any_ne_cc(__vector __bool int __a,
10582 __vector __bool int __b, int *__cc) {
10583 return (__vector __bool int)
10584 __builtin_s390_vfaefs((__vector unsigned int)__a,
10585 (__vector unsigned int)__b, 12, __cc);
10586 }
10587
10588 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10589 vec_find_any_ne_cc(__vector unsigned int __a,
10590 __vector unsigned int __b, int *__cc) {
10591 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
10592 }
10593
10594 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
10595
10596 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx(__vector signed char __a,__vector signed char __b)10597 vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
10598 return (__vector signed char)
10599 __builtin_s390_vfaeb((__vector unsigned char)__a,
10600 (__vector unsigned char)__b, 8);
10601 }
10602
10603 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector __bool char __a,__vector __bool char __b)10604 vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
10605 return __builtin_s390_vfaeb((__vector unsigned char)__a,
10606 (__vector unsigned char)__b, 8);
10607 }
10608
10609 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector unsigned char __a,__vector unsigned char __b)10610 vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
10611 return __builtin_s390_vfaeb(__a, __b, 8);
10612 }
10613
10614 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx(__vector signed short __a,__vector signed short __b)10615 vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
10616 return (__vector signed short)
10617 __builtin_s390_vfaeh((__vector unsigned short)__a,
10618 (__vector unsigned short)__b, 8);
10619 }
10620
10621 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector __bool short __a,__vector __bool short __b)10622 vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
10623 return __builtin_s390_vfaeh((__vector unsigned short)__a,
10624 (__vector unsigned short)__b, 8);
10625 }
10626
10627 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector unsigned short __a,__vector unsigned short __b)10628 vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
10629 return __builtin_s390_vfaeh(__a, __b, 8);
10630 }
10631
10632 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx(__vector signed int __a,__vector signed int __b)10633 vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
10634 return (__vector signed int)
10635 __builtin_s390_vfaef((__vector unsigned int)__a,
10636 (__vector unsigned int)__b, 8);
10637 }
10638
10639 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector __bool int __a,__vector __bool int __b)10640 vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
10641 return __builtin_s390_vfaef((__vector unsigned int)__a,
10642 (__vector unsigned int)__b, 8);
10643 }
10644
10645 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector unsigned int __a,__vector unsigned int __b)10646 vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
10647 return __builtin_s390_vfaef(__a, __b, 8);
10648 }
10649
10650 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
10651
10652 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)10653 vec_find_any_ne_idx_cc(__vector signed char __a,
10654 __vector signed char __b, int *__cc) {
10655 return (__vector signed char)
10656 __builtin_s390_vfaebs((__vector unsigned char)__a,
10657 (__vector unsigned char)__b, 8, __cc);
10658 }
10659
10660 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10661 vec_find_any_ne_idx_cc(__vector __bool char __a,
10662 __vector __bool char __b, int *__cc) {
10663 return __builtin_s390_vfaebs((__vector unsigned char)__a,
10664 (__vector unsigned char)__b, 8, __cc);
10665 }
10666
10667 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10668 vec_find_any_ne_idx_cc(__vector unsigned char __a,
10669 __vector unsigned char __b,
10670 int *__cc) {
10671 return __builtin_s390_vfaebs(__a, __b, 8, __cc);
10672 }
10673
10674 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)10675 vec_find_any_ne_idx_cc(__vector signed short __a,
10676 __vector signed short __b, int *__cc) {
10677 return (__vector signed short)
10678 __builtin_s390_vfaehs((__vector unsigned short)__a,
10679 (__vector unsigned short)__b, 8, __cc);
10680 }
10681
10682 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10683 vec_find_any_ne_idx_cc(__vector __bool short __a,
10684 __vector __bool short __b, int *__cc) {
10685 return __builtin_s390_vfaehs((__vector unsigned short)__a,
10686 (__vector unsigned short)__b, 8, __cc);
10687 }
10688
10689 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10690 vec_find_any_ne_idx_cc(__vector unsigned short __a,
10691 __vector unsigned short __b, int *__cc) {
10692 return __builtin_s390_vfaehs(__a, __b, 8, __cc);
10693 }
10694
10695 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)10696 vec_find_any_ne_idx_cc(__vector signed int __a,
10697 __vector signed int __b, int *__cc) {
10698 return (__vector signed int)
10699 __builtin_s390_vfaefs((__vector unsigned int)__a,
10700 (__vector unsigned int)__b, 8, __cc);
10701 }
10702
10703 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10704 vec_find_any_ne_idx_cc(__vector __bool int __a,
10705 __vector __bool int __b, int *__cc) {
10706 return __builtin_s390_vfaefs((__vector unsigned int)__a,
10707 (__vector unsigned int)__b, 8, __cc);
10708 }
10709
10710 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10711 vec_find_any_ne_idx_cc(__vector unsigned int __a,
10712 __vector unsigned int __b, int *__cc) {
10713 return __builtin_s390_vfaefs(__a, __b, 8, __cc);
10714 }
10715
10716 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
10717
10718 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_or_0_idx(__vector signed char __a,__vector signed char __b)10719 vec_find_any_ne_or_0_idx(__vector signed char __a,
10720 __vector signed char __b) {
10721 return (__vector signed char)
10722 __builtin_s390_vfaezb((__vector unsigned char)__a,
10723 (__vector unsigned char)__b, 8);
10724 }
10725
10726 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector __bool char __a,__vector __bool char __b)10727 vec_find_any_ne_or_0_idx(__vector __bool char __a,
10728 __vector __bool char __b) {
10729 return __builtin_s390_vfaezb((__vector unsigned char)__a,
10730 (__vector unsigned char)__b, 8);
10731 }
10732
10733 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)10734 vec_find_any_ne_or_0_idx(__vector unsigned char __a,
10735 __vector unsigned char __b) {
10736 return __builtin_s390_vfaezb(__a, __b, 8);
10737 }
10738
10739 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_or_0_idx(__vector signed short __a,__vector signed short __b)10740 vec_find_any_ne_or_0_idx(__vector signed short __a,
10741 __vector signed short __b) {
10742 return (__vector signed short)
10743 __builtin_s390_vfaezh((__vector unsigned short)__a,
10744 (__vector unsigned short)__b, 8);
10745 }
10746
10747 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector __bool short __a,__vector __bool short __b)10748 vec_find_any_ne_or_0_idx(__vector __bool short __a,
10749 __vector __bool short __b) {
10750 return __builtin_s390_vfaezh((__vector unsigned short)__a,
10751 (__vector unsigned short)__b, 8);
10752 }
10753
10754 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)10755 vec_find_any_ne_or_0_idx(__vector unsigned short __a,
10756 __vector unsigned short __b) {
10757 return __builtin_s390_vfaezh(__a, __b, 8);
10758 }
10759
10760 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_or_0_idx(__vector signed int __a,__vector signed int __b)10761 vec_find_any_ne_or_0_idx(__vector signed int __a,
10762 __vector signed int __b) {
10763 return (__vector signed int)
10764 __builtin_s390_vfaezf((__vector unsigned int)__a,
10765 (__vector unsigned int)__b, 8);
10766 }
10767
10768 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector __bool int __a,__vector __bool int __b)10769 vec_find_any_ne_or_0_idx(__vector __bool int __a,
10770 __vector __bool int __b) {
10771 return __builtin_s390_vfaezf((__vector unsigned int)__a,
10772 (__vector unsigned int)__b, 8);
10773 }
10774
10775 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)10776 vec_find_any_ne_or_0_idx(__vector unsigned int __a,
10777 __vector unsigned int __b) {
10778 return __builtin_s390_vfaezf(__a, __b, 8);
10779 }
10780
10781 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
10782
10783 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)10784 vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
10785 __vector signed char __b, int *__cc) {
10786 return (__vector signed char)
10787 __builtin_s390_vfaezbs((__vector unsigned char)__a,
10788 (__vector unsigned char)__b, 8, __cc);
10789 }
10790
10791 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)10792 vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
10793 __vector __bool char __b, int *__cc) {
10794 return __builtin_s390_vfaezbs((__vector unsigned char)__a,
10795 (__vector unsigned char)__b, 8, __cc);
10796 }
10797
10798 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)10799 vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
10800 __vector unsigned char __b, int *__cc) {
10801 return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
10802 }
10803
10804 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)10805 vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
10806 __vector signed short __b, int *__cc) {
10807 return (__vector signed short)
10808 __builtin_s390_vfaezhs((__vector unsigned short)__a,
10809 (__vector unsigned short)__b, 8, __cc);
10810 }
10811
10812 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)10813 vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
10814 __vector __bool short __b, int *__cc) {
10815 return __builtin_s390_vfaezhs((__vector unsigned short)__a,
10816 (__vector unsigned short)__b, 8, __cc);
10817 }
10818
10819 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)10820 vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
10821 __vector unsigned short __b, int *__cc) {
10822 return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
10823 }
10824
10825 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)10826 vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
10827 __vector signed int __b, int *__cc) {
10828 return (__vector signed int)
10829 __builtin_s390_vfaezfs((__vector unsigned int)__a,
10830 (__vector unsigned int)__b, 8, __cc);
10831 }
10832
10833 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)10834 vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
10835 __vector __bool int __b, int *__cc) {
10836 return __builtin_s390_vfaezfs((__vector unsigned int)__a,
10837 (__vector unsigned int)__b, 8, __cc);
10838 }
10839
10840 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)10841 vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
10842 __vector unsigned int __b, int *__cc) {
10843 return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
10844 }
10845
10846 /*-- vec_search_string_cc ---------------------------------------------------*/
10847
10848 #if __ARCH__ >= 13
10849
10850 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed char __a,__vector signed char __b,__vector unsigned char __c,int * __cc)10851 vec_search_string_cc(__vector signed char __a, __vector signed char __b,
10852 __vector unsigned char __c, int *__cc) {
10853 return __builtin_s390_vstrsb((__vector unsigned char)__a,
10854 (__vector unsigned char)__b, __c, __cc);
10855 }
10856
10857 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c,int * __cc)10858 vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
10859 __vector unsigned char __c, int *__cc) {
10860 return __builtin_s390_vstrsb((__vector unsigned char)__a,
10861 (__vector unsigned char)__b, __c, __cc);
10862 }
10863
10864 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)10865 vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
10866 __vector unsigned char __c, int *__cc) {
10867 return __builtin_s390_vstrsb(__a, __b, __c, __cc);
10868 }
10869
10870 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed short __a,__vector signed short __b,__vector unsigned char __c,int * __cc)10871 vec_search_string_cc(__vector signed short __a, __vector signed short __b,
10872 __vector unsigned char __c, int *__cc) {
10873 return __builtin_s390_vstrsh((__vector unsigned short)__a,
10874 (__vector unsigned short)__b, __c, __cc);
10875 }
10876
10877 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c,int * __cc)10878 vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
10879 __vector unsigned char __c, int *__cc) {
10880 return __builtin_s390_vstrsh((__vector unsigned short)__a,
10881 (__vector unsigned short)__b, __c, __cc);
10882 }
10883
10884 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c,int * __cc)10885 vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
10886 __vector unsigned char __c, int *__cc) {
10887 return __builtin_s390_vstrsh(__a, __b, __c, __cc);
10888 }
10889
10890 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector signed int __a,__vector signed int __b,__vector unsigned char __c,int * __cc)10891 vec_search_string_cc(__vector signed int __a, __vector signed int __b,
10892 __vector unsigned char __c, int *__cc) {
10893 return __builtin_s390_vstrsf((__vector unsigned int)__a,
10894 (__vector unsigned int)__b, __c, __cc);
10895 }
10896
10897 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c,int * __cc)10898 vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
10899 __vector unsigned char __c, int *__cc) {
10900 return __builtin_s390_vstrsf((__vector unsigned int)__a,
10901 (__vector unsigned int)__b, __c, __cc);
10902 }
10903
10904 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c,int * __cc)10905 vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
10906 __vector unsigned char __c, int *__cc) {
10907 return __builtin_s390_vstrsf(__a, __b, __c, __cc);
10908 }
10909
10910 #endif
10911
10912 /*-- vec_search_string_until_zero_cc ----------------------------------------*/
10913
10914 #if __ARCH__ >= 13
10915
10916 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed char __a,__vector signed char __b,__vector unsigned char __c,int * __cc)10917 vec_search_string_until_zero_cc(__vector signed char __a,
10918 __vector signed char __b,
10919 __vector unsigned char __c, int *__cc) {
10920 return __builtin_s390_vstrszb((__vector unsigned char)__a,
10921 (__vector unsigned char)__b, __c, __cc);
10922 }
10923
10924 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c,int * __cc)10925 vec_search_string_until_zero_cc(__vector __bool char __a,
10926 __vector __bool char __b,
10927 __vector unsigned char __c, int *__cc) {
10928 return __builtin_s390_vstrszb((__vector unsigned char)__a,
10929 (__vector unsigned char)__b, __c, __cc);
10930 }
10931
10932 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c,int * __cc)10933 vec_search_string_until_zero_cc(__vector unsigned char __a,
10934 __vector unsigned char __b,
10935 __vector unsigned char __c, int *__cc) {
10936 return __builtin_s390_vstrszb(__a, __b, __c, __cc);
10937 }
10938
10939 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed short __a,__vector signed short __b,__vector unsigned char __c,int * __cc)10940 vec_search_string_until_zero_cc(__vector signed short __a,
10941 __vector signed short __b,
10942 __vector unsigned char __c, int *__cc) {
10943 return __builtin_s390_vstrszh((__vector unsigned short)__a,
10944 (__vector unsigned short)__b, __c, __cc);
10945 }
10946
10947 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c,int * __cc)10948 vec_search_string_until_zero_cc(__vector __bool short __a,
10949 __vector __bool short __b,
10950 __vector unsigned char __c, int *__cc) {
10951 return __builtin_s390_vstrszh((__vector unsigned short)__a,
10952 (__vector unsigned short)__b, __c, __cc);
10953 }
10954
10955 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c,int * __cc)10956 vec_search_string_until_zero_cc(__vector unsigned short __a,
10957 __vector unsigned short __b,
10958 __vector unsigned char __c, int *__cc) {
10959 return __builtin_s390_vstrszh(__a, __b, __c, __cc);
10960 }
10961
10962 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector signed int __a,__vector signed int __b,__vector unsigned char __c,int * __cc)10963 vec_search_string_until_zero_cc(__vector signed int __a,
10964 __vector signed int __b,
10965 __vector unsigned char __c, int *__cc) {
10966 return __builtin_s390_vstrszf((__vector unsigned int)__a,
10967 (__vector unsigned int)__b, __c, __cc);
10968 }
10969
10970 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c,int * __cc)10971 vec_search_string_until_zero_cc(__vector __bool int __a,
10972 __vector __bool int __b,
10973 __vector unsigned char __c, int *__cc) {
10974 return __builtin_s390_vstrszf((__vector unsigned int)__a,
10975 (__vector unsigned int)__b, __c, __cc);
10976 }
10977
10978 static inline __ATTRS_o_ai __vector unsigned char
vec_search_string_until_zero_cc(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c,int * __cc)10979 vec_search_string_until_zero_cc(__vector unsigned int __a,
10980 __vector unsigned int __b,
10981 __vector unsigned char __c, int *__cc) {
10982 return __builtin_s390_vstrszf(__a, __b, __c, __cc);
10983 }
10984
10985 #endif
10986
10987 #undef __constant_pow2_range
10988 #undef __constant_range
10989 #undef __constant
10990 #undef __ATTRS_o
10991 #undef __ATTRS_o_ai
10992 #undef __ATTRS_ai
10993
10994 #else
10995
10996 #error "Use -fzvector to enable vector extensions"
10997
10998 #endif
10999