1 /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2 *
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 *
7 *===-----------------------------------------------------------------------===
8 */
9
10 #ifndef _VECINTRIN_H
11 #define _VECINTRIN_H
12
13 #if defined(__s390x__) && defined(__VEC__)
14
15 #define __ATTRS_ai __attribute__((__always_inline__))
16 #define __ATTRS_o __attribute__((__overloadable__))
17 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
18
19 #define __constant(PARM) \
20 __attribute__((__enable_if__ ((PARM) == (PARM), \
21 "argument must be a constant integer")))
22 #define __constant_range(PARM, LOW, HIGH) \
23 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
24 "argument must be a constant integer from " #LOW " to " #HIGH)))
25 #define __constant_pow2_range(PARM, LOW, HIGH) \
26 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
27 ((PARM) & ((PARM) - 1)) == 0, \
28 "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
29
30 /*-- __lcbb -----------------------------------------------------------------*/
31
32 extern __ATTRS_o unsigned int
33 __lcbb(const void *__ptr, unsigned short __len)
34 __constant_pow2_range(__len, 64, 4096);
35
36 #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
37 __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
38 ((Y) == 64 ? 0 : \
39 (Y) == 128 ? 1 : \
40 (Y) == 256 ? 2 : \
41 (Y) == 512 ? 3 : \
42 (Y) == 1024 ? 4 : \
43 (Y) == 2048 ? 5 : \
44 (Y) == 4096 ? 6 : 0) : 0))
45
46 /*-- vec_extract ------------------------------------------------------------*/
47
48 static inline __ATTRS_o_ai signed char
vec_extract(__vector signed char __vec,int __index)49 vec_extract(__vector signed char __vec, int __index) {
50 return __vec[__index & 15];
51 }
52
53 static inline __ATTRS_o_ai unsigned char
vec_extract(__vector __bool char __vec,int __index)54 vec_extract(__vector __bool char __vec, int __index) {
55 return __vec[__index & 15];
56 }
57
58 static inline __ATTRS_o_ai unsigned char
vec_extract(__vector unsigned char __vec,int __index)59 vec_extract(__vector unsigned char __vec, int __index) {
60 return __vec[__index & 15];
61 }
62
63 static inline __ATTRS_o_ai signed short
vec_extract(__vector signed short __vec,int __index)64 vec_extract(__vector signed short __vec, int __index) {
65 return __vec[__index & 7];
66 }
67
68 static inline __ATTRS_o_ai unsigned short
vec_extract(__vector __bool short __vec,int __index)69 vec_extract(__vector __bool short __vec, int __index) {
70 return __vec[__index & 7];
71 }
72
73 static inline __ATTRS_o_ai unsigned short
vec_extract(__vector unsigned short __vec,int __index)74 vec_extract(__vector unsigned short __vec, int __index) {
75 return __vec[__index & 7];
76 }
77
78 static inline __ATTRS_o_ai signed int
vec_extract(__vector signed int __vec,int __index)79 vec_extract(__vector signed int __vec, int __index) {
80 return __vec[__index & 3];
81 }
82
83 static inline __ATTRS_o_ai unsigned int
vec_extract(__vector __bool int __vec,int __index)84 vec_extract(__vector __bool int __vec, int __index) {
85 return __vec[__index & 3];
86 }
87
88 static inline __ATTRS_o_ai unsigned int
vec_extract(__vector unsigned int __vec,int __index)89 vec_extract(__vector unsigned int __vec, int __index) {
90 return __vec[__index & 3];
91 }
92
93 static inline __ATTRS_o_ai signed long long
vec_extract(__vector signed long long __vec,int __index)94 vec_extract(__vector signed long long __vec, int __index) {
95 return __vec[__index & 1];
96 }
97
98 static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector __bool long long __vec,int __index)99 vec_extract(__vector __bool long long __vec, int __index) {
100 return __vec[__index & 1];
101 }
102
103 static inline __ATTRS_o_ai unsigned long long
vec_extract(__vector unsigned long long __vec,int __index)104 vec_extract(__vector unsigned long long __vec, int __index) {
105 return __vec[__index & 1];
106 }
107
108 #if __ARCH__ >= 12
109 static inline __ATTRS_o_ai float
vec_extract(__vector float __vec,int __index)110 vec_extract(__vector float __vec, int __index) {
111 return __vec[__index & 3];
112 }
113 #endif
114
115 static inline __ATTRS_o_ai double
vec_extract(__vector double __vec,int __index)116 vec_extract(__vector double __vec, int __index) {
117 return __vec[__index & 1];
118 }
119
120 /*-- vec_insert -------------------------------------------------------------*/
121
122 static inline __ATTRS_o_ai __vector signed char
vec_insert(signed char __scalar,__vector signed char __vec,int __index)123 vec_insert(signed char __scalar, __vector signed char __vec, int __index) {
124 __vec[__index & 15] = __scalar;
125 return __vec;
126 }
127
128 // This prototype is deprecated.
129 static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector __bool char __vec,int __index)130 vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {
131 __vector unsigned char __newvec = (__vector unsigned char)__vec;
132 __newvec[__index & 15] = (unsigned char)__scalar;
133 return __newvec;
134 }
135
136 static inline __ATTRS_o_ai __vector unsigned char
vec_insert(unsigned char __scalar,__vector unsigned char __vec,int __index)137 vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {
138 __vec[__index & 15] = __scalar;
139 return __vec;
140 }
141
142 static inline __ATTRS_o_ai __vector signed short
vec_insert(signed short __scalar,__vector signed short __vec,int __index)143 vec_insert(signed short __scalar, __vector signed short __vec, int __index) {
144 __vec[__index & 7] = __scalar;
145 return __vec;
146 }
147
148 // This prototype is deprecated.
149 static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector __bool short __vec,int __index)150 vec_insert(unsigned short __scalar, __vector __bool short __vec,
151 int __index) {
152 __vector unsigned short __newvec = (__vector unsigned short)__vec;
153 __newvec[__index & 7] = (unsigned short)__scalar;
154 return __newvec;
155 }
156
157 static inline __ATTRS_o_ai __vector unsigned short
vec_insert(unsigned short __scalar,__vector unsigned short __vec,int __index)158 vec_insert(unsigned short __scalar, __vector unsigned short __vec,
159 int __index) {
160 __vec[__index & 7] = __scalar;
161 return __vec;
162 }
163
164 static inline __ATTRS_o_ai __vector signed int
vec_insert(signed int __scalar,__vector signed int __vec,int __index)165 vec_insert(signed int __scalar, __vector signed int __vec, int __index) {
166 __vec[__index & 3] = __scalar;
167 return __vec;
168 }
169
170 // This prototype is deprecated.
171 static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector __bool int __vec,int __index)172 vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {
173 __vector unsigned int __newvec = (__vector unsigned int)__vec;
174 __newvec[__index & 3] = __scalar;
175 return __newvec;
176 }
177
178 static inline __ATTRS_o_ai __vector unsigned int
vec_insert(unsigned int __scalar,__vector unsigned int __vec,int __index)179 vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {
180 __vec[__index & 3] = __scalar;
181 return __vec;
182 }
183
184 static inline __ATTRS_o_ai __vector signed long long
vec_insert(signed long long __scalar,__vector signed long long __vec,int __index)185 vec_insert(signed long long __scalar, __vector signed long long __vec,
186 int __index) {
187 __vec[__index & 1] = __scalar;
188 return __vec;
189 }
190
191 // This prototype is deprecated.
192 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar,__vector __bool long long __vec,int __index)193 vec_insert(unsigned long long __scalar, __vector __bool long long __vec,
194 int __index) {
195 __vector unsigned long long __newvec = (__vector unsigned long long)__vec;
196 __newvec[__index & 1] = __scalar;
197 return __newvec;
198 }
199
200 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert(unsigned long long __scalar,__vector unsigned long long __vec,int __index)201 vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,
202 int __index) {
203 __vec[__index & 1] = __scalar;
204 return __vec;
205 }
206
207 #if __ARCH__ >= 12
208 static inline __ATTRS_o_ai __vector float
vec_insert(float __scalar,__vector float __vec,int __index)209 vec_insert(float __scalar, __vector float __vec, int __index) {
210 __vec[__index & 1] = __scalar;
211 return __vec;
212 }
213 #endif
214
215 static inline __ATTRS_o_ai __vector double
vec_insert(double __scalar,__vector double __vec,int __index)216 vec_insert(double __scalar, __vector double __vec, int __index) {
217 __vec[__index & 1] = __scalar;
218 return __vec;
219 }
220
221 /*-- vec_promote ------------------------------------------------------------*/
222
223 static inline __ATTRS_o_ai __vector signed char
vec_promote(signed char __scalar,int __index)224 vec_promote(signed char __scalar, int __index) {
225 const __vector signed char __zero = (__vector signed char)0;
226 __vector signed char __vec = __builtin_shufflevector(__zero, __zero,
227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
228 __vec[__index & 15] = __scalar;
229 return __vec;
230 }
231
232 static inline __ATTRS_o_ai __vector unsigned char
vec_promote(unsigned char __scalar,int __index)233 vec_promote(unsigned char __scalar, int __index) {
234 const __vector unsigned char __zero = (__vector unsigned char)0;
235 __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
237 __vec[__index & 15] = __scalar;
238 return __vec;
239 }
240
241 static inline __ATTRS_o_ai __vector signed short
vec_promote(signed short __scalar,int __index)242 vec_promote(signed short __scalar, int __index) {
243 const __vector signed short __zero = (__vector signed short)0;
244 __vector signed short __vec = __builtin_shufflevector(__zero, __zero,
245 -1, -1, -1, -1, -1, -1, -1, -1);
246 __vec[__index & 7] = __scalar;
247 return __vec;
248 }
249
250 static inline __ATTRS_o_ai __vector unsigned short
vec_promote(unsigned short __scalar,int __index)251 vec_promote(unsigned short __scalar, int __index) {
252 const __vector unsigned short __zero = (__vector unsigned short)0;
253 __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
254 -1, -1, -1, -1, -1, -1, -1, -1);
255 __vec[__index & 7] = __scalar;
256 return __vec;
257 }
258
259 static inline __ATTRS_o_ai __vector signed int
vec_promote(signed int __scalar,int __index)260 vec_promote(signed int __scalar, int __index) {
261 const __vector signed int __zero = (__vector signed int)0;
262 __vector signed int __vec = __builtin_shufflevector(__zero, __zero,
263 -1, -1, -1, -1);
264 __vec[__index & 3] = __scalar;
265 return __vec;
266 }
267
268 static inline __ATTRS_o_ai __vector unsigned int
vec_promote(unsigned int __scalar,int __index)269 vec_promote(unsigned int __scalar, int __index) {
270 const __vector unsigned int __zero = (__vector unsigned int)0;
271 __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
272 -1, -1, -1, -1);
273 __vec[__index & 3] = __scalar;
274 return __vec;
275 }
276
277 static inline __ATTRS_o_ai __vector signed long long
vec_promote(signed long long __scalar,int __index)278 vec_promote(signed long long __scalar, int __index) {
279 const __vector signed long long __zero = (__vector signed long long)0;
280 __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
281 -1, -1);
282 __vec[__index & 1] = __scalar;
283 return __vec;
284 }
285
286 static inline __ATTRS_o_ai __vector unsigned long long
vec_promote(unsigned long long __scalar,int __index)287 vec_promote(unsigned long long __scalar, int __index) {
288 const __vector unsigned long long __zero = (__vector unsigned long long)0;
289 __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
290 -1, -1);
291 __vec[__index & 1] = __scalar;
292 return __vec;
293 }
294
295 #if __ARCH__ >= 12
296 static inline __ATTRS_o_ai __vector float
vec_promote(float __scalar,int __index)297 vec_promote(float __scalar, int __index) {
298 const __vector float __zero = (__vector float)0.0f;
299 __vector float __vec = __builtin_shufflevector(__zero, __zero,
300 -1, -1, -1, -1);
301 __vec[__index & 3] = __scalar;
302 return __vec;
303 }
304 #endif
305
306 static inline __ATTRS_o_ai __vector double
vec_promote(double __scalar,int __index)307 vec_promote(double __scalar, int __index) {
308 const __vector double __zero = (__vector double)0.0;
309 __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
310 __vec[__index & 1] = __scalar;
311 return __vec;
312 }
313
314 /*-- vec_insert_and_zero ----------------------------------------------------*/
315
316 static inline __ATTRS_o_ai __vector signed char
vec_insert_and_zero(const signed char * __ptr)317 vec_insert_and_zero(const signed char *__ptr) {
318 __vector signed char __vec = (__vector signed char)0;
319 __vec[7] = *__ptr;
320 return __vec;
321 }
322
323 static inline __ATTRS_o_ai __vector unsigned char
vec_insert_and_zero(const unsigned char * __ptr)324 vec_insert_and_zero(const unsigned char *__ptr) {
325 __vector unsigned char __vec = (__vector unsigned char)0;
326 __vec[7] = *__ptr;
327 return __vec;
328 }
329
330 static inline __ATTRS_o_ai __vector signed short
vec_insert_and_zero(const signed short * __ptr)331 vec_insert_and_zero(const signed short *__ptr) {
332 __vector signed short __vec = (__vector signed short)0;
333 __vec[3] = *__ptr;
334 return __vec;
335 }
336
337 static inline __ATTRS_o_ai __vector unsigned short
vec_insert_and_zero(const unsigned short * __ptr)338 vec_insert_and_zero(const unsigned short *__ptr) {
339 __vector unsigned short __vec = (__vector unsigned short)0;
340 __vec[3] = *__ptr;
341 return __vec;
342 }
343
344 static inline __ATTRS_o_ai __vector signed int
vec_insert_and_zero(const signed int * __ptr)345 vec_insert_and_zero(const signed int *__ptr) {
346 __vector signed int __vec = (__vector signed int)0;
347 __vec[1] = *__ptr;
348 return __vec;
349 }
350
351 static inline __ATTRS_o_ai __vector unsigned int
vec_insert_and_zero(const unsigned int * __ptr)352 vec_insert_and_zero(const unsigned int *__ptr) {
353 __vector unsigned int __vec = (__vector unsigned int)0;
354 __vec[1] = *__ptr;
355 return __vec;
356 }
357
358 static inline __ATTRS_o_ai __vector signed long long
vec_insert_and_zero(const signed long long * __ptr)359 vec_insert_and_zero(const signed long long *__ptr) {
360 __vector signed long long __vec = (__vector signed long long)0;
361 __vec[0] = *__ptr;
362 return __vec;
363 }
364
365 static inline __ATTRS_o_ai __vector unsigned long long
vec_insert_and_zero(const unsigned long long * __ptr)366 vec_insert_and_zero(const unsigned long long *__ptr) {
367 __vector unsigned long long __vec = (__vector unsigned long long)0;
368 __vec[0] = *__ptr;
369 return __vec;
370 }
371
372 #if __ARCH__ >= 12
373 static inline __ATTRS_o_ai __vector float
vec_insert_and_zero(const float * __ptr)374 vec_insert_and_zero(const float *__ptr) {
375 __vector float __vec = (__vector float)0.0f;
376 __vec[1] = *__ptr;
377 return __vec;
378 }
379 #endif
380
381 static inline __ATTRS_o_ai __vector double
vec_insert_and_zero(const double * __ptr)382 vec_insert_and_zero(const double *__ptr) {
383 __vector double __vec = (__vector double)0.0;
384 __vec[0] = *__ptr;
385 return __vec;
386 }
387
388 /*-- vec_perm ---------------------------------------------------------------*/
389
390 static inline __ATTRS_o_ai __vector signed char
vec_perm(__vector signed char __a,__vector signed char __b,__vector unsigned char __c)391 vec_perm(__vector signed char __a, __vector signed char __b,
392 __vector unsigned char __c) {
393 return (__vector signed char)__builtin_s390_vperm(
394 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
395 }
396
397 static inline __ATTRS_o_ai __vector unsigned char
vec_perm(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)398 vec_perm(__vector unsigned char __a, __vector unsigned char __b,
399 __vector unsigned char __c) {
400 return (__vector unsigned char)__builtin_s390_vperm(
401 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
402 }
403
404 static inline __ATTRS_o_ai __vector __bool char
vec_perm(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c)405 vec_perm(__vector __bool char __a, __vector __bool char __b,
406 __vector unsigned char __c) {
407 return (__vector __bool char)__builtin_s390_vperm(
408 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
409 }
410
411 static inline __ATTRS_o_ai __vector signed short
vec_perm(__vector signed short __a,__vector signed short __b,__vector unsigned char __c)412 vec_perm(__vector signed short __a, __vector signed short __b,
413 __vector unsigned char __c) {
414 return (__vector signed short)__builtin_s390_vperm(
415 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
416 }
417
418 static inline __ATTRS_o_ai __vector unsigned short
vec_perm(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned char __c)419 vec_perm(__vector unsigned short __a, __vector unsigned short __b,
420 __vector unsigned char __c) {
421 return (__vector unsigned short)__builtin_s390_vperm(
422 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
423 }
424
425 static inline __ATTRS_o_ai __vector __bool short
vec_perm(__vector __bool short __a,__vector __bool short __b,__vector unsigned char __c)426 vec_perm(__vector __bool short __a, __vector __bool short __b,
427 __vector unsigned char __c) {
428 return (__vector __bool short)__builtin_s390_vperm(
429 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
430 }
431
432 static inline __ATTRS_o_ai __vector signed int
vec_perm(__vector signed int __a,__vector signed int __b,__vector unsigned char __c)433 vec_perm(__vector signed int __a, __vector signed int __b,
434 __vector unsigned char __c) {
435 return (__vector signed int)__builtin_s390_vperm(
436 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
437 }
438
439 static inline __ATTRS_o_ai __vector unsigned int
vec_perm(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned char __c)440 vec_perm(__vector unsigned int __a, __vector unsigned int __b,
441 __vector unsigned char __c) {
442 return (__vector unsigned int)__builtin_s390_vperm(
443 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
444 }
445
446 static inline __ATTRS_o_ai __vector __bool int
vec_perm(__vector __bool int __a,__vector __bool int __b,__vector unsigned char __c)447 vec_perm(__vector __bool int __a, __vector __bool int __b,
448 __vector unsigned char __c) {
449 return (__vector __bool int)__builtin_s390_vperm(
450 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
451 }
452
453 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)454 vec_perm(__vector signed long long __a, __vector signed long long __b,
455 __vector unsigned char __c) {
456 return (__vector signed long long)__builtin_s390_vperm(
457 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
458 }
459
460 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)461 vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,
462 __vector unsigned char __c) {
463 return (__vector unsigned long long)__builtin_s390_vperm(
464 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
465 }
466
467 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)468 vec_perm(__vector __bool long long __a, __vector __bool long long __b,
469 __vector unsigned char __c) {
470 return (__vector __bool long long)__builtin_s390_vperm(
471 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
472 }
473
474 static inline __ATTRS_o_ai __vector signed __int128
vec_perm(__vector signed __int128 __a,__vector signed __int128 __b,__vector unsigned char __c)475 vec_perm(__vector signed __int128 __a, __vector signed __int128 __b,
476 __vector unsigned char __c) {
477 return (__vector signed __int128)__builtin_s390_vperm(
478 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
479 }
480
481 static inline __ATTRS_o_ai __vector unsigned __int128
vec_perm(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned char __c)482 vec_perm(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
483 __vector unsigned char __c) {
484 return (__vector unsigned __int128)__builtin_s390_vperm(
485 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
486 }
487
488 static inline __ATTRS_o_ai __vector __bool __int128
vec_perm(__vector __bool __int128 __a,__vector __bool __int128 __b,__vector unsigned char __c)489 vec_perm(__vector __bool __int128 __a, __vector __bool __int128 __b,
490 __vector unsigned char __c) {
491 return (__vector __bool __int128)__builtin_s390_vperm(
492 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
493 }
494
495 #if __ARCH__ >= 12
496 static inline __ATTRS_o_ai __vector float
vec_perm(__vector float __a,__vector float __b,__vector unsigned char __c)497 vec_perm(__vector float __a, __vector float __b,
498 __vector unsigned char __c) {
499 return (__vector float)__builtin_s390_vperm(
500 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
501 }
502 #endif
503
504 static inline __ATTRS_o_ai __vector double
vec_perm(__vector double __a,__vector double __b,__vector unsigned char __c)505 vec_perm(__vector double __a, __vector double __b,
506 __vector unsigned char __c) {
507 return (__vector double)__builtin_s390_vperm(
508 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);
509 }
510
511 /*-- vec_permi --------------------------------------------------------------*/
512
513 // This prototype is deprecated.
514 extern __ATTRS_o __vector signed long long
515 vec_permi(__vector signed long long __a, __vector signed long long __b,
516 int __c)
517 __constant_range(__c, 0, 3);
518
519 // This prototype is deprecated.
520 extern __ATTRS_o __vector unsigned long long
521 vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,
522 int __c)
523 __constant_range(__c, 0, 3);
524
525 // This prototype is deprecated.
526 extern __ATTRS_o __vector __bool long long
527 vec_permi(__vector __bool long long __a, __vector __bool long long __b,
528 int __c)
529 __constant_range(__c, 0, 3);
530
531 // This prototype is deprecated.
532 extern __ATTRS_o __vector double
533 vec_permi(__vector double __a, __vector double __b, int __c)
534 __constant_range(__c, 0, 3);
535
536 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
537 __builtin_s390_vpdi((__vector unsigned long long)(X), \
538 (__vector unsigned long long)(Y), \
539 (((Z) & 2) << 1) | ((Z) & 1)))
540
541 /*-- vec_bperm --------------------------------------------------------------*/
542
543 #if __ARCH__ >= 12
544 static inline __ATTRS_ai __vector unsigned long long
vec_bperm(__vector unsigned __int128 __a,__vector unsigned char __b)545 vec_bperm(__vector unsigned __int128 __a, __vector unsigned char __b) {
546 return __builtin_s390_vbperm((__vector unsigned char)__a, __b);
547 }
548 #endif
549
550 /*-- vec_bperm_u128 ---------------------------------------------------------*/
551
552 #if __ARCH__ >= 12
553 // This prototype is deprecated.
554 static inline __ATTRS_ai __vector unsigned long long
vec_bperm_u128(__vector unsigned char __a,__vector unsigned char __b)555 vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {
556 return __builtin_s390_vbperm(__a, __b);
557 }
558 #endif
559
560 /*-- vec_revb ---------------------------------------------------------------*/
561
562 static inline __ATTRS_o_ai __vector signed short
vec_revb(__vector signed short __vec)563 vec_revb(__vector signed short __vec) {
564 return (__vector signed short)
565 __builtin_s390_vlbrh((__vector unsigned short)__vec);
566 }
567
568 static inline __ATTRS_o_ai __vector unsigned short
vec_revb(__vector unsigned short __vec)569 vec_revb(__vector unsigned short __vec) {
570 return __builtin_s390_vlbrh(__vec);
571 }
572
573 static inline __ATTRS_o_ai __vector signed int
vec_revb(__vector signed int __vec)574 vec_revb(__vector signed int __vec) {
575 return (__vector signed int)
576 __builtin_s390_vlbrf((__vector unsigned int)__vec);
577 }
578
579 static inline __ATTRS_o_ai __vector unsigned int
vec_revb(__vector unsigned int __vec)580 vec_revb(__vector unsigned int __vec) {
581 return __builtin_s390_vlbrf(__vec);
582 }
583
584 static inline __ATTRS_o_ai __vector signed long long
vec_revb(__vector signed long long __vec)585 vec_revb(__vector signed long long __vec) {
586 return (__vector signed long long)
587 __builtin_s390_vlbrg((__vector unsigned long long)__vec);
588 }
589
590 static inline __ATTRS_o_ai __vector unsigned long long
vec_revb(__vector unsigned long long __vec)591 vec_revb(__vector unsigned long long __vec) {
592 return __builtin_s390_vlbrg(__vec);
593 }
594
595 static inline __ATTRS_o_ai __vector signed __int128
vec_revb(__vector signed __int128 __vec)596 vec_revb(__vector signed __int128 __vec) {
597 return (__vector signed __int128)
598 __builtin_s390_vlbrq((unsigned __int128)__vec);
599 }
600
601 static inline __ATTRS_o_ai __vector unsigned __int128
vec_revb(__vector unsigned __int128 __vec)602 vec_revb(__vector unsigned __int128 __vec) {
603 return (__vector unsigned __int128)
604 __builtin_s390_vlbrq((unsigned __int128)__vec);
605 }
606
607 #if __ARCH__ >= 12
608 static inline __ATTRS_o_ai __vector float
vec_revb(__vector float __vec)609 vec_revb(__vector float __vec) {
610 return (__vector float)
611 __builtin_s390_vlbrf((__vector unsigned int)__vec);
612 }
613 #endif
614
615 static inline __ATTRS_o_ai __vector double
vec_revb(__vector double __vec)616 vec_revb(__vector double __vec) {
617 return (__vector double)
618 __builtin_s390_vlbrg((__vector unsigned long long)__vec);
619 }
620
621 /*-- vec_reve ---------------------------------------------------------------*/
622
623 static inline __ATTRS_o_ai __vector signed char
vec_reve(__vector signed char __vec)624 vec_reve(__vector signed char __vec) {
625 return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],
626 __vec[11], __vec[10], __vec[9], __vec[8],
627 __vec[7], __vec[6], __vec[5], __vec[4],
628 __vec[3], __vec[2], __vec[1], __vec[0] };
629 }
630
631 static inline __ATTRS_o_ai __vector unsigned char
vec_reve(__vector unsigned char __vec)632 vec_reve(__vector unsigned char __vec) {
633 return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],
634 __vec[11], __vec[10], __vec[9], __vec[8],
635 __vec[7], __vec[6], __vec[5], __vec[4],
636 __vec[3], __vec[2], __vec[1], __vec[0] };
637 }
638
639 static inline __ATTRS_o_ai __vector __bool char
vec_reve(__vector __bool char __vec)640 vec_reve(__vector __bool char __vec) {
641 return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],
642 __vec[11], __vec[10], __vec[9], __vec[8],
643 __vec[7], __vec[6], __vec[5], __vec[4],
644 __vec[3], __vec[2], __vec[1], __vec[0] };
645 }
646
647 static inline __ATTRS_o_ai __vector signed short
vec_reve(__vector signed short __vec)648 vec_reve(__vector signed short __vec) {
649 return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],
650 __vec[3], __vec[2], __vec[1], __vec[0] };
651 }
652
653 static inline __ATTRS_o_ai __vector unsigned short
vec_reve(__vector unsigned short __vec)654 vec_reve(__vector unsigned short __vec) {
655 return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],
656 __vec[3], __vec[2], __vec[1], __vec[0] };
657 }
658
659 static inline __ATTRS_o_ai __vector __bool short
vec_reve(__vector __bool short __vec)660 vec_reve(__vector __bool short __vec) {
661 return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],
662 __vec[3], __vec[2], __vec[1], __vec[0] };
663 }
664
665 static inline __ATTRS_o_ai __vector signed int
vec_reve(__vector signed int __vec)666 vec_reve(__vector signed int __vec) {
667 return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };
668 }
669
670 static inline __ATTRS_o_ai __vector unsigned int
vec_reve(__vector unsigned int __vec)671 vec_reve(__vector unsigned int __vec) {
672 return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };
673 }
674
675 static inline __ATTRS_o_ai __vector __bool int
vec_reve(__vector __bool int __vec)676 vec_reve(__vector __bool int __vec) {
677 return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };
678 }
679
680 static inline __ATTRS_o_ai __vector signed long long
vec_reve(__vector signed long long __vec)681 vec_reve(__vector signed long long __vec) {
682 return (__vector signed long long) { __vec[1], __vec[0] };
683 }
684
685 static inline __ATTRS_o_ai __vector unsigned long long
vec_reve(__vector unsigned long long __vec)686 vec_reve(__vector unsigned long long __vec) {
687 return (__vector unsigned long long) { __vec[1], __vec[0] };
688 }
689
690 static inline __ATTRS_o_ai __vector __bool long long
vec_reve(__vector __bool long long __vec)691 vec_reve(__vector __bool long long __vec) {
692 return (__vector __bool long long) { __vec[1], __vec[0] };
693 }
694
695 #if __ARCH__ >= 12
696 static inline __ATTRS_o_ai __vector float
vec_reve(__vector float __vec)697 vec_reve(__vector float __vec) {
698 return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };
699 }
700 #endif
701
702 static inline __ATTRS_o_ai __vector double
vec_reve(__vector double __vec)703 vec_reve(__vector double __vec) {
704 return (__vector double) { __vec[1], __vec[0] };
705 }
706
707 /*-- vec_sel ----------------------------------------------------------------*/
708
709 static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a,__vector signed char __b,__vector unsigned char __c)710 vec_sel(__vector signed char __a, __vector signed char __b,
711 __vector unsigned char __c) {
712 return (((__vector signed char)__c & __b) |
713 (~(__vector signed char)__c & __a));
714 }
715
716 static inline __ATTRS_o_ai __vector signed char
vec_sel(__vector signed char __a,__vector signed char __b,__vector __bool char __c)717 vec_sel(__vector signed char __a, __vector signed char __b,
718 __vector __bool char __c) {
719 return (((__vector signed char)__c & __b) |
720 (~(__vector signed char)__c & __a));
721 }
722
723 static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a,__vector __bool char __b,__vector unsigned char __c)724 vec_sel(__vector __bool char __a, __vector __bool char __b,
725 __vector unsigned char __c) {
726 return (((__vector __bool char)__c & __b) |
727 (~(__vector __bool char)__c & __a));
728 }
729
730 static inline __ATTRS_o_ai __vector __bool char
vec_sel(__vector __bool char __a,__vector __bool char __b,__vector __bool char __c)731 vec_sel(__vector __bool char __a, __vector __bool char __b,
732 __vector __bool char __c) {
733 return (__c & __b) | (~__c & __a);
734 }
735
736 static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)737 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
738 __vector unsigned char __c) {
739 return (__c & __b) | (~__c & __a);
740 }
741
742 static inline __ATTRS_o_ai __vector unsigned char
vec_sel(__vector unsigned char __a,__vector unsigned char __b,__vector __bool char __c)743 vec_sel(__vector unsigned char __a, __vector unsigned char __b,
744 __vector __bool char __c) {
745 return (((__vector unsigned char)__c & __b) |
746 (~(__vector unsigned char)__c & __a));
747 }
748
749 static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a,__vector signed short __b,__vector unsigned short __c)750 vec_sel(__vector signed short __a, __vector signed short __b,
751 __vector unsigned short __c) {
752 return (((__vector signed short)__c & __b) |
753 (~(__vector signed short)__c & __a));
754 }
755
756 static inline __ATTRS_o_ai __vector signed short
vec_sel(__vector signed short __a,__vector signed short __b,__vector __bool short __c)757 vec_sel(__vector signed short __a, __vector signed short __b,
758 __vector __bool short __c) {
759 return (((__vector signed short)__c & __b) |
760 (~(__vector signed short)__c & __a));
761 }
762
763 static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a,__vector __bool short __b,__vector unsigned short __c)764 vec_sel(__vector __bool short __a, __vector __bool short __b,
765 __vector unsigned short __c) {
766 return (((__vector __bool short)__c & __b) |
767 (~(__vector __bool short)__c & __a));
768 }
769
770 static inline __ATTRS_o_ai __vector __bool short
vec_sel(__vector __bool short __a,__vector __bool short __b,__vector __bool short __c)771 vec_sel(__vector __bool short __a, __vector __bool short __b,
772 __vector __bool short __c) {
773 return (__c & __b) | (~__c & __a);
774 }
775
776 static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)777 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
778 __vector unsigned short __c) {
779 return (__c & __b) | (~__c & __a);
780 }
781
782 static inline __ATTRS_o_ai __vector unsigned short
vec_sel(__vector unsigned short __a,__vector unsigned short __b,__vector __bool short __c)783 vec_sel(__vector unsigned short __a, __vector unsigned short __b,
784 __vector __bool short __c) {
785 return (((__vector unsigned short)__c & __b) |
786 (~(__vector unsigned short)__c & __a));
787 }
788
789 static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a,__vector signed int __b,__vector unsigned int __c)790 vec_sel(__vector signed int __a, __vector signed int __b,
791 __vector unsigned int __c) {
792 return (((__vector signed int)__c & __b) |
793 (~(__vector signed int)__c & __a));
794 }
795
796 static inline __ATTRS_o_ai __vector signed int
vec_sel(__vector signed int __a,__vector signed int __b,__vector __bool int __c)797 vec_sel(__vector signed int __a, __vector signed int __b,
798 __vector __bool int __c) {
799 return (((__vector signed int)__c & __b) |
800 (~(__vector signed int)__c & __a));
801 }
802
803 static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a,__vector __bool int __b,__vector unsigned int __c)804 vec_sel(__vector __bool int __a, __vector __bool int __b,
805 __vector unsigned int __c) {
806 return (((__vector __bool int)__c & __b) |
807 (~(__vector __bool int)__c & __a));
808 }
809
810 static inline __ATTRS_o_ai __vector __bool int
vec_sel(__vector __bool int __a,__vector __bool int __b,__vector __bool int __c)811 vec_sel(__vector __bool int __a, __vector __bool int __b,
812 __vector __bool int __c) {
813 return (__c & __b) | (~__c & __a);
814 }
815
816 static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)817 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
818 __vector unsigned int __c) {
819 return (__c & __b) | (~__c & __a);
820 }
821
822 static inline __ATTRS_o_ai __vector unsigned int
vec_sel(__vector unsigned int __a,__vector unsigned int __b,__vector __bool int __c)823 vec_sel(__vector unsigned int __a, __vector unsigned int __b,
824 __vector __bool int __c) {
825 return (((__vector unsigned int)__c & __b) |
826 (~(__vector unsigned int)__c & __a));
827 }
828
829 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)830 vec_sel(__vector signed long long __a, __vector signed long long __b,
831 __vector unsigned long long __c) {
832 return (((__vector signed long long)__c & __b) |
833 (~(__vector signed long long)__c & __a));
834 }
835
836 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)837 vec_sel(__vector signed long long __a, __vector signed long long __b,
838 __vector __bool long long __c) {
839 return (((__vector signed long long)__c & __b) |
840 (~(__vector signed long long)__c & __a));
841 }
842
843 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)844 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
845 __vector unsigned long long __c) {
846 return (((__vector __bool long long)__c & __b) |
847 (~(__vector __bool long long)__c & __a));
848 }
849
850 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)851 vec_sel(__vector __bool long long __a, __vector __bool long long __b,
852 __vector __bool long long __c) {
853 return (__c & __b) | (~__c & __a);
854 }
855
856 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)857 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
858 __vector unsigned long long __c) {
859 return (__c & __b) | (~__c & __a);
860 }
861
862 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)863 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,
864 __vector __bool long long __c) {
865 return (((__vector unsigned long long)__c & __b) |
866 (~(__vector unsigned long long)__c & __a));
867 }
868
869 static inline __ATTRS_o_ai __vector signed __int128
vec_sel(__vector signed __int128 __a,__vector signed __int128 __b,__vector unsigned __int128 __c)870 vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
871 __vector unsigned __int128 __c) {
872 return (((__vector signed __int128)__c & __b) |
873 (~(__vector signed __int128)__c & __a));
874 }
875
876 static inline __ATTRS_o_ai __vector signed __int128
vec_sel(__vector signed __int128 __a,__vector signed __int128 __b,__vector __bool __int128 __c)877 vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,
878 __vector __bool __int128 __c) {
879 return (((__vector signed __int128)__c & __b) |
880 (~(__vector signed __int128)__c & __a));
881 }
882
883 static inline __ATTRS_o_ai __vector __bool __int128
vec_sel(__vector __bool __int128 __a,__vector __bool __int128 __b,__vector unsigned __int128 __c)884 vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
885 __vector unsigned __int128 __c) {
886 return (((__vector __bool __int128)__c & __b) |
887 (~(__vector __bool __int128)__c & __a));
888 }
889
890 static inline __ATTRS_o_ai __vector __bool __int128
vec_sel(__vector __bool __int128 __a,__vector __bool __int128 __b,__vector __bool __int128 __c)891 vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,
892 __vector __bool __int128 __c) {
893 return (__c & __b) | (~__c & __a);
894 }
895
896 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sel(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)897 vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
898 __vector unsigned __int128 __c) {
899 return (__c & __b) | (~__c & __a);
900 }
901
902 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sel(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector __bool __int128 __c)903 vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
904 __vector __bool __int128 __c) {
905 return (((__vector unsigned __int128)__c & __b) |
906 (~(__vector unsigned __int128)__c & __a));
907 }
908
909 #if __ARCH__ >= 12
910 static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector unsigned int __c)911 vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {
912 return (__vector float)((__c & (__vector unsigned int)__b) |
913 (~__c & (__vector unsigned int)__a));
914 }
915
916 static inline __ATTRS_o_ai __vector float
vec_sel(__vector float __a,__vector float __b,__vector __bool int __c)917 vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {
918 __vector unsigned int __ac = (__vector unsigned int)__a;
919 __vector unsigned int __bc = (__vector unsigned int)__b;
920 __vector unsigned int __cc = (__vector unsigned int)__c;
921 return (__vector float)((__cc & __bc) | (~__cc & __ac));
922 }
923 #endif
924
925 static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector unsigned long long __c)926 vec_sel(__vector double __a, __vector double __b,
927 __vector unsigned long long __c) {
928 return (__vector double)((__c & (__vector unsigned long long)__b) |
929 (~__c & (__vector unsigned long long)__a));
930 }
931
932 static inline __ATTRS_o_ai __vector double
vec_sel(__vector double __a,__vector double __b,__vector __bool long long __c)933 vec_sel(__vector double __a, __vector double __b,
934 __vector __bool long long __c) {
935 __vector unsigned long long __ac = (__vector unsigned long long)__a;
936 __vector unsigned long long __bc = (__vector unsigned long long)__b;
937 __vector unsigned long long __cc = (__vector unsigned long long)__c;
938 return (__vector double)((__cc & __bc) | (~__cc & __ac));
939 }
940
941 /*-- vec_gather_element -----------------------------------------------------*/
942
943 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)944 vec_gather_element(__vector signed int __vec,
945 __vector unsigned int __offset,
946 const signed int *__ptr, int __index)
947 __constant_range(__index, 0, 3) {
948 __vec[__index] = *(const signed int *)(
949 (const char *)__ptr + __offset[__index]);
950 return __vec;
951 }
952
953 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)954 vec_gather_element(__vector __bool int __vec,
955 __vector unsigned int __offset,
956 const unsigned int *__ptr, int __index)
957 __constant_range(__index, 0, 3) {
958 __vec[__index] = *(const unsigned int *)(
959 (const char *)__ptr + __offset[__index]);
960 return __vec;
961 }
962
963 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)964 vec_gather_element(__vector unsigned int __vec,
965 __vector unsigned int __offset,
966 const unsigned int *__ptr, int __index)
967 __constant_range(__index, 0, 3) {
968 __vec[__index] = *(const unsigned int *)(
969 (const char *)__ptr + __offset[__index]);
970 return __vec;
971 }
972
973 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)974 vec_gather_element(__vector signed long long __vec,
975 __vector unsigned long long __offset,
976 const signed long long *__ptr, int __index)
977 __constant_range(__index, 0, 1) {
978 __vec[__index] = *(const signed long long *)(
979 (const char *)__ptr + __offset[__index]);
980 return __vec;
981 }
982
983 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)984 vec_gather_element(__vector __bool long long __vec,
985 __vector unsigned long long __offset,
986 const unsigned long long *__ptr, int __index)
987 __constant_range(__index, 0, 1) {
988 __vec[__index] = *(const unsigned long long *)(
989 (const char *)__ptr + __offset[__index]);
990 return __vec;
991 }
992
993 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)994 vec_gather_element(__vector unsigned long long __vec,
995 __vector unsigned long long __offset,
996 const unsigned long long *__ptr, int __index)
997 __constant_range(__index, 0, 1) {
998 __vec[__index] = *(const unsigned long long *)(
999 (const char *)__ptr + __offset[__index]);
1000 return __vec;
1001 }
1002
1003 #if __ARCH__ >= 12
1004 static inline __ATTRS_o_ai __vector float
vec_gather_element(__vector float __vec,__vector unsigned int __offset,const float * __ptr,int __index)1005 vec_gather_element(__vector float __vec,
1006 __vector unsigned int __offset,
1007 const float *__ptr, int __index)
1008 __constant_range(__index, 0, 3) {
1009 __vec[__index] = *(const float *)(
1010 (const char *)__ptr + __offset[__index]);
1011 return __vec;
1012 }
1013 #endif
1014
1015 static inline __ATTRS_o_ai __vector double
vec_gather_element(__vector double __vec,__vector unsigned long long __offset,const double * __ptr,int __index)1016 vec_gather_element(__vector double __vec,
1017 __vector unsigned long long __offset,
1018 const double *__ptr, int __index)
1019 __constant_range(__index, 0, 1) {
1020 __vec[__index] = *(const double *)(
1021 (const char *)__ptr + __offset[__index]);
1022 return __vec;
1023 }
1024
1025 /*-- vec_scatter_element ----------------------------------------------------*/
1026
1027 static inline __ATTRS_o_ai void
vec_scatter_element(__vector signed int __vec,__vector unsigned int __offset,signed int * __ptr,int __index)1028 vec_scatter_element(__vector signed int __vec,
1029 __vector unsigned int __offset,
1030 signed int *__ptr, int __index)
1031 __constant_range(__index, 0, 3) {
1032 *(signed int *)((char *)__ptr + __offset[__index]) =
1033 __vec[__index];
1034 }
1035
1036 static inline __ATTRS_o_ai void
vec_scatter_element(__vector __bool int __vec,__vector unsigned int __offset,unsigned int * __ptr,int __index)1037 vec_scatter_element(__vector __bool int __vec,
1038 __vector unsigned int __offset,
1039 unsigned int *__ptr, int __index)
1040 __constant_range(__index, 0, 3) {
1041 *(unsigned int *)((char *)__ptr + __offset[__index]) =
1042 __vec[__index];
1043 }
1044
1045 static inline __ATTRS_o_ai void
vec_scatter_element(__vector unsigned int __vec,__vector unsigned int __offset,unsigned int * __ptr,int __index)1046 vec_scatter_element(__vector unsigned int __vec,
1047 __vector unsigned int __offset,
1048 unsigned int *__ptr, int __index)
1049 __constant_range(__index, 0, 3) {
1050 *(unsigned int *)((char *)__ptr + __offset[__index]) =
1051 __vec[__index];
1052 }
1053
1054 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)1055 vec_scatter_element(__vector signed long long __vec,
1056 __vector unsigned long long __offset,
1057 signed long long *__ptr, int __index)
1058 __constant_range(__index, 0, 1) {
1059 *(signed long long *)((char *)__ptr + __offset[__index]) =
1060 __vec[__index];
1061 }
1062
1063 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)1064 vec_scatter_element(__vector __bool long long __vec,
1065 __vector unsigned long long __offset,
1066 unsigned long long *__ptr, int __index)
1067 __constant_range(__index, 0, 1) {
1068 *(unsigned long long *)((char *)__ptr + __offset[__index]) =
1069 __vec[__index];
1070 }
1071
1072 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)1073 vec_scatter_element(__vector unsigned long long __vec,
1074 __vector unsigned long long __offset,
1075 unsigned long long *__ptr, int __index)
1076 __constant_range(__index, 0, 1) {
1077 *(unsigned long long *)((char *)__ptr + __offset[__index]) =
1078 __vec[__index];
1079 }
1080
1081 #if __ARCH__ >= 12
1082 static inline __ATTRS_o_ai void
vec_scatter_element(__vector float __vec,__vector unsigned int __offset,float * __ptr,int __index)1083 vec_scatter_element(__vector float __vec,
1084 __vector unsigned int __offset,
1085 float *__ptr, int __index)
1086 __constant_range(__index, 0, 3) {
1087 *(float *)((char *)__ptr + __offset[__index]) =
1088 __vec[__index];
1089 }
1090 #endif
1091
1092 static inline __ATTRS_o_ai void
vec_scatter_element(__vector double __vec,__vector unsigned long long __offset,double * __ptr,int __index)1093 vec_scatter_element(__vector double __vec,
1094 __vector unsigned long long __offset,
1095 double *__ptr, int __index)
1096 __constant_range(__index, 0, 1) {
1097 *(double *)((char *)__ptr + __offset[__index]) =
1098 __vec[__index];
1099 }
1100
1101 /*-- vec_xl -----------------------------------------------------------------*/
1102
1103 static inline __ATTRS_o_ai __vector signed char
vec_xl(long __offset,const signed char * __ptr)1104 vec_xl(long __offset, const signed char *__ptr) {
1105 __vector signed char V;
1106 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1107 sizeof(__vector signed char));
1108 return V;
1109 }
1110
1111 static inline __ATTRS_o_ai __vector unsigned char
vec_xl(long __offset,const unsigned char * __ptr)1112 vec_xl(long __offset, const unsigned char *__ptr) {
1113 __vector unsigned char V;
1114 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1115 sizeof(__vector unsigned char));
1116 return V;
1117 }
1118
1119 static inline __ATTRS_o_ai __vector signed short
vec_xl(long __offset,const signed short * __ptr)1120 vec_xl(long __offset, const signed short *__ptr) {
1121 __vector signed short V;
1122 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1123 sizeof(__vector signed short));
1124 return V;
1125 }
1126
1127 static inline __ATTRS_o_ai __vector unsigned short
vec_xl(long __offset,const unsigned short * __ptr)1128 vec_xl(long __offset, const unsigned short *__ptr) {
1129 __vector unsigned short V;
1130 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1131 sizeof(__vector unsigned short));
1132 return V;
1133 }
1134
1135 static inline __ATTRS_o_ai __vector signed int
vec_xl(long __offset,const signed int * __ptr)1136 vec_xl(long __offset, const signed int *__ptr) {
1137 __vector signed int V;
1138 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1139 sizeof(__vector signed int));
1140 return V;
1141 }
1142
1143 static inline __ATTRS_o_ai __vector unsigned int
vec_xl(long __offset,const unsigned int * __ptr)1144 vec_xl(long __offset, const unsigned int *__ptr) {
1145 __vector unsigned int V;
1146 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1147 sizeof(__vector unsigned int));
1148 return V;
1149 }
1150
1151 static inline __ATTRS_o_ai __vector signed long long
vec_xl(long __offset,const signed long long * __ptr)1152 vec_xl(long __offset, const signed long long *__ptr) {
1153 __vector signed long long V;
1154 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1155 sizeof(__vector signed long long));
1156 return V;
1157 }
1158
1159 static inline __ATTRS_o_ai __vector unsigned long long
vec_xl(long __offset,const unsigned long long * __ptr)1160 vec_xl(long __offset, const unsigned long long *__ptr) {
1161 __vector unsigned long long V;
1162 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1163 sizeof(__vector unsigned long long));
1164 return V;
1165 }
1166
1167 static inline __ATTRS_o_ai __vector signed __int128
vec_xl(long __offset,const signed __int128 * __ptr)1168 vec_xl(long __offset, const signed __int128 *__ptr) {
1169 __vector signed __int128 V;
1170 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1171 sizeof(__vector signed __int128));
1172 return V;
1173 }
1174
1175 static inline __ATTRS_o_ai __vector unsigned __int128
vec_xl(long __offset,const unsigned __int128 * __ptr)1176 vec_xl(long __offset, const unsigned __int128 *__ptr) {
1177 __vector unsigned __int128 V;
1178 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1179 sizeof(__vector unsigned __int128));
1180 return V;
1181 }
1182
1183 #if __ARCH__ >= 12
1184 static inline __ATTRS_o_ai __vector float
vec_xl(long __offset,const float * __ptr)1185 vec_xl(long __offset, const float *__ptr) {
1186 __vector float V;
1187 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1188 sizeof(__vector float));
1189 return V;
1190 }
1191 #endif
1192
1193 static inline __ATTRS_o_ai __vector double
vec_xl(long __offset,const double * __ptr)1194 vec_xl(long __offset, const double *__ptr) {
1195 __vector double V;
1196 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1197 sizeof(__vector double));
1198 return V;
1199 }
1200
1201 /*-- vec_xld2 ---------------------------------------------------------------*/
1202
1203 // This prototype is deprecated.
1204 static inline __ATTRS_o_ai __vector signed char
vec_xld2(long __offset,const signed char * __ptr)1205 vec_xld2(long __offset, const signed char *__ptr) {
1206 __vector signed char V;
1207 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1208 sizeof(__vector signed char));
1209 return V;
1210 }
1211
1212 // This prototype is deprecated.
1213 static inline __ATTRS_o_ai __vector unsigned char
vec_xld2(long __offset,const unsigned char * __ptr)1214 vec_xld2(long __offset, const unsigned char *__ptr) {
1215 __vector unsigned char V;
1216 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1217 sizeof(__vector unsigned char));
1218 return V;
1219 }
1220
1221 // This prototype is deprecated.
1222 static inline __ATTRS_o_ai __vector signed short
vec_xld2(long __offset,const signed short * __ptr)1223 vec_xld2(long __offset, const signed short *__ptr) {
1224 __vector signed short V;
1225 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1226 sizeof(__vector signed short));
1227 return V;
1228 }
1229
1230 // This prototype is deprecated.
1231 static inline __ATTRS_o_ai __vector unsigned short
vec_xld2(long __offset,const unsigned short * __ptr)1232 vec_xld2(long __offset, const unsigned short *__ptr) {
1233 __vector unsigned short V;
1234 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1235 sizeof(__vector unsigned short));
1236 return V;
1237 }
1238
1239 // This prototype is deprecated.
1240 static inline __ATTRS_o_ai __vector signed int
vec_xld2(long __offset,const signed int * __ptr)1241 vec_xld2(long __offset, const signed int *__ptr) {
1242 __vector signed int V;
1243 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1244 sizeof(__vector signed int));
1245 return V;
1246 }
1247
1248 // This prototype is deprecated.
1249 static inline __ATTRS_o_ai __vector unsigned int
vec_xld2(long __offset,const unsigned int * __ptr)1250 vec_xld2(long __offset, const unsigned int *__ptr) {
1251 __vector unsigned int V;
1252 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1253 sizeof(__vector unsigned int));
1254 return V;
1255 }
1256
1257 // This prototype is deprecated.
1258 static inline __ATTRS_o_ai __vector signed long long
vec_xld2(long __offset,const signed long long * __ptr)1259 vec_xld2(long __offset, const signed long long *__ptr) {
1260 __vector signed long long V;
1261 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1262 sizeof(__vector signed long long));
1263 return V;
1264 }
1265
1266 // This prototype is deprecated.
1267 static inline __ATTRS_o_ai __vector unsigned long long
vec_xld2(long __offset,const unsigned long long * __ptr)1268 vec_xld2(long __offset, const unsigned long long *__ptr) {
1269 __vector unsigned long long V;
1270 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1271 sizeof(__vector unsigned long long));
1272 return V;
1273 }
1274
1275 // This prototype is deprecated.
1276 static inline __ATTRS_o_ai __vector double
vec_xld2(long __offset,const double * __ptr)1277 vec_xld2(long __offset, const double *__ptr) {
1278 __vector double V;
1279 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1280 sizeof(__vector double));
1281 return V;
1282 }
1283
1284 /*-- vec_xlw4 ---------------------------------------------------------------*/
1285
1286 // This prototype is deprecated.
1287 static inline __ATTRS_o_ai __vector signed char
vec_xlw4(long __offset,const signed char * __ptr)1288 vec_xlw4(long __offset, const signed char *__ptr) {
1289 __vector signed char V;
1290 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1291 sizeof(__vector signed char));
1292 return V;
1293 }
1294
1295 // This prototype is deprecated.
1296 static inline __ATTRS_o_ai __vector unsigned char
vec_xlw4(long __offset,const unsigned char * __ptr)1297 vec_xlw4(long __offset, const unsigned char *__ptr) {
1298 __vector unsigned char V;
1299 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1300 sizeof(__vector unsigned char));
1301 return V;
1302 }
1303
1304 // This prototype is deprecated.
1305 static inline __ATTRS_o_ai __vector signed short
vec_xlw4(long __offset,const signed short * __ptr)1306 vec_xlw4(long __offset, const signed short *__ptr) {
1307 __vector signed short V;
1308 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1309 sizeof(__vector signed short));
1310 return V;
1311 }
1312
1313 // This prototype is deprecated.
1314 static inline __ATTRS_o_ai __vector unsigned short
vec_xlw4(long __offset,const unsigned short * __ptr)1315 vec_xlw4(long __offset, const unsigned short *__ptr) {
1316 __vector unsigned short V;
1317 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1318 sizeof(__vector unsigned short));
1319 return V;
1320 }
1321
1322 // This prototype is deprecated.
1323 static inline __ATTRS_o_ai __vector signed int
vec_xlw4(long __offset,const signed int * __ptr)1324 vec_xlw4(long __offset, const signed int *__ptr) {
1325 __vector signed int V;
1326 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1327 sizeof(__vector signed int));
1328 return V;
1329 }
1330
1331 // This prototype is deprecated.
1332 static inline __ATTRS_o_ai __vector unsigned int
vec_xlw4(long __offset,const unsigned int * __ptr)1333 vec_xlw4(long __offset, const unsigned int *__ptr) {
1334 __vector unsigned int V;
1335 __builtin_memcpy(&V, ((const char *)__ptr + __offset),
1336 sizeof(__vector unsigned int));
1337 return V;
1338 }
1339
1340 /*-- vec_xst ----------------------------------------------------------------*/
1341
1342 static inline __ATTRS_o_ai void
vec_xst(__vector signed char __vec,long __offset,signed char * __ptr)1343 vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {
1344 __vector signed char V = __vec;
1345 __builtin_memcpy(((char *)__ptr + __offset), &V,
1346 sizeof(__vector signed char));
1347 }
1348
1349 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1350 vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1351 __vector unsigned char V = __vec;
1352 __builtin_memcpy(((char *)__ptr + __offset), &V,
1353 sizeof(__vector unsigned char));
1354 }
1355
1356 static inline __ATTRS_o_ai void
vec_xst(__vector signed short __vec,long __offset,signed short * __ptr)1357 vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {
1358 __vector signed short V = __vec;
1359 __builtin_memcpy(((char *)__ptr + __offset), &V,
1360 sizeof(__vector signed short));
1361 }
1362
1363 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1364 vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1365 __vector unsigned short V = __vec;
1366 __builtin_memcpy(((char *)__ptr + __offset), &V,
1367 sizeof(__vector unsigned short));
1368 }
1369
1370 static inline __ATTRS_o_ai void
vec_xst(__vector signed int __vec,long __offset,signed int * __ptr)1371 vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {
1372 __vector signed int V = __vec;
1373 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1374 }
1375
1376 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1377 vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1378 __vector unsigned int V = __vec;
1379 __builtin_memcpy(((char *)__ptr + __offset), &V,
1380 sizeof(__vector unsigned int));
1381 }
1382
1383 static inline __ATTRS_o_ai void
vec_xst(__vector signed long long __vec,long __offset,signed long long * __ptr)1384 vec_xst(__vector signed long long __vec, long __offset,
1385 signed long long *__ptr) {
1386 __vector signed long long V = __vec;
1387 __builtin_memcpy(((char *)__ptr + __offset), &V,
1388 sizeof(__vector signed long long));
1389 }
1390
1391 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1392 vec_xst(__vector unsigned long long __vec, long __offset,
1393 unsigned long long *__ptr) {
1394 __vector unsigned long long V = __vec;
1395 __builtin_memcpy(((char *)__ptr + __offset), &V,
1396 sizeof(__vector unsigned long long));
1397 }
1398
1399 static inline __ATTRS_o_ai void
vec_xst(__vector signed __int128 __vec,long __offset,signed __int128 * __ptr)1400 vec_xst(__vector signed __int128 __vec, long __offset,
1401 signed __int128 *__ptr) {
1402 __vector signed __int128 V = __vec;
1403 __builtin_memcpy(((char *)__ptr + __offset), &V,
1404 sizeof(__vector signed __int128));
1405 }
1406
1407 static inline __ATTRS_o_ai void
vec_xst(__vector unsigned __int128 __vec,long __offset,unsigned __int128 * __ptr)1408 vec_xst(__vector unsigned __int128 __vec, long __offset,
1409 unsigned __int128 *__ptr) {
1410 __vector unsigned __int128 V = __vec;
1411 __builtin_memcpy(((char *)__ptr + __offset), &V,
1412 sizeof(__vector unsigned __int128));
1413 }
1414
1415 #if __ARCH__ >= 12
1416 static inline __ATTRS_o_ai void
vec_xst(__vector float __vec,long __offset,float * __ptr)1417 vec_xst(__vector float __vec, long __offset, float *__ptr) {
1418 __vector float V = __vec;
1419 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));
1420 }
1421 #endif
1422
1423 static inline __ATTRS_o_ai void
vec_xst(__vector double __vec,long __offset,double * __ptr)1424 vec_xst(__vector double __vec, long __offset, double *__ptr) {
1425 __vector double V = __vec;
1426 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1427 }
1428
1429 /*-- vec_xstd2 --------------------------------------------------------------*/
1430
1431 // This prototype is deprecated.
1432 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed char __vec,long __offset,signed char * __ptr)1433 vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {
1434 __vector signed char V = __vec;
1435 __builtin_memcpy(((char *)__ptr + __offset), &V,
1436 sizeof(__vector signed char));
1437 }
1438
1439 // This prototype is deprecated.
1440 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1441 vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1442 __vector unsigned char V = __vec;
1443 __builtin_memcpy(((char *)__ptr + __offset), &V,
1444 sizeof(__vector unsigned char));
1445 }
1446
1447 // This prototype is deprecated.
1448 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed short __vec,long __offset,signed short * __ptr)1449 vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {
1450 __vector signed short V = __vec;
1451 __builtin_memcpy(((char *)__ptr + __offset), &V,
1452 sizeof(__vector signed short));
1453 }
1454
1455 // This prototype is deprecated.
1456 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1457 vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1458 __vector unsigned short V = __vec;
1459 __builtin_memcpy(((char *)__ptr + __offset), &V,
1460 sizeof(__vector unsigned short));
1461 }
1462
1463 // This prototype is deprecated.
1464 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed int __vec,long __offset,signed int * __ptr)1465 vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {
1466 __vector signed int V = __vec;
1467 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1468 }
1469
1470 // This prototype is deprecated.
1471 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1472 vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1473 __vector unsigned int V = __vec;
1474 __builtin_memcpy(((char *)__ptr + __offset), &V,
1475 sizeof(__vector unsigned int));
1476 }
1477
1478 // This prototype is deprecated.
1479 static inline __ATTRS_o_ai void
vec_xstd2(__vector signed long long __vec,long __offset,signed long long * __ptr)1480 vec_xstd2(__vector signed long long __vec, long __offset,
1481 signed long long *__ptr) {
1482 __vector signed long long V = __vec;
1483 __builtin_memcpy(((char *)__ptr + __offset), &V,
1484 sizeof(__vector signed long long));
1485 }
1486
1487 // This prototype is deprecated.
1488 static inline __ATTRS_o_ai void
vec_xstd2(__vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1489 vec_xstd2(__vector unsigned long long __vec, long __offset,
1490 unsigned long long *__ptr) {
1491 __vector unsigned long long V = __vec;
1492 __builtin_memcpy(((char *)__ptr + __offset), &V,
1493 sizeof(__vector unsigned long long));
1494 }
1495
1496 // This prototype is deprecated.
1497 static inline __ATTRS_o_ai void
vec_xstd2(__vector double __vec,long __offset,double * __ptr)1498 vec_xstd2(__vector double __vec, long __offset, double *__ptr) {
1499 __vector double V = __vec;
1500 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));
1501 }
1502
1503 /*-- vec_xstw4 --------------------------------------------------------------*/
1504
1505 // This prototype is deprecated.
1506 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed char __vec,long __offset,signed char * __ptr)1507 vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {
1508 __vector signed char V = __vec;
1509 __builtin_memcpy(((char *)__ptr + __offset), &V,
1510 sizeof(__vector signed char));
1511 }
1512
1513 // This prototype is deprecated.
1514 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned char __vec,long __offset,unsigned char * __ptr)1515 vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1516 __vector unsigned char V = __vec;
1517 __builtin_memcpy(((char *)__ptr + __offset), &V,
1518 sizeof(__vector unsigned char));
1519 }
1520
1521 // This prototype is deprecated.
1522 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed short __vec,long __offset,signed short * __ptr)1523 vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {
1524 __vector signed short V = __vec;
1525 __builtin_memcpy(((char *)__ptr + __offset), &V,
1526 sizeof(__vector signed short));
1527 }
1528
1529 // This prototype is deprecated.
1530 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned short __vec,long __offset,unsigned short * __ptr)1531 vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1532 __vector unsigned short V = __vec;
1533 __builtin_memcpy(((char *)__ptr + __offset), &V,
1534 sizeof(__vector unsigned short));
1535 }
1536
1537 // This prototype is deprecated.
1538 static inline __ATTRS_o_ai void
vec_xstw4(__vector signed int __vec,long __offset,signed int * __ptr)1539 vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {
1540 __vector signed int V = __vec;
1541 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));
1542 }
1543
1544 // This prototype is deprecated.
1545 static inline __ATTRS_o_ai void
vec_xstw4(__vector unsigned int __vec,long __offset,unsigned int * __ptr)1546 vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1547 __vector unsigned int V = __vec;
1548 __builtin_memcpy(((char *)__ptr + __offset), &V,
1549 sizeof(__vector unsigned int));
1550 }
1551
1552 /*-- vec_load_bndry ---------------------------------------------------------*/
1553
1554 extern __ATTRS_o __vector signed char
1555 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1556 __constant_pow2_range(__len, 64, 4096);
1557
1558 extern __ATTRS_o __vector unsigned char
1559 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1560 __constant_pow2_range(__len, 64, 4096);
1561
1562 extern __ATTRS_o __vector signed short
1563 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1564 __constant_pow2_range(__len, 64, 4096);
1565
1566 extern __ATTRS_o __vector unsigned short
1567 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1568 __constant_pow2_range(__len, 64, 4096);
1569
1570 extern __ATTRS_o __vector signed int
1571 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1572 __constant_pow2_range(__len, 64, 4096);
1573
1574 extern __ATTRS_o __vector unsigned int
1575 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1576 __constant_pow2_range(__len, 64, 4096);
1577
1578 extern __ATTRS_o __vector signed long long
1579 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1580 __constant_pow2_range(__len, 64, 4096);
1581
1582 extern __ATTRS_o __vector unsigned long long
1583 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1584 __constant_pow2_range(__len, 64, 4096);
1585
1586 extern __ATTRS_o __vector signed __int128
1587 vec_load_bndry(const signed __int128 *__ptr, unsigned short __len)
1588 __constant_pow2_range(__len, 64, 4096);
1589
1590 extern __ATTRS_o __vector unsigned __int128
1591 vec_load_bndry(const unsigned __int128 *__ptr, unsigned short __len)
1592 __constant_pow2_range(__len, 64, 4096);
1593
1594 #if __ARCH__ >= 12
1595 extern __ATTRS_o __vector float
1596 vec_load_bndry(const float *__ptr, unsigned short __len)
1597 __constant_pow2_range(__len, 64, 4096);
1598 #endif
1599
1600 extern __ATTRS_o __vector double
1601 vec_load_bndry(const double *__ptr, unsigned short __len)
1602 __constant_pow2_range(__len, 64, 4096);
1603
1604 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1605 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1606 (Y) == 128 ? 1 : \
1607 (Y) == 256 ? 2 : \
1608 (Y) == 512 ? 3 : \
1609 (Y) == 1024 ? 4 : \
1610 (Y) == 2048 ? 5 : \
1611 (Y) == 4096 ? 6 : -1)))
1612
1613 /*-- vec_load_len -----------------------------------------------------------*/
1614
1615 static inline __ATTRS_o_ai __vector signed char
vec_load_len(const signed char * __ptr,unsigned int __len)1616 vec_load_len(const signed char *__ptr, unsigned int __len) {
1617 return (__vector signed char)__builtin_s390_vll(__len, __ptr);
1618 }
1619
1620 static inline __ATTRS_o_ai __vector unsigned char
vec_load_len(const unsigned char * __ptr,unsigned int __len)1621 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1622 return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);
1623 }
1624
1625 // This prototype is deprecated.
1626 static inline __ATTRS_o_ai __vector signed short
vec_load_len(const signed short * __ptr,unsigned int __len)1627 vec_load_len(const signed short *__ptr, unsigned int __len) {
1628 return (__vector signed short)__builtin_s390_vll(__len, __ptr);
1629 }
1630
1631 // This prototype is deprecated.
1632 static inline __ATTRS_o_ai __vector unsigned short
vec_load_len(const unsigned short * __ptr,unsigned int __len)1633 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1634 return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);
1635 }
1636
1637 // This prototype is deprecated.
1638 static inline __ATTRS_o_ai __vector signed int
vec_load_len(const signed int * __ptr,unsigned int __len)1639 vec_load_len(const signed int *__ptr, unsigned int __len) {
1640 return (__vector signed int)__builtin_s390_vll(__len, __ptr);
1641 }
1642
1643 // This prototype is deprecated.
1644 static inline __ATTRS_o_ai __vector unsigned int
vec_load_len(const unsigned int * __ptr,unsigned int __len)1645 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1646 return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);
1647 }
1648
1649 // This prototype is deprecated.
1650 static inline __ATTRS_o_ai __vector signed long long
vec_load_len(const signed long long * __ptr,unsigned int __len)1651 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1652 return (__vector signed long long)__builtin_s390_vll(__len, __ptr);
1653 }
1654
1655 // This prototype is deprecated.
1656 static inline __ATTRS_o_ai __vector unsigned long long
vec_load_len(const unsigned long long * __ptr,unsigned int __len)1657 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1658 return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1659 }
1660
1661 #if __ARCH__ >= 12
1662 // This prototype is deprecated.
1663 static inline __ATTRS_o_ai __vector float
vec_load_len(const float * __ptr,unsigned int __len)1664 vec_load_len(const float *__ptr, unsigned int __len) {
1665 return (__vector float)__builtin_s390_vll(__len, __ptr);
1666 }
1667 #endif
1668
1669 // This prototype is deprecated.
1670 static inline __ATTRS_o_ai __vector double
vec_load_len(const double * __ptr,unsigned int __len)1671 vec_load_len(const double *__ptr, unsigned int __len) {
1672 return (__vector double)__builtin_s390_vll(__len, __ptr);
1673 }
1674
1675 /*-- vec_load_len_r ---------------------------------------------------------*/
1676
1677 #if __ARCH__ >= 12
1678 static inline __ATTRS_o_ai __vector signed char
vec_load_len_r(const signed char * __ptr,unsigned int __len)1679 vec_load_len_r(const signed char *__ptr, unsigned int __len) {
1680 return (__vector signed char)__builtin_s390_vlrlr(__len, __ptr);
1681 }
1682
1683 static inline __ATTRS_o_ai __vector unsigned char
vec_load_len_r(const unsigned char * __ptr,unsigned int __len)1684 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1685 return (__vector unsigned char)__builtin_s390_vlrlr(__len, __ptr);
1686 }
1687 #endif
1688
1689 /*-- vec_store_len ----------------------------------------------------------*/
1690
1691 static inline __ATTRS_o_ai void
vec_store_len(__vector signed char __vec,signed char * __ptr,unsigned int __len)1692 vec_store_len(__vector signed char __vec, signed char *__ptr,
1693 unsigned int __len) {
1694 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1695 }
1696
1697 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1698 vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,
1699 unsigned int __len) {
1700 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1701 }
1702
1703 // This prototype is deprecated.
1704 static inline __ATTRS_o_ai void
vec_store_len(__vector signed short __vec,signed short * __ptr,unsigned int __len)1705 vec_store_len(__vector signed short __vec, signed short *__ptr,
1706 unsigned int __len) {
1707 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1708 }
1709
1710 // This prototype is deprecated.
1711 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned short __vec,unsigned short * __ptr,unsigned int __len)1712 vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,
1713 unsigned int __len) {
1714 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1715 }
1716
1717 // This prototype is deprecated.
1718 static inline __ATTRS_o_ai void
vec_store_len(__vector signed int __vec,signed int * __ptr,unsigned int __len)1719 vec_store_len(__vector signed int __vec, signed int *__ptr,
1720 unsigned int __len) {
1721 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1722 }
1723
1724 // This prototype is deprecated.
1725 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned int __vec,unsigned int * __ptr,unsigned int __len)1726 vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,
1727 unsigned int __len) {
1728 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1729 }
1730
1731 // This prototype is deprecated.
1732 static inline __ATTRS_o_ai void
vec_store_len(__vector signed long long __vec,signed long long * __ptr,unsigned int __len)1733 vec_store_len(__vector signed long long __vec, signed long long *__ptr,
1734 unsigned int __len) {
1735 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1736 }
1737
1738 // This prototype is deprecated.
1739 static inline __ATTRS_o_ai void
vec_store_len(__vector unsigned long long __vec,unsigned long long * __ptr,unsigned int __len)1740 vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,
1741 unsigned int __len) {
1742 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1743 }
1744
1745 #if __ARCH__ >= 12
1746 // This prototype is deprecated.
1747 static inline __ATTRS_o_ai void
vec_store_len(__vector float __vec,float * __ptr,unsigned int __len)1748 vec_store_len(__vector float __vec, float *__ptr,
1749 unsigned int __len) {
1750 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1751 }
1752 #endif
1753
1754 // This prototype is deprecated.
1755 static inline __ATTRS_o_ai void
vec_store_len(__vector double __vec,double * __ptr,unsigned int __len)1756 vec_store_len(__vector double __vec, double *__ptr,
1757 unsigned int __len) {
1758 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);
1759 }
1760
1761 /*-- vec_store_len_r --------------------------------------------------------*/
1762
1763 #if __ARCH__ >= 12
1764 static inline __ATTRS_o_ai void
vec_store_len_r(__vector signed char __vec,signed char * __ptr,unsigned int __len)1765 vec_store_len_r(__vector signed char __vec, signed char *__ptr,
1766 unsigned int __len) {
1767 __builtin_s390_vstrlr(__vec, __len, __ptr);
1768 }
1769
1770 static inline __ATTRS_o_ai void
vec_store_len_r(__vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1771 vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,
1772 unsigned int __len) {
1773 __builtin_s390_vstrlr((__vector signed char)__vec, __len, __ptr);
1774 }
1775 #endif
1776
1777 /*-- vec_load_pair ----------------------------------------------------------*/
1778
1779 static inline __ATTRS_o_ai __vector signed long long
vec_load_pair(signed long long __a,signed long long __b)1780 vec_load_pair(signed long long __a, signed long long __b) {
1781 return (__vector signed long long)(__a, __b);
1782 }
1783
1784 static inline __ATTRS_o_ai __vector unsigned long long
vec_load_pair(unsigned long long __a,unsigned long long __b)1785 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1786 return (__vector unsigned long long)(__a, __b);
1787 }
1788
1789 /*-- vec_genmask ------------------------------------------------------------*/
1790
1791 static inline __ATTRS_o_ai __vector unsigned char
vec_genmask(unsigned short __mask)1792 vec_genmask(unsigned short __mask)
1793 __constant(__mask) {
1794 return (__vector unsigned char)(
1795 __mask & 0x8000 ? 0xff : 0,
1796 __mask & 0x4000 ? 0xff : 0,
1797 __mask & 0x2000 ? 0xff : 0,
1798 __mask & 0x1000 ? 0xff : 0,
1799 __mask & 0x0800 ? 0xff : 0,
1800 __mask & 0x0400 ? 0xff : 0,
1801 __mask & 0x0200 ? 0xff : 0,
1802 __mask & 0x0100 ? 0xff : 0,
1803 __mask & 0x0080 ? 0xff : 0,
1804 __mask & 0x0040 ? 0xff : 0,
1805 __mask & 0x0020 ? 0xff : 0,
1806 __mask & 0x0010 ? 0xff : 0,
1807 __mask & 0x0008 ? 0xff : 0,
1808 __mask & 0x0004 ? 0xff : 0,
1809 __mask & 0x0002 ? 0xff : 0,
1810 __mask & 0x0001 ? 0xff : 0);
1811 }
1812
1813 /*-- vec_genmasks_* ---------------------------------------------------------*/
1814
1815 static inline __ATTRS_o_ai __vector unsigned char
vec_genmasks_8(unsigned char __first,unsigned char __last)1816 vec_genmasks_8(unsigned char __first, unsigned char __last)
1817 __constant(__first) __constant(__last) {
1818 unsigned char __bit1 = __first & 7;
1819 unsigned char __bit2 = __last & 7;
1820 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1821 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1822 unsigned char __value = (__bit1 <= __bit2 ?
1823 __mask1 & ~__mask2 :
1824 __mask1 | ~__mask2);
1825 return (__vector unsigned char)__value;
1826 }
1827
1828 static inline __ATTRS_o_ai __vector unsigned short
vec_genmasks_16(unsigned char __first,unsigned char __last)1829 vec_genmasks_16(unsigned char __first, unsigned char __last)
1830 __constant(__first) __constant(__last) {
1831 unsigned char __bit1 = __first & 15;
1832 unsigned char __bit2 = __last & 15;
1833 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1834 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1835 unsigned short __value = (__bit1 <= __bit2 ?
1836 __mask1 & ~__mask2 :
1837 __mask1 | ~__mask2);
1838 return (__vector unsigned short)__value;
1839 }
1840
1841 static inline __ATTRS_o_ai __vector unsigned int
vec_genmasks_32(unsigned char __first,unsigned char __last)1842 vec_genmasks_32(unsigned char __first, unsigned char __last)
1843 __constant(__first) __constant(__last) {
1844 unsigned char __bit1 = __first & 31;
1845 unsigned char __bit2 = __last & 31;
1846 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1847 unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1848 unsigned int __value = (__bit1 <= __bit2 ?
1849 __mask1 & ~__mask2 :
1850 __mask1 | ~__mask2);
1851 return (__vector unsigned int)__value;
1852 }
1853
1854 static inline __ATTRS_o_ai __vector unsigned long long
vec_genmasks_64(unsigned char __first,unsigned char __last)1855 vec_genmasks_64(unsigned char __first, unsigned char __last)
1856 __constant(__first) __constant(__last) {
1857 unsigned char __bit1 = __first & 63;
1858 unsigned char __bit2 = __last & 63;
1859 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1860 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1861 unsigned long long __value = (__bit1 <= __bit2 ?
1862 __mask1 & ~__mask2 :
1863 __mask1 | ~__mask2);
1864 return (__vector unsigned long long)__value;
1865 }
1866
1867 /*-- vec_gen_element_masks_* ------------------------------------------------*/
1868
1869 #if __ARCH__ >= 15
1870 static inline __ATTRS_ai __vector unsigned char
vec_gen_element_masks_8(__vector unsigned short __mask)1871 vec_gen_element_masks_8(__vector unsigned short __mask) {
1872 return __builtin_s390_vgemb(__mask);
1873 }
1874
1875 static inline __ATTRS_ai __vector unsigned short
vec_gen_element_masks_16(__vector unsigned char __mask)1876 vec_gen_element_masks_16(__vector unsigned char __mask) {
1877 return __builtin_s390_vgemh(__mask);
1878 }
1879
1880 static inline __ATTRS_ai __vector unsigned int
vec_gen_element_masks_32(__vector unsigned char __mask)1881 vec_gen_element_masks_32(__vector unsigned char __mask) {
1882 return __builtin_s390_vgemf(__mask);
1883 }
1884
1885 static inline __ATTRS_ai __vector unsigned long long
vec_gen_element_masks_64(__vector unsigned char __mask)1886 vec_gen_element_masks_64(__vector unsigned char __mask) {
1887 return __builtin_s390_vgemg(__mask);
1888 }
1889
1890 static inline __ATTRS_ai __vector unsigned __int128
vec_gen_element_masks_128(__vector unsigned char __mask)1891 vec_gen_element_masks_128(__vector unsigned char __mask) {
1892 return (__vector unsigned __int128)__builtin_s390_vgemq(__mask);
1893 }
1894 #endif
1895
1896 /*-- vec_splat --------------------------------------------------------------*/
1897
1898 static inline __ATTRS_o_ai __vector signed char
vec_splat(__vector signed char __vec,int __index)1899 vec_splat(__vector signed char __vec, int __index)
1900 __constant_range(__index, 0, 15) {
1901 return (__vector signed char)__vec[__index];
1902 }
1903
1904 static inline __ATTRS_o_ai __vector __bool char
vec_splat(__vector __bool char __vec,int __index)1905 vec_splat(__vector __bool char __vec, int __index)
1906 __constant_range(__index, 0, 15) {
1907 return (__vector __bool char)(__vector unsigned char)__vec[__index];
1908 }
1909
1910 static inline __ATTRS_o_ai __vector unsigned char
vec_splat(__vector unsigned char __vec,int __index)1911 vec_splat(__vector unsigned char __vec, int __index)
1912 __constant_range(__index, 0, 15) {
1913 return (__vector unsigned char)__vec[__index];
1914 }
1915
1916 static inline __ATTRS_o_ai __vector signed short
vec_splat(__vector signed short __vec,int __index)1917 vec_splat(__vector signed short __vec, int __index)
1918 __constant_range(__index, 0, 7) {
1919 return (__vector signed short)__vec[__index];
1920 }
1921
1922 static inline __ATTRS_o_ai __vector __bool short
vec_splat(__vector __bool short __vec,int __index)1923 vec_splat(__vector __bool short __vec, int __index)
1924 __constant_range(__index, 0, 7) {
1925 return (__vector __bool short)(__vector unsigned short)__vec[__index];
1926 }
1927
1928 static inline __ATTRS_o_ai __vector unsigned short
vec_splat(__vector unsigned short __vec,int __index)1929 vec_splat(__vector unsigned short __vec, int __index)
1930 __constant_range(__index, 0, 7) {
1931 return (__vector unsigned short)__vec[__index];
1932 }
1933
1934 static inline __ATTRS_o_ai __vector signed int
vec_splat(__vector signed int __vec,int __index)1935 vec_splat(__vector signed int __vec, int __index)
1936 __constant_range(__index, 0, 3) {
1937 return (__vector signed int)__vec[__index];
1938 }
1939
1940 static inline __ATTRS_o_ai __vector __bool int
vec_splat(__vector __bool int __vec,int __index)1941 vec_splat(__vector __bool int __vec, int __index)
1942 __constant_range(__index, 0, 3) {
1943 return (__vector __bool int)(__vector unsigned int)__vec[__index];
1944 }
1945
1946 static inline __ATTRS_o_ai __vector unsigned int
vec_splat(__vector unsigned int __vec,int __index)1947 vec_splat(__vector unsigned int __vec, int __index)
1948 __constant_range(__index, 0, 3) {
1949 return (__vector unsigned int)__vec[__index];
1950 }
1951
1952 static inline __ATTRS_o_ai __vector signed long long
vec_splat(__vector signed long long __vec,int __index)1953 vec_splat(__vector signed long long __vec, int __index)
1954 __constant_range(__index, 0, 1) {
1955 return (__vector signed long long)__vec[__index];
1956 }
1957
1958 static inline __ATTRS_o_ai __vector __bool long long
vec_splat(__vector __bool long long __vec,int __index)1959 vec_splat(__vector __bool long long __vec, int __index)
1960 __constant_range(__index, 0, 1) {
1961 return ((__vector __bool long long)
1962 (__vector unsigned long long)__vec[__index]);
1963 }
1964
1965 static inline __ATTRS_o_ai __vector unsigned long long
vec_splat(__vector unsigned long long __vec,int __index)1966 vec_splat(__vector unsigned long long __vec, int __index)
1967 __constant_range(__index, 0, 1) {
1968 return (__vector unsigned long long)__vec[__index];
1969 }
1970
1971 #if __ARCH__ >= 12
1972 static inline __ATTRS_o_ai __vector float
vec_splat(__vector float __vec,int __index)1973 vec_splat(__vector float __vec, int __index)
1974 __constant_range(__index, 0, 3) {
1975 return (__vector float)__vec[__index];
1976 }
1977 #endif
1978
1979 static inline __ATTRS_o_ai __vector double
vec_splat(__vector double __vec,int __index)1980 vec_splat(__vector double __vec, int __index)
1981 __constant_range(__index, 0, 1) {
1982 return (__vector double)__vec[__index];
1983 }
1984
1985 /*-- vec_splat_s* -----------------------------------------------------------*/
1986
1987 static inline __ATTRS_ai __vector signed char
vec_splat_s8(signed char __scalar)1988 vec_splat_s8(signed char __scalar)
1989 __constant(__scalar) {
1990 return (__vector signed char)__scalar;
1991 }
1992
1993 static inline __ATTRS_ai __vector signed short
vec_splat_s16(signed short __scalar)1994 vec_splat_s16(signed short __scalar)
1995 __constant(__scalar) {
1996 return (__vector signed short)__scalar;
1997 }
1998
1999 static inline __ATTRS_ai __vector signed int
vec_splat_s32(signed short __scalar)2000 vec_splat_s32(signed short __scalar)
2001 __constant(__scalar) {
2002 return (__vector signed int)(signed int)__scalar;
2003 }
2004
2005 static inline __ATTRS_ai __vector signed long long
vec_splat_s64(signed short __scalar)2006 vec_splat_s64(signed short __scalar)
2007 __constant(__scalar) {
2008 return (__vector signed long long)(signed long)__scalar;
2009 }
2010
2011 /*-- vec_splat_u* -----------------------------------------------------------*/
2012
2013 static inline __ATTRS_ai __vector unsigned char
vec_splat_u8(unsigned char __scalar)2014 vec_splat_u8(unsigned char __scalar)
2015 __constant(__scalar) {
2016 return (__vector unsigned char)__scalar;
2017 }
2018
2019 static inline __ATTRS_ai __vector unsigned short
vec_splat_u16(unsigned short __scalar)2020 vec_splat_u16(unsigned short __scalar)
2021 __constant(__scalar) {
2022 return (__vector unsigned short)__scalar;
2023 }
2024
2025 static inline __ATTRS_ai __vector unsigned int
vec_splat_u32(signed short __scalar)2026 vec_splat_u32(signed short __scalar)
2027 __constant(__scalar) {
2028 return (__vector unsigned int)(signed int)__scalar;
2029 }
2030
2031 static inline __ATTRS_ai __vector unsigned long long
vec_splat_u64(signed short __scalar)2032 vec_splat_u64(signed short __scalar)
2033 __constant(__scalar) {
2034 return (__vector unsigned long long)(signed long long)__scalar;
2035 }
2036
2037 /*-- vec_splats -------------------------------------------------------------*/
2038
2039 static inline __ATTRS_o_ai __vector signed char
vec_splats(signed char __scalar)2040 vec_splats(signed char __scalar) {
2041 return (__vector signed char)__scalar;
2042 }
2043
2044 static inline __ATTRS_o_ai __vector unsigned char
vec_splats(unsigned char __scalar)2045 vec_splats(unsigned char __scalar) {
2046 return (__vector unsigned char)__scalar;
2047 }
2048
2049 static inline __ATTRS_o_ai __vector signed short
vec_splats(signed short __scalar)2050 vec_splats(signed short __scalar) {
2051 return (__vector signed short)__scalar;
2052 }
2053
2054 static inline __ATTRS_o_ai __vector unsigned short
vec_splats(unsigned short __scalar)2055 vec_splats(unsigned short __scalar) {
2056 return (__vector unsigned short)__scalar;
2057 }
2058
2059 static inline __ATTRS_o_ai __vector signed int
vec_splats(signed int __scalar)2060 vec_splats(signed int __scalar) {
2061 return (__vector signed int)__scalar;
2062 }
2063
2064 static inline __ATTRS_o_ai __vector unsigned int
vec_splats(unsigned int __scalar)2065 vec_splats(unsigned int __scalar) {
2066 return (__vector unsigned int)__scalar;
2067 }
2068
2069 static inline __ATTRS_o_ai __vector signed long long
vec_splats(signed long long __scalar)2070 vec_splats(signed long long __scalar) {
2071 return (__vector signed long long)__scalar;
2072 }
2073
2074 static inline __ATTRS_o_ai __vector unsigned long long
vec_splats(unsigned long long __scalar)2075 vec_splats(unsigned long long __scalar) {
2076 return (__vector unsigned long long)__scalar;
2077 }
2078
2079 static inline __ATTRS_o_ai __vector signed __int128
vec_splats(signed __int128 __scalar)2080 vec_splats(signed __int128 __scalar) {
2081 return (__vector signed __int128)__scalar;
2082 }
2083
2084 static inline __ATTRS_o_ai __vector unsigned __int128
vec_splats(unsigned __int128 __scalar)2085 vec_splats(unsigned __int128 __scalar) {
2086 return (__vector unsigned __int128)__scalar;
2087 }
2088
2089 #if __ARCH__ >= 12
2090 static inline __ATTRS_o_ai __vector float
vec_splats(float __scalar)2091 vec_splats(float __scalar) {
2092 return (__vector float)__scalar;
2093 }
2094 #endif
2095
2096 static inline __ATTRS_o_ai __vector double
vec_splats(double __scalar)2097 vec_splats(double __scalar) {
2098 return (__vector double)__scalar;
2099 }
2100
2101 /*-- vec_extend_s64 ---------------------------------------------------------*/
2102
2103 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed char __a)2104 vec_extend_s64(__vector signed char __a) {
2105 return (__vector signed long long)(__a[7], __a[15]);
2106 }
2107
2108 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed short __a)2109 vec_extend_s64(__vector signed short __a) {
2110 return (__vector signed long long)(__a[3], __a[7]);
2111 }
2112
2113 static inline __ATTRS_o_ai __vector signed long long
vec_extend_s64(__vector signed int __a)2114 vec_extend_s64(__vector signed int __a) {
2115 return (__vector signed long long)(__a[1], __a[3]);
2116 }
2117
2118 /*-- vec_mergeh -------------------------------------------------------------*/
2119
2120 static inline __ATTRS_o_ai __vector signed char
vec_mergeh(__vector signed char __a,__vector signed char __b)2121 vec_mergeh(__vector signed char __a, __vector signed char __b) {
2122 return (__vector signed char)(
2123 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2124 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2125 }
2126
2127 static inline __ATTRS_o_ai __vector __bool char
vec_mergeh(__vector __bool char __a,__vector __bool char __b)2128 vec_mergeh(__vector __bool char __a, __vector __bool char __b) {
2129 return (__vector __bool char)(
2130 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2131 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2132 }
2133
2134 static inline __ATTRS_o_ai __vector unsigned char
vec_mergeh(__vector unsigned char __a,__vector unsigned char __b)2135 vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {
2136 return (__vector unsigned char)(
2137 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
2138 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2139 }
2140
2141 static inline __ATTRS_o_ai __vector signed short
vec_mergeh(__vector signed short __a,__vector signed short __b)2142 vec_mergeh(__vector signed short __a, __vector signed short __b) {
2143 return (__vector signed short)(
2144 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2145 }
2146
2147 static inline __ATTRS_o_ai __vector __bool short
vec_mergeh(__vector __bool short __a,__vector __bool short __b)2148 vec_mergeh(__vector __bool short __a, __vector __bool short __b) {
2149 return (__vector __bool short)(
2150 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2151 }
2152
2153 static inline __ATTRS_o_ai __vector unsigned short
vec_mergeh(__vector unsigned short __a,__vector unsigned short __b)2154 vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {
2155 return (__vector unsigned short)(
2156 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
2157 }
2158
2159 static inline __ATTRS_o_ai __vector signed int
vec_mergeh(__vector signed int __a,__vector signed int __b)2160 vec_mergeh(__vector signed int __a, __vector signed int __b) {
2161 return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);
2162 }
2163
2164 static inline __ATTRS_o_ai __vector __bool int
vec_mergeh(__vector __bool int __a,__vector __bool int __b)2165 vec_mergeh(__vector __bool int __a, __vector __bool int __b) {
2166 return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);
2167 }
2168
2169 static inline __ATTRS_o_ai __vector unsigned int
vec_mergeh(__vector unsigned int __a,__vector unsigned int __b)2170 vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {
2171 return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
2172 }
2173
2174 static inline __ATTRS_o_ai __vector signed long long
vec_mergeh(__vector signed long long __a,__vector signed long long __b)2175 vec_mergeh(__vector signed long long __a, __vector signed long long __b) {
2176 return (__vector signed long long)(__a[0], __b[0]);
2177 }
2178
2179 static inline __ATTRS_o_ai __vector __bool long long
vec_mergeh(__vector __bool long long __a,__vector __bool long long __b)2180 vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {
2181 return (__vector __bool long long)(__a[0], __b[0]);
2182 }
2183
2184 static inline __ATTRS_o_ai __vector unsigned long long
vec_mergeh(__vector unsigned long long __a,__vector unsigned long long __b)2185 vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {
2186 return (__vector unsigned long long)(__a[0], __b[0]);
2187 }
2188
2189 #if __ARCH__ >= 12
2190 static inline __ATTRS_o_ai __vector float
vec_mergeh(__vector float __a,__vector float __b)2191 vec_mergeh(__vector float __a, __vector float __b) {
2192 return (__vector float)(__a[0], __b[0], __a[1], __b[1]);
2193 }
2194 #endif
2195
2196 static inline __ATTRS_o_ai __vector double
vec_mergeh(__vector double __a,__vector double __b)2197 vec_mergeh(__vector double __a, __vector double __b) {
2198 return (__vector double)(__a[0], __b[0]);
2199 }
2200
2201 /*-- vec_mergel -------------------------------------------------------------*/
2202
2203 static inline __ATTRS_o_ai __vector signed char
vec_mergel(__vector signed char __a,__vector signed char __b)2204 vec_mergel(__vector signed char __a, __vector signed char __b) {
2205 return (__vector signed char)(
2206 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2207 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2208 }
2209
2210 static inline __ATTRS_o_ai __vector __bool char
vec_mergel(__vector __bool char __a,__vector __bool char __b)2211 vec_mergel(__vector __bool char __a, __vector __bool char __b) {
2212 return (__vector __bool char)(
2213 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2214 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2215 }
2216
2217 static inline __ATTRS_o_ai __vector unsigned char
vec_mergel(__vector unsigned char __a,__vector unsigned char __b)2218 vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {
2219 return (__vector unsigned char)(
2220 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
2221 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
2222 }
2223
2224 static inline __ATTRS_o_ai __vector signed short
vec_mergel(__vector signed short __a,__vector signed short __b)2225 vec_mergel(__vector signed short __a, __vector signed short __b) {
2226 return (__vector signed short)(
2227 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2228 }
2229
2230 static inline __ATTRS_o_ai __vector __bool short
vec_mergel(__vector __bool short __a,__vector __bool short __b)2231 vec_mergel(__vector __bool short __a, __vector __bool short __b) {
2232 return (__vector __bool short)(
2233 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2234 }
2235
2236 static inline __ATTRS_o_ai __vector unsigned short
vec_mergel(__vector unsigned short __a,__vector unsigned short __b)2237 vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {
2238 return (__vector unsigned short)(
2239 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
2240 }
2241
2242 static inline __ATTRS_o_ai __vector signed int
vec_mergel(__vector signed int __a,__vector signed int __b)2243 vec_mergel(__vector signed int __a, __vector signed int __b) {
2244 return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);
2245 }
2246
2247 static inline __ATTRS_o_ai __vector __bool int
vec_mergel(__vector __bool int __a,__vector __bool int __b)2248 vec_mergel(__vector __bool int __a, __vector __bool int __b) {
2249 return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);
2250 }
2251
2252 static inline __ATTRS_o_ai __vector unsigned int
vec_mergel(__vector unsigned int __a,__vector unsigned int __b)2253 vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {
2254 return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
2255 }
2256
2257 static inline __ATTRS_o_ai __vector signed long long
vec_mergel(__vector signed long long __a,__vector signed long long __b)2258 vec_mergel(__vector signed long long __a, __vector signed long long __b) {
2259 return (__vector signed long long)(__a[1], __b[1]);
2260 }
2261
2262 static inline __ATTRS_o_ai __vector __bool long long
vec_mergel(__vector __bool long long __a,__vector __bool long long __b)2263 vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {
2264 return (__vector __bool long long)(__a[1], __b[1]);
2265 }
2266
2267 static inline __ATTRS_o_ai __vector unsigned long long
vec_mergel(__vector unsigned long long __a,__vector unsigned long long __b)2268 vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {
2269 return (__vector unsigned long long)(__a[1], __b[1]);
2270 }
2271
2272 #if __ARCH__ >= 12
2273 static inline __ATTRS_o_ai __vector float
vec_mergel(__vector float __a,__vector float __b)2274 vec_mergel(__vector float __a, __vector float __b) {
2275 return (__vector float)(__a[2], __b[2], __a[3], __b[3]);
2276 }
2277 #endif
2278
2279 static inline __ATTRS_o_ai __vector double
vec_mergel(__vector double __a,__vector double __b)2280 vec_mergel(__vector double __a, __vector double __b) {
2281 return (__vector double)(__a[1], __b[1]);
2282 }
2283
2284 /*-- vec_pack ---------------------------------------------------------------*/
2285
2286 static inline __ATTRS_o_ai __vector signed char
vec_pack(__vector signed short __a,__vector signed short __b)2287 vec_pack(__vector signed short __a, __vector signed short __b) {
2288 __vector signed char __ac = (__vector signed char)__a;
2289 __vector signed char __bc = (__vector signed char)__b;
2290 return (__vector signed char)(
2291 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2292 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2293 }
2294
2295 static inline __ATTRS_o_ai __vector __bool char
vec_pack(__vector __bool short __a,__vector __bool short __b)2296 vec_pack(__vector __bool short __a, __vector __bool short __b) {
2297 __vector __bool char __ac = (__vector __bool char)__a;
2298 __vector __bool char __bc = (__vector __bool char)__b;
2299 return (__vector __bool char)(
2300 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2301 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2302 }
2303
2304 static inline __ATTRS_o_ai __vector unsigned char
vec_pack(__vector unsigned short __a,__vector unsigned short __b)2305 vec_pack(__vector unsigned short __a, __vector unsigned short __b) {
2306 __vector unsigned char __ac = (__vector unsigned char)__a;
2307 __vector unsigned char __bc = (__vector unsigned char)__b;
2308 return (__vector unsigned char)(
2309 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
2310 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
2311 }
2312
2313 static inline __ATTRS_o_ai __vector signed short
vec_pack(__vector signed int __a,__vector signed int __b)2314 vec_pack(__vector signed int __a, __vector signed int __b) {
2315 __vector signed short __ac = (__vector signed short)__a;
2316 __vector signed short __bc = (__vector signed short)__b;
2317 return (__vector signed short)(
2318 __ac[1], __ac[3], __ac[5], __ac[7],
2319 __bc[1], __bc[3], __bc[5], __bc[7]);
2320 }
2321
2322 static inline __ATTRS_o_ai __vector __bool short
vec_pack(__vector __bool int __a,__vector __bool int __b)2323 vec_pack(__vector __bool int __a, __vector __bool int __b) {
2324 __vector __bool short __ac = (__vector __bool short)__a;
2325 __vector __bool short __bc = (__vector __bool short)__b;
2326 return (__vector __bool short)(
2327 __ac[1], __ac[3], __ac[5], __ac[7],
2328 __bc[1], __bc[3], __bc[5], __bc[7]);
2329 }
2330
2331 static inline __ATTRS_o_ai __vector unsigned short
vec_pack(__vector unsigned int __a,__vector unsigned int __b)2332 vec_pack(__vector unsigned int __a, __vector unsigned int __b) {
2333 __vector unsigned short __ac = (__vector unsigned short)__a;
2334 __vector unsigned short __bc = (__vector unsigned short)__b;
2335 return (__vector unsigned short)(
2336 __ac[1], __ac[3], __ac[5], __ac[7],
2337 __bc[1], __bc[3], __bc[5], __bc[7]);
2338 }
2339
2340 static inline __ATTRS_o_ai __vector signed int
vec_pack(__vector signed long long __a,__vector signed long long __b)2341 vec_pack(__vector signed long long __a, __vector signed long long __b) {
2342 __vector signed int __ac = (__vector signed int)__a;
2343 __vector signed int __bc = (__vector signed int)__b;
2344 return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2345 }
2346
2347 static inline __ATTRS_o_ai __vector __bool int
vec_pack(__vector __bool long long __a,__vector __bool long long __b)2348 vec_pack(__vector __bool long long __a, __vector __bool long long __b) {
2349 __vector __bool int __ac = (__vector __bool int)__a;
2350 __vector __bool int __bc = (__vector __bool int)__b;
2351 return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2352 }
2353
2354 static inline __ATTRS_o_ai __vector unsigned int
vec_pack(__vector unsigned long long __a,__vector unsigned long long __b)2355 vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {
2356 __vector unsigned int __ac = (__vector unsigned int)__a;
2357 __vector unsigned int __bc = (__vector unsigned int)__b;
2358 return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
2359 }
2360
2361 static inline __ATTRS_o_ai __vector signed long long
vec_pack(__vector signed __int128 __a,__vector signed __int128 __b)2362 vec_pack(__vector signed __int128 __a, __vector signed __int128 __b) {
2363 __vector signed long long __ac = (__vector signed long long)__a;
2364 __vector signed long long __bc = (__vector signed long long)__b;
2365 return (__vector signed long long)(__ac[1], __bc[1]);
2366 }
2367
2368 static inline __ATTRS_o_ai __vector __bool long long
vec_pack(__vector __bool __int128 __a,__vector __bool __int128 __b)2369 vec_pack(__vector __bool __int128 __a, __vector __bool __int128 __b) {
2370 __vector __bool long long __ac = (__vector __bool long long)__a;
2371 __vector __bool long long __bc = (__vector __bool long long)__b;
2372 return (__vector __bool long long)(__ac[1], __bc[1]);
2373 }
2374
2375 static inline __ATTRS_o_ai __vector unsigned long long
vec_pack(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2376 vec_pack(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2377 __vector unsigned long long __ac = (__vector unsigned long long)__a;
2378 __vector unsigned long long __bc = (__vector unsigned long long)__b;
2379 return (__vector unsigned long long)(__ac[1], __bc[1]);
2380 }
2381
2382 /*-- vec_packs --------------------------------------------------------------*/
2383
2384 static inline __ATTRS_o_ai __vector signed char
vec_packs(__vector signed short __a,__vector signed short __b)2385 vec_packs(__vector signed short __a, __vector signed short __b) {
2386 return __builtin_s390_vpksh(__a, __b);
2387 }
2388
2389 static inline __ATTRS_o_ai __vector unsigned char
vec_packs(__vector unsigned short __a,__vector unsigned short __b)2390 vec_packs(__vector unsigned short __a, __vector unsigned short __b) {
2391 return __builtin_s390_vpklsh(__a, __b);
2392 }
2393
2394 static inline __ATTRS_o_ai __vector signed short
vec_packs(__vector signed int __a,__vector signed int __b)2395 vec_packs(__vector signed int __a, __vector signed int __b) {
2396 return __builtin_s390_vpksf(__a, __b);
2397 }
2398
2399 static inline __ATTRS_o_ai __vector unsigned short
vec_packs(__vector unsigned int __a,__vector unsigned int __b)2400 vec_packs(__vector unsigned int __a, __vector unsigned int __b) {
2401 return __builtin_s390_vpklsf(__a, __b);
2402 }
2403
2404 static inline __ATTRS_o_ai __vector signed int
vec_packs(__vector signed long long __a,__vector signed long long __b)2405 vec_packs(__vector signed long long __a, __vector signed long long __b) {
2406 return __builtin_s390_vpksg(__a, __b);
2407 }
2408
2409 static inline __ATTRS_o_ai __vector unsigned int
vec_packs(__vector unsigned long long __a,__vector unsigned long long __b)2410 vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {
2411 return __builtin_s390_vpklsg(__a, __b);
2412 }
2413
2414 /*-- vec_packs_cc -----------------------------------------------------------*/
2415
2416 static inline __ATTRS_o_ai __vector signed char
vec_packs_cc(__vector signed short __a,__vector signed short __b,int * __cc)2417 vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {
2418 return __builtin_s390_vpkshs(__a, __b, __cc);
2419 }
2420
2421 static inline __ATTRS_o_ai __vector unsigned char
vec_packs_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2422 vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,
2423 int *__cc) {
2424 return __builtin_s390_vpklshs(__a, __b, __cc);
2425 }
2426
2427 static inline __ATTRS_o_ai __vector signed short
vec_packs_cc(__vector signed int __a,__vector signed int __b,int * __cc)2428 vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
2429 return __builtin_s390_vpksfs(__a, __b, __cc);
2430 }
2431
2432 static inline __ATTRS_o_ai __vector unsigned short
vec_packs_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2433 vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2434 return __builtin_s390_vpklsfs(__a, __b, __cc);
2435 }
2436
2437 static inline __ATTRS_o_ai __vector signed int
vec_packs_cc(__vector signed long long __a,__vector signed long long __b,int * __cc)2438 vec_packs_cc(__vector signed long long __a, __vector signed long long __b,
2439 int *__cc) {
2440 return __builtin_s390_vpksgs(__a, __b, __cc);
2441 }
2442
2443 static inline __ATTRS_o_ai __vector unsigned int
vec_packs_cc(__vector unsigned long long __a,__vector unsigned long long __b,int * __cc)2444 vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2445 int *__cc) {
2446 return __builtin_s390_vpklsgs(__a, __b, __cc);
2447 }
2448
2449 /*-- vec_packsu -------------------------------------------------------------*/
2450
2451 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector signed short __a,__vector signed short __b)2452 vec_packsu(__vector signed short __a, __vector signed short __b) {
2453 const __vector signed short __zero = (__vector signed short)0;
2454 return __builtin_s390_vpklsh(
2455 (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,
2456 (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);
2457 }
2458
2459 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu(__vector unsigned short __a,__vector unsigned short __b)2460 vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {
2461 return __builtin_s390_vpklsh(__a, __b);
2462 }
2463
2464 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector signed int __a,__vector signed int __b)2465 vec_packsu(__vector signed int __a, __vector signed int __b) {
2466 const __vector signed int __zero = (__vector signed int)0;
2467 return __builtin_s390_vpklsf(
2468 (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,
2469 (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);
2470 }
2471
2472 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu(__vector unsigned int __a,__vector unsigned int __b)2473 vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {
2474 return __builtin_s390_vpklsf(__a, __b);
2475 }
2476
2477 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector signed long long __a,__vector signed long long __b)2478 vec_packsu(__vector signed long long __a, __vector signed long long __b) {
2479 const __vector signed long long __zero = (__vector signed long long)0;
2480 return __builtin_s390_vpklsg(
2481 (__vector unsigned long long)(__a >= __zero) &
2482 (__vector unsigned long long)__a,
2483 (__vector unsigned long long)(__b >= __zero) &
2484 (__vector unsigned long long)__b);
2485 }
2486
2487 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu(__vector unsigned long long __a,__vector unsigned long long __b)2488 vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {
2489 return __builtin_s390_vpklsg(__a, __b);
2490 }
2491
2492 /*-- vec_packsu_cc ----------------------------------------------------------*/
2493
2494 static inline __ATTRS_o_ai __vector unsigned char
vec_packsu_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)2495 vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,
2496 int *__cc) {
2497 return __builtin_s390_vpklshs(__a, __b, __cc);
2498 }
2499
2500 static inline __ATTRS_o_ai __vector unsigned short
vec_packsu_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)2501 vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {
2502 return __builtin_s390_vpklsfs(__a, __b, __cc);
2503 }
2504
2505 static inline __ATTRS_o_ai __vector unsigned int
vec_packsu_cc(__vector unsigned long long __a,__vector unsigned long long __b,int * __cc)2506 vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,
2507 int *__cc) {
2508 return __builtin_s390_vpklsgs(__a, __b, __cc);
2509 }
2510
2511 /*-- vec_unpackh ------------------------------------------------------------*/
2512
2513 static inline __ATTRS_o_ai __vector signed short
vec_unpackh(__vector signed char __a)2514 vec_unpackh(__vector signed char __a) {
2515 return __builtin_s390_vuphb(__a);
2516 }
2517
2518 static inline __ATTRS_o_ai __vector __bool short
vec_unpackh(__vector __bool char __a)2519 vec_unpackh(__vector __bool char __a) {
2520 return ((__vector __bool short)
2521 __builtin_s390_vuphb((__vector signed char)__a));
2522 }
2523
2524 static inline __ATTRS_o_ai __vector unsigned short
vec_unpackh(__vector unsigned char __a)2525 vec_unpackh(__vector unsigned char __a) {
2526 return __builtin_s390_vuplhb(__a);
2527 }
2528
2529 static inline __ATTRS_o_ai __vector signed int
vec_unpackh(__vector signed short __a)2530 vec_unpackh(__vector signed short __a) {
2531 return __builtin_s390_vuphh(__a);
2532 }
2533
2534 static inline __ATTRS_o_ai __vector __bool int
vec_unpackh(__vector __bool short __a)2535 vec_unpackh(__vector __bool short __a) {
2536 return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);
2537 }
2538
2539 static inline __ATTRS_o_ai __vector unsigned int
vec_unpackh(__vector unsigned short __a)2540 vec_unpackh(__vector unsigned short __a) {
2541 return __builtin_s390_vuplhh(__a);
2542 }
2543
2544 static inline __ATTRS_o_ai __vector signed long long
vec_unpackh(__vector signed int __a)2545 vec_unpackh(__vector signed int __a) {
2546 return __builtin_s390_vuphf(__a);
2547 }
2548
2549 static inline __ATTRS_o_ai __vector __bool long long
vec_unpackh(__vector __bool int __a)2550 vec_unpackh(__vector __bool int __a) {
2551 return ((__vector __bool long long)
2552 __builtin_s390_vuphf((__vector signed int)__a));
2553 }
2554
2555 static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackh(__vector unsigned int __a)2556 vec_unpackh(__vector unsigned int __a) {
2557 return __builtin_s390_vuplhf(__a);
2558 }
2559
2560 #if __ARCH__ >= 15
2561 static inline __ATTRS_o_ai __vector signed __int128
vec_unpackh(__vector signed long long __a)2562 vec_unpackh(__vector signed long long __a) {
2563 return (__vector signed __int128)__builtin_s390_vuphg(__a);
2564 }
2565
2566 static inline __ATTRS_o_ai __vector __bool __int128
vec_unpackh(__vector __bool long long __a)2567 vec_unpackh(__vector __bool long long __a) {
2568 return ((__vector __bool __int128)
2569 __builtin_s390_vuphg((__vector signed long long)__a));
2570 }
2571
2572 static inline __ATTRS_o_ai __vector unsigned __int128
vec_unpackh(__vector unsigned long long __a)2573 vec_unpackh(__vector unsigned long long __a) {
2574 return (__vector unsigned __int128)__builtin_s390_vuplhg(__a);
2575 }
2576 #endif
2577
2578 /*-- vec_unpackl ------------------------------------------------------------*/
2579
2580 static inline __ATTRS_o_ai __vector signed short
vec_unpackl(__vector signed char __a)2581 vec_unpackl(__vector signed char __a) {
2582 return __builtin_s390_vuplb(__a);
2583 }
2584
2585 static inline __ATTRS_o_ai __vector __bool short
vec_unpackl(__vector __bool char __a)2586 vec_unpackl(__vector __bool char __a) {
2587 return ((__vector __bool short)
2588 __builtin_s390_vuplb((__vector signed char)__a));
2589 }
2590
2591 static inline __ATTRS_o_ai __vector unsigned short
vec_unpackl(__vector unsigned char __a)2592 vec_unpackl(__vector unsigned char __a) {
2593 return __builtin_s390_vupllb(__a);
2594 }
2595
2596 static inline __ATTRS_o_ai __vector signed int
vec_unpackl(__vector signed short __a)2597 vec_unpackl(__vector signed short __a) {
2598 return __builtin_s390_vuplhw(__a);
2599 }
2600
2601 static inline __ATTRS_o_ai __vector __bool int
vec_unpackl(__vector __bool short __a)2602 vec_unpackl(__vector __bool short __a) {
2603 return ((__vector __bool int)
2604 __builtin_s390_vuplhw((__vector signed short)__a));
2605 }
2606
2607 static inline __ATTRS_o_ai __vector unsigned int
vec_unpackl(__vector unsigned short __a)2608 vec_unpackl(__vector unsigned short __a) {
2609 return __builtin_s390_vupllh(__a);
2610 }
2611
2612 static inline __ATTRS_o_ai __vector signed long long
vec_unpackl(__vector signed int __a)2613 vec_unpackl(__vector signed int __a) {
2614 return __builtin_s390_vuplf(__a);
2615 }
2616
2617 static inline __ATTRS_o_ai __vector __bool long long
vec_unpackl(__vector __bool int __a)2618 vec_unpackl(__vector __bool int __a) {
2619 return ((__vector __bool long long)
2620 __builtin_s390_vuplf((__vector signed int)__a));
2621 }
2622
2623 static inline __ATTRS_o_ai __vector unsigned long long
vec_unpackl(__vector unsigned int __a)2624 vec_unpackl(__vector unsigned int __a) {
2625 return __builtin_s390_vupllf(__a);
2626 }
2627
2628 #if __ARCH__ >= 15
2629 static inline __ATTRS_o_ai __vector signed __int128
vec_unpackl(__vector signed long long __a)2630 vec_unpackl(__vector signed long long __a) {
2631 return (__vector signed __int128)__builtin_s390_vuplg(__a);
2632 }
2633
2634 static inline __ATTRS_o_ai __vector __bool __int128
vec_unpackl(__vector __bool long long __a)2635 vec_unpackl(__vector __bool long long __a) {
2636 return ((__vector __bool __int128)
2637 __builtin_s390_vuplg((__vector signed long long)__a));
2638 }
2639
2640 static inline __ATTRS_o_ai __vector unsigned __int128
vec_unpackl(__vector unsigned long long __a)2641 vec_unpackl(__vector unsigned long long __a) {
2642 return (__vector unsigned __int128)__builtin_s390_vupllg(__a);
2643 }
2644 #endif
2645
2646 /*-- vec_cmpeq --------------------------------------------------------------*/
2647
2648 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector __bool char __a,__vector __bool char __b)2649 vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {
2650 return (__vector __bool char)(__a == __b);
2651 }
2652
2653 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector signed char __a,__vector signed char __b)2654 vec_cmpeq(__vector signed char __a, __vector signed char __b) {
2655 return (__vector __bool char)(__a == __b);
2656 }
2657
2658 static inline __ATTRS_o_ai __vector __bool char
vec_cmpeq(__vector unsigned char __a,__vector unsigned char __b)2659 vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {
2660 return (__vector __bool char)(__a == __b);
2661 }
2662
2663 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector __bool short __a,__vector __bool short __b)2664 vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {
2665 return (__vector __bool short)(__a == __b);
2666 }
2667
2668 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector signed short __a,__vector signed short __b)2669 vec_cmpeq(__vector signed short __a, __vector signed short __b) {
2670 return (__vector __bool short)(__a == __b);
2671 }
2672
2673 static inline __ATTRS_o_ai __vector __bool short
vec_cmpeq(__vector unsigned short __a,__vector unsigned short __b)2674 vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {
2675 return (__vector __bool short)(__a == __b);
2676 }
2677
2678 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector __bool int __a,__vector __bool int __b)2679 vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {
2680 return (__vector __bool int)(__a == __b);
2681 }
2682
2683 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector signed int __a,__vector signed int __b)2684 vec_cmpeq(__vector signed int __a, __vector signed int __b) {
2685 return (__vector __bool int)(__a == __b);
2686 }
2687
2688 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector unsigned int __a,__vector unsigned int __b)2689 vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {
2690 return (__vector __bool int)(__a == __b);
2691 }
2692
2693 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector __bool long long __a,__vector __bool long long __b)2694 vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {
2695 return (__vector __bool long long)(__a == __b);
2696 }
2697
2698 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector signed long long __a,__vector signed long long __b)2699 vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {
2700 return (__vector __bool long long)(__a == __b);
2701 }
2702
2703 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector unsigned long long __a,__vector unsigned long long __b)2704 vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {
2705 return (__vector __bool long long)(__a == __b);
2706 }
2707
2708 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpeq(__vector __bool __int128 __a,__vector __bool __int128 __b)2709 vec_cmpeq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
2710 return (__vector __bool __int128)(__a == __b);
2711 }
2712
2713 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpeq(__vector signed __int128 __a,__vector signed __int128 __b)2714 vec_cmpeq(__vector signed __int128 __a, __vector signed __int128 __b) {
2715 return (__vector __bool __int128)(__a == __b);
2716 }
2717
2718 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpeq(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2719 vec_cmpeq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2720 return (__vector __bool __int128)(__a == __b);
2721 }
2722
2723 #if __ARCH__ >= 12
2724 static inline __ATTRS_o_ai __vector __bool int
vec_cmpeq(__vector float __a,__vector float __b)2725 vec_cmpeq(__vector float __a, __vector float __b) {
2726 return (__vector __bool int)(__a == __b);
2727 }
2728 #endif
2729
2730 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpeq(__vector double __a,__vector double __b)2731 vec_cmpeq(__vector double __a, __vector double __b) {
2732 return (__vector __bool long long)(__a == __b);
2733 }
2734
2735 /*-- vec_cmpge --------------------------------------------------------------*/
2736
2737 static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector signed char __a,__vector signed char __b)2738 vec_cmpge(__vector signed char __a, __vector signed char __b) {
2739 return (__vector __bool char)(__a >= __b);
2740 }
2741
2742 static inline __ATTRS_o_ai __vector __bool char
vec_cmpge(__vector unsigned char __a,__vector unsigned char __b)2743 vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {
2744 return (__vector __bool char)(__a >= __b);
2745 }
2746
2747 static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector signed short __a,__vector signed short __b)2748 vec_cmpge(__vector signed short __a, __vector signed short __b) {
2749 return (__vector __bool short)(__a >= __b);
2750 }
2751
2752 static inline __ATTRS_o_ai __vector __bool short
vec_cmpge(__vector unsigned short __a,__vector unsigned short __b)2753 vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {
2754 return (__vector __bool short)(__a >= __b);
2755 }
2756
2757 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector signed int __a,__vector signed int __b)2758 vec_cmpge(__vector signed int __a, __vector signed int __b) {
2759 return (__vector __bool int)(__a >= __b);
2760 }
2761
2762 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector unsigned int __a,__vector unsigned int __b)2763 vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {
2764 return (__vector __bool int)(__a >= __b);
2765 }
2766
2767 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector signed long long __a,__vector signed long long __b)2768 vec_cmpge(__vector signed long long __a, __vector signed long long __b) {
2769 return (__vector __bool long long)(__a >= __b);
2770 }
2771
2772 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector unsigned long long __a,__vector unsigned long long __b)2773 vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {
2774 return (__vector __bool long long)(__a >= __b);
2775 }
2776
2777 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpge(__vector signed __int128 __a,__vector signed __int128 __b)2778 vec_cmpge(__vector signed __int128 __a, __vector signed __int128 __b) {
2779 return (__vector __bool __int128)(__a >= __b);
2780 }
2781
2782 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpge(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2783 vec_cmpge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2784 return (__vector __bool __int128)(__a >= __b);
2785 }
2786
2787 #if __ARCH__ >= 12
2788 static inline __ATTRS_o_ai __vector __bool int
vec_cmpge(__vector float __a,__vector float __b)2789 vec_cmpge(__vector float __a, __vector float __b) {
2790 return (__vector __bool int)(__a >= __b);
2791 }
2792 #endif
2793
2794 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpge(__vector double __a,__vector double __b)2795 vec_cmpge(__vector double __a, __vector double __b) {
2796 return (__vector __bool long long)(__a >= __b);
2797 }
2798
2799 /*-- vec_cmpgt --------------------------------------------------------------*/
2800
2801 static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector signed char __a,__vector signed char __b)2802 vec_cmpgt(__vector signed char __a, __vector signed char __b) {
2803 return (__vector __bool char)(__a > __b);
2804 }
2805
2806 static inline __ATTRS_o_ai __vector __bool char
vec_cmpgt(__vector unsigned char __a,__vector unsigned char __b)2807 vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {
2808 return (__vector __bool char)(__a > __b);
2809 }
2810
2811 static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector signed short __a,__vector signed short __b)2812 vec_cmpgt(__vector signed short __a, __vector signed short __b) {
2813 return (__vector __bool short)(__a > __b);
2814 }
2815
2816 static inline __ATTRS_o_ai __vector __bool short
vec_cmpgt(__vector unsigned short __a,__vector unsigned short __b)2817 vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {
2818 return (__vector __bool short)(__a > __b);
2819 }
2820
2821 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector signed int __a,__vector signed int __b)2822 vec_cmpgt(__vector signed int __a, __vector signed int __b) {
2823 return (__vector __bool int)(__a > __b);
2824 }
2825
2826 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector unsigned int __a,__vector unsigned int __b)2827 vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {
2828 return (__vector __bool int)(__a > __b);
2829 }
2830
2831 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector signed long long __a,__vector signed long long __b)2832 vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {
2833 return (__vector __bool long long)(__a > __b);
2834 }
2835
2836 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector unsigned long long __a,__vector unsigned long long __b)2837 vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {
2838 return (__vector __bool long long)(__a > __b);
2839 }
2840
2841 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpgt(__vector signed __int128 __a,__vector signed __int128 __b)2842 vec_cmpgt(__vector signed __int128 __a, __vector signed __int128 __b) {
2843 return (__vector __bool __int128)(__a > __b);
2844 }
2845
2846 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmpgt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2847 vec_cmpgt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2848 return (__vector __bool __int128)(__a > __b);
2849 }
2850
2851 #if __ARCH__ >= 12
2852 static inline __ATTRS_o_ai __vector __bool int
vec_cmpgt(__vector float __a,__vector float __b)2853 vec_cmpgt(__vector float __a, __vector float __b) {
2854 return (__vector __bool int)(__a > __b);
2855 }
2856 #endif
2857
2858 static inline __ATTRS_o_ai __vector __bool long long
vec_cmpgt(__vector double __a,__vector double __b)2859 vec_cmpgt(__vector double __a, __vector double __b) {
2860 return (__vector __bool long long)(__a > __b);
2861 }
2862
2863 /*-- vec_cmple --------------------------------------------------------------*/
2864
2865 static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector signed char __a,__vector signed char __b)2866 vec_cmple(__vector signed char __a, __vector signed char __b) {
2867 return (__vector __bool char)(__a <= __b);
2868 }
2869
2870 static inline __ATTRS_o_ai __vector __bool char
vec_cmple(__vector unsigned char __a,__vector unsigned char __b)2871 vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {
2872 return (__vector __bool char)(__a <= __b);
2873 }
2874
2875 static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector signed short __a,__vector signed short __b)2876 vec_cmple(__vector signed short __a, __vector signed short __b) {
2877 return (__vector __bool short)(__a <= __b);
2878 }
2879
2880 static inline __ATTRS_o_ai __vector __bool short
vec_cmple(__vector unsigned short __a,__vector unsigned short __b)2881 vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {
2882 return (__vector __bool short)(__a <= __b);
2883 }
2884
2885 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector signed int __a,__vector signed int __b)2886 vec_cmple(__vector signed int __a, __vector signed int __b) {
2887 return (__vector __bool int)(__a <= __b);
2888 }
2889
2890 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector unsigned int __a,__vector unsigned int __b)2891 vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {
2892 return (__vector __bool int)(__a <= __b);
2893 }
2894
2895 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector signed long long __a,__vector signed long long __b)2896 vec_cmple(__vector signed long long __a, __vector signed long long __b) {
2897 return (__vector __bool long long)(__a <= __b);
2898 }
2899
2900 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector unsigned long long __a,__vector unsigned long long __b)2901 vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {
2902 return (__vector __bool long long)(__a <= __b);
2903 }
2904
2905 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmple(__vector signed __int128 __a,__vector signed __int128 __b)2906 vec_cmple(__vector signed __int128 __a, __vector signed __int128 __b) {
2907 return (__vector __bool __int128)(__a <= __b);
2908 }
2909
2910 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmple(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2911 vec_cmple(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2912 return (__vector __bool __int128)(__a <= __b);
2913 }
2914
2915 #if __ARCH__ >= 12
2916 static inline __ATTRS_o_ai __vector __bool int
vec_cmple(__vector float __a,__vector float __b)2917 vec_cmple(__vector float __a, __vector float __b) {
2918 return (__vector __bool int)(__a <= __b);
2919 }
2920 #endif
2921
2922 static inline __ATTRS_o_ai __vector __bool long long
vec_cmple(__vector double __a,__vector double __b)2923 vec_cmple(__vector double __a, __vector double __b) {
2924 return (__vector __bool long long)(__a <= __b);
2925 }
2926
2927 /*-- vec_cmplt --------------------------------------------------------------*/
2928
2929 static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector signed char __a,__vector signed char __b)2930 vec_cmplt(__vector signed char __a, __vector signed char __b) {
2931 return (__vector __bool char)(__a < __b);
2932 }
2933
2934 static inline __ATTRS_o_ai __vector __bool char
vec_cmplt(__vector unsigned char __a,__vector unsigned char __b)2935 vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {
2936 return (__vector __bool char)(__a < __b);
2937 }
2938
2939 static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector signed short __a,__vector signed short __b)2940 vec_cmplt(__vector signed short __a, __vector signed short __b) {
2941 return (__vector __bool short)(__a < __b);
2942 }
2943
2944 static inline __ATTRS_o_ai __vector __bool short
vec_cmplt(__vector unsigned short __a,__vector unsigned short __b)2945 vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {
2946 return (__vector __bool short)(__a < __b);
2947 }
2948
2949 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector signed int __a,__vector signed int __b)2950 vec_cmplt(__vector signed int __a, __vector signed int __b) {
2951 return (__vector __bool int)(__a < __b);
2952 }
2953
2954 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector unsigned int __a,__vector unsigned int __b)2955 vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {
2956 return (__vector __bool int)(__a < __b);
2957 }
2958
2959 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector signed long long __a,__vector signed long long __b)2960 vec_cmplt(__vector signed long long __a, __vector signed long long __b) {
2961 return (__vector __bool long long)(__a < __b);
2962 }
2963
2964 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector unsigned long long __a,__vector unsigned long long __b)2965 vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {
2966 return (__vector __bool long long)(__a < __b);
2967 }
2968
2969 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmplt(__vector signed __int128 __a,__vector signed __int128 __b)2970 vec_cmplt(__vector signed __int128 __a, __vector signed __int128 __b) {
2971 return (__vector __bool __int128)(__a < __b);
2972 }
2973
2974 static inline __ATTRS_o_ai __vector __bool __int128
vec_cmplt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)2975 vec_cmplt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
2976 return (__vector __bool __int128)(__a < __b);
2977 }
2978
2979 #if __ARCH__ >= 12
2980 static inline __ATTRS_o_ai __vector __bool int
vec_cmplt(__vector float __a,__vector float __b)2981 vec_cmplt(__vector float __a, __vector float __b) {
2982 return (__vector __bool int)(__a < __b);
2983 }
2984 #endif
2985
2986 static inline __ATTRS_o_ai __vector __bool long long
vec_cmplt(__vector double __a,__vector double __b)2987 vec_cmplt(__vector double __a, __vector double __b) {
2988 return (__vector __bool long long)(__a < __b);
2989 }
2990
2991 /*-- vec_all_eq -------------------------------------------------------------*/
2992
2993 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector signed char __b)2994 vec_all_eq(__vector signed char __a, __vector signed char __b) {
2995 int __cc;
2996 __builtin_s390_vceqbs((__vector unsigned char)__a,
2997 (__vector unsigned char)__b, &__cc);
2998 return __cc == 0;
2999 }
3000
3001 // This prototype is deprecated.
3002 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed char __a,__vector __bool char __b)3003 vec_all_eq(__vector signed char __a, __vector __bool char __b) {
3004 int __cc;
3005 __builtin_s390_vceqbs((__vector unsigned char)__a,
3006 (__vector unsigned char)__b, &__cc);
3007 return __cc == 0;
3008 }
3009
3010 // This prototype is deprecated.
3011 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector signed char __b)3012 vec_all_eq(__vector __bool char __a, __vector signed char __b) {
3013 int __cc;
3014 __builtin_s390_vceqbs((__vector unsigned char)__a,
3015 (__vector unsigned char)__b, &__cc);
3016 return __cc == 0;
3017 }
3018
3019 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector unsigned char __b)3020 vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {
3021 int __cc;
3022 __builtin_s390_vceqbs(__a, __b, &__cc);
3023 return __cc == 0;
3024 }
3025
3026 // This prototype is deprecated.
3027 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned char __a,__vector __bool char __b)3028 vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {
3029 int __cc;
3030 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
3031 return __cc == 0;
3032 }
3033
3034 // This prototype is deprecated.
3035 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector unsigned char __b)3036 vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {
3037 int __cc;
3038 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
3039 return __cc == 0;
3040 }
3041
3042 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool char __a,__vector __bool char __b)3043 vec_all_eq(__vector __bool char __a, __vector __bool char __b) {
3044 int __cc;
3045 __builtin_s390_vceqbs((__vector unsigned char)__a,
3046 (__vector unsigned char)__b, &__cc);
3047 return __cc == 0;
3048 }
3049
3050 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector signed short __b)3051 vec_all_eq(__vector signed short __a, __vector signed short __b) {
3052 int __cc;
3053 __builtin_s390_vceqhs((__vector unsigned short)__a,
3054 (__vector unsigned short)__b, &__cc);
3055 return __cc == 0;
3056 }
3057
3058 // This prototype is deprecated.
3059 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed short __a,__vector __bool short __b)3060 vec_all_eq(__vector signed short __a, __vector __bool short __b) {
3061 int __cc;
3062 __builtin_s390_vceqhs((__vector unsigned short)__a,
3063 (__vector unsigned short)__b, &__cc);
3064 return __cc == 0;
3065 }
3066
3067 // This prototype is deprecated.
3068 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector signed short __b)3069 vec_all_eq(__vector __bool short __a, __vector signed short __b) {
3070 int __cc;
3071 __builtin_s390_vceqhs((__vector unsigned short)__a,
3072 (__vector unsigned short)__b, &__cc);
3073 return __cc == 0;
3074 }
3075
3076 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector unsigned short __b)3077 vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {
3078 int __cc;
3079 __builtin_s390_vceqhs(__a, __b, &__cc);
3080 return __cc == 0;
3081 }
3082
3083 // This prototype is deprecated.
3084 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned short __a,__vector __bool short __b)3085 vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {
3086 int __cc;
3087 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3088 return __cc == 0;
3089 }
3090
3091 // This prototype is deprecated.
3092 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector unsigned short __b)3093 vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {
3094 int __cc;
3095 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3096 return __cc == 0;
3097 }
3098
3099 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool short __a,__vector __bool short __b)3100 vec_all_eq(__vector __bool short __a, __vector __bool short __b) {
3101 int __cc;
3102 __builtin_s390_vceqhs((__vector unsigned short)__a,
3103 (__vector unsigned short)__b, &__cc);
3104 return __cc == 0;
3105 }
3106
3107 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector signed int __b)3108 vec_all_eq(__vector signed int __a, __vector signed int __b) {
3109 int __cc;
3110 __builtin_s390_vceqfs((__vector unsigned int)__a,
3111 (__vector unsigned int)__b, &__cc);
3112 return __cc == 0;
3113 }
3114
3115 // This prototype is deprecated.
3116 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed int __a,__vector __bool int __b)3117 vec_all_eq(__vector signed int __a, __vector __bool int __b) {
3118 int __cc;
3119 __builtin_s390_vceqfs((__vector unsigned int)__a,
3120 (__vector unsigned int)__b, &__cc);
3121 return __cc == 0;
3122 }
3123
3124 // This prototype is deprecated.
3125 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector signed int __b)3126 vec_all_eq(__vector __bool int __a, __vector signed int __b) {
3127 int __cc;
3128 __builtin_s390_vceqfs((__vector unsigned int)__a,
3129 (__vector unsigned int)__b, &__cc);
3130 return __cc == 0;
3131 }
3132
3133 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector unsigned int __b)3134 vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {
3135 int __cc;
3136 __builtin_s390_vceqfs(__a, __b, &__cc);
3137 return __cc == 0;
3138 }
3139
3140 // This prototype is deprecated.
3141 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned int __a,__vector __bool int __b)3142 vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {
3143 int __cc;
3144 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3145 return __cc == 0;
3146 }
3147
3148 // This prototype is deprecated.
3149 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector unsigned int __b)3150 vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {
3151 int __cc;
3152 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3153 return __cc == 0;
3154 }
3155
3156 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool int __a,__vector __bool int __b)3157 vec_all_eq(__vector __bool int __a, __vector __bool int __b) {
3158 int __cc;
3159 __builtin_s390_vceqfs((__vector unsigned int)__a,
3160 (__vector unsigned int)__b, &__cc);
3161 return __cc == 0;
3162 }
3163
3164 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector signed long long __b)3165 vec_all_eq(__vector signed long long __a, __vector signed long long __b) {
3166 int __cc;
3167 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3168 (__vector unsigned long long)__b, &__cc);
3169 return __cc == 0;
3170 }
3171
3172 // This prototype is deprecated.
3173 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed long long __a,__vector __bool long long __b)3174 vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {
3175 int __cc;
3176 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3177 (__vector unsigned long long)__b, &__cc);
3178 return __cc == 0;
3179 }
3180
3181 // This prototype is deprecated.
3182 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector signed long long __b)3183 vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {
3184 int __cc;
3185 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3186 (__vector unsigned long long)__b, &__cc);
3187 return __cc == 0;
3188 }
3189
3190 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector unsigned long long __b)3191 vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
3192 int __cc;
3193 __builtin_s390_vceqgs(__a, __b, &__cc);
3194 return __cc == 0;
3195 }
3196
3197 // This prototype is deprecated.
3198 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned long long __a,__vector __bool long long __b)3199 vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {
3200 int __cc;
3201 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3202 return __cc == 0;
3203 }
3204
3205 // This prototype is deprecated.
3206 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector unsigned long long __b)3207 vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {
3208 int __cc;
3209 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3210 return __cc == 0;
3211 }
3212
3213 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool long long __a,__vector __bool long long __b)3214 vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {
3215 int __cc;
3216 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3217 (__vector unsigned long long)__b, &__cc);
3218 return __cc == 0;
3219 }
3220
3221 #if __ARCH__ >= 15
3222 static inline __ATTRS_o_ai int
vec_all_eq(__vector signed __int128 __a,__vector signed __int128 __b)3223 vec_all_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
3224 int __cc;
3225 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3226 return __cc == 0;
3227 }
3228
3229 static inline __ATTRS_o_ai int
vec_all_eq(__vector unsigned __int128 __a,__vector unsigned __int128 __b)3230 vec_all_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3231 int __cc;
3232 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3233 return __cc == 0;
3234 }
3235
3236 static inline __ATTRS_o_ai int
vec_all_eq(__vector __bool __int128 __a,__vector __bool __int128 __b)3237 vec_all_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
3238 int __cc;
3239 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3240 return __cc == 0;
3241 }
3242 #endif
3243
3244 #if __ARCH__ >= 12
3245 static inline __ATTRS_o_ai int
vec_all_eq(__vector float __a,__vector float __b)3246 vec_all_eq(__vector float __a, __vector float __b) {
3247 int __cc;
3248 __builtin_s390_vfcesbs(__a, __b, &__cc);
3249 return __cc == 0;
3250 }
3251 #endif
3252
3253 static inline __ATTRS_o_ai int
vec_all_eq(__vector double __a,__vector double __b)3254 vec_all_eq(__vector double __a, __vector double __b) {
3255 int __cc;
3256 __builtin_s390_vfcedbs(__a, __b, &__cc);
3257 return __cc == 0;
3258 }
3259
3260 /*-- vec_all_ne -------------------------------------------------------------*/
3261
3262 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector signed char __b)3263 vec_all_ne(__vector signed char __a, __vector signed char __b) {
3264 int __cc;
3265 __builtin_s390_vceqbs((__vector unsigned char)__a,
3266 (__vector unsigned char)__b, &__cc);
3267 return __cc == 3;
3268 }
3269
3270 // This prototype is deprecated.
3271 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed char __a,__vector __bool char __b)3272 vec_all_ne(__vector signed char __a, __vector __bool char __b) {
3273 int __cc;
3274 __builtin_s390_vceqbs((__vector unsigned char)__a,
3275 (__vector unsigned char)__b, &__cc);
3276 return __cc == 3;
3277 }
3278
3279 // This prototype is deprecated.
3280 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector signed char __b)3281 vec_all_ne(__vector __bool char __a, __vector signed char __b) {
3282 int __cc;
3283 __builtin_s390_vceqbs((__vector unsigned char)__a,
3284 (__vector unsigned char)__b, &__cc);
3285 return __cc == 3;
3286 }
3287
3288 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector unsigned char __b)3289 vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {
3290 int __cc;
3291 __builtin_s390_vceqbs((__vector unsigned char)__a,
3292 (__vector unsigned char)__b, &__cc);
3293 return __cc == 3;
3294 }
3295
3296 // This prototype is deprecated.
3297 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned char __a,__vector __bool char __b)3298 vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {
3299 int __cc;
3300 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
3301 return __cc == 3;
3302 }
3303
3304 // This prototype is deprecated.
3305 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector unsigned char __b)3306 vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {
3307 int __cc;
3308 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
3309 return __cc == 3;
3310 }
3311
3312 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool char __a,__vector __bool char __b)3313 vec_all_ne(__vector __bool char __a, __vector __bool char __b) {
3314 int __cc;
3315 __builtin_s390_vceqbs((__vector unsigned char)__a,
3316 (__vector unsigned char)__b, &__cc);
3317 return __cc == 3;
3318 }
3319
3320 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector signed short __b)3321 vec_all_ne(__vector signed short __a, __vector signed short __b) {
3322 int __cc;
3323 __builtin_s390_vceqhs((__vector unsigned short)__a,
3324 (__vector unsigned short)__b, &__cc);
3325 return __cc == 3;
3326 }
3327
3328 // This prototype is deprecated.
3329 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed short __a,__vector __bool short __b)3330 vec_all_ne(__vector signed short __a, __vector __bool short __b) {
3331 int __cc;
3332 __builtin_s390_vceqhs((__vector unsigned short)__a,
3333 (__vector unsigned short)__b, &__cc);
3334 return __cc == 3;
3335 }
3336
3337 // This prototype is deprecated.
3338 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector signed short __b)3339 vec_all_ne(__vector __bool short __a, __vector signed short __b) {
3340 int __cc;
3341 __builtin_s390_vceqhs((__vector unsigned short)__a,
3342 (__vector unsigned short)__b, &__cc);
3343 return __cc == 3;
3344 }
3345
3346 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector unsigned short __b)3347 vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {
3348 int __cc;
3349 __builtin_s390_vceqhs(__a, __b, &__cc);
3350 return __cc == 3;
3351 }
3352
3353 // This prototype is deprecated.
3354 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned short __a,__vector __bool short __b)3355 vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {
3356 int __cc;
3357 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
3358 return __cc == 3;
3359 }
3360
3361 // This prototype is deprecated.
3362 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector unsigned short __b)3363 vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {
3364 int __cc;
3365 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
3366 return __cc == 3;
3367 }
3368
3369 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool short __a,__vector __bool short __b)3370 vec_all_ne(__vector __bool short __a, __vector __bool short __b) {
3371 int __cc;
3372 __builtin_s390_vceqhs((__vector unsigned short)__a,
3373 (__vector unsigned short)__b, &__cc);
3374 return __cc == 3;
3375 }
3376
3377 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector signed int __b)3378 vec_all_ne(__vector signed int __a, __vector signed int __b) {
3379 int __cc;
3380 __builtin_s390_vceqfs((__vector unsigned int)__a,
3381 (__vector unsigned int)__b, &__cc);
3382 return __cc == 3;
3383 }
3384
3385 // This prototype is deprecated.
3386 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed int __a,__vector __bool int __b)3387 vec_all_ne(__vector signed int __a, __vector __bool int __b) {
3388 int __cc;
3389 __builtin_s390_vceqfs((__vector unsigned int)__a,
3390 (__vector unsigned int)__b, &__cc);
3391 return __cc == 3;
3392 }
3393
3394 // This prototype is deprecated.
3395 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector signed int __b)3396 vec_all_ne(__vector __bool int __a, __vector signed int __b) {
3397 int __cc;
3398 __builtin_s390_vceqfs((__vector unsigned int)__a,
3399 (__vector unsigned int)__b, &__cc);
3400 return __cc == 3;
3401 }
3402
3403 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector unsigned int __b)3404 vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {
3405 int __cc;
3406 __builtin_s390_vceqfs(__a, __b, &__cc);
3407 return __cc == 3;
3408 }
3409
3410 // This prototype is deprecated.
3411 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned int __a,__vector __bool int __b)3412 vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {
3413 int __cc;
3414 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
3415 return __cc == 3;
3416 }
3417
3418 // This prototype is deprecated.
3419 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector unsigned int __b)3420 vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {
3421 int __cc;
3422 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
3423 return __cc == 3;
3424 }
3425
3426 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool int __a,__vector __bool int __b)3427 vec_all_ne(__vector __bool int __a, __vector __bool int __b) {
3428 int __cc;
3429 __builtin_s390_vceqfs((__vector unsigned int)__a,
3430 (__vector unsigned int)__b, &__cc);
3431 return __cc == 3;
3432 }
3433
3434 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector signed long long __b)3435 vec_all_ne(__vector signed long long __a, __vector signed long long __b) {
3436 int __cc;
3437 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3438 (__vector unsigned long long)__b, &__cc);
3439 return __cc == 3;
3440 }
3441
3442 // This prototype is deprecated.
3443 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed long long __a,__vector __bool long long __b)3444 vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {
3445 int __cc;
3446 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3447 (__vector unsigned long long)__b, &__cc);
3448 return __cc == 3;
3449 }
3450
3451 // This prototype is deprecated.
3452 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector signed long long __b)3453 vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {
3454 int __cc;
3455 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3456 (__vector unsigned long long)__b, &__cc);
3457 return __cc == 3;
3458 }
3459
3460 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector unsigned long long __b)3461 vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
3462 int __cc;
3463 __builtin_s390_vceqgs(__a, __b, &__cc);
3464 return __cc == 3;
3465 }
3466
3467 // This prototype is deprecated.
3468 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned long long __a,__vector __bool long long __b)3469 vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {
3470 int __cc;
3471 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
3472 return __cc == 3;
3473 }
3474
3475 // This prototype is deprecated.
3476 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector unsigned long long __b)3477 vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {
3478 int __cc;
3479 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
3480 return __cc == 3;
3481 }
3482
3483 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool long long __a,__vector __bool long long __b)3484 vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {
3485 int __cc;
3486 __builtin_s390_vceqgs((__vector unsigned long long)__a,
3487 (__vector unsigned long long)__b, &__cc);
3488 return __cc == 3;
3489 }
3490
3491 #if __ARCH__ >= 15
3492 static inline __ATTRS_o_ai int
vec_all_ne(__vector signed __int128 __a,__vector signed __int128 __b)3493 vec_all_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
3494 int __cc;
3495 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3496 return __cc == 3;
3497 }
3498
3499 static inline __ATTRS_o_ai int
vec_all_ne(__vector unsigned __int128 __a,__vector unsigned __int128 __b)3500 vec_all_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3501 int __cc;
3502 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3503 return __cc == 3;
3504 }
3505
3506 static inline __ATTRS_o_ai int
vec_all_ne(__vector __bool __int128 __a,__vector __bool __int128 __b)3507 vec_all_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
3508 int __cc;
3509 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
3510 return __cc == 3;
3511 }
3512 #endif
3513
3514 #if __ARCH__ >= 12
3515 static inline __ATTRS_o_ai int
vec_all_ne(__vector float __a,__vector float __b)3516 vec_all_ne(__vector float __a, __vector float __b) {
3517 int __cc;
3518 __builtin_s390_vfcesbs(__a, __b, &__cc);
3519 return __cc == 3;
3520 }
3521 #endif
3522
3523 static inline __ATTRS_o_ai int
vec_all_ne(__vector double __a,__vector double __b)3524 vec_all_ne(__vector double __a, __vector double __b) {
3525 int __cc;
3526 __builtin_s390_vfcedbs(__a, __b, &__cc);
3527 return __cc == 3;
3528 }
3529
3530 /*-- vec_all_ge -------------------------------------------------------------*/
3531
3532 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector signed char __b)3533 vec_all_ge(__vector signed char __a, __vector signed char __b) {
3534 int __cc;
3535 __builtin_s390_vchbs(__b, __a, &__cc);
3536 return __cc == 3;
3537 }
3538
3539 // This prototype is deprecated.
3540 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed char __a,__vector __bool char __b)3541 vec_all_ge(__vector signed char __a, __vector __bool char __b) {
3542 int __cc;
3543 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
3544 return __cc == 3;
3545 }
3546
3547 // This prototype is deprecated.
3548 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector signed char __b)3549 vec_all_ge(__vector __bool char __a, __vector signed char __b) {
3550 int __cc;
3551 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
3552 return __cc == 3;
3553 }
3554
3555 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector unsigned char __b)3556 vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {
3557 int __cc;
3558 __builtin_s390_vchlbs(__b, __a, &__cc);
3559 return __cc == 3;
3560 }
3561
3562 // This prototype is deprecated.
3563 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned char __a,__vector __bool char __b)3564 vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {
3565 int __cc;
3566 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
3567 return __cc == 3;
3568 }
3569
3570 // This prototype is deprecated.
3571 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector unsigned char __b)3572 vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {
3573 int __cc;
3574 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
3575 return __cc == 3;
3576 }
3577
3578 // This prototype is deprecated.
3579 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool char __a,__vector __bool char __b)3580 vec_all_ge(__vector __bool char __a, __vector __bool char __b) {
3581 int __cc;
3582 __builtin_s390_vchlbs((__vector unsigned char)__b,
3583 (__vector unsigned char)__a, &__cc);
3584 return __cc == 3;
3585 }
3586
3587 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector signed short __b)3588 vec_all_ge(__vector signed short __a, __vector signed short __b) {
3589 int __cc;
3590 __builtin_s390_vchhs(__b, __a, &__cc);
3591 return __cc == 3;
3592 }
3593
3594 // This prototype is deprecated.
3595 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed short __a,__vector __bool short __b)3596 vec_all_ge(__vector signed short __a, __vector __bool short __b) {
3597 int __cc;
3598 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
3599 return __cc == 3;
3600 }
3601
3602 // This prototype is deprecated.
3603 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector signed short __b)3604 vec_all_ge(__vector __bool short __a, __vector signed short __b) {
3605 int __cc;
3606 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
3607 return __cc == 3;
3608 }
3609
3610 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector unsigned short __b)3611 vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {
3612 int __cc;
3613 __builtin_s390_vchlhs(__b, __a, &__cc);
3614 return __cc == 3;
3615 }
3616
3617 // This prototype is deprecated.
3618 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned short __a,__vector __bool short __b)3619 vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {
3620 int __cc;
3621 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
3622 return __cc == 3;
3623 }
3624
3625 // This prototype is deprecated.
3626 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector unsigned short __b)3627 vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {
3628 int __cc;
3629 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
3630 return __cc == 3;
3631 }
3632
3633 // This prototype is deprecated.
3634 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool short __a,__vector __bool short __b)3635 vec_all_ge(__vector __bool short __a, __vector __bool short __b) {
3636 int __cc;
3637 __builtin_s390_vchlhs((__vector unsigned short)__b,
3638 (__vector unsigned short)__a, &__cc);
3639 return __cc == 3;
3640 }
3641
3642 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector signed int __b)3643 vec_all_ge(__vector signed int __a, __vector signed int __b) {
3644 int __cc;
3645 __builtin_s390_vchfs(__b, __a, &__cc);
3646 return __cc == 3;
3647 }
3648
3649 // This prototype is deprecated.
3650 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed int __a,__vector __bool int __b)3651 vec_all_ge(__vector signed int __a, __vector __bool int __b) {
3652 int __cc;
3653 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
3654 return __cc == 3;
3655 }
3656
3657 // This prototype is deprecated.
3658 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector signed int __b)3659 vec_all_ge(__vector __bool int __a, __vector signed int __b) {
3660 int __cc;
3661 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
3662 return __cc == 3;
3663 }
3664
3665 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector unsigned int __b)3666 vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {
3667 int __cc;
3668 __builtin_s390_vchlfs(__b, __a, &__cc);
3669 return __cc == 3;
3670 }
3671
3672 // This prototype is deprecated.
3673 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned int __a,__vector __bool int __b)3674 vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {
3675 int __cc;
3676 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
3677 return __cc == 3;
3678 }
3679
3680 // This prototype is deprecated.
3681 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector unsigned int __b)3682 vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {
3683 int __cc;
3684 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
3685 return __cc == 3;
3686 }
3687
3688 // This prototype is deprecated.
3689 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool int __a,__vector __bool int __b)3690 vec_all_ge(__vector __bool int __a, __vector __bool int __b) {
3691 int __cc;
3692 __builtin_s390_vchlfs((__vector unsigned int)__b,
3693 (__vector unsigned int)__a, &__cc);
3694 return __cc == 3;
3695 }
3696
3697 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector signed long long __b)3698 vec_all_ge(__vector signed long long __a, __vector signed long long __b) {
3699 int __cc;
3700 __builtin_s390_vchgs(__b, __a, &__cc);
3701 return __cc == 3;
3702 }
3703
3704 // This prototype is deprecated.
3705 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed long long __a,__vector __bool long long __b)3706 vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {
3707 int __cc;
3708 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
3709 return __cc == 3;
3710 }
3711
3712 // This prototype is deprecated.
3713 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector signed long long __b)3714 vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {
3715 int __cc;
3716 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
3717 return __cc == 3;
3718 }
3719
3720 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector unsigned long long __b)3721 vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
3722 int __cc;
3723 __builtin_s390_vchlgs(__b, __a, &__cc);
3724 return __cc == 3;
3725 }
3726
3727 // This prototype is deprecated.
3728 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned long long __a,__vector __bool long long __b)3729 vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {
3730 int __cc;
3731 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
3732 return __cc == 3;
3733 }
3734
3735 // This prototype is deprecated.
3736 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector unsigned long long __b)3737 vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {
3738 int __cc;
3739 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
3740 return __cc == 3;
3741 }
3742
3743 // This prototype is deprecated.
3744 static inline __ATTRS_o_ai int
vec_all_ge(__vector __bool long long __a,__vector __bool long long __b)3745 vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {
3746 int __cc;
3747 __builtin_s390_vchlgs((__vector unsigned long long)__b,
3748 (__vector unsigned long long)__a, &__cc);
3749 return __cc == 3;
3750 }
3751
3752 #if __ARCH__ >= 15
3753 static inline __ATTRS_o_ai int
vec_all_ge(__vector signed __int128 __a,__vector signed __int128 __b)3754 vec_all_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
3755 int __cc;
3756 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
3757 return __cc == 3;
3758 }
3759
3760 static inline __ATTRS_o_ai int
vec_all_ge(__vector unsigned __int128 __a,__vector unsigned __int128 __b)3761 vec_all_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
3762 int __cc;
3763 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
3764 return __cc == 3;
3765 }
3766 #endif
3767
3768 #if __ARCH__ >= 12
3769 static inline __ATTRS_o_ai int
vec_all_ge(__vector float __a,__vector float __b)3770 vec_all_ge(__vector float __a, __vector float __b) {
3771 int __cc;
3772 __builtin_s390_vfchesbs(__a, __b, &__cc);
3773 return __cc == 0;
3774 }
3775 #endif
3776
3777 static inline __ATTRS_o_ai int
vec_all_ge(__vector double __a,__vector double __b)3778 vec_all_ge(__vector double __a, __vector double __b) {
3779 int __cc;
3780 __builtin_s390_vfchedbs(__a, __b, &__cc);
3781 return __cc == 0;
3782 }
3783
3784 /*-- vec_all_gt -------------------------------------------------------------*/
3785
3786 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector signed char __b)3787 vec_all_gt(__vector signed char __a, __vector signed char __b) {
3788 int __cc;
3789 __builtin_s390_vchbs(__a, __b, &__cc);
3790 return __cc == 0;
3791 }
3792
3793 // This prototype is deprecated.
3794 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed char __a,__vector __bool char __b)3795 vec_all_gt(__vector signed char __a, __vector __bool char __b) {
3796 int __cc;
3797 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
3798 return __cc == 0;
3799 }
3800
3801 // This prototype is deprecated.
3802 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector signed char __b)3803 vec_all_gt(__vector __bool char __a, __vector signed char __b) {
3804 int __cc;
3805 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
3806 return __cc == 0;
3807 }
3808
3809 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector unsigned char __b)3810 vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {
3811 int __cc;
3812 __builtin_s390_vchlbs(__a, __b, &__cc);
3813 return __cc == 0;
3814 }
3815
3816 // This prototype is deprecated.
3817 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned char __a,__vector __bool char __b)3818 vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {
3819 int __cc;
3820 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
3821 return __cc == 0;
3822 }
3823
3824 // This prototype is deprecated.
3825 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector unsigned char __b)3826 vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {
3827 int __cc;
3828 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
3829 return __cc == 0;
3830 }
3831
3832 // This prototype is deprecated.
3833 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool char __a,__vector __bool char __b)3834 vec_all_gt(__vector __bool char __a, __vector __bool char __b) {
3835 int __cc;
3836 __builtin_s390_vchlbs((__vector unsigned char)__a,
3837 (__vector unsigned char)__b, &__cc);
3838 return __cc == 0;
3839 }
3840
3841 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector signed short __b)3842 vec_all_gt(__vector signed short __a, __vector signed short __b) {
3843 int __cc;
3844 __builtin_s390_vchhs(__a, __b, &__cc);
3845 return __cc == 0;
3846 }
3847
3848 // This prototype is deprecated.
3849 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed short __a,__vector __bool short __b)3850 vec_all_gt(__vector signed short __a, __vector __bool short __b) {
3851 int __cc;
3852 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
3853 return __cc == 0;
3854 }
3855
3856 // This prototype is deprecated.
3857 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector signed short __b)3858 vec_all_gt(__vector __bool short __a, __vector signed short __b) {
3859 int __cc;
3860 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
3861 return __cc == 0;
3862 }
3863
3864 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector unsigned short __b)3865 vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {
3866 int __cc;
3867 __builtin_s390_vchlhs(__a, __b, &__cc);
3868 return __cc == 0;
3869 }
3870
3871 // This prototype is deprecated.
3872 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned short __a,__vector __bool short __b)3873 vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {
3874 int __cc;
3875 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
3876 return __cc == 0;
3877 }
3878
3879 // This prototype is deprecated.
3880 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector unsigned short __b)3881 vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {
3882 int __cc;
3883 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
3884 return __cc == 0;
3885 }
3886
3887 // This prototype is deprecated.
3888 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool short __a,__vector __bool short __b)3889 vec_all_gt(__vector __bool short __a, __vector __bool short __b) {
3890 int __cc;
3891 __builtin_s390_vchlhs((__vector unsigned short)__a,
3892 (__vector unsigned short)__b, &__cc);
3893 return __cc == 0;
3894 }
3895
3896 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector signed int __b)3897 vec_all_gt(__vector signed int __a, __vector signed int __b) {
3898 int __cc;
3899 __builtin_s390_vchfs(__a, __b, &__cc);
3900 return __cc == 0;
3901 }
3902
3903 // This prototype is deprecated.
3904 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed int __a,__vector __bool int __b)3905 vec_all_gt(__vector signed int __a, __vector __bool int __b) {
3906 int __cc;
3907 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
3908 return __cc == 0;
3909 }
3910
3911 // This prototype is deprecated.
3912 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector signed int __b)3913 vec_all_gt(__vector __bool int __a, __vector signed int __b) {
3914 int __cc;
3915 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
3916 return __cc == 0;
3917 }
3918
3919 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector unsigned int __b)3920 vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {
3921 int __cc;
3922 __builtin_s390_vchlfs(__a, __b, &__cc);
3923 return __cc == 0;
3924 }
3925
3926 // This prototype is deprecated.
3927 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned int __a,__vector __bool int __b)3928 vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {
3929 int __cc;
3930 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
3931 return __cc == 0;
3932 }
3933
3934 // This prototype is deprecated.
3935 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector unsigned int __b)3936 vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {
3937 int __cc;
3938 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
3939 return __cc == 0;
3940 }
3941
3942 // This prototype is deprecated.
3943 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool int __a,__vector __bool int __b)3944 vec_all_gt(__vector __bool int __a, __vector __bool int __b) {
3945 int __cc;
3946 __builtin_s390_vchlfs((__vector unsigned int)__a,
3947 (__vector unsigned int)__b, &__cc);
3948 return __cc == 0;
3949 }
3950
3951 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector signed long long __b)3952 vec_all_gt(__vector signed long long __a, __vector signed long long __b) {
3953 int __cc;
3954 __builtin_s390_vchgs(__a, __b, &__cc);
3955 return __cc == 0;
3956 }
3957
3958 // This prototype is deprecated.
3959 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed long long __a,__vector __bool long long __b)3960 vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {
3961 int __cc;
3962 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
3963 return __cc == 0;
3964 }
3965
3966 // This prototype is deprecated.
3967 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector signed long long __b)3968 vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {
3969 int __cc;
3970 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
3971 return __cc == 0;
3972 }
3973
3974 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector unsigned long long __b)3975 vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
3976 int __cc;
3977 __builtin_s390_vchlgs(__a, __b, &__cc);
3978 return __cc == 0;
3979 }
3980
3981 // This prototype is deprecated.
3982 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned long long __a,__vector __bool long long __b)3983 vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {
3984 int __cc;
3985 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
3986 return __cc == 0;
3987 }
3988
3989 // This prototype is deprecated.
3990 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector unsigned long long __b)3991 vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {
3992 int __cc;
3993 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
3994 return __cc == 0;
3995 }
3996
3997 // This prototype is deprecated.
3998 static inline __ATTRS_o_ai int
vec_all_gt(__vector __bool long long __a,__vector __bool long long __b)3999 vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {
4000 int __cc;
4001 __builtin_s390_vchlgs((__vector unsigned long long)__a,
4002 (__vector unsigned long long)__b, &__cc);
4003 return __cc == 0;
4004 }
4005
4006 #if __ARCH__ >= 15
4007 static inline __ATTRS_o_ai int
vec_all_gt(__vector signed __int128 __a,__vector signed __int128 __b)4008 vec_all_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
4009 int __cc;
4010 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
4011 return __cc == 0;
4012 }
4013
4014 static inline __ATTRS_o_ai int
vec_all_gt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)4015 vec_all_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4016 int __cc;
4017 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4018 return __cc == 0;
4019 }
4020 #endif
4021
4022 #if __ARCH__ >= 12
4023 static inline __ATTRS_o_ai int
vec_all_gt(__vector float __a,__vector float __b)4024 vec_all_gt(__vector float __a, __vector float __b) {
4025 int __cc;
4026 __builtin_s390_vfchsbs(__a, __b, &__cc);
4027 return __cc == 0;
4028 }
4029 #endif
4030
4031 static inline __ATTRS_o_ai int
vec_all_gt(__vector double __a,__vector double __b)4032 vec_all_gt(__vector double __a, __vector double __b) {
4033 int __cc;
4034 __builtin_s390_vfchdbs(__a, __b, &__cc);
4035 return __cc == 0;
4036 }
4037
4038 /*-- vec_all_le -------------------------------------------------------------*/
4039
4040 static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector signed char __b)4041 vec_all_le(__vector signed char __a, __vector signed char __b) {
4042 int __cc;
4043 __builtin_s390_vchbs(__a, __b, &__cc);
4044 return __cc == 3;
4045 }
4046
4047 // This prototype is deprecated.
4048 static inline __ATTRS_o_ai int
vec_all_le(__vector signed char __a,__vector __bool char __b)4049 vec_all_le(__vector signed char __a, __vector __bool char __b) {
4050 int __cc;
4051 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
4052 return __cc == 3;
4053 }
4054
4055 // This prototype is deprecated.
4056 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector signed char __b)4057 vec_all_le(__vector __bool char __a, __vector signed char __b) {
4058 int __cc;
4059 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
4060 return __cc == 3;
4061 }
4062
4063 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector unsigned char __b)4064 vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {
4065 int __cc;
4066 __builtin_s390_vchlbs(__a, __b, &__cc);
4067 return __cc == 3;
4068 }
4069
4070 // This prototype is deprecated.
4071 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned char __a,__vector __bool char __b)4072 vec_all_le(__vector unsigned char __a, __vector __bool char __b) {
4073 int __cc;
4074 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
4075 return __cc == 3;
4076 }
4077
4078 // This prototype is deprecated.
4079 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector unsigned char __b)4080 vec_all_le(__vector __bool char __a, __vector unsigned char __b) {
4081 int __cc;
4082 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
4083 return __cc == 3;
4084 }
4085
4086 // This prototype is deprecated.
4087 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool char __a,__vector __bool char __b)4088 vec_all_le(__vector __bool char __a, __vector __bool char __b) {
4089 int __cc;
4090 __builtin_s390_vchlbs((__vector unsigned char)__a,
4091 (__vector unsigned char)__b, &__cc);
4092 return __cc == 3;
4093 }
4094
4095 static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector signed short __b)4096 vec_all_le(__vector signed short __a, __vector signed short __b) {
4097 int __cc;
4098 __builtin_s390_vchhs(__a, __b, &__cc);
4099 return __cc == 3;
4100 }
4101
4102 // This prototype is deprecated.
4103 static inline __ATTRS_o_ai int
vec_all_le(__vector signed short __a,__vector __bool short __b)4104 vec_all_le(__vector signed short __a, __vector __bool short __b) {
4105 int __cc;
4106 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
4107 return __cc == 3;
4108 }
4109
4110 // This prototype is deprecated.
4111 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector signed short __b)4112 vec_all_le(__vector __bool short __a, __vector signed short __b) {
4113 int __cc;
4114 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
4115 return __cc == 3;
4116 }
4117
4118 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector unsigned short __b)4119 vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {
4120 int __cc;
4121 __builtin_s390_vchlhs(__a, __b, &__cc);
4122 return __cc == 3;
4123 }
4124
4125 // This prototype is deprecated.
4126 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned short __a,__vector __bool short __b)4127 vec_all_le(__vector unsigned short __a, __vector __bool short __b) {
4128 int __cc;
4129 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
4130 return __cc == 3;
4131 }
4132
4133 // This prototype is deprecated.
4134 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector unsigned short __b)4135 vec_all_le(__vector __bool short __a, __vector unsigned short __b) {
4136 int __cc;
4137 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
4138 return __cc == 3;
4139 }
4140
4141 // This prototype is deprecated.
4142 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool short __a,__vector __bool short __b)4143 vec_all_le(__vector __bool short __a, __vector __bool short __b) {
4144 int __cc;
4145 __builtin_s390_vchlhs((__vector unsigned short)__a,
4146 (__vector unsigned short)__b, &__cc);
4147 return __cc == 3;
4148 }
4149
4150 static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector signed int __b)4151 vec_all_le(__vector signed int __a, __vector signed int __b) {
4152 int __cc;
4153 __builtin_s390_vchfs(__a, __b, &__cc);
4154 return __cc == 3;
4155 }
4156
4157 // This prototype is deprecated.
4158 static inline __ATTRS_o_ai int
vec_all_le(__vector signed int __a,__vector __bool int __b)4159 vec_all_le(__vector signed int __a, __vector __bool int __b) {
4160 int __cc;
4161 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
4162 return __cc == 3;
4163 }
4164
4165 // This prototype is deprecated.
4166 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector signed int __b)4167 vec_all_le(__vector __bool int __a, __vector signed int __b) {
4168 int __cc;
4169 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
4170 return __cc == 3;
4171 }
4172
4173 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector unsigned int __b)4174 vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {
4175 int __cc;
4176 __builtin_s390_vchlfs(__a, __b, &__cc);
4177 return __cc == 3;
4178 }
4179
4180 // This prototype is deprecated.
4181 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned int __a,__vector __bool int __b)4182 vec_all_le(__vector unsigned int __a, __vector __bool int __b) {
4183 int __cc;
4184 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
4185 return __cc == 3;
4186 }
4187
4188 // This prototype is deprecated.
4189 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector unsigned int __b)4190 vec_all_le(__vector __bool int __a, __vector unsigned int __b) {
4191 int __cc;
4192 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
4193 return __cc == 3;
4194 }
4195
4196 // This prototype is deprecated.
4197 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool int __a,__vector __bool int __b)4198 vec_all_le(__vector __bool int __a, __vector __bool int __b) {
4199 int __cc;
4200 __builtin_s390_vchlfs((__vector unsigned int)__a,
4201 (__vector unsigned int)__b, &__cc);
4202 return __cc == 3;
4203 }
4204
4205 static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector signed long long __b)4206 vec_all_le(__vector signed long long __a, __vector signed long long __b) {
4207 int __cc;
4208 __builtin_s390_vchgs(__a, __b, &__cc);
4209 return __cc == 3;
4210 }
4211
4212 // This prototype is deprecated.
4213 static inline __ATTRS_o_ai int
vec_all_le(__vector signed long long __a,__vector __bool long long __b)4214 vec_all_le(__vector signed long long __a, __vector __bool long long __b) {
4215 int __cc;
4216 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
4217 return __cc == 3;
4218 }
4219
4220 // This prototype is deprecated.
4221 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector signed long long __b)4222 vec_all_le(__vector __bool long long __a, __vector signed long long __b) {
4223 int __cc;
4224 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
4225 return __cc == 3;
4226 }
4227
4228 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector unsigned long long __b)4229 vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {
4230 int __cc;
4231 __builtin_s390_vchlgs(__a, __b, &__cc);
4232 return __cc == 3;
4233 }
4234
4235 // This prototype is deprecated.
4236 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned long long __a,__vector __bool long long __b)4237 vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {
4238 int __cc;
4239 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
4240 return __cc == 3;
4241 }
4242
4243 // This prototype is deprecated.
4244 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector unsigned long long __b)4245 vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {
4246 int __cc;
4247 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
4248 return __cc == 3;
4249 }
4250
4251 // This prototype is deprecated.
4252 static inline __ATTRS_o_ai int
vec_all_le(__vector __bool long long __a,__vector __bool long long __b)4253 vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {
4254 int __cc;
4255 __builtin_s390_vchlgs((__vector unsigned long long)__a,
4256 (__vector unsigned long long)__b, &__cc);
4257 return __cc == 3;
4258 }
4259
4260 #if __ARCH__ >= 15
4261 static inline __ATTRS_o_ai int
vec_all_le(__vector signed __int128 __a,__vector signed __int128 __b)4262 vec_all_le(__vector signed __int128 __a, __vector signed __int128 __b) {
4263 int __cc;
4264 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
4265 return __cc == 3;
4266 }
4267
4268 static inline __ATTRS_o_ai int
vec_all_le(__vector unsigned __int128 __a,__vector unsigned __int128 __b)4269 vec_all_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4270 int __cc;
4271 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4272 return __cc == 3;
4273 }
4274 #endif
4275
4276 #if __ARCH__ >= 12
4277 static inline __ATTRS_o_ai int
vec_all_le(__vector float __a,__vector float __b)4278 vec_all_le(__vector float __a, __vector float __b) {
4279 int __cc;
4280 __builtin_s390_vfchesbs(__b, __a, &__cc);
4281 return __cc == 0;
4282 }
4283 #endif
4284
4285 static inline __ATTRS_o_ai int
vec_all_le(__vector double __a,__vector double __b)4286 vec_all_le(__vector double __a, __vector double __b) {
4287 int __cc;
4288 __builtin_s390_vfchedbs(__b, __a, &__cc);
4289 return __cc == 0;
4290 }
4291
4292 /*-- vec_all_lt -------------------------------------------------------------*/
4293
4294 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector signed char __b)4295 vec_all_lt(__vector signed char __a, __vector signed char __b) {
4296 int __cc;
4297 __builtin_s390_vchbs(__b, __a, &__cc);
4298 return __cc == 0;
4299 }
4300
4301 // This prototype is deprecated.
4302 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed char __a,__vector __bool char __b)4303 vec_all_lt(__vector signed char __a, __vector __bool char __b) {
4304 int __cc;
4305 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
4306 return __cc == 0;
4307 }
4308
4309 // This prototype is deprecated.
4310 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector signed char __b)4311 vec_all_lt(__vector __bool char __a, __vector signed char __b) {
4312 int __cc;
4313 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
4314 return __cc == 0;
4315 }
4316
4317 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector unsigned char __b)4318 vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {
4319 int __cc;
4320 __builtin_s390_vchlbs(__b, __a, &__cc);
4321 return __cc == 0;
4322 }
4323
4324 // This prototype is deprecated.
4325 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned char __a,__vector __bool char __b)4326 vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {
4327 int __cc;
4328 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
4329 return __cc == 0;
4330 }
4331
4332 // This prototype is deprecated.
4333 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector unsigned char __b)4334 vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {
4335 int __cc;
4336 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
4337 return __cc == 0;
4338 }
4339
4340 // This prototype is deprecated.
4341 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool char __a,__vector __bool char __b)4342 vec_all_lt(__vector __bool char __a, __vector __bool char __b) {
4343 int __cc;
4344 __builtin_s390_vchlbs((__vector unsigned char)__b,
4345 (__vector unsigned char)__a, &__cc);
4346 return __cc == 0;
4347 }
4348
4349 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector signed short __b)4350 vec_all_lt(__vector signed short __a, __vector signed short __b) {
4351 int __cc;
4352 __builtin_s390_vchhs(__b, __a, &__cc);
4353 return __cc == 0;
4354 }
4355
4356 // This prototype is deprecated.
4357 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed short __a,__vector __bool short __b)4358 vec_all_lt(__vector signed short __a, __vector __bool short __b) {
4359 int __cc;
4360 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
4361 return __cc == 0;
4362 }
4363
4364 // This prototype is deprecated.
4365 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector signed short __b)4366 vec_all_lt(__vector __bool short __a, __vector signed short __b) {
4367 int __cc;
4368 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
4369 return __cc == 0;
4370 }
4371
4372 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector unsigned short __b)4373 vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {
4374 int __cc;
4375 __builtin_s390_vchlhs(__b, __a, &__cc);
4376 return __cc == 0;
4377 }
4378
4379 // This prototype is deprecated.
4380 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned short __a,__vector __bool short __b)4381 vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {
4382 int __cc;
4383 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
4384 return __cc == 0;
4385 }
4386
4387 // This prototype is deprecated.
4388 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector unsigned short __b)4389 vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {
4390 int __cc;
4391 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
4392 return __cc == 0;
4393 }
4394
4395 // This prototype is deprecated.
4396 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool short __a,__vector __bool short __b)4397 vec_all_lt(__vector __bool short __a, __vector __bool short __b) {
4398 int __cc;
4399 __builtin_s390_vchlhs((__vector unsigned short)__b,
4400 (__vector unsigned short)__a, &__cc);
4401 return __cc == 0;
4402 }
4403
4404 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector signed int __b)4405 vec_all_lt(__vector signed int __a, __vector signed int __b) {
4406 int __cc;
4407 __builtin_s390_vchfs(__b, __a, &__cc);
4408 return __cc == 0;
4409 }
4410
4411 // This prototype is deprecated.
4412 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed int __a,__vector __bool int __b)4413 vec_all_lt(__vector signed int __a, __vector __bool int __b) {
4414 int __cc;
4415 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
4416 return __cc == 0;
4417 }
4418
4419 // This prototype is deprecated.
4420 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector signed int __b)4421 vec_all_lt(__vector __bool int __a, __vector signed int __b) {
4422 int __cc;
4423 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
4424 return __cc == 0;
4425 }
4426
4427 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector unsigned int __b)4428 vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {
4429 int __cc;
4430 __builtin_s390_vchlfs(__b, __a, &__cc);
4431 return __cc == 0;
4432 }
4433
4434 // This prototype is deprecated.
4435 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned int __a,__vector __bool int __b)4436 vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {
4437 int __cc;
4438 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
4439 return __cc == 0;
4440 }
4441
4442 // This prototype is deprecated.
4443 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector unsigned int __b)4444 vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {
4445 int __cc;
4446 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
4447 return __cc == 0;
4448 }
4449
4450 // This prototype is deprecated.
4451 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool int __a,__vector __bool int __b)4452 vec_all_lt(__vector __bool int __a, __vector __bool int __b) {
4453 int __cc;
4454 __builtin_s390_vchlfs((__vector unsigned int)__b,
4455 (__vector unsigned int)__a, &__cc);
4456 return __cc == 0;
4457 }
4458
4459 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector signed long long __b)4460 vec_all_lt(__vector signed long long __a, __vector signed long long __b) {
4461 int __cc;
4462 __builtin_s390_vchgs(__b, __a, &__cc);
4463 return __cc == 0;
4464 }
4465
4466 // This prototype is deprecated.
4467 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed long long __a,__vector __bool long long __b)4468 vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {
4469 int __cc;
4470 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
4471 return __cc == 0;
4472 }
4473
4474 // This prototype is deprecated.
4475 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector signed long long __b)4476 vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {
4477 int __cc;
4478 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
4479 return __cc == 0;
4480 }
4481
4482 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector unsigned long long __b)4483 vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
4484 int __cc;
4485 __builtin_s390_vchlgs(__b, __a, &__cc);
4486 return __cc == 0;
4487 }
4488
4489 // This prototype is deprecated.
4490 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned long long __a,__vector __bool long long __b)4491 vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {
4492 int __cc;
4493 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
4494 return __cc == 0;
4495 }
4496
4497 // This prototype is deprecated.
4498 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector unsigned long long __b)4499 vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {
4500 int __cc;
4501 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
4502 return __cc == 0;
4503 }
4504
4505 // This prototype is deprecated.
4506 static inline __ATTRS_o_ai int
vec_all_lt(__vector __bool long long __a,__vector __bool long long __b)4507 vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {
4508 int __cc;
4509 __builtin_s390_vchlgs((__vector unsigned long long)__b,
4510 (__vector unsigned long long)__a, &__cc);
4511 return __cc == 0;
4512 }
4513
4514 #if __ARCH__ >= 15
4515 static inline __ATTRS_o_ai int
vec_all_lt(__vector signed __int128 __a,__vector signed __int128 __b)4516 vec_all_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
4517 int __cc;
4518 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
4519 return __cc == 0;
4520 }
4521
4522 static inline __ATTRS_o_ai int
vec_all_lt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)4523 vec_all_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4524 int __cc;
4525 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
4526 return __cc == 0;
4527 }
4528 #endif
4529
4530 #if __ARCH__ >= 12
4531 static inline __ATTRS_o_ai int
vec_all_lt(__vector float __a,__vector float __b)4532 vec_all_lt(__vector float __a, __vector float __b) {
4533 int __cc;
4534 __builtin_s390_vfchsbs(__b, __a, &__cc);
4535 return __cc == 0;
4536 }
4537 #endif
4538
4539 static inline __ATTRS_o_ai int
vec_all_lt(__vector double __a,__vector double __b)4540 vec_all_lt(__vector double __a, __vector double __b) {
4541 int __cc;
4542 __builtin_s390_vfchdbs(__b, __a, &__cc);
4543 return __cc == 0;
4544 }
4545
4546 /*-- vec_all_nge ------------------------------------------------------------*/
4547
4548 #if __ARCH__ >= 12
4549 static inline __ATTRS_o_ai int
vec_all_nge(__vector float __a,__vector float __b)4550 vec_all_nge(__vector float __a, __vector float __b) {
4551 int __cc;
4552 __builtin_s390_vfchesbs(__a, __b, &__cc);
4553 return __cc == 3;
4554 }
4555 #endif
4556
4557 static inline __ATTRS_o_ai int
vec_all_nge(__vector double __a,__vector double __b)4558 vec_all_nge(__vector double __a, __vector double __b) {
4559 int __cc;
4560 __builtin_s390_vfchedbs(__a, __b, &__cc);
4561 return __cc == 3;
4562 }
4563
4564 /*-- vec_all_ngt ------------------------------------------------------------*/
4565
4566 #if __ARCH__ >= 12
4567 static inline __ATTRS_o_ai int
vec_all_ngt(__vector float __a,__vector float __b)4568 vec_all_ngt(__vector float __a, __vector float __b) {
4569 int __cc;
4570 __builtin_s390_vfchsbs(__a, __b, &__cc);
4571 return __cc == 3;
4572 }
4573 #endif
4574
4575 static inline __ATTRS_o_ai int
vec_all_ngt(__vector double __a,__vector double __b)4576 vec_all_ngt(__vector double __a, __vector double __b) {
4577 int __cc;
4578 __builtin_s390_vfchdbs(__a, __b, &__cc);
4579 return __cc == 3;
4580 }
4581
4582 /*-- vec_all_nle ------------------------------------------------------------*/
4583
4584 #if __ARCH__ >= 12
4585 static inline __ATTRS_o_ai int
vec_all_nle(__vector float __a,__vector float __b)4586 vec_all_nle(__vector float __a, __vector float __b) {
4587 int __cc;
4588 __builtin_s390_vfchesbs(__b, __a, &__cc);
4589 return __cc == 3;
4590 }
4591 #endif
4592
4593 static inline __ATTRS_o_ai int
vec_all_nle(__vector double __a,__vector double __b)4594 vec_all_nle(__vector double __a, __vector double __b) {
4595 int __cc;
4596 __builtin_s390_vfchedbs(__b, __a, &__cc);
4597 return __cc == 3;
4598 }
4599
4600 /*-- vec_all_nlt ------------------------------------------------------------*/
4601
4602 #if __ARCH__ >= 12
4603 static inline __ATTRS_o_ai int
vec_all_nlt(__vector float __a,__vector float __b)4604 vec_all_nlt(__vector float __a, __vector float __b) {
4605 int __cc;
4606 __builtin_s390_vfchsbs(__b, __a, &__cc);
4607 return __cc == 3;
4608 }
4609 #endif
4610
4611 static inline __ATTRS_o_ai int
vec_all_nlt(__vector double __a,__vector double __b)4612 vec_all_nlt(__vector double __a, __vector double __b) {
4613 int __cc;
4614 __builtin_s390_vfchdbs(__b, __a, &__cc);
4615 return __cc == 3;
4616 }
4617
4618 /*-- vec_all_nan ------------------------------------------------------------*/
4619
4620 #if __ARCH__ >= 12
4621 static inline __ATTRS_o_ai int
vec_all_nan(__vector float __a)4622 vec_all_nan(__vector float __a) {
4623 int __cc;
4624 __builtin_s390_vftcisb(__a, 15, &__cc);
4625 return __cc == 0;
4626 }
4627 #endif
4628
4629 static inline __ATTRS_o_ai int
vec_all_nan(__vector double __a)4630 vec_all_nan(__vector double __a) {
4631 int __cc;
4632 __builtin_s390_vftcidb(__a, 15, &__cc);
4633 return __cc == 0;
4634 }
4635
4636 /*-- vec_all_numeric --------------------------------------------------------*/
4637
4638 #if __ARCH__ >= 12
4639 static inline __ATTRS_o_ai int
vec_all_numeric(__vector float __a)4640 vec_all_numeric(__vector float __a) {
4641 int __cc;
4642 __builtin_s390_vftcisb(__a, 15, &__cc);
4643 return __cc == 3;
4644 }
4645 #endif
4646
4647 static inline __ATTRS_o_ai int
vec_all_numeric(__vector double __a)4648 vec_all_numeric(__vector double __a) {
4649 int __cc;
4650 __builtin_s390_vftcidb(__a, 15, &__cc);
4651 return __cc == 3;
4652 }
4653
4654 /*-- vec_any_eq -------------------------------------------------------------*/
4655
4656 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector signed char __b)4657 vec_any_eq(__vector signed char __a, __vector signed char __b) {
4658 int __cc;
4659 __builtin_s390_vceqbs((__vector unsigned char)__a,
4660 (__vector unsigned char)__b, &__cc);
4661 return __cc <= 1;
4662 }
4663
4664 // This prototype is deprecated.
4665 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed char __a,__vector __bool char __b)4666 vec_any_eq(__vector signed char __a, __vector __bool char __b) {
4667 int __cc;
4668 __builtin_s390_vceqbs((__vector unsigned char)__a,
4669 (__vector unsigned char)__b, &__cc);
4670 return __cc <= 1;
4671 }
4672
4673 // This prototype is deprecated.
4674 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector signed char __b)4675 vec_any_eq(__vector __bool char __a, __vector signed char __b) {
4676 int __cc;
4677 __builtin_s390_vceqbs((__vector unsigned char)__a,
4678 (__vector unsigned char)__b, &__cc);
4679 return __cc <= 1;
4680 }
4681
4682 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector unsigned char __b)4683 vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
4684 int __cc;
4685 __builtin_s390_vceqbs(__a, __b, &__cc);
4686 return __cc <= 1;
4687 }
4688
4689 // This prototype is deprecated.
4690 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned char __a,__vector __bool char __b)4691 vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {
4692 int __cc;
4693 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4694 return __cc <= 1;
4695 }
4696
4697 // This prototype is deprecated.
4698 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector unsigned char __b)4699 vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {
4700 int __cc;
4701 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4702 return __cc <= 1;
4703 }
4704
4705 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool char __a,__vector __bool char __b)4706 vec_any_eq(__vector __bool char __a, __vector __bool char __b) {
4707 int __cc;
4708 __builtin_s390_vceqbs((__vector unsigned char)__a,
4709 (__vector unsigned char)__b, &__cc);
4710 return __cc <= 1;
4711 }
4712
4713 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector signed short __b)4714 vec_any_eq(__vector signed short __a, __vector signed short __b) {
4715 int __cc;
4716 __builtin_s390_vceqhs((__vector unsigned short)__a,
4717 (__vector unsigned short)__b, &__cc);
4718 return __cc <= 1;
4719 }
4720
4721 // This prototype is deprecated.
4722 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed short __a,__vector __bool short __b)4723 vec_any_eq(__vector signed short __a, __vector __bool short __b) {
4724 int __cc;
4725 __builtin_s390_vceqhs((__vector unsigned short)__a,
4726 (__vector unsigned short)__b, &__cc);
4727 return __cc <= 1;
4728 }
4729
4730 // This prototype is deprecated.
4731 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector signed short __b)4732 vec_any_eq(__vector __bool short __a, __vector signed short __b) {
4733 int __cc;
4734 __builtin_s390_vceqhs((__vector unsigned short)__a,
4735 (__vector unsigned short)__b, &__cc);
4736 return __cc <= 1;
4737 }
4738
4739 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector unsigned short __b)4740 vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
4741 int __cc;
4742 __builtin_s390_vceqhs(__a, __b, &__cc);
4743 return __cc <= 1;
4744 }
4745
4746 // This prototype is deprecated.
4747 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned short __a,__vector __bool short __b)4748 vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {
4749 int __cc;
4750 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
4751 return __cc <= 1;
4752 }
4753
4754 // This prototype is deprecated.
4755 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector unsigned short __b)4756 vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {
4757 int __cc;
4758 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
4759 return __cc <= 1;
4760 }
4761
4762 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool short __a,__vector __bool short __b)4763 vec_any_eq(__vector __bool short __a, __vector __bool short __b) {
4764 int __cc;
4765 __builtin_s390_vceqhs((__vector unsigned short)__a,
4766 (__vector unsigned short)__b, &__cc);
4767 return __cc <= 1;
4768 }
4769
4770 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector signed int __b)4771 vec_any_eq(__vector signed int __a, __vector signed int __b) {
4772 int __cc;
4773 __builtin_s390_vceqfs((__vector unsigned int)__a,
4774 (__vector unsigned int)__b, &__cc);
4775 return __cc <= 1;
4776 }
4777
4778 // This prototype is deprecated.
4779 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed int __a,__vector __bool int __b)4780 vec_any_eq(__vector signed int __a, __vector __bool int __b) {
4781 int __cc;
4782 __builtin_s390_vceqfs((__vector unsigned int)__a,
4783 (__vector unsigned int)__b, &__cc);
4784 return __cc <= 1;
4785 }
4786
4787 // This prototype is deprecated.
4788 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector signed int __b)4789 vec_any_eq(__vector __bool int __a, __vector signed int __b) {
4790 int __cc;
4791 __builtin_s390_vceqfs((__vector unsigned int)__a,
4792 (__vector unsigned int)__b, &__cc);
4793 return __cc <= 1;
4794 }
4795
4796 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector unsigned int __b)4797 vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
4798 int __cc;
4799 __builtin_s390_vceqfs(__a, __b, &__cc);
4800 return __cc <= 1;
4801 }
4802
4803 // This prototype is deprecated.
4804 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned int __a,__vector __bool int __b)4805 vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {
4806 int __cc;
4807 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
4808 return __cc <= 1;
4809 }
4810
4811 // This prototype is deprecated.
4812 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector unsigned int __b)4813 vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {
4814 int __cc;
4815 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
4816 return __cc <= 1;
4817 }
4818
4819 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool int __a,__vector __bool int __b)4820 vec_any_eq(__vector __bool int __a, __vector __bool int __b) {
4821 int __cc;
4822 __builtin_s390_vceqfs((__vector unsigned int)__a,
4823 (__vector unsigned int)__b, &__cc);
4824 return __cc <= 1;
4825 }
4826
4827 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector signed long long __b)4828 vec_any_eq(__vector signed long long __a, __vector signed long long __b) {
4829 int __cc;
4830 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4831 (__vector unsigned long long)__b, &__cc);
4832 return __cc <= 1;
4833 }
4834
4835 // This prototype is deprecated.
4836 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed long long __a,__vector __bool long long __b)4837 vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {
4838 int __cc;
4839 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4840 (__vector unsigned long long)__b, &__cc);
4841 return __cc <= 1;
4842 }
4843
4844 // This prototype is deprecated.
4845 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector signed long long __b)4846 vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {
4847 int __cc;
4848 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4849 (__vector unsigned long long)__b, &__cc);
4850 return __cc <= 1;
4851 }
4852
4853 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector unsigned long long __b)4854 vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {
4855 int __cc;
4856 __builtin_s390_vceqgs(__a, __b, &__cc);
4857 return __cc <= 1;
4858 }
4859
4860 // This prototype is deprecated.
4861 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned long long __a,__vector __bool long long __b)4862 vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {
4863 int __cc;
4864 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
4865 return __cc <= 1;
4866 }
4867
4868 // This prototype is deprecated.
4869 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector unsigned long long __b)4870 vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {
4871 int __cc;
4872 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
4873 return __cc <= 1;
4874 }
4875
4876 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool long long __a,__vector __bool long long __b)4877 vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {
4878 int __cc;
4879 __builtin_s390_vceqgs((__vector unsigned long long)__a,
4880 (__vector unsigned long long)__b, &__cc);
4881 return __cc <= 1;
4882 }
4883
4884 #if __ARCH__ >= 15
4885 static inline __ATTRS_o_ai int
vec_any_eq(__vector signed __int128 __a,__vector signed __int128 __b)4886 vec_any_eq(__vector signed __int128 __a, __vector signed __int128 __b) {
4887 int __cc;
4888 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4889 return __cc <= 1;
4890 }
4891
4892 static inline __ATTRS_o_ai int
vec_any_eq(__vector unsigned __int128 __a,__vector unsigned __int128 __b)4893 vec_any_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
4894 int __cc;
4895 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4896 return __cc <= 1;
4897 }
4898
4899 static inline __ATTRS_o_ai int
vec_any_eq(__vector __bool __int128 __a,__vector __bool __int128 __b)4900 vec_any_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {
4901 int __cc;
4902 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
4903 return __cc <= 1;
4904 }
4905 #endif
4906
4907 #if __ARCH__ >= 12
4908 static inline __ATTRS_o_ai int
vec_any_eq(__vector float __a,__vector float __b)4909 vec_any_eq(__vector float __a, __vector float __b) {
4910 int __cc;
4911 __builtin_s390_vfcesbs(__a, __b, &__cc);
4912 return __cc <= 1;
4913 }
4914 #endif
4915
4916 static inline __ATTRS_o_ai int
vec_any_eq(__vector double __a,__vector double __b)4917 vec_any_eq(__vector double __a, __vector double __b) {
4918 int __cc;
4919 __builtin_s390_vfcedbs(__a, __b, &__cc);
4920 return __cc <= 1;
4921 }
4922
4923 /*-- vec_any_ne -------------------------------------------------------------*/
4924
4925 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector signed char __b)4926 vec_any_ne(__vector signed char __a, __vector signed char __b) {
4927 int __cc;
4928 __builtin_s390_vceqbs((__vector unsigned char)__a,
4929 (__vector unsigned char)__b, &__cc);
4930 return __cc != 0;
4931 }
4932
4933 // This prototype is deprecated.
4934 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed char __a,__vector __bool char __b)4935 vec_any_ne(__vector signed char __a, __vector __bool char __b) {
4936 int __cc;
4937 __builtin_s390_vceqbs((__vector unsigned char)__a,
4938 (__vector unsigned char)__b, &__cc);
4939 return __cc != 0;
4940 }
4941
4942 // This prototype is deprecated.
4943 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector signed char __b)4944 vec_any_ne(__vector __bool char __a, __vector signed char __b) {
4945 int __cc;
4946 __builtin_s390_vceqbs((__vector unsigned char)__a,
4947 (__vector unsigned char)__b, &__cc);
4948 return __cc != 0;
4949 }
4950
4951 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector unsigned char __b)4952 vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
4953 int __cc;
4954 __builtin_s390_vceqbs(__a, __b, &__cc);
4955 return __cc != 0;
4956 }
4957
4958 // This prototype is deprecated.
4959 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned char __a,__vector __bool char __b)4960 vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {
4961 int __cc;
4962 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);
4963 return __cc != 0;
4964 }
4965
4966 // This prototype is deprecated.
4967 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector unsigned char __b)4968 vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {
4969 int __cc;
4970 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);
4971 return __cc != 0;
4972 }
4973
4974 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool char __a,__vector __bool char __b)4975 vec_any_ne(__vector __bool char __a, __vector __bool char __b) {
4976 int __cc;
4977 __builtin_s390_vceqbs((__vector unsigned char)__a,
4978 (__vector unsigned char)__b, &__cc);
4979 return __cc != 0;
4980 }
4981
4982 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector signed short __b)4983 vec_any_ne(__vector signed short __a, __vector signed short __b) {
4984 int __cc;
4985 __builtin_s390_vceqhs((__vector unsigned short)__a,
4986 (__vector unsigned short)__b, &__cc);
4987 return __cc != 0;
4988 }
4989
4990 // This prototype is deprecated.
4991 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed short __a,__vector __bool short __b)4992 vec_any_ne(__vector signed short __a, __vector __bool short __b) {
4993 int __cc;
4994 __builtin_s390_vceqhs((__vector unsigned short)__a,
4995 (__vector unsigned short)__b, &__cc);
4996 return __cc != 0;
4997 }
4998
4999 // This prototype is deprecated.
5000 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector signed short __b)5001 vec_any_ne(__vector __bool short __a, __vector signed short __b) {
5002 int __cc;
5003 __builtin_s390_vceqhs((__vector unsigned short)__a,
5004 (__vector unsigned short)__b, &__cc);
5005 return __cc != 0;
5006 }
5007
5008 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector unsigned short __b)5009 vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
5010 int __cc;
5011 __builtin_s390_vceqhs(__a, __b, &__cc);
5012 return __cc != 0;
5013 }
5014
5015 // This prototype is deprecated.
5016 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned short __a,__vector __bool short __b)5017 vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {
5018 int __cc;
5019 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);
5020 return __cc != 0;
5021 }
5022
5023 // This prototype is deprecated.
5024 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector unsigned short __b)5025 vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {
5026 int __cc;
5027 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);
5028 return __cc != 0;
5029 }
5030
5031 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool short __a,__vector __bool short __b)5032 vec_any_ne(__vector __bool short __a, __vector __bool short __b) {
5033 int __cc;
5034 __builtin_s390_vceqhs((__vector unsigned short)__a,
5035 (__vector unsigned short)__b, &__cc);
5036 return __cc != 0;
5037 }
5038
5039 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector signed int __b)5040 vec_any_ne(__vector signed int __a, __vector signed int __b) {
5041 int __cc;
5042 __builtin_s390_vceqfs((__vector unsigned int)__a,
5043 (__vector unsigned int)__b, &__cc);
5044 return __cc != 0;
5045 }
5046
5047 // This prototype is deprecated.
5048 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed int __a,__vector __bool int __b)5049 vec_any_ne(__vector signed int __a, __vector __bool int __b) {
5050 int __cc;
5051 __builtin_s390_vceqfs((__vector unsigned int)__a,
5052 (__vector unsigned int)__b, &__cc);
5053 return __cc != 0;
5054 }
5055
5056 // This prototype is deprecated.
5057 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector signed int __b)5058 vec_any_ne(__vector __bool int __a, __vector signed int __b) {
5059 int __cc;
5060 __builtin_s390_vceqfs((__vector unsigned int)__a,
5061 (__vector unsigned int)__b, &__cc);
5062 return __cc != 0;
5063 }
5064
5065 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector unsigned int __b)5066 vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
5067 int __cc;
5068 __builtin_s390_vceqfs(__a, __b, &__cc);
5069 return __cc != 0;
5070 }
5071
5072 // This prototype is deprecated.
5073 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned int __a,__vector __bool int __b)5074 vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {
5075 int __cc;
5076 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);
5077 return __cc != 0;
5078 }
5079
5080 // This prototype is deprecated.
5081 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector unsigned int __b)5082 vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {
5083 int __cc;
5084 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);
5085 return __cc != 0;
5086 }
5087
5088 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool int __a,__vector __bool int __b)5089 vec_any_ne(__vector __bool int __a, __vector __bool int __b) {
5090 int __cc;
5091 __builtin_s390_vceqfs((__vector unsigned int)__a,
5092 (__vector unsigned int)__b, &__cc);
5093 return __cc != 0;
5094 }
5095
5096 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector signed long long __b)5097 vec_any_ne(__vector signed long long __a, __vector signed long long __b) {
5098 int __cc;
5099 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5100 (__vector unsigned long long)__b, &__cc);
5101 return __cc != 0;
5102 }
5103
5104 // This prototype is deprecated.
5105 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed long long __a,__vector __bool long long __b)5106 vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {
5107 int __cc;
5108 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5109 (__vector unsigned long long)__b, &__cc);
5110 return __cc != 0;
5111 }
5112
5113 // This prototype is deprecated.
5114 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector signed long long __b)5115 vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {
5116 int __cc;
5117 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5118 (__vector unsigned long long)__b, &__cc);
5119 return __cc != 0;
5120 }
5121
5122 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector unsigned long long __b)5123 vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {
5124 int __cc;
5125 __builtin_s390_vceqgs(__a, __b, &__cc);
5126 return __cc != 0;
5127 }
5128
5129 // This prototype is deprecated.
5130 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned long long __a,__vector __bool long long __b)5131 vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {
5132 int __cc;
5133 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);
5134 return __cc != 0;
5135 }
5136
5137 // This prototype is deprecated.
5138 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector unsigned long long __b)5139 vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {
5140 int __cc;
5141 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);
5142 return __cc != 0;
5143 }
5144
5145 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool long long __a,__vector __bool long long __b)5146 vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {
5147 int __cc;
5148 __builtin_s390_vceqgs((__vector unsigned long long)__a,
5149 (__vector unsigned long long)__b, &__cc);
5150 return __cc != 0;
5151 }
5152
5153 #if __ARCH__ >= 15
5154 static inline __ATTRS_o_ai int
vec_any_ne(__vector signed __int128 __a,__vector signed __int128 __b)5155 vec_any_ne(__vector signed __int128 __a, __vector signed __int128 __b) {
5156 int __cc;
5157 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5158 return __cc != 0;
5159 }
5160
5161 static inline __ATTRS_o_ai int
vec_any_ne(__vector unsigned __int128 __a,__vector unsigned __int128 __b)5162 vec_any_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5163 int __cc;
5164 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5165 return __cc != 0;
5166 }
5167
5168 static inline __ATTRS_o_ai int
vec_any_ne(__vector __bool __int128 __a,__vector __bool __int128 __b)5169 vec_any_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {
5170 int __cc;
5171 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5172 return __cc != 0;
5173 }
5174 #endif
5175
5176 #if __ARCH__ >= 12
5177 static inline __ATTRS_o_ai int
vec_any_ne(__vector float __a,__vector float __b)5178 vec_any_ne(__vector float __a, __vector float __b) {
5179 int __cc;
5180 __builtin_s390_vfcesbs(__a, __b, &__cc);
5181 return __cc != 0;
5182 }
5183 #endif
5184
5185 static inline __ATTRS_o_ai int
vec_any_ne(__vector double __a,__vector double __b)5186 vec_any_ne(__vector double __a, __vector double __b) {
5187 int __cc;
5188 __builtin_s390_vfcedbs(__a, __b, &__cc);
5189 return __cc != 0;
5190 }
5191
5192 /*-- vec_any_ge -------------------------------------------------------------*/
5193
5194 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector signed char __b)5195 vec_any_ge(__vector signed char __a, __vector signed char __b) {
5196 int __cc;
5197 __builtin_s390_vchbs(__b, __a, &__cc);
5198 return __cc != 0;
5199 }
5200
5201 // This prototype is deprecated.
5202 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed char __a,__vector __bool char __b)5203 vec_any_ge(__vector signed char __a, __vector __bool char __b) {
5204 int __cc;
5205 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5206 return __cc != 0;
5207 }
5208
5209 // This prototype is deprecated.
5210 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector signed char __b)5211 vec_any_ge(__vector __bool char __a, __vector signed char __b) {
5212 int __cc;
5213 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5214 return __cc != 0;
5215 }
5216
5217 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector unsigned char __b)5218 vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {
5219 int __cc;
5220 __builtin_s390_vchlbs(__b, __a, &__cc);
5221 return __cc != 0;
5222 }
5223
5224 // This prototype is deprecated.
5225 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned char __a,__vector __bool char __b)5226 vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {
5227 int __cc;
5228 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5229 return __cc != 0;
5230 }
5231
5232 // This prototype is deprecated.
5233 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector unsigned char __b)5234 vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {
5235 int __cc;
5236 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5237 return __cc != 0;
5238 }
5239
5240 // This prototype is deprecated.
5241 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool char __a,__vector __bool char __b)5242 vec_any_ge(__vector __bool char __a, __vector __bool char __b) {
5243 int __cc;
5244 __builtin_s390_vchlbs((__vector unsigned char)__b,
5245 (__vector unsigned char)__a, &__cc);
5246 return __cc != 0;
5247 }
5248
5249 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector signed short __b)5250 vec_any_ge(__vector signed short __a, __vector signed short __b) {
5251 int __cc;
5252 __builtin_s390_vchhs(__b, __a, &__cc);
5253 return __cc != 0;
5254 }
5255
5256 // This prototype is deprecated.
5257 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed short __a,__vector __bool short __b)5258 vec_any_ge(__vector signed short __a, __vector __bool short __b) {
5259 int __cc;
5260 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
5261 return __cc != 0;
5262 }
5263
5264 // This prototype is deprecated.
5265 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector signed short __b)5266 vec_any_ge(__vector __bool short __a, __vector signed short __b) {
5267 int __cc;
5268 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
5269 return __cc != 0;
5270 }
5271
5272 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector unsigned short __b)5273 vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {
5274 int __cc;
5275 __builtin_s390_vchlhs(__b, __a, &__cc);
5276 return __cc != 0;
5277 }
5278
5279 // This prototype is deprecated.
5280 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned short __a,__vector __bool short __b)5281 vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {
5282 int __cc;
5283 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
5284 return __cc != 0;
5285 }
5286
5287 // This prototype is deprecated.
5288 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector unsigned short __b)5289 vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {
5290 int __cc;
5291 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
5292 return __cc != 0;
5293 }
5294
5295 // This prototype is deprecated.
5296 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool short __a,__vector __bool short __b)5297 vec_any_ge(__vector __bool short __a, __vector __bool short __b) {
5298 int __cc;
5299 __builtin_s390_vchlhs((__vector unsigned short)__b,
5300 (__vector unsigned short)__a, &__cc);
5301 return __cc != 0;
5302 }
5303
5304 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector signed int __b)5305 vec_any_ge(__vector signed int __a, __vector signed int __b) {
5306 int __cc;
5307 __builtin_s390_vchfs(__b, __a, &__cc);
5308 return __cc != 0;
5309 }
5310
5311 // This prototype is deprecated.
5312 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed int __a,__vector __bool int __b)5313 vec_any_ge(__vector signed int __a, __vector __bool int __b) {
5314 int __cc;
5315 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
5316 return __cc != 0;
5317 }
5318
5319 // This prototype is deprecated.
5320 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector signed int __b)5321 vec_any_ge(__vector __bool int __a, __vector signed int __b) {
5322 int __cc;
5323 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
5324 return __cc != 0;
5325 }
5326
5327 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector unsigned int __b)5328 vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {
5329 int __cc;
5330 __builtin_s390_vchlfs(__b, __a, &__cc);
5331 return __cc != 0;
5332 }
5333
5334 // This prototype is deprecated.
5335 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned int __a,__vector __bool int __b)5336 vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {
5337 int __cc;
5338 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
5339 return __cc != 0;
5340 }
5341
5342 // This prototype is deprecated.
5343 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector unsigned int __b)5344 vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {
5345 int __cc;
5346 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
5347 return __cc != 0;
5348 }
5349
5350 // This prototype is deprecated.
5351 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool int __a,__vector __bool int __b)5352 vec_any_ge(__vector __bool int __a, __vector __bool int __b) {
5353 int __cc;
5354 __builtin_s390_vchlfs((__vector unsigned int)__b,
5355 (__vector unsigned int)__a, &__cc);
5356 return __cc != 0;
5357 }
5358
5359 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector signed long long __b)5360 vec_any_ge(__vector signed long long __a, __vector signed long long __b) {
5361 int __cc;
5362 __builtin_s390_vchgs(__b, __a, &__cc);
5363 return __cc != 0;
5364 }
5365
5366 // This prototype is deprecated.
5367 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed long long __a,__vector __bool long long __b)5368 vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {
5369 int __cc;
5370 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
5371 return __cc != 0;
5372 }
5373
5374 // This prototype is deprecated.
5375 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector signed long long __b)5376 vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {
5377 int __cc;
5378 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
5379 return __cc != 0;
5380 }
5381
5382 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector unsigned long long __b)5383 vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {
5384 int __cc;
5385 __builtin_s390_vchlgs(__b, __a, &__cc);
5386 return __cc != 0;
5387 }
5388
5389 // This prototype is deprecated.
5390 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned long long __a,__vector __bool long long __b)5391 vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {
5392 int __cc;
5393 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
5394 return __cc != 0;
5395 }
5396
5397 // This prototype is deprecated.
5398 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector unsigned long long __b)5399 vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {
5400 int __cc;
5401 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
5402 return __cc != 0;
5403 }
5404
5405 // This prototype is deprecated.
5406 static inline __ATTRS_o_ai int
vec_any_ge(__vector __bool long long __a,__vector __bool long long __b)5407 vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {
5408 int __cc;
5409 __builtin_s390_vchlgs((__vector unsigned long long)__b,
5410 (__vector unsigned long long)__a, &__cc);
5411 return __cc != 0;
5412 }
5413
5414 #if __ARCH__ >= 15
5415 static inline __ATTRS_o_ai int
vec_any_ge(__vector signed __int128 __a,__vector signed __int128 __b)5416 vec_any_ge(__vector signed __int128 __a, __vector signed __int128 __b) {
5417 int __cc;
5418 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
5419 return __cc != 0;
5420 }
5421
5422 static inline __ATTRS_o_ai int
vec_any_ge(__vector unsigned __int128 __a,__vector unsigned __int128 __b)5423 vec_any_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5424 int __cc;
5425 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
5426 return __cc != 0;
5427 }
5428 #endif
5429
5430 #if __ARCH__ >= 12
5431 static inline __ATTRS_o_ai int
vec_any_ge(__vector float __a,__vector float __b)5432 vec_any_ge(__vector float __a, __vector float __b) {
5433 int __cc;
5434 __builtin_s390_vfchesbs(__a, __b, &__cc);
5435 return __cc <= 1;
5436 }
5437 #endif
5438
5439 static inline __ATTRS_o_ai int
vec_any_ge(__vector double __a,__vector double __b)5440 vec_any_ge(__vector double __a, __vector double __b) {
5441 int __cc;
5442 __builtin_s390_vfchedbs(__a, __b, &__cc);
5443 return __cc <= 1;
5444 }
5445
5446 /*-- vec_any_gt -------------------------------------------------------------*/
5447
5448 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector signed char __b)5449 vec_any_gt(__vector signed char __a, __vector signed char __b) {
5450 int __cc;
5451 __builtin_s390_vchbs(__a, __b, &__cc);
5452 return __cc <= 1;
5453 }
5454
5455 // This prototype is deprecated.
5456 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed char __a,__vector __bool char __b)5457 vec_any_gt(__vector signed char __a, __vector __bool char __b) {
5458 int __cc;
5459 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5460 return __cc <= 1;
5461 }
5462
5463 // This prototype is deprecated.
5464 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector signed char __b)5465 vec_any_gt(__vector __bool char __a, __vector signed char __b) {
5466 int __cc;
5467 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5468 return __cc <= 1;
5469 }
5470
5471 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector unsigned char __b)5472 vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {
5473 int __cc;
5474 __builtin_s390_vchlbs(__a, __b, &__cc);
5475 return __cc <= 1;
5476 }
5477
5478 // This prototype is deprecated.
5479 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned char __a,__vector __bool char __b)5480 vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {
5481 int __cc;
5482 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5483 return __cc <= 1;
5484 }
5485
5486 // This prototype is deprecated.
5487 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector unsigned char __b)5488 vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {
5489 int __cc;
5490 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5491 return __cc <= 1;
5492 }
5493
5494 // This prototype is deprecated.
5495 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool char __a,__vector __bool char __b)5496 vec_any_gt(__vector __bool char __a, __vector __bool char __b) {
5497 int __cc;
5498 __builtin_s390_vchlbs((__vector unsigned char)__a,
5499 (__vector unsigned char)__b, &__cc);
5500 return __cc <= 1;
5501 }
5502
5503 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector signed short __b)5504 vec_any_gt(__vector signed short __a, __vector signed short __b) {
5505 int __cc;
5506 __builtin_s390_vchhs(__a, __b, &__cc);
5507 return __cc <= 1;
5508 }
5509
5510 // This prototype is deprecated.
5511 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed short __a,__vector __bool short __b)5512 vec_any_gt(__vector signed short __a, __vector __bool short __b) {
5513 int __cc;
5514 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5515 return __cc <= 1;
5516 }
5517
5518 // This prototype is deprecated.
5519 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector signed short __b)5520 vec_any_gt(__vector __bool short __a, __vector signed short __b) {
5521 int __cc;
5522 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5523 return __cc <= 1;
5524 }
5525
5526 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector unsigned short __b)5527 vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {
5528 int __cc;
5529 __builtin_s390_vchlhs(__a, __b, &__cc);
5530 return __cc <= 1;
5531 }
5532
5533 // This prototype is deprecated.
5534 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned short __a,__vector __bool short __b)5535 vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {
5536 int __cc;
5537 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5538 return __cc <= 1;
5539 }
5540
5541 // This prototype is deprecated.
5542 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector unsigned short __b)5543 vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {
5544 int __cc;
5545 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5546 return __cc <= 1;
5547 }
5548
5549 // This prototype is deprecated.
5550 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool short __a,__vector __bool short __b)5551 vec_any_gt(__vector __bool short __a, __vector __bool short __b) {
5552 int __cc;
5553 __builtin_s390_vchlhs((__vector unsigned short)__a,
5554 (__vector unsigned short)__b, &__cc);
5555 return __cc <= 1;
5556 }
5557
5558 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector signed int __b)5559 vec_any_gt(__vector signed int __a, __vector signed int __b) {
5560 int __cc;
5561 __builtin_s390_vchfs(__a, __b, &__cc);
5562 return __cc <= 1;
5563 }
5564
5565 // This prototype is deprecated.
5566 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed int __a,__vector __bool int __b)5567 vec_any_gt(__vector signed int __a, __vector __bool int __b) {
5568 int __cc;
5569 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5570 return __cc <= 1;
5571 }
5572
5573 // This prototype is deprecated.
5574 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector signed int __b)5575 vec_any_gt(__vector __bool int __a, __vector signed int __b) {
5576 int __cc;
5577 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5578 return __cc <= 1;
5579 }
5580
5581 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector unsigned int __b)5582 vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {
5583 int __cc;
5584 __builtin_s390_vchlfs(__a, __b, &__cc);
5585 return __cc <= 1;
5586 }
5587
5588 // This prototype is deprecated.
5589 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned int __a,__vector __bool int __b)5590 vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {
5591 int __cc;
5592 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5593 return __cc <= 1;
5594 }
5595
5596 // This prototype is deprecated.
5597 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector unsigned int __b)5598 vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {
5599 int __cc;
5600 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5601 return __cc <= 1;
5602 }
5603
5604 // This prototype is deprecated.
5605 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool int __a,__vector __bool int __b)5606 vec_any_gt(__vector __bool int __a, __vector __bool int __b) {
5607 int __cc;
5608 __builtin_s390_vchlfs((__vector unsigned int)__a,
5609 (__vector unsigned int)__b, &__cc);
5610 return __cc <= 1;
5611 }
5612
5613 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector signed long long __b)5614 vec_any_gt(__vector signed long long __a, __vector signed long long __b) {
5615 int __cc;
5616 __builtin_s390_vchgs(__a, __b, &__cc);
5617 return __cc <= 1;
5618 }
5619
5620 // This prototype is deprecated.
5621 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed long long __a,__vector __bool long long __b)5622 vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {
5623 int __cc;
5624 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5625 return __cc <= 1;
5626 }
5627
5628 // This prototype is deprecated.
5629 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector signed long long __b)5630 vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {
5631 int __cc;
5632 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5633 return __cc <= 1;
5634 }
5635
5636 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector unsigned long long __b)5637 vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {
5638 int __cc;
5639 __builtin_s390_vchlgs(__a, __b, &__cc);
5640 return __cc <= 1;
5641 }
5642
5643 // This prototype is deprecated.
5644 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned long long __a,__vector __bool long long __b)5645 vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {
5646 int __cc;
5647 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5648 return __cc <= 1;
5649 }
5650
5651 // This prototype is deprecated.
5652 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector unsigned long long __b)5653 vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {
5654 int __cc;
5655 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5656 return __cc <= 1;
5657 }
5658
5659 // This prototype is deprecated.
5660 static inline __ATTRS_o_ai int
vec_any_gt(__vector __bool long long __a,__vector __bool long long __b)5661 vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {
5662 int __cc;
5663 __builtin_s390_vchlgs((__vector unsigned long long)__a,
5664 (__vector unsigned long long)__b, &__cc);
5665 return __cc <= 1;
5666 }
5667
5668 #if __ARCH__ >= 15
5669 static inline __ATTRS_o_ai int
vec_any_gt(__vector signed __int128 __a,__vector signed __int128 __b)5670 vec_any_gt(__vector signed __int128 __a, __vector signed __int128 __b) {
5671 int __cc;
5672 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
5673 return __cc <= 1;
5674 }
5675
5676 static inline __ATTRS_o_ai int
vec_any_gt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)5677 vec_any_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5678 int __cc;
5679 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5680 return __cc <= 1;
5681 }
5682 #endif
5683
5684 #if __ARCH__ >= 12
5685 static inline __ATTRS_o_ai int
vec_any_gt(__vector float __a,__vector float __b)5686 vec_any_gt(__vector float __a, __vector float __b) {
5687 int __cc;
5688 __builtin_s390_vfchsbs(__a, __b, &__cc);
5689 return __cc <= 1;
5690 }
5691 #endif
5692
5693 static inline __ATTRS_o_ai int
vec_any_gt(__vector double __a,__vector double __b)5694 vec_any_gt(__vector double __a, __vector double __b) {
5695 int __cc;
5696 __builtin_s390_vfchdbs(__a, __b, &__cc);
5697 return __cc <= 1;
5698 }
5699
5700 /*-- vec_any_le -------------------------------------------------------------*/
5701
5702 static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector signed char __b)5703 vec_any_le(__vector signed char __a, __vector signed char __b) {
5704 int __cc;
5705 __builtin_s390_vchbs(__a, __b, &__cc);
5706 return __cc != 0;
5707 }
5708
5709 // This prototype is deprecated.
5710 static inline __ATTRS_o_ai int
vec_any_le(__vector signed char __a,__vector __bool char __b)5711 vec_any_le(__vector signed char __a, __vector __bool char __b) {
5712 int __cc;
5713 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);
5714 return __cc != 0;
5715 }
5716
5717 // This prototype is deprecated.
5718 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector signed char __b)5719 vec_any_le(__vector __bool char __a, __vector signed char __b) {
5720 int __cc;
5721 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);
5722 return __cc != 0;
5723 }
5724
5725 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector unsigned char __b)5726 vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {
5727 int __cc;
5728 __builtin_s390_vchlbs(__a, __b, &__cc);
5729 return __cc != 0;
5730 }
5731
5732 // This prototype is deprecated.
5733 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned char __a,__vector __bool char __b)5734 vec_any_le(__vector unsigned char __a, __vector __bool char __b) {
5735 int __cc;
5736 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);
5737 return __cc != 0;
5738 }
5739
5740 // This prototype is deprecated.
5741 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector unsigned char __b)5742 vec_any_le(__vector __bool char __a, __vector unsigned char __b) {
5743 int __cc;
5744 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);
5745 return __cc != 0;
5746 }
5747
5748 // This prototype is deprecated.
5749 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool char __a,__vector __bool char __b)5750 vec_any_le(__vector __bool char __a, __vector __bool char __b) {
5751 int __cc;
5752 __builtin_s390_vchlbs((__vector unsigned char)__a,
5753 (__vector unsigned char)__b, &__cc);
5754 return __cc != 0;
5755 }
5756
5757 static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector signed short __b)5758 vec_any_le(__vector signed short __a, __vector signed short __b) {
5759 int __cc;
5760 __builtin_s390_vchhs(__a, __b, &__cc);
5761 return __cc != 0;
5762 }
5763
5764 // This prototype is deprecated.
5765 static inline __ATTRS_o_ai int
vec_any_le(__vector signed short __a,__vector __bool short __b)5766 vec_any_le(__vector signed short __a, __vector __bool short __b) {
5767 int __cc;
5768 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);
5769 return __cc != 0;
5770 }
5771
5772 // This prototype is deprecated.
5773 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector signed short __b)5774 vec_any_le(__vector __bool short __a, __vector signed short __b) {
5775 int __cc;
5776 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);
5777 return __cc != 0;
5778 }
5779
5780 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector unsigned short __b)5781 vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {
5782 int __cc;
5783 __builtin_s390_vchlhs(__a, __b, &__cc);
5784 return __cc != 0;
5785 }
5786
5787 // This prototype is deprecated.
5788 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned short __a,__vector __bool short __b)5789 vec_any_le(__vector unsigned short __a, __vector __bool short __b) {
5790 int __cc;
5791 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);
5792 return __cc != 0;
5793 }
5794
5795 // This prototype is deprecated.
5796 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector unsigned short __b)5797 vec_any_le(__vector __bool short __a, __vector unsigned short __b) {
5798 int __cc;
5799 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);
5800 return __cc != 0;
5801 }
5802
5803 // This prototype is deprecated.
5804 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool short __a,__vector __bool short __b)5805 vec_any_le(__vector __bool short __a, __vector __bool short __b) {
5806 int __cc;
5807 __builtin_s390_vchlhs((__vector unsigned short)__a,
5808 (__vector unsigned short)__b, &__cc);
5809 return __cc != 0;
5810 }
5811
5812 static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector signed int __b)5813 vec_any_le(__vector signed int __a, __vector signed int __b) {
5814 int __cc;
5815 __builtin_s390_vchfs(__a, __b, &__cc);
5816 return __cc != 0;
5817 }
5818
5819 // This prototype is deprecated.
5820 static inline __ATTRS_o_ai int
vec_any_le(__vector signed int __a,__vector __bool int __b)5821 vec_any_le(__vector signed int __a, __vector __bool int __b) {
5822 int __cc;
5823 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);
5824 return __cc != 0;
5825 }
5826
5827 // This prototype is deprecated.
5828 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector signed int __b)5829 vec_any_le(__vector __bool int __a, __vector signed int __b) {
5830 int __cc;
5831 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);
5832 return __cc != 0;
5833 }
5834
5835 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector unsigned int __b)5836 vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {
5837 int __cc;
5838 __builtin_s390_vchlfs(__a, __b, &__cc);
5839 return __cc != 0;
5840 }
5841
5842 // This prototype is deprecated.
5843 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned int __a,__vector __bool int __b)5844 vec_any_le(__vector unsigned int __a, __vector __bool int __b) {
5845 int __cc;
5846 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);
5847 return __cc != 0;
5848 }
5849
5850 // This prototype is deprecated.
5851 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector unsigned int __b)5852 vec_any_le(__vector __bool int __a, __vector unsigned int __b) {
5853 int __cc;
5854 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);
5855 return __cc != 0;
5856 }
5857
5858 // This prototype is deprecated.
5859 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool int __a,__vector __bool int __b)5860 vec_any_le(__vector __bool int __a, __vector __bool int __b) {
5861 int __cc;
5862 __builtin_s390_vchlfs((__vector unsigned int)__a,
5863 (__vector unsigned int)__b, &__cc);
5864 return __cc != 0;
5865 }
5866
5867 static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector signed long long __b)5868 vec_any_le(__vector signed long long __a, __vector signed long long __b) {
5869 int __cc;
5870 __builtin_s390_vchgs(__a, __b, &__cc);
5871 return __cc != 0;
5872 }
5873
5874 // This prototype is deprecated.
5875 static inline __ATTRS_o_ai int
vec_any_le(__vector signed long long __a,__vector __bool long long __b)5876 vec_any_le(__vector signed long long __a, __vector __bool long long __b) {
5877 int __cc;
5878 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);
5879 return __cc != 0;
5880 }
5881
5882 // This prototype is deprecated.
5883 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector signed long long __b)5884 vec_any_le(__vector __bool long long __a, __vector signed long long __b) {
5885 int __cc;
5886 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);
5887 return __cc != 0;
5888 }
5889
5890 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector unsigned long long __b)5891 vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {
5892 int __cc;
5893 __builtin_s390_vchlgs(__a, __b, &__cc);
5894 return __cc != 0;
5895 }
5896
5897 // This prototype is deprecated.
5898 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned long long __a,__vector __bool long long __b)5899 vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {
5900 int __cc;
5901 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);
5902 return __cc != 0;
5903 }
5904
5905 // This prototype is deprecated.
5906 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector unsigned long long __b)5907 vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {
5908 int __cc;
5909 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);
5910 return __cc != 0;
5911 }
5912
5913 // This prototype is deprecated.
5914 static inline __ATTRS_o_ai int
vec_any_le(__vector __bool long long __a,__vector __bool long long __b)5915 vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {
5916 int __cc;
5917 __builtin_s390_vchlgs((__vector unsigned long long)__a,
5918 (__vector unsigned long long)__b, &__cc);
5919 return __cc != 0;
5920 }
5921
5922 #if __ARCH__ >= 15
5923 static inline __ATTRS_o_ai int
vec_any_le(__vector signed __int128 __a,__vector signed __int128 __b)5924 vec_any_le(__vector signed __int128 __a, __vector signed __int128 __b) {
5925 int __cc;
5926 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);
5927 return __cc != 0;
5928 }
5929
5930 static inline __ATTRS_o_ai int
vec_any_le(__vector unsigned __int128 __a,__vector unsigned __int128 __b)5931 vec_any_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
5932 int __cc;
5933 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);
5934 return __cc != 0;
5935 }
5936 #endif
5937
5938 #if __ARCH__ >= 12
5939 static inline __ATTRS_o_ai int
vec_any_le(__vector float __a,__vector float __b)5940 vec_any_le(__vector float __a, __vector float __b) {
5941 int __cc;
5942 __builtin_s390_vfchesbs(__b, __a, &__cc);
5943 return __cc <= 1;
5944 }
5945 #endif
5946
5947 static inline __ATTRS_o_ai int
vec_any_le(__vector double __a,__vector double __b)5948 vec_any_le(__vector double __a, __vector double __b) {
5949 int __cc;
5950 __builtin_s390_vfchedbs(__b, __a, &__cc);
5951 return __cc <= 1;
5952 }
5953
5954 /*-- vec_any_lt -------------------------------------------------------------*/
5955
5956 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector signed char __b)5957 vec_any_lt(__vector signed char __a, __vector signed char __b) {
5958 int __cc;
5959 __builtin_s390_vchbs(__b, __a, &__cc);
5960 return __cc <= 1;
5961 }
5962
5963 // This prototype is deprecated.
5964 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed char __a,__vector __bool char __b)5965 vec_any_lt(__vector signed char __a, __vector __bool char __b) {
5966 int __cc;
5967 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);
5968 return __cc <= 1;
5969 }
5970
5971 // This prototype is deprecated.
5972 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector signed char __b)5973 vec_any_lt(__vector __bool char __a, __vector signed char __b) {
5974 int __cc;
5975 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);
5976 return __cc <= 1;
5977 }
5978
5979 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector unsigned char __b)5980 vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {
5981 int __cc;
5982 __builtin_s390_vchlbs(__b, __a, &__cc);
5983 return __cc <= 1;
5984 }
5985
5986 // This prototype is deprecated.
5987 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned char __a,__vector __bool char __b)5988 vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {
5989 int __cc;
5990 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);
5991 return __cc <= 1;
5992 }
5993
5994 // This prototype is deprecated.
5995 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector unsigned char __b)5996 vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {
5997 int __cc;
5998 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);
5999 return __cc <= 1;
6000 }
6001
6002 // This prototype is deprecated.
6003 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool char __a,__vector __bool char __b)6004 vec_any_lt(__vector __bool char __a, __vector __bool char __b) {
6005 int __cc;
6006 __builtin_s390_vchlbs((__vector unsigned char)__b,
6007 (__vector unsigned char)__a, &__cc);
6008 return __cc <= 1;
6009 }
6010
6011 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector signed short __b)6012 vec_any_lt(__vector signed short __a, __vector signed short __b) {
6013 int __cc;
6014 __builtin_s390_vchhs(__b, __a, &__cc);
6015 return __cc <= 1;
6016 }
6017
6018 // This prototype is deprecated.
6019 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed short __a,__vector __bool short __b)6020 vec_any_lt(__vector signed short __a, __vector __bool short __b) {
6021 int __cc;
6022 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);
6023 return __cc <= 1;
6024 }
6025
6026 // This prototype is deprecated.
6027 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector signed short __b)6028 vec_any_lt(__vector __bool short __a, __vector signed short __b) {
6029 int __cc;
6030 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);
6031 return __cc <= 1;
6032 }
6033
6034 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector unsigned short __b)6035 vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {
6036 int __cc;
6037 __builtin_s390_vchlhs(__b, __a, &__cc);
6038 return __cc <= 1;
6039 }
6040
6041 // This prototype is deprecated.
6042 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned short __a,__vector __bool short __b)6043 vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {
6044 int __cc;
6045 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);
6046 return __cc <= 1;
6047 }
6048
6049 // This prototype is deprecated.
6050 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector unsigned short __b)6051 vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {
6052 int __cc;
6053 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);
6054 return __cc <= 1;
6055 }
6056
6057 // This prototype is deprecated.
6058 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool short __a,__vector __bool short __b)6059 vec_any_lt(__vector __bool short __a, __vector __bool short __b) {
6060 int __cc;
6061 __builtin_s390_vchlhs((__vector unsigned short)__b,
6062 (__vector unsigned short)__a, &__cc);
6063 return __cc <= 1;
6064 }
6065
6066 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector signed int __b)6067 vec_any_lt(__vector signed int __a, __vector signed int __b) {
6068 int __cc;
6069 __builtin_s390_vchfs(__b, __a, &__cc);
6070 return __cc <= 1;
6071 }
6072
6073 // This prototype is deprecated.
6074 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed int __a,__vector __bool int __b)6075 vec_any_lt(__vector signed int __a, __vector __bool int __b) {
6076 int __cc;
6077 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);
6078 return __cc <= 1;
6079 }
6080
6081 // This prototype is deprecated.
6082 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector signed int __b)6083 vec_any_lt(__vector __bool int __a, __vector signed int __b) {
6084 int __cc;
6085 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);
6086 return __cc <= 1;
6087 }
6088
6089 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector unsigned int __b)6090 vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {
6091 int __cc;
6092 __builtin_s390_vchlfs(__b, __a, &__cc);
6093 return __cc <= 1;
6094 }
6095
6096 // This prototype is deprecated.
6097 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned int __a,__vector __bool int __b)6098 vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {
6099 int __cc;
6100 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);
6101 return __cc <= 1;
6102 }
6103
6104 // This prototype is deprecated.
6105 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector unsigned int __b)6106 vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {
6107 int __cc;
6108 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);
6109 return __cc <= 1;
6110 }
6111
6112 // This prototype is deprecated.
6113 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool int __a,__vector __bool int __b)6114 vec_any_lt(__vector __bool int __a, __vector __bool int __b) {
6115 int __cc;
6116 __builtin_s390_vchlfs((__vector unsigned int)__b,
6117 (__vector unsigned int)__a, &__cc);
6118 return __cc <= 1;
6119 }
6120
6121 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector signed long long __b)6122 vec_any_lt(__vector signed long long __a, __vector signed long long __b) {
6123 int __cc;
6124 __builtin_s390_vchgs(__b, __a, &__cc);
6125 return __cc <= 1;
6126 }
6127
6128 // This prototype is deprecated.
6129 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed long long __a,__vector __bool long long __b)6130 vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {
6131 int __cc;
6132 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);
6133 return __cc <= 1;
6134 }
6135
6136 // This prototype is deprecated.
6137 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector signed long long __b)6138 vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {
6139 int __cc;
6140 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);
6141 return __cc <= 1;
6142 }
6143
6144 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector unsigned long long __b)6145 vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {
6146 int __cc;
6147 __builtin_s390_vchlgs(__b, __a, &__cc);
6148 return __cc <= 1;
6149 }
6150
6151 // This prototype is deprecated.
6152 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned long long __a,__vector __bool long long __b)6153 vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {
6154 int __cc;
6155 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);
6156 return __cc <= 1;
6157 }
6158
6159 // This prototype is deprecated.
6160 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector unsigned long long __b)6161 vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {
6162 int __cc;
6163 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);
6164 return __cc <= 1;
6165 }
6166
6167 // This prototype is deprecated.
6168 static inline __ATTRS_o_ai int
vec_any_lt(__vector __bool long long __a,__vector __bool long long __b)6169 vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {
6170 int __cc;
6171 __builtin_s390_vchlgs((__vector unsigned long long)__b,
6172 (__vector unsigned long long)__a, &__cc);
6173 return __cc <= 1;
6174 }
6175
6176 #if __ARCH__ >= 15
6177 static inline __ATTRS_o_ai int
vec_any_lt(__vector signed __int128 __a,__vector signed __int128 __b)6178 vec_any_lt(__vector signed __int128 __a, __vector signed __int128 __b) {
6179 int __cc;
6180 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);
6181 return __cc <= 1;
6182 }
6183
6184 static inline __ATTRS_o_ai int
vec_any_lt(__vector unsigned __int128 __a,__vector unsigned __int128 __b)6185 vec_any_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6186 int __cc;
6187 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);
6188 return __cc <= 1;
6189 }
6190 #endif
6191
6192 #if __ARCH__ >= 12
6193 static inline __ATTRS_o_ai int
vec_any_lt(__vector float __a,__vector float __b)6194 vec_any_lt(__vector float __a, __vector float __b) {
6195 int __cc;
6196 __builtin_s390_vfchsbs(__b, __a, &__cc);
6197 return __cc <= 1;
6198 }
6199 #endif
6200
6201 static inline __ATTRS_o_ai int
vec_any_lt(__vector double __a,__vector double __b)6202 vec_any_lt(__vector double __a, __vector double __b) {
6203 int __cc;
6204 __builtin_s390_vfchdbs(__b, __a, &__cc);
6205 return __cc <= 1;
6206 }
6207
6208 /*-- vec_any_nge ------------------------------------------------------------*/
6209
6210 #if __ARCH__ >= 12
6211 static inline __ATTRS_o_ai int
vec_any_nge(__vector float __a,__vector float __b)6212 vec_any_nge(__vector float __a, __vector float __b) {
6213 int __cc;
6214 __builtin_s390_vfchesbs(__a, __b, &__cc);
6215 return __cc != 0;
6216 }
6217 #endif
6218
6219 static inline __ATTRS_o_ai int
vec_any_nge(__vector double __a,__vector double __b)6220 vec_any_nge(__vector double __a, __vector double __b) {
6221 int __cc;
6222 __builtin_s390_vfchedbs(__a, __b, &__cc);
6223 return __cc != 0;
6224 }
6225
6226 /*-- vec_any_ngt ------------------------------------------------------------*/
6227
6228 #if __ARCH__ >= 12
6229 static inline __ATTRS_o_ai int
vec_any_ngt(__vector float __a,__vector float __b)6230 vec_any_ngt(__vector float __a, __vector float __b) {
6231 int __cc;
6232 __builtin_s390_vfchsbs(__a, __b, &__cc);
6233 return __cc != 0;
6234 }
6235 #endif
6236
6237 static inline __ATTRS_o_ai int
vec_any_ngt(__vector double __a,__vector double __b)6238 vec_any_ngt(__vector double __a, __vector double __b) {
6239 int __cc;
6240 __builtin_s390_vfchdbs(__a, __b, &__cc);
6241 return __cc != 0;
6242 }
6243
6244 /*-- vec_any_nle ------------------------------------------------------------*/
6245
6246 #if __ARCH__ >= 12
6247 static inline __ATTRS_o_ai int
vec_any_nle(__vector float __a,__vector float __b)6248 vec_any_nle(__vector float __a, __vector float __b) {
6249 int __cc;
6250 __builtin_s390_vfchesbs(__b, __a, &__cc);
6251 return __cc != 0;
6252 }
6253 #endif
6254
6255 static inline __ATTRS_o_ai int
vec_any_nle(__vector double __a,__vector double __b)6256 vec_any_nle(__vector double __a, __vector double __b) {
6257 int __cc;
6258 __builtin_s390_vfchedbs(__b, __a, &__cc);
6259 return __cc != 0;
6260 }
6261
6262 /*-- vec_any_nlt ------------------------------------------------------------*/
6263
6264 #if __ARCH__ >= 12
6265 static inline __ATTRS_o_ai int
vec_any_nlt(__vector float __a,__vector float __b)6266 vec_any_nlt(__vector float __a, __vector float __b) {
6267 int __cc;
6268 __builtin_s390_vfchsbs(__b, __a, &__cc);
6269 return __cc != 0;
6270 }
6271 #endif
6272
6273 static inline __ATTRS_o_ai int
vec_any_nlt(__vector double __a,__vector double __b)6274 vec_any_nlt(__vector double __a, __vector double __b) {
6275 int __cc;
6276 __builtin_s390_vfchdbs(__b, __a, &__cc);
6277 return __cc != 0;
6278 }
6279
6280 /*-- vec_any_nan ------------------------------------------------------------*/
6281
6282 #if __ARCH__ >= 12
6283 static inline __ATTRS_o_ai int
vec_any_nan(__vector float __a)6284 vec_any_nan(__vector float __a) {
6285 int __cc;
6286 __builtin_s390_vftcisb(__a, 15, &__cc);
6287 return __cc != 3;
6288 }
6289 #endif
6290
6291 static inline __ATTRS_o_ai int
vec_any_nan(__vector double __a)6292 vec_any_nan(__vector double __a) {
6293 int __cc;
6294 __builtin_s390_vftcidb(__a, 15, &__cc);
6295 return __cc != 3;
6296 }
6297
6298 /*-- vec_any_numeric --------------------------------------------------------*/
6299
6300 #if __ARCH__ >= 12
6301 static inline __ATTRS_o_ai int
vec_any_numeric(__vector float __a)6302 vec_any_numeric(__vector float __a) {
6303 int __cc;
6304 __builtin_s390_vftcisb(__a, 15, &__cc);
6305 return __cc != 0;
6306 }
6307 #endif
6308
6309 static inline __ATTRS_o_ai int
vec_any_numeric(__vector double __a)6310 vec_any_numeric(__vector double __a) {
6311 int __cc;
6312 __builtin_s390_vftcidb(__a, 15, &__cc);
6313 return __cc != 0;
6314 }
6315
6316 /*-- vec_blend --------------------------------------------------------------*/
6317
6318 #if __ARCH__ >= 15
6319 static inline __ATTRS_o_ai __vector signed char
vec_blend(__vector signed char __a,__vector signed char __b,__vector signed char __c)6320 vec_blend(__vector signed char __a, __vector signed char __b,
6321 __vector signed char __c) {
6322 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6323 }
6324
6325 static inline __ATTRS_o_ai __vector __bool char
vec_blend(__vector __bool char __a,__vector __bool char __b,__vector signed char __c)6326 vec_blend(__vector __bool char __a, __vector __bool char __b,
6327 __vector signed char __c) {
6328 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6329 }
6330
6331 static inline __ATTRS_o_ai __vector unsigned char
vec_blend(__vector unsigned char __a,__vector unsigned char __b,__vector signed char __c)6332 vec_blend(__vector unsigned char __a, __vector unsigned char __b,
6333 __vector signed char __c) {
6334 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));
6335 }
6336
6337 static inline __ATTRS_o_ai __vector signed short
vec_blend(__vector signed short __a,__vector signed short __b,__vector signed short __c)6338 vec_blend(__vector signed short __a, __vector signed short __b,
6339 __vector signed short __c) {
6340 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6341 }
6342
6343 static inline __ATTRS_o_ai __vector __bool short
vec_blend(__vector __bool short __a,__vector __bool short __b,__vector signed short __c)6344 vec_blend(__vector __bool short __a, __vector __bool short __b,
6345 __vector signed short __c) {
6346 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6347 }
6348
6349 static inline __ATTRS_o_ai __vector unsigned short
vec_blend(__vector unsigned short __a,__vector unsigned short __b,__vector signed short __c)6350 vec_blend(__vector unsigned short __a, __vector unsigned short __b,
6351 __vector signed short __c) {
6352 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));
6353 }
6354
6355 static inline __ATTRS_o_ai __vector signed int
vec_blend(__vector signed int __a,__vector signed int __b,__vector signed int __c)6356 vec_blend(__vector signed int __a, __vector signed int __b,
6357 __vector signed int __c) {
6358 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6359 }
6360
6361 static inline __ATTRS_o_ai __vector __bool int
vec_blend(__vector __bool int __a,__vector __bool int __b,__vector signed int __c)6362 vec_blend(__vector __bool int __a, __vector __bool int __b,
6363 __vector signed int __c) {
6364 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6365 }
6366
6367 static inline __ATTRS_o_ai __vector unsigned int
vec_blend(__vector unsigned int __a,__vector unsigned int __b,__vector signed int __c)6368 vec_blend(__vector unsigned int __a, __vector unsigned int __b,
6369 __vector signed int __c) {
6370 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6371 }
6372
6373 static inline __ATTRS_o_ai __vector signed long long
vec_blend(__vector signed long long __a,__vector signed long long __b,__vector signed long long __c)6374 vec_blend(__vector signed long long __a, __vector signed long long __b,
6375 __vector signed long long __c) {
6376 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6377 }
6378
6379 static inline __ATTRS_o_ai __vector __bool long long
vec_blend(__vector __bool long long __a,__vector __bool long long __b,__vector signed long long __c)6380 vec_blend(__vector __bool long long __a, __vector __bool long long __b,
6381 __vector signed long long __c) {
6382 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6383 }
6384
6385 static inline __ATTRS_o_ai __vector unsigned long long
vec_blend(__vector unsigned long long __a,__vector unsigned long long __b,__vector signed long long __c)6386 vec_blend(__vector unsigned long long __a, __vector unsigned long long __b,
6387 __vector signed long long __c) {
6388 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6389 }
6390
6391 static inline __ATTRS_o_ai __vector signed __int128
vec_blend(__vector signed __int128 __a,__vector signed __int128 __b,__vector signed __int128 __c)6392 vec_blend(__vector signed __int128 __a, __vector signed __int128 __b,
6393 __vector signed __int128 __c) {
6394 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6395 }
6396
6397 static inline __ATTRS_o_ai __vector __bool __int128
vec_blend(__vector __bool __int128 __a,__vector __bool __int128 __b,__vector signed __int128 __c)6398 vec_blend(__vector __bool __int128 __a, __vector __bool __int128 __b,
6399 __vector signed __int128 __c) {
6400 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6401 }
6402
6403 static inline __ATTRS_o_ai __vector unsigned __int128
vec_blend(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector signed __int128 __c)6404 vec_blend(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
6405 __vector signed __int128 __c) {
6406 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));
6407 }
6408
6409 static inline __ATTRS_o_ai __vector float
vec_blend(__vector float __a,__vector float __b,__vector signed int __c)6410 vec_blend(__vector float __a, __vector float __b,
6411 __vector signed int __c) {
6412 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));
6413 }
6414
6415 static inline __ATTRS_o_ai __vector double
vec_blend(__vector double __a,__vector double __b,__vector signed long long __c)6416 vec_blend(__vector double __a, __vector double __b,
6417 __vector signed long long __c) {
6418 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));
6419 }
6420 #endif
6421
6422 /*-- vec_and ---------------------------------------------------------------*/
6423
6424 static inline __ATTRS_o_ai __vector __bool char
vec_and(__vector __bool char __a,__vector __bool char __b)6425 vec_and(__vector __bool char __a, __vector __bool char __b) {
6426 return __a & __b;
6427 }
6428
6429 static inline __ATTRS_o_ai __vector signed char
vec_and(__vector signed char __a,__vector signed char __b)6430 vec_and(__vector signed char __a, __vector signed char __b) {
6431 return __a & __b;
6432 }
6433
6434 static inline __ATTRS_o_ai __vector unsigned char
vec_and(__vector unsigned char __a,__vector unsigned char __b)6435 vec_and(__vector unsigned char __a, __vector unsigned char __b) {
6436 return __a & __b;
6437 }
6438
6439 static inline __ATTRS_o_ai __vector __bool short
vec_and(__vector __bool short __a,__vector __bool short __b)6440 vec_and(__vector __bool short __a, __vector __bool short __b) {
6441 return __a & __b;
6442 }
6443
6444 static inline __ATTRS_o_ai __vector signed short
vec_and(__vector signed short __a,__vector signed short __b)6445 vec_and(__vector signed short __a, __vector signed short __b) {
6446 return __a & __b;
6447 }
6448
6449 static inline __ATTRS_o_ai __vector unsigned short
vec_and(__vector unsigned short __a,__vector unsigned short __b)6450 vec_and(__vector unsigned short __a, __vector unsigned short __b) {
6451 return __a & __b;
6452 }
6453
6454 static inline __ATTRS_o_ai __vector __bool int
vec_and(__vector __bool int __a,__vector __bool int __b)6455 vec_and(__vector __bool int __a, __vector __bool int __b) {
6456 return __a & __b;
6457 }
6458
6459 static inline __ATTRS_o_ai __vector signed int
vec_and(__vector signed int __a,__vector signed int __b)6460 vec_and(__vector signed int __a, __vector signed int __b) {
6461 return __a & __b;
6462 }
6463
6464 static inline __ATTRS_o_ai __vector unsigned int
vec_and(__vector unsigned int __a,__vector unsigned int __b)6465 vec_and(__vector unsigned int __a, __vector unsigned int __b) {
6466 return __a & __b;
6467 }
6468
6469 static inline __ATTRS_o_ai __vector __bool long long
vec_and(__vector __bool long long __a,__vector __bool long long __b)6470 vec_and(__vector __bool long long __a, __vector __bool long long __b) {
6471 return __a & __b;
6472 }
6473
6474 static inline __ATTRS_o_ai __vector signed long long
vec_and(__vector signed long long __a,__vector signed long long __b)6475 vec_and(__vector signed long long __a, __vector signed long long __b) {
6476 return __a & __b;
6477 }
6478
6479 static inline __ATTRS_o_ai __vector unsigned long long
vec_and(__vector unsigned long long __a,__vector unsigned long long __b)6480 vec_and(__vector unsigned long long __a, __vector unsigned long long __b) {
6481 return __a & __b;
6482 }
6483
6484 static inline __ATTRS_o_ai __vector __bool __int128
vec_and(__vector __bool __int128 __a,__vector __bool __int128 __b)6485 vec_and(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6486 return __a & __b;
6487 }
6488
6489 static inline __ATTRS_o_ai __vector signed __int128
vec_and(__vector signed __int128 __a,__vector signed __int128 __b)6490 vec_and(__vector signed __int128 __a, __vector signed __int128 __b) {
6491 return __a & __b;
6492 }
6493
6494 static inline __ATTRS_o_ai __vector unsigned __int128
vec_and(__vector unsigned __int128 __a,__vector unsigned __int128 __b)6495 vec_and(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6496 return __a & __b;
6497 }
6498
6499 #if __ARCH__ >= 12
6500 static inline __ATTRS_o_ai __vector float
vec_and(__vector float __a,__vector float __b)6501 vec_and(__vector float __a, __vector float __b) {
6502 return (__vector float)((__vector unsigned int)__a &
6503 (__vector unsigned int)__b);
6504 }
6505 #endif
6506
6507 static inline __ATTRS_o_ai __vector double
vec_and(__vector double __a,__vector double __b)6508 vec_and(__vector double __a, __vector double __b) {
6509 return (__vector double)((__vector unsigned long long)__a &
6510 (__vector unsigned long long)__b);
6511 }
6512
6513 /*-- vec_or ----------------------------------------------------------------*/
6514
6515 static inline __ATTRS_o_ai __vector __bool char
vec_or(__vector __bool char __a,__vector __bool char __b)6516 vec_or(__vector __bool char __a, __vector __bool char __b) {
6517 return __a | __b;
6518 }
6519
6520 static inline __ATTRS_o_ai __vector signed char
vec_or(__vector signed char __a,__vector signed char __b)6521 vec_or(__vector signed char __a, __vector signed char __b) {
6522 return __a | __b;
6523 }
6524
6525 static inline __ATTRS_o_ai __vector unsigned char
vec_or(__vector unsigned char __a,__vector unsigned char __b)6526 vec_or(__vector unsigned char __a, __vector unsigned char __b) {
6527 return __a | __b;
6528 }
6529
6530 static inline __ATTRS_o_ai __vector __bool short
vec_or(__vector __bool short __a,__vector __bool short __b)6531 vec_or(__vector __bool short __a, __vector __bool short __b) {
6532 return __a | __b;
6533 }
6534
6535 static inline __ATTRS_o_ai __vector signed short
vec_or(__vector signed short __a,__vector signed short __b)6536 vec_or(__vector signed short __a, __vector signed short __b) {
6537 return __a | __b;
6538 }
6539
6540 static inline __ATTRS_o_ai __vector unsigned short
vec_or(__vector unsigned short __a,__vector unsigned short __b)6541 vec_or(__vector unsigned short __a, __vector unsigned short __b) {
6542 return __a | __b;
6543 }
6544
6545 static inline __ATTRS_o_ai __vector __bool int
vec_or(__vector __bool int __a,__vector __bool int __b)6546 vec_or(__vector __bool int __a, __vector __bool int __b) {
6547 return __a | __b;
6548 }
6549
6550 static inline __ATTRS_o_ai __vector signed int
vec_or(__vector signed int __a,__vector signed int __b)6551 vec_or(__vector signed int __a, __vector signed int __b) {
6552 return __a | __b;
6553 }
6554
6555 static inline __ATTRS_o_ai __vector unsigned int
vec_or(__vector unsigned int __a,__vector unsigned int __b)6556 vec_or(__vector unsigned int __a, __vector unsigned int __b) {
6557 return __a | __b;
6558 }
6559
6560 static inline __ATTRS_o_ai __vector __bool long long
vec_or(__vector __bool long long __a,__vector __bool long long __b)6561 vec_or(__vector __bool long long __a, __vector __bool long long __b) {
6562 return __a | __b;
6563 }
6564
6565 static inline __ATTRS_o_ai __vector signed long long
vec_or(__vector signed long long __a,__vector signed long long __b)6566 vec_or(__vector signed long long __a, __vector signed long long __b) {
6567 return __a | __b;
6568 }
6569
6570 static inline __ATTRS_o_ai __vector unsigned long long
vec_or(__vector unsigned long long __a,__vector unsigned long long __b)6571 vec_or(__vector unsigned long long __a, __vector unsigned long long __b) {
6572 return __a | __b;
6573 }
6574
6575 static inline __ATTRS_o_ai __vector __bool __int128
vec_or(__vector __bool __int128 __a,__vector __bool __int128 __b)6576 vec_or(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6577 return __a | __b;
6578 }
6579
6580 static inline __ATTRS_o_ai __vector signed __int128
vec_or(__vector signed __int128 __a,__vector signed __int128 __b)6581 vec_or(__vector signed __int128 __a, __vector signed __int128 __b) {
6582 return __a | __b;
6583 }
6584
6585 static inline __ATTRS_o_ai __vector unsigned __int128
vec_or(__vector unsigned __int128 __a,__vector unsigned __int128 __b)6586 vec_or(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6587 return __a | __b;
6588 }
6589
6590 #if __ARCH__ >= 12
6591 static inline __ATTRS_o_ai __vector float
vec_or(__vector float __a,__vector float __b)6592 vec_or(__vector float __a, __vector float __b) {
6593 return (__vector float)((__vector unsigned int)__a |
6594 (__vector unsigned int)__b);
6595 }
6596 #endif
6597
6598 static inline __ATTRS_o_ai __vector double
vec_or(__vector double __a,__vector double __b)6599 vec_or(__vector double __a, __vector double __b) {
6600 return (__vector double)((__vector unsigned long long)__a |
6601 (__vector unsigned long long)__b);
6602 }
6603
6604 /*-- vec_xor ----------------------------------------------------------------*/
6605
6606 static inline __ATTRS_o_ai __vector __bool char
vec_xor(__vector __bool char __a,__vector __bool char __b)6607 vec_xor(__vector __bool char __a, __vector __bool char __b) {
6608 return __a ^ __b;
6609 }
6610
6611 static inline __ATTRS_o_ai __vector signed char
vec_xor(__vector signed char __a,__vector signed char __b)6612 vec_xor(__vector signed char __a, __vector signed char __b) {
6613 return __a ^ __b;
6614 }
6615
6616 static inline __ATTRS_o_ai __vector unsigned char
vec_xor(__vector unsigned char __a,__vector unsigned char __b)6617 vec_xor(__vector unsigned char __a, __vector unsigned char __b) {
6618 return __a ^ __b;
6619 }
6620
6621 static inline __ATTRS_o_ai __vector __bool short
vec_xor(__vector __bool short __a,__vector __bool short __b)6622 vec_xor(__vector __bool short __a, __vector __bool short __b) {
6623 return __a ^ __b;
6624 }
6625
6626 static inline __ATTRS_o_ai __vector signed short
vec_xor(__vector signed short __a,__vector signed short __b)6627 vec_xor(__vector signed short __a, __vector signed short __b) {
6628 return __a ^ __b;
6629 }
6630
6631 static inline __ATTRS_o_ai __vector unsigned short
vec_xor(__vector unsigned short __a,__vector unsigned short __b)6632 vec_xor(__vector unsigned short __a, __vector unsigned short __b) {
6633 return __a ^ __b;
6634 }
6635
6636 static inline __ATTRS_o_ai __vector __bool int
vec_xor(__vector __bool int __a,__vector __bool int __b)6637 vec_xor(__vector __bool int __a, __vector __bool int __b) {
6638 return __a ^ __b;
6639 }
6640
6641 static inline __ATTRS_o_ai __vector signed int
vec_xor(__vector signed int __a,__vector signed int __b)6642 vec_xor(__vector signed int __a, __vector signed int __b) {
6643 return __a ^ __b;
6644 }
6645
6646 static inline __ATTRS_o_ai __vector unsigned int
vec_xor(__vector unsigned int __a,__vector unsigned int __b)6647 vec_xor(__vector unsigned int __a, __vector unsigned int __b) {
6648 return __a ^ __b;
6649 }
6650
6651 static inline __ATTRS_o_ai __vector __bool long long
vec_xor(__vector __bool long long __a,__vector __bool long long __b)6652 vec_xor(__vector __bool long long __a, __vector __bool long long __b) {
6653 return __a ^ __b;
6654 }
6655
6656 static inline __ATTRS_o_ai __vector signed long long
vec_xor(__vector signed long long __a,__vector signed long long __b)6657 vec_xor(__vector signed long long __a, __vector signed long long __b) {
6658 return __a ^ __b;
6659 }
6660
6661 static inline __ATTRS_o_ai __vector unsigned long long
vec_xor(__vector unsigned long long __a,__vector unsigned long long __b)6662 vec_xor(__vector unsigned long long __a, __vector unsigned long long __b) {
6663 return __a ^ __b;
6664 }
6665
6666 static inline __ATTRS_o_ai __vector __bool __int128
vec_xor(__vector __bool __int128 __a,__vector __bool __int128 __b)6667 vec_xor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6668 return __a ^ __b;
6669 }
6670
6671 static inline __ATTRS_o_ai __vector signed __int128
vec_xor(__vector signed __int128 __a,__vector signed __int128 __b)6672 vec_xor(__vector signed __int128 __a, __vector signed __int128 __b) {
6673 return __a ^ __b;
6674 }
6675
6676 static inline __ATTRS_o_ai __vector unsigned __int128
vec_xor(__vector unsigned __int128 __a,__vector unsigned __int128 __b)6677 vec_xor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6678 return __a ^ __b;
6679 }
6680
6681 #if __ARCH__ >= 12
6682 static inline __ATTRS_o_ai __vector float
vec_xor(__vector float __a,__vector float __b)6683 vec_xor(__vector float __a, __vector float __b) {
6684 return (__vector float)((__vector unsigned int)__a ^
6685 (__vector unsigned int)__b);
6686 }
6687 #endif
6688
6689 static inline __ATTRS_o_ai __vector double
vec_xor(__vector double __a,__vector double __b)6690 vec_xor(__vector double __a, __vector double __b) {
6691 return (__vector double)((__vector unsigned long long)__a ^
6692 (__vector unsigned long long)__b);
6693 }
6694
6695 /*-- vec_andc ---------------------------------------------------------------*/
6696
6697 static inline __ATTRS_o_ai __vector __bool char
vec_andc(__vector __bool char __a,__vector __bool char __b)6698 vec_andc(__vector __bool char __a, __vector __bool char __b) {
6699 return __a & ~__b;
6700 }
6701
6702 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector signed char __b)6703 vec_andc(__vector signed char __a, __vector signed char __b) {
6704 return __a & ~__b;
6705 }
6706
6707 // This prototype is deprecated.
6708 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector __bool char __a,__vector signed char __b)6709 vec_andc(__vector __bool char __a, __vector signed char __b) {
6710 return __a & ~__b;
6711 }
6712
6713 // This prototype is deprecated.
6714 static inline __ATTRS_o_ai __vector signed char
vec_andc(__vector signed char __a,__vector __bool char __b)6715 vec_andc(__vector signed char __a, __vector __bool char __b) {
6716 return __a & ~__b;
6717 }
6718
6719 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector unsigned char __b)6720 vec_andc(__vector unsigned char __a, __vector unsigned char __b) {
6721 return __a & ~__b;
6722 }
6723
6724 // This prototype is deprecated.
6725 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector __bool char __a,__vector unsigned char __b)6726 vec_andc(__vector __bool char __a, __vector unsigned char __b) {
6727 return __a & ~__b;
6728 }
6729
6730 // This prototype is deprecated.
6731 static inline __ATTRS_o_ai __vector unsigned char
vec_andc(__vector unsigned char __a,__vector __bool char __b)6732 vec_andc(__vector unsigned char __a, __vector __bool char __b) {
6733 return __a & ~__b;
6734 }
6735
6736 static inline __ATTRS_o_ai __vector __bool short
vec_andc(__vector __bool short __a,__vector __bool short __b)6737 vec_andc(__vector __bool short __a, __vector __bool short __b) {
6738 return __a & ~__b;
6739 }
6740
6741 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector signed short __b)6742 vec_andc(__vector signed short __a, __vector signed short __b) {
6743 return __a & ~__b;
6744 }
6745
6746 // This prototype is deprecated.
6747 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector __bool short __a,__vector signed short __b)6748 vec_andc(__vector __bool short __a, __vector signed short __b) {
6749 return __a & ~__b;
6750 }
6751
6752 // This prototype is deprecated.
6753 static inline __ATTRS_o_ai __vector signed short
vec_andc(__vector signed short __a,__vector __bool short __b)6754 vec_andc(__vector signed short __a, __vector __bool short __b) {
6755 return __a & ~__b;
6756 }
6757
6758 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector unsigned short __b)6759 vec_andc(__vector unsigned short __a, __vector unsigned short __b) {
6760 return __a & ~__b;
6761 }
6762
6763 // This prototype is deprecated.
6764 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector __bool short __a,__vector unsigned short __b)6765 vec_andc(__vector __bool short __a, __vector unsigned short __b) {
6766 return __a & ~__b;
6767 }
6768
6769 // This prototype is deprecated.
6770 static inline __ATTRS_o_ai __vector unsigned short
vec_andc(__vector unsigned short __a,__vector __bool short __b)6771 vec_andc(__vector unsigned short __a, __vector __bool short __b) {
6772 return __a & ~__b;
6773 }
6774
6775 static inline __ATTRS_o_ai __vector __bool int
vec_andc(__vector __bool int __a,__vector __bool int __b)6776 vec_andc(__vector __bool int __a, __vector __bool int __b) {
6777 return __a & ~__b;
6778 }
6779
6780 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector signed int __b)6781 vec_andc(__vector signed int __a, __vector signed int __b) {
6782 return __a & ~__b;
6783 }
6784
6785 // This prototype is deprecated.
6786 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector __bool int __a,__vector signed int __b)6787 vec_andc(__vector __bool int __a, __vector signed int __b) {
6788 return __a & ~__b;
6789 }
6790
6791 // This prototype is deprecated.
6792 static inline __ATTRS_o_ai __vector signed int
vec_andc(__vector signed int __a,__vector __bool int __b)6793 vec_andc(__vector signed int __a, __vector __bool int __b) {
6794 return __a & ~__b;
6795 }
6796
6797 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector unsigned int __b)6798 vec_andc(__vector unsigned int __a, __vector unsigned int __b) {
6799 return __a & ~__b;
6800 }
6801
6802 // This prototype is deprecated.
6803 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector __bool int __a,__vector unsigned int __b)6804 vec_andc(__vector __bool int __a, __vector unsigned int __b) {
6805 return __a & ~__b;
6806 }
6807
6808 // This prototype is deprecated.
6809 static inline __ATTRS_o_ai __vector unsigned int
vec_andc(__vector unsigned int __a,__vector __bool int __b)6810 vec_andc(__vector unsigned int __a, __vector __bool int __b) {
6811 return __a & ~__b;
6812 }
6813
6814 static inline __ATTRS_o_ai __vector __bool long long
vec_andc(__vector __bool long long __a,__vector __bool long long __b)6815 vec_andc(__vector __bool long long __a, __vector __bool long long __b) {
6816 return __a & ~__b;
6817 }
6818
6819 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector signed long long __b)6820 vec_andc(__vector signed long long __a, __vector signed long long __b) {
6821 return __a & ~__b;
6822 }
6823
6824 // This prototype is deprecated.
6825 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector __bool long long __a,__vector signed long long __b)6826 vec_andc(__vector __bool long long __a, __vector signed long long __b) {
6827 return __a & ~__b;
6828 }
6829
6830 // This prototype is deprecated.
6831 static inline __ATTRS_o_ai __vector signed long long
vec_andc(__vector signed long long __a,__vector __bool long long __b)6832 vec_andc(__vector signed long long __a, __vector __bool long long __b) {
6833 return __a & ~__b;
6834 }
6835
6836 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector unsigned long long __b)6837 vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {
6838 return __a & ~__b;
6839 }
6840
6841 // This prototype is deprecated.
6842 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector __bool long long __a,__vector unsigned long long __b)6843 vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {
6844 return __a & ~__b;
6845 }
6846
6847 // This prototype is deprecated.
6848 static inline __ATTRS_o_ai __vector unsigned long long
vec_andc(__vector unsigned long long __a,__vector __bool long long __b)6849 vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {
6850 return __a & ~__b;
6851 }
6852
6853 static inline __ATTRS_o_ai __vector __bool __int128
vec_andc(__vector __bool __int128 __a,__vector __bool __int128 __b)6854 vec_andc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
6855 return __a & ~__b;
6856 }
6857
6858 static inline __ATTRS_o_ai __vector signed __int128
vec_andc(__vector signed __int128 __a,__vector signed __int128 __b)6859 vec_andc(__vector signed __int128 __a, __vector signed __int128 __b) {
6860 return __a & ~__b;
6861 }
6862
6863 static inline __ATTRS_o_ai __vector unsigned __int128
vec_andc(__vector unsigned __int128 __a,__vector unsigned __int128 __b)6864 vec_andc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
6865 return __a & ~__b;
6866 }
6867
6868 #if __ARCH__ >= 12
6869 static inline __ATTRS_o_ai __vector float
vec_andc(__vector float __a,__vector float __b)6870 vec_andc(__vector float __a, __vector float __b) {
6871 return (__vector float)((__vector unsigned int)__a &
6872 ~(__vector unsigned int)__b);
6873 }
6874 #endif
6875
6876 static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector double __b)6877 vec_andc(__vector double __a, __vector double __b) {
6878 return (__vector double)((__vector unsigned long long)__a &
6879 ~(__vector unsigned long long)__b);
6880 }
6881
6882 // This prototype is deprecated.
6883 static inline __ATTRS_o_ai __vector double
vec_andc(__vector __bool long long __a,__vector double __b)6884 vec_andc(__vector __bool long long __a, __vector double __b) {
6885 return (__vector double)((__vector unsigned long long)__a &
6886 ~(__vector unsigned long long)__b);
6887 }
6888
6889 // This prototype is deprecated.
6890 static inline __ATTRS_o_ai __vector double
vec_andc(__vector double __a,__vector __bool long long __b)6891 vec_andc(__vector double __a, __vector __bool long long __b) {
6892 return (__vector double)((__vector unsigned long long)__a &
6893 ~(__vector unsigned long long)__b);
6894 }
6895
6896 /*-- vec_nor ----------------------------------------------------------------*/
6897
6898 static inline __ATTRS_o_ai __vector __bool char
vec_nor(__vector __bool char __a,__vector __bool char __b)6899 vec_nor(__vector __bool char __a, __vector __bool char __b) {
6900 return ~(__a | __b);
6901 }
6902
6903 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector signed char __b)6904 vec_nor(__vector signed char __a, __vector signed char __b) {
6905 return ~(__a | __b);
6906 }
6907
6908 // This prototype is deprecated.
6909 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector __bool char __a,__vector signed char __b)6910 vec_nor(__vector __bool char __a, __vector signed char __b) {
6911 return ~(__a | __b);
6912 }
6913
6914 // This prototype is deprecated.
6915 static inline __ATTRS_o_ai __vector signed char
vec_nor(__vector signed char __a,__vector __bool char __b)6916 vec_nor(__vector signed char __a, __vector __bool char __b) {
6917 return ~(__a | __b);
6918 }
6919
6920 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector unsigned char __b)6921 vec_nor(__vector unsigned char __a, __vector unsigned char __b) {
6922 return ~(__a | __b);
6923 }
6924
6925 // This prototype is deprecated.
6926 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector __bool char __a,__vector unsigned char __b)6927 vec_nor(__vector __bool char __a, __vector unsigned char __b) {
6928 return ~(__a | __b);
6929 }
6930
6931 // This prototype is deprecated.
6932 static inline __ATTRS_o_ai __vector unsigned char
vec_nor(__vector unsigned char __a,__vector __bool char __b)6933 vec_nor(__vector unsigned char __a, __vector __bool char __b) {
6934 return ~(__a | __b);
6935 }
6936
6937 static inline __ATTRS_o_ai __vector __bool short
vec_nor(__vector __bool short __a,__vector __bool short __b)6938 vec_nor(__vector __bool short __a, __vector __bool short __b) {
6939 return ~(__a | __b);
6940 }
6941
6942 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector signed short __b)6943 vec_nor(__vector signed short __a, __vector signed short __b) {
6944 return ~(__a | __b);
6945 }
6946
6947 // This prototype is deprecated.
6948 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector __bool short __a,__vector signed short __b)6949 vec_nor(__vector __bool short __a, __vector signed short __b) {
6950 return ~(__a | __b);
6951 }
6952
6953 // This prototype is deprecated.
6954 static inline __ATTRS_o_ai __vector signed short
vec_nor(__vector signed short __a,__vector __bool short __b)6955 vec_nor(__vector signed short __a, __vector __bool short __b) {
6956 return ~(__a | __b);
6957 }
6958
6959 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector unsigned short __b)6960 vec_nor(__vector unsigned short __a, __vector unsigned short __b) {
6961 return ~(__a | __b);
6962 }
6963
6964 // This prototype is deprecated.
6965 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector __bool short __a,__vector unsigned short __b)6966 vec_nor(__vector __bool short __a, __vector unsigned short __b) {
6967 return ~(__a | __b);
6968 }
6969
6970 // This prototype is deprecated.
6971 static inline __ATTRS_o_ai __vector unsigned short
vec_nor(__vector unsigned short __a,__vector __bool short __b)6972 vec_nor(__vector unsigned short __a, __vector __bool short __b) {
6973 return ~(__a | __b);
6974 }
6975
6976 static inline __ATTRS_o_ai __vector __bool int
vec_nor(__vector __bool int __a,__vector __bool int __b)6977 vec_nor(__vector __bool int __a, __vector __bool int __b) {
6978 return ~(__a | __b);
6979 }
6980
6981 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector signed int __b)6982 vec_nor(__vector signed int __a, __vector signed int __b) {
6983 return ~(__a | __b);
6984 }
6985
6986 // This prototype is deprecated.
6987 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector __bool int __a,__vector signed int __b)6988 vec_nor(__vector __bool int __a, __vector signed int __b) {
6989 return ~(__a | __b);
6990 }
6991
6992 // This prototype is deprecated.
6993 static inline __ATTRS_o_ai __vector signed int
vec_nor(__vector signed int __a,__vector __bool int __b)6994 vec_nor(__vector signed int __a, __vector __bool int __b) {
6995 return ~(__a | __b);
6996 }
6997
6998 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector unsigned int __b)6999 vec_nor(__vector unsigned int __a, __vector unsigned int __b) {
7000 return ~(__a | __b);
7001 }
7002
7003 // This prototype is deprecated.
7004 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector __bool int __a,__vector unsigned int __b)7005 vec_nor(__vector __bool int __a, __vector unsigned int __b) {
7006 return ~(__a | __b);
7007 }
7008
7009 // This prototype is deprecated.
7010 static inline __ATTRS_o_ai __vector unsigned int
vec_nor(__vector unsigned int __a,__vector __bool int __b)7011 vec_nor(__vector unsigned int __a, __vector __bool int __b) {
7012 return ~(__a | __b);
7013 }
7014
7015 static inline __ATTRS_o_ai __vector __bool long long
vec_nor(__vector __bool long long __a,__vector __bool long long __b)7016 vec_nor(__vector __bool long long __a, __vector __bool long long __b) {
7017 return ~(__a | __b);
7018 }
7019
7020 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector signed long long __b)7021 vec_nor(__vector signed long long __a, __vector signed long long __b) {
7022 return ~(__a | __b);
7023 }
7024
7025 // This prototype is deprecated.
7026 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector __bool long long __a,__vector signed long long __b)7027 vec_nor(__vector __bool long long __a, __vector signed long long __b) {
7028 return ~(__a | __b);
7029 }
7030
7031 // This prototype is deprecated.
7032 static inline __ATTRS_o_ai __vector signed long long
vec_nor(__vector signed long long __a,__vector __bool long long __b)7033 vec_nor(__vector signed long long __a, __vector __bool long long __b) {
7034 return ~(__a | __b);
7035 }
7036
7037 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector unsigned long long __b)7038 vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {
7039 return ~(__a | __b);
7040 }
7041
7042 // This prototype is deprecated.
7043 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector __bool long long __a,__vector unsigned long long __b)7044 vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {
7045 return ~(__a | __b);
7046 }
7047
7048 // This prototype is deprecated.
7049 static inline __ATTRS_o_ai __vector unsigned long long
vec_nor(__vector unsigned long long __a,__vector __bool long long __b)7050 vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {
7051 return ~(__a | __b);
7052 }
7053
7054 static inline __ATTRS_o_ai __vector __bool __int128
vec_nor(__vector __bool __int128 __a,__vector __bool __int128 __b)7055 vec_nor(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7056 return ~(__a | __b);
7057 }
7058
7059 static inline __ATTRS_o_ai __vector signed __int128
vec_nor(__vector signed __int128 __a,__vector signed __int128 __b)7060 vec_nor(__vector signed __int128 __a, __vector signed __int128 __b) {
7061 return ~(__a | __b);
7062 }
7063
7064 static inline __ATTRS_o_ai __vector unsigned __int128
vec_nor(__vector unsigned __int128 __a,__vector unsigned __int128 __b)7065 vec_nor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7066 return ~(__a | __b);
7067 }
7068
7069 #if __ARCH__ >= 12
7070 static inline __ATTRS_o_ai __vector float
vec_nor(__vector float __a,__vector float __b)7071 vec_nor(__vector float __a, __vector float __b) {
7072 return (__vector float)~((__vector unsigned int)__a |
7073 (__vector unsigned int)__b);
7074 }
7075 #endif
7076
7077 static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector double __b)7078 vec_nor(__vector double __a, __vector double __b) {
7079 return (__vector double)~((__vector unsigned long long)__a |
7080 (__vector unsigned long long)__b);
7081 }
7082
7083 // This prototype is deprecated.
7084 static inline __ATTRS_o_ai __vector double
vec_nor(__vector __bool long long __a,__vector double __b)7085 vec_nor(__vector __bool long long __a, __vector double __b) {
7086 return (__vector double)~((__vector unsigned long long)__a |
7087 (__vector unsigned long long)__b);
7088 }
7089
7090 // This prototype is deprecated.
7091 static inline __ATTRS_o_ai __vector double
vec_nor(__vector double __a,__vector __bool long long __b)7092 vec_nor(__vector double __a, __vector __bool long long __b) {
7093 return (__vector double)~((__vector unsigned long long)__a |
7094 (__vector unsigned long long)__b);
7095 }
7096
7097 /*-- vec_orc ----------------------------------------------------------------*/
7098
7099 #if __ARCH__ >= 12
7100 static inline __ATTRS_o_ai __vector __bool char
vec_orc(__vector __bool char __a,__vector __bool char __b)7101 vec_orc(__vector __bool char __a, __vector __bool char __b) {
7102 return __a | ~__b;
7103 }
7104
7105 static inline __ATTRS_o_ai __vector signed char
vec_orc(__vector signed char __a,__vector signed char __b)7106 vec_orc(__vector signed char __a, __vector signed char __b) {
7107 return __a | ~__b;
7108 }
7109
7110 static inline __ATTRS_o_ai __vector unsigned char
vec_orc(__vector unsigned char __a,__vector unsigned char __b)7111 vec_orc(__vector unsigned char __a, __vector unsigned char __b) {
7112 return __a | ~__b;
7113 }
7114
7115 static inline __ATTRS_o_ai __vector __bool short
vec_orc(__vector __bool short __a,__vector __bool short __b)7116 vec_orc(__vector __bool short __a, __vector __bool short __b) {
7117 return __a | ~__b;
7118 }
7119
7120 static inline __ATTRS_o_ai __vector signed short
vec_orc(__vector signed short __a,__vector signed short __b)7121 vec_orc(__vector signed short __a, __vector signed short __b) {
7122 return __a | ~__b;
7123 }
7124
7125 static inline __ATTRS_o_ai __vector unsigned short
vec_orc(__vector unsigned short __a,__vector unsigned short __b)7126 vec_orc(__vector unsigned short __a, __vector unsigned short __b) {
7127 return __a | ~__b;
7128 }
7129
7130 static inline __ATTRS_o_ai __vector __bool int
vec_orc(__vector __bool int __a,__vector __bool int __b)7131 vec_orc(__vector __bool int __a, __vector __bool int __b) {
7132 return __a | ~__b;
7133 }
7134
7135 static inline __ATTRS_o_ai __vector signed int
vec_orc(__vector signed int __a,__vector signed int __b)7136 vec_orc(__vector signed int __a, __vector signed int __b) {
7137 return __a | ~__b;
7138 }
7139
7140 static inline __ATTRS_o_ai __vector unsigned int
vec_orc(__vector unsigned int __a,__vector unsigned int __b)7141 vec_orc(__vector unsigned int __a, __vector unsigned int __b) {
7142 return __a | ~__b;
7143 }
7144
7145 static inline __ATTRS_o_ai __vector __bool long long
vec_orc(__vector __bool long long __a,__vector __bool long long __b)7146 vec_orc(__vector __bool long long __a, __vector __bool long long __b) {
7147 return __a | ~__b;
7148 }
7149
7150 static inline __ATTRS_o_ai __vector signed long long
vec_orc(__vector signed long long __a,__vector signed long long __b)7151 vec_orc(__vector signed long long __a, __vector signed long long __b) {
7152 return __a | ~__b;
7153 }
7154
7155 static inline __ATTRS_o_ai __vector unsigned long long
vec_orc(__vector unsigned long long __a,__vector unsigned long long __b)7156 vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {
7157 return __a | ~__b;
7158 }
7159
7160 static inline __ATTRS_o_ai __vector __bool __int128
vec_orc(__vector __bool __int128 __a,__vector __bool __int128 __b)7161 vec_orc(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7162 return __a | ~__b;
7163 }
7164
7165 static inline __ATTRS_o_ai __vector signed __int128
vec_orc(__vector signed __int128 __a,__vector signed __int128 __b)7166 vec_orc(__vector signed __int128 __a, __vector signed __int128 __b) {
7167 return __a | ~__b;
7168 }
7169
7170 static inline __ATTRS_o_ai __vector unsigned __int128
vec_orc(__vector unsigned __int128 __a,__vector unsigned __int128 __b)7171 vec_orc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7172 return __a | ~__b;
7173 }
7174
7175 static inline __ATTRS_o_ai __vector float
vec_orc(__vector float __a,__vector float __b)7176 vec_orc(__vector float __a, __vector float __b) {
7177 return (__vector float)((__vector unsigned int)__a |
7178 ~(__vector unsigned int)__b);
7179 }
7180
7181 static inline __ATTRS_o_ai __vector double
vec_orc(__vector double __a,__vector double __b)7182 vec_orc(__vector double __a, __vector double __b) {
7183 return (__vector double)((__vector unsigned long long)__a |
7184 ~(__vector unsigned long long)__b);
7185 }
7186 #endif
7187
7188 /*-- vec_nand ---------------------------------------------------------------*/
7189
7190 #if __ARCH__ >= 12
7191 static inline __ATTRS_o_ai __vector __bool char
vec_nand(__vector __bool char __a,__vector __bool char __b)7192 vec_nand(__vector __bool char __a, __vector __bool char __b) {
7193 return ~(__a & __b);
7194 }
7195
7196 static inline __ATTRS_o_ai __vector signed char
vec_nand(__vector signed char __a,__vector signed char __b)7197 vec_nand(__vector signed char __a, __vector signed char __b) {
7198 return ~(__a & __b);
7199 }
7200
7201 static inline __ATTRS_o_ai __vector unsigned char
vec_nand(__vector unsigned char __a,__vector unsigned char __b)7202 vec_nand(__vector unsigned char __a, __vector unsigned char __b) {
7203 return ~(__a & __b);
7204 }
7205
7206 static inline __ATTRS_o_ai __vector __bool short
vec_nand(__vector __bool short __a,__vector __bool short __b)7207 vec_nand(__vector __bool short __a, __vector __bool short __b) {
7208 return ~(__a & __b);
7209 }
7210
7211 static inline __ATTRS_o_ai __vector signed short
vec_nand(__vector signed short __a,__vector signed short __b)7212 vec_nand(__vector signed short __a, __vector signed short __b) {
7213 return ~(__a & __b);
7214 }
7215
7216 static inline __ATTRS_o_ai __vector unsigned short
vec_nand(__vector unsigned short __a,__vector unsigned short __b)7217 vec_nand(__vector unsigned short __a, __vector unsigned short __b) {
7218 return ~(__a & __b);
7219 }
7220
7221 static inline __ATTRS_o_ai __vector __bool int
vec_nand(__vector __bool int __a,__vector __bool int __b)7222 vec_nand(__vector __bool int __a, __vector __bool int __b) {
7223 return ~(__a & __b);
7224 }
7225
7226 static inline __ATTRS_o_ai __vector signed int
vec_nand(__vector signed int __a,__vector signed int __b)7227 vec_nand(__vector signed int __a, __vector signed int __b) {
7228 return ~(__a & __b);
7229 }
7230
7231 static inline __ATTRS_o_ai __vector unsigned int
vec_nand(__vector unsigned int __a,__vector unsigned int __b)7232 vec_nand(__vector unsigned int __a, __vector unsigned int __b) {
7233 return ~(__a & __b);
7234 }
7235
7236 static inline __ATTRS_o_ai __vector __bool long long
vec_nand(__vector __bool long long __a,__vector __bool long long __b)7237 vec_nand(__vector __bool long long __a, __vector __bool long long __b) {
7238 return ~(__a & __b);
7239 }
7240
7241 static inline __ATTRS_o_ai __vector signed long long
vec_nand(__vector signed long long __a,__vector signed long long __b)7242 vec_nand(__vector signed long long __a, __vector signed long long __b) {
7243 return ~(__a & __b);
7244 }
7245
7246 static inline __ATTRS_o_ai __vector unsigned long long
vec_nand(__vector unsigned long long __a,__vector unsigned long long __b)7247 vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {
7248 return ~(__a & __b);
7249 }
7250
7251 static inline __ATTRS_o_ai __vector __bool __int128
vec_nand(__vector __bool __int128 __a,__vector __bool __int128 __b)7252 vec_nand(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7253 return ~(__a & __b);
7254 }
7255
7256 static inline __ATTRS_o_ai __vector signed __int128
vec_nand(__vector signed __int128 __a,__vector signed __int128 __b)7257 vec_nand(__vector signed __int128 __a, __vector signed __int128 __b) {
7258 return ~(__a & __b);
7259 }
7260
7261 static inline __ATTRS_o_ai __vector unsigned __int128
vec_nand(__vector unsigned __int128 __a,__vector unsigned __int128 __b)7262 vec_nand(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7263 return ~(__a & __b);
7264 }
7265
7266 static inline __ATTRS_o_ai __vector float
vec_nand(__vector float __a,__vector float __b)7267 vec_nand(__vector float __a, __vector float __b) {
7268 return (__vector float)~((__vector unsigned int)__a &
7269 (__vector unsigned int)__b);
7270 }
7271
7272 static inline __ATTRS_o_ai __vector double
vec_nand(__vector double __a,__vector double __b)7273 vec_nand(__vector double __a, __vector double __b) {
7274 return (__vector double)~((__vector unsigned long long)__a &
7275 (__vector unsigned long long)__b);
7276 }
7277 #endif
7278
7279 /*-- vec_eqv ----------------------------------------------------------------*/
7280
7281 #if __ARCH__ >= 12
7282 static inline __ATTRS_o_ai __vector __bool char
vec_eqv(__vector __bool char __a,__vector __bool char __b)7283 vec_eqv(__vector __bool char __a, __vector __bool char __b) {
7284 return ~(__a ^ __b);
7285 }
7286
7287 static inline __ATTRS_o_ai __vector signed char
vec_eqv(__vector signed char __a,__vector signed char __b)7288 vec_eqv(__vector signed char __a, __vector signed char __b) {
7289 return ~(__a ^ __b);
7290 }
7291
7292 static inline __ATTRS_o_ai __vector unsigned char
vec_eqv(__vector unsigned char __a,__vector unsigned char __b)7293 vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {
7294 return ~(__a ^ __b);
7295 }
7296
7297 static inline __ATTRS_o_ai __vector __bool short
vec_eqv(__vector __bool short __a,__vector __bool short __b)7298 vec_eqv(__vector __bool short __a, __vector __bool short __b) {
7299 return ~(__a ^ __b);
7300 }
7301
7302 static inline __ATTRS_o_ai __vector signed short
vec_eqv(__vector signed short __a,__vector signed short __b)7303 vec_eqv(__vector signed short __a, __vector signed short __b) {
7304 return ~(__a ^ __b);
7305 }
7306
7307 static inline __ATTRS_o_ai __vector unsigned short
vec_eqv(__vector unsigned short __a,__vector unsigned short __b)7308 vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {
7309 return ~(__a ^ __b);
7310 }
7311
7312 static inline __ATTRS_o_ai __vector __bool int
vec_eqv(__vector __bool int __a,__vector __bool int __b)7313 vec_eqv(__vector __bool int __a, __vector __bool int __b) {
7314 return ~(__a ^ __b);
7315 }
7316
7317 static inline __ATTRS_o_ai __vector signed int
vec_eqv(__vector signed int __a,__vector signed int __b)7318 vec_eqv(__vector signed int __a, __vector signed int __b) {
7319 return ~(__a ^ __b);
7320 }
7321
7322 static inline __ATTRS_o_ai __vector unsigned int
vec_eqv(__vector unsigned int __a,__vector unsigned int __b)7323 vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {
7324 return ~(__a ^ __b);
7325 }
7326
7327 static inline __ATTRS_o_ai __vector __bool long long
vec_eqv(__vector __bool long long __a,__vector __bool long long __b)7328 vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {
7329 return ~(__a ^ __b);
7330 }
7331
7332 static inline __ATTRS_o_ai __vector signed long long
vec_eqv(__vector signed long long __a,__vector signed long long __b)7333 vec_eqv(__vector signed long long __a, __vector signed long long __b) {
7334 return ~(__a ^ __b);
7335 }
7336
7337 static inline __ATTRS_o_ai __vector unsigned long long
vec_eqv(__vector unsigned long long __a,__vector unsigned long long __b)7338 vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {
7339 return ~(__a ^ __b);
7340 }
7341
7342 static inline __ATTRS_o_ai __vector __bool __int128
vec_eqv(__vector __bool __int128 __a,__vector __bool __int128 __b)7343 vec_eqv(__vector __bool __int128 __a, __vector __bool __int128 __b) {
7344 return ~(__a ^ __b);
7345 }
7346
7347 static inline __ATTRS_o_ai __vector signed __int128
vec_eqv(__vector signed __int128 __a,__vector signed __int128 __b)7348 vec_eqv(__vector signed __int128 __a, __vector signed __int128 __b) {
7349 return ~(__a ^ __b);
7350 }
7351
7352 static inline __ATTRS_o_ai __vector unsigned __int128
vec_eqv(__vector unsigned __int128 __a,__vector unsigned __int128 __b)7353 vec_eqv(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
7354 return ~(__a ^ __b);
7355 }
7356
7357 static inline __ATTRS_o_ai __vector float
vec_eqv(__vector float __a,__vector float __b)7358 vec_eqv(__vector float __a, __vector float __b) {
7359 return (__vector float)~((__vector unsigned int)__a ^
7360 (__vector unsigned int)__b);
7361 }
7362
7363 static inline __ATTRS_o_ai __vector double
vec_eqv(__vector double __a,__vector double __b)7364 vec_eqv(__vector double __a, __vector double __b) {
7365 return (__vector double)~((__vector unsigned long long)__a ^
7366 (__vector unsigned long long)__b);
7367 }
7368 #endif
7369
7370 /*-- vec_evaluate -----------------------------------------------------------*/
7371
7372 #if __ARCH__ >= 15
7373 extern __ATTRS_o __vector signed char
7374 vec_evaluate(__vector signed char __a, __vector signed char __b,
7375 __vector signed char __c, unsigned char __d)
7376 __constant(__d);
7377
7378 extern __ATTRS_o __vector unsigned char
7379 vec_evaluate(__vector unsigned char __a, __vector unsigned char __b,
7380 __vector unsigned char __c, unsigned char __d)
7381 __constant(__d);
7382
7383 extern __ATTRS_o __vector __bool char
7384 vec_evaluate(__vector __bool char __a, __vector __bool char __b,
7385 __vector __bool char __c, unsigned char __d)
7386 __constant(__d);
7387
7388 extern __ATTRS_o __vector signed short
7389 vec_evaluate(__vector signed short __a, __vector signed short __b,
7390 __vector signed short __c, unsigned char __d)
7391 __constant(__d);
7392
7393 extern __ATTRS_o __vector unsigned short
7394 vec_evaluate(__vector unsigned short __a, __vector unsigned short __b,
7395 __vector unsigned short __c, unsigned char __d)
7396 __constant(__d);
7397
7398 extern __ATTRS_o __vector __bool short
7399 vec_evaluate(__vector __bool short __a, __vector __bool short __b,
7400 __vector __bool short __c, unsigned char __d)
7401 __constant(__d);
7402
7403 extern __ATTRS_o __vector signed int
7404 vec_evaluate(__vector signed int __a, __vector signed int __b,
7405 __vector signed int __c, unsigned char __d)
7406 __constant(__d);
7407
7408 extern __ATTRS_o __vector unsigned int
7409 vec_evaluate(__vector unsigned int __a, __vector unsigned int __b,
7410 __vector unsigned int __c, unsigned char __d)
7411 __constant(__d);
7412
7413 extern __ATTRS_o __vector __bool int
7414 vec_evaluate(__vector __bool int __a, __vector __bool int __b,
7415 __vector __bool int __c, unsigned char __d)
7416 __constant(__d);
7417
7418 extern __ATTRS_o __vector signed long long
7419 vec_evaluate(__vector signed long long __a, __vector signed long long __b,
7420 __vector signed long long __c, unsigned char __d)
7421 __constant(__d);
7422
7423 extern __ATTRS_o __vector unsigned long long
7424 vec_evaluate(__vector unsigned long long __a, __vector unsigned long long __b,
7425 __vector unsigned long long __c, unsigned char __d)
7426 __constant(__d);
7427
7428 extern __ATTRS_o __vector __bool long long
7429 vec_evaluate(__vector __bool long long __a, __vector __bool long long __b,
7430 __vector __bool long long __c, unsigned char __d)
7431 __constant(__d);
7432
7433 extern __ATTRS_o __vector signed __int128
7434 vec_evaluate(__vector signed __int128 __a, __vector signed __int128 __b,
7435 __vector signed __int128 __c, unsigned char __d)
7436 __constant(__d);
7437
7438 extern __ATTRS_o __vector unsigned __int128
7439 vec_evaluate(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
7440 __vector unsigned __int128 __c, unsigned char __d)
7441 __constant(__d);
7442
7443 extern __ATTRS_o __vector __bool __int128
7444 vec_evaluate(__vector __bool __int128 __a, __vector __bool __int128 __b,
7445 __vector __bool __int128 __c, unsigned char __d)
7446 __constant(__d);
7447
7448 #define vec_evaluate(A, B, C, D) \
7449 ((__typeof__((vec_evaluate)((A), (B), (C), (D)))) \
7450 __builtin_s390_veval((__vector unsigned char)(A), \
7451 (__vector unsigned char)(B), \
7452 (__vector unsigned char)(C), (D)))
7453 #endif
7454
7455 /*-- vec_cntlz --------------------------------------------------------------*/
7456
7457 static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector signed char __a)7458 vec_cntlz(__vector signed char __a) {
7459 return __builtin_s390_vclzb((__vector unsigned char)__a);
7460 }
7461
7462 static inline __ATTRS_o_ai __vector unsigned char
vec_cntlz(__vector unsigned char __a)7463 vec_cntlz(__vector unsigned char __a) {
7464 return __builtin_s390_vclzb(__a);
7465 }
7466
7467 static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector signed short __a)7468 vec_cntlz(__vector signed short __a) {
7469 return __builtin_s390_vclzh((__vector unsigned short)__a);
7470 }
7471
7472 static inline __ATTRS_o_ai __vector unsigned short
vec_cntlz(__vector unsigned short __a)7473 vec_cntlz(__vector unsigned short __a) {
7474 return __builtin_s390_vclzh(__a);
7475 }
7476
7477 static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector signed int __a)7478 vec_cntlz(__vector signed int __a) {
7479 return __builtin_s390_vclzf((__vector unsigned int)__a);
7480 }
7481
7482 static inline __ATTRS_o_ai __vector unsigned int
vec_cntlz(__vector unsigned int __a)7483 vec_cntlz(__vector unsigned int __a) {
7484 return __builtin_s390_vclzf(__a);
7485 }
7486
7487 static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector signed long long __a)7488 vec_cntlz(__vector signed long long __a) {
7489 return __builtin_s390_vclzg((__vector unsigned long long)__a);
7490 }
7491
7492 static inline __ATTRS_o_ai __vector unsigned long long
vec_cntlz(__vector unsigned long long __a)7493 vec_cntlz(__vector unsigned long long __a) {
7494 return __builtin_s390_vclzg(__a);
7495 }
7496
7497 #if __ARCH__ >= 15
7498 static inline __ATTRS_o_ai __vector unsigned __int128
vec_cntlz(__vector signed __int128 __a)7499 vec_cntlz(__vector signed __int128 __a) {
7500 return (__vector unsigned __int128)
7501 __builtin_s390_vclzq((unsigned __int128)__a);
7502 }
7503
7504 static inline __ATTRS_o_ai __vector unsigned __int128
vec_cntlz(__vector unsigned __int128 __a)7505 vec_cntlz(__vector unsigned __int128 __a) {
7506 return (__vector unsigned __int128)
7507 __builtin_s390_vclzq((unsigned __int128)__a);
7508 }
7509 #endif
7510
7511 /*-- vec_cnttz --------------------------------------------------------------*/
7512
7513 static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector signed char __a)7514 vec_cnttz(__vector signed char __a) {
7515 return __builtin_s390_vctzb((__vector unsigned char)__a);
7516 }
7517
7518 static inline __ATTRS_o_ai __vector unsigned char
vec_cnttz(__vector unsigned char __a)7519 vec_cnttz(__vector unsigned char __a) {
7520 return __builtin_s390_vctzb(__a);
7521 }
7522
7523 static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector signed short __a)7524 vec_cnttz(__vector signed short __a) {
7525 return __builtin_s390_vctzh((__vector unsigned short)__a);
7526 }
7527
7528 static inline __ATTRS_o_ai __vector unsigned short
vec_cnttz(__vector unsigned short __a)7529 vec_cnttz(__vector unsigned short __a) {
7530 return __builtin_s390_vctzh(__a);
7531 }
7532
7533 static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector signed int __a)7534 vec_cnttz(__vector signed int __a) {
7535 return __builtin_s390_vctzf((__vector unsigned int)__a);
7536 }
7537
7538 static inline __ATTRS_o_ai __vector unsigned int
vec_cnttz(__vector unsigned int __a)7539 vec_cnttz(__vector unsigned int __a) {
7540 return __builtin_s390_vctzf(__a);
7541 }
7542
7543 static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector signed long long __a)7544 vec_cnttz(__vector signed long long __a) {
7545 return __builtin_s390_vctzg((__vector unsigned long long)__a);
7546 }
7547
7548 static inline __ATTRS_o_ai __vector unsigned long long
vec_cnttz(__vector unsigned long long __a)7549 vec_cnttz(__vector unsigned long long __a) {
7550 return __builtin_s390_vctzg(__a);
7551 }
7552
7553 #if __ARCH__ >= 15
7554 static inline __ATTRS_o_ai __vector unsigned __int128
vec_cnttz(__vector signed __int128 __a)7555 vec_cnttz(__vector signed __int128 __a) {
7556 return (__vector unsigned __int128)
7557 __builtin_s390_vctzq((unsigned __int128)__a);
7558 }
7559
7560 static inline __ATTRS_o_ai __vector unsigned __int128
vec_cnttz(__vector unsigned __int128 __a)7561 vec_cnttz(__vector unsigned __int128 __a) {
7562 return (__vector unsigned __int128)
7563 __builtin_s390_vctzq((unsigned __int128)__a);
7564 }
7565 #endif
7566
7567 /*-- vec_popcnt -------------------------------------------------------------*/
7568
7569 static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector signed char __a)7570 vec_popcnt(__vector signed char __a) {
7571 return __builtin_elementwise_popcount((__vector unsigned char)__a);
7572 }
7573
7574 static inline __ATTRS_o_ai __vector unsigned char
vec_popcnt(__vector unsigned char __a)7575 vec_popcnt(__vector unsigned char __a) {
7576 return __builtin_elementwise_popcount(__a);
7577 }
7578
7579 static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector signed short __a)7580 vec_popcnt(__vector signed short __a) {
7581 return __builtin_elementwise_popcount((__vector unsigned short)__a);
7582 }
7583
7584 static inline __ATTRS_o_ai __vector unsigned short
vec_popcnt(__vector unsigned short __a)7585 vec_popcnt(__vector unsigned short __a) {
7586 return __builtin_elementwise_popcount(__a);
7587 }
7588
7589 static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector signed int __a)7590 vec_popcnt(__vector signed int __a) {
7591 return __builtin_elementwise_popcount((__vector unsigned int)__a);
7592 }
7593
7594 static inline __ATTRS_o_ai __vector unsigned int
vec_popcnt(__vector unsigned int __a)7595 vec_popcnt(__vector unsigned int __a) {
7596 return __builtin_elementwise_popcount(__a);
7597 }
7598
7599 static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector signed long long __a)7600 vec_popcnt(__vector signed long long __a) {
7601 return __builtin_elementwise_popcount((__vector unsigned long long)__a);
7602 }
7603
7604 static inline __ATTRS_o_ai __vector unsigned long long
vec_popcnt(__vector unsigned long long __a)7605 vec_popcnt(__vector unsigned long long __a) {
7606 return __builtin_elementwise_popcount(__a);
7607 }
7608
7609 /*-- vec_rl -----------------------------------------------------------------*/
7610
7611 static inline __ATTRS_o_ai __vector signed char
vec_rl(__vector signed char __a,__vector unsigned char __b)7612 vec_rl(__vector signed char __a, __vector unsigned char __b) {
7613 return (__vector signed char)__builtin_s390_verllvb(
7614 (__vector unsigned char)__a, __b);
7615 }
7616
7617 static inline __ATTRS_o_ai __vector unsigned char
vec_rl(__vector unsigned char __a,__vector unsigned char __b)7618 vec_rl(__vector unsigned char __a, __vector unsigned char __b) {
7619 return __builtin_s390_verllvb(__a, __b);
7620 }
7621
7622 static inline __ATTRS_o_ai __vector signed short
vec_rl(__vector signed short __a,__vector unsigned short __b)7623 vec_rl(__vector signed short __a, __vector unsigned short __b) {
7624 return (__vector signed short)__builtin_s390_verllvh(
7625 (__vector unsigned short)__a, __b);
7626 }
7627
7628 static inline __ATTRS_o_ai __vector unsigned short
vec_rl(__vector unsigned short __a,__vector unsigned short __b)7629 vec_rl(__vector unsigned short __a, __vector unsigned short __b) {
7630 return __builtin_s390_verllvh(__a, __b);
7631 }
7632
7633 static inline __ATTRS_o_ai __vector signed int
vec_rl(__vector signed int __a,__vector unsigned int __b)7634 vec_rl(__vector signed int __a, __vector unsigned int __b) {
7635 return (__vector signed int)__builtin_s390_verllvf(
7636 (__vector unsigned int)__a, __b);
7637 }
7638
7639 static inline __ATTRS_o_ai __vector unsigned int
vec_rl(__vector unsigned int __a,__vector unsigned int __b)7640 vec_rl(__vector unsigned int __a, __vector unsigned int __b) {
7641 return __builtin_s390_verllvf(__a, __b);
7642 }
7643
7644 static inline __ATTRS_o_ai __vector signed long long
vec_rl(__vector signed long long __a,__vector unsigned long long __b)7645 vec_rl(__vector signed long long __a, __vector unsigned long long __b) {
7646 return (__vector signed long long)__builtin_s390_verllvg(
7647 (__vector unsigned long long)__a, __b);
7648 }
7649
7650 static inline __ATTRS_o_ai __vector unsigned long long
vec_rl(__vector unsigned long long __a,__vector unsigned long long __b)7651 vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {
7652 return __builtin_s390_verllvg(__a, __b);
7653 }
7654
7655 /*-- vec_rli ----------------------------------------------------------------*/
7656
7657 static inline __ATTRS_o_ai __vector signed char
vec_rli(__vector signed char __a,unsigned long __b)7658 vec_rli(__vector signed char __a, unsigned long __b) {
7659 return (__vector signed char)__builtin_s390_verllb(
7660 (__vector unsigned char)__a, (unsigned char)__b);
7661 }
7662
7663 static inline __ATTRS_o_ai __vector unsigned char
vec_rli(__vector unsigned char __a,unsigned long __b)7664 vec_rli(__vector unsigned char __a, unsigned long __b) {
7665 return __builtin_s390_verllb(__a, (unsigned char)__b);
7666 }
7667
7668 static inline __ATTRS_o_ai __vector signed short
vec_rli(__vector signed short __a,unsigned long __b)7669 vec_rli(__vector signed short __a, unsigned long __b) {
7670 return (__vector signed short)__builtin_s390_verllh(
7671 (__vector unsigned short)__a, (unsigned char)__b);
7672 }
7673
7674 static inline __ATTRS_o_ai __vector unsigned short
vec_rli(__vector unsigned short __a,unsigned long __b)7675 vec_rli(__vector unsigned short __a, unsigned long __b) {
7676 return __builtin_s390_verllh(__a, (unsigned char)__b);
7677 }
7678
7679 static inline __ATTRS_o_ai __vector signed int
vec_rli(__vector signed int __a,unsigned long __b)7680 vec_rli(__vector signed int __a, unsigned long __b) {
7681 return (__vector signed int)__builtin_s390_verllf(
7682 (__vector unsigned int)__a, (unsigned char)__b);
7683 }
7684
7685 static inline __ATTRS_o_ai __vector unsigned int
vec_rli(__vector unsigned int __a,unsigned long __b)7686 vec_rli(__vector unsigned int __a, unsigned long __b) {
7687 return __builtin_s390_verllf(__a, (unsigned char)__b);
7688 }
7689
7690 static inline __ATTRS_o_ai __vector signed long long
vec_rli(__vector signed long long __a,unsigned long __b)7691 vec_rli(__vector signed long long __a, unsigned long __b) {
7692 return (__vector signed long long)__builtin_s390_verllg(
7693 (__vector unsigned long long)__a, (unsigned char)__b);
7694 }
7695
7696 static inline __ATTRS_o_ai __vector unsigned long long
vec_rli(__vector unsigned long long __a,unsigned long __b)7697 vec_rli(__vector unsigned long long __a, unsigned long __b) {
7698 return __builtin_s390_verllg(__a, (unsigned char)__b);
7699 }
7700
7701 /*-- vec_rl_mask ------------------------------------------------------------*/
7702
7703 extern __ATTRS_o __vector signed char
7704 vec_rl_mask(__vector signed char __a, __vector unsigned char __b,
7705 unsigned char __c) __constant(__c);
7706
7707 extern __ATTRS_o __vector unsigned char
7708 vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,
7709 unsigned char __c) __constant(__c);
7710
7711 extern __ATTRS_o __vector signed short
7712 vec_rl_mask(__vector signed short __a, __vector unsigned short __b,
7713 unsigned char __c) __constant(__c);
7714
7715 extern __ATTRS_o __vector unsigned short
7716 vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,
7717 unsigned char __c) __constant(__c);
7718
7719 extern __ATTRS_o __vector signed int
7720 vec_rl_mask(__vector signed int __a, __vector unsigned int __b,
7721 unsigned char __c) __constant(__c);
7722
7723 extern __ATTRS_o __vector unsigned int
7724 vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,
7725 unsigned char __c) __constant(__c);
7726
7727 extern __ATTRS_o __vector signed long long
7728 vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,
7729 unsigned char __c) __constant(__c);
7730
7731 extern __ATTRS_o __vector unsigned long long
7732 vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,
7733 unsigned char __c) __constant(__c);
7734
7735 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
7736 __extension__ ({ \
7737 __vector unsigned char __res; \
7738 __vector unsigned char __x = (__vector unsigned char)(X); \
7739 __vector unsigned char __y = (__vector unsigned char)(Y); \
7740 switch (sizeof ((X)[0])) { \
7741 case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \
7742 (__vector unsigned char)__x, (__vector unsigned char)__x, \
7743 (__vector unsigned char)__y, (Z)); break; \
7744 case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \
7745 (__vector unsigned short)__x, (__vector unsigned short)__x, \
7746 (__vector unsigned short)__y, (Z)); break; \
7747 case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \
7748 (__vector unsigned int)__x, (__vector unsigned int)__x, \
7749 (__vector unsigned int)__y, (Z)); break; \
7750 default: __res = (__vector unsigned char) __builtin_s390_verimg( \
7751 (__vector unsigned long long)__x, (__vector unsigned long long)__x, \
7752 (__vector unsigned long long)__y, (Z)); break; \
7753 } __res; }))
7754
7755 /*-- vec_sll ----------------------------------------------------------------*/
7756
7757 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned char __b)7758 vec_sll(__vector signed char __a, __vector unsigned char __b) {
7759 return (__vector signed char)__builtin_s390_vsl(
7760 (__vector unsigned char)__a, __b);
7761 }
7762
7763 // This prototype is deprecated.
7764 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned short __b)7765 vec_sll(__vector signed char __a, __vector unsigned short __b) {
7766 return (__vector signed char)__builtin_s390_vsl(
7767 (__vector unsigned char)__a, (__vector unsigned char)__b);
7768 }
7769
7770 // This prototype is deprecated.
7771 static inline __ATTRS_o_ai __vector signed char
vec_sll(__vector signed char __a,__vector unsigned int __b)7772 vec_sll(__vector signed char __a, __vector unsigned int __b) {
7773 return (__vector signed char)__builtin_s390_vsl(
7774 (__vector unsigned char)__a, (__vector unsigned char)__b);
7775 }
7776
7777 // This prototype is deprecated.
7778 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned char __b)7779 vec_sll(__vector __bool char __a, __vector unsigned char __b) {
7780 return (__vector __bool char)__builtin_s390_vsl(
7781 (__vector unsigned char)__a, __b);
7782 }
7783
7784 // This prototype is deprecated.
7785 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned short __b)7786 vec_sll(__vector __bool char __a, __vector unsigned short __b) {
7787 return (__vector __bool char)__builtin_s390_vsl(
7788 (__vector unsigned char)__a, (__vector unsigned char)__b);
7789 }
7790
7791 // This prototype is deprecated.
7792 static inline __ATTRS_o_ai __vector __bool char
vec_sll(__vector __bool char __a,__vector unsigned int __b)7793 vec_sll(__vector __bool char __a, __vector unsigned int __b) {
7794 return (__vector __bool char)__builtin_s390_vsl(
7795 (__vector unsigned char)__a, (__vector unsigned char)__b);
7796 }
7797
7798 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned char __b)7799 vec_sll(__vector unsigned char __a, __vector unsigned char __b) {
7800 return __builtin_s390_vsl(__a, __b);
7801 }
7802
7803 // This prototype is deprecated.
7804 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned short __b)7805 vec_sll(__vector unsigned char __a, __vector unsigned short __b) {
7806 return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
7807 }
7808
7809 // This prototype is deprecated.
7810 static inline __ATTRS_o_ai __vector unsigned char
vec_sll(__vector unsigned char __a,__vector unsigned int __b)7811 vec_sll(__vector unsigned char __a, __vector unsigned int __b) {
7812 return __builtin_s390_vsl(__a, (__vector unsigned char)__b);
7813 }
7814
7815 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned char __b)7816 vec_sll(__vector signed short __a, __vector unsigned char __b) {
7817 return (__vector signed short)__builtin_s390_vsl(
7818 (__vector unsigned char)__a, __b);
7819 }
7820
7821 // This prototype is deprecated.
7822 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned short __b)7823 vec_sll(__vector signed short __a, __vector unsigned short __b) {
7824 return (__vector signed short)__builtin_s390_vsl(
7825 (__vector unsigned char)__a, (__vector unsigned char)__b);
7826 }
7827
7828 // This prototype is deprecated.
7829 static inline __ATTRS_o_ai __vector signed short
vec_sll(__vector signed short __a,__vector unsigned int __b)7830 vec_sll(__vector signed short __a, __vector unsigned int __b) {
7831 return (__vector signed short)__builtin_s390_vsl(
7832 (__vector unsigned char)__a, (__vector unsigned char)__b);
7833 }
7834
7835 // This prototype is deprecated.
7836 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned char __b)7837 vec_sll(__vector __bool short __a, __vector unsigned char __b) {
7838 return (__vector __bool short)__builtin_s390_vsl(
7839 (__vector unsigned char)__a, __b);
7840 }
7841
7842 // This prototype is deprecated.
7843 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned short __b)7844 vec_sll(__vector __bool short __a, __vector unsigned short __b) {
7845 return (__vector __bool short)__builtin_s390_vsl(
7846 (__vector unsigned char)__a, (__vector unsigned char)__b);
7847 }
7848
7849 // This prototype is deprecated.
7850 static inline __ATTRS_o_ai __vector __bool short
vec_sll(__vector __bool short __a,__vector unsigned int __b)7851 vec_sll(__vector __bool short __a, __vector unsigned int __b) {
7852 return (__vector __bool short)__builtin_s390_vsl(
7853 (__vector unsigned char)__a, (__vector unsigned char)__b);
7854 }
7855
7856 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned char __b)7857 vec_sll(__vector unsigned short __a, __vector unsigned char __b) {
7858 return (__vector unsigned short)__builtin_s390_vsl(
7859 (__vector unsigned char)__a, __b);
7860 }
7861
7862 // This prototype is deprecated.
7863 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned short __b)7864 vec_sll(__vector unsigned short __a, __vector unsigned short __b) {
7865 return (__vector unsigned short)__builtin_s390_vsl(
7866 (__vector unsigned char)__a, (__vector unsigned char)__b);
7867 }
7868
7869 // This prototype is deprecated.
7870 static inline __ATTRS_o_ai __vector unsigned short
vec_sll(__vector unsigned short __a,__vector unsigned int __b)7871 vec_sll(__vector unsigned short __a, __vector unsigned int __b) {
7872 return (__vector unsigned short)__builtin_s390_vsl(
7873 (__vector unsigned char)__a, (__vector unsigned char)__b);
7874 }
7875
7876 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned char __b)7877 vec_sll(__vector signed int __a, __vector unsigned char __b) {
7878 return (__vector signed int)__builtin_s390_vsl(
7879 (__vector unsigned char)__a, __b);
7880 }
7881
7882 // This prototype is deprecated.
7883 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned short __b)7884 vec_sll(__vector signed int __a, __vector unsigned short __b) {
7885 return (__vector signed int)__builtin_s390_vsl(
7886 (__vector unsigned char)__a, (__vector unsigned char)__b);
7887 }
7888
7889 // This prototype is deprecated.
7890 static inline __ATTRS_o_ai __vector signed int
vec_sll(__vector signed int __a,__vector unsigned int __b)7891 vec_sll(__vector signed int __a, __vector unsigned int __b) {
7892 return (__vector signed int)__builtin_s390_vsl(
7893 (__vector unsigned char)__a, (__vector unsigned char)__b);
7894 }
7895
7896 // This prototype is deprecated.
7897 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned char __b)7898 vec_sll(__vector __bool int __a, __vector unsigned char __b) {
7899 return (__vector __bool int)__builtin_s390_vsl(
7900 (__vector unsigned char)__a, __b);
7901 }
7902
7903 // This prototype is deprecated.
7904 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned short __b)7905 vec_sll(__vector __bool int __a, __vector unsigned short __b) {
7906 return (__vector __bool int)__builtin_s390_vsl(
7907 (__vector unsigned char)__a, (__vector unsigned char)__b);
7908 }
7909
7910 // This prototype is deprecated.
7911 static inline __ATTRS_o_ai __vector __bool int
vec_sll(__vector __bool int __a,__vector unsigned int __b)7912 vec_sll(__vector __bool int __a, __vector unsigned int __b) {
7913 return (__vector __bool int)__builtin_s390_vsl(
7914 (__vector unsigned char)__a, (__vector unsigned char)__b);
7915 }
7916
7917 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned char __b)7918 vec_sll(__vector unsigned int __a, __vector unsigned char __b) {
7919 return (__vector unsigned int)__builtin_s390_vsl(
7920 (__vector unsigned char)__a, __b);
7921 }
7922
7923 // This prototype is deprecated.
7924 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned short __b)7925 vec_sll(__vector unsigned int __a, __vector unsigned short __b) {
7926 return (__vector unsigned int)__builtin_s390_vsl(
7927 (__vector unsigned char)__a, (__vector unsigned char)__b);
7928 }
7929
7930 // This prototype is deprecated.
7931 static inline __ATTRS_o_ai __vector unsigned int
vec_sll(__vector unsigned int __a,__vector unsigned int __b)7932 vec_sll(__vector unsigned int __a, __vector unsigned int __b) {
7933 return (__vector unsigned int)__builtin_s390_vsl(
7934 (__vector unsigned char)__a, (__vector unsigned char)__b);
7935 }
7936
7937 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned char __b)7938 vec_sll(__vector signed long long __a, __vector unsigned char __b) {
7939 return (__vector signed long long)__builtin_s390_vsl(
7940 (__vector unsigned char)__a, __b);
7941 }
7942
7943 // This prototype is deprecated.
7944 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned short __b)7945 vec_sll(__vector signed long long __a, __vector unsigned short __b) {
7946 return (__vector signed long long)__builtin_s390_vsl(
7947 (__vector unsigned char)__a, (__vector unsigned char)__b);
7948 }
7949
7950 // This prototype is deprecated.
7951 static inline __ATTRS_o_ai __vector signed long long
vec_sll(__vector signed long long __a,__vector unsigned int __b)7952 vec_sll(__vector signed long long __a, __vector unsigned int __b) {
7953 return (__vector signed long long)__builtin_s390_vsl(
7954 (__vector unsigned char)__a, (__vector unsigned char)__b);
7955 }
7956
7957 // This prototype is deprecated.
7958 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned char __b)7959 vec_sll(__vector __bool long long __a, __vector unsigned char __b) {
7960 return (__vector __bool long long)__builtin_s390_vsl(
7961 (__vector unsigned char)__a, __b);
7962 }
7963
7964 // This prototype is deprecated.
7965 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned short __b)7966 vec_sll(__vector __bool long long __a, __vector unsigned short __b) {
7967 return (__vector __bool long long)__builtin_s390_vsl(
7968 (__vector unsigned char)__a, (__vector unsigned char)__b);
7969 }
7970
7971 // This prototype is deprecated.
7972 static inline __ATTRS_o_ai __vector __bool long long
vec_sll(__vector __bool long long __a,__vector unsigned int __b)7973 vec_sll(__vector __bool long long __a, __vector unsigned int __b) {
7974 return (__vector __bool long long)__builtin_s390_vsl(
7975 (__vector unsigned char)__a, (__vector unsigned char)__b);
7976 }
7977
7978 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned char __b)7979 vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {
7980 return (__vector unsigned long long)__builtin_s390_vsl(
7981 (__vector unsigned char)__a, __b);
7982 }
7983
7984 // This prototype is deprecated.
7985 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned short __b)7986 vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {
7987 return (__vector unsigned long long)__builtin_s390_vsl(
7988 (__vector unsigned char)__a, (__vector unsigned char)__b);
7989 }
7990
7991 // This prototype is deprecated.
7992 static inline __ATTRS_o_ai __vector unsigned long long
vec_sll(__vector unsigned long long __a,__vector unsigned int __b)7993 vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {
7994 return (__vector unsigned long long)__builtin_s390_vsl(
7995 (__vector unsigned char)__a, (__vector unsigned char)__b);
7996 }
7997
7998 static inline __ATTRS_o_ai __vector signed __int128
vec_sll(__vector signed __int128 __a,__vector unsigned char __b)7999 vec_sll(__vector signed __int128 __a, __vector unsigned char __b) {
8000 return (__vector signed __int128)__builtin_s390_vsl(
8001 (__vector unsigned char)__a, __b);
8002 }
8003
8004 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sll(__vector unsigned __int128 __a,__vector unsigned char __b)8005 vec_sll(__vector unsigned __int128 __a, __vector unsigned char __b) {
8006 return (__vector unsigned __int128)__builtin_s390_vsl(
8007 (__vector unsigned char)__a, __b);
8008 }
8009
8010 /*-- vec_slb ----------------------------------------------------------------*/
8011
8012 // This prototype is deprecated.
8013 static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector signed char __b)8014 vec_slb(__vector signed char __a, __vector signed char __b) {
8015 return (__vector signed char)__builtin_s390_vslb(
8016 (__vector unsigned char)__a, (__vector unsigned char)__b);
8017 }
8018
8019 static inline __ATTRS_o_ai __vector signed char
vec_slb(__vector signed char __a,__vector unsigned char __b)8020 vec_slb(__vector signed char __a, __vector unsigned char __b) {
8021 return (__vector signed char)__builtin_s390_vslb(
8022 (__vector unsigned char)__a, __b);
8023 }
8024
8025 // This prototype is deprecated.
8026 static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector signed char __b)8027 vec_slb(__vector unsigned char __a, __vector signed char __b) {
8028 return __builtin_s390_vslb(__a, (__vector unsigned char)__b);
8029 }
8030
8031 static inline __ATTRS_o_ai __vector unsigned char
vec_slb(__vector unsigned char __a,__vector unsigned char __b)8032 vec_slb(__vector unsigned char __a, __vector unsigned char __b) {
8033 return __builtin_s390_vslb(__a, __b);
8034 }
8035
8036 // This prototype is deprecated.
8037 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector signed short __b)8038 vec_slb(__vector signed short __a, __vector signed short __b) {
8039 return (__vector signed short)__builtin_s390_vslb(
8040 (__vector unsigned char)__a, (__vector unsigned char)__b);
8041 }
8042
8043 // This prototype is deprecated.
8044 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector unsigned short __b)8045 vec_slb(__vector signed short __a, __vector unsigned short __b) {
8046 return (__vector signed short)__builtin_s390_vslb(
8047 (__vector unsigned char)__a, (__vector unsigned char)__b);
8048 }
8049
8050 static inline __ATTRS_o_ai __vector signed short
vec_slb(__vector signed short __a,__vector unsigned char __b)8051 vec_slb(__vector signed short __a, __vector unsigned char __b) {
8052 return (__vector signed short)__builtin_s390_vslb(
8053 (__vector unsigned char)__a, __b);
8054 }
8055
8056 // This prototype is deprecated.
8057 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector signed short __b)8058 vec_slb(__vector unsigned short __a, __vector signed short __b) {
8059 return (__vector unsigned short)__builtin_s390_vslb(
8060 (__vector unsigned char)__a, (__vector unsigned char)__b);
8061 }
8062
8063 // This prototype is deprecated.
8064 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector unsigned short __b)8065 vec_slb(__vector unsigned short __a, __vector unsigned short __b) {
8066 return (__vector unsigned short)__builtin_s390_vslb(
8067 (__vector unsigned char)__a, (__vector unsigned char)__b);
8068 }
8069
8070 static inline __ATTRS_o_ai __vector unsigned short
vec_slb(__vector unsigned short __a,__vector unsigned char __b)8071 vec_slb(__vector unsigned short __a, __vector unsigned char __b) {
8072 return (__vector unsigned short)__builtin_s390_vslb(
8073 (__vector unsigned char)__a, __b);
8074 }
8075
8076 // This prototype is deprecated.
8077 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector signed int __b)8078 vec_slb(__vector signed int __a, __vector signed int __b) {
8079 return (__vector signed int)__builtin_s390_vslb(
8080 (__vector unsigned char)__a, (__vector unsigned char)__b);
8081 }
8082
8083 // This prototype is deprecated.
8084 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector unsigned int __b)8085 vec_slb(__vector signed int __a, __vector unsigned int __b) {
8086 return (__vector signed int)__builtin_s390_vslb(
8087 (__vector unsigned char)__a, (__vector unsigned char)__b);
8088 }
8089
8090 static inline __ATTRS_o_ai __vector signed int
vec_slb(__vector signed int __a,__vector unsigned char __b)8091 vec_slb(__vector signed int __a, __vector unsigned char __b) {
8092 return (__vector signed int)__builtin_s390_vslb(
8093 (__vector unsigned char)__a, __b);
8094 }
8095
8096 // This prototype is deprecated.
8097 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector signed int __b)8098 vec_slb(__vector unsigned int __a, __vector signed int __b) {
8099 return (__vector unsigned int)__builtin_s390_vslb(
8100 (__vector unsigned char)__a, (__vector unsigned char)__b);
8101 }
8102
8103 // This prototype is deprecated.
8104 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector unsigned int __b)8105 vec_slb(__vector unsigned int __a, __vector unsigned int __b) {
8106 return (__vector unsigned int)__builtin_s390_vslb(
8107 (__vector unsigned char)__a, (__vector unsigned char)__b);
8108 }
8109
8110 static inline __ATTRS_o_ai __vector unsigned int
vec_slb(__vector unsigned int __a,__vector unsigned char __b)8111 vec_slb(__vector unsigned int __a, __vector unsigned char __b) {
8112 return (__vector unsigned int)__builtin_s390_vslb(
8113 (__vector unsigned char)__a, __b);
8114 }
8115
8116 // This prototype is deprecated.
8117 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector signed long long __b)8118 vec_slb(__vector signed long long __a, __vector signed long long __b) {
8119 return (__vector signed long long)__builtin_s390_vslb(
8120 (__vector unsigned char)__a, (__vector unsigned char)__b);
8121 }
8122
8123 // This prototype is deprecated.
8124 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector unsigned long long __b)8125 vec_slb(__vector signed long long __a, __vector unsigned long long __b) {
8126 return (__vector signed long long)__builtin_s390_vslb(
8127 (__vector unsigned char)__a, (__vector unsigned char)__b);
8128 }
8129
8130 static inline __ATTRS_o_ai __vector signed long long
vec_slb(__vector signed long long __a,__vector unsigned char __b)8131 vec_slb(__vector signed long long __a, __vector unsigned char __b) {
8132 return (__vector signed long long)__builtin_s390_vslb(
8133 (__vector unsigned char)__a, __b);
8134 }
8135
8136 // This prototype is deprecated.
8137 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector signed long long __b)8138 vec_slb(__vector unsigned long long __a, __vector signed long long __b) {
8139 return (__vector unsigned long long)__builtin_s390_vslb(
8140 (__vector unsigned char)__a, (__vector unsigned char)__b);
8141 }
8142
8143 // This prototype is deprecated.
8144 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector unsigned long long __b)8145 vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {
8146 return (__vector unsigned long long)__builtin_s390_vslb(
8147 (__vector unsigned char)__a, (__vector unsigned char)__b);
8148 }
8149
8150 static inline __ATTRS_o_ai __vector unsigned long long
vec_slb(__vector unsigned long long __a,__vector unsigned char __b)8151 vec_slb(__vector unsigned long long __a, __vector unsigned char __b) {
8152 return (__vector unsigned long long)__builtin_s390_vslb(
8153 (__vector unsigned char)__a, __b);
8154 }
8155
8156 static inline __ATTRS_o_ai __vector signed __int128
vec_slb(__vector signed __int128 __a,__vector unsigned char __b)8157 vec_slb(__vector signed __int128 __a, __vector unsigned char __b) {
8158 return (__vector signed __int128)__builtin_s390_vslb(
8159 (__vector unsigned char)__a, __b);
8160 }
8161
8162 static inline __ATTRS_o_ai __vector unsigned __int128
vec_slb(__vector unsigned __int128 __a,__vector unsigned char __b)8163 vec_slb(__vector unsigned __int128 __a, __vector unsigned char __b) {
8164 return (__vector unsigned __int128)__builtin_s390_vslb(
8165 (__vector unsigned char)__a, __b);
8166 }
8167
8168 #if __ARCH__ >= 12
8169 // This prototype is deprecated.
8170 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector signed int __b)8171 vec_slb(__vector float __a, __vector signed int __b) {
8172 return (__vector float)__builtin_s390_vslb(
8173 (__vector unsigned char)__a, (__vector unsigned char)__b);
8174 }
8175
8176 // This prototype is deprecated.
8177 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector unsigned int __b)8178 vec_slb(__vector float __a, __vector unsigned int __b) {
8179 return (__vector float)__builtin_s390_vslb(
8180 (__vector unsigned char)__a, (__vector unsigned char)__b);
8181 }
8182
8183 static inline __ATTRS_o_ai __vector float
vec_slb(__vector float __a,__vector unsigned char __b)8184 vec_slb(__vector float __a, __vector unsigned char __b) {
8185 return (__vector float)__builtin_s390_vslb(
8186 (__vector unsigned char)__a, __b);
8187 }
8188 #endif
8189
8190 // This prototype is deprecated.
8191 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector signed long long __b)8192 vec_slb(__vector double __a, __vector signed long long __b) {
8193 return (__vector double)__builtin_s390_vslb(
8194 (__vector unsigned char)__a, (__vector unsigned char)__b);
8195 }
8196
8197 // This prototype is deprecated.
8198 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector unsigned long long __b)8199 vec_slb(__vector double __a, __vector unsigned long long __b) {
8200 return (__vector double)__builtin_s390_vslb(
8201 (__vector unsigned char)__a, (__vector unsigned char)__b);
8202 }
8203
8204 static inline __ATTRS_o_ai __vector double
vec_slb(__vector double __a,__vector unsigned char __b)8205 vec_slb(__vector double __a, __vector unsigned char __b) {
8206 return (__vector double)__builtin_s390_vslb(
8207 (__vector unsigned char)__a, __b);
8208 }
8209
8210 /*-- vec_sld ----------------------------------------------------------------*/
8211
8212 extern __ATTRS_o __vector signed char
8213 vec_sld(__vector signed char __a, __vector signed char __b, int __c)
8214 __constant_range(__c, 0, 15);
8215
8216 // This prototype is deprecated.
8217 extern __ATTRS_o __vector __bool char
8218 vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)
8219 __constant_range(__c, 0, 15);
8220
8221 extern __ATTRS_o __vector unsigned char
8222 vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)
8223 __constant_range(__c, 0, 15);
8224
8225 extern __ATTRS_o __vector signed short
8226 vec_sld(__vector signed short __a, __vector signed short __b, int __c)
8227 __constant_range(__c, 0, 15);
8228
8229 // This prototype is deprecated.
8230 extern __ATTRS_o __vector __bool short
8231 vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)
8232 __constant_range(__c, 0, 15);
8233
8234 extern __ATTRS_o __vector unsigned short
8235 vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)
8236 __constant_range(__c, 0, 15);
8237
8238 extern __ATTRS_o __vector signed int
8239 vec_sld(__vector signed int __a, __vector signed int __b, int __c)
8240 __constant_range(__c, 0, 15);
8241
8242 // This prototype is deprecated.
8243 extern __ATTRS_o __vector __bool int
8244 vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)
8245 __constant_range(__c, 0, 15);
8246
8247 extern __ATTRS_o __vector unsigned int
8248 vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)
8249 __constant_range(__c, 0, 15);
8250
8251 extern __ATTRS_o __vector signed long long
8252 vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)
8253 __constant_range(__c, 0, 15);
8254
8255 // This prototype is deprecated.
8256 extern __ATTRS_o __vector __bool long long
8257 vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)
8258 __constant_range(__c, 0, 15);
8259
8260 extern __ATTRS_o __vector unsigned long long
8261 vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,
8262 int __c)
8263 __constant_range(__c, 0, 15);
8264
8265 extern __ATTRS_o __vector signed __int128
8266 vec_sld(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8267 __constant_range(__c, 0, 15);
8268
8269 extern __ATTRS_o __vector unsigned __int128
8270 vec_sld(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8271 int __c)
8272 __constant_range(__c, 0, 15);
8273
8274 #if __ARCH__ >= 12
8275 extern __ATTRS_o __vector float
8276 vec_sld(__vector float __a, __vector float __b, int __c)
8277 __constant_range(__c, 0, 15);
8278 #endif
8279
8280 extern __ATTRS_o __vector double
8281 vec_sld(__vector double __a, __vector double __b, int __c)
8282 __constant_range(__c, 0, 15);
8283
8284 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
8285 __builtin_s390_vsldb((__vector unsigned char)(X), \
8286 (__vector unsigned char)(Y), (Z)))
8287
8288 /*-- vec_sldw ---------------------------------------------------------------*/
8289
8290 extern __ATTRS_o __vector signed char
8291 vec_sldw(__vector signed char __a, __vector signed char __b, int __c)
8292 __constant_range(__c, 0, 3);
8293
8294 extern __ATTRS_o __vector unsigned char
8295 vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)
8296 __constant_range(__c, 0, 3);
8297
8298 extern __ATTRS_o __vector signed short
8299 vec_sldw(__vector signed short __a, __vector signed short __b, int __c)
8300 __constant_range(__c, 0, 3);
8301
8302 extern __ATTRS_o __vector unsigned short
8303 vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)
8304 __constant_range(__c, 0, 3);
8305
8306 extern __ATTRS_o __vector signed int
8307 vec_sldw(__vector signed int __a, __vector signed int __b, int __c)
8308 __constant_range(__c, 0, 3);
8309
8310 extern __ATTRS_o __vector unsigned int
8311 vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)
8312 __constant_range(__c, 0, 3);
8313
8314 extern __ATTRS_o __vector signed long long
8315 vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)
8316 __constant_range(__c, 0, 3);
8317
8318 extern __ATTRS_o __vector unsigned long long
8319 vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,
8320 int __c)
8321 __constant_range(__c, 0, 3);
8322
8323 extern __ATTRS_o __vector signed __int128
8324 vec_sldw(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8325 __constant_range(__c, 0, 3);
8326
8327 extern __ATTRS_o __vector unsigned __int128
8328 vec_sldw(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8329 int __c)
8330 __constant_range(__c, 0, 3);
8331
8332 // This prototype is deprecated.
8333 extern __ATTRS_o __vector double
8334 vec_sldw(__vector double __a, __vector double __b, int __c)
8335 __constant_range(__c, 0, 3);
8336
8337 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
8338 __builtin_s390_vsldb((__vector unsigned char)(X), \
8339 (__vector unsigned char)(Y), (Z) * 4))
8340
8341 /*-- vec_sldb ---------------------------------------------------------------*/
8342
8343 #if __ARCH__ >= 13
8344
8345 extern __ATTRS_o __vector signed char
8346 vec_sldb(__vector signed char __a, __vector signed char __b, int __c)
8347 __constant_range(__c, 0, 7);
8348
8349 extern __ATTRS_o __vector unsigned char
8350 vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)
8351 __constant_range(__c, 0, 7);
8352
8353 extern __ATTRS_o __vector signed short
8354 vec_sldb(__vector signed short __a, __vector signed short __b, int __c)
8355 __constant_range(__c, 0, 7);
8356
8357 extern __ATTRS_o __vector unsigned short
8358 vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)
8359 __constant_range(__c, 0, 7);
8360
8361 extern __ATTRS_o __vector signed int
8362 vec_sldb(__vector signed int __a, __vector signed int __b, int __c)
8363 __constant_range(__c, 0, 7);
8364
8365 extern __ATTRS_o __vector unsigned int
8366 vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)
8367 __constant_range(__c, 0, 7);
8368
8369 extern __ATTRS_o __vector signed long long
8370 vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)
8371 __constant_range(__c, 0, 7);
8372
8373 extern __ATTRS_o __vector unsigned long long
8374 vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,
8375 int __c)
8376 __constant_range(__c, 0, 7);
8377
8378 extern __ATTRS_o __vector signed __int128
8379 vec_sldb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
8380 __constant_range(__c, 0, 7);
8381
8382 extern __ATTRS_o __vector unsigned __int128
8383 vec_sldb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
8384 int __c)
8385 __constant_range(__c, 0, 7);
8386
8387 extern __ATTRS_o __vector float
8388 vec_sldb(__vector float __a, __vector float __b, int __c)
8389 __constant_range(__c, 0, 7);
8390
8391 extern __ATTRS_o __vector double
8392 vec_sldb(__vector double __a, __vector double __b, int __c)
8393 __constant_range(__c, 0, 7);
8394
8395 #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \
8396 __builtin_s390_vsld((__vector unsigned char)(X), \
8397 (__vector unsigned char)(Y), (Z)))
8398
8399 #endif
8400
8401 /*-- vec_sral ---------------------------------------------------------------*/
8402
8403 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned char __b)8404 vec_sral(__vector signed char __a, __vector unsigned char __b) {
8405 return (__vector signed char)__builtin_s390_vsra(
8406 (__vector unsigned char)__a, __b);
8407 }
8408
8409 // This prototype is deprecated.
8410 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned short __b)8411 vec_sral(__vector signed char __a, __vector unsigned short __b) {
8412 return (__vector signed char)__builtin_s390_vsra(
8413 (__vector unsigned char)__a, (__vector unsigned char)__b);
8414 }
8415
8416 // This prototype is deprecated.
8417 static inline __ATTRS_o_ai __vector signed char
vec_sral(__vector signed char __a,__vector unsigned int __b)8418 vec_sral(__vector signed char __a, __vector unsigned int __b) {
8419 return (__vector signed char)__builtin_s390_vsra(
8420 (__vector unsigned char)__a, (__vector unsigned char)__b);
8421 }
8422
8423 // This prototype is deprecated.
8424 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned char __b)8425 vec_sral(__vector __bool char __a, __vector unsigned char __b) {
8426 return (__vector __bool char)__builtin_s390_vsra(
8427 (__vector unsigned char)__a, __b);
8428 }
8429
8430 // This prototype is deprecated.
8431 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned short __b)8432 vec_sral(__vector __bool char __a, __vector unsigned short __b) {
8433 return (__vector __bool char)__builtin_s390_vsra(
8434 (__vector unsigned char)__a, (__vector unsigned char)__b);
8435 }
8436
8437 // This prototype is deprecated.
8438 static inline __ATTRS_o_ai __vector __bool char
vec_sral(__vector __bool char __a,__vector unsigned int __b)8439 vec_sral(__vector __bool char __a, __vector unsigned int __b) {
8440 return (__vector __bool char)__builtin_s390_vsra(
8441 (__vector unsigned char)__a, (__vector unsigned char)__b);
8442 }
8443
8444 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned char __b)8445 vec_sral(__vector unsigned char __a, __vector unsigned char __b) {
8446 return __builtin_s390_vsra(__a, __b);
8447 }
8448
8449 // This prototype is deprecated.
8450 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned short __b)8451 vec_sral(__vector unsigned char __a, __vector unsigned short __b) {
8452 return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
8453 }
8454
8455 // This prototype is deprecated.
8456 static inline __ATTRS_o_ai __vector unsigned char
vec_sral(__vector unsigned char __a,__vector unsigned int __b)8457 vec_sral(__vector unsigned char __a, __vector unsigned int __b) {
8458 return __builtin_s390_vsra(__a, (__vector unsigned char)__b);
8459 }
8460
8461 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned char __b)8462 vec_sral(__vector signed short __a, __vector unsigned char __b) {
8463 return (__vector signed short)__builtin_s390_vsra(
8464 (__vector unsigned char)__a, __b);
8465 }
8466
8467 // This prototype is deprecated.
8468 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned short __b)8469 vec_sral(__vector signed short __a, __vector unsigned short __b) {
8470 return (__vector signed short)__builtin_s390_vsra(
8471 (__vector unsigned char)__a, (__vector unsigned char)__b);
8472 }
8473
8474 // This prototype is deprecated.
8475 static inline __ATTRS_o_ai __vector signed short
vec_sral(__vector signed short __a,__vector unsigned int __b)8476 vec_sral(__vector signed short __a, __vector unsigned int __b) {
8477 return (__vector signed short)__builtin_s390_vsra(
8478 (__vector unsigned char)__a, (__vector unsigned char)__b);
8479 }
8480
8481 // This prototype is deprecated.
8482 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned char __b)8483 vec_sral(__vector __bool short __a, __vector unsigned char __b) {
8484 return (__vector __bool short)__builtin_s390_vsra(
8485 (__vector unsigned char)__a, __b);
8486 }
8487
8488 // This prototype is deprecated.
8489 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned short __b)8490 vec_sral(__vector __bool short __a, __vector unsigned short __b) {
8491 return (__vector __bool short)__builtin_s390_vsra(
8492 (__vector unsigned char)__a, (__vector unsigned char)__b);
8493 }
8494
8495 // This prototype is deprecated.
8496 static inline __ATTRS_o_ai __vector __bool short
vec_sral(__vector __bool short __a,__vector unsigned int __b)8497 vec_sral(__vector __bool short __a, __vector unsigned int __b) {
8498 return (__vector __bool short)__builtin_s390_vsra(
8499 (__vector unsigned char)__a, (__vector unsigned char)__b);
8500 }
8501
8502 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned char __b)8503 vec_sral(__vector unsigned short __a, __vector unsigned char __b) {
8504 return (__vector unsigned short)__builtin_s390_vsra(
8505 (__vector unsigned char)__a, __b);
8506 }
8507
8508 // This prototype is deprecated.
8509 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned short __b)8510 vec_sral(__vector unsigned short __a, __vector unsigned short __b) {
8511 return (__vector unsigned short)__builtin_s390_vsra(
8512 (__vector unsigned char)__a, (__vector unsigned char)__b);
8513 }
8514
8515 // This prototype is deprecated.
8516 static inline __ATTRS_o_ai __vector unsigned short
vec_sral(__vector unsigned short __a,__vector unsigned int __b)8517 vec_sral(__vector unsigned short __a, __vector unsigned int __b) {
8518 return (__vector unsigned short)__builtin_s390_vsra(
8519 (__vector unsigned char)__a, (__vector unsigned char)__b);
8520 }
8521
8522 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned char __b)8523 vec_sral(__vector signed int __a, __vector unsigned char __b) {
8524 return (__vector signed int)__builtin_s390_vsra(
8525 (__vector unsigned char)__a, __b);
8526 }
8527
8528 // This prototype is deprecated.
8529 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned short __b)8530 vec_sral(__vector signed int __a, __vector unsigned short __b) {
8531 return (__vector signed int)__builtin_s390_vsra(
8532 (__vector unsigned char)__a, (__vector unsigned char)__b);
8533 }
8534
8535 // This prototype is deprecated.
8536 static inline __ATTRS_o_ai __vector signed int
vec_sral(__vector signed int __a,__vector unsigned int __b)8537 vec_sral(__vector signed int __a, __vector unsigned int __b) {
8538 return (__vector signed int)__builtin_s390_vsra(
8539 (__vector unsigned char)__a, (__vector unsigned char)__b);
8540 }
8541
8542 // This prototype is deprecated.
8543 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned char __b)8544 vec_sral(__vector __bool int __a, __vector unsigned char __b) {
8545 return (__vector __bool int)__builtin_s390_vsra(
8546 (__vector unsigned char)__a, __b);
8547 }
8548
8549 // This prototype is deprecated.
8550 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned short __b)8551 vec_sral(__vector __bool int __a, __vector unsigned short __b) {
8552 return (__vector __bool int)__builtin_s390_vsra(
8553 (__vector unsigned char)__a, (__vector unsigned char)__b);
8554 }
8555
8556 // This prototype is deprecated.
8557 static inline __ATTRS_o_ai __vector __bool int
vec_sral(__vector __bool int __a,__vector unsigned int __b)8558 vec_sral(__vector __bool int __a, __vector unsigned int __b) {
8559 return (__vector __bool int)__builtin_s390_vsra(
8560 (__vector unsigned char)__a, (__vector unsigned char)__b);
8561 }
8562
8563 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned char __b)8564 vec_sral(__vector unsigned int __a, __vector unsigned char __b) {
8565 return (__vector unsigned int)__builtin_s390_vsra(
8566 (__vector unsigned char)__a, __b);
8567 }
8568
8569 // This prototype is deprecated.
8570 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned short __b)8571 vec_sral(__vector unsigned int __a, __vector unsigned short __b) {
8572 return (__vector unsigned int)__builtin_s390_vsra(
8573 (__vector unsigned char)__a, (__vector unsigned char)__b);
8574 }
8575
8576 // This prototype is deprecated.
8577 static inline __ATTRS_o_ai __vector unsigned int
vec_sral(__vector unsigned int __a,__vector unsigned int __b)8578 vec_sral(__vector unsigned int __a, __vector unsigned int __b) {
8579 return (__vector unsigned int)__builtin_s390_vsra(
8580 (__vector unsigned char)__a, (__vector unsigned char)__b);
8581 }
8582
8583 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned char __b)8584 vec_sral(__vector signed long long __a, __vector unsigned char __b) {
8585 return (__vector signed long long)__builtin_s390_vsra(
8586 (__vector unsigned char)__a, __b);
8587 }
8588
8589 // This prototype is deprecated.
8590 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned short __b)8591 vec_sral(__vector signed long long __a, __vector unsigned short __b) {
8592 return (__vector signed long long)__builtin_s390_vsra(
8593 (__vector unsigned char)__a, (__vector unsigned char)__b);
8594 }
8595
8596 // This prototype is deprecated.
8597 static inline __ATTRS_o_ai __vector signed long long
vec_sral(__vector signed long long __a,__vector unsigned int __b)8598 vec_sral(__vector signed long long __a, __vector unsigned int __b) {
8599 return (__vector signed long long)__builtin_s390_vsra(
8600 (__vector unsigned char)__a, (__vector unsigned char)__b);
8601 }
8602
8603 // This prototype is deprecated.
8604 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned char __b)8605 vec_sral(__vector __bool long long __a, __vector unsigned char __b) {
8606 return (__vector __bool long long)__builtin_s390_vsra(
8607 (__vector unsigned char)__a, __b);
8608 }
8609
8610 // This prototype is deprecated.
8611 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned short __b)8612 vec_sral(__vector __bool long long __a, __vector unsigned short __b) {
8613 return (__vector __bool long long)__builtin_s390_vsra(
8614 (__vector unsigned char)__a, (__vector unsigned char)__b);
8615 }
8616
8617 // This prototype is deprecated.
8618 static inline __ATTRS_o_ai __vector __bool long long
vec_sral(__vector __bool long long __a,__vector unsigned int __b)8619 vec_sral(__vector __bool long long __a, __vector unsigned int __b) {
8620 return (__vector __bool long long)__builtin_s390_vsra(
8621 (__vector unsigned char)__a, (__vector unsigned char)__b);
8622 }
8623
8624 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned char __b)8625 vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {
8626 return (__vector unsigned long long)__builtin_s390_vsra(
8627 (__vector unsigned char)__a, __b);
8628 }
8629
8630 // This prototype is deprecated.
8631 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned short __b)8632 vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {
8633 return (__vector unsigned long long)__builtin_s390_vsra(
8634 (__vector unsigned char)__a, (__vector unsigned char)__b);
8635 }
8636
8637 // This prototype is deprecated.
8638 static inline __ATTRS_o_ai __vector unsigned long long
vec_sral(__vector unsigned long long __a,__vector unsigned int __b)8639 vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {
8640 return (__vector unsigned long long)__builtin_s390_vsra(
8641 (__vector unsigned char)__a, (__vector unsigned char)__b);
8642 }
8643
8644 static inline __ATTRS_o_ai __vector signed __int128
vec_sral(__vector signed __int128 __a,__vector unsigned char __b)8645 vec_sral(__vector signed __int128 __a, __vector unsigned char __b) {
8646 return (__vector signed __int128)__builtin_s390_vsra(
8647 (__vector unsigned char)__a, __b);
8648 }
8649
8650 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sral(__vector unsigned __int128 __a,__vector unsigned char __b)8651 vec_sral(__vector unsigned __int128 __a, __vector unsigned char __b) {
8652 return (__vector unsigned __int128)__builtin_s390_vsra(
8653 (__vector unsigned char)__a, __b);
8654 }
8655
8656 /*-- vec_srab ---------------------------------------------------------------*/
8657
8658 // This prototype is deprecated.
8659 static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector signed char __b)8660 vec_srab(__vector signed char __a, __vector signed char __b) {
8661 return (__vector signed char)__builtin_s390_vsrab(
8662 (__vector unsigned char)__a, (__vector unsigned char)__b);
8663 }
8664
8665 static inline __ATTRS_o_ai __vector signed char
vec_srab(__vector signed char __a,__vector unsigned char __b)8666 vec_srab(__vector signed char __a, __vector unsigned char __b) {
8667 return (__vector signed char)__builtin_s390_vsrab(
8668 (__vector unsigned char)__a, __b);
8669 }
8670
8671 // This prototype is deprecated.
8672 static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector signed char __b)8673 vec_srab(__vector unsigned char __a, __vector signed char __b) {
8674 return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);
8675 }
8676
8677 static inline __ATTRS_o_ai __vector unsigned char
vec_srab(__vector unsigned char __a,__vector unsigned char __b)8678 vec_srab(__vector unsigned char __a, __vector unsigned char __b) {
8679 return __builtin_s390_vsrab(__a, __b);
8680 }
8681
8682 // This prototype is deprecated.
8683 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector signed short __b)8684 vec_srab(__vector signed short __a, __vector signed short __b) {
8685 return (__vector signed short)__builtin_s390_vsrab(
8686 (__vector unsigned char)__a, (__vector unsigned char)__b);
8687 }
8688
8689 // This prototype is deprecated.
8690 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector unsigned short __b)8691 vec_srab(__vector signed short __a, __vector unsigned short __b) {
8692 return (__vector signed short)__builtin_s390_vsrab(
8693 (__vector unsigned char)__a, (__vector unsigned char)__b);
8694 }
8695
8696 static inline __ATTRS_o_ai __vector signed short
vec_srab(__vector signed short __a,__vector unsigned char __b)8697 vec_srab(__vector signed short __a, __vector unsigned char __b) {
8698 return (__vector signed short)__builtin_s390_vsrab(
8699 (__vector unsigned char)__a, __b);
8700 }
8701
8702 // This prototype is deprecated.
8703 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector signed short __b)8704 vec_srab(__vector unsigned short __a, __vector signed short __b) {
8705 return (__vector unsigned short)__builtin_s390_vsrab(
8706 (__vector unsigned char)__a, (__vector unsigned char)__b);
8707 }
8708
8709 // This prototype is deprecated.
8710 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector unsigned short __b)8711 vec_srab(__vector unsigned short __a, __vector unsigned short __b) {
8712 return (__vector unsigned short)__builtin_s390_vsrab(
8713 (__vector unsigned char)__a, (__vector unsigned char)__b);
8714 }
8715
8716 static inline __ATTRS_o_ai __vector unsigned short
vec_srab(__vector unsigned short __a,__vector unsigned char __b)8717 vec_srab(__vector unsigned short __a, __vector unsigned char __b) {
8718 return (__vector unsigned short)__builtin_s390_vsrab(
8719 (__vector unsigned char)__a, __b);
8720 }
8721
8722 // This prototype is deprecated.
8723 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector signed int __b)8724 vec_srab(__vector signed int __a, __vector signed int __b) {
8725 return (__vector signed int)__builtin_s390_vsrab(
8726 (__vector unsigned char)__a, (__vector unsigned char)__b);
8727 }
8728
8729 // This prototype is deprecated.
8730 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector unsigned int __b)8731 vec_srab(__vector signed int __a, __vector unsigned int __b) {
8732 return (__vector signed int)__builtin_s390_vsrab(
8733 (__vector unsigned char)__a, (__vector unsigned char)__b);
8734 }
8735
8736 static inline __ATTRS_o_ai __vector signed int
vec_srab(__vector signed int __a,__vector unsigned char __b)8737 vec_srab(__vector signed int __a, __vector unsigned char __b) {
8738 return (__vector signed int)__builtin_s390_vsrab(
8739 (__vector unsigned char)__a, __b);
8740 }
8741
8742 // This prototype is deprecated.
8743 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector signed int __b)8744 vec_srab(__vector unsigned int __a, __vector signed int __b) {
8745 return (__vector unsigned int)__builtin_s390_vsrab(
8746 (__vector unsigned char)__a, (__vector unsigned char)__b);
8747 }
8748
8749 // This prototype is deprecated.
8750 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector unsigned int __b)8751 vec_srab(__vector unsigned int __a, __vector unsigned int __b) {
8752 return (__vector unsigned int)__builtin_s390_vsrab(
8753 (__vector unsigned char)__a, (__vector unsigned char)__b);
8754 }
8755
8756 static inline __ATTRS_o_ai __vector unsigned int
vec_srab(__vector unsigned int __a,__vector unsigned char __b)8757 vec_srab(__vector unsigned int __a, __vector unsigned char __b) {
8758 return (__vector unsigned int)__builtin_s390_vsrab(
8759 (__vector unsigned char)__a, __b);
8760 }
8761
8762 // This prototype is deprecated.
8763 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector signed long long __b)8764 vec_srab(__vector signed long long __a, __vector signed long long __b) {
8765 return (__vector signed long long)__builtin_s390_vsrab(
8766 (__vector unsigned char)__a, (__vector unsigned char)__b);
8767 }
8768
8769 // This prototype is deprecated.
8770 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector unsigned long long __b)8771 vec_srab(__vector signed long long __a, __vector unsigned long long __b) {
8772 return (__vector signed long long)__builtin_s390_vsrab(
8773 (__vector unsigned char)__a, (__vector unsigned char)__b);
8774 }
8775
8776 static inline __ATTRS_o_ai __vector signed long long
vec_srab(__vector signed long long __a,__vector unsigned char __b)8777 vec_srab(__vector signed long long __a, __vector unsigned char __b) {
8778 return (__vector signed long long)__builtin_s390_vsrab(
8779 (__vector unsigned char)__a, __b);
8780 }
8781
8782 // This prototype is deprecated.
8783 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector signed long long __b)8784 vec_srab(__vector unsigned long long __a, __vector signed long long __b) {
8785 return (__vector unsigned long long)__builtin_s390_vsrab(
8786 (__vector unsigned char)__a, (__vector unsigned char)__b);
8787 }
8788
8789 // This prototype is deprecated.
8790 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector unsigned long long __b)8791 vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {
8792 return (__vector unsigned long long)__builtin_s390_vsrab(
8793 (__vector unsigned char)__a, (__vector unsigned char)__b);
8794 }
8795
8796 static inline __ATTRS_o_ai __vector unsigned long long
vec_srab(__vector unsigned long long __a,__vector unsigned char __b)8797 vec_srab(__vector unsigned long long __a, __vector unsigned char __b) {
8798 return (__vector unsigned long long)__builtin_s390_vsrab(
8799 (__vector unsigned char)__a, __b);
8800 }
8801
8802 static inline __ATTRS_o_ai __vector signed __int128
vec_srab(__vector signed __int128 __a,__vector unsigned char __b)8803 vec_srab(__vector signed __int128 __a, __vector unsigned char __b) {
8804 return (__vector signed __int128)__builtin_s390_vsrab(
8805 (__vector unsigned char)__a, __b);
8806 }
8807
8808 static inline __ATTRS_o_ai __vector unsigned __int128
vec_srab(__vector unsigned __int128 __a,__vector unsigned char __b)8809 vec_srab(__vector unsigned __int128 __a, __vector unsigned char __b) {
8810 return (__vector unsigned __int128)__builtin_s390_vsrab(
8811 (__vector unsigned char)__a, __b);
8812 }
8813
8814 #if __ARCH__ >= 12
8815 // This prototype is deprecated.
8816 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector signed int __b)8817 vec_srab(__vector float __a, __vector signed int __b) {
8818 return (__vector float)__builtin_s390_vsrab(
8819 (__vector unsigned char)__a, (__vector unsigned char)__b);
8820 }
8821
8822 // This prototype is deprecated.
8823 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector unsigned int __b)8824 vec_srab(__vector float __a, __vector unsigned int __b) {
8825 return (__vector float)__builtin_s390_vsrab(
8826 (__vector unsigned char)__a, (__vector unsigned char)__b);
8827 }
8828
8829 static inline __ATTRS_o_ai __vector float
vec_srab(__vector float __a,__vector unsigned char __b)8830 vec_srab(__vector float __a, __vector unsigned char __b) {
8831 return (__vector float)__builtin_s390_vsrab(
8832 (__vector unsigned char)__a, __b);
8833 }
8834 #endif
8835
8836 // This prototype is deprecated.
8837 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector signed long long __b)8838 vec_srab(__vector double __a, __vector signed long long __b) {
8839 return (__vector double)__builtin_s390_vsrab(
8840 (__vector unsigned char)__a, (__vector unsigned char)__b);
8841 }
8842
8843 // This prototype is deprecated.
8844 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector unsigned long long __b)8845 vec_srab(__vector double __a, __vector unsigned long long __b) {
8846 return (__vector double)__builtin_s390_vsrab(
8847 (__vector unsigned char)__a, (__vector unsigned char)__b);
8848 }
8849
8850 static inline __ATTRS_o_ai __vector double
vec_srab(__vector double __a,__vector unsigned char __b)8851 vec_srab(__vector double __a, __vector unsigned char __b) {
8852 return (__vector double)__builtin_s390_vsrab(
8853 (__vector unsigned char)__a, __b);
8854 }
8855
8856 /*-- vec_srl ----------------------------------------------------------------*/
8857
8858 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned char __b)8859 vec_srl(__vector signed char __a, __vector unsigned char __b) {
8860 return (__vector signed char)__builtin_s390_vsrl(
8861 (__vector unsigned char)__a, __b);
8862 }
8863
8864 // This prototype is deprecated.
8865 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned short __b)8866 vec_srl(__vector signed char __a, __vector unsigned short __b) {
8867 return (__vector signed char)__builtin_s390_vsrl(
8868 (__vector unsigned char)__a, (__vector unsigned char)__b);
8869 }
8870
8871 // This prototype is deprecated.
8872 static inline __ATTRS_o_ai __vector signed char
vec_srl(__vector signed char __a,__vector unsigned int __b)8873 vec_srl(__vector signed char __a, __vector unsigned int __b) {
8874 return (__vector signed char)__builtin_s390_vsrl(
8875 (__vector unsigned char)__a, (__vector unsigned char)__b);
8876 }
8877
8878 // This prototype is deprecated.
8879 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned char __b)8880 vec_srl(__vector __bool char __a, __vector unsigned char __b) {
8881 return (__vector __bool char)__builtin_s390_vsrl(
8882 (__vector unsigned char)__a, __b);
8883 }
8884
8885 // This prototype is deprecated.
8886 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned short __b)8887 vec_srl(__vector __bool char __a, __vector unsigned short __b) {
8888 return (__vector __bool char)__builtin_s390_vsrl(
8889 (__vector unsigned char)__a, (__vector unsigned char)__b);
8890 }
8891
8892 // This prototype is deprecated.
8893 static inline __ATTRS_o_ai __vector __bool char
vec_srl(__vector __bool char __a,__vector unsigned int __b)8894 vec_srl(__vector __bool char __a, __vector unsigned int __b) {
8895 return (__vector __bool char)__builtin_s390_vsrl(
8896 (__vector unsigned char)__a, (__vector unsigned char)__b);
8897 }
8898
8899 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned char __b)8900 vec_srl(__vector unsigned char __a, __vector unsigned char __b) {
8901 return __builtin_s390_vsrl(__a, __b);
8902 }
8903
8904 // This prototype is deprecated.
8905 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned short __b)8906 vec_srl(__vector unsigned char __a, __vector unsigned short __b) {
8907 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
8908 }
8909
8910 // This prototype is deprecated.
8911 static inline __ATTRS_o_ai __vector unsigned char
vec_srl(__vector unsigned char __a,__vector unsigned int __b)8912 vec_srl(__vector unsigned char __a, __vector unsigned int __b) {
8913 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);
8914 }
8915
8916 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned char __b)8917 vec_srl(__vector signed short __a, __vector unsigned char __b) {
8918 return (__vector signed short)__builtin_s390_vsrl(
8919 (__vector unsigned char)__a, __b);
8920 }
8921
8922 // This prototype is deprecated.
8923 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned short __b)8924 vec_srl(__vector signed short __a, __vector unsigned short __b) {
8925 return (__vector signed short)__builtin_s390_vsrl(
8926 (__vector unsigned char)__a, (__vector unsigned char)__b);
8927 }
8928
8929 // This prototype is deprecated.
8930 static inline __ATTRS_o_ai __vector signed short
vec_srl(__vector signed short __a,__vector unsigned int __b)8931 vec_srl(__vector signed short __a, __vector unsigned int __b) {
8932 return (__vector signed short)__builtin_s390_vsrl(
8933 (__vector unsigned char)__a, (__vector unsigned char)__b);
8934 }
8935
8936 // This prototype is deprecated.
8937 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned char __b)8938 vec_srl(__vector __bool short __a, __vector unsigned char __b) {
8939 return (__vector __bool short)__builtin_s390_vsrl(
8940 (__vector unsigned char)__a, __b);
8941 }
8942
8943 // This prototype is deprecated.
8944 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned short __b)8945 vec_srl(__vector __bool short __a, __vector unsigned short __b) {
8946 return (__vector __bool short)__builtin_s390_vsrl(
8947 (__vector unsigned char)__a, (__vector unsigned char)__b);
8948 }
8949
8950 // This prototype is deprecated.
8951 static inline __ATTRS_o_ai __vector __bool short
vec_srl(__vector __bool short __a,__vector unsigned int __b)8952 vec_srl(__vector __bool short __a, __vector unsigned int __b) {
8953 return (__vector __bool short)__builtin_s390_vsrl(
8954 (__vector unsigned char)__a, (__vector unsigned char)__b);
8955 }
8956
8957 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned char __b)8958 vec_srl(__vector unsigned short __a, __vector unsigned char __b) {
8959 return (__vector unsigned short)__builtin_s390_vsrl(
8960 (__vector unsigned char)__a, __b);
8961 }
8962
8963 // This prototype is deprecated.
8964 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned short __b)8965 vec_srl(__vector unsigned short __a, __vector unsigned short __b) {
8966 return (__vector unsigned short)__builtin_s390_vsrl(
8967 (__vector unsigned char)__a, (__vector unsigned char)__b);
8968 }
8969
8970 // This prototype is deprecated.
8971 static inline __ATTRS_o_ai __vector unsigned short
vec_srl(__vector unsigned short __a,__vector unsigned int __b)8972 vec_srl(__vector unsigned short __a, __vector unsigned int __b) {
8973 return (__vector unsigned short)__builtin_s390_vsrl(
8974 (__vector unsigned char)__a, (__vector unsigned char)__b);
8975 }
8976
8977 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned char __b)8978 vec_srl(__vector signed int __a, __vector unsigned char __b) {
8979 return (__vector signed int)__builtin_s390_vsrl(
8980 (__vector unsigned char)__a, __b);
8981 }
8982
8983 // This prototype is deprecated.
8984 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned short __b)8985 vec_srl(__vector signed int __a, __vector unsigned short __b) {
8986 return (__vector signed int)__builtin_s390_vsrl(
8987 (__vector unsigned char)__a, (__vector unsigned char)__b);
8988 }
8989
8990 // This prototype is deprecated.
8991 static inline __ATTRS_o_ai __vector signed int
vec_srl(__vector signed int __a,__vector unsigned int __b)8992 vec_srl(__vector signed int __a, __vector unsigned int __b) {
8993 return (__vector signed int)__builtin_s390_vsrl(
8994 (__vector unsigned char)__a, (__vector unsigned char)__b);
8995 }
8996
8997 // This prototype is deprecated.
8998 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned char __b)8999 vec_srl(__vector __bool int __a, __vector unsigned char __b) {
9000 return (__vector __bool int)__builtin_s390_vsrl(
9001 (__vector unsigned char)__a, __b);
9002 }
9003
9004 // This prototype is deprecated.
9005 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned short __b)9006 vec_srl(__vector __bool int __a, __vector unsigned short __b) {
9007 return (__vector __bool int)__builtin_s390_vsrl(
9008 (__vector unsigned char)__a, (__vector unsigned char)__b);
9009 }
9010
9011 // This prototype is deprecated.
9012 static inline __ATTRS_o_ai __vector __bool int
vec_srl(__vector __bool int __a,__vector unsigned int __b)9013 vec_srl(__vector __bool int __a, __vector unsigned int __b) {
9014 return (__vector __bool int)__builtin_s390_vsrl(
9015 (__vector unsigned char)__a, (__vector unsigned char)__b);
9016 }
9017
9018 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned char __b)9019 vec_srl(__vector unsigned int __a, __vector unsigned char __b) {
9020 return (__vector unsigned int)__builtin_s390_vsrl(
9021 (__vector unsigned char)__a, __b);
9022 }
9023
9024 // This prototype is deprecated.
9025 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned short __b)9026 vec_srl(__vector unsigned int __a, __vector unsigned short __b) {
9027 return (__vector unsigned int)__builtin_s390_vsrl(
9028 (__vector unsigned char)__a, (__vector unsigned char)__b);
9029 }
9030
9031 // This prototype is deprecated.
9032 static inline __ATTRS_o_ai __vector unsigned int
vec_srl(__vector unsigned int __a,__vector unsigned int __b)9033 vec_srl(__vector unsigned int __a, __vector unsigned int __b) {
9034 return (__vector unsigned int)__builtin_s390_vsrl(
9035 (__vector unsigned char)__a, (__vector unsigned char)__b);
9036 }
9037
9038 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned char __b)9039 vec_srl(__vector signed long long __a, __vector unsigned char __b) {
9040 return (__vector signed long long)__builtin_s390_vsrl(
9041 (__vector unsigned char)__a, __b);
9042 }
9043
9044 // This prototype is deprecated.
9045 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned short __b)9046 vec_srl(__vector signed long long __a, __vector unsigned short __b) {
9047 return (__vector signed long long)__builtin_s390_vsrl(
9048 (__vector unsigned char)__a, (__vector unsigned char)__b);
9049 }
9050
9051 // This prototype is deprecated.
9052 static inline __ATTRS_o_ai __vector signed long long
vec_srl(__vector signed long long __a,__vector unsigned int __b)9053 vec_srl(__vector signed long long __a, __vector unsigned int __b) {
9054 return (__vector signed long long)__builtin_s390_vsrl(
9055 (__vector unsigned char)__a, (__vector unsigned char)__b);
9056 }
9057
9058 // This prototype is deprecated.
9059 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned char __b)9060 vec_srl(__vector __bool long long __a, __vector unsigned char __b) {
9061 return (__vector __bool long long)__builtin_s390_vsrl(
9062 (__vector unsigned char)__a, __b);
9063 }
9064
9065 // This prototype is deprecated.
9066 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned short __b)9067 vec_srl(__vector __bool long long __a, __vector unsigned short __b) {
9068 return (__vector __bool long long)__builtin_s390_vsrl(
9069 (__vector unsigned char)__a, (__vector unsigned char)__b);
9070 }
9071
9072 // This prototype is deprecated.
9073 static inline __ATTRS_o_ai __vector __bool long long
vec_srl(__vector __bool long long __a,__vector unsigned int __b)9074 vec_srl(__vector __bool long long __a, __vector unsigned int __b) {
9075 return (__vector __bool long long)__builtin_s390_vsrl(
9076 (__vector unsigned char)__a, (__vector unsigned char)__b);
9077 }
9078
9079 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned char __b)9080 vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {
9081 return (__vector unsigned long long)__builtin_s390_vsrl(
9082 (__vector unsigned char)__a, __b);
9083 }
9084
9085 // This prototype is deprecated.
9086 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned short __b)9087 vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {
9088 return (__vector unsigned long long)__builtin_s390_vsrl(
9089 (__vector unsigned char)__a, (__vector unsigned char)__b);
9090 }
9091
9092 // This prototype is deprecated.
9093 static inline __ATTRS_o_ai __vector unsigned long long
vec_srl(__vector unsigned long long __a,__vector unsigned int __b)9094 vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {
9095 return (__vector unsigned long long)__builtin_s390_vsrl(
9096 (__vector unsigned char)__a, (__vector unsigned char)__b);
9097 }
9098
9099 static inline __ATTRS_o_ai __vector signed __int128
vec_srl(__vector signed __int128 __a,__vector unsigned char __b)9100 vec_srl(__vector signed __int128 __a, __vector unsigned char __b) {
9101 return (__vector signed __int128)__builtin_s390_vsrl(
9102 (__vector unsigned char)__a, __b);
9103 }
9104
9105 static inline __ATTRS_o_ai __vector unsigned __int128
vec_srl(__vector unsigned __int128 __a,__vector unsigned char __b)9106 vec_srl(__vector unsigned __int128 __a, __vector unsigned char __b) {
9107 return (__vector unsigned __int128)__builtin_s390_vsrl(
9108 (__vector unsigned char)__a, __b);
9109 }
9110
9111 /*-- vec_srb ----------------------------------------------------------------*/
9112
9113 // This prototype is deprecated.
9114 static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector signed char __b)9115 vec_srb(__vector signed char __a, __vector signed char __b) {
9116 return (__vector signed char)__builtin_s390_vsrlb(
9117 (__vector unsigned char)__a, (__vector unsigned char)__b);
9118 }
9119
9120 static inline __ATTRS_o_ai __vector signed char
vec_srb(__vector signed char __a,__vector unsigned char __b)9121 vec_srb(__vector signed char __a, __vector unsigned char __b) {
9122 return (__vector signed char)__builtin_s390_vsrlb(
9123 (__vector unsigned char)__a, __b);
9124 }
9125
9126 // This prototype is deprecated.
9127 static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector signed char __b)9128 vec_srb(__vector unsigned char __a, __vector signed char __b) {
9129 return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);
9130 }
9131
9132 static inline __ATTRS_o_ai __vector unsigned char
vec_srb(__vector unsigned char __a,__vector unsigned char __b)9133 vec_srb(__vector unsigned char __a, __vector unsigned char __b) {
9134 return __builtin_s390_vsrlb(__a, __b);
9135 }
9136
9137 // This prototype is deprecated.
9138 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector signed short __b)9139 vec_srb(__vector signed short __a, __vector signed short __b) {
9140 return (__vector signed short)__builtin_s390_vsrlb(
9141 (__vector unsigned char)__a, (__vector unsigned char)__b);
9142 }
9143
9144 // This prototype is deprecated.
9145 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector unsigned short __b)9146 vec_srb(__vector signed short __a, __vector unsigned short __b) {
9147 return (__vector signed short)__builtin_s390_vsrlb(
9148 (__vector unsigned char)__a, (__vector unsigned char)__b);
9149 }
9150
9151 static inline __ATTRS_o_ai __vector signed short
vec_srb(__vector signed short __a,__vector unsigned char __b)9152 vec_srb(__vector signed short __a, __vector unsigned char __b) {
9153 return (__vector signed short)__builtin_s390_vsrlb(
9154 (__vector unsigned char)__a, __b);
9155 }
9156
9157 // This prototype is deprecated.
9158 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector signed short __b)9159 vec_srb(__vector unsigned short __a, __vector signed short __b) {
9160 return (__vector unsigned short)__builtin_s390_vsrlb(
9161 (__vector unsigned char)__a, (__vector unsigned char)__b);
9162 }
9163
9164 // This prototype is deprecated.
9165 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector unsigned short __b)9166 vec_srb(__vector unsigned short __a, __vector unsigned short __b) {
9167 return (__vector unsigned short)__builtin_s390_vsrlb(
9168 (__vector unsigned char)__a, (__vector unsigned char)__b);
9169 }
9170
9171 static inline __ATTRS_o_ai __vector unsigned short
vec_srb(__vector unsigned short __a,__vector unsigned char __b)9172 vec_srb(__vector unsigned short __a, __vector unsigned char __b) {
9173 return (__vector unsigned short)__builtin_s390_vsrlb(
9174 (__vector unsigned char)__a, __b);
9175 }
9176
9177 // This prototype is deprecated.
9178 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector signed int __b)9179 vec_srb(__vector signed int __a, __vector signed int __b) {
9180 return (__vector signed int)__builtin_s390_vsrlb(
9181 (__vector unsigned char)__a, (__vector unsigned char)__b);
9182 }
9183
9184 // This prototype is deprecated.
9185 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector unsigned int __b)9186 vec_srb(__vector signed int __a, __vector unsigned int __b) {
9187 return (__vector signed int)__builtin_s390_vsrlb(
9188 (__vector unsigned char)__a, (__vector unsigned char)__b);
9189 }
9190
9191 static inline __ATTRS_o_ai __vector signed int
vec_srb(__vector signed int __a,__vector unsigned char __b)9192 vec_srb(__vector signed int __a, __vector unsigned char __b) {
9193 return (__vector signed int)__builtin_s390_vsrlb(
9194 (__vector unsigned char)__a, __b);
9195 }
9196
9197 // This prototype is deprecated.
9198 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector signed int __b)9199 vec_srb(__vector unsigned int __a, __vector signed int __b) {
9200 return (__vector unsigned int)__builtin_s390_vsrlb(
9201 (__vector unsigned char)__a, (__vector unsigned char)__b);
9202 }
9203
9204 // This prototype is deprecated.
9205 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector unsigned int __b)9206 vec_srb(__vector unsigned int __a, __vector unsigned int __b) {
9207 return (__vector unsigned int)__builtin_s390_vsrlb(
9208 (__vector unsigned char)__a, (__vector unsigned char)__b);
9209 }
9210
9211 static inline __ATTRS_o_ai __vector unsigned int
vec_srb(__vector unsigned int __a,__vector unsigned char __b)9212 vec_srb(__vector unsigned int __a, __vector unsigned char __b) {
9213 return (__vector unsigned int)__builtin_s390_vsrlb(
9214 (__vector unsigned char)__a, __b);
9215 }
9216
9217 // This prototype is deprecated.
9218 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector signed long long __b)9219 vec_srb(__vector signed long long __a, __vector signed long long __b) {
9220 return (__vector signed long long)__builtin_s390_vsrlb(
9221 (__vector unsigned char)__a, (__vector unsigned char)__b);
9222 }
9223
9224 // This prototype is deprecated.
9225 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector unsigned long long __b)9226 vec_srb(__vector signed long long __a, __vector unsigned long long __b) {
9227 return (__vector signed long long)__builtin_s390_vsrlb(
9228 (__vector unsigned char)__a, (__vector unsigned char)__b);
9229 }
9230
9231 static inline __ATTRS_o_ai __vector signed long long
vec_srb(__vector signed long long __a,__vector unsigned char __b)9232 vec_srb(__vector signed long long __a, __vector unsigned char __b) {
9233 return (__vector signed long long)__builtin_s390_vsrlb(
9234 (__vector unsigned char)__a, __b);
9235 }
9236
9237 // This prototype is deprecated.
9238 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector signed long long __b)9239 vec_srb(__vector unsigned long long __a, __vector signed long long __b) {
9240 return (__vector unsigned long long)__builtin_s390_vsrlb(
9241 (__vector unsigned char)__a, (__vector unsigned char)__b);
9242 }
9243
9244 // This prototype is deprecated.
9245 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector unsigned long long __b)9246 vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {
9247 return (__vector unsigned long long)__builtin_s390_vsrlb(
9248 (__vector unsigned char)__a, (__vector unsigned char)__b);
9249 }
9250
9251 static inline __ATTRS_o_ai __vector unsigned long long
vec_srb(__vector unsigned long long __a,__vector unsigned char __b)9252 vec_srb(__vector unsigned long long __a, __vector unsigned char __b) {
9253 return (__vector unsigned long long)__builtin_s390_vsrlb(
9254 (__vector unsigned char)__a, __b);
9255 }
9256
9257 static inline __ATTRS_o_ai __vector signed __int128
vec_srb(__vector signed __int128 __a,__vector unsigned char __b)9258 vec_srb(__vector signed __int128 __a, __vector unsigned char __b) {
9259 return (__vector signed __int128)__builtin_s390_vsrlb(
9260 (__vector unsigned char)__a, __b);
9261 }
9262
9263 static inline __ATTRS_o_ai __vector unsigned __int128
vec_srb(__vector unsigned __int128 __a,__vector unsigned char __b)9264 vec_srb(__vector unsigned __int128 __a, __vector unsigned char __b) {
9265 return (__vector unsigned __int128)__builtin_s390_vsrlb(
9266 (__vector unsigned char)__a, __b);
9267 }
9268
9269 #if __ARCH__ >= 12
9270 // This prototype is deprecated.
9271 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector signed int __b)9272 vec_srb(__vector float __a, __vector signed int __b) {
9273 return (__vector float)__builtin_s390_vsrlb(
9274 (__vector unsigned char)__a, (__vector unsigned char)__b);
9275 }
9276
9277 // This prototype is deprecated.
9278 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector unsigned int __b)9279 vec_srb(__vector float __a, __vector unsigned int __b) {
9280 return (__vector float)__builtin_s390_vsrlb(
9281 (__vector unsigned char)__a, (__vector unsigned char)__b);
9282 }
9283
9284 static inline __ATTRS_o_ai __vector float
vec_srb(__vector float __a,__vector unsigned char __b)9285 vec_srb(__vector float __a, __vector unsigned char __b) {
9286 return (__vector float)__builtin_s390_vsrlb(
9287 (__vector unsigned char)__a, __b);
9288 }
9289 #endif
9290
9291 // This prototype is deprecated.
9292 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector signed long long __b)9293 vec_srb(__vector double __a, __vector signed long long __b) {
9294 return (__vector double)__builtin_s390_vsrlb(
9295 (__vector unsigned char)__a, (__vector unsigned char)__b);
9296 }
9297
9298 // This prototype is deprecated.
9299 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector unsigned long long __b)9300 vec_srb(__vector double __a, __vector unsigned long long __b) {
9301 return (__vector double)__builtin_s390_vsrlb(
9302 (__vector unsigned char)__a, (__vector unsigned char)__b);
9303 }
9304
9305 static inline __ATTRS_o_ai __vector double
vec_srb(__vector double __a,__vector unsigned char __b)9306 vec_srb(__vector double __a, __vector unsigned char __b) {
9307 return (__vector double)__builtin_s390_vsrlb(
9308 (__vector unsigned char)__a, __b);
9309 }
9310
9311 /*-- vec_srdb ---------------------------------------------------------------*/
9312
9313 #if __ARCH__ >= 13
9314
9315 extern __ATTRS_o __vector signed char
9316 vec_srdb(__vector signed char __a, __vector signed char __b, int __c)
9317 __constant_range(__c, 0, 7);
9318
9319 extern __ATTRS_o __vector unsigned char
9320 vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)
9321 __constant_range(__c, 0, 7);
9322
9323 extern __ATTRS_o __vector signed short
9324 vec_srdb(__vector signed short __a, __vector signed short __b, int __c)
9325 __constant_range(__c, 0, 7);
9326
9327 extern __ATTRS_o __vector unsigned short
9328 vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)
9329 __constant_range(__c, 0, 7);
9330
9331 extern __ATTRS_o __vector signed int
9332 vec_srdb(__vector signed int __a, __vector signed int __b, int __c)
9333 __constant_range(__c, 0, 7);
9334
9335 extern __ATTRS_o __vector unsigned int
9336 vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)
9337 __constant_range(__c, 0, 7);
9338
9339 extern __ATTRS_o __vector signed long long
9340 vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)
9341 __constant_range(__c, 0, 7);
9342
9343 extern __ATTRS_o __vector unsigned long long
9344 vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,
9345 int __c)
9346 __constant_range(__c, 0, 7);
9347
9348 extern __ATTRS_o __vector signed __int128
9349 vec_srdb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)
9350 __constant_range(__c, 0, 7);
9351
9352 extern __ATTRS_o __vector unsigned __int128
9353 vec_srdb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9354 int __c)
9355 __constant_range(__c, 0, 7);
9356
9357 extern __ATTRS_o __vector float
9358 vec_srdb(__vector float __a, __vector float __b, int __c)
9359 __constant_range(__c, 0, 7);
9360
9361 extern __ATTRS_o __vector double
9362 vec_srdb(__vector double __a, __vector double __b, int __c)
9363 __constant_range(__c, 0, 7);
9364
9365 #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \
9366 __builtin_s390_vsrd((__vector unsigned char)(X), \
9367 (__vector unsigned char)(Y), (Z)))
9368
9369 #endif
9370
9371 /*-- vec_abs ----------------------------------------------------------------*/
9372
9373 static inline __ATTRS_o_ai __vector signed char
vec_abs(__vector signed char __a)9374 vec_abs(__vector signed char __a) {
9375 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));
9376 }
9377
9378 static inline __ATTRS_o_ai __vector signed short
vec_abs(__vector signed short __a)9379 vec_abs(__vector signed short __a) {
9380 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));
9381 }
9382
9383 static inline __ATTRS_o_ai __vector signed int
vec_abs(__vector signed int __a)9384 vec_abs(__vector signed int __a) {
9385 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));
9386 }
9387
9388 static inline __ATTRS_o_ai __vector signed long long
vec_abs(__vector signed long long __a)9389 vec_abs(__vector signed long long __a) {
9390 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));
9391 }
9392
9393 static inline __ATTRS_o_ai __vector signed __int128
vec_abs(__vector signed __int128 __a)9394 vec_abs(__vector signed __int128 __a) {
9395 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed __int128)0));
9396 }
9397
9398 #if __ARCH__ >= 12
9399 static inline __ATTRS_o_ai __vector float
vec_abs(__vector float __a)9400 vec_abs(__vector float __a) {
9401 return __builtin_s390_vflpsb(__a);
9402 }
9403 #endif
9404
9405 static inline __ATTRS_o_ai __vector double
vec_abs(__vector double __a)9406 vec_abs(__vector double __a) {
9407 return __builtin_s390_vflpdb(__a);
9408 }
9409
9410 /*-- vec_nabs ---------------------------------------------------------------*/
9411
9412 #if __ARCH__ >= 12
9413 static inline __ATTRS_o_ai __vector float
vec_nabs(__vector float __a)9414 vec_nabs(__vector float __a) {
9415 return __builtin_s390_vflnsb(__a);
9416 }
9417 #endif
9418
9419 static inline __ATTRS_o_ai __vector double
vec_nabs(__vector double __a)9420 vec_nabs(__vector double __a) {
9421 return __builtin_s390_vflndb(__a);
9422 }
9423
9424 /*-- vec_max ----------------------------------------------------------------*/
9425
9426 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector signed char __b)9427 vec_max(__vector signed char __a, __vector signed char __b) {
9428 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9429 }
9430
9431 // This prototype is deprecated.
9432 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector signed char __a,__vector __bool char __b)9433 vec_max(__vector signed char __a, __vector __bool char __b) {
9434 __vector signed char __bc = (__vector signed char)__b;
9435 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9436 }
9437
9438 // This prototype is deprecated.
9439 static inline __ATTRS_o_ai __vector signed char
vec_max(__vector __bool char __a,__vector signed char __b)9440 vec_max(__vector __bool char __a, __vector signed char __b) {
9441 __vector signed char __ac = (__vector signed char)__a;
9442 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9443 }
9444
9445 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector unsigned char __b)9446 vec_max(__vector unsigned char __a, __vector unsigned char __b) {
9447 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9448 }
9449
9450 // This prototype is deprecated.
9451 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector unsigned char __a,__vector __bool char __b)9452 vec_max(__vector unsigned char __a, __vector __bool char __b) {
9453 __vector unsigned char __bc = (__vector unsigned char)__b;
9454 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9455 }
9456
9457 // This prototype is deprecated.
9458 static inline __ATTRS_o_ai __vector unsigned char
vec_max(__vector __bool char __a,__vector unsigned char __b)9459 vec_max(__vector __bool char __a, __vector unsigned char __b) {
9460 __vector unsigned char __ac = (__vector unsigned char)__a;
9461 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9462 }
9463
9464 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector signed short __b)9465 vec_max(__vector signed short __a, __vector signed short __b) {
9466 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9467 }
9468
9469 // This prototype is deprecated.
9470 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector signed short __a,__vector __bool short __b)9471 vec_max(__vector signed short __a, __vector __bool short __b) {
9472 __vector signed short __bc = (__vector signed short)__b;
9473 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9474 }
9475
9476 // This prototype is deprecated.
9477 static inline __ATTRS_o_ai __vector signed short
vec_max(__vector __bool short __a,__vector signed short __b)9478 vec_max(__vector __bool short __a, __vector signed short __b) {
9479 __vector signed short __ac = (__vector signed short)__a;
9480 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9481 }
9482
9483 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector unsigned short __b)9484 vec_max(__vector unsigned short __a, __vector unsigned short __b) {
9485 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9486 }
9487
9488 // This prototype is deprecated.
9489 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector unsigned short __a,__vector __bool short __b)9490 vec_max(__vector unsigned short __a, __vector __bool short __b) {
9491 __vector unsigned short __bc = (__vector unsigned short)__b;
9492 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9493 }
9494
9495 // This prototype is deprecated.
9496 static inline __ATTRS_o_ai __vector unsigned short
vec_max(__vector __bool short __a,__vector unsigned short __b)9497 vec_max(__vector __bool short __a, __vector unsigned short __b) {
9498 __vector unsigned short __ac = (__vector unsigned short)__a;
9499 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9500 }
9501
9502 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector signed int __b)9503 vec_max(__vector signed int __a, __vector signed int __b) {
9504 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9505 }
9506
9507 // This prototype is deprecated.
9508 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector signed int __a,__vector __bool int __b)9509 vec_max(__vector signed int __a, __vector __bool int __b) {
9510 __vector signed int __bc = (__vector signed int)__b;
9511 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9512 }
9513
9514 // This prototype is deprecated.
9515 static inline __ATTRS_o_ai __vector signed int
vec_max(__vector __bool int __a,__vector signed int __b)9516 vec_max(__vector __bool int __a, __vector signed int __b) {
9517 __vector signed int __ac = (__vector signed int)__a;
9518 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9519 }
9520
9521 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector unsigned int __b)9522 vec_max(__vector unsigned int __a, __vector unsigned int __b) {
9523 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9524 }
9525
9526 // This prototype is deprecated.
9527 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector unsigned int __a,__vector __bool int __b)9528 vec_max(__vector unsigned int __a, __vector __bool int __b) {
9529 __vector unsigned int __bc = (__vector unsigned int)__b;
9530 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9531 }
9532
9533 // This prototype is deprecated.
9534 static inline __ATTRS_o_ai __vector unsigned int
vec_max(__vector __bool int __a,__vector unsigned int __b)9535 vec_max(__vector __bool int __a, __vector unsigned int __b) {
9536 __vector unsigned int __ac = (__vector unsigned int)__a;
9537 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9538 }
9539
9540 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector signed long long __b)9541 vec_max(__vector signed long long __a, __vector signed long long __b) {
9542 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9543 }
9544
9545 // This prototype is deprecated.
9546 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector signed long long __a,__vector __bool long long __b)9547 vec_max(__vector signed long long __a, __vector __bool long long __b) {
9548 __vector signed long long __bc = (__vector signed long long)__b;
9549 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9550 }
9551
9552 // This prototype is deprecated.
9553 static inline __ATTRS_o_ai __vector signed long long
vec_max(__vector __bool long long __a,__vector signed long long __b)9554 vec_max(__vector __bool long long __a, __vector signed long long __b) {
9555 __vector signed long long __ac = (__vector signed long long)__a;
9556 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9557 }
9558
9559 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector unsigned long long __b)9560 vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {
9561 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9562 }
9563
9564 // This prototype is deprecated.
9565 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector unsigned long long __a,__vector __bool long long __b)9566 vec_max(__vector unsigned long long __a, __vector __bool long long __b) {
9567 __vector unsigned long long __bc = (__vector unsigned long long)__b;
9568 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
9569 }
9570
9571 // This prototype is deprecated.
9572 static inline __ATTRS_o_ai __vector unsigned long long
vec_max(__vector __bool long long __a,__vector unsigned long long __b)9573 vec_max(__vector __bool long long __a, __vector unsigned long long __b) {
9574 __vector unsigned long long __ac = (__vector unsigned long long)__a;
9575 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
9576 }
9577
9578 static inline __ATTRS_o_ai __vector signed __int128
vec_max(__vector signed __int128 __a,__vector signed __int128 __b)9579 vec_max(__vector signed __int128 __a, __vector signed __int128 __b) {
9580 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9581 }
9582
9583 static inline __ATTRS_o_ai __vector unsigned __int128
vec_max(__vector unsigned __int128 __a,__vector unsigned __int128 __b)9584 vec_max(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9585 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9586 }
9587
9588 #if __ARCH__ >= 12
9589 static inline __ATTRS_o_ai __vector float
vec_max(__vector float __a,__vector float __b)9590 vec_max(__vector float __a, __vector float __b) {
9591 return __builtin_s390_vfmaxsb(__a, __b, 0);
9592 }
9593 #endif
9594
9595 static inline __ATTRS_o_ai __vector double
vec_max(__vector double __a,__vector double __b)9596 vec_max(__vector double __a, __vector double __b) {
9597 #if __ARCH__ >= 12
9598 return __builtin_s390_vfmaxdb(__a, __b, 0);
9599 #else
9600 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
9601 #endif
9602 }
9603
9604 /*-- vec_min ----------------------------------------------------------------*/
9605
9606 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector signed char __b)9607 vec_min(__vector signed char __a, __vector signed char __b) {
9608 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9609 }
9610
9611 // This prototype is deprecated.
9612 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector signed char __a,__vector __bool char __b)9613 vec_min(__vector signed char __a, __vector __bool char __b) {
9614 __vector signed char __bc = (__vector signed char)__b;
9615 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9616 }
9617
9618 // This prototype is deprecated.
9619 static inline __ATTRS_o_ai __vector signed char
vec_min(__vector __bool char __a,__vector signed char __b)9620 vec_min(__vector __bool char __a, __vector signed char __b) {
9621 __vector signed char __ac = (__vector signed char)__a;
9622 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9623 }
9624
9625 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector unsigned char __b)9626 vec_min(__vector unsigned char __a, __vector unsigned char __b) {
9627 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9628 }
9629
9630 // This prototype is deprecated.
9631 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector unsigned char __a,__vector __bool char __b)9632 vec_min(__vector unsigned char __a, __vector __bool char __b) {
9633 __vector unsigned char __bc = (__vector unsigned char)__b;
9634 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9635 }
9636
9637 // This prototype is deprecated.
9638 static inline __ATTRS_o_ai __vector unsigned char
vec_min(__vector __bool char __a,__vector unsigned char __b)9639 vec_min(__vector __bool char __a, __vector unsigned char __b) {
9640 __vector unsigned char __ac = (__vector unsigned char)__a;
9641 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9642 }
9643
9644 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector signed short __b)9645 vec_min(__vector signed short __a, __vector signed short __b) {
9646 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9647 }
9648
9649 // This prototype is deprecated.
9650 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector signed short __a,__vector __bool short __b)9651 vec_min(__vector signed short __a, __vector __bool short __b) {
9652 __vector signed short __bc = (__vector signed short)__b;
9653 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9654 }
9655
9656 // This prototype is deprecated.
9657 static inline __ATTRS_o_ai __vector signed short
vec_min(__vector __bool short __a,__vector signed short __b)9658 vec_min(__vector __bool short __a, __vector signed short __b) {
9659 __vector signed short __ac = (__vector signed short)__a;
9660 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9661 }
9662
9663 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector unsigned short __b)9664 vec_min(__vector unsigned short __a, __vector unsigned short __b) {
9665 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9666 }
9667
9668 // This prototype is deprecated.
9669 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector unsigned short __a,__vector __bool short __b)9670 vec_min(__vector unsigned short __a, __vector __bool short __b) {
9671 __vector unsigned short __bc = (__vector unsigned short)__b;
9672 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9673 }
9674
9675 // This prototype is deprecated.
9676 static inline __ATTRS_o_ai __vector unsigned short
vec_min(__vector __bool short __a,__vector unsigned short __b)9677 vec_min(__vector __bool short __a, __vector unsigned short __b) {
9678 __vector unsigned short __ac = (__vector unsigned short)__a;
9679 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9680 }
9681
9682 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector signed int __b)9683 vec_min(__vector signed int __a, __vector signed int __b) {
9684 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9685 }
9686
9687 // This prototype is deprecated.
9688 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector signed int __a,__vector __bool int __b)9689 vec_min(__vector signed int __a, __vector __bool int __b) {
9690 __vector signed int __bc = (__vector signed int)__b;
9691 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9692 }
9693
9694 // This prototype is deprecated.
9695 static inline __ATTRS_o_ai __vector signed int
vec_min(__vector __bool int __a,__vector signed int __b)9696 vec_min(__vector __bool int __a, __vector signed int __b) {
9697 __vector signed int __ac = (__vector signed int)__a;
9698 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9699 }
9700
9701 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector unsigned int __b)9702 vec_min(__vector unsigned int __a, __vector unsigned int __b) {
9703 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9704 }
9705
9706 // This prototype is deprecated.
9707 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector unsigned int __a,__vector __bool int __b)9708 vec_min(__vector unsigned int __a, __vector __bool int __b) {
9709 __vector unsigned int __bc = (__vector unsigned int)__b;
9710 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9711 }
9712
9713 // This prototype is deprecated.
9714 static inline __ATTRS_o_ai __vector unsigned int
vec_min(__vector __bool int __a,__vector unsigned int __b)9715 vec_min(__vector __bool int __a, __vector unsigned int __b) {
9716 __vector unsigned int __ac = (__vector unsigned int)__a;
9717 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9718 }
9719
9720 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector signed long long __b)9721 vec_min(__vector signed long long __a, __vector signed long long __b) {
9722 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9723 }
9724
9725 // This prototype is deprecated.
9726 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector signed long long __a,__vector __bool long long __b)9727 vec_min(__vector signed long long __a, __vector __bool long long __b) {
9728 __vector signed long long __bc = (__vector signed long long)__b;
9729 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9730 }
9731
9732 // This prototype is deprecated.
9733 static inline __ATTRS_o_ai __vector signed long long
vec_min(__vector __bool long long __a,__vector signed long long __b)9734 vec_min(__vector __bool long long __a, __vector signed long long __b) {
9735 __vector signed long long __ac = (__vector signed long long)__a;
9736 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9737 }
9738
9739 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector unsigned long long __b)9740 vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {
9741 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9742 }
9743
9744 // This prototype is deprecated.
9745 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector unsigned long long __a,__vector __bool long long __b)9746 vec_min(__vector unsigned long long __a, __vector __bool long long __b) {
9747 __vector unsigned long long __bc = (__vector unsigned long long)__b;
9748 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
9749 }
9750
9751 // This prototype is deprecated.
9752 static inline __ATTRS_o_ai __vector unsigned long long
vec_min(__vector __bool long long __a,__vector unsigned long long __b)9753 vec_min(__vector __bool long long __a, __vector unsigned long long __b) {
9754 __vector unsigned long long __ac = (__vector unsigned long long)__a;
9755 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
9756 }
9757
9758 static inline __ATTRS_o_ai __vector signed __int128
vec_min(__vector signed __int128 __a,__vector signed __int128 __b)9759 vec_min(__vector signed __int128 __a, __vector signed __int128 __b) {
9760 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9761 }
9762
9763 static inline __ATTRS_o_ai __vector unsigned __int128
vec_min(__vector unsigned __int128 __a,__vector unsigned __int128 __b)9764 vec_min(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9765 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9766 }
9767
9768 #if __ARCH__ >= 12
9769 static inline __ATTRS_o_ai __vector float
vec_min(__vector float __a,__vector float __b)9770 vec_min(__vector float __a, __vector float __b) {
9771 return __builtin_s390_vfminsb(__a, __b, 0);
9772 }
9773 #endif
9774
9775 static inline __ATTRS_o_ai __vector double
vec_min(__vector double __a,__vector double __b)9776 vec_min(__vector double __a, __vector double __b) {
9777 #if __ARCH__ >= 12
9778 return __builtin_s390_vfmindb(__a, __b, 0);
9779 #else
9780 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
9781 #endif
9782 }
9783
9784 /*-- vec_add_u128 -----------------------------------------------------------*/
9785
9786 // This prototype is deprecated.
9787 static inline __ATTRS_ai __vector unsigned char
vec_add_u128(__vector unsigned char __a,__vector unsigned char __b)9788 vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {
9789 return (__vector unsigned char)(__vector unsigned __int128)
9790 ((__int128)__a + (__int128)__b);
9791 }
9792
9793 /*-- vec_addc ---------------------------------------------------------------*/
9794
9795 static inline __ATTRS_o_ai __vector unsigned char
vec_addc(__vector unsigned char __a,__vector unsigned char __b)9796 vec_addc(__vector unsigned char __a, __vector unsigned char __b) {
9797 return __builtin_s390_vaccb(__a, __b);
9798 }
9799
9800 static inline __ATTRS_o_ai __vector unsigned short
vec_addc(__vector unsigned short __a,__vector unsigned short __b)9801 vec_addc(__vector unsigned short __a, __vector unsigned short __b) {
9802 return __builtin_s390_vacch(__a, __b);
9803 }
9804
9805 static inline __ATTRS_o_ai __vector unsigned int
vec_addc(__vector unsigned int __a,__vector unsigned int __b)9806 vec_addc(__vector unsigned int __a, __vector unsigned int __b) {
9807 return __builtin_s390_vaccf(__a, __b);
9808 }
9809
9810 static inline __ATTRS_o_ai __vector unsigned long long
vec_addc(__vector unsigned long long __a,__vector unsigned long long __b)9811 vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {
9812 return __builtin_s390_vaccg(__a, __b);
9813 }
9814
9815 static inline __ATTRS_o_ai __vector unsigned __int128
vec_addc(__vector unsigned __int128 __a,__vector unsigned __int128 __b)9816 vec_addc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9817 return (__vector unsigned __int128)
9818 __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
9819 }
9820
9821 /*-- vec_addc_u128 ----------------------------------------------------------*/
9822
9823 // This prototype is deprecated.
9824 static inline __ATTRS_ai __vector unsigned char
vec_addc_u128(__vector unsigned char __a,__vector unsigned char __b)9825 vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {
9826 return (__vector unsigned char)(__vector unsigned __int128)
9827 __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);
9828 }
9829
9830 /*-- vec_adde ---------------------------------------------------------------*/
9831
9832 static inline __ATTRS_ai __vector unsigned __int128
vec_adde(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)9833 vec_adde(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9834 __vector unsigned __int128 __c) {
9835 return (__vector unsigned __int128)
9836 __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
9837 (unsigned __int128)__c);
9838 }
9839
9840 /*-- vec_adde_u128 ----------------------------------------------------------*/
9841
9842 // This prototype is deprecated.
9843 static inline __ATTRS_ai __vector unsigned char
vec_adde_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9844 vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,
9845 __vector unsigned char __c) {
9846 return (__vector unsigned char)(__vector unsigned __int128)
9847 __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,
9848 (unsigned __int128)__c);
9849 }
9850
9851 /*-- vec_addec --------------------------------------------------------------*/
9852
9853 static inline __ATTRS_ai __vector unsigned __int128
vec_addec(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)9854 vec_addec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
9855 __vector unsigned __int128 __c) {
9856 return (__vector unsigned __int128)
9857 __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
9858 (unsigned __int128)__c);
9859 }
9860
9861 /*-- vec_addec_u128 ---------------------------------------------------------*/
9862
9863 // This prototype is deprecated.
9864 static inline __ATTRS_ai __vector unsigned char
vec_addec_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)9865 vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,
9866 __vector unsigned char __c) {
9867 return (__vector unsigned char)(__vector unsigned __int128)
9868 __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,
9869 (unsigned __int128)__c);
9870 }
9871
9872 /*-- vec_avg ----------------------------------------------------------------*/
9873
9874 static inline __ATTRS_o_ai __vector signed char
vec_avg(__vector signed char __a,__vector signed char __b)9875 vec_avg(__vector signed char __a, __vector signed char __b) {
9876 return __builtin_s390_vavgb(__a, __b);
9877 }
9878
9879 static inline __ATTRS_o_ai __vector signed short
vec_avg(__vector signed short __a,__vector signed short __b)9880 vec_avg(__vector signed short __a, __vector signed short __b) {
9881 return __builtin_s390_vavgh(__a, __b);
9882 }
9883
9884 static inline __ATTRS_o_ai __vector signed int
vec_avg(__vector signed int __a,__vector signed int __b)9885 vec_avg(__vector signed int __a, __vector signed int __b) {
9886 return __builtin_s390_vavgf(__a, __b);
9887 }
9888
9889 static inline __ATTRS_o_ai __vector signed long long
vec_avg(__vector signed long long __a,__vector signed long long __b)9890 vec_avg(__vector signed long long __a, __vector signed long long __b) {
9891 return __builtin_s390_vavgg(__a, __b);
9892 }
9893
9894 #if __ARCH__ >= 15
9895 static inline __ATTRS_o_ai __vector signed __int128
vec_avg(__vector signed __int128 __a,__vector signed __int128 __b)9896 vec_avg(__vector signed __int128 __a, __vector signed __int128 __b) {
9897 return (__vector signed __int128)
9898 __builtin_s390_vavgq((signed __int128)__a, (signed __int128)__b);
9899 }
9900 #endif
9901
9902 static inline __ATTRS_o_ai __vector unsigned char
vec_avg(__vector unsigned char __a,__vector unsigned char __b)9903 vec_avg(__vector unsigned char __a, __vector unsigned char __b) {
9904 return __builtin_s390_vavglb(__a, __b);
9905 }
9906
9907 static inline __ATTRS_o_ai __vector unsigned short
vec_avg(__vector unsigned short __a,__vector unsigned short __b)9908 vec_avg(__vector unsigned short __a, __vector unsigned short __b) {
9909 return __builtin_s390_vavglh(__a, __b);
9910 }
9911
9912 static inline __ATTRS_o_ai __vector unsigned int
vec_avg(__vector unsigned int __a,__vector unsigned int __b)9913 vec_avg(__vector unsigned int __a, __vector unsigned int __b) {
9914 return __builtin_s390_vavglf(__a, __b);
9915 }
9916
9917 static inline __ATTRS_o_ai __vector unsigned long long
vec_avg(__vector unsigned long long __a,__vector unsigned long long __b)9918 vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {
9919 return __builtin_s390_vavglg(__a, __b);
9920 }
9921
9922 #if __ARCH__ >= 15
9923 static inline __ATTRS_o_ai __vector unsigned __int128
vec_avg(__vector unsigned __int128 __a,__vector unsigned __int128 __b)9924 vec_avg(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
9925 return (__vector unsigned __int128)
9926 __builtin_s390_vavglq((unsigned __int128)__a, (unsigned __int128)__b);
9927 }
9928 #endif
9929
9930 /*-- vec_checksum -----------------------------------------------------------*/
9931
9932 static inline __ATTRS_ai __vector unsigned int
vec_checksum(__vector unsigned int __a,__vector unsigned int __b)9933 vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {
9934 return __builtin_s390_vcksm(__a, __b);
9935 }
9936
9937 /*-- vec_gfmsum -------------------------------------------------------------*/
9938
9939 static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum(__vector unsigned char __a,__vector unsigned char __b)9940 vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {
9941 return __builtin_s390_vgfmb(__a, __b);
9942 }
9943
9944 static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum(__vector unsigned short __a,__vector unsigned short __b)9945 vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {
9946 return __builtin_s390_vgfmh(__a, __b);
9947 }
9948
9949 static inline __ATTRS_o_ai __vector unsigned long long
vec_gfmsum(__vector unsigned int __a,__vector unsigned int __b)9950 vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {
9951 return __builtin_s390_vgfmf(__a, __b);
9952 }
9953
9954 static inline __ATTRS_o_ai __vector unsigned __int128
vec_gfmsum(__vector unsigned long long __a,__vector unsigned long long __b)9955 vec_gfmsum(__vector unsigned long long __a, __vector unsigned long long __b) {
9956 return (__vector unsigned __int128)__builtin_s390_vgfmg(__a, __b);
9957 }
9958
9959 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
9960
9961 // This prototype is deprecated.
9962 static inline __ATTRS_o_ai __vector unsigned char
vec_gfmsum_128(__vector unsigned long long __a,__vector unsigned long long __b)9963 vec_gfmsum_128(__vector unsigned long long __a,
9964 __vector unsigned long long __b) {
9965 return (__vector unsigned char)(__vector unsigned __int128)
9966 __builtin_s390_vgfmg(__a, __b);
9967 }
9968
9969 /*-- vec_gfmsum_accum -------------------------------------------------------*/
9970
9971 static inline __ATTRS_o_ai __vector unsigned short
vec_gfmsum_accum(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)9972 vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,
9973 __vector unsigned short __c) {
9974 return __builtin_s390_vgfmab(__a, __b, __c);
9975 }
9976
9977 static inline __ATTRS_o_ai __vector unsigned int
vec_gfmsum_accum(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)9978 vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,
9979 __vector unsigned int __c) {
9980 return __builtin_s390_vgfmah(__a, __b, __c);
9981 }
9982
9983 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)9984 vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,
9985 __vector unsigned long long __c) {
9986 return __builtin_s390_vgfmaf(__a, __b, __c);
9987 }
9988
9989 static inline __ATTRS_o_ai __vector unsigned __int128
vec_gfmsum_accum(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned __int128 __c)9990 vec_gfmsum_accum(__vector unsigned long long __a, __vector unsigned long long __b,
9991 __vector unsigned __int128 __c) {
9992 return (__vector unsigned __int128)
9993 __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
9994 }
9995
9996 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
9997
9998 // This prototype is deprecated.
9999 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)10000 vec_gfmsum_accum_128(__vector unsigned long long __a,
10001 __vector unsigned long long __b,
10002 __vector unsigned char __c) {
10003 return (__vector unsigned char)(__vector unsigned __int128)
10004 __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);
10005 }
10006
10007 /*-- vec_mladd --------------------------------------------------------------*/
10008
10009 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a,__vector signed char __b,__vector signed char __c)10010 vec_mladd(__vector signed char __a, __vector signed char __b,
10011 __vector signed char __c) {
10012 return __a * __b + __c;
10013 }
10014
10015 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector unsigned char __a,__vector signed char __b,__vector signed char __c)10016 vec_mladd(__vector unsigned char __a, __vector signed char __b,
10017 __vector signed char __c) {
10018 return (__vector signed char)__a * __b + __c;
10019 }
10020
10021 static inline __ATTRS_o_ai __vector signed char
vec_mladd(__vector signed char __a,__vector unsigned char __b,__vector unsigned char __c)10022 vec_mladd(__vector signed char __a, __vector unsigned char __b,
10023 __vector unsigned char __c) {
10024 return __a * (__vector signed char)__b + (__vector signed char)__c;
10025 }
10026
10027 static inline __ATTRS_o_ai __vector unsigned char
vec_mladd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10028 vec_mladd(__vector unsigned char __a, __vector unsigned char __b,
10029 __vector unsigned char __c) {
10030 return __a * __b + __c;
10031 }
10032
10033 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a,__vector signed short __b,__vector signed short __c)10034 vec_mladd(__vector signed short __a, __vector signed short __b,
10035 __vector signed short __c) {
10036 return __a * __b + __c;
10037 }
10038
10039 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector unsigned short __a,__vector signed short __b,__vector signed short __c)10040 vec_mladd(__vector unsigned short __a, __vector signed short __b,
10041 __vector signed short __c) {
10042 return (__vector signed short)__a * __b + __c;
10043 }
10044
10045 static inline __ATTRS_o_ai __vector signed short
vec_mladd(__vector signed short __a,__vector unsigned short __b,__vector unsigned short __c)10046 vec_mladd(__vector signed short __a, __vector unsigned short __b,
10047 __vector unsigned short __c) {
10048 return __a * (__vector signed short)__b + (__vector signed short)__c;
10049 }
10050
10051 static inline __ATTRS_o_ai __vector unsigned short
vec_mladd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)10052 vec_mladd(__vector unsigned short __a, __vector unsigned short __b,
10053 __vector unsigned short __c) {
10054 return __a * __b + __c;
10055 }
10056
10057 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a,__vector signed int __b,__vector signed int __c)10058 vec_mladd(__vector signed int __a, __vector signed int __b,
10059 __vector signed int __c) {
10060 return __a * __b + __c;
10061 }
10062
10063 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector unsigned int __a,__vector signed int __b,__vector signed int __c)10064 vec_mladd(__vector unsigned int __a, __vector signed int __b,
10065 __vector signed int __c) {
10066 return (__vector signed int)__a * __b + __c;
10067 }
10068
10069 static inline __ATTRS_o_ai __vector signed int
vec_mladd(__vector signed int __a,__vector unsigned int __b,__vector unsigned int __c)10070 vec_mladd(__vector signed int __a, __vector unsigned int __b,
10071 __vector unsigned int __c) {
10072 return __a * (__vector signed int)__b + (__vector signed int)__c;
10073 }
10074
10075 static inline __ATTRS_o_ai __vector unsigned int
vec_mladd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)10076 vec_mladd(__vector unsigned int __a, __vector unsigned int __b,
10077 __vector unsigned int __c) {
10078 return __a * __b + __c;
10079 }
10080
10081 #if __ARCH__ >= 15
10082 static inline __ATTRS_o_ai __vector signed long long
vec_mladd(__vector signed long long __a,__vector signed long long __b,__vector signed long long __c)10083 vec_mladd(__vector signed long long __a, __vector signed long long __b,
10084 __vector signed long long __c) {
10085 return __a * __b + __c;
10086 }
10087
10088 static inline __ATTRS_o_ai __vector signed long long
vec_mladd(__vector unsigned long long __a,__vector signed long long __b,__vector signed long long __c)10089 vec_mladd(__vector unsigned long long __a, __vector signed long long __b,
10090 __vector signed long long __c) {
10091 return (__vector signed long long)__a * __b + __c;
10092 }
10093
10094 static inline __ATTRS_o_ai __vector signed long long
vec_mladd(__vector signed long long __a,__vector unsigned long long __b,__vector unsigned long long __c)10095 vec_mladd(__vector signed long long __a, __vector unsigned long long __b,
10096 __vector unsigned long long __c) {
10097 return __a * (__vector signed long long)__b + (__vector signed long long)__c;
10098 }
10099
10100 static inline __ATTRS_o_ai __vector unsigned long long
vec_mladd(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned long long __c)10101 vec_mladd(__vector unsigned long long __a, __vector unsigned long long __b,
10102 __vector unsigned long long __c) {
10103 return __a * __b + __c;
10104 }
10105
10106 static inline __ATTRS_o_ai __vector signed __int128
vec_mladd(__vector signed __int128 __a,__vector signed __int128 __b,__vector signed __int128 __c)10107 vec_mladd(__vector signed __int128 __a, __vector signed __int128 __b,
10108 __vector signed __int128 __c) {
10109 return __a * __b + __c;
10110 }
10111
10112 static inline __ATTRS_o_ai __vector signed __int128
vec_mladd(__vector unsigned __int128 __a,__vector signed __int128 __b,__vector signed __int128 __c)10113 vec_mladd(__vector unsigned __int128 __a, __vector signed __int128 __b,
10114 __vector signed __int128 __c) {
10115 return (__vector signed __int128)__a * __b + __c;
10116 }
10117
10118 static inline __ATTRS_o_ai __vector signed __int128
vec_mladd(__vector signed __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)10119 vec_mladd(__vector signed __int128 __a, __vector unsigned __int128 __b,
10120 __vector unsigned __int128 __c) {
10121 return __a * (__vector signed __int128)__b + (__vector signed __int128)__c;
10122 }
10123
10124 static inline __ATTRS_o_ai __vector unsigned __int128
vec_mladd(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)10125 vec_mladd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10126 __vector unsigned __int128 __c) {
10127 return __a * __b + __c;
10128 }
10129 #endif
10130
10131 /*-- vec_mhadd --------------------------------------------------------------*/
10132
10133 static inline __ATTRS_o_ai __vector signed char
vec_mhadd(__vector signed char __a,__vector signed char __b,__vector signed char __c)10134 vec_mhadd(__vector signed char __a, __vector signed char __b,
10135 __vector signed char __c) {
10136 return __builtin_s390_vmahb(__a, __b, __c);
10137 }
10138
10139 static inline __ATTRS_o_ai __vector unsigned char
vec_mhadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10140 vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,
10141 __vector unsigned char __c) {
10142 return __builtin_s390_vmalhb(__a, __b, __c);
10143 }
10144
10145 static inline __ATTRS_o_ai __vector signed short
vec_mhadd(__vector signed short __a,__vector signed short __b,__vector signed short __c)10146 vec_mhadd(__vector signed short __a, __vector signed short __b,
10147 __vector signed short __c) {
10148 return __builtin_s390_vmahh(__a, __b, __c);
10149 }
10150
10151 static inline __ATTRS_o_ai __vector unsigned short
vec_mhadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)10152 vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,
10153 __vector unsigned short __c) {
10154 return __builtin_s390_vmalhh(__a, __b, __c);
10155 }
10156
10157 static inline __ATTRS_o_ai __vector signed int
vec_mhadd(__vector signed int __a,__vector signed int __b,__vector signed int __c)10158 vec_mhadd(__vector signed int __a, __vector signed int __b,
10159 __vector signed int __c) {
10160 return __builtin_s390_vmahf(__a, __b, __c);
10161 }
10162
10163 static inline __ATTRS_o_ai __vector unsigned int
vec_mhadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)10164 vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,
10165 __vector unsigned int __c) {
10166 return __builtin_s390_vmalhf(__a, __b, __c);
10167 }
10168
10169 #if __ARCH__ >= 15
10170 static inline __ATTRS_o_ai __vector signed long long
vec_mhadd(__vector signed long long __a,__vector signed long long __b,__vector signed long long __c)10171 vec_mhadd(__vector signed long long __a, __vector signed long long __b,
10172 __vector signed long long __c) {
10173 return __builtin_s390_vmahg(__a, __b, __c);
10174 }
10175
10176 static inline __ATTRS_o_ai __vector unsigned long long
vec_mhadd(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned long long __c)10177 vec_mhadd(__vector unsigned long long __a, __vector unsigned long long __b,
10178 __vector unsigned long long __c) {
10179 return __builtin_s390_vmalhg(__a, __b, __c);
10180 }
10181
10182 static inline __ATTRS_o_ai __vector signed __int128
vec_mhadd(__vector signed __int128 __a,__vector signed __int128 __b,__vector signed __int128 __c)10183 vec_mhadd(__vector signed __int128 __a, __vector signed __int128 __b,
10184 __vector signed __int128 __c) {
10185 return (__vector signed __int128)
10186 __builtin_s390_vmahq((signed __int128)__a, (signed __int128)__b, (signed __int128)__c);
10187 }
10188
10189 static inline __ATTRS_o_ai __vector unsigned __int128
vec_mhadd(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)10190 vec_mhadd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10191 __vector unsigned __int128 __c) {
10192 return (__vector unsigned __int128)
10193 __builtin_s390_vmalhq((unsigned __int128)__a, (unsigned __int128)__b, (unsigned __int128)__c);
10194 }
10195 #endif
10196
10197 /*-- vec_meadd --------------------------------------------------------------*/
10198
10199 static inline __ATTRS_o_ai __vector signed short
vec_meadd(__vector signed char __a,__vector signed char __b,__vector signed short __c)10200 vec_meadd(__vector signed char __a, __vector signed char __b,
10201 __vector signed short __c) {
10202 return __builtin_s390_vmaeb(__a, __b, __c);
10203 }
10204
10205 static inline __ATTRS_o_ai __vector unsigned short
vec_meadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)10206 vec_meadd(__vector unsigned char __a, __vector unsigned char __b,
10207 __vector unsigned short __c) {
10208 return __builtin_s390_vmaleb(__a, __b, __c);
10209 }
10210
10211 static inline __ATTRS_o_ai __vector signed int
vec_meadd(__vector signed short __a,__vector signed short __b,__vector signed int __c)10212 vec_meadd(__vector signed short __a, __vector signed short __b,
10213 __vector signed int __c) {
10214 return __builtin_s390_vmaeh(__a, __b, __c);
10215 }
10216
10217 static inline __ATTRS_o_ai __vector unsigned int
vec_meadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)10218 vec_meadd(__vector unsigned short __a, __vector unsigned short __b,
10219 __vector unsigned int __c) {
10220 return __builtin_s390_vmaleh(__a, __b, __c);
10221 }
10222
10223 static inline __ATTRS_o_ai __vector signed long long
vec_meadd(__vector signed int __a,__vector signed int __b,__vector signed long long __c)10224 vec_meadd(__vector signed int __a, __vector signed int __b,
10225 __vector signed long long __c) {
10226 return __builtin_s390_vmaef(__a, __b, __c);
10227 }
10228
10229 static inline __ATTRS_o_ai __vector unsigned long long
vec_meadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)10230 vec_meadd(__vector unsigned int __a, __vector unsigned int __b,
10231 __vector unsigned long long __c) {
10232 return __builtin_s390_vmalef(__a, __b, __c);
10233 }
10234
10235 #if __ARCH__ >= 15
10236 static inline __ATTRS_o_ai __vector signed __int128
vec_meadd(__vector signed long long __a,__vector signed long long __b,__vector signed __int128 __c)10237 vec_meadd(__vector signed long long __a, __vector signed long long __b,
10238 __vector signed __int128 __c) {
10239 return (__vector signed __int128)
10240 __builtin_s390_vmaeg(__a, __b, (signed __int128)__c);
10241 }
10242
10243 static inline __ATTRS_o_ai __vector unsigned __int128
vec_meadd(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned __int128 __c)10244 vec_meadd(__vector unsigned long long __a, __vector unsigned long long __b,
10245 __vector unsigned __int128 __c) {
10246 return (__vector unsigned __int128)
10247 __builtin_s390_vmaleg(__a, __b, (unsigned __int128)__c);
10248 }
10249 #endif
10250
10251 /*-- vec_moadd --------------------------------------------------------------*/
10252
10253 static inline __ATTRS_o_ai __vector signed short
vec_moadd(__vector signed char __a,__vector signed char __b,__vector signed short __c)10254 vec_moadd(__vector signed char __a, __vector signed char __b,
10255 __vector signed short __c) {
10256 return __builtin_s390_vmaob(__a, __b, __c);
10257 }
10258
10259 static inline __ATTRS_o_ai __vector unsigned short
vec_moadd(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned short __c)10260 vec_moadd(__vector unsigned char __a, __vector unsigned char __b,
10261 __vector unsigned short __c) {
10262 return __builtin_s390_vmalob(__a, __b, __c);
10263 }
10264
10265 static inline __ATTRS_o_ai __vector signed int
vec_moadd(__vector signed short __a,__vector signed short __b,__vector signed int __c)10266 vec_moadd(__vector signed short __a, __vector signed short __b,
10267 __vector signed int __c) {
10268 return __builtin_s390_vmaoh(__a, __b, __c);
10269 }
10270
10271 static inline __ATTRS_o_ai __vector unsigned int
vec_moadd(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned int __c)10272 vec_moadd(__vector unsigned short __a, __vector unsigned short __b,
10273 __vector unsigned int __c) {
10274 return __builtin_s390_vmaloh(__a, __b, __c);
10275 }
10276
10277 static inline __ATTRS_o_ai __vector signed long long
vec_moadd(__vector signed int __a,__vector signed int __b,__vector signed long long __c)10278 vec_moadd(__vector signed int __a, __vector signed int __b,
10279 __vector signed long long __c) {
10280 return __builtin_s390_vmaof(__a, __b, __c);
10281 }
10282
10283 static inline __ATTRS_o_ai __vector unsigned long long
vec_moadd(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned long long __c)10284 vec_moadd(__vector unsigned int __a, __vector unsigned int __b,
10285 __vector unsigned long long __c) {
10286 return __builtin_s390_vmalof(__a, __b, __c);
10287 }
10288
10289 #if __ARCH__ >= 15
10290 static inline __ATTRS_o_ai __vector signed __int128
vec_moadd(__vector signed long long __a,__vector signed long long __b,__vector signed __int128 __c)10291 vec_moadd(__vector signed long long __a, __vector signed long long __b,
10292 __vector signed __int128 __c) {
10293 return (__vector signed __int128)
10294 __builtin_s390_vmaog(__a, __b, (signed __int128)__c);
10295 }
10296
10297 static inline __ATTRS_o_ai __vector unsigned __int128
vec_moadd(__vector unsigned long long __a,__vector unsigned long long __b,__vector unsigned __int128 __c)10298 vec_moadd(__vector unsigned long long __a, __vector unsigned long long __b,
10299 __vector unsigned __int128 __c) {
10300 return (__vector unsigned __int128)
10301 __builtin_s390_vmalog(__a, __b, (unsigned __int128)__c);
10302 }
10303 #endif
10304
10305 /*-- vec_mulh ---------------------------------------------------------------*/
10306
10307 static inline __ATTRS_o_ai __vector signed char
vec_mulh(__vector signed char __a,__vector signed char __b)10308 vec_mulh(__vector signed char __a, __vector signed char __b) {
10309 return __builtin_s390_vmhb(__a, __b);
10310 }
10311
10312 static inline __ATTRS_o_ai __vector unsigned char
vec_mulh(__vector unsigned char __a,__vector unsigned char __b)10313 vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {
10314 return __builtin_s390_vmlhb(__a, __b);
10315 }
10316
10317 static inline __ATTRS_o_ai __vector signed short
vec_mulh(__vector signed short __a,__vector signed short __b)10318 vec_mulh(__vector signed short __a, __vector signed short __b) {
10319 return __builtin_s390_vmhh(__a, __b);
10320 }
10321
10322 static inline __ATTRS_o_ai __vector unsigned short
vec_mulh(__vector unsigned short __a,__vector unsigned short __b)10323 vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {
10324 return __builtin_s390_vmlhh(__a, __b);
10325 }
10326
10327 static inline __ATTRS_o_ai __vector signed int
vec_mulh(__vector signed int __a,__vector signed int __b)10328 vec_mulh(__vector signed int __a, __vector signed int __b) {
10329 return __builtin_s390_vmhf(__a, __b);
10330 }
10331
10332 static inline __ATTRS_o_ai __vector unsigned int
vec_mulh(__vector unsigned int __a,__vector unsigned int __b)10333 vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {
10334 return __builtin_s390_vmlhf(__a, __b);
10335 }
10336
10337 #if __ARCH__ >= 15
10338 static inline __ATTRS_o_ai __vector signed long long
vec_mulh(__vector signed long long __a,__vector signed long long __b)10339 vec_mulh(__vector signed long long __a, __vector signed long long __b) {
10340 return __builtin_s390_vmhg(__a, __b);
10341 }
10342
10343 static inline __ATTRS_o_ai __vector unsigned long long
vec_mulh(__vector unsigned long long __a,__vector unsigned long long __b)10344 vec_mulh(__vector unsigned long long __a, __vector unsigned long long __b) {
10345 return __builtin_s390_vmlhg(__a, __b);
10346 }
10347
10348 static inline __ATTRS_o_ai __vector signed __int128
vec_mulh(__vector signed __int128 __a,__vector signed __int128 __b)10349 vec_mulh(__vector signed __int128 __a, __vector signed __int128 __b) {
10350 return (__vector signed __int128)
10351 __builtin_s390_vmhq((signed __int128)__a, (signed __int128)__b);
10352 }
10353
10354 static inline __ATTRS_o_ai __vector unsigned __int128
vec_mulh(__vector unsigned __int128 __a,__vector unsigned __int128 __b)10355 vec_mulh(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
10356 return (__vector unsigned __int128)
10357 __builtin_s390_vmlhq((unsigned __int128)__a, (unsigned __int128)__b);
10358 }
10359 #endif
10360
10361 /*-- vec_mule ---------------------------------------------------------------*/
10362
10363 static inline __ATTRS_o_ai __vector signed short
vec_mule(__vector signed char __a,__vector signed char __b)10364 vec_mule(__vector signed char __a, __vector signed char __b) {
10365 return __builtin_s390_vmeb(__a, __b);
10366 }
10367
10368 static inline __ATTRS_o_ai __vector unsigned short
vec_mule(__vector unsigned char __a,__vector unsigned char __b)10369 vec_mule(__vector unsigned char __a, __vector unsigned char __b) {
10370 return __builtin_s390_vmleb(__a, __b);
10371 }
10372
10373 static inline __ATTRS_o_ai __vector signed int
vec_mule(__vector signed short __a,__vector signed short __b)10374 vec_mule(__vector signed short __a, __vector signed short __b) {
10375 return __builtin_s390_vmeh(__a, __b);
10376 }
10377
10378 static inline __ATTRS_o_ai __vector unsigned int
vec_mule(__vector unsigned short __a,__vector unsigned short __b)10379 vec_mule(__vector unsigned short __a, __vector unsigned short __b) {
10380 return __builtin_s390_vmleh(__a, __b);
10381 }
10382
10383 static inline __ATTRS_o_ai __vector signed long long
vec_mule(__vector signed int __a,__vector signed int __b)10384 vec_mule(__vector signed int __a, __vector signed int __b) {
10385 return __builtin_s390_vmef(__a, __b);
10386 }
10387
10388 static inline __ATTRS_o_ai __vector unsigned long long
vec_mule(__vector unsigned int __a,__vector unsigned int __b)10389 vec_mule(__vector unsigned int __a, __vector unsigned int __b) {
10390 return __builtin_s390_vmlef(__a, __b);
10391 }
10392
10393 #if __ARCH__ >= 15
10394 static inline __ATTRS_o_ai __vector signed __int128
vec_mule(__vector signed long long __a,__vector signed long long __b)10395 vec_mule(__vector signed long long __a, __vector signed long long __b) {
10396 return (__vector signed __int128)__builtin_s390_vmeg(__a, __b);
10397 }
10398
10399 static inline __ATTRS_o_ai __vector unsigned __int128
vec_mule(__vector unsigned long long __a,__vector unsigned long long __b)10400 vec_mule(__vector unsigned long long __a, __vector unsigned long long __b) {
10401 return (__vector unsigned __int128)__builtin_s390_vmleg(__a, __b);
10402 }
10403 #endif
10404
10405 /*-- vec_mulo ---------------------------------------------------------------*/
10406
10407 static inline __ATTRS_o_ai __vector signed short
vec_mulo(__vector signed char __a,__vector signed char __b)10408 vec_mulo(__vector signed char __a, __vector signed char __b) {
10409 return __builtin_s390_vmob(__a, __b);
10410 }
10411
10412 static inline __ATTRS_o_ai __vector unsigned short
vec_mulo(__vector unsigned char __a,__vector unsigned char __b)10413 vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {
10414 return __builtin_s390_vmlob(__a, __b);
10415 }
10416
10417 static inline __ATTRS_o_ai __vector signed int
vec_mulo(__vector signed short __a,__vector signed short __b)10418 vec_mulo(__vector signed short __a, __vector signed short __b) {
10419 return __builtin_s390_vmoh(__a, __b);
10420 }
10421
10422 static inline __ATTRS_o_ai __vector unsigned int
vec_mulo(__vector unsigned short __a,__vector unsigned short __b)10423 vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {
10424 return __builtin_s390_vmloh(__a, __b);
10425 }
10426
10427 static inline __ATTRS_o_ai __vector signed long long
vec_mulo(__vector signed int __a,__vector signed int __b)10428 vec_mulo(__vector signed int __a, __vector signed int __b) {
10429 return __builtin_s390_vmof(__a, __b);
10430 }
10431
10432 static inline __ATTRS_o_ai __vector unsigned long long
vec_mulo(__vector unsigned int __a,__vector unsigned int __b)10433 vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {
10434 return __builtin_s390_vmlof(__a, __b);
10435 }
10436
10437 #if __ARCH__ >= 15
10438 static inline __ATTRS_o_ai __vector signed __int128
vec_mulo(__vector signed long long __a,__vector signed long long __b)10439 vec_mulo(__vector signed long long __a, __vector signed long long __b) {
10440 return (__vector signed __int128)__builtin_s390_vmog(__a, __b);
10441 }
10442
10443 static inline __ATTRS_o_ai __vector unsigned __int128
vec_mulo(__vector unsigned long long __a,__vector unsigned long long __b)10444 vec_mulo(__vector unsigned long long __a, __vector unsigned long long __b) {
10445 return (__vector unsigned __int128)__builtin_s390_vmlog(__a, __b);
10446 }
10447 #endif
10448
10449 /*-- vec_msum ---------------------------------------------------------------*/
10450
10451 #if __ARCH__ >= 12
10452 extern __ATTRS_o __vector unsigned __int128
10453 vec_msum(__vector unsigned long long __a, __vector unsigned long long __b,
10454 __vector unsigned __int128 __c, int __d)
10455 __constant_range(__d, 0, 15);
10456
10457 #define vec_msum(X, Y, Z, W) \
10458 ((__typeof__((vec_msum)((X), (Y), (Z), (W)))) \
10459 __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
10460 #endif
10461
10462 /*-- vec_msum_u128 ----------------------------------------------------------*/
10463
10464 #if __ARCH__ >= 12
10465 // This prototype is deprecated.
10466 extern __ATTRS_o __vector unsigned char
10467 vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b,
10468 __vector unsigned char __c, int __d)
10469 __constant_range(__d, 0, 15);
10470
10471 #define vec_msum_u128(X, Y, Z, W) \
10472 ((__typeof__((vec_msum_u128)((X), (Y), (Z), (W)))) \
10473 (__vector unsigned __int128) \
10474 __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))
10475 #endif
10476
10477 /*-- vec_sub_u128 -----------------------------------------------------------*/
10478
10479 // This prototype is deprecated.
10480 static inline __ATTRS_ai __vector unsigned char
vec_sub_u128(__vector unsigned char __a,__vector unsigned char __b)10481 vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {
10482 return (__vector unsigned char)(__vector unsigned __int128)
10483 ((__int128)__a - (__int128)__b);
10484 }
10485
10486 /*-- vec_subc ---------------------------------------------------------------*/
10487
10488 static inline __ATTRS_o_ai __vector unsigned char
vec_subc(__vector unsigned char __a,__vector unsigned char __b)10489 vec_subc(__vector unsigned char __a, __vector unsigned char __b) {
10490 return __builtin_s390_vscbib(__a, __b);
10491 }
10492
10493 static inline __ATTRS_o_ai __vector unsigned short
vec_subc(__vector unsigned short __a,__vector unsigned short __b)10494 vec_subc(__vector unsigned short __a, __vector unsigned short __b) {
10495 return __builtin_s390_vscbih(__a, __b);
10496 }
10497
10498 static inline __ATTRS_o_ai __vector unsigned int
vec_subc(__vector unsigned int __a,__vector unsigned int __b)10499 vec_subc(__vector unsigned int __a, __vector unsigned int __b) {
10500 return __builtin_s390_vscbif(__a, __b);
10501 }
10502
10503 static inline __ATTRS_o_ai __vector unsigned long long
vec_subc(__vector unsigned long long __a,__vector unsigned long long __b)10504 vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {
10505 return __builtin_s390_vscbig(__a, __b);
10506 }
10507
10508 static inline __ATTRS_o_ai __vector unsigned __int128
vec_subc(__vector unsigned __int128 __a,__vector unsigned __int128 __b)10509 vec_subc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {
10510 return (__vector unsigned __int128)
10511 __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
10512 }
10513
10514 /*-- vec_subc_u128 ----------------------------------------------------------*/
10515
10516 // This prototype is deprecated.
10517 static inline __ATTRS_ai __vector unsigned char
vec_subc_u128(__vector unsigned char __a,__vector unsigned char __b)10518 vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {
10519 return (__vector unsigned char)(__vector unsigned __int128)
10520 __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);
10521 }
10522
10523 /*-- vec_sube ---------------------------------------------------------------*/
10524
10525 static inline __ATTRS_ai __vector unsigned __int128
vec_sube(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)10526 vec_sube(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10527 __vector unsigned __int128 __c) {
10528 return (__vector unsigned __int128)
10529 __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
10530 (unsigned __int128)__c);
10531 }
10532
10533 /*-- vec_sube_u128 ----------------------------------------------------------*/
10534
10535 // This prototype is deprecated.
10536 static inline __ATTRS_ai __vector unsigned char
vec_sube_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10537 vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,
10538 __vector unsigned char __c) {
10539 return (__vector unsigned char)(__vector unsigned __int128)
10540 __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,
10541 (unsigned __int128)__c);
10542 }
10543
10544 /*-- vec_subec --------------------------------------------------------------*/
10545
10546 static inline __ATTRS_ai __vector unsigned __int128
vec_subec(__vector unsigned __int128 __a,__vector unsigned __int128 __b,__vector unsigned __int128 __c)10547 vec_subec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,
10548 __vector unsigned __int128 __c) {
10549 return (__vector unsigned __int128)
10550 __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
10551 (unsigned __int128)__c);
10552 }
10553
10554 /*-- vec_subec_u128 ---------------------------------------------------------*/
10555
10556 // This prototype is deprecated.
10557 static inline __ATTRS_ai __vector unsigned char
vec_subec_u128(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)10558 vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,
10559 __vector unsigned char __c) {
10560 return (__vector unsigned char)(__vector unsigned __int128)
10561 __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,
10562 (unsigned __int128)__c);
10563 }
10564
10565 /*-- vec_sum2 ---------------------------------------------------------------*/
10566
10567 static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned short __a,__vector unsigned short __b)10568 vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {
10569 return __builtin_s390_vsumgh(__a, __b);
10570 }
10571
10572 static inline __ATTRS_o_ai __vector unsigned long long
vec_sum2(__vector unsigned int __a,__vector unsigned int __b)10573 vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {
10574 return __builtin_s390_vsumgf(__a, __b);
10575 }
10576
10577 /*-- vec_sum ----------------------------------------------------------------*/
10578
10579 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sum(__vector unsigned int __a,__vector unsigned int __b)10580 vec_sum(__vector unsigned int __a, __vector unsigned int __b) {
10581 return (__vector unsigned __int128)__builtin_s390_vsumqf(__a, __b);
10582 }
10583
10584 static inline __ATTRS_o_ai __vector unsigned __int128
vec_sum(__vector unsigned long long __a,__vector unsigned long long __b)10585 vec_sum(__vector unsigned long long __a, __vector unsigned long long __b) {
10586 return (__vector unsigned __int128)__builtin_s390_vsumqg(__a, __b);
10587 }
10588
10589 /*-- vec_sum_u128 -----------------------------------------------------------*/
10590
10591 // This prototype is deprecated.
10592 static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned int __a,__vector unsigned int __b)10593 vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {
10594 return (__vector unsigned char)(__vector unsigned __int128)
10595 __builtin_s390_vsumqf(__a, __b);
10596 }
10597
10598 // This prototype is deprecated.
10599 static inline __ATTRS_o_ai __vector unsigned char
vec_sum_u128(__vector unsigned long long __a,__vector unsigned long long __b)10600 vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {
10601 return (__vector unsigned char)(__vector unsigned __int128)
10602 __builtin_s390_vsumqg(__a, __b);
10603 }
10604
10605 /*-- vec_sum4 ---------------------------------------------------------------*/
10606
10607 static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned char __a,__vector unsigned char __b)10608 vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {
10609 return __builtin_s390_vsumb(__a, __b);
10610 }
10611
10612 static inline __ATTRS_o_ai __vector unsigned int
vec_sum4(__vector unsigned short __a,__vector unsigned short __b)10613 vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {
10614 return __builtin_s390_vsumh(__a, __b);
10615 }
10616
10617 /*-- vec_test_mask ----------------------------------------------------------*/
10618
10619 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed char __a,__vector unsigned char __b)10620 vec_test_mask(__vector signed char __a, __vector unsigned char __b) {
10621 return __builtin_s390_vtm((__vector unsigned char)__a,
10622 (__vector unsigned char)__b);
10623 }
10624
10625 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned char __a,__vector unsigned char __b)10626 vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {
10627 return __builtin_s390_vtm(__a, __b);
10628 }
10629
10630 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed short __a,__vector unsigned short __b)10631 vec_test_mask(__vector signed short __a, __vector unsigned short __b) {
10632 return __builtin_s390_vtm((__vector unsigned char)__a,
10633 (__vector unsigned char)__b);
10634 }
10635
10636 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned short __a,__vector unsigned short __b)10637 vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {
10638 return __builtin_s390_vtm((__vector unsigned char)__a,
10639 (__vector unsigned char)__b);
10640 }
10641
10642 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed int __a,__vector unsigned int __b)10643 vec_test_mask(__vector signed int __a, __vector unsigned int __b) {
10644 return __builtin_s390_vtm((__vector unsigned char)__a,
10645 (__vector unsigned char)__b);
10646 }
10647
10648 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned int __a,__vector unsigned int __b)10649 vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {
10650 return __builtin_s390_vtm((__vector unsigned char)__a,
10651 (__vector unsigned char)__b);
10652 }
10653
10654 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed long long __a,__vector unsigned long long __b)10655 vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {
10656 return __builtin_s390_vtm((__vector unsigned char)__a,
10657 (__vector unsigned char)__b);
10658 }
10659
10660 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned long long __a,__vector unsigned long long __b)10661 vec_test_mask(__vector unsigned long long __a,
10662 __vector unsigned long long __b) {
10663 return __builtin_s390_vtm((__vector unsigned char)__a,
10664 (__vector unsigned char)__b);
10665 }
10666
10667 static inline __ATTRS_o_ai int
vec_test_mask(__vector signed __int128 __a,__vector unsigned __int128 __b)10668 vec_test_mask(__vector signed __int128 __a, __vector unsigned __int128 __b) {
10669 return __builtin_s390_vtm((__vector unsigned char)__a,
10670 (__vector unsigned char)__b);
10671 }
10672
10673 static inline __ATTRS_o_ai int
vec_test_mask(__vector unsigned __int128 __a,__vector unsigned __int128 __b)10674 vec_test_mask(__vector unsigned __int128 __a,
10675 __vector unsigned __int128 __b) {
10676 return __builtin_s390_vtm((__vector unsigned char)__a,
10677 (__vector unsigned char)__b);
10678 }
10679
10680 #if __ARCH__ >= 12
10681 static inline __ATTRS_o_ai int
vec_test_mask(__vector float __a,__vector unsigned int __b)10682 vec_test_mask(__vector float __a, __vector unsigned int __b) {
10683 return __builtin_s390_vtm((__vector unsigned char)__a,
10684 (__vector unsigned char)__b);
10685 }
10686 #endif
10687
10688 static inline __ATTRS_o_ai int
vec_test_mask(__vector double __a,__vector unsigned long long __b)10689 vec_test_mask(__vector double __a, __vector unsigned long long __b) {
10690 return __builtin_s390_vtm((__vector unsigned char)__a,
10691 (__vector unsigned char)__b);
10692 }
10693
10694 /*-- vec_madd ---------------------------------------------------------------*/
10695
10696 #if __ARCH__ >= 12
10697 static inline __ATTRS_o_ai __vector float
vec_madd(__vector float __a,__vector float __b,__vector float __c)10698 vec_madd(__vector float __a, __vector float __b, __vector float __c) {
10699 return __builtin_s390_vfmasb(__a, __b, __c);
10700 }
10701 #endif
10702
10703 static inline __ATTRS_o_ai __vector double
vec_madd(__vector double __a,__vector double __b,__vector double __c)10704 vec_madd(__vector double __a, __vector double __b, __vector double __c) {
10705 return __builtin_s390_vfmadb(__a, __b, __c);
10706 }
10707
10708 /*-- vec_msub ---------------------------------------------------------------*/
10709
10710 #if __ARCH__ >= 12
10711 static inline __ATTRS_o_ai __vector float
vec_msub(__vector float __a,__vector float __b,__vector float __c)10712 vec_msub(__vector float __a, __vector float __b, __vector float __c) {
10713 return __builtin_s390_vfmssb(__a, __b, __c);
10714 }
10715 #endif
10716
10717 static inline __ATTRS_o_ai __vector double
vec_msub(__vector double __a,__vector double __b,__vector double __c)10718 vec_msub(__vector double __a, __vector double __b, __vector double __c) {
10719 return __builtin_s390_vfmsdb(__a, __b, __c);
10720 }
10721
10722 /*-- vec_nmadd ---------------------------------------------------------------*/
10723
10724 #if __ARCH__ >= 12
10725 static inline __ATTRS_o_ai __vector float
vec_nmadd(__vector float __a,__vector float __b,__vector float __c)10726 vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {
10727 return __builtin_s390_vfnmasb(__a, __b, __c);
10728 }
10729
10730 static inline __ATTRS_o_ai __vector double
vec_nmadd(__vector double __a,__vector double __b,__vector double __c)10731 vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {
10732 return __builtin_s390_vfnmadb(__a, __b, __c);
10733 }
10734 #endif
10735
10736 /*-- vec_nmsub ---------------------------------------------------------------*/
10737
10738 #if __ARCH__ >= 12
10739 static inline __ATTRS_o_ai __vector float
vec_nmsub(__vector float __a,__vector float __b,__vector float __c)10740 vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {
10741 return __builtin_s390_vfnmssb(__a, __b, __c);
10742 }
10743
10744 static inline __ATTRS_o_ai __vector double
vec_nmsub(__vector double __a,__vector double __b,__vector double __c)10745 vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {
10746 return __builtin_s390_vfnmsdb(__a, __b, __c);
10747 }
10748 #endif
10749
10750 /*-- vec_sqrt ---------------------------------------------------------------*/
10751
10752 #if __ARCH__ >= 12
10753 static inline __ATTRS_o_ai __vector float
vec_sqrt(__vector float __a)10754 vec_sqrt(__vector float __a) {
10755 return __builtin_s390_vfsqsb(__a);
10756 }
10757 #endif
10758
10759 static inline __ATTRS_o_ai __vector double
vec_sqrt(__vector double __a)10760 vec_sqrt(__vector double __a) {
10761 return __builtin_s390_vfsqdb(__a);
10762 }
10763
10764 /*-- vec_ld2f ---------------------------------------------------------------*/
10765
10766 // This prototype is deprecated.
10767 static inline __ATTRS_ai __vector double
vec_ld2f(const float * __ptr)10768 vec_ld2f(const float *__ptr) {
10769 typedef float __v2f32 __attribute__((__vector_size__(8)));
10770 return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);
10771 }
10772
10773 /*-- vec_st2f ---------------------------------------------------------------*/
10774
10775 // This prototype is deprecated.
10776 static inline __ATTRS_ai void
vec_st2f(__vector double __a,float * __ptr)10777 vec_st2f(__vector double __a, float *__ptr) {
10778 typedef float __v2f32 __attribute__((__vector_size__(8)));
10779 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
10780 }
10781
10782 /*-- vec_ctd ----------------------------------------------------------------*/
10783
10784 // This prototype is deprecated.
10785 static inline __ATTRS_o_ai __vector double
vec_ctd(__vector signed long long __a,int __b)10786 vec_ctd(__vector signed long long __a, int __b)
10787 __constant_range(__b, 0, 31) {
10788 __vector double __conv = __builtin_convertvector(__a, __vector double);
10789 __conv *= ((__vector double)(__vector unsigned long long)
10790 ((0x3ffULL - __b) << 52));
10791 return __conv;
10792 }
10793
10794 // This prototype is deprecated.
10795 static inline __ATTRS_o_ai __vector double
vec_ctd(__vector unsigned long long __a,int __b)10796 vec_ctd(__vector unsigned long long __a, int __b)
10797 __constant_range(__b, 0, 31) {
10798 __vector double __conv = __builtin_convertvector(__a, __vector double);
10799 __conv *= ((__vector double)(__vector unsigned long long)
10800 ((0x3ffULL - __b) << 52));
10801 return __conv;
10802 }
10803
10804 /*-- vec_ctsl ---------------------------------------------------------------*/
10805
10806 // This prototype is deprecated.
10807 static inline __ATTRS_o_ai __vector signed long long
vec_ctsl(__vector double __a,int __b)10808 vec_ctsl(__vector double __a, int __b)
10809 __constant_range(__b, 0, 31) {
10810 __a *= ((__vector double)(__vector unsigned long long)
10811 ((0x3ffULL + __b) << 52));
10812 return __builtin_convertvector(__a, __vector signed long long);
10813 }
10814
10815 /*-- vec_ctul ---------------------------------------------------------------*/
10816
10817 // This prototype is deprecated.
10818 static inline __ATTRS_o_ai __vector unsigned long long
vec_ctul(__vector double __a,int __b)10819 vec_ctul(__vector double __a, int __b)
10820 __constant_range(__b, 0, 31) {
10821 __a *= ((__vector double)(__vector unsigned long long)
10822 ((0x3ffULL + __b) << 52));
10823 return __builtin_convertvector(__a, __vector unsigned long long);
10824 }
10825
10826 /*-- vec_doublee ------------------------------------------------------------*/
10827
10828 #if __ARCH__ >= 12
10829 static inline __ATTRS_ai __vector double
vec_doublee(__vector float __a)10830 vec_doublee(__vector float __a) {
10831 typedef float __v2f32 __attribute__((__vector_size__(8)));
10832 __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
10833 return __builtin_convertvector(__pack, __vector double);
10834 }
10835 #endif
10836
10837 /*-- vec_floate -------------------------------------------------------------*/
10838
10839 #if __ARCH__ >= 12
10840 static inline __ATTRS_ai __vector float
vec_floate(__vector double __a)10841 vec_floate(__vector double __a) {
10842 typedef float __v2f32 __attribute__((__vector_size__(8)));
10843 __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
10844 return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
10845 }
10846 #endif
10847
10848 /*-- vec_double -------------------------------------------------------------*/
10849
10850 static inline __ATTRS_o_ai __vector double
vec_double(__vector signed long long __a)10851 vec_double(__vector signed long long __a) {
10852 return __builtin_convertvector(__a, __vector double);
10853 }
10854
10855 static inline __ATTRS_o_ai __vector double
vec_double(__vector unsigned long long __a)10856 vec_double(__vector unsigned long long __a) {
10857 return __builtin_convertvector(__a, __vector double);
10858 }
10859
10860 /*-- vec_float --------------------------------------------------------------*/
10861
10862 #if __ARCH__ >= 13
10863
10864 static inline __ATTRS_o_ai __vector float
vec_float(__vector signed int __a)10865 vec_float(__vector signed int __a) {
10866 return __builtin_convertvector(__a, __vector float);
10867 }
10868
10869 static inline __ATTRS_o_ai __vector float
vec_float(__vector unsigned int __a)10870 vec_float(__vector unsigned int __a) {
10871 return __builtin_convertvector(__a, __vector float);
10872 }
10873
10874 #endif
10875
10876 /*-- vec_signed -------------------------------------------------------------*/
10877
10878 static inline __ATTRS_o_ai __vector signed long long
vec_signed(__vector double __a)10879 vec_signed(__vector double __a) {
10880 return __builtin_convertvector(__a, __vector signed long long);
10881 }
10882
10883 #if __ARCH__ >= 13
10884 static inline __ATTRS_o_ai __vector signed int
vec_signed(__vector float __a)10885 vec_signed(__vector float __a) {
10886 return __builtin_convertvector(__a, __vector signed int);
10887 }
10888 #endif
10889
10890 /*-- vec_unsigned -----------------------------------------------------------*/
10891
10892 static inline __ATTRS_o_ai __vector unsigned long long
vec_unsigned(__vector double __a)10893 vec_unsigned(__vector double __a) {
10894 return __builtin_convertvector(__a, __vector unsigned long long);
10895 }
10896
10897 #if __ARCH__ >= 13
10898 static inline __ATTRS_o_ai __vector unsigned int
vec_unsigned(__vector float __a)10899 vec_unsigned(__vector float __a) {
10900 return __builtin_convertvector(__a, __vector unsigned int);
10901 }
10902 #endif
10903
10904 /*-- vec_roundp -------------------------------------------------------------*/
10905
10906 #if __ARCH__ >= 12
10907 static inline __ATTRS_o_ai __vector float
vec_roundp(__vector float __a)10908 vec_roundp(__vector float __a) {
10909 return __builtin_s390_vfisb(__a, 4, 6);
10910 }
10911 #endif
10912
10913 static inline __ATTRS_o_ai __vector double
vec_roundp(__vector double __a)10914 vec_roundp(__vector double __a) {
10915 return __builtin_s390_vfidb(__a, 4, 6);
10916 }
10917
10918 /*-- vec_ceil ---------------------------------------------------------------*/
10919
10920 #if __ARCH__ >= 12
10921 static inline __ATTRS_o_ai __vector float
vec_ceil(__vector float __a)10922 vec_ceil(__vector float __a) {
10923 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
10924 return __builtin_s390_vfisb(__a, 4, 6);
10925 }
10926 #endif
10927
10928 static inline __ATTRS_o_ai __vector double
vec_ceil(__vector double __a)10929 vec_ceil(__vector double __a) {
10930 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
10931 return __builtin_s390_vfidb(__a, 4, 6);
10932 }
10933
10934 /*-- vec_roundm -------------------------------------------------------------*/
10935
10936 #if __ARCH__ >= 12
10937 static inline __ATTRS_o_ai __vector float
vec_roundm(__vector float __a)10938 vec_roundm(__vector float __a) {
10939 return __builtin_s390_vfisb(__a, 4, 7);
10940 }
10941 #endif
10942
10943 static inline __ATTRS_o_ai __vector double
vec_roundm(__vector double __a)10944 vec_roundm(__vector double __a) {
10945 return __builtin_s390_vfidb(__a, 4, 7);
10946 }
10947
10948 /*-- vec_floor --------------------------------------------------------------*/
10949
10950 #if __ARCH__ >= 12
10951 static inline __ATTRS_o_ai __vector float
vec_floor(__vector float __a)10952 vec_floor(__vector float __a) {
10953 // On this platform, vec_floor never triggers the IEEE-inexact exception.
10954 return __builtin_s390_vfisb(__a, 4, 7);
10955 }
10956 #endif
10957
10958 static inline __ATTRS_o_ai __vector double
vec_floor(__vector double __a)10959 vec_floor(__vector double __a) {
10960 // On this platform, vec_floor never triggers the IEEE-inexact exception.
10961 return __builtin_s390_vfidb(__a, 4, 7);
10962 }
10963
10964 /*-- vec_roundz -------------------------------------------------------------*/
10965
10966 #if __ARCH__ >= 12
10967 static inline __ATTRS_o_ai __vector float
vec_roundz(__vector float __a)10968 vec_roundz(__vector float __a) {
10969 return __builtin_s390_vfisb(__a, 4, 5);
10970 }
10971 #endif
10972
10973 static inline __ATTRS_o_ai __vector double
vec_roundz(__vector double __a)10974 vec_roundz(__vector double __a) {
10975 return __builtin_s390_vfidb(__a, 4, 5);
10976 }
10977
10978 /*-- vec_trunc --------------------------------------------------------------*/
10979
10980 #if __ARCH__ >= 12
10981 static inline __ATTRS_o_ai __vector float
vec_trunc(__vector float __a)10982 vec_trunc(__vector float __a) {
10983 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
10984 return __builtin_s390_vfisb(__a, 4, 5);
10985 }
10986 #endif
10987
10988 static inline __ATTRS_o_ai __vector double
vec_trunc(__vector double __a)10989 vec_trunc(__vector double __a) {
10990 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
10991 return __builtin_s390_vfidb(__a, 4, 5);
10992 }
10993
10994 /*-- vec_roundc -------------------------------------------------------------*/
10995
10996 #if __ARCH__ >= 12
10997 static inline __ATTRS_o_ai __vector float
vec_roundc(__vector float __a)10998 vec_roundc(__vector float __a) {
10999 return __builtin_s390_vfisb(__a, 4, 0);
11000 }
11001 #endif
11002
11003 static inline __ATTRS_o_ai __vector double
vec_roundc(__vector double __a)11004 vec_roundc(__vector double __a) {
11005 return __builtin_s390_vfidb(__a, 4, 0);
11006 }
11007
11008 /*-- vec_rint ---------------------------------------------------------------*/
11009
11010 #if __ARCH__ >= 12
11011 static inline __ATTRS_o_ai __vector float
vec_rint(__vector float __a)11012 vec_rint(__vector float __a) {
11013 // vec_rint may trigger the IEEE-inexact exception.
11014 return __builtin_s390_vfisb(__a, 0, 0);
11015 }
11016 #endif
11017
11018 static inline __ATTRS_o_ai __vector double
vec_rint(__vector double __a)11019 vec_rint(__vector double __a) {
11020 // vec_rint may trigger the IEEE-inexact exception.
11021 return __builtin_s390_vfidb(__a, 0, 0);
11022 }
11023
11024 /*-- vec_round --------------------------------------------------------------*/
11025
11026 #if __ARCH__ >= 12
11027 static inline __ATTRS_o_ai __vector float
vec_round(__vector float __a)11028 vec_round(__vector float __a) {
11029 return __builtin_s390_vfisb(__a, 4, 4);
11030 }
11031 #endif
11032
11033 static inline __ATTRS_o_ai __vector double
vec_round(__vector double __a)11034 vec_round(__vector double __a) {
11035 return __builtin_s390_vfidb(__a, 4, 4);
11036 }
11037
11038 /*-- vec_fp_test_data_class -------------------------------------------------*/
11039
11040 #if __ARCH__ >= 12
11041 extern __ATTRS_o __vector __bool int
11042 vec_fp_test_data_class(__vector float __a, int __b, int *__c)
11043 __constant_range(__b, 0, 4095);
11044
11045 extern __ATTRS_o __vector __bool long long
11046 vec_fp_test_data_class(__vector double __a, int __b, int *__c)
11047 __constant_range(__b, 0, 4095);
11048
11049 #define vec_fp_test_data_class(X, Y, Z) \
11050 ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
11051 __extension__ ({ \
11052 __vector unsigned char __res; \
11053 __vector unsigned char __x = (__vector unsigned char)(X); \
11054 int *__z = (Z); \
11055 switch (sizeof ((X)[0])) { \
11056 case 4: __res = (__vector unsigned char) \
11057 __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \
11058 break; \
11059 default: __res = (__vector unsigned char) \
11060 __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \
11061 break; \
11062 } __res; }))
11063 #else
11064 #define vec_fp_test_data_class(X, Y, Z) \
11065 ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
11066 #endif
11067
11068 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
11069 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
11070 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
11071 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
11072 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
11073 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
11074 __VEC_CLASS_FP_NORMAL_N)
11075 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
11076 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
11077 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
11078 __VEC_CLASS_FP_SUBNORMAL_N)
11079 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
11080 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
11081 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
11082 __VEC_CLASS_FP_INFINITY_N)
11083 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
11084 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
11085 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
11086 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
11087 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
11088 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
11089 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
11090 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
11091 __VEC_CLASS_FP_SUBNORMAL | \
11092 __VEC_CLASS_FP_ZERO | \
11093 __VEC_CLASS_FP_INFINITY)
11094
11095 /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
11096
11097 #if __ARCH__ >= 14
11098 #define vec_extend_to_fp32_hi(X, W) \
11099 ((__vector float)__builtin_s390_vclfnhs((X), (W)));
11100 #endif
11101
11102 /*-- vec_extend_to_fp32_hi --------------------------------------------------*/
11103
11104 #if __ARCH__ >= 14
11105 #define vec_extend_to_fp32_lo(X, W) \
11106 ((__vector float)__builtin_s390_vclfnls((X), (W)));
11107 #endif
11108
11109 /*-- vec_round_from_fp32 ----------------------------------------------------*/
11110
11111 #if __ARCH__ >= 14
11112 #define vec_round_from_fp32(X, Y, W) \
11113 ((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W)));
11114 #endif
11115
11116 /*-- vec_convert_to_fp16 ----------------------------------------------------*/
11117
11118 #if __ARCH__ >= 14
11119 #define vec_convert_to_fp16(X, W) \
11120 ((__vector unsigned short)__builtin_s390_vcfn((X), (W)));
11121 #endif
11122
11123 /*-- vec_convert_from_fp16 --------------------------------------------------*/
11124
11125 #if __ARCH__ >= 14
11126 #define vec_convert_from_fp16(X, W) \
11127 ((__vector unsigned short)__builtin_s390_vcnf((X), (W)));
11128 #endif
11129
11130 /*-- vec_cp_until_zero ------------------------------------------------------*/
11131
11132 static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero(__vector signed char __a)11133 vec_cp_until_zero(__vector signed char __a) {
11134 return ((__vector signed char)
11135 __builtin_s390_vistrb((__vector unsigned char)__a));
11136 }
11137
11138 static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero(__vector __bool char __a)11139 vec_cp_until_zero(__vector __bool char __a) {
11140 return ((__vector __bool char)
11141 __builtin_s390_vistrb((__vector unsigned char)__a));
11142 }
11143
11144 static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero(__vector unsigned char __a)11145 vec_cp_until_zero(__vector unsigned char __a) {
11146 return __builtin_s390_vistrb(__a);
11147 }
11148
11149 static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero(__vector signed short __a)11150 vec_cp_until_zero(__vector signed short __a) {
11151 return ((__vector signed short)
11152 __builtin_s390_vistrh((__vector unsigned short)__a));
11153 }
11154
11155 static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero(__vector __bool short __a)11156 vec_cp_until_zero(__vector __bool short __a) {
11157 return ((__vector __bool short)
11158 __builtin_s390_vistrh((__vector unsigned short)__a));
11159 }
11160
11161 static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero(__vector unsigned short __a)11162 vec_cp_until_zero(__vector unsigned short __a) {
11163 return __builtin_s390_vistrh(__a);
11164 }
11165
11166 static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero(__vector signed int __a)11167 vec_cp_until_zero(__vector signed int __a) {
11168 return ((__vector signed int)
11169 __builtin_s390_vistrf((__vector unsigned int)__a));
11170 }
11171
11172 static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero(__vector __bool int __a)11173 vec_cp_until_zero(__vector __bool int __a) {
11174 return ((__vector __bool int)
11175 __builtin_s390_vistrf((__vector unsigned int)__a));
11176 }
11177
11178 static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero(__vector unsigned int __a)11179 vec_cp_until_zero(__vector unsigned int __a) {
11180 return __builtin_s390_vistrf(__a);
11181 }
11182
11183 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
11184
11185 static inline __ATTRS_o_ai __vector signed char
vec_cp_until_zero_cc(__vector signed char __a,int * __cc)11186 vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {
11187 return (__vector signed char)
11188 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
11189 }
11190
11191 static inline __ATTRS_o_ai __vector __bool char
vec_cp_until_zero_cc(__vector __bool char __a,int * __cc)11192 vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {
11193 return (__vector __bool char)
11194 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);
11195 }
11196
11197 static inline __ATTRS_o_ai __vector unsigned char
vec_cp_until_zero_cc(__vector unsigned char __a,int * __cc)11198 vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {
11199 return __builtin_s390_vistrbs(__a, __cc);
11200 }
11201
11202 static inline __ATTRS_o_ai __vector signed short
vec_cp_until_zero_cc(__vector signed short __a,int * __cc)11203 vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {
11204 return (__vector signed short)
11205 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
11206 }
11207
11208 static inline __ATTRS_o_ai __vector __bool short
vec_cp_until_zero_cc(__vector __bool short __a,int * __cc)11209 vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {
11210 return (__vector __bool short)
11211 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);
11212 }
11213
11214 static inline __ATTRS_o_ai __vector unsigned short
vec_cp_until_zero_cc(__vector unsigned short __a,int * __cc)11215 vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {
11216 return __builtin_s390_vistrhs(__a, __cc);
11217 }
11218
11219 static inline __ATTRS_o_ai __vector signed int
vec_cp_until_zero_cc(__vector signed int __a,int * __cc)11220 vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {
11221 return (__vector signed int)
11222 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
11223 }
11224
11225 static inline __ATTRS_o_ai __vector __bool int
vec_cp_until_zero_cc(__vector __bool int __a,int * __cc)11226 vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {
11227 return (__vector __bool int)
11228 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);
11229 }
11230
11231 static inline __ATTRS_o_ai __vector unsigned int
vec_cp_until_zero_cc(__vector unsigned int __a,int * __cc)11232 vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {
11233 return __builtin_s390_vistrfs(__a, __cc);
11234 }
11235
11236 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
11237
11238 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx(__vector signed char __a,__vector signed char __b)11239 vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {
11240 return (__vector signed char)
11241 __builtin_s390_vfeeb((__vector unsigned char)__a,
11242 (__vector unsigned char)__b);
11243 }
11244
11245 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector __bool char __a,__vector __bool char __b)11246 vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {
11247 return __builtin_s390_vfeeb((__vector unsigned char)__a,
11248 (__vector unsigned char)__b);
11249 }
11250
11251 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx(__vector unsigned char __a,__vector unsigned char __b)11252 vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {
11253 return __builtin_s390_vfeeb(__a, __b);
11254 }
11255
11256 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx(__vector signed short __a,__vector signed short __b)11257 vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {
11258 return (__vector signed short)
11259 __builtin_s390_vfeeh((__vector unsigned short)__a,
11260 (__vector unsigned short)__b);
11261 }
11262
11263 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector __bool short __a,__vector __bool short __b)11264 vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {
11265 return __builtin_s390_vfeeh((__vector unsigned short)__a,
11266 (__vector unsigned short)__b);
11267 }
11268
11269 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx(__vector unsigned short __a,__vector unsigned short __b)11270 vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {
11271 return __builtin_s390_vfeeh(__a, __b);
11272 }
11273
11274 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx(__vector signed int __a,__vector signed int __b)11275 vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {
11276 return (__vector signed int)
11277 __builtin_s390_vfeef((__vector unsigned int)__a,
11278 (__vector unsigned int)__b);
11279 }
11280
11281 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector __bool int __a,__vector __bool int __b)11282 vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {
11283 return __builtin_s390_vfeef((__vector unsigned int)__a,
11284 (__vector unsigned int)__b);
11285 }
11286
11287 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx(__vector unsigned int __a,__vector unsigned int __b)11288 vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {
11289 return __builtin_s390_vfeef(__a, __b);
11290 }
11291
11292 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
11293
11294 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)11295 vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
11296 return (__vector signed char)
11297 __builtin_s390_vfeebs((__vector unsigned char)__a,
11298 (__vector unsigned char)__b, __cc);
11299 }
11300
11301 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)11302 vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
11303 return __builtin_s390_vfeebs((__vector unsigned char)__a,
11304 (__vector unsigned char)__b, __cc);
11305 }
11306
11307 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)11308 vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11309 int *__cc) {
11310 return __builtin_s390_vfeebs(__a, __b, __cc);
11311 }
11312
11313 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)11314 vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,
11315 int *__cc) {
11316 return (__vector signed short)
11317 __builtin_s390_vfeehs((__vector unsigned short)__a,
11318 (__vector unsigned short)__b, __cc);
11319 }
11320
11321 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)11322 vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {
11323 return __builtin_s390_vfeehs((__vector unsigned short)__a,
11324 (__vector unsigned short)__b, __cc);
11325 }
11326
11327 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)11328 vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11329 int *__cc) {
11330 return __builtin_s390_vfeehs(__a, __b, __cc);
11331 }
11332
11333 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)11334 vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
11335 return (__vector signed int)
11336 __builtin_s390_vfeefs((__vector unsigned int)__a,
11337 (__vector unsigned int)__b, __cc);
11338 }
11339
11340 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)11341 vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
11342 return __builtin_s390_vfeefs((__vector unsigned int)__a,
11343 (__vector unsigned int)__b, __cc);
11344 }
11345
11346 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)11347 vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11348 int *__cc) {
11349 return __builtin_s390_vfeefs(__a, __b, __cc);
11350 }
11351
11352 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
11353
11354 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx(__vector signed char __a,__vector signed char __b)11355 vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {
11356 return (__vector signed char)
11357 __builtin_s390_vfeezb((__vector unsigned char)__a,
11358 (__vector unsigned char)__b);
11359 }
11360
11361 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector __bool char __a,__vector __bool char __b)11362 vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
11363 return __builtin_s390_vfeezb((__vector unsigned char)__a,
11364 (__vector unsigned char)__b);
11365 }
11366
11367 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)11368 vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
11369 return __builtin_s390_vfeezb(__a, __b);
11370 }
11371
11372 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx(__vector signed short __a,__vector signed short __b)11373 vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {
11374 return (__vector signed short)
11375 __builtin_s390_vfeezh((__vector unsigned short)__a,
11376 (__vector unsigned short)__b);
11377 }
11378
11379 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector __bool short __a,__vector __bool short __b)11380 vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
11381 return __builtin_s390_vfeezh((__vector unsigned short)__a,
11382 (__vector unsigned short)__b);
11383 }
11384
11385 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)11386 vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
11387 return __builtin_s390_vfeezh(__a, __b);
11388 }
11389
11390 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx(__vector signed int __a,__vector signed int __b)11391 vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {
11392 return (__vector signed int)
11393 __builtin_s390_vfeezf((__vector unsigned int)__a,
11394 (__vector unsigned int)__b);
11395 }
11396
11397 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector __bool int __a,__vector __bool int __b)11398 vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
11399 return __builtin_s390_vfeezf((__vector unsigned int)__a,
11400 (__vector unsigned int)__b);
11401 }
11402
11403 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)11404 vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
11405 return __builtin_s390_vfeezf(__a, __b);
11406 }
11407
11408 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
11409
11410 static inline __ATTRS_o_ai __vector signed char
vec_cmpeq_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)11411 vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
11412 int *__cc) {
11413 return (__vector signed char)
11414 __builtin_s390_vfeezbs((__vector unsigned char)__a,
11415 (__vector unsigned char)__b, __cc);
11416 }
11417
11418 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)11419 vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
11420 int *__cc) {
11421 return __builtin_s390_vfeezbs((__vector unsigned char)__a,
11422 (__vector unsigned char)__b, __cc);
11423 }
11424
11425 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpeq_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)11426 vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11427 int *__cc) {
11428 return __builtin_s390_vfeezbs(__a, __b, __cc);
11429 }
11430
11431 static inline __ATTRS_o_ai __vector signed short
vec_cmpeq_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)11432 vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
11433 int *__cc) {
11434 return (__vector signed short)
11435 __builtin_s390_vfeezhs((__vector unsigned short)__a,
11436 (__vector unsigned short)__b, __cc);
11437 }
11438
11439 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)11440 vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
11441 int *__cc) {
11442 return __builtin_s390_vfeezhs((__vector unsigned short)__a,
11443 (__vector unsigned short)__b, __cc);
11444 }
11445
11446 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpeq_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)11447 vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11448 int *__cc) {
11449 return __builtin_s390_vfeezhs(__a, __b, __cc);
11450 }
11451
11452 static inline __ATTRS_o_ai __vector signed int
vec_cmpeq_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)11453 vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
11454 int *__cc) {
11455 return (__vector signed int)
11456 __builtin_s390_vfeezfs((__vector unsigned int)__a,
11457 (__vector unsigned int)__b, __cc);
11458 }
11459
11460 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)11461 vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
11462 int *__cc) {
11463 return __builtin_s390_vfeezfs((__vector unsigned int)__a,
11464 (__vector unsigned int)__b, __cc);
11465 }
11466
11467 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpeq_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)11468 vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11469 int *__cc) {
11470 return __builtin_s390_vfeezfs(__a, __b, __cc);
11471 }
11472
11473 /*-- vec_cmpne_idx ----------------------------------------------------------*/
11474
11475 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx(__vector signed char __a,__vector signed char __b)11476 vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {
11477 return (__vector signed char)
11478 __builtin_s390_vfeneb((__vector unsigned char)__a,
11479 (__vector unsigned char)__b);
11480 }
11481
11482 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector __bool char __a,__vector __bool char __b)11483 vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {
11484 return __builtin_s390_vfeneb((__vector unsigned char)__a,
11485 (__vector unsigned char)__b);
11486 }
11487
11488 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx(__vector unsigned char __a,__vector unsigned char __b)11489 vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {
11490 return __builtin_s390_vfeneb(__a, __b);
11491 }
11492
11493 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx(__vector signed short __a,__vector signed short __b)11494 vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {
11495 return (__vector signed short)
11496 __builtin_s390_vfeneh((__vector unsigned short)__a,
11497 (__vector unsigned short)__b);
11498 }
11499
11500 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector __bool short __a,__vector __bool short __b)11501 vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {
11502 return __builtin_s390_vfeneh((__vector unsigned short)__a,
11503 (__vector unsigned short)__b);
11504 }
11505
11506 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx(__vector unsigned short __a,__vector unsigned short __b)11507 vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {
11508 return __builtin_s390_vfeneh(__a, __b);
11509 }
11510
11511 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx(__vector signed int __a,__vector signed int __b)11512 vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {
11513 return (__vector signed int)
11514 __builtin_s390_vfenef((__vector unsigned int)__a,
11515 (__vector unsigned int)__b);
11516 }
11517
11518 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector __bool int __a,__vector __bool int __b)11519 vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {
11520 return __builtin_s390_vfenef((__vector unsigned int)__a,
11521 (__vector unsigned int)__b);
11522 }
11523
11524 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx(__vector unsigned int __a,__vector unsigned int __b)11525 vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {
11526 return __builtin_s390_vfenef(__a, __b);
11527 }
11528
11529 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
11530
11531 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)11532 vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {
11533 return (__vector signed char)
11534 __builtin_s390_vfenebs((__vector unsigned char)__a,
11535 (__vector unsigned char)__b, __cc);
11536 }
11537
11538 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)11539 vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {
11540 return __builtin_s390_vfenebs((__vector unsigned char)__a,
11541 (__vector unsigned char)__b, __cc);
11542 }
11543
11544 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)11545 vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11546 int *__cc) {
11547 return __builtin_s390_vfenebs(__a, __b, __cc);
11548 }
11549
11550 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)11551 vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,
11552 int *__cc) {
11553 return (__vector signed short)
11554 __builtin_s390_vfenehs((__vector unsigned short)__a,
11555 (__vector unsigned short)__b, __cc);
11556 }
11557
11558 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)11559 vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,
11560 int *__cc) {
11561 return __builtin_s390_vfenehs((__vector unsigned short)__a,
11562 (__vector unsigned short)__b, __cc);
11563 }
11564
11565 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)11566 vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11567 int *__cc) {
11568 return __builtin_s390_vfenehs(__a, __b, __cc);
11569 }
11570
11571 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)11572 vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {
11573 return (__vector signed int)
11574 __builtin_s390_vfenefs((__vector unsigned int)__a,
11575 (__vector unsigned int)__b, __cc);
11576 }
11577
11578 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)11579 vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {
11580 return __builtin_s390_vfenefs((__vector unsigned int)__a,
11581 (__vector unsigned int)__b, __cc);
11582 }
11583
11584 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)11585 vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11586 int *__cc) {
11587 return __builtin_s390_vfenefs(__a, __b, __cc);
11588 }
11589
11590 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
11591
11592 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx(__vector signed char __a,__vector signed char __b)11593 vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {
11594 return (__vector signed char)
11595 __builtin_s390_vfenezb((__vector unsigned char)__a,
11596 (__vector unsigned char)__b);
11597 }
11598
11599 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector __bool char __a,__vector __bool char __b)11600 vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {
11601 return __builtin_s390_vfenezb((__vector unsigned char)__a,
11602 (__vector unsigned char)__b);
11603 }
11604
11605 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)11606 vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {
11607 return __builtin_s390_vfenezb(__a, __b);
11608 }
11609
11610 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx(__vector signed short __a,__vector signed short __b)11611 vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {
11612 return (__vector signed short)
11613 __builtin_s390_vfenezh((__vector unsigned short)__a,
11614 (__vector unsigned short)__b);
11615 }
11616
11617 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector __bool short __a,__vector __bool short __b)11618 vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {
11619 return __builtin_s390_vfenezh((__vector unsigned short)__a,
11620 (__vector unsigned short)__b);
11621 }
11622
11623 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)11624 vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {
11625 return __builtin_s390_vfenezh(__a, __b);
11626 }
11627
11628 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx(__vector signed int __a,__vector signed int __b)11629 vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {
11630 return (__vector signed int)
11631 __builtin_s390_vfenezf((__vector unsigned int)__a,
11632 (__vector unsigned int)__b);
11633 }
11634
11635 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector __bool int __a,__vector __bool int __b)11636 vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {
11637 return __builtin_s390_vfenezf((__vector unsigned int)__a,
11638 (__vector unsigned int)__b);
11639 }
11640
11641 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)11642 vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {
11643 return __builtin_s390_vfenezf(__a, __b);
11644 }
11645
11646 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
11647
11648 static inline __ATTRS_o_ai __vector signed char
vec_cmpne_or_0_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)11649 vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,
11650 int *__cc) {
11651 return (__vector signed char)
11652 __builtin_s390_vfenezbs((__vector unsigned char)__a,
11653 (__vector unsigned char)__b, __cc);
11654 }
11655
11656 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)11657 vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,
11658 int *__cc) {
11659 return __builtin_s390_vfenezbs((__vector unsigned char)__a,
11660 (__vector unsigned char)__b, __cc);
11661 }
11662
11663 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpne_or_0_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)11664 vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11665 int *__cc) {
11666 return __builtin_s390_vfenezbs(__a, __b, __cc);
11667 }
11668
11669 static inline __ATTRS_o_ai __vector signed short
vec_cmpne_or_0_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)11670 vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,
11671 int *__cc) {
11672 return (__vector signed short)
11673 __builtin_s390_vfenezhs((__vector unsigned short)__a,
11674 (__vector unsigned short)__b, __cc);
11675 }
11676
11677 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)11678 vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,
11679 int *__cc) {
11680 return __builtin_s390_vfenezhs((__vector unsigned short)__a,
11681 (__vector unsigned short)__b, __cc);
11682 }
11683
11684 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpne_or_0_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)11685 vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11686 int *__cc) {
11687 return __builtin_s390_vfenezhs(__a, __b, __cc);
11688 }
11689
11690 static inline __ATTRS_o_ai __vector signed int
vec_cmpne_or_0_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)11691 vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,
11692 int *__cc) {
11693 return (__vector signed int)
11694 __builtin_s390_vfenezfs((__vector unsigned int)__a,
11695 (__vector unsigned int)__b, __cc);
11696 }
11697
11698 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)11699 vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,
11700 int *__cc) {
11701 return __builtin_s390_vfenezfs((__vector unsigned int)__a,
11702 (__vector unsigned int)__b, __cc);
11703 }
11704
11705 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpne_or_0_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)11706 vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11707 int *__cc) {
11708 return __builtin_s390_vfenezfs(__a, __b, __cc);
11709 }
11710
11711 /*-- vec_cmprg --------------------------------------------------------------*/
11712
11713 static inline __ATTRS_o_ai __vector __bool char
vec_cmprg(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)11714 vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,
11715 __vector unsigned char __c) {
11716 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
11717 }
11718
11719 static inline __ATTRS_o_ai __vector __bool short
vec_cmprg(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)11720 vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,
11721 __vector unsigned short __c) {
11722 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
11723 }
11724
11725 static inline __ATTRS_o_ai __vector __bool int
vec_cmprg(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)11726 vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,
11727 __vector unsigned int __c) {
11728 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
11729 }
11730
11731 /*-- vec_cmprg_cc -----------------------------------------------------------*/
11732
11733 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)11734 vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,
11735 __vector unsigned char __c, int *__cc) {
11736 return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
11737 }
11738
11739 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)11740 vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,
11741 __vector unsigned short __c, int *__cc) {
11742 return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
11743 }
11744
11745 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)11746 vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,
11747 __vector unsigned int __c, int *__cc) {
11748 return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
11749 }
11750
11751 /*-- vec_cmprg_idx ----------------------------------------------------------*/
11752
11753 static inline __ATTRS_o_ai __vector unsigned char
vec_cmprg_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)11754 vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,
11755 __vector unsigned char __c) {
11756 return __builtin_s390_vstrcb(__a, __b, __c, 0);
11757 }
11758
11759 static inline __ATTRS_o_ai __vector unsigned short
vec_cmprg_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)11760 vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,
11761 __vector unsigned short __c) {
11762 return __builtin_s390_vstrch(__a, __b, __c, 0);
11763 }
11764
11765 static inline __ATTRS_o_ai __vector unsigned int
vec_cmprg_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)11766 vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,
11767 __vector unsigned int __c) {
11768 return __builtin_s390_vstrcf(__a, __b, __c, 0);
11769 }
11770
11771 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
11772
11773 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)11774 vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11775 __vector unsigned char __c, int *__cc) {
11776 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
11777 }
11778
11779 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)11780 vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11781 __vector unsigned short __c, int *__cc) {
11782 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
11783 }
11784
11785 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)11786 vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11787 __vector unsigned int __c, int *__cc) {
11788 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
11789 }
11790
11791 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
11792
11793 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)11794 vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
11795 __vector unsigned char __c) {
11796 return __builtin_s390_vstrczb(__a, __b, __c, 0);
11797 }
11798
11799 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)11800 vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
11801 __vector unsigned short __c) {
11802 return __builtin_s390_vstrczh(__a, __b, __c, 0);
11803 }
11804
11805 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)11806 vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
11807 __vector unsigned int __c) {
11808 return __builtin_s390_vstrczf(__a, __b, __c, 0);
11809 }
11810
11811 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
11812
11813 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)11814 vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11815 __vector unsigned char __c, int *__cc) {
11816 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
11817 }
11818
11819 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)11820 vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11821 __vector unsigned short __c, int *__cc) {
11822 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
11823 }
11824
11825 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)11826 vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11827 __vector unsigned int __c, int *__cc) {
11828 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
11829 }
11830
11831 /*-- vec_cmpnrg -------------------------------------------------------------*/
11832
11833 static inline __ATTRS_o_ai __vector __bool char
vec_cmpnrg(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)11834 vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,
11835 __vector unsigned char __c) {
11836 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
11837 }
11838
11839 static inline __ATTRS_o_ai __vector __bool short
vec_cmpnrg(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)11840 vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,
11841 __vector unsigned short __c) {
11842 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
11843 }
11844
11845 static inline __ATTRS_o_ai __vector __bool int
vec_cmpnrg(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)11846 vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,
11847 __vector unsigned int __c) {
11848 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
11849 }
11850
11851 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
11852
11853 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)11854 vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,
11855 __vector unsigned char __c, int *__cc) {
11856 return (__vector __bool char)
11857 __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
11858 }
11859
11860 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)11861 vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,
11862 __vector unsigned short __c, int *__cc) {
11863 return (__vector __bool short)
11864 __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
11865 }
11866
11867 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)11868 vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,
11869 __vector unsigned int __c, int *__cc) {
11870 return (__vector __bool int)
11871 __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
11872 }
11873
11874 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
11875
11876 static inline __ATTRS_o_ai __vector unsigned char
vec_cmpnrg_idx(__vector unsigned char __a,__vector unsigned char __b,__vector unsigned char __c)11877 vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,
11878 __vector unsigned char __c) {
11879 return __builtin_s390_vstrcb(__a, __b, __c, 8);
11880 }
11881
11882 static inline __ATTRS_o_ai __vector unsigned short
vec_cmpnrg_idx(__vector unsigned short __a,__vector unsigned short __b,__vector unsigned short __c)11883 vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,
11884 __vector unsigned short __c) {
11885 return __builtin_s390_vstrch(__a, __b, __c, 8);
11886 }
11887
11888 static inline __ATTRS_o_ai __vector unsigned int
vec_cmpnrg_idx(__vector unsigned int __a,__vector unsigned int __b,__vector unsigned int __c)11889 vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,
11890 __vector unsigned int __c) {
11891 return __builtin_s390_vstrcf(__a, __b, __c, 8);
11892 }
11893
11894 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
11895
11896 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)11897 vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,
11898 __vector unsigned char __c, int *__cc) {
11899 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
11900 }
11901
11902 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)11903 vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,
11904 __vector unsigned short __c, int *__cc) {
11905 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
11906 }
11907
11908 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)11909 vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,
11910 __vector unsigned int __c, int *__cc) {
11911 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
11912 }
11913
11914 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
11915
11916 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)11917 vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,
11918 __vector unsigned char __c) {
11919 return __builtin_s390_vstrczb(__a, __b, __c, 8);
11920 }
11921
11922 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)11923 vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,
11924 __vector unsigned short __c) {
11925 return __builtin_s390_vstrczh(__a, __b, __c, 8);
11926 }
11927
11928 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)11929 vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,
11930 __vector unsigned int __c) {
11931 return __builtin_s390_vstrczf(__a, __b, __c, 8);
11932 }
11933
11934 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
11935
11936 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)11937 vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,
11938 __vector unsigned char __b,
11939 __vector unsigned char __c, int *__cc) {
11940 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
11941 }
11942
11943 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)11944 vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,
11945 __vector unsigned short __b,
11946 __vector unsigned short __c, int *__cc) {
11947 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
11948 }
11949
11950 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)11951 vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,
11952 __vector unsigned int __b,
11953 __vector unsigned int __c, int *__cc) {
11954 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
11955 }
11956
11957 /*-- vec_find_any_eq --------------------------------------------------------*/
11958
11959 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector signed char __a,__vector signed char __b)11960 vec_find_any_eq(__vector signed char __a, __vector signed char __b) {
11961 return (__vector __bool char)
11962 __builtin_s390_vfaeb((__vector unsigned char)__a,
11963 (__vector unsigned char)__b, 4);
11964 }
11965
11966 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector __bool char __a,__vector __bool char __b)11967 vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {
11968 return (__vector __bool char)
11969 __builtin_s390_vfaeb((__vector unsigned char)__a,
11970 (__vector unsigned char)__b, 4);
11971 }
11972
11973 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq(__vector unsigned char __a,__vector unsigned char __b)11974 vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {
11975 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);
11976 }
11977
11978 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector signed short __a,__vector signed short __b)11979 vec_find_any_eq(__vector signed short __a, __vector signed short __b) {
11980 return (__vector __bool short)
11981 __builtin_s390_vfaeh((__vector unsigned short)__a,
11982 (__vector unsigned short)__b, 4);
11983 }
11984
11985 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector __bool short __a,__vector __bool short __b)11986 vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {
11987 return (__vector __bool short)
11988 __builtin_s390_vfaeh((__vector unsigned short)__a,
11989 (__vector unsigned short)__b, 4);
11990 }
11991
11992 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq(__vector unsigned short __a,__vector unsigned short __b)11993 vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {
11994 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);
11995 }
11996
11997 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector signed int __a,__vector signed int __b)11998 vec_find_any_eq(__vector signed int __a, __vector signed int __b) {
11999 return (__vector __bool int)
12000 __builtin_s390_vfaef((__vector unsigned int)__a,
12001 (__vector unsigned int)__b, 4);
12002 }
12003
12004 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector __bool int __a,__vector __bool int __b)12005 vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {
12006 return (__vector __bool int)
12007 __builtin_s390_vfaef((__vector unsigned int)__a,
12008 (__vector unsigned int)__b, 4);
12009 }
12010
12011 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq(__vector unsigned int __a,__vector unsigned int __b)12012 vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {
12013 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);
12014 }
12015
12016 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
12017
12018 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector signed char __a,__vector signed char __b,int * __cc)12019 vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,
12020 int *__cc) {
12021 return (__vector __bool char)
12022 __builtin_s390_vfaebs((__vector unsigned char)__a,
12023 (__vector unsigned char)__b, 4, __cc);
12024 }
12025
12026 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)12027 vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,
12028 int *__cc) {
12029 return (__vector __bool char)
12030 __builtin_s390_vfaebs((__vector unsigned char)__a,
12031 (__vector unsigned char)__b, 4, __cc);
12032 }
12033
12034 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_eq_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)12035 vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,
12036 int *__cc) {
12037 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
12038 }
12039
12040 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector signed short __a,__vector signed short __b,int * __cc)12041 vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,
12042 int *__cc) {
12043 return (__vector __bool short)
12044 __builtin_s390_vfaehs((__vector unsigned short)__a,
12045 (__vector unsigned short)__b, 4, __cc);
12046 }
12047
12048 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)12049 vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,
12050 int *__cc) {
12051 return (__vector __bool short)
12052 __builtin_s390_vfaehs((__vector unsigned short)__a,
12053 (__vector unsigned short)__b, 4, __cc);
12054 }
12055
12056 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_eq_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)12057 vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,
12058 int *__cc) {
12059 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
12060 }
12061
12062 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector signed int __a,__vector signed int __b,int * __cc)12063 vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,
12064 int *__cc) {
12065 return (__vector __bool int)
12066 __builtin_s390_vfaefs((__vector unsigned int)__a,
12067 (__vector unsigned int)__b, 4, __cc);
12068 }
12069
12070 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)12071 vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,
12072 int *__cc) {
12073 return (__vector __bool int)
12074 __builtin_s390_vfaefs((__vector unsigned int)__a,
12075 (__vector unsigned int)__b, 4, __cc);
12076 }
12077
12078 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_eq_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)12079 vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,
12080 int *__cc) {
12081 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
12082 }
12083
12084 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
12085
12086 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx(__vector signed char __a,__vector signed char __b)12087 vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {
12088 return (__vector signed char)
12089 __builtin_s390_vfaeb((__vector unsigned char)__a,
12090 (__vector unsigned char)__b, 0);
12091 }
12092
12093 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector __bool char __a,__vector __bool char __b)12094 vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {
12095 return __builtin_s390_vfaeb((__vector unsigned char)__a,
12096 (__vector unsigned char)__b, 0);
12097 }
12098
12099 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx(__vector unsigned char __a,__vector unsigned char __b)12100 vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {
12101 return __builtin_s390_vfaeb(__a, __b, 0);
12102 }
12103
12104 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx(__vector signed short __a,__vector signed short __b)12105 vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {
12106 return (__vector signed short)
12107 __builtin_s390_vfaeh((__vector unsigned short)__a,
12108 (__vector unsigned short)__b, 0);
12109 }
12110
12111 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector __bool short __a,__vector __bool short __b)12112 vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {
12113 return __builtin_s390_vfaeh((__vector unsigned short)__a,
12114 (__vector unsigned short)__b, 0);
12115 }
12116
12117 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx(__vector unsigned short __a,__vector unsigned short __b)12118 vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {
12119 return __builtin_s390_vfaeh(__a, __b, 0);
12120 }
12121
12122 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx(__vector signed int __a,__vector signed int __b)12123 vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {
12124 return (__vector signed int)
12125 __builtin_s390_vfaef((__vector unsigned int)__a,
12126 (__vector unsigned int)__b, 0);
12127 }
12128
12129 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector __bool int __a,__vector __bool int __b)12130 vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {
12131 return __builtin_s390_vfaef((__vector unsigned int)__a,
12132 (__vector unsigned int)__b, 0);
12133 }
12134
12135 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx(__vector unsigned int __a,__vector unsigned int __b)12136 vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {
12137 return __builtin_s390_vfaef(__a, __b, 0);
12138 }
12139
12140 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
12141
12142 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)12143 vec_find_any_eq_idx_cc(__vector signed char __a,
12144 __vector signed char __b, int *__cc) {
12145 return (__vector signed char)
12146 __builtin_s390_vfaebs((__vector unsigned char)__a,
12147 (__vector unsigned char)__b, 0, __cc);
12148 }
12149
12150 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)12151 vec_find_any_eq_idx_cc(__vector __bool char __a,
12152 __vector __bool char __b, int *__cc) {
12153 return __builtin_s390_vfaebs((__vector unsigned char)__a,
12154 (__vector unsigned char)__b, 0, __cc);
12155 }
12156
12157 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)12158 vec_find_any_eq_idx_cc(__vector unsigned char __a,
12159 __vector unsigned char __b, int *__cc) {
12160 return __builtin_s390_vfaebs(__a, __b, 0, __cc);
12161 }
12162
12163 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)12164 vec_find_any_eq_idx_cc(__vector signed short __a,
12165 __vector signed short __b, int *__cc) {
12166 return (__vector signed short)
12167 __builtin_s390_vfaehs((__vector unsigned short)__a,
12168 (__vector unsigned short)__b, 0, __cc);
12169 }
12170
12171 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)12172 vec_find_any_eq_idx_cc(__vector __bool short __a,
12173 __vector __bool short __b, int *__cc) {
12174 return __builtin_s390_vfaehs((__vector unsigned short)__a,
12175 (__vector unsigned short)__b, 0, __cc);
12176 }
12177
12178 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)12179 vec_find_any_eq_idx_cc(__vector unsigned short __a,
12180 __vector unsigned short __b, int *__cc) {
12181 return __builtin_s390_vfaehs(__a, __b, 0, __cc);
12182 }
12183
12184 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)12185 vec_find_any_eq_idx_cc(__vector signed int __a,
12186 __vector signed int __b, int *__cc) {
12187 return (__vector signed int)
12188 __builtin_s390_vfaefs((__vector unsigned int)__a,
12189 (__vector unsigned int)__b, 0, __cc);
12190 }
12191
12192 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)12193 vec_find_any_eq_idx_cc(__vector __bool int __a,
12194 __vector __bool int __b, int *__cc) {
12195 return __builtin_s390_vfaefs((__vector unsigned int)__a,
12196 (__vector unsigned int)__b, 0, __cc);
12197 }
12198
12199 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)12200 vec_find_any_eq_idx_cc(__vector unsigned int __a,
12201 __vector unsigned int __b, int *__cc) {
12202 return __builtin_s390_vfaefs(__a, __b, 0, __cc);
12203 }
12204
12205 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
12206
12207 static inline __ATTRS_o_ai __vector signed char
vec_find_any_eq_or_0_idx(__vector signed char __a,__vector signed char __b)12208 vec_find_any_eq_or_0_idx(__vector signed char __a,
12209 __vector signed char __b) {
12210 return (__vector signed char)
12211 __builtin_s390_vfaezb((__vector unsigned char)__a,
12212 (__vector unsigned char)__b, 0);
12213 }
12214
12215 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector __bool char __a,__vector __bool char __b)12216 vec_find_any_eq_or_0_idx(__vector __bool char __a,
12217 __vector __bool char __b) {
12218 return __builtin_s390_vfaezb((__vector unsigned char)__a,
12219 (__vector unsigned char)__b, 0);
12220 }
12221
12222 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_eq_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)12223 vec_find_any_eq_or_0_idx(__vector unsigned char __a,
12224 __vector unsigned char __b) {
12225 return __builtin_s390_vfaezb(__a, __b, 0);
12226 }
12227
12228 static inline __ATTRS_o_ai __vector signed short
vec_find_any_eq_or_0_idx(__vector signed short __a,__vector signed short __b)12229 vec_find_any_eq_or_0_idx(__vector signed short __a,
12230 __vector signed short __b) {
12231 return (__vector signed short)
12232 __builtin_s390_vfaezh((__vector unsigned short)__a,
12233 (__vector unsigned short)__b, 0);
12234 }
12235
12236 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector __bool short __a,__vector __bool short __b)12237 vec_find_any_eq_or_0_idx(__vector __bool short __a,
12238 __vector __bool short __b) {
12239 return __builtin_s390_vfaezh((__vector unsigned short)__a,
12240 (__vector unsigned short)__b, 0);
12241 }
12242
12243 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_eq_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)12244 vec_find_any_eq_or_0_idx(__vector unsigned short __a,
12245 __vector unsigned short __b) {
12246 return __builtin_s390_vfaezh(__a, __b, 0);
12247 }
12248
12249 static inline __ATTRS_o_ai __vector signed int
vec_find_any_eq_or_0_idx(__vector signed int __a,__vector signed int __b)12250 vec_find_any_eq_or_0_idx(__vector signed int __a,
12251 __vector signed int __b) {
12252 return (__vector signed int)
12253 __builtin_s390_vfaezf((__vector unsigned int)__a,
12254 (__vector unsigned int)__b, 0);
12255 }
12256
12257 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector __bool int __a,__vector __bool int __b)12258 vec_find_any_eq_or_0_idx(__vector __bool int __a,
12259 __vector __bool int __b) {
12260 return __builtin_s390_vfaezf((__vector unsigned int)__a,
12261 (__vector unsigned int)__b, 0);
12262 }
12263
12264 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_eq_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)12265 vec_find_any_eq_or_0_idx(__vector unsigned int __a,
12266 __vector unsigned int __b) {
12267 return __builtin_s390_vfaezf(__a, __b, 0);
12268 }
12269
12270 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
12271
12272 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)12273 vec_find_any_eq_or_0_idx_cc(__vector signed char __a,
12274 __vector signed char __b, int *__cc) {
12275 return (__vector signed char)
12276 __builtin_s390_vfaezbs((__vector unsigned char)__a,
12277 (__vector unsigned char)__b, 0, __cc);
12278 }
12279
12280 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)12281 vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,
12282 __vector __bool char __b, int *__cc) {
12283 return __builtin_s390_vfaezbs((__vector unsigned char)__a,
12284 (__vector unsigned char)__b, 0, __cc);
12285 }
12286
12287 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)12288 vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,
12289 __vector unsigned char __b, int *__cc) {
12290 return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
12291 }
12292
12293 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)12294 vec_find_any_eq_or_0_idx_cc(__vector signed short __a,
12295 __vector signed short __b, int *__cc) {
12296 return (__vector signed short)
12297 __builtin_s390_vfaezhs((__vector unsigned short)__a,
12298 (__vector unsigned short)__b, 0, __cc);
12299 }
12300
12301 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)12302 vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,
12303 __vector __bool short __b, int *__cc) {
12304 return __builtin_s390_vfaezhs((__vector unsigned short)__a,
12305 (__vector unsigned short)__b, 0, __cc);
12306 }
12307
12308 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)12309 vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,
12310 __vector unsigned short __b, int *__cc) {
12311 return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
12312 }
12313
12314 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)12315 vec_find_any_eq_or_0_idx_cc(__vector signed int __a,
12316 __vector signed int __b, int *__cc) {
12317 return (__vector signed int)
12318 __builtin_s390_vfaezfs((__vector unsigned int)__a,
12319 (__vector unsigned int)__b, 0, __cc);
12320 }
12321
12322 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)12323 vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,
12324 __vector __bool int __b, int *__cc) {
12325 return __builtin_s390_vfaezfs((__vector unsigned int)__a,
12326 (__vector unsigned int)__b, 0, __cc);
12327 }
12328
12329 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)12330 vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,
12331 __vector unsigned int __b, int *__cc) {
12332 return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
12333 }
12334
12335 /*-- vec_find_any_ne --------------------------------------------------------*/
12336
12337 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector signed char __a,__vector signed char __b)12338 vec_find_any_ne(__vector signed char __a, __vector signed char __b) {
12339 return (__vector __bool char)
12340 __builtin_s390_vfaeb((__vector unsigned char)__a,
12341 (__vector unsigned char)__b, 12);
12342 }
12343
12344 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector __bool char __a,__vector __bool char __b)12345 vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {
12346 return (__vector __bool char)
12347 __builtin_s390_vfaeb((__vector unsigned char)__a,
12348 (__vector unsigned char)__b, 12);
12349 }
12350
12351 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne(__vector unsigned char __a,__vector unsigned char __b)12352 vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {
12353 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);
12354 }
12355
12356 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector signed short __a,__vector signed short __b)12357 vec_find_any_ne(__vector signed short __a, __vector signed short __b) {
12358 return (__vector __bool short)
12359 __builtin_s390_vfaeh((__vector unsigned short)__a,
12360 (__vector unsigned short)__b, 12);
12361 }
12362
12363 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector __bool short __a,__vector __bool short __b)12364 vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {
12365 return (__vector __bool short)
12366 __builtin_s390_vfaeh((__vector unsigned short)__a,
12367 (__vector unsigned short)__b, 12);
12368 }
12369
12370 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne(__vector unsigned short __a,__vector unsigned short __b)12371 vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {
12372 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);
12373 }
12374
12375 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector signed int __a,__vector signed int __b)12376 vec_find_any_ne(__vector signed int __a, __vector signed int __b) {
12377 return (__vector __bool int)
12378 __builtin_s390_vfaef((__vector unsigned int)__a,
12379 (__vector unsigned int)__b, 12);
12380 }
12381
12382 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector __bool int __a,__vector __bool int __b)12383 vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {
12384 return (__vector __bool int)
12385 __builtin_s390_vfaef((__vector unsigned int)__a,
12386 (__vector unsigned int)__b, 12);
12387 }
12388
12389 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne(__vector unsigned int __a,__vector unsigned int __b)12390 vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {
12391 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);
12392 }
12393
12394 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
12395
12396 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector signed char __a,__vector signed char __b,int * __cc)12397 vec_find_any_ne_cc(__vector signed char __a,
12398 __vector signed char __b, int *__cc) {
12399 return (__vector __bool char)
12400 __builtin_s390_vfaebs((__vector unsigned char)__a,
12401 (__vector unsigned char)__b, 12, __cc);
12402 }
12403
12404 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)12405 vec_find_any_ne_cc(__vector __bool char __a,
12406 __vector __bool char __b, int *__cc) {
12407 return (__vector __bool char)
12408 __builtin_s390_vfaebs((__vector unsigned char)__a,
12409 (__vector unsigned char)__b, 12, __cc);
12410 }
12411
12412 static inline __ATTRS_o_ai __vector __bool char
vec_find_any_ne_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)12413 vec_find_any_ne_cc(__vector unsigned char __a,
12414 __vector unsigned char __b, int *__cc) {
12415 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
12416 }
12417
12418 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector signed short __a,__vector signed short __b,int * __cc)12419 vec_find_any_ne_cc(__vector signed short __a,
12420 __vector signed short __b, int *__cc) {
12421 return (__vector __bool short)
12422 __builtin_s390_vfaehs((__vector unsigned short)__a,
12423 (__vector unsigned short)__b, 12, __cc);
12424 }
12425
12426 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)12427 vec_find_any_ne_cc(__vector __bool short __a,
12428 __vector __bool short __b, int *__cc) {
12429 return (__vector __bool short)
12430 __builtin_s390_vfaehs((__vector unsigned short)__a,
12431 (__vector unsigned short)__b, 12, __cc);
12432 }
12433
12434 static inline __ATTRS_o_ai __vector __bool short
vec_find_any_ne_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)12435 vec_find_any_ne_cc(__vector unsigned short __a,
12436 __vector unsigned short __b, int *__cc) {
12437 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
12438 }
12439
12440 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector signed int __a,__vector signed int __b,int * __cc)12441 vec_find_any_ne_cc(__vector signed int __a,
12442 __vector signed int __b, int *__cc) {
12443 return (__vector __bool int)
12444 __builtin_s390_vfaefs((__vector unsigned int)__a,
12445 (__vector unsigned int)__b, 12, __cc);
12446 }
12447
12448 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)12449 vec_find_any_ne_cc(__vector __bool int __a,
12450 __vector __bool int __b, int *__cc) {
12451 return (__vector __bool int)
12452 __builtin_s390_vfaefs((__vector unsigned int)__a,
12453 (__vector unsigned int)__b, 12, __cc);
12454 }
12455
12456 static inline __ATTRS_o_ai __vector __bool int
vec_find_any_ne_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)12457 vec_find_any_ne_cc(__vector unsigned int __a,
12458 __vector unsigned int __b, int *__cc) {
12459 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
12460 }
12461
12462 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
12463
12464 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx(__vector signed char __a,__vector signed char __b)12465 vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {
12466 return (__vector signed char)
12467 __builtin_s390_vfaeb((__vector unsigned char)__a,
12468 (__vector unsigned char)__b, 8);
12469 }
12470
12471 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector __bool char __a,__vector __bool char __b)12472 vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {
12473 return __builtin_s390_vfaeb((__vector unsigned char)__a,
12474 (__vector unsigned char)__b, 8);
12475 }
12476
12477 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx(__vector unsigned char __a,__vector unsigned char __b)12478 vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {
12479 return __builtin_s390_vfaeb(__a, __b, 8);
12480 }
12481
12482 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx(__vector signed short __a,__vector signed short __b)12483 vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {
12484 return (__vector signed short)
12485 __builtin_s390_vfaeh((__vector unsigned short)__a,
12486 (__vector unsigned short)__b, 8);
12487 }
12488
12489 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector __bool short __a,__vector __bool short __b)12490 vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {
12491 return __builtin_s390_vfaeh((__vector unsigned short)__a,
12492 (__vector unsigned short)__b, 8);
12493 }
12494
12495 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx(__vector unsigned short __a,__vector unsigned short __b)12496 vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {
12497 return __builtin_s390_vfaeh(__a, __b, 8);
12498 }
12499
12500 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx(__vector signed int __a,__vector signed int __b)12501 vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {
12502 return (__vector signed int)
12503 __builtin_s390_vfaef((__vector unsigned int)__a,
12504 (__vector unsigned int)__b, 8);
12505 }
12506
12507 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector __bool int __a,__vector __bool int __b)12508 vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {
12509 return __builtin_s390_vfaef((__vector unsigned int)__a,
12510 (__vector unsigned int)__b, 8);
12511 }
12512
12513 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx(__vector unsigned int __a,__vector unsigned int __b)12514 vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {
12515 return __builtin_s390_vfaef(__a, __b, 8);
12516 }
12517
12518 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
12519
12520 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_idx_cc(__vector signed char __a,__vector signed char __b,int * __cc)12521 vec_find_any_ne_idx_cc(__vector signed char __a,
12522 __vector signed char __b, int *__cc) {
12523 return (__vector signed char)
12524 __builtin_s390_vfaebs((__vector unsigned char)__a,
12525 (__vector unsigned char)__b, 8, __cc);
12526 }
12527
12528 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector __bool char __a,__vector __bool char __b,int * __cc)12529 vec_find_any_ne_idx_cc(__vector __bool char __a,
12530 __vector __bool char __b, int *__cc) {
12531 return __builtin_s390_vfaebs((__vector unsigned char)__a,
12532 (__vector unsigned char)__b, 8, __cc);
12533 }
12534
12535 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_idx_cc(__vector unsigned char __a,__vector unsigned char __b,int * __cc)12536 vec_find_any_ne_idx_cc(__vector unsigned char __a,
12537 __vector unsigned char __b,
12538 int *__cc) {
12539 return __builtin_s390_vfaebs(__a, __b, 8, __cc);
12540 }
12541
12542 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_idx_cc(__vector signed short __a,__vector signed short __b,int * __cc)12543 vec_find_any_ne_idx_cc(__vector signed short __a,
12544 __vector signed short __b, int *__cc) {
12545 return (__vector signed short)
12546 __builtin_s390_vfaehs((__vector unsigned short)__a,
12547 (__vector unsigned short)__b, 8, __cc);
12548 }
12549
12550 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector __bool short __a,__vector __bool short __b,int * __cc)12551 vec_find_any_ne_idx_cc(__vector __bool short __a,
12552 __vector __bool short __b, int *__cc) {
12553 return __builtin_s390_vfaehs((__vector unsigned short)__a,
12554 (__vector unsigned short)__b, 8, __cc);
12555 }
12556
12557 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_idx_cc(__vector unsigned short __a,__vector unsigned short __b,int * __cc)12558 vec_find_any_ne_idx_cc(__vector unsigned short __a,
12559 __vector unsigned short __b, int *__cc) {
12560 return __builtin_s390_vfaehs(__a, __b, 8, __cc);
12561 }
12562
12563 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_idx_cc(__vector signed int __a,__vector signed int __b,int * __cc)12564 vec_find_any_ne_idx_cc(__vector signed int __a,
12565 __vector signed int __b, int *__cc) {
12566 return (__vector signed int)
12567 __builtin_s390_vfaefs((__vector unsigned int)__a,
12568 (__vector unsigned int)__b, 8, __cc);
12569 }
12570
12571 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector __bool int __a,__vector __bool int __b,int * __cc)12572 vec_find_any_ne_idx_cc(__vector __bool int __a,
12573 __vector __bool int __b, int *__cc) {
12574 return __builtin_s390_vfaefs((__vector unsigned int)__a,
12575 (__vector unsigned int)__b, 8, __cc);
12576 }
12577
12578 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_idx_cc(__vector unsigned int __a,__vector unsigned int __b,int * __cc)12579 vec_find_any_ne_idx_cc(__vector unsigned int __a,
12580 __vector unsigned int __b, int *__cc) {
12581 return __builtin_s390_vfaefs(__a, __b, 8, __cc);
12582 }
12583
12584 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
12585
12586 static inline __ATTRS_o_ai __vector signed char
vec_find_any_ne_or_0_idx(__vector signed char __a,__vector signed char __b)12587 vec_find_any_ne_or_0_idx(__vector signed char __a,
12588 __vector signed char __b) {
12589 return (__vector signed char)
12590 __builtin_s390_vfaezb((__vector unsigned char)__a,
12591 (__vector unsigned char)__b, 8);
12592 }
12593
12594 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector __bool char __a,__vector __bool char __b)12595 vec_find_any_ne_or_0_idx(__vector __bool char __a,
12596 __vector __bool char __b) {
12597 return __builtin_s390_vfaezb((__vector unsigned char)__a,
12598 (__vector unsigned char)__b, 8);
12599 }
12600
12601 static inline __ATTRS_o_ai __vector unsigned char
vec_find_any_ne_or_0_idx(__vector unsigned char __a,__vector unsigned char __b)12602 vec_find_any_ne_or_0_idx(__vector unsigned char __a,
12603 __vector unsigned char __b) {
12604 return __builtin_s390_vfaezb(__a, __b, 8);
12605 }
12606
12607 static inline __ATTRS_o_ai __vector signed short
vec_find_any_ne_or_0_idx(__vector signed short __a,__vector signed short __b)12608 vec_find_any_ne_or_0_idx(__vector signed short __a,
12609 __vector signed short __b) {
12610 return (__vector signed short)
12611 __builtin_s390_vfaezh((__vector unsigned short)__a,
12612 (__vector unsigned short)__b, 8);
12613 }
12614
12615 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector __bool short __a,__vector __bool short __b)12616 vec_find_any_ne_or_0_idx(__vector __bool short __a,
12617 __vector __bool short __b) {
12618 return __builtin_s390_vfaezh((__vector unsigned short)__a,
12619 (__vector unsigned short)__b, 8);
12620 }
12621
12622 static inline __ATTRS_o_ai __vector unsigned short
vec_find_any_ne_or_0_idx(__vector unsigned short __a,__vector unsigned short __b)12623 vec_find_any_ne_or_0_idx(__vector unsigned short __a,
12624 __vector unsigned short __b) {
12625 return __builtin_s390_vfaezh(__a, __b, 8);
12626 }
12627
12628 static inline __ATTRS_o_ai __vector signed int
vec_find_any_ne_or_0_idx(__vector signed int __a,__vector signed int __b)12629 vec_find_any_ne_or_0_idx(__vector signed int __a,
12630 __vector signed int __b) {
12631 return (__vector signed int)
12632 __builtin_s390_vfaezf((__vector unsigned int)__a,
12633 (__vector unsigned int)__b, 8);
12634 }
12635
12636 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector __bool int __a,__vector __bool int __b)12637 vec_find_any_ne_or_0_idx(__vector __bool int __a,
12638 __vector __bool int __b) {
12639 return __builtin_s390_vfaezf((__vector unsigned int)__a,
12640 (__vector unsigned int)__b, 8);
12641 }
12642
12643 static inline __ATTRS_o_ai __vector unsigned int
vec_find_any_ne_or_0_idx(__vector unsigned int __a,__vector unsigned int __b)12644 vec_find_any_ne_or_0_idx(__vector unsigned int __a,
12645 __vector unsigned int __b) {
12646 return __builtin_s390_vfaezf(__a, __b, 8);
12647 }
12648
12649 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
12650
12651 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)12652 vec_find_any_ne_or_0_idx_cc(__vector signed char __a,
12653 __vector signed char __b, int *__cc) {
12654 return (__vector signed char)
12655 __builtin_s390_vfaezbs((__vector unsigned char)__a,
12656 (__vector unsigned char)__b, 8, __cc);
12657 }
12658
12659 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)12660 vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,
12661 __vector __bool char __b, int *__cc) {
12662 return __builtin_s390_vfaezbs((__vector unsigned char)__a,
12663 (__vector unsigned char)__b, 8, __cc);
12664 }
12665
12666 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)12667 vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,
12668 __vector unsigned char __b, int *__cc) {
12669 return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
12670 }
12671
12672 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)12673 vec_find_any_ne_or_0_idx_cc(__vector signed short __a,
12674 __vector signed short __b, int *__cc) {
12675 return (__vector signed short)
12676 __builtin_s390_vfaezhs((__vector unsigned short)__a,
12677 (__vector unsigned short)__b, 8, __cc);
12678 }
12679
12680 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)12681 vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,
12682 __vector __bool short __b, int *__cc) {
12683 return __builtin_s390_vfaezhs((__vector unsigned short)__a,
12684 (__vector unsigned short)__b, 8, __cc);
12685 }
12686
12687 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)12688 vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,
12689 __vector unsigned short __b, int *__cc) {
12690 return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
12691 }
12692
12693 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)12694 vec_find_any_ne_or_0_idx_cc(__vector signed int __a,
12695 __vector signed int __b, int *__cc) {
12696 return (__vector signed int)
12697 __builtin_s390_vfaezfs((__vector unsigned int)__a,
12698 (__vector unsigned int)__b, 8, __cc);
12699 }
12700
12701 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)12702 vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,
12703 __vector __bool int __b, int *__cc) {
12704 return __builtin_s390_vfaezfs((__vector unsigned int)__a,
12705 (__vector unsigned int)__b, 8, __cc);
12706 }
12707
12708 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)12709 vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,
12710 __vector unsigned int __b, int *__cc) {
12711 return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
12712 }
12713
12714 /*-- vec_search_string_cc ---------------------------------------------------*/
12715
12716 #if __ARCH__ >= 13
12717
12718 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)12719 vec_search_string_cc(__vector signed char __a, __vector signed char __b,
12720 __vector unsigned char __c, int *__cc) {
12721 return __builtin_s390_vstrsb((__vector unsigned char)__a,
12722 (__vector unsigned char)__b, __c, __cc);
12723 }
12724
12725 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)12726 vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,
12727 __vector unsigned char __c, int *__cc) {
12728 return __builtin_s390_vstrsb((__vector unsigned char)__a,
12729 (__vector unsigned char)__b, __c, __cc);
12730 }
12731
12732 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)12733 vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,
12734 __vector unsigned char __c, int *__cc) {
12735 return __builtin_s390_vstrsb(__a, __b, __c, __cc);
12736 }
12737
12738 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)12739 vec_search_string_cc(__vector signed short __a, __vector signed short __b,
12740 __vector unsigned char __c, int *__cc) {
12741 return __builtin_s390_vstrsh((__vector unsigned short)__a,
12742 (__vector unsigned short)__b, __c, __cc);
12743 }
12744
12745 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)12746 vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,
12747 __vector unsigned char __c, int *__cc) {
12748 return __builtin_s390_vstrsh((__vector unsigned short)__a,
12749 (__vector unsigned short)__b, __c, __cc);
12750 }
12751
12752 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)12753 vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,
12754 __vector unsigned char __c, int *__cc) {
12755 return __builtin_s390_vstrsh(__a, __b, __c, __cc);
12756 }
12757
12758 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)12759 vec_search_string_cc(__vector signed int __a, __vector signed int __b,
12760 __vector unsigned char __c, int *__cc) {
12761 return __builtin_s390_vstrsf((__vector unsigned int)__a,
12762 (__vector unsigned int)__b, __c, __cc);
12763 }
12764
12765 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)12766 vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,
12767 __vector unsigned char __c, int *__cc) {
12768 return __builtin_s390_vstrsf((__vector unsigned int)__a,
12769 (__vector unsigned int)__b, __c, __cc);
12770 }
12771
12772 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)12773 vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,
12774 __vector unsigned char __c, int *__cc) {
12775 return __builtin_s390_vstrsf(__a, __b, __c, __cc);
12776 }
12777
12778 #endif
12779
12780 /*-- vec_search_string_until_zero_cc ----------------------------------------*/
12781
12782 #if __ARCH__ >= 13
12783
12784 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)12785 vec_search_string_until_zero_cc(__vector signed char __a,
12786 __vector signed char __b,
12787 __vector unsigned char __c, int *__cc) {
12788 return __builtin_s390_vstrszb((__vector unsigned char)__a,
12789 (__vector unsigned char)__b, __c, __cc);
12790 }
12791
12792 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)12793 vec_search_string_until_zero_cc(__vector __bool char __a,
12794 __vector __bool char __b,
12795 __vector unsigned char __c, int *__cc) {
12796 return __builtin_s390_vstrszb((__vector unsigned char)__a,
12797 (__vector unsigned char)__b, __c, __cc);
12798 }
12799
12800 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)12801 vec_search_string_until_zero_cc(__vector unsigned char __a,
12802 __vector unsigned char __b,
12803 __vector unsigned char __c, int *__cc) {
12804 return __builtin_s390_vstrszb(__a, __b, __c, __cc);
12805 }
12806
12807 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)12808 vec_search_string_until_zero_cc(__vector signed short __a,
12809 __vector signed short __b,
12810 __vector unsigned char __c, int *__cc) {
12811 return __builtin_s390_vstrszh((__vector unsigned short)__a,
12812 (__vector unsigned short)__b, __c, __cc);
12813 }
12814
12815 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)12816 vec_search_string_until_zero_cc(__vector __bool short __a,
12817 __vector __bool short __b,
12818 __vector unsigned char __c, int *__cc) {
12819 return __builtin_s390_vstrszh((__vector unsigned short)__a,
12820 (__vector unsigned short)__b, __c, __cc);
12821 }
12822
12823 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)12824 vec_search_string_until_zero_cc(__vector unsigned short __a,
12825 __vector unsigned short __b,
12826 __vector unsigned char __c, int *__cc) {
12827 return __builtin_s390_vstrszh(__a, __b, __c, __cc);
12828 }
12829
12830 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)12831 vec_search_string_until_zero_cc(__vector signed int __a,
12832 __vector signed int __b,
12833 __vector unsigned char __c, int *__cc) {
12834 return __builtin_s390_vstrszf((__vector unsigned int)__a,
12835 (__vector unsigned int)__b, __c, __cc);
12836 }
12837
12838 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)12839 vec_search_string_until_zero_cc(__vector __bool int __a,
12840 __vector __bool int __b,
12841 __vector unsigned char __c, int *__cc) {
12842 return __builtin_s390_vstrszf((__vector unsigned int)__a,
12843 (__vector unsigned int)__b, __c, __cc);
12844 }
12845
12846 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)12847 vec_search_string_until_zero_cc(__vector unsigned int __a,
12848 __vector unsigned int __b,
12849 __vector unsigned char __c, int *__cc) {
12850 return __builtin_s390_vstrszf(__a, __b, __c, __cc);
12851 }
12852
12853 #endif
12854
12855 #undef __constant_pow2_range
12856 #undef __constant_range
12857 #undef __constant
12858 #undef __ATTRS_o
12859 #undef __ATTRS_o_ai
12860 #undef __ATTRS_ai
12861
12862 #else
12863
12864 #error "Use -fzvector to enable vector extensions"
12865
12866 #endif
12867
12868 #endif /* _VECINTRIN_H */
12869