1 /*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 * copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions:
9 *
10 * The above copyright notice and this permission notice shall be included in
11 * all copies or substantial portions of the Software.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 * THE SOFTWARE.
20 *
21 *===-----------------------------------------------------------------------===
22 */
23
24 #if defined(__s390x__) && defined(__VEC__)
25
26 #define __ATTRS_ai __attribute__((__always_inline__))
27 #define __ATTRS_o __attribute__((__overloadable__))
28 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
29
30 #define __constant(PARM) \
31 __attribute__((__enable_if__ ((PARM) == (PARM), \
32 "argument must be a constant integer")))
33 #define __constant_range(PARM, LOW, HIGH) \
34 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
35 "argument must be a constant integer from " #LOW " to " #HIGH)))
36 #define __constant_pow2_range(PARM, LOW, HIGH) \
37 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
38 ((PARM) & ((PARM) - 1)) == 0, \
39 "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
40
41 /*-- __lcbb -----------------------------------------------------------------*/
42
43 extern __ATTRS_o unsigned int
44 __lcbb(const void *__ptr, unsigned short __len)
45 __constant_pow2_range(__len, 64, 4096);
46
47 #define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \
48 __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \
49 ((Y) == 64 ? 0 : \
50 (Y) == 128 ? 1 : \
51 (Y) == 256 ? 2 : \
52 (Y) == 512 ? 3 : \
53 (Y) == 1024 ? 4 : \
54 (Y) == 2048 ? 5 : \
55 (Y) == 4096 ? 6 : 0) : 0))
56
57 /*-- vec_extract ------------------------------------------------------------*/
58
59 static inline __ATTRS_o_ai signed char
vec_extract(vector signed char __vec,int __index)60 vec_extract(vector signed char __vec, int __index) {
61 return __vec[__index & 15];
62 }
63
64 static inline __ATTRS_o_ai unsigned char
vec_extract(vector bool char __vec,int __index)65 vec_extract(vector bool char __vec, int __index) {
66 return __vec[__index & 15];
67 }
68
69 static inline __ATTRS_o_ai unsigned char
vec_extract(vector unsigned char __vec,int __index)70 vec_extract(vector unsigned char __vec, int __index) {
71 return __vec[__index & 15];
72 }
73
74 static inline __ATTRS_o_ai signed short
vec_extract(vector signed short __vec,int __index)75 vec_extract(vector signed short __vec, int __index) {
76 return __vec[__index & 7];
77 }
78
79 static inline __ATTRS_o_ai unsigned short
vec_extract(vector bool short __vec,int __index)80 vec_extract(vector bool short __vec, int __index) {
81 return __vec[__index & 7];
82 }
83
84 static inline __ATTRS_o_ai unsigned short
vec_extract(vector unsigned short __vec,int __index)85 vec_extract(vector unsigned short __vec, int __index) {
86 return __vec[__index & 7];
87 }
88
89 static inline __ATTRS_o_ai signed int
vec_extract(vector signed int __vec,int __index)90 vec_extract(vector signed int __vec, int __index) {
91 return __vec[__index & 3];
92 }
93
94 static inline __ATTRS_o_ai unsigned int
vec_extract(vector bool int __vec,int __index)95 vec_extract(vector bool int __vec, int __index) {
96 return __vec[__index & 3];
97 }
98
99 static inline __ATTRS_o_ai unsigned int
vec_extract(vector unsigned int __vec,int __index)100 vec_extract(vector unsigned int __vec, int __index) {
101 return __vec[__index & 3];
102 }
103
104 static inline __ATTRS_o_ai signed long long
vec_extract(vector signed long long __vec,int __index)105 vec_extract(vector signed long long __vec, int __index) {
106 return __vec[__index & 1];
107 }
108
109 static inline __ATTRS_o_ai unsigned long long
vec_extract(vector bool long long __vec,int __index)110 vec_extract(vector bool long long __vec, int __index) {
111 return __vec[__index & 1];
112 }
113
114 static inline __ATTRS_o_ai unsigned long long
vec_extract(vector unsigned long long __vec,int __index)115 vec_extract(vector unsigned long long __vec, int __index) {
116 return __vec[__index & 1];
117 }
118
119 #if __ARCH__ >= 12
120 static inline __ATTRS_o_ai float
vec_extract(vector float __vec,int __index)121 vec_extract(vector float __vec, int __index) {
122 return __vec[__index & 3];
123 }
124 #endif
125
126 static inline __ATTRS_o_ai double
vec_extract(vector double __vec,int __index)127 vec_extract(vector double __vec, int __index) {
128 return __vec[__index & 1];
129 }
130
131 /*-- vec_insert -------------------------------------------------------------*/
132
133 static inline __ATTRS_o_ai vector signed char
vec_insert(signed char __scalar,vector signed char __vec,int __index)134 vec_insert(signed char __scalar, vector signed char __vec, int __index) {
135 __vec[__index & 15] = __scalar;
136 return __vec;
137 }
138
139 // This prototype is deprecated.
140 static inline __ATTRS_o_ai vector unsigned char
vec_insert(unsigned char __scalar,vector bool char __vec,int __index)141 vec_insert(unsigned char __scalar, vector bool char __vec, int __index) {
142 vector unsigned char __newvec = (vector unsigned char)__vec;
143 __newvec[__index & 15] = (unsigned char)__scalar;
144 return __newvec;
145 }
146
147 static inline __ATTRS_o_ai vector unsigned char
vec_insert(unsigned char __scalar,vector unsigned char __vec,int __index)148 vec_insert(unsigned char __scalar, vector unsigned char __vec, int __index) {
149 __vec[__index & 15] = __scalar;
150 return __vec;
151 }
152
153 static inline __ATTRS_o_ai vector signed short
vec_insert(signed short __scalar,vector signed short __vec,int __index)154 vec_insert(signed short __scalar, vector signed short __vec, int __index) {
155 __vec[__index & 7] = __scalar;
156 return __vec;
157 }
158
159 // This prototype is deprecated.
160 static inline __ATTRS_o_ai vector unsigned short
vec_insert(unsigned short __scalar,vector bool short __vec,int __index)161 vec_insert(unsigned short __scalar, vector bool short __vec, int __index) {
162 vector unsigned short __newvec = (vector unsigned short)__vec;
163 __newvec[__index & 7] = (unsigned short)__scalar;
164 return __newvec;
165 }
166
167 static inline __ATTRS_o_ai vector unsigned short
vec_insert(unsigned short __scalar,vector unsigned short __vec,int __index)168 vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) {
169 __vec[__index & 7] = __scalar;
170 return __vec;
171 }
172
173 static inline __ATTRS_o_ai vector signed int
vec_insert(signed int __scalar,vector signed int __vec,int __index)174 vec_insert(signed int __scalar, vector signed int __vec, int __index) {
175 __vec[__index & 3] = __scalar;
176 return __vec;
177 }
178
179 // This prototype is deprecated.
180 static inline __ATTRS_o_ai vector unsigned int
vec_insert(unsigned int __scalar,vector bool int __vec,int __index)181 vec_insert(unsigned int __scalar, vector bool int __vec, int __index) {
182 vector unsigned int __newvec = (vector unsigned int)__vec;
183 __newvec[__index & 3] = __scalar;
184 return __newvec;
185 }
186
187 static inline __ATTRS_o_ai vector unsigned int
vec_insert(unsigned int __scalar,vector unsigned int __vec,int __index)188 vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) {
189 __vec[__index & 3] = __scalar;
190 return __vec;
191 }
192
193 static inline __ATTRS_o_ai vector signed long long
vec_insert(signed long long __scalar,vector signed long long __vec,int __index)194 vec_insert(signed long long __scalar, vector signed long long __vec,
195 int __index) {
196 __vec[__index & 1] = __scalar;
197 return __vec;
198 }
199
200 // This prototype is deprecated.
201 static inline __ATTRS_o_ai vector unsigned long long
vec_insert(unsigned long long __scalar,vector bool long long __vec,int __index)202 vec_insert(unsigned long long __scalar, vector bool long long __vec,
203 int __index) {
204 vector unsigned long long __newvec = (vector unsigned long long)__vec;
205 __newvec[__index & 1] = __scalar;
206 return __newvec;
207 }
208
209 static inline __ATTRS_o_ai vector unsigned long long
vec_insert(unsigned long long __scalar,vector unsigned long long __vec,int __index)210 vec_insert(unsigned long long __scalar, vector unsigned long long __vec,
211 int __index) {
212 __vec[__index & 1] = __scalar;
213 return __vec;
214 }
215
216 #if __ARCH__ >= 12
217 static inline __ATTRS_o_ai vector float
vec_insert(float __scalar,vector float __vec,int __index)218 vec_insert(float __scalar, vector float __vec, int __index) {
219 __vec[__index & 1] = __scalar;
220 return __vec;
221 }
222 #endif
223
224 static inline __ATTRS_o_ai vector double
vec_insert(double __scalar,vector double __vec,int __index)225 vec_insert(double __scalar, vector double __vec, int __index) {
226 __vec[__index & 1] = __scalar;
227 return __vec;
228 }
229
230 /*-- vec_promote ------------------------------------------------------------*/
231
232 static inline __ATTRS_o_ai vector signed char
vec_promote(signed char __scalar,int __index)233 vec_promote(signed char __scalar, int __index) {
234 const vector signed char __zero = (vector signed char)0;
235 vector signed 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 unsigned char
vec_promote(unsigned char __scalar,int __index)242 vec_promote(unsigned char __scalar, int __index) {
243 const vector unsigned char __zero = (vector unsigned char)0;
244 vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
246 __vec[__index & 15] = __scalar;
247 return __vec;
248 }
249
250 static inline __ATTRS_o_ai vector signed short
vec_promote(signed short __scalar,int __index)251 vec_promote(signed short __scalar, int __index) {
252 const vector signed short __zero = (vector signed short)0;
253 vector signed 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 unsigned short
vec_promote(unsigned short __scalar,int __index)260 vec_promote(unsigned short __scalar, int __index) {
261 const vector unsigned short __zero = (vector unsigned short)0;
262 vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
263 -1, -1, -1, -1, -1, -1, -1, -1);
264 __vec[__index & 7] = __scalar;
265 return __vec;
266 }
267
268 static inline __ATTRS_o_ai vector signed int
vec_promote(signed int __scalar,int __index)269 vec_promote(signed int __scalar, int __index) {
270 const vector signed int __zero = (vector signed int)0;
271 vector signed 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 unsigned int
vec_promote(unsigned int __scalar,int __index)278 vec_promote(unsigned int __scalar, int __index) {
279 const vector unsigned int __zero = (vector unsigned int)0;
280 vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
281 -1, -1, -1, -1);
282 __vec[__index & 3] = __scalar;
283 return __vec;
284 }
285
286 static inline __ATTRS_o_ai vector signed long long
vec_promote(signed long long __scalar,int __index)287 vec_promote(signed long long __scalar, int __index) {
288 const vector signed long long __zero = (vector signed long long)0;
289 vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
290 -1, -1);
291 __vec[__index & 1] = __scalar;
292 return __vec;
293 }
294
295 static inline __ATTRS_o_ai vector unsigned long long
vec_promote(unsigned long long __scalar,int __index)296 vec_promote(unsigned long long __scalar, int __index) {
297 const vector unsigned long long __zero = (vector unsigned long long)0;
298 vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
299 -1, -1);
300 __vec[__index & 1] = __scalar;
301 return __vec;
302 }
303
304 #if __ARCH__ >= 12
305 static inline __ATTRS_o_ai vector float
vec_promote(float __scalar,int __index)306 vec_promote(float __scalar, int __index) {
307 const vector float __zero = (vector float)0;
308 vector float __vec = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1);
309 __vec[__index & 3] = __scalar;
310 return __vec;
311 }
312 #endif
313
314 static inline __ATTRS_o_ai vector double
vec_promote(double __scalar,int __index)315 vec_promote(double __scalar, int __index) {
316 const vector double __zero = (vector double)0;
317 vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
318 __vec[__index & 1] = __scalar;
319 return __vec;
320 }
321
322 /*-- vec_insert_and_zero ----------------------------------------------------*/
323
324 static inline __ATTRS_o_ai vector signed char
vec_insert_and_zero(const signed char * __ptr)325 vec_insert_and_zero(const signed char *__ptr) {
326 vector signed char __vec = (vector signed char)0;
327 __vec[7] = *__ptr;
328 return __vec;
329 }
330
331 static inline __ATTRS_o_ai vector unsigned char
vec_insert_and_zero(const unsigned char * __ptr)332 vec_insert_and_zero(const unsigned char *__ptr) {
333 vector unsigned char __vec = (vector unsigned char)0;
334 __vec[7] = *__ptr;
335 return __vec;
336 }
337
338 static inline __ATTRS_o_ai vector signed short
vec_insert_and_zero(const signed short * __ptr)339 vec_insert_and_zero(const signed short *__ptr) {
340 vector signed short __vec = (vector signed short)0;
341 __vec[3] = *__ptr;
342 return __vec;
343 }
344
345 static inline __ATTRS_o_ai vector unsigned short
vec_insert_and_zero(const unsigned short * __ptr)346 vec_insert_and_zero(const unsigned short *__ptr) {
347 vector unsigned short __vec = (vector unsigned short)0;
348 __vec[3] = *__ptr;
349 return __vec;
350 }
351
352 static inline __ATTRS_o_ai vector signed int
vec_insert_and_zero(const signed int * __ptr)353 vec_insert_and_zero(const signed int *__ptr) {
354 vector signed int __vec = (vector signed int)0;
355 __vec[1] = *__ptr;
356 return __vec;
357 }
358
359 static inline __ATTRS_o_ai vector unsigned int
vec_insert_and_zero(const unsigned int * __ptr)360 vec_insert_and_zero(const unsigned int *__ptr) {
361 vector unsigned int __vec = (vector unsigned int)0;
362 __vec[1] = *__ptr;
363 return __vec;
364 }
365
366 static inline __ATTRS_o_ai vector signed long long
vec_insert_and_zero(const signed long long * __ptr)367 vec_insert_and_zero(const signed long long *__ptr) {
368 vector signed long long __vec = (vector signed long long)0;
369 __vec[0] = *__ptr;
370 return __vec;
371 }
372
373 static inline __ATTRS_o_ai vector unsigned long long
vec_insert_and_zero(const unsigned long long * __ptr)374 vec_insert_and_zero(const unsigned long long *__ptr) {
375 vector unsigned long long __vec = (vector unsigned long long)0;
376 __vec[0] = *__ptr;
377 return __vec;
378 }
379
380 #if __ARCH__ >= 12
381 static inline __ATTRS_o_ai vector float
vec_insert_and_zero(const float * __ptr)382 vec_insert_and_zero(const float *__ptr) {
383 vector float __vec = (vector float)0;
384 __vec[1] = *__ptr;
385 return __vec;
386 }
387 #endif
388
389 static inline __ATTRS_o_ai vector double
vec_insert_and_zero(const double * __ptr)390 vec_insert_and_zero(const double *__ptr) {
391 vector double __vec = (vector double)0;
392 __vec[0] = *__ptr;
393 return __vec;
394 }
395
396 /*-- vec_perm ---------------------------------------------------------------*/
397
398 static inline __ATTRS_o_ai vector signed char
vec_perm(vector signed char __a,vector signed char __b,vector unsigned char __c)399 vec_perm(vector signed char __a, vector signed char __b,
400 vector unsigned char __c) {
401 return (vector signed char)__builtin_s390_vperm(
402 (vector unsigned char)__a, (vector unsigned char)__b, __c);
403 }
404
405 static inline __ATTRS_o_ai vector unsigned char
vec_perm(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)406 vec_perm(vector unsigned char __a, vector unsigned char __b,
407 vector unsigned char __c) {
408 return (vector unsigned char)__builtin_s390_vperm(
409 (vector unsigned char)__a, (vector unsigned char)__b, __c);
410 }
411
412 static inline __ATTRS_o_ai vector bool char
vec_perm(vector bool char __a,vector bool char __b,vector unsigned char __c)413 vec_perm(vector bool char __a, vector bool char __b,
414 vector unsigned char __c) {
415 return (vector bool char)__builtin_s390_vperm(
416 (vector unsigned char)__a, (vector unsigned char)__b, __c);
417 }
418
419 static inline __ATTRS_o_ai vector signed short
vec_perm(vector signed short __a,vector signed short __b,vector unsigned char __c)420 vec_perm(vector signed short __a, vector signed short __b,
421 vector unsigned char __c) {
422 return (vector signed short)__builtin_s390_vperm(
423 (vector unsigned char)__a, (vector unsigned char)__b, __c);
424 }
425
426 static inline __ATTRS_o_ai vector unsigned short
vec_perm(vector unsigned short __a,vector unsigned short __b,vector unsigned char __c)427 vec_perm(vector unsigned short __a, vector unsigned short __b,
428 vector unsigned char __c) {
429 return (vector unsigned short)__builtin_s390_vperm(
430 (vector unsigned char)__a, (vector unsigned char)__b, __c);
431 }
432
433 static inline __ATTRS_o_ai vector bool short
vec_perm(vector bool short __a,vector bool short __b,vector unsigned char __c)434 vec_perm(vector bool short __a, vector bool short __b,
435 vector unsigned char __c) {
436 return (vector bool short)__builtin_s390_vperm(
437 (vector unsigned char)__a, (vector unsigned char)__b, __c);
438 }
439
440 static inline __ATTRS_o_ai vector signed int
vec_perm(vector signed int __a,vector signed int __b,vector unsigned char __c)441 vec_perm(vector signed int __a, vector signed int __b,
442 vector unsigned char __c) {
443 return (vector signed int)__builtin_s390_vperm(
444 (vector unsigned char)__a, (vector unsigned char)__b, __c);
445 }
446
447 static inline __ATTRS_o_ai vector unsigned int
vec_perm(vector unsigned int __a,vector unsigned int __b,vector unsigned char __c)448 vec_perm(vector unsigned int __a, vector unsigned int __b,
449 vector unsigned char __c) {
450 return (vector unsigned int)__builtin_s390_vperm(
451 (vector unsigned char)__a, (vector unsigned char)__b, __c);
452 }
453
454 static inline __ATTRS_o_ai vector bool int
vec_perm(vector bool int __a,vector bool int __b,vector unsigned char __c)455 vec_perm(vector bool int __a, vector bool int __b,
456 vector unsigned char __c) {
457 return (vector bool int)__builtin_s390_vperm(
458 (vector unsigned char)__a, (vector unsigned char)__b, __c);
459 }
460
461 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)462 vec_perm(vector signed long long __a, vector signed long long __b,
463 vector unsigned char __c) {
464 return (vector signed long long)__builtin_s390_vperm(
465 (vector unsigned char)__a, (vector unsigned char)__b, __c);
466 }
467
468 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)469 vec_perm(vector unsigned long long __a, vector unsigned long long __b,
470 vector unsigned char __c) {
471 return (vector unsigned long long)__builtin_s390_vperm(
472 (vector unsigned char)__a, (vector unsigned char)__b, __c);
473 }
474
475 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)476 vec_perm(vector bool long long __a, vector bool long long __b,
477 vector unsigned char __c) {
478 return (vector bool long long)__builtin_s390_vperm(
479 (vector unsigned char)__a, (vector unsigned char)__b, __c);
480 }
481
482 #if __ARCH__ >= 12
483 static inline __ATTRS_o_ai vector float
vec_perm(vector float __a,vector float __b,vector unsigned char __c)484 vec_perm(vector float __a, vector float __b,
485 vector unsigned char __c) {
486 return (vector float)__builtin_s390_vperm(
487 (vector unsigned char)__a, (vector unsigned char)__b, __c);
488 }
489 #endif
490
491 static inline __ATTRS_o_ai vector double
vec_perm(vector double __a,vector double __b,vector unsigned char __c)492 vec_perm(vector double __a, vector double __b,
493 vector unsigned char __c) {
494 return (vector double)__builtin_s390_vperm(
495 (vector unsigned char)__a, (vector unsigned char)__b, __c);
496 }
497
498 /*-- vec_permi --------------------------------------------------------------*/
499
500 // This prototype is deprecated.
501 extern __ATTRS_o vector signed long long
502 vec_permi(vector signed long long __a, vector signed long long __b, int __c)
503 __constant_range(__c, 0, 3);
504
505 // This prototype is deprecated.
506 extern __ATTRS_o vector unsigned long long
507 vec_permi(vector unsigned long long __a, vector unsigned long long __b, int __c)
508 __constant_range(__c, 0, 3);
509
510 // This prototype is deprecated.
511 extern __ATTRS_o vector bool long long
512 vec_permi(vector bool long long __a, vector bool long long __b, int __c)
513 __constant_range(__c, 0, 3);
514
515 // This prototype is deprecated.
516 extern __ATTRS_o vector double
517 vec_permi(vector double __a, vector double __b, int __c)
518 __constant_range(__c, 0, 3);
519
520 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
521 __builtin_s390_vpdi((vector unsigned long long)(X), \
522 (vector unsigned long long)(Y), \
523 (((Z) & 2) << 1) | ((Z) & 1)))
524
525 /*-- vec_bperm_u128 ---------------------------------------------------------*/
526
527 #if __ARCH__ >= 12
528 static inline __ATTRS_ai vector unsigned long long
vec_bperm_u128(vector unsigned char __a,vector unsigned char __b)529 vec_bperm_u128(vector unsigned char __a, vector unsigned char __b) {
530 return __builtin_s390_vbperm(__a, __b);
531 }
532 #endif
533
534 /*-- vec_sel ----------------------------------------------------------------*/
535
536 static inline __ATTRS_o_ai vector signed char
vec_sel(vector signed char __a,vector signed char __b,vector unsigned char __c)537 vec_sel(vector signed char __a, vector signed char __b,
538 vector unsigned char __c) {
539 return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
540 }
541
542 static inline __ATTRS_o_ai vector signed char
vec_sel(vector signed char __a,vector signed char __b,vector bool char __c)543 vec_sel(vector signed char __a, vector signed char __b, vector bool char __c) {
544 return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
545 }
546
547 static inline __ATTRS_o_ai vector bool char
vec_sel(vector bool char __a,vector bool char __b,vector unsigned char __c)548 vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) {
549 return ((vector bool char)__c & __b) | (~(vector bool char)__c & __a);
550 }
551
552 static inline __ATTRS_o_ai vector bool char
vec_sel(vector bool char __a,vector bool char __b,vector bool char __c)553 vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) {
554 return (__c & __b) | (~__c & __a);
555 }
556
557 static inline __ATTRS_o_ai vector unsigned char
vec_sel(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)558 vec_sel(vector unsigned char __a, vector unsigned char __b,
559 vector unsigned char __c) {
560 return (__c & __b) | (~__c & __a);
561 }
562
563 static inline __ATTRS_o_ai vector unsigned char
vec_sel(vector unsigned char __a,vector unsigned char __b,vector bool char __c)564 vec_sel(vector unsigned char __a, vector unsigned char __b,
565 vector bool char __c) {
566 return ((vector unsigned char)__c & __b) | (~(vector unsigned char)__c & __a);
567 }
568
569 static inline __ATTRS_o_ai vector signed short
vec_sel(vector signed short __a,vector signed short __b,vector unsigned short __c)570 vec_sel(vector signed short __a, vector signed short __b,
571 vector unsigned short __c) {
572 return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
573 }
574
575 static inline __ATTRS_o_ai vector signed short
vec_sel(vector signed short __a,vector signed short __b,vector bool short __c)576 vec_sel(vector signed short __a, vector signed short __b,
577 vector bool short __c) {
578 return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
579 }
580
581 static inline __ATTRS_o_ai vector bool short
vec_sel(vector bool short __a,vector bool short __b,vector unsigned short __c)582 vec_sel(vector bool short __a, vector bool short __b,
583 vector unsigned short __c) {
584 return ((vector bool short)__c & __b) | (~(vector bool short)__c & __a);
585 }
586
587 static inline __ATTRS_o_ai vector bool short
vec_sel(vector bool short __a,vector bool short __b,vector bool short __c)588 vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) {
589 return (__c & __b) | (~__c & __a);
590 }
591
592 static inline __ATTRS_o_ai vector unsigned short
vec_sel(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)593 vec_sel(vector unsigned short __a, vector unsigned short __b,
594 vector unsigned short __c) {
595 return (__c & __b) | (~__c & __a);
596 }
597
598 static inline __ATTRS_o_ai vector unsigned short
vec_sel(vector unsigned short __a,vector unsigned short __b,vector bool short __c)599 vec_sel(vector unsigned short __a, vector unsigned short __b,
600 vector bool short __c) {
601 return (((vector unsigned short)__c & __b) |
602 (~(vector unsigned short)__c & __a));
603 }
604
605 static inline __ATTRS_o_ai vector signed int
vec_sel(vector signed int __a,vector signed int __b,vector unsigned int __c)606 vec_sel(vector signed int __a, vector signed int __b,
607 vector unsigned int __c) {
608 return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
609 }
610
611 static inline __ATTRS_o_ai vector signed int
vec_sel(vector signed int __a,vector signed int __b,vector bool int __c)612 vec_sel(vector signed int __a, vector signed int __b, vector bool int __c) {
613 return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
614 }
615
616 static inline __ATTRS_o_ai vector bool int
vec_sel(vector bool int __a,vector bool int __b,vector unsigned int __c)617 vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) {
618 return ((vector bool int)__c & __b) | (~(vector bool int)__c & __a);
619 }
620
621 static inline __ATTRS_o_ai vector bool int
vec_sel(vector bool int __a,vector bool int __b,vector bool int __c)622 vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) {
623 return (__c & __b) | (~__c & __a);
624 }
625
626 static inline __ATTRS_o_ai vector unsigned int
vec_sel(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)627 vec_sel(vector unsigned int __a, vector unsigned int __b,
628 vector unsigned int __c) {
629 return (__c & __b) | (~__c & __a);
630 }
631
632 static inline __ATTRS_o_ai vector unsigned int
vec_sel(vector unsigned int __a,vector unsigned int __b,vector bool int __c)633 vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) {
634 return ((vector unsigned int)__c & __b) | (~(vector unsigned int)__c & __a);
635 }
636
637 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)638 vec_sel(vector signed long long __a, vector signed long long __b,
639 vector unsigned long long __c) {
640 return (((vector signed long long)__c & __b) |
641 (~(vector signed long long)__c & __a));
642 }
643
644 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)645 vec_sel(vector signed long long __a, vector signed long long __b,
646 vector bool long long __c) {
647 return (((vector signed long long)__c & __b) |
648 (~(vector signed long long)__c & __a));
649 }
650
651 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)652 vec_sel(vector bool long long __a, vector bool long long __b,
653 vector unsigned long long __c) {
654 return (((vector bool long long)__c & __b) |
655 (~(vector bool long long)__c & __a));
656 }
657
658 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)659 vec_sel(vector bool long long __a, vector bool long long __b,
660 vector bool long long __c) {
661 return (__c & __b) | (~__c & __a);
662 }
663
664 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)665 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
666 vector unsigned long long __c) {
667 return (__c & __b) | (~__c & __a);
668 }
669
670 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)671 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
672 vector bool long long __c) {
673 return (((vector unsigned long long)__c & __b) |
674 (~(vector unsigned long long)__c & __a));
675 }
676
677 #if __ARCH__ >= 12
678 static inline __ATTRS_o_ai vector float
vec_sel(vector float __a,vector float __b,vector unsigned int __c)679 vec_sel(vector float __a, vector float __b, vector unsigned int __c) {
680 return (vector float)((__c & (vector unsigned int)__b) |
681 (~__c & (vector unsigned int)__a));
682 }
683
684 static inline __ATTRS_o_ai vector float
vec_sel(vector float __a,vector float __b,vector bool int __c)685 vec_sel(vector float __a, vector float __b, vector bool int __c) {
686 vector unsigned int __ac = (vector unsigned int)__a;
687 vector unsigned int __bc = (vector unsigned int)__b;
688 vector unsigned int __cc = (vector unsigned int)__c;
689 return (vector float)((__cc & __bc) | (~__cc & __ac));
690 }
691 #endif
692
693 static inline __ATTRS_o_ai vector double
vec_sel(vector double __a,vector double __b,vector unsigned long long __c)694 vec_sel(vector double __a, vector double __b, vector unsigned long long __c) {
695 return (vector double)((__c & (vector unsigned long long)__b) |
696 (~__c & (vector unsigned long long)__a));
697 }
698
699 static inline __ATTRS_o_ai vector double
vec_sel(vector double __a,vector double __b,vector bool long long __c)700 vec_sel(vector double __a, vector double __b, vector bool long long __c) {
701 vector unsigned long long __ac = (vector unsigned long long)__a;
702 vector unsigned long long __bc = (vector unsigned long long)__b;
703 vector unsigned long long __cc = (vector unsigned long long)__c;
704 return (vector double)((__cc & __bc) | (~__cc & __ac));
705 }
706
707 /*-- vec_gather_element -----------------------------------------------------*/
708
709 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)710 vec_gather_element(vector signed int __vec, vector unsigned int __offset,
711 const signed int *__ptr, int __index)
712 __constant_range(__index, 0, 3) {
713 __vec[__index] = *(const signed int *)(
714 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
715 return __vec;
716 }
717
718 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)719 vec_gather_element(vector bool int __vec, vector unsigned int __offset,
720 const unsigned int *__ptr, int __index)
721 __constant_range(__index, 0, 3) {
722 __vec[__index] = *(const unsigned int *)(
723 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
724 return __vec;
725 }
726
727 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)728 vec_gather_element(vector unsigned int __vec, vector unsigned int __offset,
729 const unsigned int *__ptr, int __index)
730 __constant_range(__index, 0, 3) {
731 __vec[__index] = *(const unsigned int *)(
732 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
733 return __vec;
734 }
735
736 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)737 vec_gather_element(vector signed long long __vec,
738 vector unsigned long long __offset,
739 const signed long long *__ptr, int __index)
740 __constant_range(__index, 0, 1) {
741 __vec[__index] = *(const signed long long *)(
742 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
743 return __vec;
744 }
745
746 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)747 vec_gather_element(vector bool long long __vec,
748 vector unsigned long long __offset,
749 const unsigned long long *__ptr, int __index)
750 __constant_range(__index, 0, 1) {
751 __vec[__index] = *(const unsigned long long *)(
752 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
753 return __vec;
754 }
755
756 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)757 vec_gather_element(vector unsigned long long __vec,
758 vector unsigned long long __offset,
759 const unsigned long long *__ptr, int __index)
760 __constant_range(__index, 0, 1) {
761 __vec[__index] = *(const unsigned long long *)(
762 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
763 return __vec;
764 }
765
766 #if __ARCH__ >= 12
767 static inline __ATTRS_o_ai vector float
vec_gather_element(vector float __vec,vector unsigned int __offset,const float * __ptr,int __index)768 vec_gather_element(vector float __vec, vector unsigned int __offset,
769 const float *__ptr, int __index)
770 __constant_range(__index, 0, 3) {
771 __vec[__index] = *(const float *)(
772 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
773 return __vec;
774 }
775 #endif
776
777 static inline __ATTRS_o_ai vector double
vec_gather_element(vector double __vec,vector unsigned long long __offset,const double * __ptr,int __index)778 vec_gather_element(vector double __vec, vector unsigned long long __offset,
779 const double *__ptr, int __index)
780 __constant_range(__index, 0, 1) {
781 __vec[__index] = *(const double *)(
782 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
783 return __vec;
784 }
785
786 /*-- vec_scatter_element ----------------------------------------------------*/
787
788 static inline __ATTRS_o_ai void
vec_scatter_element(vector signed int __vec,vector unsigned int __offset,signed int * __ptr,int __index)789 vec_scatter_element(vector signed int __vec, vector unsigned int __offset,
790 signed int *__ptr, int __index)
791 __constant_range(__index, 0, 3) {
792 *(signed int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
793 __vec[__index];
794 }
795
796 static inline __ATTRS_o_ai void
vec_scatter_element(vector bool int __vec,vector unsigned int __offset,unsigned int * __ptr,int __index)797 vec_scatter_element(vector bool int __vec, vector unsigned int __offset,
798 unsigned int *__ptr, int __index)
799 __constant_range(__index, 0, 3) {
800 *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
801 __vec[__index];
802 }
803
804 static inline __ATTRS_o_ai void
vec_scatter_element(vector unsigned int __vec,vector unsigned int __offset,unsigned int * __ptr,int __index)805 vec_scatter_element(vector unsigned int __vec, vector unsigned int __offset,
806 unsigned int *__ptr, int __index)
807 __constant_range(__index, 0, 3) {
808 *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
809 __vec[__index];
810 }
811
812 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)813 vec_scatter_element(vector signed long long __vec,
814 vector unsigned long long __offset,
815 signed long long *__ptr, int __index)
816 __constant_range(__index, 0, 1) {
817 *(signed long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
818 __vec[__index];
819 }
820
821 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)822 vec_scatter_element(vector bool long long __vec,
823 vector unsigned long long __offset,
824 unsigned long long *__ptr, int __index)
825 __constant_range(__index, 0, 1) {
826 *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
827 __vec[__index];
828 }
829
830 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)831 vec_scatter_element(vector unsigned long long __vec,
832 vector unsigned long long __offset,
833 unsigned long long *__ptr, int __index)
834 __constant_range(__index, 0, 1) {
835 *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
836 __vec[__index];
837 }
838
839 #if __ARCH__ >= 12
840 static inline __ATTRS_o_ai void
vec_scatter_element(vector float __vec,vector unsigned int __offset,float * __ptr,int __index)841 vec_scatter_element(vector float __vec, vector unsigned int __offset,
842 float *__ptr, int __index)
843 __constant_range(__index, 0, 3) {
844 *(float *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
845 __vec[__index];
846 }
847 #endif
848
849 static inline __ATTRS_o_ai void
vec_scatter_element(vector double __vec,vector unsigned long long __offset,double * __ptr,int __index)850 vec_scatter_element(vector double __vec, vector unsigned long long __offset,
851 double *__ptr, int __index)
852 __constant_range(__index, 0, 1) {
853 *(double *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
854 __vec[__index];
855 }
856
857 /*-- vec_xl -----------------------------------------------------------------*/
858
859 static inline __ATTRS_o_ai vector signed char
vec_xl(long __offset,const signed char * __ptr)860 vec_xl(long __offset, const signed char *__ptr) {
861 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
862 }
863
864 static inline __ATTRS_o_ai vector unsigned char
vec_xl(long __offset,const unsigned char * __ptr)865 vec_xl(long __offset, const unsigned char *__ptr) {
866 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
867 }
868
869 static inline __ATTRS_o_ai vector signed short
vec_xl(long __offset,const signed short * __ptr)870 vec_xl(long __offset, const signed short *__ptr) {
871 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
872 }
873
874 static inline __ATTRS_o_ai vector unsigned short
vec_xl(long __offset,const unsigned short * __ptr)875 vec_xl(long __offset, const unsigned short *__ptr) {
876 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
877 }
878
879 static inline __ATTRS_o_ai vector signed int
vec_xl(long __offset,const signed int * __ptr)880 vec_xl(long __offset, const signed int *__ptr) {
881 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
882 }
883
884 static inline __ATTRS_o_ai vector unsigned int
vec_xl(long __offset,const unsigned int * __ptr)885 vec_xl(long __offset, const unsigned int *__ptr) {
886 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
887 }
888
889 static inline __ATTRS_o_ai vector signed long long
vec_xl(long __offset,const signed long long * __ptr)890 vec_xl(long __offset, const signed long long *__ptr) {
891 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
892 }
893
894 static inline __ATTRS_o_ai vector unsigned long long
vec_xl(long __offset,const unsigned long long * __ptr)895 vec_xl(long __offset, const unsigned long long *__ptr) {
896 return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
897 }
898
899 #if __ARCH__ >= 12
900 static inline __ATTRS_o_ai vector float
vec_xl(long __offset,const float * __ptr)901 vec_xl(long __offset, const float *__ptr) {
902 return *(const vector float *)((__INTPTR_TYPE__)__ptr + __offset);
903 }
904 #endif
905
906 static inline __ATTRS_o_ai vector double
vec_xl(long __offset,const double * __ptr)907 vec_xl(long __offset, const double *__ptr) {
908 return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
909 }
910
911 /*-- vec_xld2 ---------------------------------------------------------------*/
912
913 // This prototype is deprecated.
914 static inline __ATTRS_o_ai vector signed char
vec_xld2(long __offset,const signed char * __ptr)915 vec_xld2(long __offset, const signed char *__ptr) {
916 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
917 }
918
919 // This prototype is deprecated.
920 static inline __ATTRS_o_ai vector unsigned char
vec_xld2(long __offset,const unsigned char * __ptr)921 vec_xld2(long __offset, const unsigned char *__ptr) {
922 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
923 }
924
925 // This prototype is deprecated.
926 static inline __ATTRS_o_ai vector signed short
vec_xld2(long __offset,const signed short * __ptr)927 vec_xld2(long __offset, const signed short *__ptr) {
928 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
929 }
930
931 // This prototype is deprecated.
932 static inline __ATTRS_o_ai vector unsigned short
vec_xld2(long __offset,const unsigned short * __ptr)933 vec_xld2(long __offset, const unsigned short *__ptr) {
934 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
935 }
936
937 // This prototype is deprecated.
938 static inline __ATTRS_o_ai vector signed int
vec_xld2(long __offset,const signed int * __ptr)939 vec_xld2(long __offset, const signed int *__ptr) {
940 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
941 }
942
943 // This prototype is deprecated.
944 static inline __ATTRS_o_ai vector unsigned int
vec_xld2(long __offset,const unsigned int * __ptr)945 vec_xld2(long __offset, const unsigned int *__ptr) {
946 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
947 }
948
949 // This prototype is deprecated.
950 static inline __ATTRS_o_ai vector signed long long
vec_xld2(long __offset,const signed long long * __ptr)951 vec_xld2(long __offset, const signed long long *__ptr) {
952 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
953 }
954
955 // This prototype is deprecated.
956 static inline __ATTRS_o_ai vector unsigned long long
vec_xld2(long __offset,const unsigned long long * __ptr)957 vec_xld2(long __offset, const unsigned long long *__ptr) {
958 return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
959 }
960
961 // This prototype is deprecated.
962 static inline __ATTRS_o_ai vector double
vec_xld2(long __offset,const double * __ptr)963 vec_xld2(long __offset, const double *__ptr) {
964 return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
965 }
966
967 /*-- vec_xlw4 ---------------------------------------------------------------*/
968
969 // This prototype is deprecated.
970 static inline __ATTRS_o_ai vector signed char
vec_xlw4(long __offset,const signed char * __ptr)971 vec_xlw4(long __offset, const signed char *__ptr) {
972 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
973 }
974
975 // This prototype is deprecated.
976 static inline __ATTRS_o_ai vector unsigned char
vec_xlw4(long __offset,const unsigned char * __ptr)977 vec_xlw4(long __offset, const unsigned char *__ptr) {
978 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
979 }
980
981 // This prototype is deprecated.
982 static inline __ATTRS_o_ai vector signed short
vec_xlw4(long __offset,const signed short * __ptr)983 vec_xlw4(long __offset, const signed short *__ptr) {
984 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
985 }
986
987 // This prototype is deprecated.
988 static inline __ATTRS_o_ai vector unsigned short
vec_xlw4(long __offset,const unsigned short * __ptr)989 vec_xlw4(long __offset, const unsigned short *__ptr) {
990 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
991 }
992
993 // This prototype is deprecated.
994 static inline __ATTRS_o_ai vector signed int
vec_xlw4(long __offset,const signed int * __ptr)995 vec_xlw4(long __offset, const signed int *__ptr) {
996 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
997 }
998
999 // This prototype is deprecated.
1000 static inline __ATTRS_o_ai vector unsigned int
vec_xlw4(long __offset,const unsigned int * __ptr)1001 vec_xlw4(long __offset, const unsigned int *__ptr) {
1002 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
1003 }
1004
1005 /*-- vec_xst ----------------------------------------------------------------*/
1006
1007 static inline __ATTRS_o_ai void
vec_xst(vector signed char __vec,long __offset,signed char * __ptr)1008 vec_xst(vector signed char __vec, long __offset, signed char *__ptr) {
1009 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1010 }
1011
1012 static inline __ATTRS_o_ai void
vec_xst(vector unsigned char __vec,long __offset,unsigned char * __ptr)1013 vec_xst(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1014 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1015 }
1016
1017 static inline __ATTRS_o_ai void
vec_xst(vector signed short __vec,long __offset,signed short * __ptr)1018 vec_xst(vector signed short __vec, long __offset, signed short *__ptr) {
1019 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1020 }
1021
1022 static inline __ATTRS_o_ai void
vec_xst(vector unsigned short __vec,long __offset,unsigned short * __ptr)1023 vec_xst(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1024 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1025 }
1026
1027 static inline __ATTRS_o_ai void
vec_xst(vector signed int __vec,long __offset,signed int * __ptr)1028 vec_xst(vector signed int __vec, long __offset, signed int *__ptr) {
1029 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1030 }
1031
1032 static inline __ATTRS_o_ai void
vec_xst(vector unsigned int __vec,long __offset,unsigned int * __ptr)1033 vec_xst(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1034 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1035 }
1036
1037 static inline __ATTRS_o_ai void
vec_xst(vector signed long long __vec,long __offset,signed long long * __ptr)1038 vec_xst(vector signed long long __vec, long __offset,
1039 signed long long *__ptr) {
1040 *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1041 }
1042
1043 static inline __ATTRS_o_ai void
vec_xst(vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1044 vec_xst(vector unsigned long long __vec, long __offset,
1045 unsigned long long *__ptr) {
1046 *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
1047 __vec;
1048 }
1049
1050 #if __ARCH__ >= 12
1051 static inline __ATTRS_o_ai void
vec_xst(vector float __vec,long __offset,float * __ptr)1052 vec_xst(vector float __vec, long __offset, float *__ptr) {
1053 *(vector float *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1054 }
1055 #endif
1056
1057 static inline __ATTRS_o_ai void
vec_xst(vector double __vec,long __offset,double * __ptr)1058 vec_xst(vector double __vec, long __offset, double *__ptr) {
1059 *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1060 }
1061
1062 /*-- vec_xstd2 --------------------------------------------------------------*/
1063
1064 // This prototype is deprecated.
1065 static inline __ATTRS_o_ai void
vec_xstd2(vector signed char __vec,long __offset,signed char * __ptr)1066 vec_xstd2(vector signed char __vec, long __offset, signed char *__ptr) {
1067 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1068 }
1069
1070 // This prototype is deprecated.
1071 static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned char __vec,long __offset,unsigned char * __ptr)1072 vec_xstd2(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1073 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1074 }
1075
1076 // This prototype is deprecated.
1077 static inline __ATTRS_o_ai void
vec_xstd2(vector signed short __vec,long __offset,signed short * __ptr)1078 vec_xstd2(vector signed short __vec, long __offset, signed short *__ptr) {
1079 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1080 }
1081
1082 // This prototype is deprecated.
1083 static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned short __vec,long __offset,unsigned short * __ptr)1084 vec_xstd2(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1085 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1086 }
1087
1088 // This prototype is deprecated.
1089 static inline __ATTRS_o_ai void
vec_xstd2(vector signed int __vec,long __offset,signed int * __ptr)1090 vec_xstd2(vector signed int __vec, long __offset, signed int *__ptr) {
1091 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1092 }
1093
1094 // This prototype is deprecated.
1095 static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned int __vec,long __offset,unsigned int * __ptr)1096 vec_xstd2(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1097 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1098 }
1099
1100 // This prototype is deprecated.
1101 static inline __ATTRS_o_ai void
vec_xstd2(vector signed long long __vec,long __offset,signed long long * __ptr)1102 vec_xstd2(vector signed long long __vec, long __offset,
1103 signed long long *__ptr) {
1104 *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1105 }
1106
1107 // This prototype is deprecated.
1108 static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned long long __vec,long __offset,unsigned long long * __ptr)1109 vec_xstd2(vector unsigned long long __vec, long __offset,
1110 unsigned long long *__ptr) {
1111 *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
1112 __vec;
1113 }
1114
1115 // This prototype is deprecated.
1116 static inline __ATTRS_o_ai void
vec_xstd2(vector double __vec,long __offset,double * __ptr)1117 vec_xstd2(vector double __vec, long __offset, double *__ptr) {
1118 *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1119 }
1120
1121 /*-- vec_xstw4 --------------------------------------------------------------*/
1122
1123 // This prototype is deprecated.
1124 static inline __ATTRS_o_ai void
vec_xstw4(vector signed char __vec,long __offset,signed char * __ptr)1125 vec_xstw4(vector signed char __vec, long __offset, signed char *__ptr) {
1126 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1127 }
1128
1129 // This prototype is deprecated.
1130 static inline __ATTRS_o_ai void
vec_xstw4(vector unsigned char __vec,long __offset,unsigned char * __ptr)1131 vec_xstw4(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
1132 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1133 }
1134
1135 // This prototype is deprecated.
1136 static inline __ATTRS_o_ai void
vec_xstw4(vector signed short __vec,long __offset,signed short * __ptr)1137 vec_xstw4(vector signed short __vec, long __offset, signed short *__ptr) {
1138 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1139 }
1140
1141 // This prototype is deprecated.
1142 static inline __ATTRS_o_ai void
vec_xstw4(vector unsigned short __vec,long __offset,unsigned short * __ptr)1143 vec_xstw4(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
1144 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1145 }
1146
1147 // This prototype is deprecated.
1148 static inline __ATTRS_o_ai void
vec_xstw4(vector signed int __vec,long __offset,signed int * __ptr)1149 vec_xstw4(vector signed int __vec, long __offset, signed int *__ptr) {
1150 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1151 }
1152
1153 // This prototype is deprecated.
1154 static inline __ATTRS_o_ai void
vec_xstw4(vector unsigned int __vec,long __offset,unsigned int * __ptr)1155 vec_xstw4(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
1156 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
1157 }
1158
1159 /*-- vec_load_bndry ---------------------------------------------------------*/
1160
1161 extern __ATTRS_o vector signed char
1162 vec_load_bndry(const signed char *__ptr, unsigned short __len)
1163 __constant_pow2_range(__len, 64, 4096);
1164
1165 extern __ATTRS_o vector unsigned char
1166 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
1167 __constant_pow2_range(__len, 64, 4096);
1168
1169 extern __ATTRS_o vector signed short
1170 vec_load_bndry(const signed short *__ptr, unsigned short __len)
1171 __constant_pow2_range(__len, 64, 4096);
1172
1173 extern __ATTRS_o vector unsigned short
1174 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
1175 __constant_pow2_range(__len, 64, 4096);
1176
1177 extern __ATTRS_o vector signed int
1178 vec_load_bndry(const signed int *__ptr, unsigned short __len)
1179 __constant_pow2_range(__len, 64, 4096);
1180
1181 extern __ATTRS_o vector unsigned int
1182 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
1183 __constant_pow2_range(__len, 64, 4096);
1184
1185 extern __ATTRS_o vector signed long long
1186 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
1187 __constant_pow2_range(__len, 64, 4096);
1188
1189 extern __ATTRS_o vector unsigned long long
1190 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
1191 __constant_pow2_range(__len, 64, 4096);
1192
1193 #if __ARCH__ >= 12
1194 extern __ATTRS_o vector float
1195 vec_load_bndry(const float *__ptr, unsigned short __len)
1196 __constant_pow2_range(__len, 64, 4096);
1197 #endif
1198
1199 extern __ATTRS_o vector double
1200 vec_load_bndry(const double *__ptr, unsigned short __len)
1201 __constant_pow2_range(__len, 64, 4096);
1202
1203 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
1204 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
1205 (Y) == 128 ? 1 : \
1206 (Y) == 256 ? 2 : \
1207 (Y) == 512 ? 3 : \
1208 (Y) == 1024 ? 4 : \
1209 (Y) == 2048 ? 5 : \
1210 (Y) == 4096 ? 6 : -1)))
1211
1212 /*-- vec_load_len -----------------------------------------------------------*/
1213
1214 static inline __ATTRS_o_ai vector signed char
vec_load_len(const signed char * __ptr,unsigned int __len)1215 vec_load_len(const signed char *__ptr, unsigned int __len) {
1216 return (vector signed char)__builtin_s390_vll(__len, __ptr);
1217 }
1218
1219 static inline __ATTRS_o_ai vector unsigned char
vec_load_len(const unsigned char * __ptr,unsigned int __len)1220 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
1221 return (vector unsigned char)__builtin_s390_vll(__len, __ptr);
1222 }
1223
1224 static inline __ATTRS_o_ai vector signed short
vec_load_len(const signed short * __ptr,unsigned int __len)1225 vec_load_len(const signed short *__ptr, unsigned int __len) {
1226 return (vector signed short)__builtin_s390_vll(__len, __ptr);
1227 }
1228
1229 static inline __ATTRS_o_ai vector unsigned short
vec_load_len(const unsigned short * __ptr,unsigned int __len)1230 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
1231 return (vector unsigned short)__builtin_s390_vll(__len, __ptr);
1232 }
1233
1234 static inline __ATTRS_o_ai vector signed int
vec_load_len(const signed int * __ptr,unsigned int __len)1235 vec_load_len(const signed int *__ptr, unsigned int __len) {
1236 return (vector signed int)__builtin_s390_vll(__len, __ptr);
1237 }
1238
1239 static inline __ATTRS_o_ai vector unsigned int
vec_load_len(const unsigned int * __ptr,unsigned int __len)1240 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
1241 return (vector unsigned int)__builtin_s390_vll(__len, __ptr);
1242 }
1243
1244 static inline __ATTRS_o_ai vector signed long long
vec_load_len(const signed long long * __ptr,unsigned int __len)1245 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1246 return (vector signed long long)__builtin_s390_vll(__len, __ptr);
1247 }
1248
1249 static inline __ATTRS_o_ai vector unsigned long long
vec_load_len(const unsigned long long * __ptr,unsigned int __len)1250 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1251 return (vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1252 }
1253
1254 #if __ARCH__ >= 12
1255 static inline __ATTRS_o_ai vector float
vec_load_len(const float * __ptr,unsigned int __len)1256 vec_load_len(const float *__ptr, unsigned int __len) {
1257 return (vector float)__builtin_s390_vll(__len, __ptr);
1258 }
1259 #endif
1260
1261 static inline __ATTRS_o_ai vector double
vec_load_len(const double * __ptr,unsigned int __len)1262 vec_load_len(const double *__ptr, unsigned int __len) {
1263 return (vector double)__builtin_s390_vll(__len, __ptr);
1264 }
1265
1266 /*-- vec_load_len_r ---------------------------------------------------------*/
1267
1268 #if __ARCH__ >= 12
1269 static inline __ATTRS_ai vector unsigned char
vec_load_len_r(const unsigned char * __ptr,unsigned int __len)1270 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {
1271 return (vector unsigned char)__builtin_s390_vlrl(__len, __ptr);
1272 }
1273 #endif
1274
1275 /*-- vec_store_len ----------------------------------------------------------*/
1276
1277 static inline __ATTRS_o_ai void
vec_store_len(vector signed char __vec,signed char * __ptr,unsigned int __len)1278 vec_store_len(vector signed char __vec, signed char *__ptr,
1279 unsigned int __len) {
1280 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1281 }
1282
1283 static inline __ATTRS_o_ai void
vec_store_len(vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1284 vec_store_len(vector unsigned char __vec, unsigned char *__ptr,
1285 unsigned int __len) {
1286 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1287 }
1288
1289 static inline __ATTRS_o_ai void
vec_store_len(vector signed short __vec,signed short * __ptr,unsigned int __len)1290 vec_store_len(vector signed short __vec, signed short *__ptr,
1291 unsigned int __len) {
1292 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1293 }
1294
1295 static inline __ATTRS_o_ai void
vec_store_len(vector unsigned short __vec,unsigned short * __ptr,unsigned int __len)1296 vec_store_len(vector unsigned short __vec, unsigned short *__ptr,
1297 unsigned int __len) {
1298 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1299 }
1300
1301 static inline __ATTRS_o_ai void
vec_store_len(vector signed int __vec,signed int * __ptr,unsigned int __len)1302 vec_store_len(vector signed int __vec, signed int *__ptr,
1303 unsigned int __len) {
1304 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1305 }
1306
1307 static inline __ATTRS_o_ai void
vec_store_len(vector unsigned int __vec,unsigned int * __ptr,unsigned int __len)1308 vec_store_len(vector unsigned int __vec, unsigned int *__ptr,
1309 unsigned int __len) {
1310 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1311 }
1312
1313 static inline __ATTRS_o_ai void
vec_store_len(vector signed long long __vec,signed long long * __ptr,unsigned int __len)1314 vec_store_len(vector signed long long __vec, signed long long *__ptr,
1315 unsigned int __len) {
1316 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1317 }
1318
1319 static inline __ATTRS_o_ai void
vec_store_len(vector unsigned long long __vec,unsigned long long * __ptr,unsigned int __len)1320 vec_store_len(vector unsigned long long __vec, unsigned long long *__ptr,
1321 unsigned int __len) {
1322 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1323 }
1324
1325 #if __ARCH__ >= 12
1326 static inline __ATTRS_o_ai void
vec_store_len(vector float __vec,float * __ptr,unsigned int __len)1327 vec_store_len(vector float __vec, float *__ptr,
1328 unsigned int __len) {
1329 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1330 }
1331 #endif
1332
1333 static inline __ATTRS_o_ai void
vec_store_len(vector double __vec,double * __ptr,unsigned int __len)1334 vec_store_len(vector double __vec, double *__ptr,
1335 unsigned int __len) {
1336 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1337 }
1338
1339 /*-- vec_store_len_r --------------------------------------------------------*/
1340
1341 #if __ARCH__ >= 12
1342 static inline __ATTRS_ai void
vec_store_len_r(vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1343 vec_store_len_r(vector unsigned char __vec, unsigned char *__ptr,
1344 unsigned int __len) {
1345 __builtin_s390_vstrl((vector signed char)__vec, __len, __ptr);
1346 }
1347 #endif
1348
1349 /*-- vec_load_pair ----------------------------------------------------------*/
1350
1351 static inline __ATTRS_o_ai vector signed long long
vec_load_pair(signed long long __a,signed long long __b)1352 vec_load_pair(signed long long __a, signed long long __b) {
1353 return (vector signed long long)(__a, __b);
1354 }
1355
1356 static inline __ATTRS_o_ai vector unsigned long long
vec_load_pair(unsigned long long __a,unsigned long long __b)1357 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1358 return (vector unsigned long long)(__a, __b);
1359 }
1360
1361 /*-- vec_genmask ------------------------------------------------------------*/
1362
1363 static inline __ATTRS_o_ai vector unsigned char
vec_genmask(unsigned short __mask)1364 vec_genmask(unsigned short __mask)
1365 __constant(__mask) {
1366 return (vector unsigned char)(
1367 __mask & 0x8000 ? 0xff : 0,
1368 __mask & 0x4000 ? 0xff : 0,
1369 __mask & 0x2000 ? 0xff : 0,
1370 __mask & 0x1000 ? 0xff : 0,
1371 __mask & 0x0800 ? 0xff : 0,
1372 __mask & 0x0400 ? 0xff : 0,
1373 __mask & 0x0200 ? 0xff : 0,
1374 __mask & 0x0100 ? 0xff : 0,
1375 __mask & 0x0080 ? 0xff : 0,
1376 __mask & 0x0040 ? 0xff : 0,
1377 __mask & 0x0020 ? 0xff : 0,
1378 __mask & 0x0010 ? 0xff : 0,
1379 __mask & 0x0008 ? 0xff : 0,
1380 __mask & 0x0004 ? 0xff : 0,
1381 __mask & 0x0002 ? 0xff : 0,
1382 __mask & 0x0001 ? 0xff : 0);
1383 }
1384
1385 /*-- vec_genmasks_* ---------------------------------------------------------*/
1386
1387 static inline __ATTRS_o_ai vector unsigned char
vec_genmasks_8(unsigned char __first,unsigned char __last)1388 vec_genmasks_8(unsigned char __first, unsigned char __last)
1389 __constant(__first) __constant(__last) {
1390 unsigned char __bit1 = __first & 7;
1391 unsigned char __bit2 = __last & 7;
1392 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1393 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1394 unsigned char __value = (__bit1 <= __bit2 ?
1395 __mask1 & ~__mask2 :
1396 __mask1 | ~__mask2);
1397 return (vector unsigned char)__value;
1398 }
1399
1400 static inline __ATTRS_o_ai vector unsigned short
vec_genmasks_16(unsigned char __first,unsigned char __last)1401 vec_genmasks_16(unsigned char __first, unsigned char __last)
1402 __constant(__first) __constant(__last) {
1403 unsigned char __bit1 = __first & 15;
1404 unsigned char __bit2 = __last & 15;
1405 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1406 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1407 unsigned short __value = (__bit1 <= __bit2 ?
1408 __mask1 & ~__mask2 :
1409 __mask1 | ~__mask2);
1410 return (vector unsigned short)__value;
1411 }
1412
1413 static inline __ATTRS_o_ai vector unsigned int
vec_genmasks_32(unsigned char __first,unsigned char __last)1414 vec_genmasks_32(unsigned char __first, unsigned char __last)
1415 __constant(__first) __constant(__last) {
1416 unsigned char __bit1 = __first & 31;
1417 unsigned char __bit2 = __last & 31;
1418 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1419 unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1420 unsigned int __value = (__bit1 <= __bit2 ?
1421 __mask1 & ~__mask2 :
1422 __mask1 | ~__mask2);
1423 return (vector unsigned int)__value;
1424 }
1425
1426 static inline __ATTRS_o_ai vector unsigned long long
vec_genmasks_64(unsigned char __first,unsigned char __last)1427 vec_genmasks_64(unsigned char __first, unsigned char __last)
1428 __constant(__first) __constant(__last) {
1429 unsigned char __bit1 = __first & 63;
1430 unsigned char __bit2 = __last & 63;
1431 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1432 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1433 unsigned long long __value = (__bit1 <= __bit2 ?
1434 __mask1 & ~__mask2 :
1435 __mask1 | ~__mask2);
1436 return (vector unsigned long long)__value;
1437 }
1438
1439 /*-- vec_splat --------------------------------------------------------------*/
1440
1441 static inline __ATTRS_o_ai vector signed char
vec_splat(vector signed char __vec,int __index)1442 vec_splat(vector signed char __vec, int __index)
1443 __constant_range(__index, 0, 15) {
1444 return (vector signed char)__vec[__index];
1445 }
1446
1447 static inline __ATTRS_o_ai vector bool char
vec_splat(vector bool char __vec,int __index)1448 vec_splat(vector bool char __vec, int __index)
1449 __constant_range(__index, 0, 15) {
1450 return (vector bool char)(vector unsigned char)__vec[__index];
1451 }
1452
1453 static inline __ATTRS_o_ai vector unsigned char
vec_splat(vector unsigned char __vec,int __index)1454 vec_splat(vector unsigned char __vec, int __index)
1455 __constant_range(__index, 0, 15) {
1456 return (vector unsigned char)__vec[__index];
1457 }
1458
1459 static inline __ATTRS_o_ai vector signed short
vec_splat(vector signed short __vec,int __index)1460 vec_splat(vector signed short __vec, int __index)
1461 __constant_range(__index, 0, 7) {
1462 return (vector signed short)__vec[__index];
1463 }
1464
1465 static inline __ATTRS_o_ai vector bool short
vec_splat(vector bool short __vec,int __index)1466 vec_splat(vector bool short __vec, int __index)
1467 __constant_range(__index, 0, 7) {
1468 return (vector bool short)(vector unsigned short)__vec[__index];
1469 }
1470
1471 static inline __ATTRS_o_ai vector unsigned short
vec_splat(vector unsigned short __vec,int __index)1472 vec_splat(vector unsigned short __vec, int __index)
1473 __constant_range(__index, 0, 7) {
1474 return (vector unsigned short)__vec[__index];
1475 }
1476
1477 static inline __ATTRS_o_ai vector signed int
vec_splat(vector signed int __vec,int __index)1478 vec_splat(vector signed int __vec, int __index)
1479 __constant_range(__index, 0, 3) {
1480 return (vector signed int)__vec[__index];
1481 }
1482
1483 static inline __ATTRS_o_ai vector bool int
vec_splat(vector bool int __vec,int __index)1484 vec_splat(vector bool int __vec, int __index)
1485 __constant_range(__index, 0, 3) {
1486 return (vector bool int)(vector unsigned int)__vec[__index];
1487 }
1488
1489 static inline __ATTRS_o_ai vector unsigned int
vec_splat(vector unsigned int __vec,int __index)1490 vec_splat(vector unsigned int __vec, int __index)
1491 __constant_range(__index, 0, 3) {
1492 return (vector unsigned int)__vec[__index];
1493 }
1494
1495 static inline __ATTRS_o_ai vector signed long long
vec_splat(vector signed long long __vec,int __index)1496 vec_splat(vector signed long long __vec, int __index)
1497 __constant_range(__index, 0, 1) {
1498 return (vector signed long long)__vec[__index];
1499 }
1500
1501 static inline __ATTRS_o_ai vector bool long long
vec_splat(vector bool long long __vec,int __index)1502 vec_splat(vector bool long long __vec, int __index)
1503 __constant_range(__index, 0, 1) {
1504 return (vector bool long long)(vector unsigned long long)__vec[__index];
1505 }
1506
1507 static inline __ATTRS_o_ai vector unsigned long long
vec_splat(vector unsigned long long __vec,int __index)1508 vec_splat(vector unsigned long long __vec, int __index)
1509 __constant_range(__index, 0, 1) {
1510 return (vector unsigned long long)__vec[__index];
1511 }
1512
1513 #if __ARCH__ >= 12
1514 static inline __ATTRS_o_ai vector float
vec_splat(vector float __vec,int __index)1515 vec_splat(vector float __vec, int __index)
1516 __constant_range(__index, 0, 3) {
1517 return (vector float)__vec[__index];
1518 }
1519 #endif
1520
1521 static inline __ATTRS_o_ai vector double
vec_splat(vector double __vec,int __index)1522 vec_splat(vector double __vec, int __index)
1523 __constant_range(__index, 0, 1) {
1524 return (vector double)__vec[__index];
1525 }
1526
1527 /*-- vec_splat_s* -----------------------------------------------------------*/
1528
1529 static inline __ATTRS_ai vector signed char
vec_splat_s8(signed char __scalar)1530 vec_splat_s8(signed char __scalar)
1531 __constant(__scalar) {
1532 return (vector signed char)__scalar;
1533 }
1534
1535 static inline __ATTRS_ai vector signed short
vec_splat_s16(signed short __scalar)1536 vec_splat_s16(signed short __scalar)
1537 __constant(__scalar) {
1538 return (vector signed short)__scalar;
1539 }
1540
1541 static inline __ATTRS_ai vector signed int
vec_splat_s32(signed short __scalar)1542 vec_splat_s32(signed short __scalar)
1543 __constant(__scalar) {
1544 return (vector signed int)(signed int)__scalar;
1545 }
1546
1547 static inline __ATTRS_ai vector signed long long
vec_splat_s64(signed short __scalar)1548 vec_splat_s64(signed short __scalar)
1549 __constant(__scalar) {
1550 return (vector signed long long)(signed long)__scalar;
1551 }
1552
1553 /*-- vec_splat_u* -----------------------------------------------------------*/
1554
1555 static inline __ATTRS_ai vector unsigned char
vec_splat_u8(unsigned char __scalar)1556 vec_splat_u8(unsigned char __scalar)
1557 __constant(__scalar) {
1558 return (vector unsigned char)__scalar;
1559 }
1560
1561 static inline __ATTRS_ai vector unsigned short
vec_splat_u16(unsigned short __scalar)1562 vec_splat_u16(unsigned short __scalar)
1563 __constant(__scalar) {
1564 return (vector unsigned short)__scalar;
1565 }
1566
1567 static inline __ATTRS_ai vector unsigned int
vec_splat_u32(signed short __scalar)1568 vec_splat_u32(signed short __scalar)
1569 __constant(__scalar) {
1570 return (vector unsigned int)(signed int)__scalar;
1571 }
1572
1573 static inline __ATTRS_ai vector unsigned long long
vec_splat_u64(signed short __scalar)1574 vec_splat_u64(signed short __scalar)
1575 __constant(__scalar) {
1576 return (vector unsigned long long)(signed long long)__scalar;
1577 }
1578
1579 /*-- vec_splats -------------------------------------------------------------*/
1580
1581 static inline __ATTRS_o_ai vector signed char
vec_splats(signed char __scalar)1582 vec_splats(signed char __scalar) {
1583 return (vector signed char)__scalar;
1584 }
1585
1586 static inline __ATTRS_o_ai vector unsigned char
vec_splats(unsigned char __scalar)1587 vec_splats(unsigned char __scalar) {
1588 return (vector unsigned char)__scalar;
1589 }
1590
1591 static inline __ATTRS_o_ai vector signed short
vec_splats(signed short __scalar)1592 vec_splats(signed short __scalar) {
1593 return (vector signed short)__scalar;
1594 }
1595
1596 static inline __ATTRS_o_ai vector unsigned short
vec_splats(unsigned short __scalar)1597 vec_splats(unsigned short __scalar) {
1598 return (vector unsigned short)__scalar;
1599 }
1600
1601 static inline __ATTRS_o_ai vector signed int
vec_splats(signed int __scalar)1602 vec_splats(signed int __scalar) {
1603 return (vector signed int)__scalar;
1604 }
1605
1606 static inline __ATTRS_o_ai vector unsigned int
vec_splats(unsigned int __scalar)1607 vec_splats(unsigned int __scalar) {
1608 return (vector unsigned int)__scalar;
1609 }
1610
1611 static inline __ATTRS_o_ai vector signed long long
vec_splats(signed long long __scalar)1612 vec_splats(signed long long __scalar) {
1613 return (vector signed long long)__scalar;
1614 }
1615
1616 static inline __ATTRS_o_ai vector unsigned long long
vec_splats(unsigned long long __scalar)1617 vec_splats(unsigned long long __scalar) {
1618 return (vector unsigned long long)__scalar;
1619 }
1620
1621 #if __ARCH__ >= 12
1622 static inline __ATTRS_o_ai vector float
vec_splats(float __scalar)1623 vec_splats(float __scalar) {
1624 return (vector float)__scalar;
1625 }
1626 #endif
1627
1628 static inline __ATTRS_o_ai vector double
vec_splats(double __scalar)1629 vec_splats(double __scalar) {
1630 return (vector double)__scalar;
1631 }
1632
1633 /*-- vec_extend_s64 ---------------------------------------------------------*/
1634
1635 static inline __ATTRS_o_ai vector signed long long
vec_extend_s64(vector signed char __a)1636 vec_extend_s64(vector signed char __a) {
1637 return (vector signed long long)(__a[7], __a[15]);
1638 }
1639
1640 static inline __ATTRS_o_ai vector signed long long
vec_extend_s64(vector signed short __a)1641 vec_extend_s64(vector signed short __a) {
1642 return (vector signed long long)(__a[3], __a[7]);
1643 }
1644
1645 static inline __ATTRS_o_ai vector signed long long
vec_extend_s64(vector signed int __a)1646 vec_extend_s64(vector signed int __a) {
1647 return (vector signed long long)(__a[1], __a[3]);
1648 }
1649
1650 /*-- vec_mergeh -------------------------------------------------------------*/
1651
1652 static inline __ATTRS_o_ai vector signed char
vec_mergeh(vector signed char __a,vector signed char __b)1653 vec_mergeh(vector signed char __a, vector signed char __b) {
1654 return (vector signed char)(
1655 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1656 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1657 }
1658
1659 static inline __ATTRS_o_ai vector bool char
vec_mergeh(vector bool char __a,vector bool char __b)1660 vec_mergeh(vector bool char __a, vector bool char __b) {
1661 return (vector bool char)(
1662 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1663 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1664 }
1665
1666 static inline __ATTRS_o_ai vector unsigned char
vec_mergeh(vector unsigned char __a,vector unsigned char __b)1667 vec_mergeh(vector unsigned char __a, vector unsigned char __b) {
1668 return (vector unsigned char)(
1669 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1670 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1671 }
1672
1673 static inline __ATTRS_o_ai vector signed short
vec_mergeh(vector signed short __a,vector signed short __b)1674 vec_mergeh(vector signed short __a, vector signed short __b) {
1675 return (vector signed short)(
1676 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1677 }
1678
1679 static inline __ATTRS_o_ai vector bool short
vec_mergeh(vector bool short __a,vector bool short __b)1680 vec_mergeh(vector bool short __a, vector bool short __b) {
1681 return (vector bool short)(
1682 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1683 }
1684
1685 static inline __ATTRS_o_ai vector unsigned short
vec_mergeh(vector unsigned short __a,vector unsigned short __b)1686 vec_mergeh(vector unsigned short __a, vector unsigned short __b) {
1687 return (vector unsigned short)(
1688 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1689 }
1690
1691 static inline __ATTRS_o_ai vector signed int
vec_mergeh(vector signed int __a,vector signed int __b)1692 vec_mergeh(vector signed int __a, vector signed int __b) {
1693 return (vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1694 }
1695
1696 static inline __ATTRS_o_ai vector bool int
vec_mergeh(vector bool int __a,vector bool int __b)1697 vec_mergeh(vector bool int __a, vector bool int __b) {
1698 return (vector bool int)(__a[0], __b[0], __a[1], __b[1]);
1699 }
1700
1701 static inline __ATTRS_o_ai vector unsigned int
vec_mergeh(vector unsigned int __a,vector unsigned int __b)1702 vec_mergeh(vector unsigned int __a, vector unsigned int __b) {
1703 return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1704 }
1705
1706 static inline __ATTRS_o_ai vector signed long long
vec_mergeh(vector signed long long __a,vector signed long long __b)1707 vec_mergeh(vector signed long long __a, vector signed long long __b) {
1708 return (vector signed long long)(__a[0], __b[0]);
1709 }
1710
1711 static inline __ATTRS_o_ai vector bool long long
vec_mergeh(vector bool long long __a,vector bool long long __b)1712 vec_mergeh(vector bool long long __a, vector bool long long __b) {
1713 return (vector bool long long)(__a[0], __b[0]);
1714 }
1715
1716 static inline __ATTRS_o_ai vector unsigned long long
vec_mergeh(vector unsigned long long __a,vector unsigned long long __b)1717 vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) {
1718 return (vector unsigned long long)(__a[0], __b[0]);
1719 }
1720
1721 #if __ARCH__ >= 12
1722 static inline __ATTRS_o_ai vector float
vec_mergeh(vector float __a,vector float __b)1723 vec_mergeh(vector float __a, vector float __b) {
1724 return (vector float)(__a[0], __b[0], __a[1], __b[1]);
1725 }
1726 #endif
1727
1728 static inline __ATTRS_o_ai vector double
vec_mergeh(vector double __a,vector double __b)1729 vec_mergeh(vector double __a, vector double __b) {
1730 return (vector double)(__a[0], __b[0]);
1731 }
1732
1733 /*-- vec_mergel -------------------------------------------------------------*/
1734
1735 static inline __ATTRS_o_ai vector signed char
vec_mergel(vector signed char __a,vector signed char __b)1736 vec_mergel(vector signed char __a, vector signed char __b) {
1737 return (vector signed char)(
1738 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1739 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1740 }
1741
1742 static inline __ATTRS_o_ai vector bool char
vec_mergel(vector bool char __a,vector bool char __b)1743 vec_mergel(vector bool char __a, vector bool char __b) {
1744 return (vector bool char)(
1745 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1746 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1747 }
1748
1749 static inline __ATTRS_o_ai vector unsigned char
vec_mergel(vector unsigned char __a,vector unsigned char __b)1750 vec_mergel(vector unsigned char __a, vector unsigned char __b) {
1751 return (vector unsigned char)(
1752 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1753 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1754 }
1755
1756 static inline __ATTRS_o_ai vector signed short
vec_mergel(vector signed short __a,vector signed short __b)1757 vec_mergel(vector signed short __a, vector signed short __b) {
1758 return (vector signed short)(
1759 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1760 }
1761
1762 static inline __ATTRS_o_ai vector bool short
vec_mergel(vector bool short __a,vector bool short __b)1763 vec_mergel(vector bool short __a, vector bool short __b) {
1764 return (vector bool short)(
1765 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1766 }
1767
1768 static inline __ATTRS_o_ai vector unsigned short
vec_mergel(vector unsigned short __a,vector unsigned short __b)1769 vec_mergel(vector unsigned short __a, vector unsigned short __b) {
1770 return (vector unsigned short)(
1771 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1772 }
1773
1774 static inline __ATTRS_o_ai vector signed int
vec_mergel(vector signed int __a,vector signed int __b)1775 vec_mergel(vector signed int __a, vector signed int __b) {
1776 return (vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1777 }
1778
1779 static inline __ATTRS_o_ai vector bool int
vec_mergel(vector bool int __a,vector bool int __b)1780 vec_mergel(vector bool int __a, vector bool int __b) {
1781 return (vector bool int)(__a[2], __b[2], __a[3], __b[3]);
1782 }
1783
1784 static inline __ATTRS_o_ai vector unsigned int
vec_mergel(vector unsigned int __a,vector unsigned int __b)1785 vec_mergel(vector unsigned int __a, vector unsigned int __b) {
1786 return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1787 }
1788
1789 static inline __ATTRS_o_ai vector signed long long
vec_mergel(vector signed long long __a,vector signed long long __b)1790 vec_mergel(vector signed long long __a, vector signed long long __b) {
1791 return (vector signed long long)(__a[1], __b[1]);
1792 }
1793
1794 static inline __ATTRS_o_ai vector bool long long
vec_mergel(vector bool long long __a,vector bool long long __b)1795 vec_mergel(vector bool long long __a, vector bool long long __b) {
1796 return (vector bool long long)(__a[1], __b[1]);
1797 }
1798
1799 static inline __ATTRS_o_ai vector unsigned long long
vec_mergel(vector unsigned long long __a,vector unsigned long long __b)1800 vec_mergel(vector unsigned long long __a, vector unsigned long long __b) {
1801 return (vector unsigned long long)(__a[1], __b[1]);
1802 }
1803
1804 #if __ARCH__ >= 12
1805 static inline __ATTRS_o_ai vector float
vec_mergel(vector float __a,vector float __b)1806 vec_mergel(vector float __a, vector float __b) {
1807 return (vector float)(__a[2], __b[2], __a[3], __b[3]);
1808 }
1809 #endif
1810
1811 static inline __ATTRS_o_ai vector double
vec_mergel(vector double __a,vector double __b)1812 vec_mergel(vector double __a, vector double __b) {
1813 return (vector double)(__a[1], __b[1]);
1814 }
1815
1816 /*-- vec_pack ---------------------------------------------------------------*/
1817
1818 static inline __ATTRS_o_ai vector signed char
vec_pack(vector signed short __a,vector signed short __b)1819 vec_pack(vector signed short __a, vector signed short __b) {
1820 vector signed char __ac = (vector signed char)__a;
1821 vector signed char __bc = (vector signed char)__b;
1822 return (vector signed char)(
1823 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1824 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1825 }
1826
1827 static inline __ATTRS_o_ai vector bool char
vec_pack(vector bool short __a,vector bool short __b)1828 vec_pack(vector bool short __a, vector bool short __b) {
1829 vector bool char __ac = (vector bool char)__a;
1830 vector bool char __bc = (vector bool char)__b;
1831 return (vector bool char)(
1832 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1833 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1834 }
1835
1836 static inline __ATTRS_o_ai vector unsigned char
vec_pack(vector unsigned short __a,vector unsigned short __b)1837 vec_pack(vector unsigned short __a, vector unsigned short __b) {
1838 vector unsigned char __ac = (vector unsigned char)__a;
1839 vector unsigned char __bc = (vector unsigned char)__b;
1840 return (vector unsigned char)(
1841 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1842 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1843 }
1844
1845 static inline __ATTRS_o_ai vector signed short
vec_pack(vector signed int __a,vector signed int __b)1846 vec_pack(vector signed int __a, vector signed int __b) {
1847 vector signed short __ac = (vector signed short)__a;
1848 vector signed short __bc = (vector signed short)__b;
1849 return (vector signed short)(
1850 __ac[1], __ac[3], __ac[5], __ac[7],
1851 __bc[1], __bc[3], __bc[5], __bc[7]);
1852 }
1853
1854 static inline __ATTRS_o_ai vector bool short
vec_pack(vector bool int __a,vector bool int __b)1855 vec_pack(vector bool int __a, vector bool int __b) {
1856 vector bool short __ac = (vector bool short)__a;
1857 vector bool short __bc = (vector bool short)__b;
1858 return (vector bool short)(
1859 __ac[1], __ac[3], __ac[5], __ac[7],
1860 __bc[1], __bc[3], __bc[5], __bc[7]);
1861 }
1862
1863 static inline __ATTRS_o_ai vector unsigned short
vec_pack(vector unsigned int __a,vector unsigned int __b)1864 vec_pack(vector unsigned int __a, vector unsigned int __b) {
1865 vector unsigned short __ac = (vector unsigned short)__a;
1866 vector unsigned short __bc = (vector unsigned short)__b;
1867 return (vector unsigned short)(
1868 __ac[1], __ac[3], __ac[5], __ac[7],
1869 __bc[1], __bc[3], __bc[5], __bc[7]);
1870 }
1871
1872 static inline __ATTRS_o_ai vector signed int
vec_pack(vector signed long long __a,vector signed long long __b)1873 vec_pack(vector signed long long __a, vector signed long long __b) {
1874 vector signed int __ac = (vector signed int)__a;
1875 vector signed int __bc = (vector signed int)__b;
1876 return (vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1877 }
1878
1879 static inline __ATTRS_o_ai vector bool int
vec_pack(vector bool long long __a,vector bool long long __b)1880 vec_pack(vector bool long long __a, vector bool long long __b) {
1881 vector bool int __ac = (vector bool int)__a;
1882 vector bool int __bc = (vector bool int)__b;
1883 return (vector bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1884 }
1885
1886 static inline __ATTRS_o_ai vector unsigned int
vec_pack(vector unsigned long long __a,vector unsigned long long __b)1887 vec_pack(vector unsigned long long __a, vector unsigned long long __b) {
1888 vector unsigned int __ac = (vector unsigned int)__a;
1889 vector unsigned int __bc = (vector unsigned int)__b;
1890 return (vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1891 }
1892
1893 /*-- vec_packs --------------------------------------------------------------*/
1894
1895 static inline __ATTRS_o_ai vector signed char
vec_packs(vector signed short __a,vector signed short __b)1896 vec_packs(vector signed short __a, vector signed short __b) {
1897 return __builtin_s390_vpksh(__a, __b);
1898 }
1899
1900 static inline __ATTRS_o_ai vector unsigned char
vec_packs(vector unsigned short __a,vector unsigned short __b)1901 vec_packs(vector unsigned short __a, vector unsigned short __b) {
1902 return __builtin_s390_vpklsh(__a, __b);
1903 }
1904
1905 static inline __ATTRS_o_ai vector signed short
vec_packs(vector signed int __a,vector signed int __b)1906 vec_packs(vector signed int __a, vector signed int __b) {
1907 return __builtin_s390_vpksf(__a, __b);
1908 }
1909
1910 static inline __ATTRS_o_ai vector unsigned short
vec_packs(vector unsigned int __a,vector unsigned int __b)1911 vec_packs(vector unsigned int __a, vector unsigned int __b) {
1912 return __builtin_s390_vpklsf(__a, __b);
1913 }
1914
1915 static inline __ATTRS_o_ai vector signed int
vec_packs(vector signed long long __a,vector signed long long __b)1916 vec_packs(vector signed long long __a, vector signed long long __b) {
1917 return __builtin_s390_vpksg(__a, __b);
1918 }
1919
1920 static inline __ATTRS_o_ai vector unsigned int
vec_packs(vector unsigned long long __a,vector unsigned long long __b)1921 vec_packs(vector unsigned long long __a, vector unsigned long long __b) {
1922 return __builtin_s390_vpklsg(__a, __b);
1923 }
1924
1925 /*-- vec_packs_cc -----------------------------------------------------------*/
1926
1927 static inline __ATTRS_o_ai vector signed char
vec_packs_cc(vector signed short __a,vector signed short __b,int * __cc)1928 vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) {
1929 return __builtin_s390_vpkshs(__a, __b, __cc);
1930 }
1931
1932 static inline __ATTRS_o_ai vector unsigned char
vec_packs_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)1933 vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
1934 return __builtin_s390_vpklshs(__a, __b, __cc);
1935 }
1936
1937 static inline __ATTRS_o_ai vector signed short
vec_packs_cc(vector signed int __a,vector signed int __b,int * __cc)1938 vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) {
1939 return __builtin_s390_vpksfs(__a, __b, __cc);
1940 }
1941
1942 static inline __ATTRS_o_ai vector unsigned short
vec_packs_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)1943 vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
1944 return __builtin_s390_vpklsfs(__a, __b, __cc);
1945 }
1946
1947 static inline __ATTRS_o_ai vector signed int
vec_packs_cc(vector signed long long __a,vector signed long long __b,int * __cc)1948 vec_packs_cc(vector signed long long __a, vector signed long long __b,
1949 int *__cc) {
1950 return __builtin_s390_vpksgs(__a, __b, __cc);
1951 }
1952
1953 static inline __ATTRS_o_ai vector unsigned int
vec_packs_cc(vector unsigned long long __a,vector unsigned long long __b,int * __cc)1954 vec_packs_cc(vector unsigned long long __a, vector unsigned long long __b,
1955 int *__cc) {
1956 return __builtin_s390_vpklsgs(__a, __b, __cc);
1957 }
1958
1959 /*-- vec_packsu -------------------------------------------------------------*/
1960
1961 static inline __ATTRS_o_ai vector unsigned char
vec_packsu(vector signed short __a,vector signed short __b)1962 vec_packsu(vector signed short __a, vector signed short __b) {
1963 const vector signed short __zero = (vector signed short)0;
1964 return __builtin_s390_vpklsh(
1965 (vector unsigned short)(__a >= __zero) & (vector unsigned short)__a,
1966 (vector unsigned short)(__b >= __zero) & (vector unsigned short)__b);
1967 }
1968
1969 static inline __ATTRS_o_ai vector unsigned char
vec_packsu(vector unsigned short __a,vector unsigned short __b)1970 vec_packsu(vector unsigned short __a, vector unsigned short __b) {
1971 return __builtin_s390_vpklsh(__a, __b);
1972 }
1973
1974 static inline __ATTRS_o_ai vector unsigned short
vec_packsu(vector signed int __a,vector signed int __b)1975 vec_packsu(vector signed int __a, vector signed int __b) {
1976 const vector signed int __zero = (vector signed int)0;
1977 return __builtin_s390_vpklsf(
1978 (vector unsigned int)(__a >= __zero) & (vector unsigned int)__a,
1979 (vector unsigned int)(__b >= __zero) & (vector unsigned int)__b);
1980 }
1981
1982 static inline __ATTRS_o_ai vector unsigned short
vec_packsu(vector unsigned int __a,vector unsigned int __b)1983 vec_packsu(vector unsigned int __a, vector unsigned int __b) {
1984 return __builtin_s390_vpklsf(__a, __b);
1985 }
1986
1987 static inline __ATTRS_o_ai vector unsigned int
vec_packsu(vector signed long long __a,vector signed long long __b)1988 vec_packsu(vector signed long long __a, vector signed long long __b) {
1989 const vector signed long long __zero = (vector signed long long)0;
1990 return __builtin_s390_vpklsg(
1991 (vector unsigned long long)(__a >= __zero) &
1992 (vector unsigned long long)__a,
1993 (vector unsigned long long)(__b >= __zero) &
1994 (vector unsigned long long)__b);
1995 }
1996
1997 static inline __ATTRS_o_ai vector unsigned int
vec_packsu(vector unsigned long long __a,vector unsigned long long __b)1998 vec_packsu(vector unsigned long long __a, vector unsigned long long __b) {
1999 return __builtin_s390_vpklsg(__a, __b);
2000 }
2001
2002 /*-- vec_packsu_cc ----------------------------------------------------------*/
2003
2004 static inline __ATTRS_o_ai vector unsigned char
vec_packsu_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)2005 vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
2006 return __builtin_s390_vpklshs(__a, __b, __cc);
2007 }
2008
2009 static inline __ATTRS_o_ai vector unsigned short
vec_packsu_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)2010 vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
2011 return __builtin_s390_vpklsfs(__a, __b, __cc);
2012 }
2013
2014 static inline __ATTRS_o_ai vector unsigned int
vec_packsu_cc(vector unsigned long long __a,vector unsigned long long __b,int * __cc)2015 vec_packsu_cc(vector unsigned long long __a, vector unsigned long long __b,
2016 int *__cc) {
2017 return __builtin_s390_vpklsgs(__a, __b, __cc);
2018 }
2019
2020 /*-- vec_unpackh ------------------------------------------------------------*/
2021
2022 static inline __ATTRS_o_ai vector signed short
vec_unpackh(vector signed char __a)2023 vec_unpackh(vector signed char __a) {
2024 return __builtin_s390_vuphb(__a);
2025 }
2026
2027 static inline __ATTRS_o_ai vector bool short
vec_unpackh(vector bool char __a)2028 vec_unpackh(vector bool char __a) {
2029 return (vector bool short)__builtin_s390_vuphb((vector signed char)__a);
2030 }
2031
2032 static inline __ATTRS_o_ai vector unsigned short
vec_unpackh(vector unsigned char __a)2033 vec_unpackh(vector unsigned char __a) {
2034 return __builtin_s390_vuplhb(__a);
2035 }
2036
2037 static inline __ATTRS_o_ai vector signed int
vec_unpackh(vector signed short __a)2038 vec_unpackh(vector signed short __a) {
2039 return __builtin_s390_vuphh(__a);
2040 }
2041
2042 static inline __ATTRS_o_ai vector bool int
vec_unpackh(vector bool short __a)2043 vec_unpackh(vector bool short __a) {
2044 return (vector bool int)__builtin_s390_vuphh((vector signed short)__a);
2045 }
2046
2047 static inline __ATTRS_o_ai vector unsigned int
vec_unpackh(vector unsigned short __a)2048 vec_unpackh(vector unsigned short __a) {
2049 return __builtin_s390_vuplhh(__a);
2050 }
2051
2052 static inline __ATTRS_o_ai vector signed long long
vec_unpackh(vector signed int __a)2053 vec_unpackh(vector signed int __a) {
2054 return __builtin_s390_vuphf(__a);
2055 }
2056
2057 static inline __ATTRS_o_ai vector bool long long
vec_unpackh(vector bool int __a)2058 vec_unpackh(vector bool int __a) {
2059 return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a);
2060 }
2061
2062 static inline __ATTRS_o_ai vector unsigned long long
vec_unpackh(vector unsigned int __a)2063 vec_unpackh(vector unsigned int __a) {
2064 return __builtin_s390_vuplhf(__a);
2065 }
2066
2067 /*-- vec_unpackl ------------------------------------------------------------*/
2068
2069 static inline __ATTRS_o_ai vector signed short
vec_unpackl(vector signed char __a)2070 vec_unpackl(vector signed char __a) {
2071 return __builtin_s390_vuplb(__a);
2072 }
2073
2074 static inline __ATTRS_o_ai vector bool short
vec_unpackl(vector bool char __a)2075 vec_unpackl(vector bool char __a) {
2076 return (vector bool short)__builtin_s390_vuplb((vector signed char)__a);
2077 }
2078
2079 static inline __ATTRS_o_ai vector unsigned short
vec_unpackl(vector unsigned char __a)2080 vec_unpackl(vector unsigned char __a) {
2081 return __builtin_s390_vupllb(__a);
2082 }
2083
2084 static inline __ATTRS_o_ai vector signed int
vec_unpackl(vector signed short __a)2085 vec_unpackl(vector signed short __a) {
2086 return __builtin_s390_vuplhw(__a);
2087 }
2088
2089 static inline __ATTRS_o_ai vector bool int
vec_unpackl(vector bool short __a)2090 vec_unpackl(vector bool short __a) {
2091 return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a);
2092 }
2093
2094 static inline __ATTRS_o_ai vector unsigned int
vec_unpackl(vector unsigned short __a)2095 vec_unpackl(vector unsigned short __a) {
2096 return __builtin_s390_vupllh(__a);
2097 }
2098
2099 static inline __ATTRS_o_ai vector signed long long
vec_unpackl(vector signed int __a)2100 vec_unpackl(vector signed int __a) {
2101 return __builtin_s390_vuplf(__a);
2102 }
2103
2104 static inline __ATTRS_o_ai vector bool long long
vec_unpackl(vector bool int __a)2105 vec_unpackl(vector bool int __a) {
2106 return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a);
2107 }
2108
2109 static inline __ATTRS_o_ai vector unsigned long long
vec_unpackl(vector unsigned int __a)2110 vec_unpackl(vector unsigned int __a) {
2111 return __builtin_s390_vupllf(__a);
2112 }
2113
2114 /*-- vec_cmpeq --------------------------------------------------------------*/
2115
2116 static inline __ATTRS_o_ai vector bool char
vec_cmpeq(vector bool char __a,vector bool char __b)2117 vec_cmpeq(vector bool char __a, vector bool char __b) {
2118 return (vector bool char)(__a == __b);
2119 }
2120
2121 static inline __ATTRS_o_ai vector bool char
vec_cmpeq(vector signed char __a,vector signed char __b)2122 vec_cmpeq(vector signed char __a, vector signed char __b) {
2123 return (vector bool char)(__a == __b);
2124 }
2125
2126 static inline __ATTRS_o_ai vector bool char
vec_cmpeq(vector unsigned char __a,vector unsigned char __b)2127 vec_cmpeq(vector unsigned char __a, vector unsigned char __b) {
2128 return (vector bool char)(__a == __b);
2129 }
2130
2131 static inline __ATTRS_o_ai vector bool short
vec_cmpeq(vector bool short __a,vector bool short __b)2132 vec_cmpeq(vector bool short __a, vector bool short __b) {
2133 return (vector bool short)(__a == __b);
2134 }
2135
2136 static inline __ATTRS_o_ai vector bool short
vec_cmpeq(vector signed short __a,vector signed short __b)2137 vec_cmpeq(vector signed short __a, vector signed short __b) {
2138 return (vector bool short)(__a == __b);
2139 }
2140
2141 static inline __ATTRS_o_ai vector bool short
vec_cmpeq(vector unsigned short __a,vector unsigned short __b)2142 vec_cmpeq(vector unsigned short __a, vector unsigned short __b) {
2143 return (vector bool short)(__a == __b);
2144 }
2145
2146 static inline __ATTRS_o_ai vector bool int
vec_cmpeq(vector bool int __a,vector bool int __b)2147 vec_cmpeq(vector bool int __a, vector bool int __b) {
2148 return (vector bool int)(__a == __b);
2149 }
2150
2151 static inline __ATTRS_o_ai vector bool int
vec_cmpeq(vector signed int __a,vector signed int __b)2152 vec_cmpeq(vector signed int __a, vector signed int __b) {
2153 return (vector bool int)(__a == __b);
2154 }
2155
2156 static inline __ATTRS_o_ai vector bool int
vec_cmpeq(vector unsigned int __a,vector unsigned int __b)2157 vec_cmpeq(vector unsigned int __a, vector unsigned int __b) {
2158 return (vector bool int)(__a == __b);
2159 }
2160
2161 static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector bool long long __a,vector bool long long __b)2162 vec_cmpeq(vector bool long long __a, vector bool long long __b) {
2163 return (vector bool long long)(__a == __b);
2164 }
2165
2166 static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector signed long long __a,vector signed long long __b)2167 vec_cmpeq(vector signed long long __a, vector signed long long __b) {
2168 return (vector bool long long)(__a == __b);
2169 }
2170
2171 static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector unsigned long long __a,vector unsigned long long __b)2172 vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
2173 return (vector bool long long)(__a == __b);
2174 }
2175
2176 #if __ARCH__ >= 12
2177 static inline __ATTRS_o_ai vector bool int
vec_cmpeq(vector float __a,vector float __b)2178 vec_cmpeq(vector float __a, vector float __b) {
2179 return (vector bool int)(__a == __b);
2180 }
2181 #endif
2182
2183 static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector double __a,vector double __b)2184 vec_cmpeq(vector double __a, vector double __b) {
2185 return (vector bool long long)(__a == __b);
2186 }
2187
2188 /*-- vec_cmpge --------------------------------------------------------------*/
2189
2190 static inline __ATTRS_o_ai vector bool char
vec_cmpge(vector signed char __a,vector signed char __b)2191 vec_cmpge(vector signed char __a, vector signed char __b) {
2192 return (vector bool char)(__a >= __b);
2193 }
2194
2195 static inline __ATTRS_o_ai vector bool char
vec_cmpge(vector unsigned char __a,vector unsigned char __b)2196 vec_cmpge(vector unsigned char __a, vector unsigned char __b) {
2197 return (vector bool char)(__a >= __b);
2198 }
2199
2200 static inline __ATTRS_o_ai vector bool short
vec_cmpge(vector signed short __a,vector signed short __b)2201 vec_cmpge(vector signed short __a, vector signed short __b) {
2202 return (vector bool short)(__a >= __b);
2203 }
2204
2205 static inline __ATTRS_o_ai vector bool short
vec_cmpge(vector unsigned short __a,vector unsigned short __b)2206 vec_cmpge(vector unsigned short __a, vector unsigned short __b) {
2207 return (vector bool short)(__a >= __b);
2208 }
2209
2210 static inline __ATTRS_o_ai vector bool int
vec_cmpge(vector signed int __a,vector signed int __b)2211 vec_cmpge(vector signed int __a, vector signed int __b) {
2212 return (vector bool int)(__a >= __b);
2213 }
2214
2215 static inline __ATTRS_o_ai vector bool int
vec_cmpge(vector unsigned int __a,vector unsigned int __b)2216 vec_cmpge(vector unsigned int __a, vector unsigned int __b) {
2217 return (vector bool int)(__a >= __b);
2218 }
2219
2220 static inline __ATTRS_o_ai vector bool long long
vec_cmpge(vector signed long long __a,vector signed long long __b)2221 vec_cmpge(vector signed long long __a, vector signed long long __b) {
2222 return (vector bool long long)(__a >= __b);
2223 }
2224
2225 static inline __ATTRS_o_ai vector bool long long
vec_cmpge(vector unsigned long long __a,vector unsigned long long __b)2226 vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) {
2227 return (vector bool long long)(__a >= __b);
2228 }
2229
2230 #if __ARCH__ >= 12
2231 static inline __ATTRS_o_ai vector bool int
vec_cmpge(vector float __a,vector float __b)2232 vec_cmpge(vector float __a, vector float __b) {
2233 return (vector bool int)(__a >= __b);
2234 }
2235 #endif
2236
2237 static inline __ATTRS_o_ai vector bool long long
vec_cmpge(vector double __a,vector double __b)2238 vec_cmpge(vector double __a, vector double __b) {
2239 return (vector bool long long)(__a >= __b);
2240 }
2241
2242 /*-- vec_cmpgt --------------------------------------------------------------*/
2243
2244 static inline __ATTRS_o_ai vector bool char
vec_cmpgt(vector signed char __a,vector signed char __b)2245 vec_cmpgt(vector signed char __a, vector signed char __b) {
2246 return (vector bool char)(__a > __b);
2247 }
2248
2249 static inline __ATTRS_o_ai vector bool char
vec_cmpgt(vector unsigned char __a,vector unsigned char __b)2250 vec_cmpgt(vector unsigned char __a, vector unsigned char __b) {
2251 return (vector bool char)(__a > __b);
2252 }
2253
2254 static inline __ATTRS_o_ai vector bool short
vec_cmpgt(vector signed short __a,vector signed short __b)2255 vec_cmpgt(vector signed short __a, vector signed short __b) {
2256 return (vector bool short)(__a > __b);
2257 }
2258
2259 static inline __ATTRS_o_ai vector bool short
vec_cmpgt(vector unsigned short __a,vector unsigned short __b)2260 vec_cmpgt(vector unsigned short __a, vector unsigned short __b) {
2261 return (vector bool short)(__a > __b);
2262 }
2263
2264 static inline __ATTRS_o_ai vector bool int
vec_cmpgt(vector signed int __a,vector signed int __b)2265 vec_cmpgt(vector signed int __a, vector signed int __b) {
2266 return (vector bool int)(__a > __b);
2267 }
2268
2269 static inline __ATTRS_o_ai vector bool int
vec_cmpgt(vector unsigned int __a,vector unsigned int __b)2270 vec_cmpgt(vector unsigned int __a, vector unsigned int __b) {
2271 return (vector bool int)(__a > __b);
2272 }
2273
2274 static inline __ATTRS_o_ai vector bool long long
vec_cmpgt(vector signed long long __a,vector signed long long __b)2275 vec_cmpgt(vector signed long long __a, vector signed long long __b) {
2276 return (vector bool long long)(__a > __b);
2277 }
2278
2279 static inline __ATTRS_o_ai vector bool long long
vec_cmpgt(vector unsigned long long __a,vector unsigned long long __b)2280 vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
2281 return (vector bool long long)(__a > __b);
2282 }
2283
2284 #if __ARCH__ >= 12
2285 static inline __ATTRS_o_ai vector bool int
vec_cmpgt(vector float __a,vector float __b)2286 vec_cmpgt(vector float __a, vector float __b) {
2287 return (vector bool int)(__a > __b);
2288 }
2289 #endif
2290
2291 static inline __ATTRS_o_ai vector bool long long
vec_cmpgt(vector double __a,vector double __b)2292 vec_cmpgt(vector double __a, vector double __b) {
2293 return (vector bool long long)(__a > __b);
2294 }
2295
2296 /*-- vec_cmple --------------------------------------------------------------*/
2297
2298 static inline __ATTRS_o_ai vector bool char
vec_cmple(vector signed char __a,vector signed char __b)2299 vec_cmple(vector signed char __a, vector signed char __b) {
2300 return (vector bool char)(__a <= __b);
2301 }
2302
2303 static inline __ATTRS_o_ai vector bool char
vec_cmple(vector unsigned char __a,vector unsigned char __b)2304 vec_cmple(vector unsigned char __a, vector unsigned char __b) {
2305 return (vector bool char)(__a <= __b);
2306 }
2307
2308 static inline __ATTRS_o_ai vector bool short
vec_cmple(vector signed short __a,vector signed short __b)2309 vec_cmple(vector signed short __a, vector signed short __b) {
2310 return (vector bool short)(__a <= __b);
2311 }
2312
2313 static inline __ATTRS_o_ai vector bool short
vec_cmple(vector unsigned short __a,vector unsigned short __b)2314 vec_cmple(vector unsigned short __a, vector unsigned short __b) {
2315 return (vector bool short)(__a <= __b);
2316 }
2317
2318 static inline __ATTRS_o_ai vector bool int
vec_cmple(vector signed int __a,vector signed int __b)2319 vec_cmple(vector signed int __a, vector signed int __b) {
2320 return (vector bool int)(__a <= __b);
2321 }
2322
2323 static inline __ATTRS_o_ai vector bool int
vec_cmple(vector unsigned int __a,vector unsigned int __b)2324 vec_cmple(vector unsigned int __a, vector unsigned int __b) {
2325 return (vector bool int)(__a <= __b);
2326 }
2327
2328 static inline __ATTRS_o_ai vector bool long long
vec_cmple(vector signed long long __a,vector signed long long __b)2329 vec_cmple(vector signed long long __a, vector signed long long __b) {
2330 return (vector bool long long)(__a <= __b);
2331 }
2332
2333 static inline __ATTRS_o_ai vector bool long long
vec_cmple(vector unsigned long long __a,vector unsigned long long __b)2334 vec_cmple(vector unsigned long long __a, vector unsigned long long __b) {
2335 return (vector bool long long)(__a <= __b);
2336 }
2337
2338 #if __ARCH__ >= 12
2339 static inline __ATTRS_o_ai vector bool int
vec_cmple(vector float __a,vector float __b)2340 vec_cmple(vector float __a, vector float __b) {
2341 return (vector bool int)(__a <= __b);
2342 }
2343 #endif
2344
2345 static inline __ATTRS_o_ai vector bool long long
vec_cmple(vector double __a,vector double __b)2346 vec_cmple(vector double __a, vector double __b) {
2347 return (vector bool long long)(__a <= __b);
2348 }
2349
2350 /*-- vec_cmplt --------------------------------------------------------------*/
2351
2352 static inline __ATTRS_o_ai vector bool char
vec_cmplt(vector signed char __a,vector signed char __b)2353 vec_cmplt(vector signed char __a, vector signed char __b) {
2354 return (vector bool char)(__a < __b);
2355 }
2356
2357 static inline __ATTRS_o_ai vector bool char
vec_cmplt(vector unsigned char __a,vector unsigned char __b)2358 vec_cmplt(vector unsigned char __a, vector unsigned char __b) {
2359 return (vector bool char)(__a < __b);
2360 }
2361
2362 static inline __ATTRS_o_ai vector bool short
vec_cmplt(vector signed short __a,vector signed short __b)2363 vec_cmplt(vector signed short __a, vector signed short __b) {
2364 return (vector bool short)(__a < __b);
2365 }
2366
2367 static inline __ATTRS_o_ai vector bool short
vec_cmplt(vector unsigned short __a,vector unsigned short __b)2368 vec_cmplt(vector unsigned short __a, vector unsigned short __b) {
2369 return (vector bool short)(__a < __b);
2370 }
2371
2372 static inline __ATTRS_o_ai vector bool int
vec_cmplt(vector signed int __a,vector signed int __b)2373 vec_cmplt(vector signed int __a, vector signed int __b) {
2374 return (vector bool int)(__a < __b);
2375 }
2376
2377 static inline __ATTRS_o_ai vector bool int
vec_cmplt(vector unsigned int __a,vector unsigned int __b)2378 vec_cmplt(vector unsigned int __a, vector unsigned int __b) {
2379 return (vector bool int)(__a < __b);
2380 }
2381
2382 static inline __ATTRS_o_ai vector bool long long
vec_cmplt(vector signed long long __a,vector signed long long __b)2383 vec_cmplt(vector signed long long __a, vector signed long long __b) {
2384 return (vector bool long long)(__a < __b);
2385 }
2386
2387 static inline __ATTRS_o_ai vector bool long long
vec_cmplt(vector unsigned long long __a,vector unsigned long long __b)2388 vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
2389 return (vector bool long long)(__a < __b);
2390 }
2391
2392 #if __ARCH__ >= 12
2393 static inline __ATTRS_o_ai vector bool int
vec_cmplt(vector float __a,vector float __b)2394 vec_cmplt(vector float __a, vector float __b) {
2395 return (vector bool int)(__a < __b);
2396 }
2397 #endif
2398
2399 static inline __ATTRS_o_ai vector bool long long
vec_cmplt(vector double __a,vector double __b)2400 vec_cmplt(vector double __a, vector double __b) {
2401 return (vector bool long long)(__a < __b);
2402 }
2403
2404 /*-- vec_all_eq -------------------------------------------------------------*/
2405
2406 static inline __ATTRS_o_ai int
vec_all_eq(vector signed char __a,vector signed char __b)2407 vec_all_eq(vector signed char __a, vector signed char __b) {
2408 int __cc;
2409 __builtin_s390_vceqbs(__a, __b, &__cc);
2410 return __cc == 0;
2411 }
2412
2413 // This prototype is deprecated.
2414 static inline __ATTRS_o_ai int
vec_all_eq(vector signed char __a,vector bool char __b)2415 vec_all_eq(vector signed char __a, vector bool char __b) {
2416 int __cc;
2417 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2418 return __cc == 0;
2419 }
2420
2421 // This prototype is deprecated.
2422 static inline __ATTRS_o_ai int
vec_all_eq(vector bool char __a,vector signed char __b)2423 vec_all_eq(vector bool char __a, vector signed char __b) {
2424 int __cc;
2425 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2426 return __cc == 0;
2427 }
2428
2429 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned char __a,vector unsigned char __b)2430 vec_all_eq(vector unsigned char __a, vector unsigned char __b) {
2431 int __cc;
2432 __builtin_s390_vceqbs((vector signed char)__a,
2433 (vector signed char)__b, &__cc);
2434 return __cc == 0;
2435 }
2436
2437 // This prototype is deprecated.
2438 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned char __a,vector bool char __b)2439 vec_all_eq(vector unsigned char __a, vector bool char __b) {
2440 int __cc;
2441 __builtin_s390_vceqbs((vector signed char)__a,
2442 (vector signed char)__b, &__cc);
2443 return __cc == 0;
2444 }
2445
2446 // This prototype is deprecated.
2447 static inline __ATTRS_o_ai int
vec_all_eq(vector bool char __a,vector unsigned char __b)2448 vec_all_eq(vector bool char __a, vector unsigned char __b) {
2449 int __cc;
2450 __builtin_s390_vceqbs((vector signed char)__a,
2451 (vector signed char)__b, &__cc);
2452 return __cc == 0;
2453 }
2454
2455 static inline __ATTRS_o_ai int
vec_all_eq(vector bool char __a,vector bool char __b)2456 vec_all_eq(vector bool char __a, vector bool char __b) {
2457 int __cc;
2458 __builtin_s390_vceqbs((vector signed char)__a,
2459 (vector signed char)__b, &__cc);
2460 return __cc == 0;
2461 }
2462
2463 static inline __ATTRS_o_ai int
vec_all_eq(vector signed short __a,vector signed short __b)2464 vec_all_eq(vector signed short __a, vector signed short __b) {
2465 int __cc;
2466 __builtin_s390_vceqhs(__a, __b, &__cc);
2467 return __cc == 0;
2468 }
2469
2470 // This prototype is deprecated.
2471 static inline __ATTRS_o_ai int
vec_all_eq(vector signed short __a,vector bool short __b)2472 vec_all_eq(vector signed short __a, vector bool short __b) {
2473 int __cc;
2474 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2475 return __cc == 0;
2476 }
2477
2478 // This prototype is deprecated.
2479 static inline __ATTRS_o_ai int
vec_all_eq(vector bool short __a,vector signed short __b)2480 vec_all_eq(vector bool short __a, vector signed short __b) {
2481 int __cc;
2482 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2483 return __cc == 0;
2484 }
2485
2486 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned short __a,vector unsigned short __b)2487 vec_all_eq(vector unsigned short __a, vector unsigned short __b) {
2488 int __cc;
2489 __builtin_s390_vceqhs((vector signed short)__a,
2490 (vector signed short)__b, &__cc);
2491 return __cc == 0;
2492 }
2493
2494 // This prototype is deprecated.
2495 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned short __a,vector bool short __b)2496 vec_all_eq(vector unsigned short __a, vector bool short __b) {
2497 int __cc;
2498 __builtin_s390_vceqhs((vector signed short)__a,
2499 (vector signed short)__b, &__cc);
2500 return __cc == 0;
2501 }
2502
2503 // This prototype is deprecated.
2504 static inline __ATTRS_o_ai int
vec_all_eq(vector bool short __a,vector unsigned short __b)2505 vec_all_eq(vector bool short __a, vector unsigned short __b) {
2506 int __cc;
2507 __builtin_s390_vceqhs((vector signed short)__a,
2508 (vector signed short)__b, &__cc);
2509 return __cc == 0;
2510 }
2511
2512 static inline __ATTRS_o_ai int
vec_all_eq(vector bool short __a,vector bool short __b)2513 vec_all_eq(vector bool short __a, vector bool short __b) {
2514 int __cc;
2515 __builtin_s390_vceqhs((vector signed short)__a,
2516 (vector signed short)__b, &__cc);
2517 return __cc == 0;
2518 }
2519
2520 static inline __ATTRS_o_ai int
vec_all_eq(vector signed int __a,vector signed int __b)2521 vec_all_eq(vector signed int __a, vector signed int __b) {
2522 int __cc;
2523 __builtin_s390_vceqfs(__a, __b, &__cc);
2524 return __cc == 0;
2525 }
2526
2527 // This prototype is deprecated.
2528 static inline __ATTRS_o_ai int
vec_all_eq(vector signed int __a,vector bool int __b)2529 vec_all_eq(vector signed int __a, vector bool int __b) {
2530 int __cc;
2531 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2532 return __cc == 0;
2533 }
2534
2535 // This prototype is deprecated.
2536 static inline __ATTRS_o_ai int
vec_all_eq(vector bool int __a,vector signed int __b)2537 vec_all_eq(vector bool int __a, vector signed int __b) {
2538 int __cc;
2539 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2540 return __cc == 0;
2541 }
2542
2543 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned int __a,vector unsigned int __b)2544 vec_all_eq(vector unsigned int __a, vector unsigned int __b) {
2545 int __cc;
2546 __builtin_s390_vceqfs((vector signed int)__a,
2547 (vector signed int)__b, &__cc);
2548 return __cc == 0;
2549 }
2550
2551 // This prototype is deprecated.
2552 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned int __a,vector bool int __b)2553 vec_all_eq(vector unsigned int __a, vector bool int __b) {
2554 int __cc;
2555 __builtin_s390_vceqfs((vector signed int)__a,
2556 (vector signed int)__b, &__cc);
2557 return __cc == 0;
2558 }
2559
2560 // This prototype is deprecated.
2561 static inline __ATTRS_o_ai int
vec_all_eq(vector bool int __a,vector unsigned int __b)2562 vec_all_eq(vector bool int __a, vector unsigned int __b) {
2563 int __cc;
2564 __builtin_s390_vceqfs((vector signed int)__a,
2565 (vector signed int)__b, &__cc);
2566 return __cc == 0;
2567 }
2568
2569 static inline __ATTRS_o_ai int
vec_all_eq(vector bool int __a,vector bool int __b)2570 vec_all_eq(vector bool int __a, vector bool int __b) {
2571 int __cc;
2572 __builtin_s390_vceqfs((vector signed int)__a,
2573 (vector signed int)__b, &__cc);
2574 return __cc == 0;
2575 }
2576
2577 static inline __ATTRS_o_ai int
vec_all_eq(vector signed long long __a,vector signed long long __b)2578 vec_all_eq(vector signed long long __a, vector signed long long __b) {
2579 int __cc;
2580 __builtin_s390_vceqgs(__a, __b, &__cc);
2581 return __cc == 0;
2582 }
2583
2584 // This prototype is deprecated.
2585 static inline __ATTRS_o_ai int
vec_all_eq(vector signed long long __a,vector bool long long __b)2586 vec_all_eq(vector signed long long __a, vector bool long long __b) {
2587 int __cc;
2588 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2589 return __cc == 0;
2590 }
2591
2592 // This prototype is deprecated.
2593 static inline __ATTRS_o_ai int
vec_all_eq(vector bool long long __a,vector signed long long __b)2594 vec_all_eq(vector bool long long __a, vector signed long long __b) {
2595 int __cc;
2596 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2597 return __cc == 0;
2598 }
2599
2600 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned long long __a,vector unsigned long long __b)2601 vec_all_eq(vector unsigned long long __a, vector unsigned long long __b) {
2602 int __cc;
2603 __builtin_s390_vceqgs((vector signed long long)__a,
2604 (vector signed long long)__b, &__cc);
2605 return __cc == 0;
2606 }
2607
2608 // This prototype is deprecated.
2609 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned long long __a,vector bool long long __b)2610 vec_all_eq(vector unsigned long long __a, vector bool long long __b) {
2611 int __cc;
2612 __builtin_s390_vceqgs((vector signed long long)__a,
2613 (vector signed long long)__b, &__cc);
2614 return __cc == 0;
2615 }
2616
2617 // This prototype is deprecated.
2618 static inline __ATTRS_o_ai int
vec_all_eq(vector bool long long __a,vector unsigned long long __b)2619 vec_all_eq(vector bool long long __a, vector unsigned long long __b) {
2620 int __cc;
2621 __builtin_s390_vceqgs((vector signed long long)__a,
2622 (vector signed long long)__b, &__cc);
2623 return __cc == 0;
2624 }
2625
2626 static inline __ATTRS_o_ai int
vec_all_eq(vector bool long long __a,vector bool long long __b)2627 vec_all_eq(vector bool long long __a, vector bool long long __b) {
2628 int __cc;
2629 __builtin_s390_vceqgs((vector signed long long)__a,
2630 (vector signed long long)__b, &__cc);
2631 return __cc == 0;
2632 }
2633
2634 #if __ARCH__ >= 12
2635 static inline __ATTRS_o_ai int
vec_all_eq(vector float __a,vector float __b)2636 vec_all_eq(vector float __a, vector float __b) {
2637 int __cc;
2638 __builtin_s390_vfcesbs(__a, __b, &__cc);
2639 return __cc == 0;
2640 }
2641 #endif
2642
2643 static inline __ATTRS_o_ai int
vec_all_eq(vector double __a,vector double __b)2644 vec_all_eq(vector double __a, vector double __b) {
2645 int __cc;
2646 __builtin_s390_vfcedbs(__a, __b, &__cc);
2647 return __cc == 0;
2648 }
2649
2650 /*-- vec_all_ne -------------------------------------------------------------*/
2651
2652 static inline __ATTRS_o_ai int
vec_all_ne(vector signed char __a,vector signed char __b)2653 vec_all_ne(vector signed char __a, vector signed char __b) {
2654 int __cc;
2655 __builtin_s390_vceqbs(__a, __b, &__cc);
2656 return __cc == 3;
2657 }
2658
2659 // This prototype is deprecated.
2660 static inline __ATTRS_o_ai int
vec_all_ne(vector signed char __a,vector bool char __b)2661 vec_all_ne(vector signed char __a, vector bool char __b) {
2662 int __cc;
2663 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2664 return __cc == 3;
2665 }
2666
2667 // This prototype is deprecated.
2668 static inline __ATTRS_o_ai int
vec_all_ne(vector bool char __a,vector signed char __b)2669 vec_all_ne(vector bool char __a, vector signed char __b) {
2670 int __cc;
2671 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2672 return __cc == 3;
2673 }
2674
2675 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned char __a,vector unsigned char __b)2676 vec_all_ne(vector unsigned char __a, vector unsigned char __b) {
2677 int __cc;
2678 __builtin_s390_vceqbs((vector signed char)__a,
2679 (vector signed char)__b, &__cc);
2680 return __cc == 3;
2681 }
2682
2683 // This prototype is deprecated.
2684 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned char __a,vector bool char __b)2685 vec_all_ne(vector unsigned char __a, vector bool char __b) {
2686 int __cc;
2687 __builtin_s390_vceqbs((vector signed char)__a,
2688 (vector signed char)__b, &__cc);
2689 return __cc == 3;
2690 }
2691
2692 // This prototype is deprecated.
2693 static inline __ATTRS_o_ai int
vec_all_ne(vector bool char __a,vector unsigned char __b)2694 vec_all_ne(vector bool char __a, vector unsigned char __b) {
2695 int __cc;
2696 __builtin_s390_vceqbs((vector signed char)__a,
2697 (vector signed char)__b, &__cc);
2698 return __cc == 3;
2699 }
2700
2701 static inline __ATTRS_o_ai int
vec_all_ne(vector bool char __a,vector bool char __b)2702 vec_all_ne(vector bool char __a, vector bool char __b) {
2703 int __cc;
2704 __builtin_s390_vceqbs((vector signed char)__a,
2705 (vector signed char)__b, &__cc);
2706 return __cc == 3;
2707 }
2708
2709 static inline __ATTRS_o_ai int
vec_all_ne(vector signed short __a,vector signed short __b)2710 vec_all_ne(vector signed short __a, vector signed short __b) {
2711 int __cc;
2712 __builtin_s390_vceqhs(__a, __b, &__cc);
2713 return __cc == 3;
2714 }
2715
2716 // This prototype is deprecated.
2717 static inline __ATTRS_o_ai int
vec_all_ne(vector signed short __a,vector bool short __b)2718 vec_all_ne(vector signed short __a, vector bool short __b) {
2719 int __cc;
2720 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2721 return __cc == 3;
2722 }
2723
2724 // This prototype is deprecated.
2725 static inline __ATTRS_o_ai int
vec_all_ne(vector bool short __a,vector signed short __b)2726 vec_all_ne(vector bool short __a, vector signed short __b) {
2727 int __cc;
2728 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2729 return __cc == 3;
2730 }
2731
2732 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned short __a,vector unsigned short __b)2733 vec_all_ne(vector unsigned short __a, vector unsigned short __b) {
2734 int __cc;
2735 __builtin_s390_vceqhs((vector signed short)__a,
2736 (vector signed short)__b, &__cc);
2737 return __cc == 3;
2738 }
2739
2740 // This prototype is deprecated.
2741 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned short __a,vector bool short __b)2742 vec_all_ne(vector unsigned short __a, vector bool short __b) {
2743 int __cc;
2744 __builtin_s390_vceqhs((vector signed short)__a,
2745 (vector signed short)__b, &__cc);
2746 return __cc == 3;
2747 }
2748
2749 // This prototype is deprecated.
2750 static inline __ATTRS_o_ai int
vec_all_ne(vector bool short __a,vector unsigned short __b)2751 vec_all_ne(vector bool short __a, vector unsigned short __b) {
2752 int __cc;
2753 __builtin_s390_vceqhs((vector signed short)__a,
2754 (vector signed short)__b, &__cc);
2755 return __cc == 3;
2756 }
2757
2758 static inline __ATTRS_o_ai int
vec_all_ne(vector bool short __a,vector bool short __b)2759 vec_all_ne(vector bool short __a, vector bool short __b) {
2760 int __cc;
2761 __builtin_s390_vceqhs((vector signed short)__a,
2762 (vector signed short)__b, &__cc);
2763 return __cc == 3;
2764 }
2765
2766 static inline __ATTRS_o_ai int
vec_all_ne(vector signed int __a,vector signed int __b)2767 vec_all_ne(vector signed int __a, vector signed int __b) {
2768 int __cc;
2769 __builtin_s390_vceqfs(__a, __b, &__cc);
2770 return __cc == 3;
2771 }
2772
2773 // This prototype is deprecated.
2774 static inline __ATTRS_o_ai int
vec_all_ne(vector signed int __a,vector bool int __b)2775 vec_all_ne(vector signed int __a, vector bool int __b) {
2776 int __cc;
2777 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2778 return __cc == 3;
2779 }
2780
2781 // This prototype is deprecated.
2782 static inline __ATTRS_o_ai int
vec_all_ne(vector bool int __a,vector signed int __b)2783 vec_all_ne(vector bool int __a, vector signed int __b) {
2784 int __cc;
2785 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2786 return __cc == 3;
2787 }
2788
2789 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned int __a,vector unsigned int __b)2790 vec_all_ne(vector unsigned int __a, vector unsigned int __b) {
2791 int __cc;
2792 __builtin_s390_vceqfs((vector signed int)__a,
2793 (vector signed int)__b, &__cc);
2794 return __cc == 3;
2795 }
2796
2797 // This prototype is deprecated.
2798 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned int __a,vector bool int __b)2799 vec_all_ne(vector unsigned int __a, vector bool int __b) {
2800 int __cc;
2801 __builtin_s390_vceqfs((vector signed int)__a,
2802 (vector signed int)__b, &__cc);
2803 return __cc == 3;
2804 }
2805
2806 // This prototype is deprecated.
2807 static inline __ATTRS_o_ai int
vec_all_ne(vector bool int __a,vector unsigned int __b)2808 vec_all_ne(vector bool int __a, vector unsigned int __b) {
2809 int __cc;
2810 __builtin_s390_vceqfs((vector signed int)__a,
2811 (vector signed int)__b, &__cc);
2812 return __cc == 3;
2813 }
2814
2815 static inline __ATTRS_o_ai int
vec_all_ne(vector bool int __a,vector bool int __b)2816 vec_all_ne(vector bool int __a, vector bool int __b) {
2817 int __cc;
2818 __builtin_s390_vceqfs((vector signed int)__a,
2819 (vector signed int)__b, &__cc);
2820 return __cc == 3;
2821 }
2822
2823 static inline __ATTRS_o_ai int
vec_all_ne(vector signed long long __a,vector signed long long __b)2824 vec_all_ne(vector signed long long __a, vector signed long long __b) {
2825 int __cc;
2826 __builtin_s390_vceqgs(__a, __b, &__cc);
2827 return __cc == 3;
2828 }
2829
2830 // This prototype is deprecated.
2831 static inline __ATTRS_o_ai int
vec_all_ne(vector signed long long __a,vector bool long long __b)2832 vec_all_ne(vector signed long long __a, vector bool long long __b) {
2833 int __cc;
2834 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2835 return __cc == 3;
2836 }
2837
2838 // This prototype is deprecated.
2839 static inline __ATTRS_o_ai int
vec_all_ne(vector bool long long __a,vector signed long long __b)2840 vec_all_ne(vector bool long long __a, vector signed long long __b) {
2841 int __cc;
2842 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2843 return __cc == 3;
2844 }
2845
2846 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned long long __a,vector unsigned long long __b)2847 vec_all_ne(vector unsigned long long __a, vector unsigned long long __b) {
2848 int __cc;
2849 __builtin_s390_vceqgs((vector signed long long)__a,
2850 (vector signed long long)__b, &__cc);
2851 return __cc == 3;
2852 }
2853
2854 // This prototype is deprecated.
2855 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned long long __a,vector bool long long __b)2856 vec_all_ne(vector unsigned long long __a, vector bool long long __b) {
2857 int __cc;
2858 __builtin_s390_vceqgs((vector signed long long)__a,
2859 (vector signed long long)__b, &__cc);
2860 return __cc == 3;
2861 }
2862
2863 // This prototype is deprecated.
2864 static inline __ATTRS_o_ai int
vec_all_ne(vector bool long long __a,vector unsigned long long __b)2865 vec_all_ne(vector bool long long __a, vector unsigned long long __b) {
2866 int __cc;
2867 __builtin_s390_vceqgs((vector signed long long)__a,
2868 (vector signed long long)__b, &__cc);
2869 return __cc == 3;
2870 }
2871
2872 static inline __ATTRS_o_ai int
vec_all_ne(vector bool long long __a,vector bool long long __b)2873 vec_all_ne(vector bool long long __a, vector bool long long __b) {
2874 int __cc;
2875 __builtin_s390_vceqgs((vector signed long long)__a,
2876 (vector signed long long)__b, &__cc);
2877 return __cc == 3;
2878 }
2879
2880 #if __ARCH__ >= 12
2881 static inline __ATTRS_o_ai int
vec_all_ne(vector float __a,vector float __b)2882 vec_all_ne(vector float __a, vector float __b) {
2883 int __cc;
2884 __builtin_s390_vfcesbs(__a, __b, &__cc);
2885 return __cc == 3;
2886 }
2887 #endif
2888
2889 static inline __ATTRS_o_ai int
vec_all_ne(vector double __a,vector double __b)2890 vec_all_ne(vector double __a, vector double __b) {
2891 int __cc;
2892 __builtin_s390_vfcedbs(__a, __b, &__cc);
2893 return __cc == 3;
2894 }
2895
2896 /*-- vec_all_ge -------------------------------------------------------------*/
2897
2898 static inline __ATTRS_o_ai int
vec_all_ge(vector signed char __a,vector signed char __b)2899 vec_all_ge(vector signed char __a, vector signed char __b) {
2900 int __cc;
2901 __builtin_s390_vchbs(__b, __a, &__cc);
2902 return __cc == 3;
2903 }
2904
2905 // This prototype is deprecated.
2906 static inline __ATTRS_o_ai int
vec_all_ge(vector signed char __a,vector bool char __b)2907 vec_all_ge(vector signed char __a, vector bool char __b) {
2908 int __cc;
2909 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
2910 return __cc == 3;
2911 }
2912
2913 // This prototype is deprecated.
2914 static inline __ATTRS_o_ai int
vec_all_ge(vector bool char __a,vector signed char __b)2915 vec_all_ge(vector bool char __a, vector signed char __b) {
2916 int __cc;
2917 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
2918 return __cc == 3;
2919 }
2920
2921 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned char __a,vector unsigned char __b)2922 vec_all_ge(vector unsigned char __a, vector unsigned char __b) {
2923 int __cc;
2924 __builtin_s390_vchlbs(__b, __a, &__cc);
2925 return __cc == 3;
2926 }
2927
2928 // This prototype is deprecated.
2929 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned char __a,vector bool char __b)2930 vec_all_ge(vector unsigned char __a, vector bool char __b) {
2931 int __cc;
2932 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
2933 return __cc == 3;
2934 }
2935
2936 // This prototype is deprecated.
2937 static inline __ATTRS_o_ai int
vec_all_ge(vector bool char __a,vector unsigned char __b)2938 vec_all_ge(vector bool char __a, vector unsigned char __b) {
2939 int __cc;
2940 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
2941 return __cc == 3;
2942 }
2943
2944 // This prototype is deprecated.
2945 static inline __ATTRS_o_ai int
vec_all_ge(vector bool char __a,vector bool char __b)2946 vec_all_ge(vector bool char __a, vector bool char __b) {
2947 int __cc;
2948 __builtin_s390_vchlbs((vector unsigned char)__b,
2949 (vector unsigned char)__a, &__cc);
2950 return __cc == 3;
2951 }
2952
2953 static inline __ATTRS_o_ai int
vec_all_ge(vector signed short __a,vector signed short __b)2954 vec_all_ge(vector signed short __a, vector signed short __b) {
2955 int __cc;
2956 __builtin_s390_vchhs(__b, __a, &__cc);
2957 return __cc == 3;
2958 }
2959
2960 // This prototype is deprecated.
2961 static inline __ATTRS_o_ai int
vec_all_ge(vector signed short __a,vector bool short __b)2962 vec_all_ge(vector signed short __a, vector bool short __b) {
2963 int __cc;
2964 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
2965 return __cc == 3;
2966 }
2967
2968 // This prototype is deprecated.
2969 static inline __ATTRS_o_ai int
vec_all_ge(vector bool short __a,vector signed short __b)2970 vec_all_ge(vector bool short __a, vector signed short __b) {
2971 int __cc;
2972 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
2973 return __cc == 3;
2974 }
2975
2976 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned short __a,vector unsigned short __b)2977 vec_all_ge(vector unsigned short __a, vector unsigned short __b) {
2978 int __cc;
2979 __builtin_s390_vchlhs(__b, __a, &__cc);
2980 return __cc == 3;
2981 }
2982
2983 // This prototype is deprecated.
2984 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned short __a,vector bool short __b)2985 vec_all_ge(vector unsigned short __a, vector bool short __b) {
2986 int __cc;
2987 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
2988 return __cc == 3;
2989 }
2990
2991 // This prototype is deprecated.
2992 static inline __ATTRS_o_ai int
vec_all_ge(vector bool short __a,vector unsigned short __b)2993 vec_all_ge(vector bool short __a, vector unsigned short __b) {
2994 int __cc;
2995 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
2996 return __cc == 3;
2997 }
2998
2999 // This prototype is deprecated.
3000 static inline __ATTRS_o_ai int
vec_all_ge(vector bool short __a,vector bool short __b)3001 vec_all_ge(vector bool short __a, vector bool short __b) {
3002 int __cc;
3003 __builtin_s390_vchlhs((vector unsigned short)__b,
3004 (vector unsigned short)__a, &__cc);
3005 return __cc == 3;
3006 }
3007
3008 static inline __ATTRS_o_ai int
vec_all_ge(vector signed int __a,vector signed int __b)3009 vec_all_ge(vector signed int __a, vector signed int __b) {
3010 int __cc;
3011 __builtin_s390_vchfs(__b, __a, &__cc);
3012 return __cc == 3;
3013 }
3014
3015 // This prototype is deprecated.
3016 static inline __ATTRS_o_ai int
vec_all_ge(vector signed int __a,vector bool int __b)3017 vec_all_ge(vector signed int __a, vector bool int __b) {
3018 int __cc;
3019 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3020 return __cc == 3;
3021 }
3022
3023 // This prototype is deprecated.
3024 static inline __ATTRS_o_ai int
vec_all_ge(vector bool int __a,vector signed int __b)3025 vec_all_ge(vector bool int __a, vector signed int __b) {
3026 int __cc;
3027 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3028 return __cc == 3;
3029 }
3030
3031 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned int __a,vector unsigned int __b)3032 vec_all_ge(vector unsigned int __a, vector unsigned int __b) {
3033 int __cc;
3034 __builtin_s390_vchlfs(__b, __a, &__cc);
3035 return __cc == 3;
3036 }
3037
3038 // This prototype is deprecated.
3039 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned int __a,vector bool int __b)3040 vec_all_ge(vector unsigned int __a, vector bool int __b) {
3041 int __cc;
3042 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3043 return __cc == 3;
3044 }
3045
3046 // This prototype is deprecated.
3047 static inline __ATTRS_o_ai int
vec_all_ge(vector bool int __a,vector unsigned int __b)3048 vec_all_ge(vector bool int __a, vector unsigned int __b) {
3049 int __cc;
3050 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3051 return __cc == 3;
3052 }
3053
3054 // This prototype is deprecated.
3055 static inline __ATTRS_o_ai int
vec_all_ge(vector bool int __a,vector bool int __b)3056 vec_all_ge(vector bool int __a, vector bool int __b) {
3057 int __cc;
3058 __builtin_s390_vchlfs((vector unsigned int)__b,
3059 (vector unsigned int)__a, &__cc);
3060 return __cc == 3;
3061 }
3062
3063 static inline __ATTRS_o_ai int
vec_all_ge(vector signed long long __a,vector signed long long __b)3064 vec_all_ge(vector signed long long __a, vector signed long long __b) {
3065 int __cc;
3066 __builtin_s390_vchgs(__b, __a, &__cc);
3067 return __cc == 3;
3068 }
3069
3070 // This prototype is deprecated.
3071 static inline __ATTRS_o_ai int
vec_all_ge(vector signed long long __a,vector bool long long __b)3072 vec_all_ge(vector signed long long __a, vector bool long long __b) {
3073 int __cc;
3074 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3075 return __cc == 3;
3076 }
3077
3078 // This prototype is deprecated.
3079 static inline __ATTRS_o_ai int
vec_all_ge(vector bool long long __a,vector signed long long __b)3080 vec_all_ge(vector bool long long __a, vector signed long long __b) {
3081 int __cc;
3082 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3083 return __cc == 3;
3084 }
3085
3086 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned long long __a,vector unsigned long long __b)3087 vec_all_ge(vector unsigned long long __a, vector unsigned long long __b) {
3088 int __cc;
3089 __builtin_s390_vchlgs(__b, __a, &__cc);
3090 return __cc == 3;
3091 }
3092
3093 // This prototype is deprecated.
3094 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned long long __a,vector bool long long __b)3095 vec_all_ge(vector unsigned long long __a, vector bool long long __b) {
3096 int __cc;
3097 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3098 return __cc == 3;
3099 }
3100
3101 // This prototype is deprecated.
3102 static inline __ATTRS_o_ai int
vec_all_ge(vector bool long long __a,vector unsigned long long __b)3103 vec_all_ge(vector bool long long __a, vector unsigned long long __b) {
3104 int __cc;
3105 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3106 return __cc == 3;
3107 }
3108
3109 // This prototype is deprecated.
3110 static inline __ATTRS_o_ai int
vec_all_ge(vector bool long long __a,vector bool long long __b)3111 vec_all_ge(vector bool long long __a, vector bool long long __b) {
3112 int __cc;
3113 __builtin_s390_vchlgs((vector unsigned long long)__b,
3114 (vector unsigned long long)__a, &__cc);
3115 return __cc == 3;
3116 }
3117
3118 #if __ARCH__ >= 12
3119 static inline __ATTRS_o_ai int
vec_all_ge(vector float __a,vector float __b)3120 vec_all_ge(vector float __a, vector float __b) {
3121 int __cc;
3122 __builtin_s390_vfchesbs(__a, __b, &__cc);
3123 return __cc == 0;
3124 }
3125 #endif
3126
3127 static inline __ATTRS_o_ai int
vec_all_ge(vector double __a,vector double __b)3128 vec_all_ge(vector double __a, vector double __b) {
3129 int __cc;
3130 __builtin_s390_vfchedbs(__a, __b, &__cc);
3131 return __cc == 0;
3132 }
3133
3134 /*-- vec_all_gt -------------------------------------------------------------*/
3135
3136 static inline __ATTRS_o_ai int
vec_all_gt(vector signed char __a,vector signed char __b)3137 vec_all_gt(vector signed char __a, vector signed char __b) {
3138 int __cc;
3139 __builtin_s390_vchbs(__a, __b, &__cc);
3140 return __cc == 0;
3141 }
3142
3143 // This prototype is deprecated.
3144 static inline __ATTRS_o_ai int
vec_all_gt(vector signed char __a,vector bool char __b)3145 vec_all_gt(vector signed char __a, vector bool char __b) {
3146 int __cc;
3147 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
3148 return __cc == 0;
3149 }
3150
3151 // This prototype is deprecated.
3152 static inline __ATTRS_o_ai int
vec_all_gt(vector bool char __a,vector signed char __b)3153 vec_all_gt(vector bool char __a, vector signed char __b) {
3154 int __cc;
3155 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
3156 return __cc == 0;
3157 }
3158
3159 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned char __a,vector unsigned char __b)3160 vec_all_gt(vector unsigned char __a, vector unsigned char __b) {
3161 int __cc;
3162 __builtin_s390_vchlbs(__a, __b, &__cc);
3163 return __cc == 0;
3164 }
3165
3166 // This prototype is deprecated.
3167 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned char __a,vector bool char __b)3168 vec_all_gt(vector unsigned char __a, vector bool char __b) {
3169 int __cc;
3170 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
3171 return __cc == 0;
3172 }
3173
3174 // This prototype is deprecated.
3175 static inline __ATTRS_o_ai int
vec_all_gt(vector bool char __a,vector unsigned char __b)3176 vec_all_gt(vector bool char __a, vector unsigned char __b) {
3177 int __cc;
3178 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
3179 return __cc == 0;
3180 }
3181
3182 // This prototype is deprecated.
3183 static inline __ATTRS_o_ai int
vec_all_gt(vector bool char __a,vector bool char __b)3184 vec_all_gt(vector bool char __a, vector bool char __b) {
3185 int __cc;
3186 __builtin_s390_vchlbs((vector unsigned char)__a,
3187 (vector unsigned char)__b, &__cc);
3188 return __cc == 0;
3189 }
3190
3191 static inline __ATTRS_o_ai int
vec_all_gt(vector signed short __a,vector signed short __b)3192 vec_all_gt(vector signed short __a, vector signed short __b) {
3193 int __cc;
3194 __builtin_s390_vchhs(__a, __b, &__cc);
3195 return __cc == 0;
3196 }
3197
3198 // This prototype is deprecated.
3199 static inline __ATTRS_o_ai int
vec_all_gt(vector signed short __a,vector bool short __b)3200 vec_all_gt(vector signed short __a, vector bool short __b) {
3201 int __cc;
3202 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
3203 return __cc == 0;
3204 }
3205
3206 // This prototype is deprecated.
3207 static inline __ATTRS_o_ai int
vec_all_gt(vector bool short __a,vector signed short __b)3208 vec_all_gt(vector bool short __a, vector signed short __b) {
3209 int __cc;
3210 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
3211 return __cc == 0;
3212 }
3213
3214 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned short __a,vector unsigned short __b)3215 vec_all_gt(vector unsigned short __a, vector unsigned short __b) {
3216 int __cc;
3217 __builtin_s390_vchlhs(__a, __b, &__cc);
3218 return __cc == 0;
3219 }
3220
3221 // This prototype is deprecated.
3222 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned short __a,vector bool short __b)3223 vec_all_gt(vector unsigned short __a, vector bool short __b) {
3224 int __cc;
3225 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3226 return __cc == 0;
3227 }
3228
3229 // This prototype is deprecated.
3230 static inline __ATTRS_o_ai int
vec_all_gt(vector bool short __a,vector unsigned short __b)3231 vec_all_gt(vector bool short __a, vector unsigned short __b) {
3232 int __cc;
3233 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3234 return __cc == 0;
3235 }
3236
3237 // This prototype is deprecated.
3238 static inline __ATTRS_o_ai int
vec_all_gt(vector bool short __a,vector bool short __b)3239 vec_all_gt(vector bool short __a, vector bool short __b) {
3240 int __cc;
3241 __builtin_s390_vchlhs((vector unsigned short)__a,
3242 (vector unsigned short)__b, &__cc);
3243 return __cc == 0;
3244 }
3245
3246 static inline __ATTRS_o_ai int
vec_all_gt(vector signed int __a,vector signed int __b)3247 vec_all_gt(vector signed int __a, vector signed int __b) {
3248 int __cc;
3249 __builtin_s390_vchfs(__a, __b, &__cc);
3250 return __cc == 0;
3251 }
3252
3253 // This prototype is deprecated.
3254 static inline __ATTRS_o_ai int
vec_all_gt(vector signed int __a,vector bool int __b)3255 vec_all_gt(vector signed int __a, vector bool int __b) {
3256 int __cc;
3257 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3258 return __cc == 0;
3259 }
3260
3261 // This prototype is deprecated.
3262 static inline __ATTRS_o_ai int
vec_all_gt(vector bool int __a,vector signed int __b)3263 vec_all_gt(vector bool int __a, vector signed int __b) {
3264 int __cc;
3265 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3266 return __cc == 0;
3267 }
3268
3269 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned int __a,vector unsigned int __b)3270 vec_all_gt(vector unsigned int __a, vector unsigned int __b) {
3271 int __cc;
3272 __builtin_s390_vchlfs(__a, __b, &__cc);
3273 return __cc == 0;
3274 }
3275
3276 // This prototype is deprecated.
3277 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned int __a,vector bool int __b)3278 vec_all_gt(vector unsigned int __a, vector bool int __b) {
3279 int __cc;
3280 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3281 return __cc == 0;
3282 }
3283
3284 // This prototype is deprecated.
3285 static inline __ATTRS_o_ai int
vec_all_gt(vector bool int __a,vector unsigned int __b)3286 vec_all_gt(vector bool int __a, vector unsigned int __b) {
3287 int __cc;
3288 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3289 return __cc == 0;
3290 }
3291
3292 // This prototype is deprecated.
3293 static inline __ATTRS_o_ai int
vec_all_gt(vector bool int __a,vector bool int __b)3294 vec_all_gt(vector bool int __a, vector bool int __b) {
3295 int __cc;
3296 __builtin_s390_vchlfs((vector unsigned int)__a,
3297 (vector unsigned int)__b, &__cc);
3298 return __cc == 0;
3299 }
3300
3301 static inline __ATTRS_o_ai int
vec_all_gt(vector signed long long __a,vector signed long long __b)3302 vec_all_gt(vector signed long long __a, vector signed long long __b) {
3303 int __cc;
3304 __builtin_s390_vchgs(__a, __b, &__cc);
3305 return __cc == 0;
3306 }
3307
3308 // This prototype is deprecated.
3309 static inline __ATTRS_o_ai int
vec_all_gt(vector signed long long __a,vector bool long long __b)3310 vec_all_gt(vector signed long long __a, vector bool long long __b) {
3311 int __cc;
3312 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3313 return __cc == 0;
3314 }
3315
3316 // This prototype is deprecated.
3317 static inline __ATTRS_o_ai int
vec_all_gt(vector bool long long __a,vector signed long long __b)3318 vec_all_gt(vector bool long long __a, vector signed long long __b) {
3319 int __cc;
3320 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3321 return __cc == 0;
3322 }
3323
3324 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned long long __a,vector unsigned long long __b)3325 vec_all_gt(vector unsigned long long __a, vector unsigned long long __b) {
3326 int __cc;
3327 __builtin_s390_vchlgs(__a, __b, &__cc);
3328 return __cc == 0;
3329 }
3330
3331 // This prototype is deprecated.
3332 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned long long __a,vector bool long long __b)3333 vec_all_gt(vector unsigned long long __a, vector bool long long __b) {
3334 int __cc;
3335 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3336 return __cc == 0;
3337 }
3338
3339 // This prototype is deprecated.
3340 static inline __ATTRS_o_ai int
vec_all_gt(vector bool long long __a,vector unsigned long long __b)3341 vec_all_gt(vector bool long long __a, vector unsigned long long __b) {
3342 int __cc;
3343 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3344 return __cc == 0;
3345 }
3346
3347 // This prototype is deprecated.
3348 static inline __ATTRS_o_ai int
vec_all_gt(vector bool long long __a,vector bool long long __b)3349 vec_all_gt(vector bool long long __a, vector bool long long __b) {
3350 int __cc;
3351 __builtin_s390_vchlgs((vector unsigned long long)__a,
3352 (vector unsigned long long)__b, &__cc);
3353 return __cc == 0;
3354 }
3355
3356 #if __ARCH__ >= 12
3357 static inline __ATTRS_o_ai int
vec_all_gt(vector float __a,vector float __b)3358 vec_all_gt(vector float __a, vector float __b) {
3359 int __cc;
3360 __builtin_s390_vfchsbs(__a, __b, &__cc);
3361 return __cc == 0;
3362 }
3363 #endif
3364
3365 static inline __ATTRS_o_ai int
vec_all_gt(vector double __a,vector double __b)3366 vec_all_gt(vector double __a, vector double __b) {
3367 int __cc;
3368 __builtin_s390_vfchdbs(__a, __b, &__cc);
3369 return __cc == 0;
3370 }
3371
3372 /*-- vec_all_le -------------------------------------------------------------*/
3373
3374 static inline __ATTRS_o_ai int
vec_all_le(vector signed char __a,vector signed char __b)3375 vec_all_le(vector signed char __a, vector signed char __b) {
3376 int __cc;
3377 __builtin_s390_vchbs(__a, __b, &__cc);
3378 return __cc == 3;
3379 }
3380
3381 // This prototype is deprecated.
3382 static inline __ATTRS_o_ai int
vec_all_le(vector signed char __a,vector bool char __b)3383 vec_all_le(vector signed char __a, vector bool char __b) {
3384 int __cc;
3385 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
3386 return __cc == 3;
3387 }
3388
3389 // This prototype is deprecated.
3390 static inline __ATTRS_o_ai int
vec_all_le(vector bool char __a,vector signed char __b)3391 vec_all_le(vector bool char __a, vector signed char __b) {
3392 int __cc;
3393 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
3394 return __cc == 3;
3395 }
3396
3397 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned char __a,vector unsigned char __b)3398 vec_all_le(vector unsigned char __a, vector unsigned char __b) {
3399 int __cc;
3400 __builtin_s390_vchlbs(__a, __b, &__cc);
3401 return __cc == 3;
3402 }
3403
3404 // This prototype is deprecated.
3405 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned char __a,vector bool char __b)3406 vec_all_le(vector unsigned char __a, vector bool char __b) {
3407 int __cc;
3408 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
3409 return __cc == 3;
3410 }
3411
3412 // This prototype is deprecated.
3413 static inline __ATTRS_o_ai int
vec_all_le(vector bool char __a,vector unsigned char __b)3414 vec_all_le(vector bool char __a, vector unsigned char __b) {
3415 int __cc;
3416 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
3417 return __cc == 3;
3418 }
3419
3420 // This prototype is deprecated.
3421 static inline __ATTRS_o_ai int
vec_all_le(vector bool char __a,vector bool char __b)3422 vec_all_le(vector bool char __a, vector bool char __b) {
3423 int __cc;
3424 __builtin_s390_vchlbs((vector unsigned char)__a,
3425 (vector unsigned char)__b, &__cc);
3426 return __cc == 3;
3427 }
3428
3429 static inline __ATTRS_o_ai int
vec_all_le(vector signed short __a,vector signed short __b)3430 vec_all_le(vector signed short __a, vector signed short __b) {
3431 int __cc;
3432 __builtin_s390_vchhs(__a, __b, &__cc);
3433 return __cc == 3;
3434 }
3435
3436 // This prototype is deprecated.
3437 static inline __ATTRS_o_ai int
vec_all_le(vector signed short __a,vector bool short __b)3438 vec_all_le(vector signed short __a, vector bool short __b) {
3439 int __cc;
3440 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
3441 return __cc == 3;
3442 }
3443
3444 // This prototype is deprecated.
3445 static inline __ATTRS_o_ai int
vec_all_le(vector bool short __a,vector signed short __b)3446 vec_all_le(vector bool short __a, vector signed short __b) {
3447 int __cc;
3448 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
3449 return __cc == 3;
3450 }
3451
3452 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned short __a,vector unsigned short __b)3453 vec_all_le(vector unsigned short __a, vector unsigned short __b) {
3454 int __cc;
3455 __builtin_s390_vchlhs(__a, __b, &__cc);
3456 return __cc == 3;
3457 }
3458
3459 // This prototype is deprecated.
3460 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned short __a,vector bool short __b)3461 vec_all_le(vector unsigned short __a, vector bool short __b) {
3462 int __cc;
3463 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3464 return __cc == 3;
3465 }
3466
3467 // This prototype is deprecated.
3468 static inline __ATTRS_o_ai int
vec_all_le(vector bool short __a,vector unsigned short __b)3469 vec_all_le(vector bool short __a, vector unsigned short __b) {
3470 int __cc;
3471 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3472 return __cc == 3;
3473 }
3474
3475 // This prototype is deprecated.
3476 static inline __ATTRS_o_ai int
vec_all_le(vector bool short __a,vector bool short __b)3477 vec_all_le(vector bool short __a, vector bool short __b) {
3478 int __cc;
3479 __builtin_s390_vchlhs((vector unsigned short)__a,
3480 (vector unsigned short)__b, &__cc);
3481 return __cc == 3;
3482 }
3483
3484 static inline __ATTRS_o_ai int
vec_all_le(vector signed int __a,vector signed int __b)3485 vec_all_le(vector signed int __a, vector signed int __b) {
3486 int __cc;
3487 __builtin_s390_vchfs(__a, __b, &__cc);
3488 return __cc == 3;
3489 }
3490
3491 // This prototype is deprecated.
3492 static inline __ATTRS_o_ai int
vec_all_le(vector signed int __a,vector bool int __b)3493 vec_all_le(vector signed int __a, vector bool int __b) {
3494 int __cc;
3495 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3496 return __cc == 3;
3497 }
3498
3499 // This prototype is deprecated.
3500 static inline __ATTRS_o_ai int
vec_all_le(vector bool int __a,vector signed int __b)3501 vec_all_le(vector bool int __a, vector signed int __b) {
3502 int __cc;
3503 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3504 return __cc == 3;
3505 }
3506
3507 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned int __a,vector unsigned int __b)3508 vec_all_le(vector unsigned int __a, vector unsigned int __b) {
3509 int __cc;
3510 __builtin_s390_vchlfs(__a, __b, &__cc);
3511 return __cc == 3;
3512 }
3513
3514 // This prototype is deprecated.
3515 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned int __a,vector bool int __b)3516 vec_all_le(vector unsigned int __a, vector bool int __b) {
3517 int __cc;
3518 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3519 return __cc == 3;
3520 }
3521
3522 // This prototype is deprecated.
3523 static inline __ATTRS_o_ai int
vec_all_le(vector bool int __a,vector unsigned int __b)3524 vec_all_le(vector bool int __a, vector unsigned int __b) {
3525 int __cc;
3526 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3527 return __cc == 3;
3528 }
3529
3530 // This prototype is deprecated.
3531 static inline __ATTRS_o_ai int
vec_all_le(vector bool int __a,vector bool int __b)3532 vec_all_le(vector bool int __a, vector bool int __b) {
3533 int __cc;
3534 __builtin_s390_vchlfs((vector unsigned int)__a,
3535 (vector unsigned int)__b, &__cc);
3536 return __cc == 3;
3537 }
3538
3539 static inline __ATTRS_o_ai int
vec_all_le(vector signed long long __a,vector signed long long __b)3540 vec_all_le(vector signed long long __a, vector signed long long __b) {
3541 int __cc;
3542 __builtin_s390_vchgs(__a, __b, &__cc);
3543 return __cc == 3;
3544 }
3545
3546 // This prototype is deprecated.
3547 static inline __ATTRS_o_ai int
vec_all_le(vector signed long long __a,vector bool long long __b)3548 vec_all_le(vector signed long long __a, vector bool long long __b) {
3549 int __cc;
3550 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3551 return __cc == 3;
3552 }
3553
3554 // This prototype is deprecated.
3555 static inline __ATTRS_o_ai int
vec_all_le(vector bool long long __a,vector signed long long __b)3556 vec_all_le(vector bool long long __a, vector signed long long __b) {
3557 int __cc;
3558 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3559 return __cc == 3;
3560 }
3561
3562 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned long long __a,vector unsigned long long __b)3563 vec_all_le(vector unsigned long long __a, vector unsigned long long __b) {
3564 int __cc;
3565 __builtin_s390_vchlgs(__a, __b, &__cc);
3566 return __cc == 3;
3567 }
3568
3569 // This prototype is deprecated.
3570 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned long long __a,vector bool long long __b)3571 vec_all_le(vector unsigned long long __a, vector bool long long __b) {
3572 int __cc;
3573 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3574 return __cc == 3;
3575 }
3576
3577 // This prototype is deprecated.
3578 static inline __ATTRS_o_ai int
vec_all_le(vector bool long long __a,vector unsigned long long __b)3579 vec_all_le(vector bool long long __a, vector unsigned long long __b) {
3580 int __cc;
3581 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3582 return __cc == 3;
3583 }
3584
3585 // This prototype is deprecated.
3586 static inline __ATTRS_o_ai int
vec_all_le(vector bool long long __a,vector bool long long __b)3587 vec_all_le(vector bool long long __a, vector bool long long __b) {
3588 int __cc;
3589 __builtin_s390_vchlgs((vector unsigned long long)__a,
3590 (vector unsigned long long)__b, &__cc);
3591 return __cc == 3;
3592 }
3593
3594 #if __ARCH__ >= 12
3595 static inline __ATTRS_o_ai int
vec_all_le(vector float __a,vector float __b)3596 vec_all_le(vector float __a, vector float __b) {
3597 int __cc;
3598 __builtin_s390_vfchesbs(__b, __a, &__cc);
3599 return __cc == 0;
3600 }
3601 #endif
3602
3603 static inline __ATTRS_o_ai int
vec_all_le(vector double __a,vector double __b)3604 vec_all_le(vector double __a, vector double __b) {
3605 int __cc;
3606 __builtin_s390_vfchedbs(__b, __a, &__cc);
3607 return __cc == 0;
3608 }
3609
3610 /*-- vec_all_lt -------------------------------------------------------------*/
3611
3612 static inline __ATTRS_o_ai int
vec_all_lt(vector signed char __a,vector signed char __b)3613 vec_all_lt(vector signed char __a, vector signed char __b) {
3614 int __cc;
3615 __builtin_s390_vchbs(__b, __a, &__cc);
3616 return __cc == 0;
3617 }
3618
3619 // This prototype is deprecated.
3620 static inline __ATTRS_o_ai int
vec_all_lt(vector signed char __a,vector bool char __b)3621 vec_all_lt(vector signed char __a, vector bool char __b) {
3622 int __cc;
3623 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3624 return __cc == 0;
3625 }
3626
3627 // This prototype is deprecated.
3628 static inline __ATTRS_o_ai int
vec_all_lt(vector bool char __a,vector signed char __b)3629 vec_all_lt(vector bool char __a, vector signed char __b) {
3630 int __cc;
3631 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3632 return __cc == 0;
3633 }
3634
3635 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned char __a,vector unsigned char __b)3636 vec_all_lt(vector unsigned char __a, vector unsigned char __b) {
3637 int __cc;
3638 __builtin_s390_vchlbs(__b, __a, &__cc);
3639 return __cc == 0;
3640 }
3641
3642 // This prototype is deprecated.
3643 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned char __a,vector bool char __b)3644 vec_all_lt(vector unsigned char __a, vector bool char __b) {
3645 int __cc;
3646 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3647 return __cc == 0;
3648 }
3649
3650 // This prototype is deprecated.
3651 static inline __ATTRS_o_ai int
vec_all_lt(vector bool char __a,vector unsigned char __b)3652 vec_all_lt(vector bool char __a, vector unsigned char __b) {
3653 int __cc;
3654 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3655 return __cc == 0;
3656 }
3657
3658 // This prototype is deprecated.
3659 static inline __ATTRS_o_ai int
vec_all_lt(vector bool char __a,vector bool char __b)3660 vec_all_lt(vector bool char __a, vector bool char __b) {
3661 int __cc;
3662 __builtin_s390_vchlbs((vector unsigned char)__b,
3663 (vector unsigned char)__a, &__cc);
3664 return __cc == 0;
3665 }
3666
3667 static inline __ATTRS_o_ai int
vec_all_lt(vector signed short __a,vector signed short __b)3668 vec_all_lt(vector signed short __a, vector signed short __b) {
3669 int __cc;
3670 __builtin_s390_vchhs(__b, __a, &__cc);
3671 return __cc == 0;
3672 }
3673
3674 // This prototype is deprecated.
3675 static inline __ATTRS_o_ai int
vec_all_lt(vector signed short __a,vector bool short __b)3676 vec_all_lt(vector signed short __a, vector bool short __b) {
3677 int __cc;
3678 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3679 return __cc == 0;
3680 }
3681
3682 // This prototype is deprecated.
3683 static inline __ATTRS_o_ai int
vec_all_lt(vector bool short __a,vector signed short __b)3684 vec_all_lt(vector bool short __a, vector signed short __b) {
3685 int __cc;
3686 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3687 return __cc == 0;
3688 }
3689
3690 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned short __a,vector unsigned short __b)3691 vec_all_lt(vector unsigned short __a, vector unsigned short __b) {
3692 int __cc;
3693 __builtin_s390_vchlhs(__b, __a, &__cc);
3694 return __cc == 0;
3695 }
3696
3697 // This prototype is deprecated.
3698 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned short __a,vector bool short __b)3699 vec_all_lt(vector unsigned short __a, vector bool short __b) {
3700 int __cc;
3701 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3702 return __cc == 0;
3703 }
3704
3705 // This prototype is deprecated.
3706 static inline __ATTRS_o_ai int
vec_all_lt(vector bool short __a,vector unsigned short __b)3707 vec_all_lt(vector bool short __a, vector unsigned short __b) {
3708 int __cc;
3709 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3710 return __cc == 0;
3711 }
3712
3713 // This prototype is deprecated.
3714 static inline __ATTRS_o_ai int
vec_all_lt(vector bool short __a,vector bool short __b)3715 vec_all_lt(vector bool short __a, vector bool short __b) {
3716 int __cc;
3717 __builtin_s390_vchlhs((vector unsigned short)__b,
3718 (vector unsigned short)__a, &__cc);
3719 return __cc == 0;
3720 }
3721
3722 static inline __ATTRS_o_ai int
vec_all_lt(vector signed int __a,vector signed int __b)3723 vec_all_lt(vector signed int __a, vector signed int __b) {
3724 int __cc;
3725 __builtin_s390_vchfs(__b, __a, &__cc);
3726 return __cc == 0;
3727 }
3728
3729 // This prototype is deprecated.
3730 static inline __ATTRS_o_ai int
vec_all_lt(vector signed int __a,vector bool int __b)3731 vec_all_lt(vector signed int __a, vector bool int __b) {
3732 int __cc;
3733 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3734 return __cc == 0;
3735 }
3736
3737 // This prototype is deprecated.
3738 static inline __ATTRS_o_ai int
vec_all_lt(vector bool int __a,vector signed int __b)3739 vec_all_lt(vector bool int __a, vector signed int __b) {
3740 int __cc;
3741 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3742 return __cc == 0;
3743 }
3744
3745 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned int __a,vector unsigned int __b)3746 vec_all_lt(vector unsigned int __a, vector unsigned int __b) {
3747 int __cc;
3748 __builtin_s390_vchlfs(__b, __a, &__cc);
3749 return __cc == 0;
3750 }
3751
3752 // This prototype is deprecated.
3753 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned int __a,vector bool int __b)3754 vec_all_lt(vector unsigned int __a, vector bool int __b) {
3755 int __cc;
3756 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3757 return __cc == 0;
3758 }
3759
3760 // This prototype is deprecated.
3761 static inline __ATTRS_o_ai int
vec_all_lt(vector bool int __a,vector unsigned int __b)3762 vec_all_lt(vector bool int __a, vector unsigned int __b) {
3763 int __cc;
3764 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3765 return __cc == 0;
3766 }
3767
3768 // This prototype is deprecated.
3769 static inline __ATTRS_o_ai int
vec_all_lt(vector bool int __a,vector bool int __b)3770 vec_all_lt(vector bool int __a, vector bool int __b) {
3771 int __cc;
3772 __builtin_s390_vchlfs((vector unsigned int)__b,
3773 (vector unsigned int)__a, &__cc);
3774 return __cc == 0;
3775 }
3776
3777 static inline __ATTRS_o_ai int
vec_all_lt(vector signed long long __a,vector signed long long __b)3778 vec_all_lt(vector signed long long __a, vector signed long long __b) {
3779 int __cc;
3780 __builtin_s390_vchgs(__b, __a, &__cc);
3781 return __cc == 0;
3782 }
3783
3784 // This prototype is deprecated.
3785 static inline __ATTRS_o_ai int
vec_all_lt(vector signed long long __a,vector bool long long __b)3786 vec_all_lt(vector signed long long __a, vector bool long long __b) {
3787 int __cc;
3788 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3789 return __cc == 0;
3790 }
3791
3792 // This prototype is deprecated.
3793 static inline __ATTRS_o_ai int
vec_all_lt(vector bool long long __a,vector signed long long __b)3794 vec_all_lt(vector bool long long __a, vector signed long long __b) {
3795 int __cc;
3796 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3797 return __cc == 0;
3798 }
3799
3800 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned long long __a,vector unsigned long long __b)3801 vec_all_lt(vector unsigned long long __a, vector unsigned long long __b) {
3802 int __cc;
3803 __builtin_s390_vchlgs(__b, __a, &__cc);
3804 return __cc == 0;
3805 }
3806
3807 // This prototype is deprecated.
3808 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned long long __a,vector bool long long __b)3809 vec_all_lt(vector unsigned long long __a, vector bool long long __b) {
3810 int __cc;
3811 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3812 return __cc == 0;
3813 }
3814
3815 // This prototype is deprecated.
3816 static inline __ATTRS_o_ai int
vec_all_lt(vector bool long long __a,vector unsigned long long __b)3817 vec_all_lt(vector bool long long __a, vector unsigned long long __b) {
3818 int __cc;
3819 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3820 return __cc == 0;
3821 }
3822
3823 // This prototype is deprecated.
3824 static inline __ATTRS_o_ai int
vec_all_lt(vector bool long long __a,vector bool long long __b)3825 vec_all_lt(vector bool long long __a, vector bool long long __b) {
3826 int __cc;
3827 __builtin_s390_vchlgs((vector unsigned long long)__b,
3828 (vector unsigned long long)__a, &__cc);
3829 return __cc == 0;
3830 }
3831
3832 #if __ARCH__ >= 12
3833 static inline __ATTRS_o_ai int
vec_all_lt(vector float __a,vector float __b)3834 vec_all_lt(vector float __a, vector float __b) {
3835 int __cc;
3836 __builtin_s390_vfchsbs(__b, __a, &__cc);
3837 return __cc == 0;
3838 }
3839 #endif
3840
3841 static inline __ATTRS_o_ai int
vec_all_lt(vector double __a,vector double __b)3842 vec_all_lt(vector double __a, vector double __b) {
3843 int __cc;
3844 __builtin_s390_vfchdbs(__b, __a, &__cc);
3845 return __cc == 0;
3846 }
3847
3848 /*-- vec_all_nge ------------------------------------------------------------*/
3849
3850 #if __ARCH__ >= 12
3851 static inline __ATTRS_o_ai int
vec_all_nge(vector float __a,vector float __b)3852 vec_all_nge(vector float __a, vector float __b) {
3853 int __cc;
3854 __builtin_s390_vfchesbs(__a, __b, &__cc);
3855 return __cc == 3;
3856 }
3857 #endif
3858
3859 static inline __ATTRS_o_ai int
vec_all_nge(vector double __a,vector double __b)3860 vec_all_nge(vector double __a, vector double __b) {
3861 int __cc;
3862 __builtin_s390_vfchedbs(__a, __b, &__cc);
3863 return __cc == 3;
3864 }
3865
3866 /*-- vec_all_ngt ------------------------------------------------------------*/
3867
3868 #if __ARCH__ >= 12
3869 static inline __ATTRS_o_ai int
vec_all_ngt(vector float __a,vector float __b)3870 vec_all_ngt(vector float __a, vector float __b) {
3871 int __cc;
3872 __builtin_s390_vfchsbs(__a, __b, &__cc);
3873 return __cc == 3;
3874 }
3875 #endif
3876
3877 static inline __ATTRS_o_ai int
vec_all_ngt(vector double __a,vector double __b)3878 vec_all_ngt(vector double __a, vector double __b) {
3879 int __cc;
3880 __builtin_s390_vfchdbs(__a, __b, &__cc);
3881 return __cc == 3;
3882 }
3883
3884 /*-- vec_all_nle ------------------------------------------------------------*/
3885
3886 #if __ARCH__ >= 12
3887 static inline __ATTRS_o_ai int
vec_all_nle(vector float __a,vector float __b)3888 vec_all_nle(vector float __a, vector float __b) {
3889 int __cc;
3890 __builtin_s390_vfchesbs(__b, __a, &__cc);
3891 return __cc == 3;
3892 }
3893 #endif
3894
3895 static inline __ATTRS_o_ai int
vec_all_nle(vector double __a,vector double __b)3896 vec_all_nle(vector double __a, vector double __b) {
3897 int __cc;
3898 __builtin_s390_vfchedbs(__b, __a, &__cc);
3899 return __cc == 3;
3900 }
3901
3902 /*-- vec_all_nlt ------------------------------------------------------------*/
3903
3904 #if __ARCH__ >= 12
3905 static inline __ATTRS_o_ai int
vec_all_nlt(vector float __a,vector float __b)3906 vec_all_nlt(vector float __a, vector float __b) {
3907 int __cc;
3908 __builtin_s390_vfchsbs(__b, __a, &__cc);
3909 return __cc == 3;
3910 }
3911 #endif
3912
3913 static inline __ATTRS_o_ai int
vec_all_nlt(vector double __a,vector double __b)3914 vec_all_nlt(vector double __a, vector double __b) {
3915 int __cc;
3916 __builtin_s390_vfchdbs(__b, __a, &__cc);
3917 return __cc == 3;
3918 }
3919
3920 /*-- vec_all_nan ------------------------------------------------------------*/
3921
3922 #if __ARCH__ >= 12
3923 static inline __ATTRS_o_ai int
vec_all_nan(vector float __a)3924 vec_all_nan(vector float __a) {
3925 int __cc;
3926 __builtin_s390_vftcisb(__a, 15, &__cc);
3927 return __cc == 0;
3928 }
3929 #endif
3930
3931 static inline __ATTRS_o_ai int
vec_all_nan(vector double __a)3932 vec_all_nan(vector double __a) {
3933 int __cc;
3934 __builtin_s390_vftcidb(__a, 15, &__cc);
3935 return __cc == 0;
3936 }
3937
3938 /*-- vec_all_numeric --------------------------------------------------------*/
3939
3940 #if __ARCH__ >= 12
3941 static inline __ATTRS_o_ai int
vec_all_numeric(vector float __a)3942 vec_all_numeric(vector float __a) {
3943 int __cc;
3944 __builtin_s390_vftcisb(__a, 15, &__cc);
3945 return __cc == 3;
3946 }
3947 #endif
3948
3949 static inline __ATTRS_o_ai int
vec_all_numeric(vector double __a)3950 vec_all_numeric(vector double __a) {
3951 int __cc;
3952 __builtin_s390_vftcidb(__a, 15, &__cc);
3953 return __cc == 3;
3954 }
3955
3956 /*-- vec_any_eq -------------------------------------------------------------*/
3957
3958 static inline __ATTRS_o_ai int
vec_any_eq(vector signed char __a,vector signed char __b)3959 vec_any_eq(vector signed char __a, vector signed char __b) {
3960 int __cc;
3961 __builtin_s390_vceqbs(__a, __b, &__cc);
3962 return __cc <= 1;
3963 }
3964
3965 // This prototype is deprecated.
3966 static inline __ATTRS_o_ai int
vec_any_eq(vector signed char __a,vector bool char __b)3967 vec_any_eq(vector signed char __a, vector bool char __b) {
3968 int __cc;
3969 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
3970 return __cc <= 1;
3971 }
3972
3973 // This prototype is deprecated.
3974 static inline __ATTRS_o_ai int
vec_any_eq(vector bool char __a,vector signed char __b)3975 vec_any_eq(vector bool char __a, vector signed char __b) {
3976 int __cc;
3977 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
3978 return __cc <= 1;
3979 }
3980
3981 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned char __a,vector unsigned char __b)3982 vec_any_eq(vector unsigned char __a, vector unsigned char __b) {
3983 int __cc;
3984 __builtin_s390_vceqbs((vector signed char)__a,
3985 (vector signed char)__b, &__cc);
3986 return __cc <= 1;
3987 }
3988
3989 // This prototype is deprecated.
3990 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned char __a,vector bool char __b)3991 vec_any_eq(vector unsigned char __a, vector bool char __b) {
3992 int __cc;
3993 __builtin_s390_vceqbs((vector signed char)__a,
3994 (vector signed char)__b, &__cc);
3995 return __cc <= 1;
3996 }
3997
3998 // This prototype is deprecated.
3999 static inline __ATTRS_o_ai int
vec_any_eq(vector bool char __a,vector unsigned char __b)4000 vec_any_eq(vector bool char __a, vector unsigned char __b) {
4001 int __cc;
4002 __builtin_s390_vceqbs((vector signed char)__a,
4003 (vector signed char)__b, &__cc);
4004 return __cc <= 1;
4005 }
4006
4007 static inline __ATTRS_o_ai int
vec_any_eq(vector bool char __a,vector bool char __b)4008 vec_any_eq(vector bool char __a, vector bool char __b) {
4009 int __cc;
4010 __builtin_s390_vceqbs((vector signed char)__a,
4011 (vector signed char)__b, &__cc);
4012 return __cc <= 1;
4013 }
4014
4015 static inline __ATTRS_o_ai int
vec_any_eq(vector signed short __a,vector signed short __b)4016 vec_any_eq(vector signed short __a, vector signed short __b) {
4017 int __cc;
4018 __builtin_s390_vceqhs(__a, __b, &__cc);
4019 return __cc <= 1;
4020 }
4021
4022 // This prototype is deprecated.
4023 static inline __ATTRS_o_ai int
vec_any_eq(vector signed short __a,vector bool short __b)4024 vec_any_eq(vector signed short __a, vector bool short __b) {
4025 int __cc;
4026 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
4027 return __cc <= 1;
4028 }
4029
4030 // This prototype is deprecated.
4031 static inline __ATTRS_o_ai int
vec_any_eq(vector bool short __a,vector signed short __b)4032 vec_any_eq(vector bool short __a, vector signed short __b) {
4033 int __cc;
4034 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
4035 return __cc <= 1;
4036 }
4037
4038 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned short __a,vector unsigned short __b)4039 vec_any_eq(vector unsigned short __a, vector unsigned short __b) {
4040 int __cc;
4041 __builtin_s390_vceqhs((vector signed short)__a,
4042 (vector signed short)__b, &__cc);
4043 return __cc <= 1;
4044 }
4045
4046 // This prototype is deprecated.
4047 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned short __a,vector bool short __b)4048 vec_any_eq(vector unsigned short __a, vector bool short __b) {
4049 int __cc;
4050 __builtin_s390_vceqhs((vector signed short)__a,
4051 (vector signed short)__b, &__cc);
4052 return __cc <= 1;
4053 }
4054
4055 // This prototype is deprecated.
4056 static inline __ATTRS_o_ai int
vec_any_eq(vector bool short __a,vector unsigned short __b)4057 vec_any_eq(vector bool short __a, vector unsigned short __b) {
4058 int __cc;
4059 __builtin_s390_vceqhs((vector signed short)__a,
4060 (vector signed short)__b, &__cc);
4061 return __cc <= 1;
4062 }
4063
4064 static inline __ATTRS_o_ai int
vec_any_eq(vector bool short __a,vector bool short __b)4065 vec_any_eq(vector bool short __a, vector bool short __b) {
4066 int __cc;
4067 __builtin_s390_vceqhs((vector signed short)__a,
4068 (vector signed short)__b, &__cc);
4069 return __cc <= 1;
4070 }
4071
4072 static inline __ATTRS_o_ai int
vec_any_eq(vector signed int __a,vector signed int __b)4073 vec_any_eq(vector signed int __a, vector signed int __b) {
4074 int __cc;
4075 __builtin_s390_vceqfs(__a, __b, &__cc);
4076 return __cc <= 1;
4077 }
4078
4079 // This prototype is deprecated.
4080 static inline __ATTRS_o_ai int
vec_any_eq(vector signed int __a,vector bool int __b)4081 vec_any_eq(vector signed int __a, vector bool int __b) {
4082 int __cc;
4083 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
4084 return __cc <= 1;
4085 }
4086
4087 // This prototype is deprecated.
4088 static inline __ATTRS_o_ai int
vec_any_eq(vector bool int __a,vector signed int __b)4089 vec_any_eq(vector bool int __a, vector signed int __b) {
4090 int __cc;
4091 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
4092 return __cc <= 1;
4093 }
4094
4095 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned int __a,vector unsigned int __b)4096 vec_any_eq(vector unsigned int __a, vector unsigned int __b) {
4097 int __cc;
4098 __builtin_s390_vceqfs((vector signed int)__a,
4099 (vector signed int)__b, &__cc);
4100 return __cc <= 1;
4101 }
4102
4103 // This prototype is deprecated.
4104 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned int __a,vector bool int __b)4105 vec_any_eq(vector unsigned int __a, vector bool int __b) {
4106 int __cc;
4107 __builtin_s390_vceqfs((vector signed int)__a,
4108 (vector signed int)__b, &__cc);
4109 return __cc <= 1;
4110 }
4111
4112 // This prototype is deprecated.
4113 static inline __ATTRS_o_ai int
vec_any_eq(vector bool int __a,vector unsigned int __b)4114 vec_any_eq(vector bool int __a, vector unsigned int __b) {
4115 int __cc;
4116 __builtin_s390_vceqfs((vector signed int)__a,
4117 (vector signed int)__b, &__cc);
4118 return __cc <= 1;
4119 }
4120
4121 static inline __ATTRS_o_ai int
vec_any_eq(vector bool int __a,vector bool int __b)4122 vec_any_eq(vector bool int __a, vector bool int __b) {
4123 int __cc;
4124 __builtin_s390_vceqfs((vector signed int)__a,
4125 (vector signed int)__b, &__cc);
4126 return __cc <= 1;
4127 }
4128
4129 static inline __ATTRS_o_ai int
vec_any_eq(vector signed long long __a,vector signed long long __b)4130 vec_any_eq(vector signed long long __a, vector signed long long __b) {
4131 int __cc;
4132 __builtin_s390_vceqgs(__a, __b, &__cc);
4133 return __cc <= 1;
4134 }
4135
4136 // This prototype is deprecated.
4137 static inline __ATTRS_o_ai int
vec_any_eq(vector signed long long __a,vector bool long long __b)4138 vec_any_eq(vector signed long long __a, vector bool long long __b) {
4139 int __cc;
4140 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
4141 return __cc <= 1;
4142 }
4143
4144 // This prototype is deprecated.
4145 static inline __ATTRS_o_ai int
vec_any_eq(vector bool long long __a,vector signed long long __b)4146 vec_any_eq(vector bool long long __a, vector signed long long __b) {
4147 int __cc;
4148 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
4149 return __cc <= 1;
4150 }
4151
4152 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned long long __a,vector unsigned long long __b)4153 vec_any_eq(vector unsigned long long __a, vector unsigned long long __b) {
4154 int __cc;
4155 __builtin_s390_vceqgs((vector signed long long)__a,
4156 (vector signed long long)__b, &__cc);
4157 return __cc <= 1;
4158 }
4159
4160 // This prototype is deprecated.
4161 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned long long __a,vector bool long long __b)4162 vec_any_eq(vector unsigned long long __a, vector bool long long __b) {
4163 int __cc;
4164 __builtin_s390_vceqgs((vector signed long long)__a,
4165 (vector signed long long)__b, &__cc);
4166 return __cc <= 1;
4167 }
4168
4169 // This prototype is deprecated.
4170 static inline __ATTRS_o_ai int
vec_any_eq(vector bool long long __a,vector unsigned long long __b)4171 vec_any_eq(vector bool long long __a, vector unsigned long long __b) {
4172 int __cc;
4173 __builtin_s390_vceqgs((vector signed long long)__a,
4174 (vector signed long long)__b, &__cc);
4175 return __cc <= 1;
4176 }
4177
4178 static inline __ATTRS_o_ai int
vec_any_eq(vector bool long long __a,vector bool long long __b)4179 vec_any_eq(vector bool long long __a, vector bool long long __b) {
4180 int __cc;
4181 __builtin_s390_vceqgs((vector signed long long)__a,
4182 (vector signed long long)__b, &__cc);
4183 return __cc <= 1;
4184 }
4185
4186 #if __ARCH__ >= 12
4187 static inline __ATTRS_o_ai int
vec_any_eq(vector float __a,vector float __b)4188 vec_any_eq(vector float __a, vector float __b) {
4189 int __cc;
4190 __builtin_s390_vfcesbs(__a, __b, &__cc);
4191 return __cc <= 1;
4192 }
4193 #endif
4194
4195 static inline __ATTRS_o_ai int
vec_any_eq(vector double __a,vector double __b)4196 vec_any_eq(vector double __a, vector double __b) {
4197 int __cc;
4198 __builtin_s390_vfcedbs(__a, __b, &__cc);
4199 return __cc <= 1;
4200 }
4201
4202 /*-- vec_any_ne -------------------------------------------------------------*/
4203
4204 static inline __ATTRS_o_ai int
vec_any_ne(vector signed char __a,vector signed char __b)4205 vec_any_ne(vector signed char __a, vector signed char __b) {
4206 int __cc;
4207 __builtin_s390_vceqbs(__a, __b, &__cc);
4208 return __cc != 0;
4209 }
4210
4211 // This prototype is deprecated.
4212 static inline __ATTRS_o_ai int
vec_any_ne(vector signed char __a,vector bool char __b)4213 vec_any_ne(vector signed char __a, vector bool char __b) {
4214 int __cc;
4215 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
4216 return __cc != 0;
4217 }
4218
4219 // This prototype is deprecated.
4220 static inline __ATTRS_o_ai int
vec_any_ne(vector bool char __a,vector signed char __b)4221 vec_any_ne(vector bool char __a, vector signed char __b) {
4222 int __cc;
4223 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
4224 return __cc != 0;
4225 }
4226
4227 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned char __a,vector unsigned char __b)4228 vec_any_ne(vector unsigned char __a, vector unsigned char __b) {
4229 int __cc;
4230 __builtin_s390_vceqbs((vector signed char)__a,
4231 (vector signed char)__b, &__cc);
4232 return __cc != 0;
4233 }
4234
4235 // This prototype is deprecated.
4236 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned char __a,vector bool char __b)4237 vec_any_ne(vector unsigned char __a, vector bool char __b) {
4238 int __cc;
4239 __builtin_s390_vceqbs((vector signed char)__a,
4240 (vector signed char)__b, &__cc);
4241 return __cc != 0;
4242 }
4243
4244 // This prototype is deprecated.
4245 static inline __ATTRS_o_ai int
vec_any_ne(vector bool char __a,vector unsigned char __b)4246 vec_any_ne(vector bool char __a, vector unsigned char __b) {
4247 int __cc;
4248 __builtin_s390_vceqbs((vector signed char)__a,
4249 (vector signed char)__b, &__cc);
4250 return __cc != 0;
4251 }
4252
4253 static inline __ATTRS_o_ai int
vec_any_ne(vector bool char __a,vector bool char __b)4254 vec_any_ne(vector bool char __a, vector bool char __b) {
4255 int __cc;
4256 __builtin_s390_vceqbs((vector signed char)__a,
4257 (vector signed char)__b, &__cc);
4258 return __cc != 0;
4259 }
4260
4261 static inline __ATTRS_o_ai int
vec_any_ne(vector signed short __a,vector signed short __b)4262 vec_any_ne(vector signed short __a, vector signed short __b) {
4263 int __cc;
4264 __builtin_s390_vceqhs(__a, __b, &__cc);
4265 return __cc != 0;
4266 }
4267
4268 // This prototype is deprecated.
4269 static inline __ATTRS_o_ai int
vec_any_ne(vector signed short __a,vector bool short __b)4270 vec_any_ne(vector signed short __a, vector bool short __b) {
4271 int __cc;
4272 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
4273 return __cc != 0;
4274 }
4275
4276 // This prototype is deprecated.
4277 static inline __ATTRS_o_ai int
vec_any_ne(vector bool short __a,vector signed short __b)4278 vec_any_ne(vector bool short __a, vector signed short __b) {
4279 int __cc;
4280 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
4281 return __cc != 0;
4282 }
4283
4284 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned short __a,vector unsigned short __b)4285 vec_any_ne(vector unsigned short __a, vector unsigned short __b) {
4286 int __cc;
4287 __builtin_s390_vceqhs((vector signed short)__a,
4288 (vector signed short)__b, &__cc);
4289 return __cc != 0;
4290 }
4291
4292 // This prototype is deprecated.
4293 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned short __a,vector bool short __b)4294 vec_any_ne(vector unsigned short __a, vector bool short __b) {
4295 int __cc;
4296 __builtin_s390_vceqhs((vector signed short)__a,
4297 (vector signed short)__b, &__cc);
4298 return __cc != 0;
4299 }
4300
4301 // This prototype is deprecated.
4302 static inline __ATTRS_o_ai int
vec_any_ne(vector bool short __a,vector unsigned short __b)4303 vec_any_ne(vector bool short __a, vector unsigned short __b) {
4304 int __cc;
4305 __builtin_s390_vceqhs((vector signed short)__a,
4306 (vector signed short)__b, &__cc);
4307 return __cc != 0;
4308 }
4309
4310 static inline __ATTRS_o_ai int
vec_any_ne(vector bool short __a,vector bool short __b)4311 vec_any_ne(vector bool short __a, vector bool short __b) {
4312 int __cc;
4313 __builtin_s390_vceqhs((vector signed short)__a,
4314 (vector signed short)__b, &__cc);
4315 return __cc != 0;
4316 }
4317
4318 static inline __ATTRS_o_ai int
vec_any_ne(vector signed int __a,vector signed int __b)4319 vec_any_ne(vector signed int __a, vector signed int __b) {
4320 int __cc;
4321 __builtin_s390_vceqfs(__a, __b, &__cc);
4322 return __cc != 0;
4323 }
4324
4325 // This prototype is deprecated.
4326 static inline __ATTRS_o_ai int
vec_any_ne(vector signed int __a,vector bool int __b)4327 vec_any_ne(vector signed int __a, vector bool int __b) {
4328 int __cc;
4329 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
4330 return __cc != 0;
4331 }
4332
4333 // This prototype is deprecated.
4334 static inline __ATTRS_o_ai int
vec_any_ne(vector bool int __a,vector signed int __b)4335 vec_any_ne(vector bool int __a, vector signed int __b) {
4336 int __cc;
4337 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
4338 return __cc != 0;
4339 }
4340
4341 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned int __a,vector unsigned int __b)4342 vec_any_ne(vector unsigned int __a, vector unsigned int __b) {
4343 int __cc;
4344 __builtin_s390_vceqfs((vector signed int)__a,
4345 (vector signed int)__b, &__cc);
4346 return __cc != 0;
4347 }
4348
4349 // This prototype is deprecated.
4350 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned int __a,vector bool int __b)4351 vec_any_ne(vector unsigned int __a, vector bool int __b) {
4352 int __cc;
4353 __builtin_s390_vceqfs((vector signed int)__a,
4354 (vector signed int)__b, &__cc);
4355 return __cc != 0;
4356 }
4357
4358 // This prototype is deprecated.
4359 static inline __ATTRS_o_ai int
vec_any_ne(vector bool int __a,vector unsigned int __b)4360 vec_any_ne(vector bool int __a, vector unsigned int __b) {
4361 int __cc;
4362 __builtin_s390_vceqfs((vector signed int)__a,
4363 (vector signed int)__b, &__cc);
4364 return __cc != 0;
4365 }
4366
4367 static inline __ATTRS_o_ai int
vec_any_ne(vector bool int __a,vector bool int __b)4368 vec_any_ne(vector bool int __a, vector bool int __b) {
4369 int __cc;
4370 __builtin_s390_vceqfs((vector signed int)__a,
4371 (vector signed int)__b, &__cc);
4372 return __cc != 0;
4373 }
4374
4375 static inline __ATTRS_o_ai int
vec_any_ne(vector signed long long __a,vector signed long long __b)4376 vec_any_ne(vector signed long long __a, vector signed long long __b) {
4377 int __cc;
4378 __builtin_s390_vceqgs(__a, __b, &__cc);
4379 return __cc != 0;
4380 }
4381
4382 // This prototype is deprecated.
4383 static inline __ATTRS_o_ai int
vec_any_ne(vector signed long long __a,vector bool long long __b)4384 vec_any_ne(vector signed long long __a, vector bool long long __b) {
4385 int __cc;
4386 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
4387 return __cc != 0;
4388 }
4389
4390 // This prototype is deprecated.
4391 static inline __ATTRS_o_ai int
vec_any_ne(vector bool long long __a,vector signed long long __b)4392 vec_any_ne(vector bool long long __a, vector signed long long __b) {
4393 int __cc;
4394 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
4395 return __cc != 0;
4396 }
4397
4398 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned long long __a,vector unsigned long long __b)4399 vec_any_ne(vector unsigned long long __a, vector unsigned long long __b) {
4400 int __cc;
4401 __builtin_s390_vceqgs((vector signed long long)__a,
4402 (vector signed long long)__b, &__cc);
4403 return __cc != 0;
4404 }
4405
4406 // This prototype is deprecated.
4407 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned long long __a,vector bool long long __b)4408 vec_any_ne(vector unsigned long long __a, vector bool long long __b) {
4409 int __cc;
4410 __builtin_s390_vceqgs((vector signed long long)__a,
4411 (vector signed long long)__b, &__cc);
4412 return __cc != 0;
4413 }
4414
4415 // This prototype is deprecated.
4416 static inline __ATTRS_o_ai int
vec_any_ne(vector bool long long __a,vector unsigned long long __b)4417 vec_any_ne(vector bool long long __a, vector unsigned long long __b) {
4418 int __cc;
4419 __builtin_s390_vceqgs((vector signed long long)__a,
4420 (vector signed long long)__b, &__cc);
4421 return __cc != 0;
4422 }
4423
4424 static inline __ATTRS_o_ai int
vec_any_ne(vector bool long long __a,vector bool long long __b)4425 vec_any_ne(vector bool long long __a, vector bool long long __b) {
4426 int __cc;
4427 __builtin_s390_vceqgs((vector signed long long)__a,
4428 (vector signed long long)__b, &__cc);
4429 return __cc != 0;
4430 }
4431
4432 #if __ARCH__ >= 12
4433 static inline __ATTRS_o_ai int
vec_any_ne(vector float __a,vector float __b)4434 vec_any_ne(vector float __a, vector float __b) {
4435 int __cc;
4436 __builtin_s390_vfcesbs(__a, __b, &__cc);
4437 return __cc != 0;
4438 }
4439 #endif
4440
4441 static inline __ATTRS_o_ai int
vec_any_ne(vector double __a,vector double __b)4442 vec_any_ne(vector double __a, vector double __b) {
4443 int __cc;
4444 __builtin_s390_vfcedbs(__a, __b, &__cc);
4445 return __cc != 0;
4446 }
4447
4448 /*-- vec_any_ge -------------------------------------------------------------*/
4449
4450 static inline __ATTRS_o_ai int
vec_any_ge(vector signed char __a,vector signed char __b)4451 vec_any_ge(vector signed char __a, vector signed char __b) {
4452 int __cc;
4453 __builtin_s390_vchbs(__b, __a, &__cc);
4454 return __cc != 0;
4455 }
4456
4457 // This prototype is deprecated.
4458 static inline __ATTRS_o_ai int
vec_any_ge(vector signed char __a,vector bool char __b)4459 vec_any_ge(vector signed char __a, vector bool char __b) {
4460 int __cc;
4461 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
4462 return __cc != 0;
4463 }
4464
4465 // This prototype is deprecated.
4466 static inline __ATTRS_o_ai int
vec_any_ge(vector bool char __a,vector signed char __b)4467 vec_any_ge(vector bool char __a, vector signed char __b) {
4468 int __cc;
4469 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
4470 return __cc != 0;
4471 }
4472
4473 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned char __a,vector unsigned char __b)4474 vec_any_ge(vector unsigned char __a, vector unsigned char __b) {
4475 int __cc;
4476 __builtin_s390_vchlbs(__b, __a, &__cc);
4477 return __cc != 0;
4478 }
4479
4480 // This prototype is deprecated.
4481 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned char __a,vector bool char __b)4482 vec_any_ge(vector unsigned char __a, vector bool char __b) {
4483 int __cc;
4484 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
4485 return __cc != 0;
4486 }
4487
4488 // This prototype is deprecated.
4489 static inline __ATTRS_o_ai int
vec_any_ge(vector bool char __a,vector unsigned char __b)4490 vec_any_ge(vector bool char __a, vector unsigned char __b) {
4491 int __cc;
4492 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
4493 return __cc != 0;
4494 }
4495
4496 // This prototype is deprecated.
4497 static inline __ATTRS_o_ai int
vec_any_ge(vector bool char __a,vector bool char __b)4498 vec_any_ge(vector bool char __a, vector bool char __b) {
4499 int __cc;
4500 __builtin_s390_vchlbs((vector unsigned char)__b,
4501 (vector unsigned char)__a, &__cc);
4502 return __cc != 0;
4503 }
4504
4505 static inline __ATTRS_o_ai int
vec_any_ge(vector signed short __a,vector signed short __b)4506 vec_any_ge(vector signed short __a, vector signed short __b) {
4507 int __cc;
4508 __builtin_s390_vchhs(__b, __a, &__cc);
4509 return __cc != 0;
4510 }
4511
4512 // This prototype is deprecated.
4513 static inline __ATTRS_o_ai int
vec_any_ge(vector signed short __a,vector bool short __b)4514 vec_any_ge(vector signed short __a, vector bool short __b) {
4515 int __cc;
4516 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
4517 return __cc != 0;
4518 }
4519
4520 // This prototype is deprecated.
4521 static inline __ATTRS_o_ai int
vec_any_ge(vector bool short __a,vector signed short __b)4522 vec_any_ge(vector bool short __a, vector signed short __b) {
4523 int __cc;
4524 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
4525 return __cc != 0;
4526 }
4527
4528 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned short __a,vector unsigned short __b)4529 vec_any_ge(vector unsigned short __a, vector unsigned short __b) {
4530 int __cc;
4531 __builtin_s390_vchlhs(__b, __a, &__cc);
4532 return __cc != 0;
4533 }
4534
4535 // This prototype is deprecated.
4536 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned short __a,vector bool short __b)4537 vec_any_ge(vector unsigned short __a, vector bool short __b) {
4538 int __cc;
4539 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
4540 return __cc != 0;
4541 }
4542
4543 // This prototype is deprecated.
4544 static inline __ATTRS_o_ai int
vec_any_ge(vector bool short __a,vector unsigned short __b)4545 vec_any_ge(vector bool short __a, vector unsigned short __b) {
4546 int __cc;
4547 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
4548 return __cc != 0;
4549 }
4550
4551 // This prototype is deprecated.
4552 static inline __ATTRS_o_ai int
vec_any_ge(vector bool short __a,vector bool short __b)4553 vec_any_ge(vector bool short __a, vector bool short __b) {
4554 int __cc;
4555 __builtin_s390_vchlhs((vector unsigned short)__b,
4556 (vector unsigned short)__a, &__cc);
4557 return __cc != 0;
4558 }
4559
4560 static inline __ATTRS_o_ai int
vec_any_ge(vector signed int __a,vector signed int __b)4561 vec_any_ge(vector signed int __a, vector signed int __b) {
4562 int __cc;
4563 __builtin_s390_vchfs(__b, __a, &__cc);
4564 return __cc != 0;
4565 }
4566
4567 // This prototype is deprecated.
4568 static inline __ATTRS_o_ai int
vec_any_ge(vector signed int __a,vector bool int __b)4569 vec_any_ge(vector signed int __a, vector bool int __b) {
4570 int __cc;
4571 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
4572 return __cc != 0;
4573 }
4574
4575 // This prototype is deprecated.
4576 static inline __ATTRS_o_ai int
vec_any_ge(vector bool int __a,vector signed int __b)4577 vec_any_ge(vector bool int __a, vector signed int __b) {
4578 int __cc;
4579 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
4580 return __cc != 0;
4581 }
4582
4583 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned int __a,vector unsigned int __b)4584 vec_any_ge(vector unsigned int __a, vector unsigned int __b) {
4585 int __cc;
4586 __builtin_s390_vchlfs(__b, __a, &__cc);
4587 return __cc != 0;
4588 }
4589
4590 // This prototype is deprecated.
4591 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned int __a,vector bool int __b)4592 vec_any_ge(vector unsigned int __a, vector bool int __b) {
4593 int __cc;
4594 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
4595 return __cc != 0;
4596 }
4597
4598 // This prototype is deprecated.
4599 static inline __ATTRS_o_ai int
vec_any_ge(vector bool int __a,vector unsigned int __b)4600 vec_any_ge(vector bool int __a, vector unsigned int __b) {
4601 int __cc;
4602 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
4603 return __cc != 0;
4604 }
4605
4606 // This prototype is deprecated.
4607 static inline __ATTRS_o_ai int
vec_any_ge(vector bool int __a,vector bool int __b)4608 vec_any_ge(vector bool int __a, vector bool int __b) {
4609 int __cc;
4610 __builtin_s390_vchlfs((vector unsigned int)__b,
4611 (vector unsigned int)__a, &__cc);
4612 return __cc != 0;
4613 }
4614
4615 static inline __ATTRS_o_ai int
vec_any_ge(vector signed long long __a,vector signed long long __b)4616 vec_any_ge(vector signed long long __a, vector signed long long __b) {
4617 int __cc;
4618 __builtin_s390_vchgs(__b, __a, &__cc);
4619 return __cc != 0;
4620 }
4621
4622 // This prototype is deprecated.
4623 static inline __ATTRS_o_ai int
vec_any_ge(vector signed long long __a,vector bool long long __b)4624 vec_any_ge(vector signed long long __a, vector bool long long __b) {
4625 int __cc;
4626 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
4627 return __cc != 0;
4628 }
4629
4630 // This prototype is deprecated.
4631 static inline __ATTRS_o_ai int
vec_any_ge(vector bool long long __a,vector signed long long __b)4632 vec_any_ge(vector bool long long __a, vector signed long long __b) {
4633 int __cc;
4634 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
4635 return __cc != 0;
4636 }
4637
4638 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned long long __a,vector unsigned long long __b)4639 vec_any_ge(vector unsigned long long __a, vector unsigned long long __b) {
4640 int __cc;
4641 __builtin_s390_vchlgs(__b, __a, &__cc);
4642 return __cc != 0;
4643 }
4644
4645 // This prototype is deprecated.
4646 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned long long __a,vector bool long long __b)4647 vec_any_ge(vector unsigned long long __a, vector bool long long __b) {
4648 int __cc;
4649 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
4650 return __cc != 0;
4651 }
4652
4653 // This prototype is deprecated.
4654 static inline __ATTRS_o_ai int
vec_any_ge(vector bool long long __a,vector unsigned long long __b)4655 vec_any_ge(vector bool long long __a, vector unsigned long long __b) {
4656 int __cc;
4657 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
4658 return __cc != 0;
4659 }
4660
4661 // This prototype is deprecated.
4662 static inline __ATTRS_o_ai int
vec_any_ge(vector bool long long __a,vector bool long long __b)4663 vec_any_ge(vector bool long long __a, vector bool long long __b) {
4664 int __cc;
4665 __builtin_s390_vchlgs((vector unsigned long long)__b,
4666 (vector unsigned long long)__a, &__cc);
4667 return __cc != 0;
4668 }
4669
4670 #if __ARCH__ >= 12
4671 static inline __ATTRS_o_ai int
vec_any_ge(vector float __a,vector float __b)4672 vec_any_ge(vector float __a, vector float __b) {
4673 int __cc;
4674 __builtin_s390_vfchesbs(__a, __b, &__cc);
4675 return __cc <= 1;
4676 }
4677 #endif
4678
4679 static inline __ATTRS_o_ai int
vec_any_ge(vector double __a,vector double __b)4680 vec_any_ge(vector double __a, vector double __b) {
4681 int __cc;
4682 __builtin_s390_vfchedbs(__a, __b, &__cc);
4683 return __cc <= 1;
4684 }
4685
4686 /*-- vec_any_gt -------------------------------------------------------------*/
4687
4688 static inline __ATTRS_o_ai int
vec_any_gt(vector signed char __a,vector signed char __b)4689 vec_any_gt(vector signed char __a, vector signed char __b) {
4690 int __cc;
4691 __builtin_s390_vchbs(__a, __b, &__cc);
4692 return __cc <= 1;
4693 }
4694
4695 // This prototype is deprecated.
4696 static inline __ATTRS_o_ai int
vec_any_gt(vector signed char __a,vector bool char __b)4697 vec_any_gt(vector signed char __a, vector bool char __b) {
4698 int __cc;
4699 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4700 return __cc <= 1;
4701 }
4702
4703 // This prototype is deprecated.
4704 static inline __ATTRS_o_ai int
vec_any_gt(vector bool char __a,vector signed char __b)4705 vec_any_gt(vector bool char __a, vector signed char __b) {
4706 int __cc;
4707 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4708 return __cc <= 1;
4709 }
4710
4711 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned char __a,vector unsigned char __b)4712 vec_any_gt(vector unsigned char __a, vector unsigned char __b) {
4713 int __cc;
4714 __builtin_s390_vchlbs(__a, __b, &__cc);
4715 return __cc <= 1;
4716 }
4717
4718 // This prototype is deprecated.
4719 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned char __a,vector bool char __b)4720 vec_any_gt(vector unsigned char __a, vector bool char __b) {
4721 int __cc;
4722 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4723 return __cc <= 1;
4724 }
4725
4726 // This prototype is deprecated.
4727 static inline __ATTRS_o_ai int
vec_any_gt(vector bool char __a,vector unsigned char __b)4728 vec_any_gt(vector bool char __a, vector unsigned char __b) {
4729 int __cc;
4730 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4731 return __cc <= 1;
4732 }
4733
4734 // This prototype is deprecated.
4735 static inline __ATTRS_o_ai int
vec_any_gt(vector bool char __a,vector bool char __b)4736 vec_any_gt(vector bool char __a, vector bool char __b) {
4737 int __cc;
4738 __builtin_s390_vchlbs((vector unsigned char)__a,
4739 (vector unsigned char)__b, &__cc);
4740 return __cc <= 1;
4741 }
4742
4743 static inline __ATTRS_o_ai int
vec_any_gt(vector signed short __a,vector signed short __b)4744 vec_any_gt(vector signed short __a, vector signed short __b) {
4745 int __cc;
4746 __builtin_s390_vchhs(__a, __b, &__cc);
4747 return __cc <= 1;
4748 }
4749
4750 // This prototype is deprecated.
4751 static inline __ATTRS_o_ai int
vec_any_gt(vector signed short __a,vector bool short __b)4752 vec_any_gt(vector signed short __a, vector bool short __b) {
4753 int __cc;
4754 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4755 return __cc <= 1;
4756 }
4757
4758 // This prototype is deprecated.
4759 static inline __ATTRS_o_ai int
vec_any_gt(vector bool short __a,vector signed short __b)4760 vec_any_gt(vector bool short __a, vector signed short __b) {
4761 int __cc;
4762 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
4763 return __cc <= 1;
4764 }
4765
4766 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned short __a,vector unsigned short __b)4767 vec_any_gt(vector unsigned short __a, vector unsigned short __b) {
4768 int __cc;
4769 __builtin_s390_vchlhs(__a, __b, &__cc);
4770 return __cc <= 1;
4771 }
4772
4773 // This prototype is deprecated.
4774 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned short __a,vector bool short __b)4775 vec_any_gt(vector unsigned short __a, vector bool short __b) {
4776 int __cc;
4777 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
4778 return __cc <= 1;
4779 }
4780
4781 // This prototype is deprecated.
4782 static inline __ATTRS_o_ai int
vec_any_gt(vector bool short __a,vector unsigned short __b)4783 vec_any_gt(vector bool short __a, vector unsigned short __b) {
4784 int __cc;
4785 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
4786 return __cc <= 1;
4787 }
4788
4789 // This prototype is deprecated.
4790 static inline __ATTRS_o_ai int
vec_any_gt(vector bool short __a,vector bool short __b)4791 vec_any_gt(vector bool short __a, vector bool short __b) {
4792 int __cc;
4793 __builtin_s390_vchlhs((vector unsigned short)__a,
4794 (vector unsigned short)__b, &__cc);
4795 return __cc <= 1;
4796 }
4797
4798 static inline __ATTRS_o_ai int
vec_any_gt(vector signed int __a,vector signed int __b)4799 vec_any_gt(vector signed int __a, vector signed int __b) {
4800 int __cc;
4801 __builtin_s390_vchfs(__a, __b, &__cc);
4802 return __cc <= 1;
4803 }
4804
4805 // This prototype is deprecated.
4806 static inline __ATTRS_o_ai int
vec_any_gt(vector signed int __a,vector bool int __b)4807 vec_any_gt(vector signed int __a, vector bool int __b) {
4808 int __cc;
4809 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
4810 return __cc <= 1;
4811 }
4812
4813 // This prototype is deprecated.
4814 static inline __ATTRS_o_ai int
vec_any_gt(vector bool int __a,vector signed int __b)4815 vec_any_gt(vector bool int __a, vector signed int __b) {
4816 int __cc;
4817 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
4818 return __cc <= 1;
4819 }
4820
4821 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned int __a,vector unsigned int __b)4822 vec_any_gt(vector unsigned int __a, vector unsigned int __b) {
4823 int __cc;
4824 __builtin_s390_vchlfs(__a, __b, &__cc);
4825 return __cc <= 1;
4826 }
4827
4828 // This prototype is deprecated.
4829 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned int __a,vector bool int __b)4830 vec_any_gt(vector unsigned int __a, vector bool int __b) {
4831 int __cc;
4832 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
4833 return __cc <= 1;
4834 }
4835
4836 // This prototype is deprecated.
4837 static inline __ATTRS_o_ai int
vec_any_gt(vector bool int __a,vector unsigned int __b)4838 vec_any_gt(vector bool int __a, vector unsigned int __b) {
4839 int __cc;
4840 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
4841 return __cc <= 1;
4842 }
4843
4844 // This prototype is deprecated.
4845 static inline __ATTRS_o_ai int
vec_any_gt(vector bool int __a,vector bool int __b)4846 vec_any_gt(vector bool int __a, vector bool int __b) {
4847 int __cc;
4848 __builtin_s390_vchlfs((vector unsigned int)__a,
4849 (vector unsigned int)__b, &__cc);
4850 return __cc <= 1;
4851 }
4852
4853 static inline __ATTRS_o_ai int
vec_any_gt(vector signed long long __a,vector signed long long __b)4854 vec_any_gt(vector signed long long __a, vector signed long long __b) {
4855 int __cc;
4856 __builtin_s390_vchgs(__a, __b, &__cc);
4857 return __cc <= 1;
4858 }
4859
4860 // This prototype is deprecated.
4861 static inline __ATTRS_o_ai int
vec_any_gt(vector signed long long __a,vector bool long long __b)4862 vec_any_gt(vector signed long long __a, vector bool long long __b) {
4863 int __cc;
4864 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
4865 return __cc <= 1;
4866 }
4867
4868 // This prototype is deprecated.
4869 static inline __ATTRS_o_ai int
vec_any_gt(vector bool long long __a,vector signed long long __b)4870 vec_any_gt(vector bool long long __a, vector signed long long __b) {
4871 int __cc;
4872 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
4873 return __cc <= 1;
4874 }
4875
4876 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned long long __a,vector unsigned long long __b)4877 vec_any_gt(vector unsigned long long __a, vector unsigned long long __b) {
4878 int __cc;
4879 __builtin_s390_vchlgs(__a, __b, &__cc);
4880 return __cc <= 1;
4881 }
4882
4883 // This prototype is deprecated.
4884 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned long long __a,vector bool long long __b)4885 vec_any_gt(vector unsigned long long __a, vector bool long long __b) {
4886 int __cc;
4887 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
4888 return __cc <= 1;
4889 }
4890
4891 // This prototype is deprecated.
4892 static inline __ATTRS_o_ai int
vec_any_gt(vector bool long long __a,vector unsigned long long __b)4893 vec_any_gt(vector bool long long __a, vector unsigned long long __b) {
4894 int __cc;
4895 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
4896 return __cc <= 1;
4897 }
4898
4899 // This prototype is deprecated.
4900 static inline __ATTRS_o_ai int
vec_any_gt(vector bool long long __a,vector bool long long __b)4901 vec_any_gt(vector bool long long __a, vector bool long long __b) {
4902 int __cc;
4903 __builtin_s390_vchlgs((vector unsigned long long)__a,
4904 (vector unsigned long long)__b, &__cc);
4905 return __cc <= 1;
4906 }
4907
4908 #if __ARCH__ >= 12
4909 static inline __ATTRS_o_ai int
vec_any_gt(vector float __a,vector float __b)4910 vec_any_gt(vector float __a, vector float __b) {
4911 int __cc;
4912 __builtin_s390_vfchsbs(__a, __b, &__cc);
4913 return __cc <= 1;
4914 }
4915 #endif
4916
4917 static inline __ATTRS_o_ai int
vec_any_gt(vector double __a,vector double __b)4918 vec_any_gt(vector double __a, vector double __b) {
4919 int __cc;
4920 __builtin_s390_vfchdbs(__a, __b, &__cc);
4921 return __cc <= 1;
4922 }
4923
4924 /*-- vec_any_le -------------------------------------------------------------*/
4925
4926 static inline __ATTRS_o_ai int
vec_any_le(vector signed char __a,vector signed char __b)4927 vec_any_le(vector signed char __a, vector signed char __b) {
4928 int __cc;
4929 __builtin_s390_vchbs(__a, __b, &__cc);
4930 return __cc != 0;
4931 }
4932
4933 // This prototype is deprecated.
4934 static inline __ATTRS_o_ai int
vec_any_le(vector signed char __a,vector bool char __b)4935 vec_any_le(vector signed char __a, vector bool char __b) {
4936 int __cc;
4937 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4938 return __cc != 0;
4939 }
4940
4941 // This prototype is deprecated.
4942 static inline __ATTRS_o_ai int
vec_any_le(vector bool char __a,vector signed char __b)4943 vec_any_le(vector bool char __a, vector signed char __b) {
4944 int __cc;
4945 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4946 return __cc != 0;
4947 }
4948
4949 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned char __a,vector unsigned char __b)4950 vec_any_le(vector unsigned char __a, vector unsigned char __b) {
4951 int __cc;
4952 __builtin_s390_vchlbs(__a, __b, &__cc);
4953 return __cc != 0;
4954 }
4955
4956 // This prototype is deprecated.
4957 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned char __a,vector bool char __b)4958 vec_any_le(vector unsigned char __a, vector bool char __b) {
4959 int __cc;
4960 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4961 return __cc != 0;
4962 }
4963
4964 // This prototype is deprecated.
4965 static inline __ATTRS_o_ai int
vec_any_le(vector bool char __a,vector unsigned char __b)4966 vec_any_le(vector bool char __a, vector unsigned char __b) {
4967 int __cc;
4968 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4969 return __cc != 0;
4970 }
4971
4972 // This prototype is deprecated.
4973 static inline __ATTRS_o_ai int
vec_any_le(vector bool char __a,vector bool char __b)4974 vec_any_le(vector bool char __a, vector bool char __b) {
4975 int __cc;
4976 __builtin_s390_vchlbs((vector unsigned char)__a,
4977 (vector unsigned char)__b, &__cc);
4978 return __cc != 0;
4979 }
4980
4981 static inline __ATTRS_o_ai int
vec_any_le(vector signed short __a,vector signed short __b)4982 vec_any_le(vector signed short __a, vector signed short __b) {
4983 int __cc;
4984 __builtin_s390_vchhs(__a, __b, &__cc);
4985 return __cc != 0;
4986 }
4987
4988 // This prototype is deprecated.
4989 static inline __ATTRS_o_ai int
vec_any_le(vector signed short __a,vector bool short __b)4990 vec_any_le(vector signed short __a, vector bool short __b) {
4991 int __cc;
4992 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4993 return __cc != 0;
4994 }
4995
4996 // This prototype is deprecated.
4997 static inline __ATTRS_o_ai int
vec_any_le(vector bool short __a,vector signed short __b)4998 vec_any_le(vector bool short __a, vector signed short __b) {
4999 int __cc;
5000 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
5001 return __cc != 0;
5002 }
5003
5004 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned short __a,vector unsigned short __b)5005 vec_any_le(vector unsigned short __a, vector unsigned short __b) {
5006 int __cc;
5007 __builtin_s390_vchlhs(__a, __b, &__cc);
5008 return __cc != 0;
5009 }
5010
5011 // This prototype is deprecated.
5012 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned short __a,vector bool short __b)5013 vec_any_le(vector unsigned short __a, vector bool short __b) {
5014 int __cc;
5015 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
5016 return __cc != 0;
5017 }
5018
5019 // This prototype is deprecated.
5020 static inline __ATTRS_o_ai int
vec_any_le(vector bool short __a,vector unsigned short __b)5021 vec_any_le(vector bool short __a, vector unsigned short __b) {
5022 int __cc;
5023 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
5024 return __cc != 0;
5025 }
5026
5027 // This prototype is deprecated.
5028 static inline __ATTRS_o_ai int
vec_any_le(vector bool short __a,vector bool short __b)5029 vec_any_le(vector bool short __a, vector bool short __b) {
5030 int __cc;
5031 __builtin_s390_vchlhs((vector unsigned short)__a,
5032 (vector unsigned short)__b, &__cc);
5033 return __cc != 0;
5034 }
5035
5036 static inline __ATTRS_o_ai int
vec_any_le(vector signed int __a,vector signed int __b)5037 vec_any_le(vector signed int __a, vector signed int __b) {
5038 int __cc;
5039 __builtin_s390_vchfs(__a, __b, &__cc);
5040 return __cc != 0;
5041 }
5042
5043 // This prototype is deprecated.
5044 static inline __ATTRS_o_ai int
vec_any_le(vector signed int __a,vector bool int __b)5045 vec_any_le(vector signed int __a, vector bool int __b) {
5046 int __cc;
5047 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
5048 return __cc != 0;
5049 }
5050
5051 // This prototype is deprecated.
5052 static inline __ATTRS_o_ai int
vec_any_le(vector bool int __a,vector signed int __b)5053 vec_any_le(vector bool int __a, vector signed int __b) {
5054 int __cc;
5055 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
5056 return __cc != 0;
5057 }
5058
5059 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned int __a,vector unsigned int __b)5060 vec_any_le(vector unsigned int __a, vector unsigned int __b) {
5061 int __cc;
5062 __builtin_s390_vchlfs(__a, __b, &__cc);
5063 return __cc != 0;
5064 }
5065
5066 // This prototype is deprecated.
5067 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned int __a,vector bool int __b)5068 vec_any_le(vector unsigned int __a, vector bool int __b) {
5069 int __cc;
5070 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
5071 return __cc != 0;
5072 }
5073
5074 // This prototype is deprecated.
5075 static inline __ATTRS_o_ai int
vec_any_le(vector bool int __a,vector unsigned int __b)5076 vec_any_le(vector bool int __a, vector unsigned int __b) {
5077 int __cc;
5078 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
5079 return __cc != 0;
5080 }
5081
5082 // This prototype is deprecated.
5083 static inline __ATTRS_o_ai int
vec_any_le(vector bool int __a,vector bool int __b)5084 vec_any_le(vector bool int __a, vector bool int __b) {
5085 int __cc;
5086 __builtin_s390_vchlfs((vector unsigned int)__a,
5087 (vector unsigned int)__b, &__cc);
5088 return __cc != 0;
5089 }
5090
5091 static inline __ATTRS_o_ai int
vec_any_le(vector signed long long __a,vector signed long long __b)5092 vec_any_le(vector signed long long __a, vector signed long long __b) {
5093 int __cc;
5094 __builtin_s390_vchgs(__a, __b, &__cc);
5095 return __cc != 0;
5096 }
5097
5098 // This prototype is deprecated.
5099 static inline __ATTRS_o_ai int
vec_any_le(vector signed long long __a,vector bool long long __b)5100 vec_any_le(vector signed long long __a, vector bool long long __b) {
5101 int __cc;
5102 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
5103 return __cc != 0;
5104 }
5105
5106 // This prototype is deprecated.
5107 static inline __ATTRS_o_ai int
vec_any_le(vector bool long long __a,vector signed long long __b)5108 vec_any_le(vector bool long long __a, vector signed long long __b) {
5109 int __cc;
5110 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
5111 return __cc != 0;
5112 }
5113
5114 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned long long __a,vector unsigned long long __b)5115 vec_any_le(vector unsigned long long __a, vector unsigned long long __b) {
5116 int __cc;
5117 __builtin_s390_vchlgs(__a, __b, &__cc);
5118 return __cc != 0;
5119 }
5120
5121 // This prototype is deprecated.
5122 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned long long __a,vector bool long long __b)5123 vec_any_le(vector unsigned long long __a, vector bool long long __b) {
5124 int __cc;
5125 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
5126 return __cc != 0;
5127 }
5128
5129 // This prototype is deprecated.
5130 static inline __ATTRS_o_ai int
vec_any_le(vector bool long long __a,vector unsigned long long __b)5131 vec_any_le(vector bool long long __a, vector unsigned long long __b) {
5132 int __cc;
5133 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
5134 return __cc != 0;
5135 }
5136
5137 // This prototype is deprecated.
5138 static inline __ATTRS_o_ai int
vec_any_le(vector bool long long __a,vector bool long long __b)5139 vec_any_le(vector bool long long __a, vector bool long long __b) {
5140 int __cc;
5141 __builtin_s390_vchlgs((vector unsigned long long)__a,
5142 (vector unsigned long long)__b, &__cc);
5143 return __cc != 0;
5144 }
5145
5146 #if __ARCH__ >= 12
5147 static inline __ATTRS_o_ai int
vec_any_le(vector float __a,vector float __b)5148 vec_any_le(vector float __a, vector float __b) {
5149 int __cc;
5150 __builtin_s390_vfchesbs(__b, __a, &__cc);
5151 return __cc <= 1;
5152 }
5153 #endif
5154
5155 static inline __ATTRS_o_ai int
vec_any_le(vector double __a,vector double __b)5156 vec_any_le(vector double __a, vector double __b) {
5157 int __cc;
5158 __builtin_s390_vfchedbs(__b, __a, &__cc);
5159 return __cc <= 1;
5160 }
5161
5162 /*-- vec_any_lt -------------------------------------------------------------*/
5163
5164 static inline __ATTRS_o_ai int
vec_any_lt(vector signed char __a,vector signed char __b)5165 vec_any_lt(vector signed char __a, vector signed char __b) {
5166 int __cc;
5167 __builtin_s390_vchbs(__b, __a, &__cc);
5168 return __cc <= 1;
5169 }
5170
5171 // This prototype is deprecated.
5172 static inline __ATTRS_o_ai int
vec_any_lt(vector signed char __a,vector bool char __b)5173 vec_any_lt(vector signed char __a, vector bool char __b) {
5174 int __cc;
5175 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
5176 return __cc <= 1;
5177 }
5178
5179 // This prototype is deprecated.
5180 static inline __ATTRS_o_ai int
vec_any_lt(vector bool char __a,vector signed char __b)5181 vec_any_lt(vector bool char __a, vector signed char __b) {
5182 int __cc;
5183 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
5184 return __cc <= 1;
5185 }
5186
5187 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned char __a,vector unsigned char __b)5188 vec_any_lt(vector unsigned char __a, vector unsigned char __b) {
5189 int __cc;
5190 __builtin_s390_vchlbs(__b, __a, &__cc);
5191 return __cc <= 1;
5192 }
5193
5194 // This prototype is deprecated.
5195 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned char __a,vector bool char __b)5196 vec_any_lt(vector unsigned char __a, vector bool char __b) {
5197 int __cc;
5198 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
5199 return __cc <= 1;
5200 }
5201
5202 // This prototype is deprecated.
5203 static inline __ATTRS_o_ai int
vec_any_lt(vector bool char __a,vector unsigned char __b)5204 vec_any_lt(vector bool char __a, vector unsigned char __b) {
5205 int __cc;
5206 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
5207 return __cc <= 1;
5208 }
5209
5210 // This prototype is deprecated.
5211 static inline __ATTRS_o_ai int
vec_any_lt(vector bool char __a,vector bool char __b)5212 vec_any_lt(vector bool char __a, vector bool char __b) {
5213 int __cc;
5214 __builtin_s390_vchlbs((vector unsigned char)__b,
5215 (vector unsigned char)__a, &__cc);
5216 return __cc <= 1;
5217 }
5218
5219 static inline __ATTRS_o_ai int
vec_any_lt(vector signed short __a,vector signed short __b)5220 vec_any_lt(vector signed short __a, vector signed short __b) {
5221 int __cc;
5222 __builtin_s390_vchhs(__b, __a, &__cc);
5223 return __cc <= 1;
5224 }
5225
5226 // This prototype is deprecated.
5227 static inline __ATTRS_o_ai int
vec_any_lt(vector signed short __a,vector bool short __b)5228 vec_any_lt(vector signed short __a, vector bool short __b) {
5229 int __cc;
5230 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
5231 return __cc <= 1;
5232 }
5233
5234 // This prototype is deprecated.
5235 static inline __ATTRS_o_ai int
vec_any_lt(vector bool short __a,vector signed short __b)5236 vec_any_lt(vector bool short __a, vector signed short __b) {
5237 int __cc;
5238 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
5239 return __cc <= 1;
5240 }
5241
5242 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned short __a,vector unsigned short __b)5243 vec_any_lt(vector unsigned short __a, vector unsigned short __b) {
5244 int __cc;
5245 __builtin_s390_vchlhs(__b, __a, &__cc);
5246 return __cc <= 1;
5247 }
5248
5249 // This prototype is deprecated.
5250 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned short __a,vector bool short __b)5251 vec_any_lt(vector unsigned short __a, vector bool short __b) {
5252 int __cc;
5253 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
5254 return __cc <= 1;
5255 }
5256
5257 // This prototype is deprecated.
5258 static inline __ATTRS_o_ai int
vec_any_lt(vector bool short __a,vector unsigned short __b)5259 vec_any_lt(vector bool short __a, vector unsigned short __b) {
5260 int __cc;
5261 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
5262 return __cc <= 1;
5263 }
5264
5265 // This prototype is deprecated.
5266 static inline __ATTRS_o_ai int
vec_any_lt(vector bool short __a,vector bool short __b)5267 vec_any_lt(vector bool short __a, vector bool short __b) {
5268 int __cc;
5269 __builtin_s390_vchlhs((vector unsigned short)__b,
5270 (vector unsigned short)__a, &__cc);
5271 return __cc <= 1;
5272 }
5273
5274 static inline __ATTRS_o_ai int
vec_any_lt(vector signed int __a,vector signed int __b)5275 vec_any_lt(vector signed int __a, vector signed int __b) {
5276 int __cc;
5277 __builtin_s390_vchfs(__b, __a, &__cc);
5278 return __cc <= 1;
5279 }
5280
5281 // This prototype is deprecated.
5282 static inline __ATTRS_o_ai int
vec_any_lt(vector signed int __a,vector bool int __b)5283 vec_any_lt(vector signed int __a, vector bool int __b) {
5284 int __cc;
5285 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
5286 return __cc <= 1;
5287 }
5288
5289 // This prototype is deprecated.
5290 static inline __ATTRS_o_ai int
vec_any_lt(vector bool int __a,vector signed int __b)5291 vec_any_lt(vector bool int __a, vector signed int __b) {
5292 int __cc;
5293 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
5294 return __cc <= 1;
5295 }
5296
5297 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned int __a,vector unsigned int __b)5298 vec_any_lt(vector unsigned int __a, vector unsigned int __b) {
5299 int __cc;
5300 __builtin_s390_vchlfs(__b, __a, &__cc);
5301 return __cc <= 1;
5302 }
5303
5304 // This prototype is deprecated.
5305 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned int __a,vector bool int __b)5306 vec_any_lt(vector unsigned int __a, vector bool int __b) {
5307 int __cc;
5308 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
5309 return __cc <= 1;
5310 }
5311
5312 // This prototype is deprecated.
5313 static inline __ATTRS_o_ai int
vec_any_lt(vector bool int __a,vector unsigned int __b)5314 vec_any_lt(vector bool int __a, vector unsigned int __b) {
5315 int __cc;
5316 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
5317 return __cc <= 1;
5318 }
5319
5320 // This prototype is deprecated.
5321 static inline __ATTRS_o_ai int
vec_any_lt(vector bool int __a,vector bool int __b)5322 vec_any_lt(vector bool int __a, vector bool int __b) {
5323 int __cc;
5324 __builtin_s390_vchlfs((vector unsigned int)__b,
5325 (vector unsigned int)__a, &__cc);
5326 return __cc <= 1;
5327 }
5328
5329 static inline __ATTRS_o_ai int
vec_any_lt(vector signed long long __a,vector signed long long __b)5330 vec_any_lt(vector signed long long __a, vector signed long long __b) {
5331 int __cc;
5332 __builtin_s390_vchgs(__b, __a, &__cc);
5333 return __cc <= 1;
5334 }
5335
5336 // This prototype is deprecated.
5337 static inline __ATTRS_o_ai int
vec_any_lt(vector signed long long __a,vector bool long long __b)5338 vec_any_lt(vector signed long long __a, vector bool long long __b) {
5339 int __cc;
5340 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
5341 return __cc <= 1;
5342 }
5343
5344 // This prototype is deprecated.
5345 static inline __ATTRS_o_ai int
vec_any_lt(vector bool long long __a,vector signed long long __b)5346 vec_any_lt(vector bool long long __a, vector signed long long __b) {
5347 int __cc;
5348 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
5349 return __cc <= 1;
5350 }
5351
5352 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned long long __a,vector unsigned long long __b)5353 vec_any_lt(vector unsigned long long __a, vector unsigned long long __b) {
5354 int __cc;
5355 __builtin_s390_vchlgs(__b, __a, &__cc);
5356 return __cc <= 1;
5357 }
5358
5359 // This prototype is deprecated.
5360 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned long long __a,vector bool long long __b)5361 vec_any_lt(vector unsigned long long __a, vector bool long long __b) {
5362 int __cc;
5363 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
5364 return __cc <= 1;
5365 }
5366
5367 // This prototype is deprecated.
5368 static inline __ATTRS_o_ai int
vec_any_lt(vector bool long long __a,vector unsigned long long __b)5369 vec_any_lt(vector bool long long __a, vector unsigned long long __b) {
5370 int __cc;
5371 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
5372 return __cc <= 1;
5373 }
5374
5375 // This prototype is deprecated.
5376 static inline __ATTRS_o_ai int
vec_any_lt(vector bool long long __a,vector bool long long __b)5377 vec_any_lt(vector bool long long __a, vector bool long long __b) {
5378 int __cc;
5379 __builtin_s390_vchlgs((vector unsigned long long)__b,
5380 (vector unsigned long long)__a, &__cc);
5381 return __cc <= 1;
5382 }
5383
5384 #if __ARCH__ >= 12
5385 static inline __ATTRS_o_ai int
vec_any_lt(vector float __a,vector float __b)5386 vec_any_lt(vector float __a, vector float __b) {
5387 int __cc;
5388 __builtin_s390_vfchsbs(__b, __a, &__cc);
5389 return __cc <= 1;
5390 }
5391 #endif
5392
5393 static inline __ATTRS_o_ai int
vec_any_lt(vector double __a,vector double __b)5394 vec_any_lt(vector double __a, vector double __b) {
5395 int __cc;
5396 __builtin_s390_vfchdbs(__b, __a, &__cc);
5397 return __cc <= 1;
5398 }
5399
5400 /*-- vec_any_nge ------------------------------------------------------------*/
5401
5402 #if __ARCH__ >= 12
5403 static inline __ATTRS_o_ai int
vec_any_nge(vector float __a,vector float __b)5404 vec_any_nge(vector float __a, vector float __b) {
5405 int __cc;
5406 __builtin_s390_vfchesbs(__a, __b, &__cc);
5407 return __cc != 0;
5408 }
5409 #endif
5410
5411 static inline __ATTRS_o_ai int
vec_any_nge(vector double __a,vector double __b)5412 vec_any_nge(vector double __a, vector double __b) {
5413 int __cc;
5414 __builtin_s390_vfchedbs(__a, __b, &__cc);
5415 return __cc != 0;
5416 }
5417
5418 /*-- vec_any_ngt ------------------------------------------------------------*/
5419
5420 #if __ARCH__ >= 12
5421 static inline __ATTRS_o_ai int
vec_any_ngt(vector float __a,vector float __b)5422 vec_any_ngt(vector float __a, vector float __b) {
5423 int __cc;
5424 __builtin_s390_vfchsbs(__a, __b, &__cc);
5425 return __cc != 0;
5426 }
5427 #endif
5428
5429 static inline __ATTRS_o_ai int
vec_any_ngt(vector double __a,vector double __b)5430 vec_any_ngt(vector double __a, vector double __b) {
5431 int __cc;
5432 __builtin_s390_vfchdbs(__a, __b, &__cc);
5433 return __cc != 0;
5434 }
5435
5436 /*-- vec_any_nle ------------------------------------------------------------*/
5437
5438 #if __ARCH__ >= 12
5439 static inline __ATTRS_o_ai int
vec_any_nle(vector float __a,vector float __b)5440 vec_any_nle(vector float __a, vector float __b) {
5441 int __cc;
5442 __builtin_s390_vfchesbs(__b, __a, &__cc);
5443 return __cc != 0;
5444 }
5445 #endif
5446
5447 static inline __ATTRS_o_ai int
vec_any_nle(vector double __a,vector double __b)5448 vec_any_nle(vector double __a, vector double __b) {
5449 int __cc;
5450 __builtin_s390_vfchedbs(__b, __a, &__cc);
5451 return __cc != 0;
5452 }
5453
5454 /*-- vec_any_nlt ------------------------------------------------------------*/
5455
5456 #if __ARCH__ >= 12
5457 static inline __ATTRS_o_ai int
vec_any_nlt(vector float __a,vector float __b)5458 vec_any_nlt(vector float __a, vector float __b) {
5459 int __cc;
5460 __builtin_s390_vfchsbs(__b, __a, &__cc);
5461 return __cc != 0;
5462 }
5463 #endif
5464
5465 static inline __ATTRS_o_ai int
vec_any_nlt(vector double __a,vector double __b)5466 vec_any_nlt(vector double __a, vector double __b) {
5467 int __cc;
5468 __builtin_s390_vfchdbs(__b, __a, &__cc);
5469 return __cc != 0;
5470 }
5471
5472 /*-- vec_any_nan ------------------------------------------------------------*/
5473
5474 #if __ARCH__ >= 12
5475 static inline __ATTRS_o_ai int
vec_any_nan(vector float __a)5476 vec_any_nan(vector float __a) {
5477 int __cc;
5478 __builtin_s390_vftcisb(__a, 15, &__cc);
5479 return __cc != 3;
5480 }
5481 #endif
5482
5483 static inline __ATTRS_o_ai int
vec_any_nan(vector double __a)5484 vec_any_nan(vector double __a) {
5485 int __cc;
5486 __builtin_s390_vftcidb(__a, 15, &__cc);
5487 return __cc != 3;
5488 }
5489
5490 /*-- vec_any_numeric --------------------------------------------------------*/
5491
5492 #if __ARCH__ >= 12
5493 static inline __ATTRS_o_ai int
vec_any_numeric(vector float __a)5494 vec_any_numeric(vector float __a) {
5495 int __cc;
5496 __builtin_s390_vftcisb(__a, 15, &__cc);
5497 return __cc != 0;
5498 }
5499 #endif
5500
5501 static inline __ATTRS_o_ai int
vec_any_numeric(vector double __a)5502 vec_any_numeric(vector double __a) {
5503 int __cc;
5504 __builtin_s390_vftcidb(__a, 15, &__cc);
5505 return __cc != 0;
5506 }
5507
5508 /*-- vec_andc ---------------------------------------------------------------*/
5509
5510 static inline __ATTRS_o_ai vector bool char
vec_andc(vector bool char __a,vector bool char __b)5511 vec_andc(vector bool char __a, vector bool char __b) {
5512 return __a & ~__b;
5513 }
5514
5515 static inline __ATTRS_o_ai vector signed char
vec_andc(vector signed char __a,vector signed char __b)5516 vec_andc(vector signed char __a, vector signed char __b) {
5517 return __a & ~__b;
5518 }
5519
5520 // This prototype is deprecated.
5521 static inline __ATTRS_o_ai vector signed char
vec_andc(vector bool char __a,vector signed char __b)5522 vec_andc(vector bool char __a, vector signed char __b) {
5523 return __a & ~__b;
5524 }
5525
5526 // This prototype is deprecated.
5527 static inline __ATTRS_o_ai vector signed char
vec_andc(vector signed char __a,vector bool char __b)5528 vec_andc(vector signed char __a, vector bool char __b) {
5529 return __a & ~__b;
5530 }
5531
5532 static inline __ATTRS_o_ai vector unsigned char
vec_andc(vector unsigned char __a,vector unsigned char __b)5533 vec_andc(vector unsigned char __a, vector unsigned char __b) {
5534 return __a & ~__b;
5535 }
5536
5537 // This prototype is deprecated.
5538 static inline __ATTRS_o_ai vector unsigned char
vec_andc(vector bool char __a,vector unsigned char __b)5539 vec_andc(vector bool char __a, vector unsigned char __b) {
5540 return __a & ~__b;
5541 }
5542
5543 // This prototype is deprecated.
5544 static inline __ATTRS_o_ai vector unsigned char
vec_andc(vector unsigned char __a,vector bool char __b)5545 vec_andc(vector unsigned char __a, vector bool char __b) {
5546 return __a & ~__b;
5547 }
5548
5549 static inline __ATTRS_o_ai vector bool short
vec_andc(vector bool short __a,vector bool short __b)5550 vec_andc(vector bool short __a, vector bool short __b) {
5551 return __a & ~__b;
5552 }
5553
5554 static inline __ATTRS_o_ai vector signed short
vec_andc(vector signed short __a,vector signed short __b)5555 vec_andc(vector signed short __a, vector signed short __b) {
5556 return __a & ~__b;
5557 }
5558
5559 // This prototype is deprecated.
5560 static inline __ATTRS_o_ai vector signed short
vec_andc(vector bool short __a,vector signed short __b)5561 vec_andc(vector bool short __a, vector signed short __b) {
5562 return __a & ~__b;
5563 }
5564
5565 // This prototype is deprecated.
5566 static inline __ATTRS_o_ai vector signed short
vec_andc(vector signed short __a,vector bool short __b)5567 vec_andc(vector signed short __a, vector bool short __b) {
5568 return __a & ~__b;
5569 }
5570
5571 static inline __ATTRS_o_ai vector unsigned short
vec_andc(vector unsigned short __a,vector unsigned short __b)5572 vec_andc(vector unsigned short __a, vector unsigned short __b) {
5573 return __a & ~__b;
5574 }
5575
5576 // This prototype is deprecated.
5577 static inline __ATTRS_o_ai vector unsigned short
vec_andc(vector bool short __a,vector unsigned short __b)5578 vec_andc(vector bool short __a, vector unsigned short __b) {
5579 return __a & ~__b;
5580 }
5581
5582 // This prototype is deprecated.
5583 static inline __ATTRS_o_ai vector unsigned short
vec_andc(vector unsigned short __a,vector bool short __b)5584 vec_andc(vector unsigned short __a, vector bool short __b) {
5585 return __a & ~__b;
5586 }
5587
5588 static inline __ATTRS_o_ai vector bool int
vec_andc(vector bool int __a,vector bool int __b)5589 vec_andc(vector bool int __a, vector bool int __b) {
5590 return __a & ~__b;
5591 }
5592
5593 static inline __ATTRS_o_ai vector signed int
vec_andc(vector signed int __a,vector signed int __b)5594 vec_andc(vector signed int __a, vector signed int __b) {
5595 return __a & ~__b;
5596 }
5597
5598 // This prototype is deprecated.
5599 static inline __ATTRS_o_ai vector signed int
vec_andc(vector bool int __a,vector signed int __b)5600 vec_andc(vector bool int __a, vector signed int __b) {
5601 return __a & ~__b;
5602 }
5603
5604 // This prototype is deprecated.
5605 static inline __ATTRS_o_ai vector signed int
vec_andc(vector signed int __a,vector bool int __b)5606 vec_andc(vector signed int __a, vector bool int __b) {
5607 return __a & ~__b;
5608 }
5609
5610 static inline __ATTRS_o_ai vector unsigned int
vec_andc(vector unsigned int __a,vector unsigned int __b)5611 vec_andc(vector unsigned int __a, vector unsigned int __b) {
5612 return __a & ~__b;
5613 }
5614
5615 // This prototype is deprecated.
5616 static inline __ATTRS_o_ai vector unsigned int
vec_andc(vector bool int __a,vector unsigned int __b)5617 vec_andc(vector bool int __a, vector unsigned int __b) {
5618 return __a & ~__b;
5619 }
5620
5621 // This prototype is deprecated.
5622 static inline __ATTRS_o_ai vector unsigned int
vec_andc(vector unsigned int __a,vector bool int __b)5623 vec_andc(vector unsigned int __a, vector bool int __b) {
5624 return __a & ~__b;
5625 }
5626
5627 static inline __ATTRS_o_ai vector bool long long
vec_andc(vector bool long long __a,vector bool long long __b)5628 vec_andc(vector bool long long __a, vector bool long long __b) {
5629 return __a & ~__b;
5630 }
5631
5632 static inline __ATTRS_o_ai vector signed long long
vec_andc(vector signed long long __a,vector signed long long __b)5633 vec_andc(vector signed long long __a, vector signed long long __b) {
5634 return __a & ~__b;
5635 }
5636
5637 // This prototype is deprecated.
5638 static inline __ATTRS_o_ai vector signed long long
vec_andc(vector bool long long __a,vector signed long long __b)5639 vec_andc(vector bool long long __a, vector signed long long __b) {
5640 return __a & ~__b;
5641 }
5642
5643 // This prototype is deprecated.
5644 static inline __ATTRS_o_ai vector signed long long
vec_andc(vector signed long long __a,vector bool long long __b)5645 vec_andc(vector signed long long __a, vector bool long long __b) {
5646 return __a & ~__b;
5647 }
5648
5649 static inline __ATTRS_o_ai vector unsigned long long
vec_andc(vector unsigned long long __a,vector unsigned long long __b)5650 vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
5651 return __a & ~__b;
5652 }
5653
5654 // This prototype is deprecated.
5655 static inline __ATTRS_o_ai vector unsigned long long
vec_andc(vector bool long long __a,vector unsigned long long __b)5656 vec_andc(vector bool long long __a, vector unsigned long long __b) {
5657 return __a & ~__b;
5658 }
5659
5660 // This prototype is deprecated.
5661 static inline __ATTRS_o_ai vector unsigned long long
vec_andc(vector unsigned long long __a,vector bool long long __b)5662 vec_andc(vector unsigned long long __a, vector bool long long __b) {
5663 return __a & ~__b;
5664 }
5665
5666 #if __ARCH__ >= 12
5667 static inline __ATTRS_o_ai vector float
vec_andc(vector float __a,vector float __b)5668 vec_andc(vector float __a, vector float __b) {
5669 return (vector float)((vector unsigned int)__a &
5670 ~(vector unsigned int)__b);
5671 }
5672 #endif
5673
5674 static inline __ATTRS_o_ai vector double
vec_andc(vector double __a,vector double __b)5675 vec_andc(vector double __a, vector double __b) {
5676 return (vector double)((vector unsigned long long)__a &
5677 ~(vector unsigned long long)__b);
5678 }
5679
5680 // This prototype is deprecated.
5681 static inline __ATTRS_o_ai vector double
vec_andc(vector bool long long __a,vector double __b)5682 vec_andc(vector bool long long __a, vector double __b) {
5683 return (vector double)((vector unsigned long long)__a &
5684 ~(vector unsigned long long)__b);
5685 }
5686
5687 // This prototype is deprecated.
5688 static inline __ATTRS_o_ai vector double
vec_andc(vector double __a,vector bool long long __b)5689 vec_andc(vector double __a, vector bool long long __b) {
5690 return (vector double)((vector unsigned long long)__a &
5691 ~(vector unsigned long long)__b);
5692 }
5693
5694 /*-- vec_nor ----------------------------------------------------------------*/
5695
5696 static inline __ATTRS_o_ai vector bool char
vec_nor(vector bool char __a,vector bool char __b)5697 vec_nor(vector bool char __a, vector bool char __b) {
5698 return ~(__a | __b);
5699 }
5700
5701 static inline __ATTRS_o_ai vector signed char
vec_nor(vector signed char __a,vector signed char __b)5702 vec_nor(vector signed char __a, vector signed char __b) {
5703 return ~(__a | __b);
5704 }
5705
5706 // This prototype is deprecated.
5707 static inline __ATTRS_o_ai vector signed char
vec_nor(vector bool char __a,vector signed char __b)5708 vec_nor(vector bool char __a, vector signed char __b) {
5709 return ~(__a | __b);
5710 }
5711
5712 // This prototype is deprecated.
5713 static inline __ATTRS_o_ai vector signed char
vec_nor(vector signed char __a,vector bool char __b)5714 vec_nor(vector signed char __a, vector bool char __b) {
5715 return ~(__a | __b);
5716 }
5717
5718 static inline __ATTRS_o_ai vector unsigned char
vec_nor(vector unsigned char __a,vector unsigned char __b)5719 vec_nor(vector unsigned char __a, vector unsigned char __b) {
5720 return ~(__a | __b);
5721 }
5722
5723 // This prototype is deprecated.
5724 static inline __ATTRS_o_ai vector unsigned char
vec_nor(vector bool char __a,vector unsigned char __b)5725 vec_nor(vector bool char __a, vector unsigned char __b) {
5726 return ~(__a | __b);
5727 }
5728
5729 // This prototype is deprecated.
5730 static inline __ATTRS_o_ai vector unsigned char
vec_nor(vector unsigned char __a,vector bool char __b)5731 vec_nor(vector unsigned char __a, vector bool char __b) {
5732 return ~(__a | __b);
5733 }
5734
5735 static inline __ATTRS_o_ai vector bool short
vec_nor(vector bool short __a,vector bool short __b)5736 vec_nor(vector bool short __a, vector bool short __b) {
5737 return ~(__a | __b);
5738 }
5739
5740 static inline __ATTRS_o_ai vector signed short
vec_nor(vector signed short __a,vector signed short __b)5741 vec_nor(vector signed short __a, vector signed short __b) {
5742 return ~(__a | __b);
5743 }
5744
5745 // This prototype is deprecated.
5746 static inline __ATTRS_o_ai vector signed short
vec_nor(vector bool short __a,vector signed short __b)5747 vec_nor(vector bool short __a, vector signed short __b) {
5748 return ~(__a | __b);
5749 }
5750
5751 // This prototype is deprecated.
5752 static inline __ATTRS_o_ai vector signed short
vec_nor(vector signed short __a,vector bool short __b)5753 vec_nor(vector signed short __a, vector bool short __b) {
5754 return ~(__a | __b);
5755 }
5756
5757 static inline __ATTRS_o_ai vector unsigned short
vec_nor(vector unsigned short __a,vector unsigned short __b)5758 vec_nor(vector unsigned short __a, vector unsigned short __b) {
5759 return ~(__a | __b);
5760 }
5761
5762 // This prototype is deprecated.
5763 static inline __ATTRS_o_ai vector unsigned short
vec_nor(vector bool short __a,vector unsigned short __b)5764 vec_nor(vector bool short __a, vector unsigned short __b) {
5765 return ~(__a | __b);
5766 }
5767
5768 // This prototype is deprecated.
5769 static inline __ATTRS_o_ai vector unsigned short
vec_nor(vector unsigned short __a,vector bool short __b)5770 vec_nor(vector unsigned short __a, vector bool short __b) {
5771 return ~(__a | __b);
5772 }
5773
5774 static inline __ATTRS_o_ai vector bool int
vec_nor(vector bool int __a,vector bool int __b)5775 vec_nor(vector bool int __a, vector bool int __b) {
5776 return ~(__a | __b);
5777 }
5778
5779 static inline __ATTRS_o_ai vector signed int
vec_nor(vector signed int __a,vector signed int __b)5780 vec_nor(vector signed int __a, vector signed int __b) {
5781 return ~(__a | __b);
5782 }
5783
5784 // This prototype is deprecated.
5785 static inline __ATTRS_o_ai vector signed int
vec_nor(vector bool int __a,vector signed int __b)5786 vec_nor(vector bool int __a, vector signed int __b) {
5787 return ~(__a | __b);
5788 }
5789
5790 // This prototype is deprecated.
5791 static inline __ATTRS_o_ai vector signed int
vec_nor(vector signed int __a,vector bool int __b)5792 vec_nor(vector signed int __a, vector bool int __b) {
5793 return ~(__a | __b);
5794 }
5795
5796 static inline __ATTRS_o_ai vector unsigned int
vec_nor(vector unsigned int __a,vector unsigned int __b)5797 vec_nor(vector unsigned int __a, vector unsigned int __b) {
5798 return ~(__a | __b);
5799 }
5800
5801 // This prototype is deprecated.
5802 static inline __ATTRS_o_ai vector unsigned int
vec_nor(vector bool int __a,vector unsigned int __b)5803 vec_nor(vector bool int __a, vector unsigned int __b) {
5804 return ~(__a | __b);
5805 }
5806
5807 // This prototype is deprecated.
5808 static inline __ATTRS_o_ai vector unsigned int
vec_nor(vector unsigned int __a,vector bool int __b)5809 vec_nor(vector unsigned int __a, vector bool int __b) {
5810 return ~(__a | __b);
5811 }
5812
5813 static inline __ATTRS_o_ai vector bool long long
vec_nor(vector bool long long __a,vector bool long long __b)5814 vec_nor(vector bool long long __a, vector bool long long __b) {
5815 return ~(__a | __b);
5816 }
5817
5818 static inline __ATTRS_o_ai vector signed long long
vec_nor(vector signed long long __a,vector signed long long __b)5819 vec_nor(vector signed long long __a, vector signed long long __b) {
5820 return ~(__a | __b);
5821 }
5822
5823 // This prototype is deprecated.
5824 static inline __ATTRS_o_ai vector signed long long
vec_nor(vector bool long long __a,vector signed long long __b)5825 vec_nor(vector bool long long __a, vector signed long long __b) {
5826 return ~(__a | __b);
5827 }
5828
5829 // This prototype is deprecated.
5830 static inline __ATTRS_o_ai vector signed long long
vec_nor(vector signed long long __a,vector bool long long __b)5831 vec_nor(vector signed long long __a, vector bool long long __b) {
5832 return ~(__a | __b);
5833 }
5834
5835 static inline __ATTRS_o_ai vector unsigned long long
vec_nor(vector unsigned long long __a,vector unsigned long long __b)5836 vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
5837 return ~(__a | __b);
5838 }
5839
5840 // This prototype is deprecated.
5841 static inline __ATTRS_o_ai vector unsigned long long
vec_nor(vector bool long long __a,vector unsigned long long __b)5842 vec_nor(vector bool long long __a, vector unsigned long long __b) {
5843 return ~(__a | __b);
5844 }
5845
5846 // This prototype is deprecated.
5847 static inline __ATTRS_o_ai vector unsigned long long
vec_nor(vector unsigned long long __a,vector bool long long __b)5848 vec_nor(vector unsigned long long __a, vector bool long long __b) {
5849 return ~(__a | __b);
5850 }
5851
5852 #if __ARCH__ >= 12
5853 static inline __ATTRS_o_ai vector float
vec_nor(vector float __a,vector float __b)5854 vec_nor(vector float __a, vector float __b) {
5855 return (vector float)~((vector unsigned int)__a |
5856 (vector unsigned int)__b);
5857 }
5858 #endif
5859
5860 static inline __ATTRS_o_ai vector double
vec_nor(vector double __a,vector double __b)5861 vec_nor(vector double __a, vector double __b) {
5862 return (vector double)~((vector unsigned long long)__a |
5863 (vector unsigned long long)__b);
5864 }
5865
5866 // This prototype is deprecated.
5867 static inline __ATTRS_o_ai vector double
vec_nor(vector bool long long __a,vector double __b)5868 vec_nor(vector bool long long __a, vector double __b) {
5869 return (vector double)~((vector unsigned long long)__a |
5870 (vector unsigned long long)__b);
5871 }
5872
5873 // This prototype is deprecated.
5874 static inline __ATTRS_o_ai vector double
vec_nor(vector double __a,vector bool long long __b)5875 vec_nor(vector double __a, vector bool long long __b) {
5876 return (vector double)~((vector unsigned long long)__a |
5877 (vector unsigned long long)__b);
5878 }
5879
5880 /*-- vec_orc ----------------------------------------------------------------*/
5881
5882 #if __ARCH__ >= 12
5883 static inline __ATTRS_o_ai vector bool char
vec_orc(vector bool char __a,vector bool char __b)5884 vec_orc(vector bool char __a, vector bool char __b) {
5885 return __a | ~__b;
5886 }
5887
5888 static inline __ATTRS_o_ai vector signed char
vec_orc(vector signed char __a,vector signed char __b)5889 vec_orc(vector signed char __a, vector signed char __b) {
5890 return __a | ~__b;
5891 }
5892
5893 static inline __ATTRS_o_ai vector unsigned char
vec_orc(vector unsigned char __a,vector unsigned char __b)5894 vec_orc(vector unsigned char __a, vector unsigned char __b) {
5895 return __a | ~__b;
5896 }
5897
5898 static inline __ATTRS_o_ai vector bool short
vec_orc(vector bool short __a,vector bool short __b)5899 vec_orc(vector bool short __a, vector bool short __b) {
5900 return __a | ~__b;
5901 }
5902
5903 static inline __ATTRS_o_ai vector signed short
vec_orc(vector signed short __a,vector signed short __b)5904 vec_orc(vector signed short __a, vector signed short __b) {
5905 return __a | ~__b;
5906 }
5907
5908 static inline __ATTRS_o_ai vector unsigned short
vec_orc(vector unsigned short __a,vector unsigned short __b)5909 vec_orc(vector unsigned short __a, vector unsigned short __b) {
5910 return __a | ~__b;
5911 }
5912
5913 static inline __ATTRS_o_ai vector bool int
vec_orc(vector bool int __a,vector bool int __b)5914 vec_orc(vector bool int __a, vector bool int __b) {
5915 return __a | ~__b;
5916 }
5917
5918 static inline __ATTRS_o_ai vector signed int
vec_orc(vector signed int __a,vector signed int __b)5919 vec_orc(vector signed int __a, vector signed int __b) {
5920 return __a | ~__b;
5921 }
5922
5923 static inline __ATTRS_o_ai vector unsigned int
vec_orc(vector unsigned int __a,vector unsigned int __b)5924 vec_orc(vector unsigned int __a, vector unsigned int __b) {
5925 return __a | ~__b;
5926 }
5927
5928 static inline __ATTRS_o_ai vector bool long long
vec_orc(vector bool long long __a,vector bool long long __b)5929 vec_orc(vector bool long long __a, vector bool long long __b) {
5930 return __a | ~__b;
5931 }
5932
5933 static inline __ATTRS_o_ai vector signed long long
vec_orc(vector signed long long __a,vector signed long long __b)5934 vec_orc(vector signed long long __a, vector signed long long __b) {
5935 return __a | ~__b;
5936 }
5937
5938 static inline __ATTRS_o_ai vector unsigned long long
vec_orc(vector unsigned long long __a,vector unsigned long long __b)5939 vec_orc(vector unsigned long long __a, vector unsigned long long __b) {
5940 return __a | ~__b;
5941 }
5942
5943 static inline __ATTRS_o_ai vector float
vec_orc(vector float __a,vector float __b)5944 vec_orc(vector float __a, vector float __b) {
5945 return (vector float)((vector unsigned int)__a |
5946 ~(vector unsigned int)__b);
5947 }
5948
5949 static inline __ATTRS_o_ai vector double
vec_orc(vector double __a,vector double __b)5950 vec_orc(vector double __a, vector double __b) {
5951 return (vector double)((vector unsigned long long)__a |
5952 ~(vector unsigned long long)__b);
5953 }
5954 #endif
5955
5956 /*-- vec_nand ---------------------------------------------------------------*/
5957
5958 #if __ARCH__ >= 12
5959 static inline __ATTRS_o_ai vector bool char
vec_nand(vector bool char __a,vector bool char __b)5960 vec_nand(vector bool char __a, vector bool char __b) {
5961 return ~(__a & __b);
5962 }
5963
5964 static inline __ATTRS_o_ai vector signed char
vec_nand(vector signed char __a,vector signed char __b)5965 vec_nand(vector signed char __a, vector signed char __b) {
5966 return ~(__a & __b);
5967 }
5968
5969 static inline __ATTRS_o_ai vector unsigned char
vec_nand(vector unsigned char __a,vector unsigned char __b)5970 vec_nand(vector unsigned char __a, vector unsigned char __b) {
5971 return ~(__a & __b);
5972 }
5973
5974 static inline __ATTRS_o_ai vector bool short
vec_nand(vector bool short __a,vector bool short __b)5975 vec_nand(vector bool short __a, vector bool short __b) {
5976 return ~(__a & __b);
5977 }
5978
5979 static inline __ATTRS_o_ai vector signed short
vec_nand(vector signed short __a,vector signed short __b)5980 vec_nand(vector signed short __a, vector signed short __b) {
5981 return ~(__a & __b);
5982 }
5983
5984 static inline __ATTRS_o_ai vector unsigned short
vec_nand(vector unsigned short __a,vector unsigned short __b)5985 vec_nand(vector unsigned short __a, vector unsigned short __b) {
5986 return ~(__a & __b);
5987 }
5988
5989 static inline __ATTRS_o_ai vector bool int
vec_nand(vector bool int __a,vector bool int __b)5990 vec_nand(vector bool int __a, vector bool int __b) {
5991 return ~(__a & __b);
5992 }
5993
5994 static inline __ATTRS_o_ai vector signed int
vec_nand(vector signed int __a,vector signed int __b)5995 vec_nand(vector signed int __a, vector signed int __b) {
5996 return ~(__a & __b);
5997 }
5998
5999 static inline __ATTRS_o_ai vector unsigned int
vec_nand(vector unsigned int __a,vector unsigned int __b)6000 vec_nand(vector unsigned int __a, vector unsigned int __b) {
6001 return ~(__a & __b);
6002 }
6003
6004 static inline __ATTRS_o_ai vector bool long long
vec_nand(vector bool long long __a,vector bool long long __b)6005 vec_nand(vector bool long long __a, vector bool long long __b) {
6006 return ~(__a & __b);
6007 }
6008
6009 static inline __ATTRS_o_ai vector signed long long
vec_nand(vector signed long long __a,vector signed long long __b)6010 vec_nand(vector signed long long __a, vector signed long long __b) {
6011 return ~(__a & __b);
6012 }
6013
6014 static inline __ATTRS_o_ai vector unsigned long long
vec_nand(vector unsigned long long __a,vector unsigned long long __b)6015 vec_nand(vector unsigned long long __a, vector unsigned long long __b) {
6016 return ~(__a & __b);
6017 }
6018
6019 static inline __ATTRS_o_ai vector float
vec_nand(vector float __a,vector float __b)6020 vec_nand(vector float __a, vector float __b) {
6021 return (vector float)~((vector unsigned int)__a &
6022 (vector unsigned int)__b);
6023 }
6024
6025 static inline __ATTRS_o_ai vector double
vec_nand(vector double __a,vector double __b)6026 vec_nand(vector double __a, vector double __b) {
6027 return (vector double)~((vector unsigned long long)__a &
6028 (vector unsigned long long)__b);
6029 }
6030 #endif
6031
6032 /*-- vec_eqv ----------------------------------------------------------------*/
6033
6034 #if __ARCH__ >= 12
6035 static inline __ATTRS_o_ai vector bool char
vec_eqv(vector bool char __a,vector bool char __b)6036 vec_eqv(vector bool char __a, vector bool char __b) {
6037 return ~(__a ^ __b);
6038 }
6039
6040 static inline __ATTRS_o_ai vector signed char
vec_eqv(vector signed char __a,vector signed char __b)6041 vec_eqv(vector signed char __a, vector signed char __b) {
6042 return ~(__a ^ __b);
6043 }
6044
6045 static inline __ATTRS_o_ai vector unsigned char
vec_eqv(vector unsigned char __a,vector unsigned char __b)6046 vec_eqv(vector unsigned char __a, vector unsigned char __b) {
6047 return ~(__a ^ __b);
6048 }
6049
6050 static inline __ATTRS_o_ai vector bool short
vec_eqv(vector bool short __a,vector bool short __b)6051 vec_eqv(vector bool short __a, vector bool short __b) {
6052 return ~(__a ^ __b);
6053 }
6054
6055 static inline __ATTRS_o_ai vector signed short
vec_eqv(vector signed short __a,vector signed short __b)6056 vec_eqv(vector signed short __a, vector signed short __b) {
6057 return ~(__a ^ __b);
6058 }
6059
6060 static inline __ATTRS_o_ai vector unsigned short
vec_eqv(vector unsigned short __a,vector unsigned short __b)6061 vec_eqv(vector unsigned short __a, vector unsigned short __b) {
6062 return ~(__a ^ __b);
6063 }
6064
6065 static inline __ATTRS_o_ai vector bool int
vec_eqv(vector bool int __a,vector bool int __b)6066 vec_eqv(vector bool int __a, vector bool int __b) {
6067 return ~(__a ^ __b);
6068 }
6069
6070 static inline __ATTRS_o_ai vector signed int
vec_eqv(vector signed int __a,vector signed int __b)6071 vec_eqv(vector signed int __a, vector signed int __b) {
6072 return ~(__a ^ __b);
6073 }
6074
6075 static inline __ATTRS_o_ai vector unsigned int
vec_eqv(vector unsigned int __a,vector unsigned int __b)6076 vec_eqv(vector unsigned int __a, vector unsigned int __b) {
6077 return ~(__a ^ __b);
6078 }
6079
6080 static inline __ATTRS_o_ai vector bool long long
vec_eqv(vector bool long long __a,vector bool long long __b)6081 vec_eqv(vector bool long long __a, vector bool long long __b) {
6082 return ~(__a ^ __b);
6083 }
6084
6085 static inline __ATTRS_o_ai vector signed long long
vec_eqv(vector signed long long __a,vector signed long long __b)6086 vec_eqv(vector signed long long __a, vector signed long long __b) {
6087 return ~(__a ^ __b);
6088 }
6089
6090 static inline __ATTRS_o_ai vector unsigned long long
vec_eqv(vector unsigned long long __a,vector unsigned long long __b)6091 vec_eqv(vector unsigned long long __a, vector unsigned long long __b) {
6092 return ~(__a ^ __b);
6093 }
6094
6095 static inline __ATTRS_o_ai vector float
vec_eqv(vector float __a,vector float __b)6096 vec_eqv(vector float __a, vector float __b) {
6097 return (vector float)~((vector unsigned int)__a ^
6098 (vector unsigned int)__b);
6099 }
6100
6101 static inline __ATTRS_o_ai vector double
vec_eqv(vector double __a,vector double __b)6102 vec_eqv(vector double __a, vector double __b) {
6103 return (vector double)~((vector unsigned long long)__a ^
6104 (vector unsigned long long)__b);
6105 }
6106 #endif
6107
6108 /*-- vec_cntlz --------------------------------------------------------------*/
6109
6110 static inline __ATTRS_o_ai vector unsigned char
vec_cntlz(vector signed char __a)6111 vec_cntlz(vector signed char __a) {
6112 return __builtin_s390_vclzb((vector unsigned char)__a);
6113 }
6114
6115 static inline __ATTRS_o_ai vector unsigned char
vec_cntlz(vector unsigned char __a)6116 vec_cntlz(vector unsigned char __a) {
6117 return __builtin_s390_vclzb(__a);
6118 }
6119
6120 static inline __ATTRS_o_ai vector unsigned short
vec_cntlz(vector signed short __a)6121 vec_cntlz(vector signed short __a) {
6122 return __builtin_s390_vclzh((vector unsigned short)__a);
6123 }
6124
6125 static inline __ATTRS_o_ai vector unsigned short
vec_cntlz(vector unsigned short __a)6126 vec_cntlz(vector unsigned short __a) {
6127 return __builtin_s390_vclzh(__a);
6128 }
6129
6130 static inline __ATTRS_o_ai vector unsigned int
vec_cntlz(vector signed int __a)6131 vec_cntlz(vector signed int __a) {
6132 return __builtin_s390_vclzf((vector unsigned int)__a);
6133 }
6134
6135 static inline __ATTRS_o_ai vector unsigned int
vec_cntlz(vector unsigned int __a)6136 vec_cntlz(vector unsigned int __a) {
6137 return __builtin_s390_vclzf(__a);
6138 }
6139
6140 static inline __ATTRS_o_ai vector unsigned long long
vec_cntlz(vector signed long long __a)6141 vec_cntlz(vector signed long long __a) {
6142 return __builtin_s390_vclzg((vector unsigned long long)__a);
6143 }
6144
6145 static inline __ATTRS_o_ai vector unsigned long long
vec_cntlz(vector unsigned long long __a)6146 vec_cntlz(vector unsigned long long __a) {
6147 return __builtin_s390_vclzg(__a);
6148 }
6149
6150 /*-- vec_cnttz --------------------------------------------------------------*/
6151
6152 static inline __ATTRS_o_ai vector unsigned char
vec_cnttz(vector signed char __a)6153 vec_cnttz(vector signed char __a) {
6154 return __builtin_s390_vctzb((vector unsigned char)__a);
6155 }
6156
6157 static inline __ATTRS_o_ai vector unsigned char
vec_cnttz(vector unsigned char __a)6158 vec_cnttz(vector unsigned char __a) {
6159 return __builtin_s390_vctzb(__a);
6160 }
6161
6162 static inline __ATTRS_o_ai vector unsigned short
vec_cnttz(vector signed short __a)6163 vec_cnttz(vector signed short __a) {
6164 return __builtin_s390_vctzh((vector unsigned short)__a);
6165 }
6166
6167 static inline __ATTRS_o_ai vector unsigned short
vec_cnttz(vector unsigned short __a)6168 vec_cnttz(vector unsigned short __a) {
6169 return __builtin_s390_vctzh(__a);
6170 }
6171
6172 static inline __ATTRS_o_ai vector unsigned int
vec_cnttz(vector signed int __a)6173 vec_cnttz(vector signed int __a) {
6174 return __builtin_s390_vctzf((vector unsigned int)__a);
6175 }
6176
6177 static inline __ATTRS_o_ai vector unsigned int
vec_cnttz(vector unsigned int __a)6178 vec_cnttz(vector unsigned int __a) {
6179 return __builtin_s390_vctzf(__a);
6180 }
6181
6182 static inline __ATTRS_o_ai vector unsigned long long
vec_cnttz(vector signed long long __a)6183 vec_cnttz(vector signed long long __a) {
6184 return __builtin_s390_vctzg((vector unsigned long long)__a);
6185 }
6186
6187 static inline __ATTRS_o_ai vector unsigned long long
vec_cnttz(vector unsigned long long __a)6188 vec_cnttz(vector unsigned long long __a) {
6189 return __builtin_s390_vctzg(__a);
6190 }
6191
6192 /*-- vec_popcnt -------------------------------------------------------------*/
6193
6194 static inline __ATTRS_o_ai vector unsigned char
vec_popcnt(vector signed char __a)6195 vec_popcnt(vector signed char __a) {
6196 return __builtin_s390_vpopctb((vector unsigned char)__a);
6197 }
6198
6199 static inline __ATTRS_o_ai vector unsigned char
vec_popcnt(vector unsigned char __a)6200 vec_popcnt(vector unsigned char __a) {
6201 return __builtin_s390_vpopctb(__a);
6202 }
6203
6204 static inline __ATTRS_o_ai vector unsigned short
vec_popcnt(vector signed short __a)6205 vec_popcnt(vector signed short __a) {
6206 return __builtin_s390_vpopcth((vector unsigned short)__a);
6207 }
6208
6209 static inline __ATTRS_o_ai vector unsigned short
vec_popcnt(vector unsigned short __a)6210 vec_popcnt(vector unsigned short __a) {
6211 return __builtin_s390_vpopcth(__a);
6212 }
6213
6214 static inline __ATTRS_o_ai vector unsigned int
vec_popcnt(vector signed int __a)6215 vec_popcnt(vector signed int __a) {
6216 return __builtin_s390_vpopctf((vector unsigned int)__a);
6217 }
6218
6219 static inline __ATTRS_o_ai vector unsigned int
vec_popcnt(vector unsigned int __a)6220 vec_popcnt(vector unsigned int __a) {
6221 return __builtin_s390_vpopctf(__a);
6222 }
6223
6224 static inline __ATTRS_o_ai vector unsigned long long
vec_popcnt(vector signed long long __a)6225 vec_popcnt(vector signed long long __a) {
6226 return __builtin_s390_vpopctg((vector unsigned long long)__a);
6227 }
6228
6229 static inline __ATTRS_o_ai vector unsigned long long
vec_popcnt(vector unsigned long long __a)6230 vec_popcnt(vector unsigned long long __a) {
6231 return __builtin_s390_vpopctg(__a);
6232 }
6233
6234 /*-- vec_rl -----------------------------------------------------------------*/
6235
6236 static inline __ATTRS_o_ai vector signed char
vec_rl(vector signed char __a,vector unsigned char __b)6237 vec_rl(vector signed char __a, vector unsigned char __b) {
6238 return (vector signed char)__builtin_s390_verllvb(
6239 (vector unsigned char)__a, __b);
6240 }
6241
6242 static inline __ATTRS_o_ai vector unsigned char
vec_rl(vector unsigned char __a,vector unsigned char __b)6243 vec_rl(vector unsigned char __a, vector unsigned char __b) {
6244 return __builtin_s390_verllvb(__a, __b);
6245 }
6246
6247 static inline __ATTRS_o_ai vector signed short
vec_rl(vector signed short __a,vector unsigned short __b)6248 vec_rl(vector signed short __a, vector unsigned short __b) {
6249 return (vector signed short)__builtin_s390_verllvh(
6250 (vector unsigned short)__a, __b);
6251 }
6252
6253 static inline __ATTRS_o_ai vector unsigned short
vec_rl(vector unsigned short __a,vector unsigned short __b)6254 vec_rl(vector unsigned short __a, vector unsigned short __b) {
6255 return __builtin_s390_verllvh(__a, __b);
6256 }
6257
6258 static inline __ATTRS_o_ai vector signed int
vec_rl(vector signed int __a,vector unsigned int __b)6259 vec_rl(vector signed int __a, vector unsigned int __b) {
6260 return (vector signed int)__builtin_s390_verllvf(
6261 (vector unsigned int)__a, __b);
6262 }
6263
6264 static inline __ATTRS_o_ai vector unsigned int
vec_rl(vector unsigned int __a,vector unsigned int __b)6265 vec_rl(vector unsigned int __a, vector unsigned int __b) {
6266 return __builtin_s390_verllvf(__a, __b);
6267 }
6268
6269 static inline __ATTRS_o_ai vector signed long long
vec_rl(vector signed long long __a,vector unsigned long long __b)6270 vec_rl(vector signed long long __a, vector unsigned long long __b) {
6271 return (vector signed long long)__builtin_s390_verllvg(
6272 (vector unsigned long long)__a, __b);
6273 }
6274
6275 static inline __ATTRS_o_ai vector unsigned long long
vec_rl(vector unsigned long long __a,vector unsigned long long __b)6276 vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
6277 return __builtin_s390_verllvg(__a, __b);
6278 }
6279
6280 /*-- vec_rli ----------------------------------------------------------------*/
6281
6282 static inline __ATTRS_o_ai vector signed char
vec_rli(vector signed char __a,unsigned long __b)6283 vec_rli(vector signed char __a, unsigned long __b) {
6284 return (vector signed char)__builtin_s390_verllb(
6285 (vector unsigned char)__a, (int)__b);
6286 }
6287
6288 static inline __ATTRS_o_ai vector unsigned char
vec_rli(vector unsigned char __a,unsigned long __b)6289 vec_rli(vector unsigned char __a, unsigned long __b) {
6290 return __builtin_s390_verllb(__a, (int)__b);
6291 }
6292
6293 static inline __ATTRS_o_ai vector signed short
vec_rli(vector signed short __a,unsigned long __b)6294 vec_rli(vector signed short __a, unsigned long __b) {
6295 return (vector signed short)__builtin_s390_verllh(
6296 (vector unsigned short)__a, (int)__b);
6297 }
6298
6299 static inline __ATTRS_o_ai vector unsigned short
vec_rli(vector unsigned short __a,unsigned long __b)6300 vec_rli(vector unsigned short __a, unsigned long __b) {
6301 return __builtin_s390_verllh(__a, (int)__b);
6302 }
6303
6304 static inline __ATTRS_o_ai vector signed int
vec_rli(vector signed int __a,unsigned long __b)6305 vec_rli(vector signed int __a, unsigned long __b) {
6306 return (vector signed int)__builtin_s390_verllf(
6307 (vector unsigned int)__a, (int)__b);
6308 }
6309
6310 static inline __ATTRS_o_ai vector unsigned int
vec_rli(vector unsigned int __a,unsigned long __b)6311 vec_rli(vector unsigned int __a, unsigned long __b) {
6312 return __builtin_s390_verllf(__a, (int)__b);
6313 }
6314
6315 static inline __ATTRS_o_ai vector signed long long
vec_rli(vector signed long long __a,unsigned long __b)6316 vec_rli(vector signed long long __a, unsigned long __b) {
6317 return (vector signed long long)__builtin_s390_verllg(
6318 (vector unsigned long long)__a, (int)__b);
6319 }
6320
6321 static inline __ATTRS_o_ai vector unsigned long long
vec_rli(vector unsigned long long __a,unsigned long __b)6322 vec_rli(vector unsigned long long __a, unsigned long __b) {
6323 return __builtin_s390_verllg(__a, (int)__b);
6324 }
6325
6326 /*-- vec_rl_mask ------------------------------------------------------------*/
6327
6328 extern __ATTRS_o vector signed char
6329 vec_rl_mask(vector signed char __a, vector unsigned char __b,
6330 unsigned char __c) __constant(__c);
6331
6332 extern __ATTRS_o vector unsigned char
6333 vec_rl_mask(vector unsigned char __a, vector unsigned char __b,
6334 unsigned char __c) __constant(__c);
6335
6336 extern __ATTRS_o vector signed short
6337 vec_rl_mask(vector signed short __a, vector unsigned short __b,
6338 unsigned char __c) __constant(__c);
6339
6340 extern __ATTRS_o vector unsigned short
6341 vec_rl_mask(vector unsigned short __a, vector unsigned short __b,
6342 unsigned char __c) __constant(__c);
6343
6344 extern __ATTRS_o vector signed int
6345 vec_rl_mask(vector signed int __a, vector unsigned int __b,
6346 unsigned char __c) __constant(__c);
6347
6348 extern __ATTRS_o vector unsigned int
6349 vec_rl_mask(vector unsigned int __a, vector unsigned int __b,
6350 unsigned char __c) __constant(__c);
6351
6352 extern __ATTRS_o vector signed long long
6353 vec_rl_mask(vector signed long long __a, vector unsigned long long __b,
6354 unsigned char __c) __constant(__c);
6355
6356 extern __ATTRS_o vector unsigned long long
6357 vec_rl_mask(vector unsigned long long __a, vector unsigned long long __b,
6358 unsigned char __c) __constant(__c);
6359
6360 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
6361 __extension__ ({ \
6362 vector unsigned char __res; \
6363 vector unsigned char __x = (vector unsigned char)(X); \
6364 vector unsigned char __y = (vector unsigned char)(Y); \
6365 switch (sizeof ((X)[0])) { \
6366 case 1: __res = (vector unsigned char) __builtin_s390_verimb( \
6367 (vector unsigned char)__x, (vector unsigned char)__x, \
6368 (vector unsigned char)__y, (Z)); break; \
6369 case 2: __res = (vector unsigned char) __builtin_s390_verimh( \
6370 (vector unsigned short)__x, (vector unsigned short)__x, \
6371 (vector unsigned short)__y, (Z)); break; \
6372 case 4: __res = (vector unsigned char) __builtin_s390_verimf( \
6373 (vector unsigned int)__x, (vector unsigned int)__x, \
6374 (vector unsigned int)__y, (Z)); break; \
6375 default: __res = (vector unsigned char) __builtin_s390_verimg( \
6376 (vector unsigned long long)__x, (vector unsigned long long)__x, \
6377 (vector unsigned long long)__y, (Z)); break; \
6378 } __res; }))
6379
6380 /*-- vec_sll ----------------------------------------------------------------*/
6381
6382 static inline __ATTRS_o_ai vector signed char
vec_sll(vector signed char __a,vector unsigned char __b)6383 vec_sll(vector signed char __a, vector unsigned char __b) {
6384 return (vector signed char)__builtin_s390_vsl(
6385 (vector unsigned char)__a, __b);
6386 }
6387
6388 // This prototype is deprecated.
6389 static inline __ATTRS_o_ai vector signed char
vec_sll(vector signed char __a,vector unsigned short __b)6390 vec_sll(vector signed char __a, vector unsigned short __b) {
6391 return (vector signed char)__builtin_s390_vsl(
6392 (vector unsigned char)__a, (vector unsigned char)__b);
6393 }
6394
6395 // This prototype is deprecated.
6396 static inline __ATTRS_o_ai vector signed char
vec_sll(vector signed char __a,vector unsigned int __b)6397 vec_sll(vector signed char __a, vector unsigned int __b) {
6398 return (vector signed char)__builtin_s390_vsl(
6399 (vector unsigned char)__a, (vector unsigned char)__b);
6400 }
6401
6402 // This prototype is deprecated.
6403 static inline __ATTRS_o_ai vector bool char
vec_sll(vector bool char __a,vector unsigned char __b)6404 vec_sll(vector bool char __a, vector unsigned char __b) {
6405 return (vector bool char)__builtin_s390_vsl(
6406 (vector unsigned char)__a, __b);
6407 }
6408
6409 // This prototype is deprecated.
6410 static inline __ATTRS_o_ai vector bool char
vec_sll(vector bool char __a,vector unsigned short __b)6411 vec_sll(vector bool char __a, vector unsigned short __b) {
6412 return (vector bool char)__builtin_s390_vsl(
6413 (vector unsigned char)__a, (vector unsigned char)__b);
6414 }
6415
6416 // This prototype is deprecated.
6417 static inline __ATTRS_o_ai vector bool char
vec_sll(vector bool char __a,vector unsigned int __b)6418 vec_sll(vector bool char __a, vector unsigned int __b) {
6419 return (vector bool char)__builtin_s390_vsl(
6420 (vector unsigned char)__a, (vector unsigned char)__b);
6421 }
6422
6423 static inline __ATTRS_o_ai vector unsigned char
vec_sll(vector unsigned char __a,vector unsigned char __b)6424 vec_sll(vector unsigned char __a, vector unsigned char __b) {
6425 return __builtin_s390_vsl(__a, __b);
6426 }
6427
6428 // This prototype is deprecated.
6429 static inline __ATTRS_o_ai vector unsigned char
vec_sll(vector unsigned char __a,vector unsigned short __b)6430 vec_sll(vector unsigned char __a, vector unsigned short __b) {
6431 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6432 }
6433
6434 // This prototype is deprecated.
6435 static inline __ATTRS_o_ai vector unsigned char
vec_sll(vector unsigned char __a,vector unsigned int __b)6436 vec_sll(vector unsigned char __a, vector unsigned int __b) {
6437 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
6438 }
6439
6440 static inline __ATTRS_o_ai vector signed short
vec_sll(vector signed short __a,vector unsigned char __b)6441 vec_sll(vector signed short __a, vector unsigned char __b) {
6442 return (vector signed short)__builtin_s390_vsl(
6443 (vector unsigned char)__a, __b);
6444 }
6445
6446 // This prototype is deprecated.
6447 static inline __ATTRS_o_ai vector signed short
vec_sll(vector signed short __a,vector unsigned short __b)6448 vec_sll(vector signed short __a, vector unsigned short __b) {
6449 return (vector signed short)__builtin_s390_vsl(
6450 (vector unsigned char)__a, (vector unsigned char)__b);
6451 }
6452
6453 // This prototype is deprecated.
6454 static inline __ATTRS_o_ai vector signed short
vec_sll(vector signed short __a,vector unsigned int __b)6455 vec_sll(vector signed short __a, vector unsigned int __b) {
6456 return (vector signed short)__builtin_s390_vsl(
6457 (vector unsigned char)__a, (vector unsigned char)__b);
6458 }
6459
6460 // This prototype is deprecated.
6461 static inline __ATTRS_o_ai vector bool short
vec_sll(vector bool short __a,vector unsigned char __b)6462 vec_sll(vector bool short __a, vector unsigned char __b) {
6463 return (vector bool short)__builtin_s390_vsl(
6464 (vector unsigned char)__a, __b);
6465 }
6466
6467 // This prototype is deprecated.
6468 static inline __ATTRS_o_ai vector bool short
vec_sll(vector bool short __a,vector unsigned short __b)6469 vec_sll(vector bool short __a, vector unsigned short __b) {
6470 return (vector bool short)__builtin_s390_vsl(
6471 (vector unsigned char)__a, (vector unsigned char)__b);
6472 }
6473
6474 // This prototype is deprecated.
6475 static inline __ATTRS_o_ai vector bool short
vec_sll(vector bool short __a,vector unsigned int __b)6476 vec_sll(vector bool short __a, vector unsigned int __b) {
6477 return (vector bool short)__builtin_s390_vsl(
6478 (vector unsigned char)__a, (vector unsigned char)__b);
6479 }
6480
6481 static inline __ATTRS_o_ai vector unsigned short
vec_sll(vector unsigned short __a,vector unsigned char __b)6482 vec_sll(vector unsigned short __a, vector unsigned char __b) {
6483 return (vector unsigned short)__builtin_s390_vsl(
6484 (vector unsigned char)__a, __b);
6485 }
6486
6487 // This prototype is deprecated.
6488 static inline __ATTRS_o_ai vector unsigned short
vec_sll(vector unsigned short __a,vector unsigned short __b)6489 vec_sll(vector unsigned short __a, vector unsigned short __b) {
6490 return (vector unsigned short)__builtin_s390_vsl(
6491 (vector unsigned char)__a, (vector unsigned char)__b);
6492 }
6493
6494 // This prototype is deprecated.
6495 static inline __ATTRS_o_ai vector unsigned short
vec_sll(vector unsigned short __a,vector unsigned int __b)6496 vec_sll(vector unsigned short __a, vector unsigned int __b) {
6497 return (vector unsigned short)__builtin_s390_vsl(
6498 (vector unsigned char)__a, (vector unsigned char)__b);
6499 }
6500
6501 static inline __ATTRS_o_ai vector signed int
vec_sll(vector signed int __a,vector unsigned char __b)6502 vec_sll(vector signed int __a, vector unsigned char __b) {
6503 return (vector signed int)__builtin_s390_vsl(
6504 (vector unsigned char)__a, __b);
6505 }
6506
6507 // This prototype is deprecated.
6508 static inline __ATTRS_o_ai vector signed int
vec_sll(vector signed int __a,vector unsigned short __b)6509 vec_sll(vector signed int __a, vector unsigned short __b) {
6510 return (vector signed int)__builtin_s390_vsl(
6511 (vector unsigned char)__a, (vector unsigned char)__b);
6512 }
6513
6514 // This prototype is deprecated.
6515 static inline __ATTRS_o_ai vector signed int
vec_sll(vector signed int __a,vector unsigned int __b)6516 vec_sll(vector signed int __a, vector unsigned int __b) {
6517 return (vector signed int)__builtin_s390_vsl(
6518 (vector unsigned char)__a, (vector unsigned char)__b);
6519 }
6520
6521 // This prototype is deprecated.
6522 static inline __ATTRS_o_ai vector bool int
vec_sll(vector bool int __a,vector unsigned char __b)6523 vec_sll(vector bool int __a, vector unsigned char __b) {
6524 return (vector bool int)__builtin_s390_vsl(
6525 (vector unsigned char)__a, __b);
6526 }
6527
6528 // This prototype is deprecated.
6529 static inline __ATTRS_o_ai vector bool int
vec_sll(vector bool int __a,vector unsigned short __b)6530 vec_sll(vector bool int __a, vector unsigned short __b) {
6531 return (vector bool int)__builtin_s390_vsl(
6532 (vector unsigned char)__a, (vector unsigned char)__b);
6533 }
6534
6535 // This prototype is deprecated.
6536 static inline __ATTRS_o_ai vector bool int
vec_sll(vector bool int __a,vector unsigned int __b)6537 vec_sll(vector bool int __a, vector unsigned int __b) {
6538 return (vector bool int)__builtin_s390_vsl(
6539 (vector unsigned char)__a, (vector unsigned char)__b);
6540 }
6541
6542 static inline __ATTRS_o_ai vector unsigned int
vec_sll(vector unsigned int __a,vector unsigned char __b)6543 vec_sll(vector unsigned int __a, vector unsigned char __b) {
6544 return (vector unsigned int)__builtin_s390_vsl(
6545 (vector unsigned char)__a, __b);
6546 }
6547
6548 // This prototype is deprecated.
6549 static inline __ATTRS_o_ai vector unsigned int
vec_sll(vector unsigned int __a,vector unsigned short __b)6550 vec_sll(vector unsigned int __a, vector unsigned short __b) {
6551 return (vector unsigned int)__builtin_s390_vsl(
6552 (vector unsigned char)__a, (vector unsigned char)__b);
6553 }
6554
6555 // This prototype is deprecated.
6556 static inline __ATTRS_o_ai vector unsigned int
vec_sll(vector unsigned int __a,vector unsigned int __b)6557 vec_sll(vector unsigned int __a, vector unsigned int __b) {
6558 return (vector unsigned int)__builtin_s390_vsl(
6559 (vector unsigned char)__a, (vector unsigned char)__b);
6560 }
6561
6562 static inline __ATTRS_o_ai vector signed long long
vec_sll(vector signed long long __a,vector unsigned char __b)6563 vec_sll(vector signed long long __a, vector unsigned char __b) {
6564 return (vector signed long long)__builtin_s390_vsl(
6565 (vector unsigned char)__a, __b);
6566 }
6567
6568 // This prototype is deprecated.
6569 static inline __ATTRS_o_ai vector signed long long
vec_sll(vector signed long long __a,vector unsigned short __b)6570 vec_sll(vector signed long long __a, vector unsigned short __b) {
6571 return (vector signed long long)__builtin_s390_vsl(
6572 (vector unsigned char)__a, (vector unsigned char)__b);
6573 }
6574
6575 // This prototype is deprecated.
6576 static inline __ATTRS_o_ai vector signed long long
vec_sll(vector signed long long __a,vector unsigned int __b)6577 vec_sll(vector signed long long __a, vector unsigned int __b) {
6578 return (vector signed long long)__builtin_s390_vsl(
6579 (vector unsigned char)__a, (vector unsigned char)__b);
6580 }
6581
6582 // This prototype is deprecated.
6583 static inline __ATTRS_o_ai vector bool long long
vec_sll(vector bool long long __a,vector unsigned char __b)6584 vec_sll(vector bool long long __a, vector unsigned char __b) {
6585 return (vector bool long long)__builtin_s390_vsl(
6586 (vector unsigned char)__a, __b);
6587 }
6588
6589 // This prototype is deprecated.
6590 static inline __ATTRS_o_ai vector bool long long
vec_sll(vector bool long long __a,vector unsigned short __b)6591 vec_sll(vector bool long long __a, vector unsigned short __b) {
6592 return (vector bool long long)__builtin_s390_vsl(
6593 (vector unsigned char)__a, (vector unsigned char)__b);
6594 }
6595
6596 // This prototype is deprecated.
6597 static inline __ATTRS_o_ai vector bool long long
vec_sll(vector bool long long __a,vector unsigned int __b)6598 vec_sll(vector bool long long __a, vector unsigned int __b) {
6599 return (vector bool long long)__builtin_s390_vsl(
6600 (vector unsigned char)__a, (vector unsigned char)__b);
6601 }
6602
6603 static inline __ATTRS_o_ai vector unsigned long long
vec_sll(vector unsigned long long __a,vector unsigned char __b)6604 vec_sll(vector unsigned long long __a, vector unsigned char __b) {
6605 return (vector unsigned long long)__builtin_s390_vsl(
6606 (vector unsigned char)__a, __b);
6607 }
6608
6609 // This prototype is deprecated.
6610 static inline __ATTRS_o_ai vector unsigned long long
vec_sll(vector unsigned long long __a,vector unsigned short __b)6611 vec_sll(vector unsigned long long __a, vector unsigned short __b) {
6612 return (vector unsigned long long)__builtin_s390_vsl(
6613 (vector unsigned char)__a, (vector unsigned char)__b);
6614 }
6615
6616 // This prototype is deprecated.
6617 static inline __ATTRS_o_ai vector unsigned long long
vec_sll(vector unsigned long long __a,vector unsigned int __b)6618 vec_sll(vector unsigned long long __a, vector unsigned int __b) {
6619 return (vector unsigned long long)__builtin_s390_vsl(
6620 (vector unsigned char)__a, (vector unsigned char)__b);
6621 }
6622
6623 /*-- vec_slb ----------------------------------------------------------------*/
6624
6625 static inline __ATTRS_o_ai vector signed char
vec_slb(vector signed char __a,vector signed char __b)6626 vec_slb(vector signed char __a, vector signed char __b) {
6627 return (vector signed char)__builtin_s390_vslb(
6628 (vector unsigned char)__a, (vector unsigned char)__b);
6629 }
6630
6631 static inline __ATTRS_o_ai vector signed char
vec_slb(vector signed char __a,vector unsigned char __b)6632 vec_slb(vector signed char __a, vector unsigned char __b) {
6633 return (vector signed char)__builtin_s390_vslb(
6634 (vector unsigned char)__a, __b);
6635 }
6636
6637 static inline __ATTRS_o_ai vector unsigned char
vec_slb(vector unsigned char __a,vector signed char __b)6638 vec_slb(vector unsigned char __a, vector signed char __b) {
6639 return __builtin_s390_vslb(__a, (vector unsigned char)__b);
6640 }
6641
6642 static inline __ATTRS_o_ai vector unsigned char
vec_slb(vector unsigned char __a,vector unsigned char __b)6643 vec_slb(vector unsigned char __a, vector unsigned char __b) {
6644 return __builtin_s390_vslb(__a, __b);
6645 }
6646
6647 static inline __ATTRS_o_ai vector signed short
vec_slb(vector signed short __a,vector signed short __b)6648 vec_slb(vector signed short __a, vector signed short __b) {
6649 return (vector signed short)__builtin_s390_vslb(
6650 (vector unsigned char)__a, (vector unsigned char)__b);
6651 }
6652
6653 static inline __ATTRS_o_ai vector signed short
vec_slb(vector signed short __a,vector unsigned short __b)6654 vec_slb(vector signed short __a, vector unsigned short __b) {
6655 return (vector signed short)__builtin_s390_vslb(
6656 (vector unsigned char)__a, (vector unsigned char)__b);
6657 }
6658
6659 static inline __ATTRS_o_ai vector unsigned short
vec_slb(vector unsigned short __a,vector signed short __b)6660 vec_slb(vector unsigned short __a, vector signed short __b) {
6661 return (vector unsigned short)__builtin_s390_vslb(
6662 (vector unsigned char)__a, (vector unsigned char)__b);
6663 }
6664
6665 static inline __ATTRS_o_ai vector unsigned short
vec_slb(vector unsigned short __a,vector unsigned short __b)6666 vec_slb(vector unsigned short __a, vector unsigned short __b) {
6667 return (vector unsigned short)__builtin_s390_vslb(
6668 (vector unsigned char)__a, (vector unsigned char)__b);
6669 }
6670
6671 static inline __ATTRS_o_ai vector signed int
vec_slb(vector signed int __a,vector signed int __b)6672 vec_slb(vector signed int __a, vector signed int __b) {
6673 return (vector signed int)__builtin_s390_vslb(
6674 (vector unsigned char)__a, (vector unsigned char)__b);
6675 }
6676
6677 static inline __ATTRS_o_ai vector signed int
vec_slb(vector signed int __a,vector unsigned int __b)6678 vec_slb(vector signed int __a, vector unsigned int __b) {
6679 return (vector signed int)__builtin_s390_vslb(
6680 (vector unsigned char)__a, (vector unsigned char)__b);
6681 }
6682
6683 static inline __ATTRS_o_ai vector unsigned int
vec_slb(vector unsigned int __a,vector signed int __b)6684 vec_slb(vector unsigned int __a, vector signed int __b) {
6685 return (vector unsigned int)__builtin_s390_vslb(
6686 (vector unsigned char)__a, (vector unsigned char)__b);
6687 }
6688
6689 static inline __ATTRS_o_ai vector unsigned int
vec_slb(vector unsigned int __a,vector unsigned int __b)6690 vec_slb(vector unsigned int __a, vector unsigned int __b) {
6691 return (vector unsigned int)__builtin_s390_vslb(
6692 (vector unsigned char)__a, (vector unsigned char)__b);
6693 }
6694
6695 static inline __ATTRS_o_ai vector signed long long
vec_slb(vector signed long long __a,vector signed long long __b)6696 vec_slb(vector signed long long __a, vector signed long long __b) {
6697 return (vector signed long long)__builtin_s390_vslb(
6698 (vector unsigned char)__a, (vector unsigned char)__b);
6699 }
6700
6701 static inline __ATTRS_o_ai vector signed long long
vec_slb(vector signed long long __a,vector unsigned long long __b)6702 vec_slb(vector signed long long __a, vector unsigned long long __b) {
6703 return (vector signed long long)__builtin_s390_vslb(
6704 (vector unsigned char)__a, (vector unsigned char)__b);
6705 }
6706
6707 static inline __ATTRS_o_ai vector unsigned long long
vec_slb(vector unsigned long long __a,vector signed long long __b)6708 vec_slb(vector unsigned long long __a, vector signed long long __b) {
6709 return (vector unsigned long long)__builtin_s390_vslb(
6710 (vector unsigned char)__a, (vector unsigned char)__b);
6711 }
6712
6713 static inline __ATTRS_o_ai vector unsigned long long
vec_slb(vector unsigned long long __a,vector unsigned long long __b)6714 vec_slb(vector unsigned long long __a, vector unsigned long long __b) {
6715 return (vector unsigned long long)__builtin_s390_vslb(
6716 (vector unsigned char)__a, (vector unsigned char)__b);
6717 }
6718
6719 #if __ARCH__ >= 12
6720 static inline __ATTRS_o_ai vector float
vec_slb(vector float __a,vector signed int __b)6721 vec_slb(vector float __a, vector signed int __b) {
6722 return (vector float)__builtin_s390_vslb(
6723 (vector unsigned char)__a, (vector unsigned char)__b);
6724 }
6725
6726 static inline __ATTRS_o_ai vector float
vec_slb(vector float __a,vector unsigned int __b)6727 vec_slb(vector float __a, vector unsigned int __b) {
6728 return (vector float)__builtin_s390_vslb(
6729 (vector unsigned char)__a, (vector unsigned char)__b);
6730 }
6731 #endif
6732
6733 static inline __ATTRS_o_ai vector double
vec_slb(vector double __a,vector signed long long __b)6734 vec_slb(vector double __a, vector signed long long __b) {
6735 return (vector double)__builtin_s390_vslb(
6736 (vector unsigned char)__a, (vector unsigned char)__b);
6737 }
6738
6739 static inline __ATTRS_o_ai vector double
vec_slb(vector double __a,vector unsigned long long __b)6740 vec_slb(vector double __a, vector unsigned long long __b) {
6741 return (vector double)__builtin_s390_vslb(
6742 (vector unsigned char)__a, (vector unsigned char)__b);
6743 }
6744
6745 /*-- vec_sld ----------------------------------------------------------------*/
6746
6747 extern __ATTRS_o vector signed char
6748 vec_sld(vector signed char __a, vector signed char __b, int __c)
6749 __constant_range(__c, 0, 15);
6750
6751 extern __ATTRS_o vector bool char
6752 vec_sld(vector bool char __a, vector bool char __b, int __c)
6753 __constant_range(__c, 0, 15);
6754
6755 extern __ATTRS_o vector unsigned char
6756 vec_sld(vector unsigned char __a, vector unsigned char __b, int __c)
6757 __constant_range(__c, 0, 15);
6758
6759 extern __ATTRS_o vector signed short
6760 vec_sld(vector signed short __a, vector signed short __b, int __c)
6761 __constant_range(__c, 0, 15);
6762
6763 extern __ATTRS_o vector bool short
6764 vec_sld(vector bool short __a, vector bool short __b, int __c)
6765 __constant_range(__c, 0, 15);
6766
6767 extern __ATTRS_o vector unsigned short
6768 vec_sld(vector unsigned short __a, vector unsigned short __b, int __c)
6769 __constant_range(__c, 0, 15);
6770
6771 extern __ATTRS_o vector signed int
6772 vec_sld(vector signed int __a, vector signed int __b, int __c)
6773 __constant_range(__c, 0, 15);
6774
6775 extern __ATTRS_o vector bool int
6776 vec_sld(vector bool int __a, vector bool int __b, int __c)
6777 __constant_range(__c, 0, 15);
6778
6779 extern __ATTRS_o vector unsigned int
6780 vec_sld(vector unsigned int __a, vector unsigned int __b, int __c)
6781 __constant_range(__c, 0, 15);
6782
6783 extern __ATTRS_o vector signed long long
6784 vec_sld(vector signed long long __a, vector signed long long __b, int __c)
6785 __constant_range(__c, 0, 15);
6786
6787 extern __ATTRS_o vector bool long long
6788 vec_sld(vector bool long long __a, vector bool long long __b, int __c)
6789 __constant_range(__c, 0, 15);
6790
6791 extern __ATTRS_o vector unsigned long long
6792 vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c)
6793 __constant_range(__c, 0, 15);
6794
6795 #if __ARCH__ >= 12
6796 extern __ATTRS_o vector float
6797 vec_sld(vector float __a, vector float __b, int __c)
6798 __constant_range(__c, 0, 15);
6799 #endif
6800
6801 extern __ATTRS_o vector double
6802 vec_sld(vector double __a, vector double __b, int __c)
6803 __constant_range(__c, 0, 15);
6804
6805 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
6806 __builtin_s390_vsldb((vector unsigned char)(X), \
6807 (vector unsigned char)(Y), (Z)))
6808
6809 /*-- vec_sldw ---------------------------------------------------------------*/
6810
6811 extern __ATTRS_o vector signed char
6812 vec_sldw(vector signed char __a, vector signed char __b, int __c)
6813 __constant_range(__c, 0, 3);
6814
6815 extern __ATTRS_o vector unsigned char
6816 vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c)
6817 __constant_range(__c, 0, 3);
6818
6819 extern __ATTRS_o vector signed short
6820 vec_sldw(vector signed short __a, vector signed short __b, int __c)
6821 __constant_range(__c, 0, 3);
6822
6823 extern __ATTRS_o vector unsigned short
6824 vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c)
6825 __constant_range(__c, 0, 3);
6826
6827 extern __ATTRS_o vector signed int
6828 vec_sldw(vector signed int __a, vector signed int __b, int __c)
6829 __constant_range(__c, 0, 3);
6830
6831 extern __ATTRS_o vector unsigned int
6832 vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c)
6833 __constant_range(__c, 0, 3);
6834
6835 extern __ATTRS_o vector signed long long
6836 vec_sldw(vector signed long long __a, vector signed long long __b, int __c)
6837 __constant_range(__c, 0, 3);
6838
6839 extern __ATTRS_o vector unsigned long long
6840 vec_sldw(vector unsigned long long __a, vector unsigned long long __b, int __c)
6841 __constant_range(__c, 0, 3);
6842
6843 // This prototype is deprecated.
6844 extern __ATTRS_o vector double
6845 vec_sldw(vector double __a, vector double __b, int __c)
6846 __constant_range(__c, 0, 3);
6847
6848 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
6849 __builtin_s390_vsldb((vector unsigned char)(X), \
6850 (vector unsigned char)(Y), (Z) * 4))
6851
6852 /*-- vec_sral ---------------------------------------------------------------*/
6853
6854 static inline __ATTRS_o_ai vector signed char
vec_sral(vector signed char __a,vector unsigned char __b)6855 vec_sral(vector signed char __a, vector unsigned char __b) {
6856 return (vector signed char)__builtin_s390_vsra(
6857 (vector unsigned char)__a, __b);
6858 }
6859
6860 // This prototype is deprecated.
6861 static inline __ATTRS_o_ai vector signed char
vec_sral(vector signed char __a,vector unsigned short __b)6862 vec_sral(vector signed char __a, vector unsigned short __b) {
6863 return (vector signed char)__builtin_s390_vsra(
6864 (vector unsigned char)__a, (vector unsigned char)__b);
6865 }
6866
6867 // This prototype is deprecated.
6868 static inline __ATTRS_o_ai vector signed char
vec_sral(vector signed char __a,vector unsigned int __b)6869 vec_sral(vector signed char __a, vector unsigned int __b) {
6870 return (vector signed char)__builtin_s390_vsra(
6871 (vector unsigned char)__a, (vector unsigned char)__b);
6872 }
6873
6874 // This prototype is deprecated.
6875 static inline __ATTRS_o_ai vector bool char
vec_sral(vector bool char __a,vector unsigned char __b)6876 vec_sral(vector bool char __a, vector unsigned char __b) {
6877 return (vector bool char)__builtin_s390_vsra(
6878 (vector unsigned char)__a, __b);
6879 }
6880
6881 // This prototype is deprecated.
6882 static inline __ATTRS_o_ai vector bool char
vec_sral(vector bool char __a,vector unsigned short __b)6883 vec_sral(vector bool char __a, vector unsigned short __b) {
6884 return (vector bool char)__builtin_s390_vsra(
6885 (vector unsigned char)__a, (vector unsigned char)__b);
6886 }
6887
6888 // This prototype is deprecated.
6889 static inline __ATTRS_o_ai vector bool char
vec_sral(vector bool char __a,vector unsigned int __b)6890 vec_sral(vector bool char __a, vector unsigned int __b) {
6891 return (vector bool char)__builtin_s390_vsra(
6892 (vector unsigned char)__a, (vector unsigned char)__b);
6893 }
6894
6895 static inline __ATTRS_o_ai vector unsigned char
vec_sral(vector unsigned char __a,vector unsigned char __b)6896 vec_sral(vector unsigned char __a, vector unsigned char __b) {
6897 return __builtin_s390_vsra(__a, __b);
6898 }
6899
6900 // This prototype is deprecated.
6901 static inline __ATTRS_o_ai vector unsigned char
vec_sral(vector unsigned char __a,vector unsigned short __b)6902 vec_sral(vector unsigned char __a, vector unsigned short __b) {
6903 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
6904 }
6905
6906 // This prototype is deprecated.
6907 static inline __ATTRS_o_ai vector unsigned char
vec_sral(vector unsigned char __a,vector unsigned int __b)6908 vec_sral(vector unsigned char __a, vector unsigned int __b) {
6909 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
6910 }
6911
6912 static inline __ATTRS_o_ai vector signed short
vec_sral(vector signed short __a,vector unsigned char __b)6913 vec_sral(vector signed short __a, vector unsigned char __b) {
6914 return (vector signed short)__builtin_s390_vsra(
6915 (vector unsigned char)__a, __b);
6916 }
6917
6918 // This prototype is deprecated.
6919 static inline __ATTRS_o_ai vector signed short
vec_sral(vector signed short __a,vector unsigned short __b)6920 vec_sral(vector signed short __a, vector unsigned short __b) {
6921 return (vector signed short)__builtin_s390_vsra(
6922 (vector unsigned char)__a, (vector unsigned char)__b);
6923 }
6924
6925 // This prototype is deprecated.
6926 static inline __ATTRS_o_ai vector signed short
vec_sral(vector signed short __a,vector unsigned int __b)6927 vec_sral(vector signed short __a, vector unsigned int __b) {
6928 return (vector signed short)__builtin_s390_vsra(
6929 (vector unsigned char)__a, (vector unsigned char)__b);
6930 }
6931
6932 // This prototype is deprecated.
6933 static inline __ATTRS_o_ai vector bool short
vec_sral(vector bool short __a,vector unsigned char __b)6934 vec_sral(vector bool short __a, vector unsigned char __b) {
6935 return (vector bool short)__builtin_s390_vsra(
6936 (vector unsigned char)__a, __b);
6937 }
6938
6939 // This prototype is deprecated.
6940 static inline __ATTRS_o_ai vector bool short
vec_sral(vector bool short __a,vector unsigned short __b)6941 vec_sral(vector bool short __a, vector unsigned short __b) {
6942 return (vector bool short)__builtin_s390_vsra(
6943 (vector unsigned char)__a, (vector unsigned char)__b);
6944 }
6945
6946 // This prototype is deprecated.
6947 static inline __ATTRS_o_ai vector bool short
vec_sral(vector bool short __a,vector unsigned int __b)6948 vec_sral(vector bool short __a, vector unsigned int __b) {
6949 return (vector bool short)__builtin_s390_vsra(
6950 (vector unsigned char)__a, (vector unsigned char)__b);
6951 }
6952
6953 static inline __ATTRS_o_ai vector unsigned short
vec_sral(vector unsigned short __a,vector unsigned char __b)6954 vec_sral(vector unsigned short __a, vector unsigned char __b) {
6955 return (vector unsigned short)__builtin_s390_vsra(
6956 (vector unsigned char)__a, __b);
6957 }
6958
6959 // This prototype is deprecated.
6960 static inline __ATTRS_o_ai vector unsigned short
vec_sral(vector unsigned short __a,vector unsigned short __b)6961 vec_sral(vector unsigned short __a, vector unsigned short __b) {
6962 return (vector unsigned short)__builtin_s390_vsra(
6963 (vector unsigned char)__a, (vector unsigned char)__b);
6964 }
6965
6966 // This prototype is deprecated.
6967 static inline __ATTRS_o_ai vector unsigned short
vec_sral(vector unsigned short __a,vector unsigned int __b)6968 vec_sral(vector unsigned short __a, vector unsigned int __b) {
6969 return (vector unsigned short)__builtin_s390_vsra(
6970 (vector unsigned char)__a, (vector unsigned char)__b);
6971 }
6972
6973 static inline __ATTRS_o_ai vector signed int
vec_sral(vector signed int __a,vector unsigned char __b)6974 vec_sral(vector signed int __a, vector unsigned char __b) {
6975 return (vector signed int)__builtin_s390_vsra(
6976 (vector unsigned char)__a, __b);
6977 }
6978
6979 // This prototype is deprecated.
6980 static inline __ATTRS_o_ai vector signed int
vec_sral(vector signed int __a,vector unsigned short __b)6981 vec_sral(vector signed int __a, vector unsigned short __b) {
6982 return (vector signed int)__builtin_s390_vsra(
6983 (vector unsigned char)__a, (vector unsigned char)__b);
6984 }
6985
6986 // This prototype is deprecated.
6987 static inline __ATTRS_o_ai vector signed int
vec_sral(vector signed int __a,vector unsigned int __b)6988 vec_sral(vector signed int __a, vector unsigned int __b) {
6989 return (vector signed int)__builtin_s390_vsra(
6990 (vector unsigned char)__a, (vector unsigned char)__b);
6991 }
6992
6993 // This prototype is deprecated.
6994 static inline __ATTRS_o_ai vector bool int
vec_sral(vector bool int __a,vector unsigned char __b)6995 vec_sral(vector bool int __a, vector unsigned char __b) {
6996 return (vector bool int)__builtin_s390_vsra(
6997 (vector unsigned char)__a, __b);
6998 }
6999
7000 // This prototype is deprecated.
7001 static inline __ATTRS_o_ai vector bool int
vec_sral(vector bool int __a,vector unsigned short __b)7002 vec_sral(vector bool int __a, vector unsigned short __b) {
7003 return (vector bool int)__builtin_s390_vsra(
7004 (vector unsigned char)__a, (vector unsigned char)__b);
7005 }
7006
7007 // This prototype is deprecated.
7008 static inline __ATTRS_o_ai vector bool int
vec_sral(vector bool int __a,vector unsigned int __b)7009 vec_sral(vector bool int __a, vector unsigned int __b) {
7010 return (vector bool int)__builtin_s390_vsra(
7011 (vector unsigned char)__a, (vector unsigned char)__b);
7012 }
7013
7014 static inline __ATTRS_o_ai vector unsigned int
vec_sral(vector unsigned int __a,vector unsigned char __b)7015 vec_sral(vector unsigned int __a, vector unsigned char __b) {
7016 return (vector unsigned int)__builtin_s390_vsra(
7017 (vector unsigned char)__a, __b);
7018 }
7019
7020 // This prototype is deprecated.
7021 static inline __ATTRS_o_ai vector unsigned int
vec_sral(vector unsigned int __a,vector unsigned short __b)7022 vec_sral(vector unsigned int __a, vector unsigned short __b) {
7023 return (vector unsigned int)__builtin_s390_vsra(
7024 (vector unsigned char)__a, (vector unsigned char)__b);
7025 }
7026
7027 // This prototype is deprecated.
7028 static inline __ATTRS_o_ai vector unsigned int
vec_sral(vector unsigned int __a,vector unsigned int __b)7029 vec_sral(vector unsigned int __a, vector unsigned int __b) {
7030 return (vector unsigned int)__builtin_s390_vsra(
7031 (vector unsigned char)__a, (vector unsigned char)__b);
7032 }
7033
7034 static inline __ATTRS_o_ai vector signed long long
vec_sral(vector signed long long __a,vector unsigned char __b)7035 vec_sral(vector signed long long __a, vector unsigned char __b) {
7036 return (vector signed long long)__builtin_s390_vsra(
7037 (vector unsigned char)__a, __b);
7038 }
7039
7040 // This prototype is deprecated.
7041 static inline __ATTRS_o_ai vector signed long long
vec_sral(vector signed long long __a,vector unsigned short __b)7042 vec_sral(vector signed long long __a, vector unsigned short __b) {
7043 return (vector signed long long)__builtin_s390_vsra(
7044 (vector unsigned char)__a, (vector unsigned char)__b);
7045 }
7046
7047 // This prototype is deprecated.
7048 static inline __ATTRS_o_ai vector signed long long
vec_sral(vector signed long long __a,vector unsigned int __b)7049 vec_sral(vector signed long long __a, vector unsigned int __b) {
7050 return (vector signed long long)__builtin_s390_vsra(
7051 (vector unsigned char)__a, (vector unsigned char)__b);
7052 }
7053
7054 // This prototype is deprecated.
7055 static inline __ATTRS_o_ai vector bool long long
vec_sral(vector bool long long __a,vector unsigned char __b)7056 vec_sral(vector bool long long __a, vector unsigned char __b) {
7057 return (vector bool long long)__builtin_s390_vsra(
7058 (vector unsigned char)__a, __b);
7059 }
7060
7061 // This prototype is deprecated.
7062 static inline __ATTRS_o_ai vector bool long long
vec_sral(vector bool long long __a,vector unsigned short __b)7063 vec_sral(vector bool long long __a, vector unsigned short __b) {
7064 return (vector bool long long)__builtin_s390_vsra(
7065 (vector unsigned char)__a, (vector unsigned char)__b);
7066 }
7067
7068 // This prototype is deprecated.
7069 static inline __ATTRS_o_ai vector bool long long
vec_sral(vector bool long long __a,vector unsigned int __b)7070 vec_sral(vector bool long long __a, vector unsigned int __b) {
7071 return (vector bool long long)__builtin_s390_vsra(
7072 (vector unsigned char)__a, (vector unsigned char)__b);
7073 }
7074
7075 static inline __ATTRS_o_ai vector unsigned long long
vec_sral(vector unsigned long long __a,vector unsigned char __b)7076 vec_sral(vector unsigned long long __a, vector unsigned char __b) {
7077 return (vector unsigned long long)__builtin_s390_vsra(
7078 (vector unsigned char)__a, __b);
7079 }
7080
7081 // This prototype is deprecated.
7082 static inline __ATTRS_o_ai vector unsigned long long
vec_sral(vector unsigned long long __a,vector unsigned short __b)7083 vec_sral(vector unsigned long long __a, vector unsigned short __b) {
7084 return (vector unsigned long long)__builtin_s390_vsra(
7085 (vector unsigned char)__a, (vector unsigned char)__b);
7086 }
7087
7088 // This prototype is deprecated.
7089 static inline __ATTRS_o_ai vector unsigned long long
vec_sral(vector unsigned long long __a,vector unsigned int __b)7090 vec_sral(vector unsigned long long __a, vector unsigned int __b) {
7091 return (vector unsigned long long)__builtin_s390_vsra(
7092 (vector unsigned char)__a, (vector unsigned char)__b);
7093 }
7094
7095 /*-- vec_srab ---------------------------------------------------------------*/
7096
7097 static inline __ATTRS_o_ai vector signed char
vec_srab(vector signed char __a,vector signed char __b)7098 vec_srab(vector signed char __a, vector signed char __b) {
7099 return (vector signed char)__builtin_s390_vsrab(
7100 (vector unsigned char)__a, (vector unsigned char)__b);
7101 }
7102
7103 static inline __ATTRS_o_ai vector signed char
vec_srab(vector signed char __a,vector unsigned char __b)7104 vec_srab(vector signed char __a, vector unsigned char __b) {
7105 return (vector signed char)__builtin_s390_vsrab(
7106 (vector unsigned char)__a, __b);
7107 }
7108
7109 static inline __ATTRS_o_ai vector unsigned char
vec_srab(vector unsigned char __a,vector signed char __b)7110 vec_srab(vector unsigned char __a, vector signed char __b) {
7111 return __builtin_s390_vsrab(__a, (vector unsigned char)__b);
7112 }
7113
7114 static inline __ATTRS_o_ai vector unsigned char
vec_srab(vector unsigned char __a,vector unsigned char __b)7115 vec_srab(vector unsigned char __a, vector unsigned char __b) {
7116 return __builtin_s390_vsrab(__a, __b);
7117 }
7118
7119 static inline __ATTRS_o_ai vector signed short
vec_srab(vector signed short __a,vector signed short __b)7120 vec_srab(vector signed short __a, vector signed short __b) {
7121 return (vector signed short)__builtin_s390_vsrab(
7122 (vector unsigned char)__a, (vector unsigned char)__b);
7123 }
7124
7125 static inline __ATTRS_o_ai vector signed short
vec_srab(vector signed short __a,vector unsigned short __b)7126 vec_srab(vector signed short __a, vector unsigned short __b) {
7127 return (vector signed short)__builtin_s390_vsrab(
7128 (vector unsigned char)__a, (vector unsigned char)__b);
7129 }
7130
7131 static inline __ATTRS_o_ai vector unsigned short
vec_srab(vector unsigned short __a,vector signed short __b)7132 vec_srab(vector unsigned short __a, vector signed short __b) {
7133 return (vector unsigned short)__builtin_s390_vsrab(
7134 (vector unsigned char)__a, (vector unsigned char)__b);
7135 }
7136
7137 static inline __ATTRS_o_ai vector unsigned short
vec_srab(vector unsigned short __a,vector unsigned short __b)7138 vec_srab(vector unsigned short __a, vector unsigned short __b) {
7139 return (vector unsigned short)__builtin_s390_vsrab(
7140 (vector unsigned char)__a, (vector unsigned char)__b);
7141 }
7142
7143 static inline __ATTRS_o_ai vector signed int
vec_srab(vector signed int __a,vector signed int __b)7144 vec_srab(vector signed int __a, vector signed int __b) {
7145 return (vector signed int)__builtin_s390_vsrab(
7146 (vector unsigned char)__a, (vector unsigned char)__b);
7147 }
7148
7149 static inline __ATTRS_o_ai vector signed int
vec_srab(vector signed int __a,vector unsigned int __b)7150 vec_srab(vector signed int __a, vector unsigned int __b) {
7151 return (vector signed int)__builtin_s390_vsrab(
7152 (vector unsigned char)__a, (vector unsigned char)__b);
7153 }
7154
7155 static inline __ATTRS_o_ai vector unsigned int
vec_srab(vector unsigned int __a,vector signed int __b)7156 vec_srab(vector unsigned int __a, vector signed int __b) {
7157 return (vector unsigned int)__builtin_s390_vsrab(
7158 (vector unsigned char)__a, (vector unsigned char)__b);
7159 }
7160
7161 static inline __ATTRS_o_ai vector unsigned int
vec_srab(vector unsigned int __a,vector unsigned int __b)7162 vec_srab(vector unsigned int __a, vector unsigned int __b) {
7163 return (vector unsigned int)__builtin_s390_vsrab(
7164 (vector unsigned char)__a, (vector unsigned char)__b);
7165 }
7166
7167 static inline __ATTRS_o_ai vector signed long long
vec_srab(vector signed long long __a,vector signed long long __b)7168 vec_srab(vector signed long long __a, vector signed long long __b) {
7169 return (vector signed long long)__builtin_s390_vsrab(
7170 (vector unsigned char)__a, (vector unsigned char)__b);
7171 }
7172
7173 static inline __ATTRS_o_ai vector signed long long
vec_srab(vector signed long long __a,vector unsigned long long __b)7174 vec_srab(vector signed long long __a, vector unsigned long long __b) {
7175 return (vector signed long long)__builtin_s390_vsrab(
7176 (vector unsigned char)__a, (vector unsigned char)__b);
7177 }
7178
7179 static inline __ATTRS_o_ai vector unsigned long long
vec_srab(vector unsigned long long __a,vector signed long long __b)7180 vec_srab(vector unsigned long long __a, vector signed long long __b) {
7181 return (vector unsigned long long)__builtin_s390_vsrab(
7182 (vector unsigned char)__a, (vector unsigned char)__b);
7183 }
7184
7185 static inline __ATTRS_o_ai vector unsigned long long
vec_srab(vector unsigned long long __a,vector unsigned long long __b)7186 vec_srab(vector unsigned long long __a, vector unsigned long long __b) {
7187 return (vector unsigned long long)__builtin_s390_vsrab(
7188 (vector unsigned char)__a, (vector unsigned char)__b);
7189 }
7190
7191 #if __ARCH__ >= 12
7192 static inline __ATTRS_o_ai vector float
vec_srab(vector float __a,vector signed int __b)7193 vec_srab(vector float __a, vector signed int __b) {
7194 return (vector float)__builtin_s390_vsrab(
7195 (vector unsigned char)__a, (vector unsigned char)__b);
7196 }
7197
7198 static inline __ATTRS_o_ai vector float
vec_srab(vector float __a,vector unsigned int __b)7199 vec_srab(vector float __a, vector unsigned int __b) {
7200 return (vector float)__builtin_s390_vsrab(
7201 (vector unsigned char)__a, (vector unsigned char)__b);
7202 }
7203 #endif
7204
7205 static inline __ATTRS_o_ai vector double
vec_srab(vector double __a,vector signed long long __b)7206 vec_srab(vector double __a, vector signed long long __b) {
7207 return (vector double)__builtin_s390_vsrab(
7208 (vector unsigned char)__a, (vector unsigned char)__b);
7209 }
7210
7211 static inline __ATTRS_o_ai vector double
vec_srab(vector double __a,vector unsigned long long __b)7212 vec_srab(vector double __a, vector unsigned long long __b) {
7213 return (vector double)__builtin_s390_vsrab(
7214 (vector unsigned char)__a, (vector unsigned char)__b);
7215 }
7216
7217 /*-- vec_srl ----------------------------------------------------------------*/
7218
7219 static inline __ATTRS_o_ai vector signed char
vec_srl(vector signed char __a,vector unsigned char __b)7220 vec_srl(vector signed char __a, vector unsigned char __b) {
7221 return (vector signed char)__builtin_s390_vsrl(
7222 (vector unsigned char)__a, __b);
7223 }
7224
7225 // This prototype is deprecated.
7226 static inline __ATTRS_o_ai vector signed char
vec_srl(vector signed char __a,vector unsigned short __b)7227 vec_srl(vector signed char __a, vector unsigned short __b) {
7228 return (vector signed char)__builtin_s390_vsrl(
7229 (vector unsigned char)__a, (vector unsigned char)__b);
7230 }
7231
7232 // This prototype is deprecated.
7233 static inline __ATTRS_o_ai vector signed char
vec_srl(vector signed char __a,vector unsigned int __b)7234 vec_srl(vector signed char __a, vector unsigned int __b) {
7235 return (vector signed char)__builtin_s390_vsrl(
7236 (vector unsigned char)__a, (vector unsigned char)__b);
7237 }
7238
7239 // This prototype is deprecated.
7240 static inline __ATTRS_o_ai vector bool char
vec_srl(vector bool char __a,vector unsigned char __b)7241 vec_srl(vector bool char __a, vector unsigned char __b) {
7242 return (vector bool char)__builtin_s390_vsrl(
7243 (vector unsigned char)__a, __b);
7244 }
7245
7246 // This prototype is deprecated.
7247 static inline __ATTRS_o_ai vector bool char
vec_srl(vector bool char __a,vector unsigned short __b)7248 vec_srl(vector bool char __a, vector unsigned short __b) {
7249 return (vector bool char)__builtin_s390_vsrl(
7250 (vector unsigned char)__a, (vector unsigned char)__b);
7251 }
7252
7253 // This prototype is deprecated.
7254 static inline __ATTRS_o_ai vector bool char
vec_srl(vector bool char __a,vector unsigned int __b)7255 vec_srl(vector bool char __a, vector unsigned int __b) {
7256 return (vector bool char)__builtin_s390_vsrl(
7257 (vector unsigned char)__a, (vector unsigned char)__b);
7258 }
7259
7260 static inline __ATTRS_o_ai vector unsigned char
vec_srl(vector unsigned char __a,vector unsigned char __b)7261 vec_srl(vector unsigned char __a, vector unsigned char __b) {
7262 return __builtin_s390_vsrl(__a, __b);
7263 }
7264
7265 // This prototype is deprecated.
7266 static inline __ATTRS_o_ai vector unsigned char
vec_srl(vector unsigned char __a,vector unsigned short __b)7267 vec_srl(vector unsigned char __a, vector unsigned short __b) {
7268 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7269 }
7270
7271 // This prototype is deprecated.
7272 static inline __ATTRS_o_ai vector unsigned char
vec_srl(vector unsigned char __a,vector unsigned int __b)7273 vec_srl(vector unsigned char __a, vector unsigned int __b) {
7274 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
7275 }
7276
7277 static inline __ATTRS_o_ai vector signed short
vec_srl(vector signed short __a,vector unsigned char __b)7278 vec_srl(vector signed short __a, vector unsigned char __b) {
7279 return (vector signed short)__builtin_s390_vsrl(
7280 (vector unsigned char)__a, __b);
7281 }
7282
7283 // This prototype is deprecated.
7284 static inline __ATTRS_o_ai vector signed short
vec_srl(vector signed short __a,vector unsigned short __b)7285 vec_srl(vector signed short __a, vector unsigned short __b) {
7286 return (vector signed short)__builtin_s390_vsrl(
7287 (vector unsigned char)__a, (vector unsigned char)__b);
7288 }
7289
7290 // This prototype is deprecated.
7291 static inline __ATTRS_o_ai vector signed short
vec_srl(vector signed short __a,vector unsigned int __b)7292 vec_srl(vector signed short __a, vector unsigned int __b) {
7293 return (vector signed short)__builtin_s390_vsrl(
7294 (vector unsigned char)__a, (vector unsigned char)__b);
7295 }
7296
7297 // This prototype is deprecated.
7298 static inline __ATTRS_o_ai vector bool short
vec_srl(vector bool short __a,vector unsigned char __b)7299 vec_srl(vector bool short __a, vector unsigned char __b) {
7300 return (vector bool short)__builtin_s390_vsrl(
7301 (vector unsigned char)__a, __b);
7302 }
7303
7304 // This prototype is deprecated.
7305 static inline __ATTRS_o_ai vector bool short
vec_srl(vector bool short __a,vector unsigned short __b)7306 vec_srl(vector bool short __a, vector unsigned short __b) {
7307 return (vector bool short)__builtin_s390_vsrl(
7308 (vector unsigned char)__a, (vector unsigned char)__b);
7309 }
7310
7311 // This prototype is deprecated.
7312 static inline __ATTRS_o_ai vector bool short
vec_srl(vector bool short __a,vector unsigned int __b)7313 vec_srl(vector bool short __a, vector unsigned int __b) {
7314 return (vector bool short)__builtin_s390_vsrl(
7315 (vector unsigned char)__a, (vector unsigned char)__b);
7316 }
7317
7318 static inline __ATTRS_o_ai vector unsigned short
vec_srl(vector unsigned short __a,vector unsigned char __b)7319 vec_srl(vector unsigned short __a, vector unsigned char __b) {
7320 return (vector unsigned short)__builtin_s390_vsrl(
7321 (vector unsigned char)__a, __b);
7322 }
7323
7324 // This prototype is deprecated.
7325 static inline __ATTRS_o_ai vector unsigned short
vec_srl(vector unsigned short __a,vector unsigned short __b)7326 vec_srl(vector unsigned short __a, vector unsigned short __b) {
7327 return (vector unsigned short)__builtin_s390_vsrl(
7328 (vector unsigned char)__a, (vector unsigned char)__b);
7329 }
7330
7331 // This prototype is deprecated.
7332 static inline __ATTRS_o_ai vector unsigned short
vec_srl(vector unsigned short __a,vector unsigned int __b)7333 vec_srl(vector unsigned short __a, vector unsigned int __b) {
7334 return (vector unsigned short)__builtin_s390_vsrl(
7335 (vector unsigned char)__a, (vector unsigned char)__b);
7336 }
7337
7338 static inline __ATTRS_o_ai vector signed int
vec_srl(vector signed int __a,vector unsigned char __b)7339 vec_srl(vector signed int __a, vector unsigned char __b) {
7340 return (vector signed int)__builtin_s390_vsrl(
7341 (vector unsigned char)__a, __b);
7342 }
7343
7344 // This prototype is deprecated.
7345 static inline __ATTRS_o_ai vector signed int
vec_srl(vector signed int __a,vector unsigned short __b)7346 vec_srl(vector signed int __a, vector unsigned short __b) {
7347 return (vector signed int)__builtin_s390_vsrl(
7348 (vector unsigned char)__a, (vector unsigned char)__b);
7349 }
7350
7351 // This prototype is deprecated.
7352 static inline __ATTRS_o_ai vector signed int
vec_srl(vector signed int __a,vector unsigned int __b)7353 vec_srl(vector signed int __a, vector unsigned int __b) {
7354 return (vector signed int)__builtin_s390_vsrl(
7355 (vector unsigned char)__a, (vector unsigned char)__b);
7356 }
7357
7358 // This prototype is deprecated.
7359 static inline __ATTRS_o_ai vector bool int
vec_srl(vector bool int __a,vector unsigned char __b)7360 vec_srl(vector bool int __a, vector unsigned char __b) {
7361 return (vector bool int)__builtin_s390_vsrl(
7362 (vector unsigned char)__a, __b);
7363 }
7364
7365 // This prototype is deprecated.
7366 static inline __ATTRS_o_ai vector bool int
vec_srl(vector bool int __a,vector unsigned short __b)7367 vec_srl(vector bool int __a, vector unsigned short __b) {
7368 return (vector bool int)__builtin_s390_vsrl(
7369 (vector unsigned char)__a, (vector unsigned char)__b);
7370 }
7371
7372 // This prototype is deprecated.
7373 static inline __ATTRS_o_ai vector bool int
vec_srl(vector bool int __a,vector unsigned int __b)7374 vec_srl(vector bool int __a, vector unsigned int __b) {
7375 return (vector bool int)__builtin_s390_vsrl(
7376 (vector unsigned char)__a, (vector unsigned char)__b);
7377 }
7378
7379 static inline __ATTRS_o_ai vector unsigned int
vec_srl(vector unsigned int __a,vector unsigned char __b)7380 vec_srl(vector unsigned int __a, vector unsigned char __b) {
7381 return (vector unsigned int)__builtin_s390_vsrl(
7382 (vector unsigned char)__a, __b);
7383 }
7384
7385 // This prototype is deprecated.
7386 static inline __ATTRS_o_ai vector unsigned int
vec_srl(vector unsigned int __a,vector unsigned short __b)7387 vec_srl(vector unsigned int __a, vector unsigned short __b) {
7388 return (vector unsigned int)__builtin_s390_vsrl(
7389 (vector unsigned char)__a, (vector unsigned char)__b);
7390 }
7391
7392 // This prototype is deprecated.
7393 static inline __ATTRS_o_ai vector unsigned int
vec_srl(vector unsigned int __a,vector unsigned int __b)7394 vec_srl(vector unsigned int __a, vector unsigned int __b) {
7395 return (vector unsigned int)__builtin_s390_vsrl(
7396 (vector unsigned char)__a, (vector unsigned char)__b);
7397 }
7398
7399 static inline __ATTRS_o_ai vector signed long long
vec_srl(vector signed long long __a,vector unsigned char __b)7400 vec_srl(vector signed long long __a, vector unsigned char __b) {
7401 return (vector signed long long)__builtin_s390_vsrl(
7402 (vector unsigned char)__a, __b);
7403 }
7404
7405 // This prototype is deprecated.
7406 static inline __ATTRS_o_ai vector signed long long
vec_srl(vector signed long long __a,vector unsigned short __b)7407 vec_srl(vector signed long long __a, vector unsigned short __b) {
7408 return (vector signed long long)__builtin_s390_vsrl(
7409 (vector unsigned char)__a, (vector unsigned char)__b);
7410 }
7411
7412 // This prototype is deprecated.
7413 static inline __ATTRS_o_ai vector signed long long
vec_srl(vector signed long long __a,vector unsigned int __b)7414 vec_srl(vector signed long long __a, vector unsigned int __b) {
7415 return (vector signed long long)__builtin_s390_vsrl(
7416 (vector unsigned char)__a, (vector unsigned char)__b);
7417 }
7418
7419 // This prototype is deprecated.
7420 static inline __ATTRS_o_ai vector bool long long
vec_srl(vector bool long long __a,vector unsigned char __b)7421 vec_srl(vector bool long long __a, vector unsigned char __b) {
7422 return (vector bool long long)__builtin_s390_vsrl(
7423 (vector unsigned char)__a, __b);
7424 }
7425
7426 // This prototype is deprecated.
7427 static inline __ATTRS_o_ai vector bool long long
vec_srl(vector bool long long __a,vector unsigned short __b)7428 vec_srl(vector bool long long __a, vector unsigned short __b) {
7429 return (vector bool long long)__builtin_s390_vsrl(
7430 (vector unsigned char)__a, (vector unsigned char)__b);
7431 }
7432
7433 // This prototype is deprecated.
7434 static inline __ATTRS_o_ai vector bool long long
vec_srl(vector bool long long __a,vector unsigned int __b)7435 vec_srl(vector bool long long __a, vector unsigned int __b) {
7436 return (vector bool long long)__builtin_s390_vsrl(
7437 (vector unsigned char)__a, (vector unsigned char)__b);
7438 }
7439
7440 static inline __ATTRS_o_ai vector unsigned long long
vec_srl(vector unsigned long long __a,vector unsigned char __b)7441 vec_srl(vector unsigned long long __a, vector unsigned char __b) {
7442 return (vector unsigned long long)__builtin_s390_vsrl(
7443 (vector unsigned char)__a, __b);
7444 }
7445
7446 // This prototype is deprecated.
7447 static inline __ATTRS_o_ai vector unsigned long long
vec_srl(vector unsigned long long __a,vector unsigned short __b)7448 vec_srl(vector unsigned long long __a, vector unsigned short __b) {
7449 return (vector unsigned long long)__builtin_s390_vsrl(
7450 (vector unsigned char)__a, (vector unsigned char)__b);
7451 }
7452
7453 // This prototype is deprecated.
7454 static inline __ATTRS_o_ai vector unsigned long long
vec_srl(vector unsigned long long __a,vector unsigned int __b)7455 vec_srl(vector unsigned long long __a, vector unsigned int __b) {
7456 return (vector unsigned long long)__builtin_s390_vsrl(
7457 (vector unsigned char)__a, (vector unsigned char)__b);
7458 }
7459
7460 /*-- vec_srb ----------------------------------------------------------------*/
7461
7462 static inline __ATTRS_o_ai vector signed char
vec_srb(vector signed char __a,vector signed char __b)7463 vec_srb(vector signed char __a, vector signed char __b) {
7464 return (vector signed char)__builtin_s390_vsrlb(
7465 (vector unsigned char)__a, (vector unsigned char)__b);
7466 }
7467
7468 static inline __ATTRS_o_ai vector signed char
vec_srb(vector signed char __a,vector unsigned char __b)7469 vec_srb(vector signed char __a, vector unsigned char __b) {
7470 return (vector signed char)__builtin_s390_vsrlb(
7471 (vector unsigned char)__a, __b);
7472 }
7473
7474 static inline __ATTRS_o_ai vector unsigned char
vec_srb(vector unsigned char __a,vector signed char __b)7475 vec_srb(vector unsigned char __a, vector signed char __b) {
7476 return __builtin_s390_vsrlb(__a, (vector unsigned char)__b);
7477 }
7478
7479 static inline __ATTRS_o_ai vector unsigned char
vec_srb(vector unsigned char __a,vector unsigned char __b)7480 vec_srb(vector unsigned char __a, vector unsigned char __b) {
7481 return __builtin_s390_vsrlb(__a, __b);
7482 }
7483
7484 static inline __ATTRS_o_ai vector signed short
vec_srb(vector signed short __a,vector signed short __b)7485 vec_srb(vector signed short __a, vector signed short __b) {
7486 return (vector signed short)__builtin_s390_vsrlb(
7487 (vector unsigned char)__a, (vector unsigned char)__b);
7488 }
7489
7490 static inline __ATTRS_o_ai vector signed short
vec_srb(vector signed short __a,vector unsigned short __b)7491 vec_srb(vector signed short __a, vector unsigned short __b) {
7492 return (vector signed short)__builtin_s390_vsrlb(
7493 (vector unsigned char)__a, (vector unsigned char)__b);
7494 }
7495
7496 static inline __ATTRS_o_ai vector unsigned short
vec_srb(vector unsigned short __a,vector signed short __b)7497 vec_srb(vector unsigned short __a, vector signed short __b) {
7498 return (vector unsigned short)__builtin_s390_vsrlb(
7499 (vector unsigned char)__a, (vector unsigned char)__b);
7500 }
7501
7502 static inline __ATTRS_o_ai vector unsigned short
vec_srb(vector unsigned short __a,vector unsigned short __b)7503 vec_srb(vector unsigned short __a, vector unsigned short __b) {
7504 return (vector unsigned short)__builtin_s390_vsrlb(
7505 (vector unsigned char)__a, (vector unsigned char)__b);
7506 }
7507
7508 static inline __ATTRS_o_ai vector signed int
vec_srb(vector signed int __a,vector signed int __b)7509 vec_srb(vector signed int __a, vector signed int __b) {
7510 return (vector signed int)__builtin_s390_vsrlb(
7511 (vector unsigned char)__a, (vector unsigned char)__b);
7512 }
7513
7514 static inline __ATTRS_o_ai vector signed int
vec_srb(vector signed int __a,vector unsigned int __b)7515 vec_srb(vector signed int __a, vector unsigned int __b) {
7516 return (vector signed int)__builtin_s390_vsrlb(
7517 (vector unsigned char)__a, (vector unsigned char)__b);
7518 }
7519
7520 static inline __ATTRS_o_ai vector unsigned int
vec_srb(vector unsigned int __a,vector signed int __b)7521 vec_srb(vector unsigned int __a, vector signed int __b) {
7522 return (vector unsigned int)__builtin_s390_vsrlb(
7523 (vector unsigned char)__a, (vector unsigned char)__b);
7524 }
7525
7526 static inline __ATTRS_o_ai vector unsigned int
vec_srb(vector unsigned int __a,vector unsigned int __b)7527 vec_srb(vector unsigned int __a, vector unsigned int __b) {
7528 return (vector unsigned int)__builtin_s390_vsrlb(
7529 (vector unsigned char)__a, (vector unsigned char)__b);
7530 }
7531
7532 static inline __ATTRS_o_ai vector signed long long
vec_srb(vector signed long long __a,vector signed long long __b)7533 vec_srb(vector signed long long __a, vector signed long long __b) {
7534 return (vector signed long long)__builtin_s390_vsrlb(
7535 (vector unsigned char)__a, (vector unsigned char)__b);
7536 }
7537
7538 static inline __ATTRS_o_ai vector signed long long
vec_srb(vector signed long long __a,vector unsigned long long __b)7539 vec_srb(vector signed long long __a, vector unsigned long long __b) {
7540 return (vector signed long long)__builtin_s390_vsrlb(
7541 (vector unsigned char)__a, (vector unsigned char)__b);
7542 }
7543
7544 static inline __ATTRS_o_ai vector unsigned long long
vec_srb(vector unsigned long long __a,vector signed long long __b)7545 vec_srb(vector unsigned long long __a, vector signed long long __b) {
7546 return (vector unsigned long long)__builtin_s390_vsrlb(
7547 (vector unsigned char)__a, (vector unsigned char)__b);
7548 }
7549
7550 static inline __ATTRS_o_ai vector unsigned long long
vec_srb(vector unsigned long long __a,vector unsigned long long __b)7551 vec_srb(vector unsigned long long __a, vector unsigned long long __b) {
7552 return (vector unsigned long long)__builtin_s390_vsrlb(
7553 (vector unsigned char)__a, (vector unsigned char)__b);
7554 }
7555
7556 #if __ARCH__ >= 12
7557 static inline __ATTRS_o_ai vector float
vec_srb(vector float __a,vector signed int __b)7558 vec_srb(vector float __a, vector signed int __b) {
7559 return (vector float)__builtin_s390_vsrlb(
7560 (vector unsigned char)__a, (vector unsigned char)__b);
7561 }
7562
7563 static inline __ATTRS_o_ai vector float
vec_srb(vector float __a,vector unsigned int __b)7564 vec_srb(vector float __a, vector unsigned int __b) {
7565 return (vector float)__builtin_s390_vsrlb(
7566 (vector unsigned char)__a, (vector unsigned char)__b);
7567 }
7568 #endif
7569
7570 static inline __ATTRS_o_ai vector double
vec_srb(vector double __a,vector signed long long __b)7571 vec_srb(vector double __a, vector signed long long __b) {
7572 return (vector double)__builtin_s390_vsrlb(
7573 (vector unsigned char)__a, (vector unsigned char)__b);
7574 }
7575
7576 static inline __ATTRS_o_ai vector double
vec_srb(vector double __a,vector unsigned long long __b)7577 vec_srb(vector double __a, vector unsigned long long __b) {
7578 return (vector double)__builtin_s390_vsrlb(
7579 (vector unsigned char)__a, (vector unsigned char)__b);
7580 }
7581
7582 /*-- vec_abs ----------------------------------------------------------------*/
7583
7584 static inline __ATTRS_o_ai vector signed char
vec_abs(vector signed char __a)7585 vec_abs(vector signed char __a) {
7586 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0));
7587 }
7588
7589 static inline __ATTRS_o_ai vector signed short
vec_abs(vector signed short __a)7590 vec_abs(vector signed short __a) {
7591 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0));
7592 }
7593
7594 static inline __ATTRS_o_ai vector signed int
vec_abs(vector signed int __a)7595 vec_abs(vector signed int __a) {
7596 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0));
7597 }
7598
7599 static inline __ATTRS_o_ai vector signed long long
vec_abs(vector signed long long __a)7600 vec_abs(vector signed long long __a) {
7601 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed long long)0));
7602 }
7603
7604 #if __ARCH__ >= 12
7605 static inline __ATTRS_o_ai vector float
vec_abs(vector float __a)7606 vec_abs(vector float __a) {
7607 return __builtin_s390_vflpsb(__a);
7608 }
7609 #endif
7610
7611 static inline __ATTRS_o_ai vector double
vec_abs(vector double __a)7612 vec_abs(vector double __a) {
7613 return __builtin_s390_vflpdb(__a);
7614 }
7615
7616 /*-- vec_nabs ---------------------------------------------------------------*/
7617
7618 #if __ARCH__ >= 12
7619 static inline __ATTRS_o_ai vector float
vec_nabs(vector float __a)7620 vec_nabs(vector float __a) {
7621 return __builtin_s390_vflnsb(__a);
7622 }
7623 #endif
7624
7625 static inline __ATTRS_o_ai vector double
vec_nabs(vector double __a)7626 vec_nabs(vector double __a) {
7627 return __builtin_s390_vflndb(__a);
7628 }
7629
7630 /*-- vec_max ----------------------------------------------------------------*/
7631
7632 static inline __ATTRS_o_ai vector signed char
vec_max(vector signed char __a,vector signed char __b)7633 vec_max(vector signed char __a, vector signed char __b) {
7634 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7635 }
7636
7637 // This prototype is deprecated.
7638 static inline __ATTRS_o_ai vector signed char
vec_max(vector signed char __a,vector bool char __b)7639 vec_max(vector signed char __a, vector bool char __b) {
7640 vector signed char __bc = (vector signed char)__b;
7641 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7642 }
7643
7644 // This prototype is deprecated.
7645 static inline __ATTRS_o_ai vector signed char
vec_max(vector bool char __a,vector signed char __b)7646 vec_max(vector bool char __a, vector signed char __b) {
7647 vector signed char __ac = (vector signed char)__a;
7648 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7649 }
7650
7651 static inline __ATTRS_o_ai vector unsigned char
vec_max(vector unsigned char __a,vector unsigned char __b)7652 vec_max(vector unsigned char __a, vector unsigned char __b) {
7653 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7654 }
7655
7656 // This prototype is deprecated.
7657 static inline __ATTRS_o_ai vector unsigned char
vec_max(vector unsigned char __a,vector bool char __b)7658 vec_max(vector unsigned char __a, vector bool char __b) {
7659 vector unsigned char __bc = (vector unsigned char)__b;
7660 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7661 }
7662
7663 // This prototype is deprecated.
7664 static inline __ATTRS_o_ai vector unsigned char
vec_max(vector bool char __a,vector unsigned char __b)7665 vec_max(vector bool char __a, vector unsigned char __b) {
7666 vector unsigned char __ac = (vector unsigned char)__a;
7667 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7668 }
7669
7670 static inline __ATTRS_o_ai vector signed short
vec_max(vector signed short __a,vector signed short __b)7671 vec_max(vector signed short __a, vector signed short __b) {
7672 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7673 }
7674
7675 // This prototype is deprecated.
7676 static inline __ATTRS_o_ai vector signed short
vec_max(vector signed short __a,vector bool short __b)7677 vec_max(vector signed short __a, vector bool short __b) {
7678 vector signed short __bc = (vector signed short)__b;
7679 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7680 }
7681
7682 // This prototype is deprecated.
7683 static inline __ATTRS_o_ai vector signed short
vec_max(vector bool short __a,vector signed short __b)7684 vec_max(vector bool short __a, vector signed short __b) {
7685 vector signed short __ac = (vector signed short)__a;
7686 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7687 }
7688
7689 static inline __ATTRS_o_ai vector unsigned short
vec_max(vector unsigned short __a,vector unsigned short __b)7690 vec_max(vector unsigned short __a, vector unsigned short __b) {
7691 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7692 }
7693
7694 // This prototype is deprecated.
7695 static inline __ATTRS_o_ai vector unsigned short
vec_max(vector unsigned short __a,vector bool short __b)7696 vec_max(vector unsigned short __a, vector bool short __b) {
7697 vector unsigned short __bc = (vector unsigned short)__b;
7698 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7699 }
7700
7701 // This prototype is deprecated.
7702 static inline __ATTRS_o_ai vector unsigned short
vec_max(vector bool short __a,vector unsigned short __b)7703 vec_max(vector bool short __a, vector unsigned short __b) {
7704 vector unsigned short __ac = (vector unsigned short)__a;
7705 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7706 }
7707
7708 static inline __ATTRS_o_ai vector signed int
vec_max(vector signed int __a,vector signed int __b)7709 vec_max(vector signed int __a, vector signed int __b) {
7710 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7711 }
7712
7713 // This prototype is deprecated.
7714 static inline __ATTRS_o_ai vector signed int
vec_max(vector signed int __a,vector bool int __b)7715 vec_max(vector signed int __a, vector bool int __b) {
7716 vector signed int __bc = (vector signed int)__b;
7717 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7718 }
7719
7720 // This prototype is deprecated.
7721 static inline __ATTRS_o_ai vector signed int
vec_max(vector bool int __a,vector signed int __b)7722 vec_max(vector bool int __a, vector signed int __b) {
7723 vector signed int __ac = (vector signed int)__a;
7724 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7725 }
7726
7727 static inline __ATTRS_o_ai vector unsigned int
vec_max(vector unsigned int __a,vector unsigned int __b)7728 vec_max(vector unsigned int __a, vector unsigned int __b) {
7729 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7730 }
7731
7732 // This prototype is deprecated.
7733 static inline __ATTRS_o_ai vector unsigned int
vec_max(vector unsigned int __a,vector bool int __b)7734 vec_max(vector unsigned int __a, vector bool int __b) {
7735 vector unsigned int __bc = (vector unsigned int)__b;
7736 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7737 }
7738
7739 // This prototype is deprecated.
7740 static inline __ATTRS_o_ai vector unsigned int
vec_max(vector bool int __a,vector unsigned int __b)7741 vec_max(vector bool int __a, vector unsigned int __b) {
7742 vector unsigned int __ac = (vector unsigned int)__a;
7743 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7744 }
7745
7746 static inline __ATTRS_o_ai vector signed long long
vec_max(vector signed long long __a,vector signed long long __b)7747 vec_max(vector signed long long __a, vector signed long long __b) {
7748 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7749 }
7750
7751 // This prototype is deprecated.
7752 static inline __ATTRS_o_ai vector signed long long
vec_max(vector signed long long __a,vector bool long long __b)7753 vec_max(vector signed long long __a, vector bool long long __b) {
7754 vector signed long long __bc = (vector signed long long)__b;
7755 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7756 }
7757
7758 // This prototype is deprecated.
7759 static inline __ATTRS_o_ai vector signed long long
vec_max(vector bool long long __a,vector signed long long __b)7760 vec_max(vector bool long long __a, vector signed long long __b) {
7761 vector signed long long __ac = (vector signed long long)__a;
7762 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7763 }
7764
7765 static inline __ATTRS_o_ai vector unsigned long long
vec_max(vector unsigned long long __a,vector unsigned long long __b)7766 vec_max(vector unsigned long long __a, vector unsigned long long __b) {
7767 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7768 }
7769
7770 // This prototype is deprecated.
7771 static inline __ATTRS_o_ai vector unsigned long long
vec_max(vector unsigned long long __a,vector bool long long __b)7772 vec_max(vector unsigned long long __a, vector bool long long __b) {
7773 vector unsigned long long __bc = (vector unsigned long long)__b;
7774 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
7775 }
7776
7777 // This prototype is deprecated.
7778 static inline __ATTRS_o_ai vector unsigned long long
vec_max(vector bool long long __a,vector unsigned long long __b)7779 vec_max(vector bool long long __a, vector unsigned long long __b) {
7780 vector unsigned long long __ac = (vector unsigned long long)__a;
7781 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
7782 }
7783
7784 #if __ARCH__ >= 12
7785 static inline __ATTRS_o_ai vector float
vec_max(vector float __a,vector float __b)7786 vec_max(vector float __a, vector float __b) {
7787 return __builtin_s390_vfmaxsb(__a, __b, 0);
7788 }
7789 #endif
7790
7791 static inline __ATTRS_o_ai vector double
vec_max(vector double __a,vector double __b)7792 vec_max(vector double __a, vector double __b) {
7793 #if __ARCH__ >= 12
7794 return __builtin_s390_vfmaxdb(__a, __b, 0);
7795 #else
7796 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
7797 #endif
7798 }
7799
7800 /*-- vec_min ----------------------------------------------------------------*/
7801
7802 static inline __ATTRS_o_ai vector signed char
vec_min(vector signed char __a,vector signed char __b)7803 vec_min(vector signed char __a, vector signed char __b) {
7804 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7805 }
7806
7807 // This prototype is deprecated.
7808 static inline __ATTRS_o_ai vector signed char
vec_min(vector signed char __a,vector bool char __b)7809 vec_min(vector signed char __a, vector bool char __b) {
7810 vector signed char __bc = (vector signed char)__b;
7811 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7812 }
7813
7814 // This prototype is deprecated.
7815 static inline __ATTRS_o_ai vector signed char
vec_min(vector bool char __a,vector signed char __b)7816 vec_min(vector bool char __a, vector signed char __b) {
7817 vector signed char __ac = (vector signed char)__a;
7818 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7819 }
7820
7821 static inline __ATTRS_o_ai vector unsigned char
vec_min(vector unsigned char __a,vector unsigned char __b)7822 vec_min(vector unsigned char __a, vector unsigned char __b) {
7823 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7824 }
7825
7826 // This prototype is deprecated.
7827 static inline __ATTRS_o_ai vector unsigned char
vec_min(vector unsigned char __a,vector bool char __b)7828 vec_min(vector unsigned char __a, vector bool char __b) {
7829 vector unsigned char __bc = (vector unsigned char)__b;
7830 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7831 }
7832
7833 // This prototype is deprecated.
7834 static inline __ATTRS_o_ai vector unsigned char
vec_min(vector bool char __a,vector unsigned char __b)7835 vec_min(vector bool char __a, vector unsigned char __b) {
7836 vector unsigned char __ac = (vector unsigned char)__a;
7837 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7838 }
7839
7840 static inline __ATTRS_o_ai vector signed short
vec_min(vector signed short __a,vector signed short __b)7841 vec_min(vector signed short __a, vector signed short __b) {
7842 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7843 }
7844
7845 // This prototype is deprecated.
7846 static inline __ATTRS_o_ai vector signed short
vec_min(vector signed short __a,vector bool short __b)7847 vec_min(vector signed short __a, vector bool short __b) {
7848 vector signed short __bc = (vector signed short)__b;
7849 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7850 }
7851
7852 // This prototype is deprecated.
7853 static inline __ATTRS_o_ai vector signed short
vec_min(vector bool short __a,vector signed short __b)7854 vec_min(vector bool short __a, vector signed short __b) {
7855 vector signed short __ac = (vector signed short)__a;
7856 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7857 }
7858
7859 static inline __ATTRS_o_ai vector unsigned short
vec_min(vector unsigned short __a,vector unsigned short __b)7860 vec_min(vector unsigned short __a, vector unsigned short __b) {
7861 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7862 }
7863
7864 // This prototype is deprecated.
7865 static inline __ATTRS_o_ai vector unsigned short
vec_min(vector unsigned short __a,vector bool short __b)7866 vec_min(vector unsigned short __a, vector bool short __b) {
7867 vector unsigned short __bc = (vector unsigned short)__b;
7868 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7869 }
7870
7871 // This prototype is deprecated.
7872 static inline __ATTRS_o_ai vector unsigned short
vec_min(vector bool short __a,vector unsigned short __b)7873 vec_min(vector bool short __a, vector unsigned short __b) {
7874 vector unsigned short __ac = (vector unsigned short)__a;
7875 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7876 }
7877
7878 static inline __ATTRS_o_ai vector signed int
vec_min(vector signed int __a,vector signed int __b)7879 vec_min(vector signed int __a, vector signed int __b) {
7880 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7881 }
7882
7883 // This prototype is deprecated.
7884 static inline __ATTRS_o_ai vector signed int
vec_min(vector signed int __a,vector bool int __b)7885 vec_min(vector signed int __a, vector bool int __b) {
7886 vector signed int __bc = (vector signed int)__b;
7887 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7888 }
7889
7890 // This prototype is deprecated.
7891 static inline __ATTRS_o_ai vector signed int
vec_min(vector bool int __a,vector signed int __b)7892 vec_min(vector bool int __a, vector signed int __b) {
7893 vector signed int __ac = (vector signed int)__a;
7894 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7895 }
7896
7897 static inline __ATTRS_o_ai vector unsigned int
vec_min(vector unsigned int __a,vector unsigned int __b)7898 vec_min(vector unsigned int __a, vector unsigned int __b) {
7899 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7900 }
7901
7902 // This prototype is deprecated.
7903 static inline __ATTRS_o_ai vector unsigned int
vec_min(vector unsigned int __a,vector bool int __b)7904 vec_min(vector unsigned int __a, vector bool int __b) {
7905 vector unsigned int __bc = (vector unsigned int)__b;
7906 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7907 }
7908
7909 // This prototype is deprecated.
7910 static inline __ATTRS_o_ai vector unsigned int
vec_min(vector bool int __a,vector unsigned int __b)7911 vec_min(vector bool int __a, vector unsigned int __b) {
7912 vector unsigned int __ac = (vector unsigned int)__a;
7913 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7914 }
7915
7916 static inline __ATTRS_o_ai vector signed long long
vec_min(vector signed long long __a,vector signed long long __b)7917 vec_min(vector signed long long __a, vector signed long long __b) {
7918 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7919 }
7920
7921 // This prototype is deprecated.
7922 static inline __ATTRS_o_ai vector signed long long
vec_min(vector signed long long __a,vector bool long long __b)7923 vec_min(vector signed long long __a, vector bool long long __b) {
7924 vector signed long long __bc = (vector signed long long)__b;
7925 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7926 }
7927
7928 // This prototype is deprecated.
7929 static inline __ATTRS_o_ai vector signed long long
vec_min(vector bool long long __a,vector signed long long __b)7930 vec_min(vector bool long long __a, vector signed long long __b) {
7931 vector signed long long __ac = (vector signed long long)__a;
7932 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7933 }
7934
7935 static inline __ATTRS_o_ai vector unsigned long long
vec_min(vector unsigned long long __a,vector unsigned long long __b)7936 vec_min(vector unsigned long long __a, vector unsigned long long __b) {
7937 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7938 }
7939
7940 // This prototype is deprecated.
7941 static inline __ATTRS_o_ai vector unsigned long long
vec_min(vector unsigned long long __a,vector bool long long __b)7942 vec_min(vector unsigned long long __a, vector bool long long __b) {
7943 vector unsigned long long __bc = (vector unsigned long long)__b;
7944 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
7945 }
7946
7947 // This prototype is deprecated.
7948 static inline __ATTRS_o_ai vector unsigned long long
vec_min(vector bool long long __a,vector unsigned long long __b)7949 vec_min(vector bool long long __a, vector unsigned long long __b) {
7950 vector unsigned long long __ac = (vector unsigned long long)__a;
7951 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
7952 }
7953
7954 #if __ARCH__ >= 12
7955 static inline __ATTRS_o_ai vector float
vec_min(vector float __a,vector float __b)7956 vec_min(vector float __a, vector float __b) {
7957 return __builtin_s390_vfminsb(__a, __b, 0);
7958 }
7959 #endif
7960
7961 static inline __ATTRS_o_ai vector double
vec_min(vector double __a,vector double __b)7962 vec_min(vector double __a, vector double __b) {
7963 #if __ARCH__ >= 12
7964 return __builtin_s390_vfmindb(__a, __b, 0);
7965 #else
7966 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
7967 #endif
7968 }
7969
7970 /*-- vec_add_u128 -----------------------------------------------------------*/
7971
7972 static inline __ATTRS_ai vector unsigned char
vec_add_u128(vector unsigned char __a,vector unsigned char __b)7973 vec_add_u128(vector unsigned char __a, vector unsigned char __b) {
7974 return __builtin_s390_vaq(__a, __b);
7975 }
7976
7977 /*-- vec_addc ---------------------------------------------------------------*/
7978
7979 static inline __ATTRS_o_ai vector unsigned char
vec_addc(vector unsigned char __a,vector unsigned char __b)7980 vec_addc(vector unsigned char __a, vector unsigned char __b) {
7981 return __builtin_s390_vaccb(__a, __b);
7982 }
7983
7984 static inline __ATTRS_o_ai vector unsigned short
vec_addc(vector unsigned short __a,vector unsigned short __b)7985 vec_addc(vector unsigned short __a, vector unsigned short __b) {
7986 return __builtin_s390_vacch(__a, __b);
7987 }
7988
7989 static inline __ATTRS_o_ai vector unsigned int
vec_addc(vector unsigned int __a,vector unsigned int __b)7990 vec_addc(vector unsigned int __a, vector unsigned int __b) {
7991 return __builtin_s390_vaccf(__a, __b);
7992 }
7993
7994 static inline __ATTRS_o_ai vector unsigned long long
vec_addc(vector unsigned long long __a,vector unsigned long long __b)7995 vec_addc(vector unsigned long long __a, vector unsigned long long __b) {
7996 return __builtin_s390_vaccg(__a, __b);
7997 }
7998
7999 /*-- vec_addc_u128 ----------------------------------------------------------*/
8000
8001 static inline __ATTRS_ai vector unsigned char
vec_addc_u128(vector unsigned char __a,vector unsigned char __b)8002 vec_addc_u128(vector unsigned char __a, vector unsigned char __b) {
8003 return __builtin_s390_vaccq(__a, __b);
8004 }
8005
8006 /*-- vec_adde_u128 ----------------------------------------------------------*/
8007
8008 static inline __ATTRS_ai vector unsigned char
vec_adde_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8009 vec_adde_u128(vector unsigned char __a, vector unsigned char __b,
8010 vector unsigned char __c) {
8011 return __builtin_s390_vacq(__a, __b, __c);
8012 }
8013
8014 /*-- vec_addec_u128 ---------------------------------------------------------*/
8015
8016 static inline __ATTRS_ai vector unsigned char
vec_addec_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8017 vec_addec_u128(vector unsigned char __a, vector unsigned char __b,
8018 vector unsigned char __c) {
8019 return __builtin_s390_vacccq(__a, __b, __c);
8020 }
8021
8022 /*-- vec_avg ----------------------------------------------------------------*/
8023
8024 static inline __ATTRS_o_ai vector signed char
vec_avg(vector signed char __a,vector signed char __b)8025 vec_avg(vector signed char __a, vector signed char __b) {
8026 return __builtin_s390_vavgb(__a, __b);
8027 }
8028
8029 static inline __ATTRS_o_ai vector signed short
vec_avg(vector signed short __a,vector signed short __b)8030 vec_avg(vector signed short __a, vector signed short __b) {
8031 return __builtin_s390_vavgh(__a, __b);
8032 }
8033
8034 static inline __ATTRS_o_ai vector signed int
vec_avg(vector signed int __a,vector signed int __b)8035 vec_avg(vector signed int __a, vector signed int __b) {
8036 return __builtin_s390_vavgf(__a, __b);
8037 }
8038
8039 static inline __ATTRS_o_ai vector signed long long
vec_avg(vector signed long long __a,vector signed long long __b)8040 vec_avg(vector signed long long __a, vector signed long long __b) {
8041 return __builtin_s390_vavgg(__a, __b);
8042 }
8043
8044 static inline __ATTRS_o_ai vector unsigned char
vec_avg(vector unsigned char __a,vector unsigned char __b)8045 vec_avg(vector unsigned char __a, vector unsigned char __b) {
8046 return __builtin_s390_vavglb(__a, __b);
8047 }
8048
8049 static inline __ATTRS_o_ai vector unsigned short
vec_avg(vector unsigned short __a,vector unsigned short __b)8050 vec_avg(vector unsigned short __a, vector unsigned short __b) {
8051 return __builtin_s390_vavglh(__a, __b);
8052 }
8053
8054 static inline __ATTRS_o_ai vector unsigned int
vec_avg(vector unsigned int __a,vector unsigned int __b)8055 vec_avg(vector unsigned int __a, vector unsigned int __b) {
8056 return __builtin_s390_vavglf(__a, __b);
8057 }
8058
8059 static inline __ATTRS_o_ai vector unsigned long long
vec_avg(vector unsigned long long __a,vector unsigned long long __b)8060 vec_avg(vector unsigned long long __a, vector unsigned long long __b) {
8061 return __builtin_s390_vavglg(__a, __b);
8062 }
8063
8064 /*-- vec_checksum -----------------------------------------------------------*/
8065
8066 static inline __ATTRS_ai vector unsigned int
vec_checksum(vector unsigned int __a,vector unsigned int __b)8067 vec_checksum(vector unsigned int __a, vector unsigned int __b) {
8068 return __builtin_s390_vcksm(__a, __b);
8069 }
8070
8071 /*-- vec_gfmsum -------------------------------------------------------------*/
8072
8073 static inline __ATTRS_o_ai vector unsigned short
vec_gfmsum(vector unsigned char __a,vector unsigned char __b)8074 vec_gfmsum(vector unsigned char __a, vector unsigned char __b) {
8075 return __builtin_s390_vgfmb(__a, __b);
8076 }
8077
8078 static inline __ATTRS_o_ai vector unsigned int
vec_gfmsum(vector unsigned short __a,vector unsigned short __b)8079 vec_gfmsum(vector unsigned short __a, vector unsigned short __b) {
8080 return __builtin_s390_vgfmh(__a, __b);
8081 }
8082
8083 static inline __ATTRS_o_ai vector unsigned long long
vec_gfmsum(vector unsigned int __a,vector unsigned int __b)8084 vec_gfmsum(vector unsigned int __a, vector unsigned int __b) {
8085 return __builtin_s390_vgfmf(__a, __b);
8086 }
8087
8088 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
8089
8090 static inline __ATTRS_o_ai vector unsigned char
vec_gfmsum_128(vector unsigned long long __a,vector unsigned long long __b)8091 vec_gfmsum_128(vector unsigned long long __a, vector unsigned long long __b) {
8092 return __builtin_s390_vgfmg(__a, __b);
8093 }
8094
8095 /*-- vec_gfmsum_accum -------------------------------------------------------*/
8096
8097 static inline __ATTRS_o_ai vector unsigned short
vec_gfmsum_accum(vector unsigned char __a,vector unsigned char __b,vector unsigned short __c)8098 vec_gfmsum_accum(vector unsigned char __a, vector unsigned char __b,
8099 vector unsigned short __c) {
8100 return __builtin_s390_vgfmab(__a, __b, __c);
8101 }
8102
8103 static inline __ATTRS_o_ai vector unsigned int
vec_gfmsum_accum(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)8104 vec_gfmsum_accum(vector unsigned short __a, vector unsigned short __b,
8105 vector unsigned int __c) {
8106 return __builtin_s390_vgfmah(__a, __b, __c);
8107 }
8108
8109 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)8110 vec_gfmsum_accum(vector unsigned int __a, vector unsigned int __b,
8111 vector unsigned long long __c) {
8112 return __builtin_s390_vgfmaf(__a, __b, __c);
8113 }
8114
8115 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
8116
8117 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)8118 vec_gfmsum_accum_128(vector unsigned long long __a,
8119 vector unsigned long long __b,
8120 vector unsigned char __c) {
8121 return __builtin_s390_vgfmag(__a, __b, __c);
8122 }
8123
8124 /*-- vec_mladd --------------------------------------------------------------*/
8125
8126 static inline __ATTRS_o_ai vector signed char
vec_mladd(vector signed char __a,vector signed char __b,vector signed char __c)8127 vec_mladd(vector signed char __a, vector signed char __b,
8128 vector signed char __c) {
8129 return __a * __b + __c;
8130 }
8131
8132 static inline __ATTRS_o_ai vector signed char
vec_mladd(vector unsigned char __a,vector signed char __b,vector signed char __c)8133 vec_mladd(vector unsigned char __a, vector signed char __b,
8134 vector signed char __c) {
8135 return (vector signed char)__a * __b + __c;
8136 }
8137
8138 static inline __ATTRS_o_ai vector signed char
vec_mladd(vector signed char __a,vector unsigned char __b,vector unsigned char __c)8139 vec_mladd(vector signed char __a, vector unsigned char __b,
8140 vector unsigned char __c) {
8141 return __a * (vector signed char)__b + (vector signed char)__c;
8142 }
8143
8144 static inline __ATTRS_o_ai vector unsigned char
vec_mladd(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8145 vec_mladd(vector unsigned char __a, vector unsigned char __b,
8146 vector unsigned char __c) {
8147 return __a * __b + __c;
8148 }
8149
8150 static inline __ATTRS_o_ai vector signed short
vec_mladd(vector signed short __a,vector signed short __b,vector signed short __c)8151 vec_mladd(vector signed short __a, vector signed short __b,
8152 vector signed short __c) {
8153 return __a * __b + __c;
8154 }
8155
8156 static inline __ATTRS_o_ai vector signed short
vec_mladd(vector unsigned short __a,vector signed short __b,vector signed short __c)8157 vec_mladd(vector unsigned short __a, vector signed short __b,
8158 vector signed short __c) {
8159 return (vector signed short)__a * __b + __c;
8160 }
8161
8162 static inline __ATTRS_o_ai vector signed short
vec_mladd(vector signed short __a,vector unsigned short __b,vector unsigned short __c)8163 vec_mladd(vector signed short __a, vector unsigned short __b,
8164 vector unsigned short __c) {
8165 return __a * (vector signed short)__b + (vector signed short)__c;
8166 }
8167
8168 static inline __ATTRS_o_ai vector unsigned short
vec_mladd(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)8169 vec_mladd(vector unsigned short __a, vector unsigned short __b,
8170 vector unsigned short __c) {
8171 return __a * __b + __c;
8172 }
8173
8174 static inline __ATTRS_o_ai vector signed int
vec_mladd(vector signed int __a,vector signed int __b,vector signed int __c)8175 vec_mladd(vector signed int __a, vector signed int __b,
8176 vector signed int __c) {
8177 return __a * __b + __c;
8178 }
8179
8180 static inline __ATTRS_o_ai vector signed int
vec_mladd(vector unsigned int __a,vector signed int __b,vector signed int __c)8181 vec_mladd(vector unsigned int __a, vector signed int __b,
8182 vector signed int __c) {
8183 return (vector signed int)__a * __b + __c;
8184 }
8185
8186 static inline __ATTRS_o_ai vector signed int
vec_mladd(vector signed int __a,vector unsigned int __b,vector unsigned int __c)8187 vec_mladd(vector signed int __a, vector unsigned int __b,
8188 vector unsigned int __c) {
8189 return __a * (vector signed int)__b + (vector signed int)__c;
8190 }
8191
8192 static inline __ATTRS_o_ai vector unsigned int
vec_mladd(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)8193 vec_mladd(vector unsigned int __a, vector unsigned int __b,
8194 vector unsigned int __c) {
8195 return __a * __b + __c;
8196 }
8197
8198 /*-- vec_mhadd --------------------------------------------------------------*/
8199
8200 static inline __ATTRS_o_ai vector signed char
vec_mhadd(vector signed char __a,vector signed char __b,vector signed char __c)8201 vec_mhadd(vector signed char __a, vector signed char __b,
8202 vector signed char __c) {
8203 return __builtin_s390_vmahb(__a, __b, __c);
8204 }
8205
8206 static inline __ATTRS_o_ai vector unsigned char
vec_mhadd(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8207 vec_mhadd(vector unsigned char __a, vector unsigned char __b,
8208 vector unsigned char __c) {
8209 return __builtin_s390_vmalhb(__a, __b, __c);
8210 }
8211
8212 static inline __ATTRS_o_ai vector signed short
vec_mhadd(vector signed short __a,vector signed short __b,vector signed short __c)8213 vec_mhadd(vector signed short __a, vector signed short __b,
8214 vector signed short __c) {
8215 return __builtin_s390_vmahh(__a, __b, __c);
8216 }
8217
8218 static inline __ATTRS_o_ai vector unsigned short
vec_mhadd(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)8219 vec_mhadd(vector unsigned short __a, vector unsigned short __b,
8220 vector unsigned short __c) {
8221 return __builtin_s390_vmalhh(__a, __b, __c);
8222 }
8223
8224 static inline __ATTRS_o_ai vector signed int
vec_mhadd(vector signed int __a,vector signed int __b,vector signed int __c)8225 vec_mhadd(vector signed int __a, vector signed int __b,
8226 vector signed int __c) {
8227 return __builtin_s390_vmahf(__a, __b, __c);
8228 }
8229
8230 static inline __ATTRS_o_ai vector unsigned int
vec_mhadd(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)8231 vec_mhadd(vector unsigned int __a, vector unsigned int __b,
8232 vector unsigned int __c) {
8233 return __builtin_s390_vmalhf(__a, __b, __c);
8234 }
8235
8236 /*-- vec_meadd --------------------------------------------------------------*/
8237
8238 static inline __ATTRS_o_ai vector signed short
vec_meadd(vector signed char __a,vector signed char __b,vector signed short __c)8239 vec_meadd(vector signed char __a, vector signed char __b,
8240 vector signed short __c) {
8241 return __builtin_s390_vmaeb(__a, __b, __c);
8242 }
8243
8244 static inline __ATTRS_o_ai vector unsigned short
vec_meadd(vector unsigned char __a,vector unsigned char __b,vector unsigned short __c)8245 vec_meadd(vector unsigned char __a, vector unsigned char __b,
8246 vector unsigned short __c) {
8247 return __builtin_s390_vmaleb(__a, __b, __c);
8248 }
8249
8250 static inline __ATTRS_o_ai vector signed int
vec_meadd(vector signed short __a,vector signed short __b,vector signed int __c)8251 vec_meadd(vector signed short __a, vector signed short __b,
8252 vector signed int __c) {
8253 return __builtin_s390_vmaeh(__a, __b, __c);
8254 }
8255
8256 static inline __ATTRS_o_ai vector unsigned int
vec_meadd(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)8257 vec_meadd(vector unsigned short __a, vector unsigned short __b,
8258 vector unsigned int __c) {
8259 return __builtin_s390_vmaleh(__a, __b, __c);
8260 }
8261
8262 static inline __ATTRS_o_ai vector signed long long
vec_meadd(vector signed int __a,vector signed int __b,vector signed long long __c)8263 vec_meadd(vector signed int __a, vector signed int __b,
8264 vector signed long long __c) {
8265 return __builtin_s390_vmaef(__a, __b, __c);
8266 }
8267
8268 static inline __ATTRS_o_ai vector unsigned long long
vec_meadd(vector unsigned int __a,vector unsigned int __b,vector unsigned long long __c)8269 vec_meadd(vector unsigned int __a, vector unsigned int __b,
8270 vector unsigned long long __c) {
8271 return __builtin_s390_vmalef(__a, __b, __c);
8272 }
8273
8274 /*-- vec_moadd --------------------------------------------------------------*/
8275
8276 static inline __ATTRS_o_ai vector signed short
vec_moadd(vector signed char __a,vector signed char __b,vector signed short __c)8277 vec_moadd(vector signed char __a, vector signed char __b,
8278 vector signed short __c) {
8279 return __builtin_s390_vmaob(__a, __b, __c);
8280 }
8281
8282 static inline __ATTRS_o_ai vector unsigned short
vec_moadd(vector unsigned char __a,vector unsigned char __b,vector unsigned short __c)8283 vec_moadd(vector unsigned char __a, vector unsigned char __b,
8284 vector unsigned short __c) {
8285 return __builtin_s390_vmalob(__a, __b, __c);
8286 }
8287
8288 static inline __ATTRS_o_ai vector signed int
vec_moadd(vector signed short __a,vector signed short __b,vector signed int __c)8289 vec_moadd(vector signed short __a, vector signed short __b,
8290 vector signed int __c) {
8291 return __builtin_s390_vmaoh(__a, __b, __c);
8292 }
8293
8294 static inline __ATTRS_o_ai vector unsigned int
vec_moadd(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)8295 vec_moadd(vector unsigned short __a, vector unsigned short __b,
8296 vector unsigned int __c) {
8297 return __builtin_s390_vmaloh(__a, __b, __c);
8298 }
8299
8300 static inline __ATTRS_o_ai vector signed long long
vec_moadd(vector signed int __a,vector signed int __b,vector signed long long __c)8301 vec_moadd(vector signed int __a, vector signed int __b,
8302 vector signed long long __c) {
8303 return __builtin_s390_vmaof(__a, __b, __c);
8304 }
8305
8306 static inline __ATTRS_o_ai vector unsigned long long
vec_moadd(vector unsigned int __a,vector unsigned int __b,vector unsigned long long __c)8307 vec_moadd(vector unsigned int __a, vector unsigned int __b,
8308 vector unsigned long long __c) {
8309 return __builtin_s390_vmalof(__a, __b, __c);
8310 }
8311
8312 /*-- vec_mulh ---------------------------------------------------------------*/
8313
8314 static inline __ATTRS_o_ai vector signed char
vec_mulh(vector signed char __a,vector signed char __b)8315 vec_mulh(vector signed char __a, vector signed char __b) {
8316 return __builtin_s390_vmhb(__a, __b);
8317 }
8318
8319 static inline __ATTRS_o_ai vector unsigned char
vec_mulh(vector unsigned char __a,vector unsigned char __b)8320 vec_mulh(vector unsigned char __a, vector unsigned char __b) {
8321 return __builtin_s390_vmlhb(__a, __b);
8322 }
8323
8324 static inline __ATTRS_o_ai vector signed short
vec_mulh(vector signed short __a,vector signed short __b)8325 vec_mulh(vector signed short __a, vector signed short __b) {
8326 return __builtin_s390_vmhh(__a, __b);
8327 }
8328
8329 static inline __ATTRS_o_ai vector unsigned short
vec_mulh(vector unsigned short __a,vector unsigned short __b)8330 vec_mulh(vector unsigned short __a, vector unsigned short __b) {
8331 return __builtin_s390_vmlhh(__a, __b);
8332 }
8333
8334 static inline __ATTRS_o_ai vector signed int
vec_mulh(vector signed int __a,vector signed int __b)8335 vec_mulh(vector signed int __a, vector signed int __b) {
8336 return __builtin_s390_vmhf(__a, __b);
8337 }
8338
8339 static inline __ATTRS_o_ai vector unsigned int
vec_mulh(vector unsigned int __a,vector unsigned int __b)8340 vec_mulh(vector unsigned int __a, vector unsigned int __b) {
8341 return __builtin_s390_vmlhf(__a, __b);
8342 }
8343
8344 /*-- vec_mule ---------------------------------------------------------------*/
8345
8346 static inline __ATTRS_o_ai vector signed short
vec_mule(vector signed char __a,vector signed char __b)8347 vec_mule(vector signed char __a, vector signed char __b) {
8348 return __builtin_s390_vmeb(__a, __b);
8349 }
8350
8351 static inline __ATTRS_o_ai vector unsigned short
vec_mule(vector unsigned char __a,vector unsigned char __b)8352 vec_mule(vector unsigned char __a, vector unsigned char __b) {
8353 return __builtin_s390_vmleb(__a, __b);
8354 }
8355
8356 static inline __ATTRS_o_ai vector signed int
vec_mule(vector signed short __a,vector signed short __b)8357 vec_mule(vector signed short __a, vector signed short __b) {
8358 return __builtin_s390_vmeh(__a, __b);
8359 }
8360
8361 static inline __ATTRS_o_ai vector unsigned int
vec_mule(vector unsigned short __a,vector unsigned short __b)8362 vec_mule(vector unsigned short __a, vector unsigned short __b) {
8363 return __builtin_s390_vmleh(__a, __b);
8364 }
8365
8366 static inline __ATTRS_o_ai vector signed long long
vec_mule(vector signed int __a,vector signed int __b)8367 vec_mule(vector signed int __a, vector signed int __b) {
8368 return __builtin_s390_vmef(__a, __b);
8369 }
8370
8371 static inline __ATTRS_o_ai vector unsigned long long
vec_mule(vector unsigned int __a,vector unsigned int __b)8372 vec_mule(vector unsigned int __a, vector unsigned int __b) {
8373 return __builtin_s390_vmlef(__a, __b);
8374 }
8375
8376 /*-- vec_mulo ---------------------------------------------------------------*/
8377
8378 static inline __ATTRS_o_ai vector signed short
vec_mulo(vector signed char __a,vector signed char __b)8379 vec_mulo(vector signed char __a, vector signed char __b) {
8380 return __builtin_s390_vmob(__a, __b);
8381 }
8382
8383 static inline __ATTRS_o_ai vector unsigned short
vec_mulo(vector unsigned char __a,vector unsigned char __b)8384 vec_mulo(vector unsigned char __a, vector unsigned char __b) {
8385 return __builtin_s390_vmlob(__a, __b);
8386 }
8387
8388 static inline __ATTRS_o_ai vector signed int
vec_mulo(vector signed short __a,vector signed short __b)8389 vec_mulo(vector signed short __a, vector signed short __b) {
8390 return __builtin_s390_vmoh(__a, __b);
8391 }
8392
8393 static inline __ATTRS_o_ai vector unsigned int
vec_mulo(vector unsigned short __a,vector unsigned short __b)8394 vec_mulo(vector unsigned short __a, vector unsigned short __b) {
8395 return __builtin_s390_vmloh(__a, __b);
8396 }
8397
8398 static inline __ATTRS_o_ai vector signed long long
vec_mulo(vector signed int __a,vector signed int __b)8399 vec_mulo(vector signed int __a, vector signed int __b) {
8400 return __builtin_s390_vmof(__a, __b);
8401 }
8402
8403 static inline __ATTRS_o_ai vector unsigned long long
vec_mulo(vector unsigned int __a,vector unsigned int __b)8404 vec_mulo(vector unsigned int __a, vector unsigned int __b) {
8405 return __builtin_s390_vmlof(__a, __b);
8406 }
8407
8408 /*-- vec_msum_u128 ----------------------------------------------------------*/
8409
8410 #if __ARCH__ >= 12
8411 #define vec_msum_u128(X, Y, Z, W) \
8412 ((vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W)));
8413 #endif
8414
8415 /*-- vec_sub_u128 -----------------------------------------------------------*/
8416
8417 static inline __ATTRS_ai vector unsigned char
vec_sub_u128(vector unsigned char __a,vector unsigned char __b)8418 vec_sub_u128(vector unsigned char __a, vector unsigned char __b) {
8419 return __builtin_s390_vsq(__a, __b);
8420 }
8421
8422 /*-- vec_subc ---------------------------------------------------------------*/
8423
8424 static inline __ATTRS_o_ai vector unsigned char
vec_subc(vector unsigned char __a,vector unsigned char __b)8425 vec_subc(vector unsigned char __a, vector unsigned char __b) {
8426 return __builtin_s390_vscbib(__a, __b);
8427 }
8428
8429 static inline __ATTRS_o_ai vector unsigned short
vec_subc(vector unsigned short __a,vector unsigned short __b)8430 vec_subc(vector unsigned short __a, vector unsigned short __b) {
8431 return __builtin_s390_vscbih(__a, __b);
8432 }
8433
8434 static inline __ATTRS_o_ai vector unsigned int
vec_subc(vector unsigned int __a,vector unsigned int __b)8435 vec_subc(vector unsigned int __a, vector unsigned int __b) {
8436 return __builtin_s390_vscbif(__a, __b);
8437 }
8438
8439 static inline __ATTRS_o_ai vector unsigned long long
vec_subc(vector unsigned long long __a,vector unsigned long long __b)8440 vec_subc(vector unsigned long long __a, vector unsigned long long __b) {
8441 return __builtin_s390_vscbig(__a, __b);
8442 }
8443
8444 /*-- vec_subc_u128 ----------------------------------------------------------*/
8445
8446 static inline __ATTRS_ai vector unsigned char
vec_subc_u128(vector unsigned char __a,vector unsigned char __b)8447 vec_subc_u128(vector unsigned char __a, vector unsigned char __b) {
8448 return __builtin_s390_vscbiq(__a, __b);
8449 }
8450
8451 /*-- vec_sube_u128 ----------------------------------------------------------*/
8452
8453 static inline __ATTRS_ai vector unsigned char
vec_sube_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8454 vec_sube_u128(vector unsigned char __a, vector unsigned char __b,
8455 vector unsigned char __c) {
8456 return __builtin_s390_vsbiq(__a, __b, __c);
8457 }
8458
8459 /*-- vec_subec_u128 ---------------------------------------------------------*/
8460
8461 static inline __ATTRS_ai vector unsigned char
vec_subec_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8462 vec_subec_u128(vector unsigned char __a, vector unsigned char __b,
8463 vector unsigned char __c) {
8464 return __builtin_s390_vsbcbiq(__a, __b, __c);
8465 }
8466
8467 /*-- vec_sum2 ---------------------------------------------------------------*/
8468
8469 static inline __ATTRS_o_ai vector unsigned long long
vec_sum2(vector unsigned short __a,vector unsigned short __b)8470 vec_sum2(vector unsigned short __a, vector unsigned short __b) {
8471 return __builtin_s390_vsumgh(__a, __b);
8472 }
8473
8474 static inline __ATTRS_o_ai vector unsigned long long
vec_sum2(vector unsigned int __a,vector unsigned int __b)8475 vec_sum2(vector unsigned int __a, vector unsigned int __b) {
8476 return __builtin_s390_vsumgf(__a, __b);
8477 }
8478
8479 /*-- vec_sum_u128 -----------------------------------------------------------*/
8480
8481 static inline __ATTRS_o_ai vector unsigned char
vec_sum_u128(vector unsigned int __a,vector unsigned int __b)8482 vec_sum_u128(vector unsigned int __a, vector unsigned int __b) {
8483 return __builtin_s390_vsumqf(__a, __b);
8484 }
8485
8486 static inline __ATTRS_o_ai vector unsigned char
vec_sum_u128(vector unsigned long long __a,vector unsigned long long __b)8487 vec_sum_u128(vector unsigned long long __a, vector unsigned long long __b) {
8488 return __builtin_s390_vsumqg(__a, __b);
8489 }
8490
8491 /*-- vec_sum4 ---------------------------------------------------------------*/
8492
8493 static inline __ATTRS_o_ai vector unsigned int
vec_sum4(vector unsigned char __a,vector unsigned char __b)8494 vec_sum4(vector unsigned char __a, vector unsigned char __b) {
8495 return __builtin_s390_vsumb(__a, __b);
8496 }
8497
8498 static inline __ATTRS_o_ai vector unsigned int
vec_sum4(vector unsigned short __a,vector unsigned short __b)8499 vec_sum4(vector unsigned short __a, vector unsigned short __b) {
8500 return __builtin_s390_vsumh(__a, __b);
8501 }
8502
8503 /*-- vec_test_mask ----------------------------------------------------------*/
8504
8505 static inline __ATTRS_o_ai int
vec_test_mask(vector signed char __a,vector unsigned char __b)8506 vec_test_mask(vector signed char __a, vector unsigned char __b) {
8507 return __builtin_s390_vtm((vector unsigned char)__a,
8508 (vector unsigned char)__b);
8509 }
8510
8511 static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned char __a,vector unsigned char __b)8512 vec_test_mask(vector unsigned char __a, vector unsigned char __b) {
8513 return __builtin_s390_vtm(__a, __b);
8514 }
8515
8516 static inline __ATTRS_o_ai int
vec_test_mask(vector signed short __a,vector unsigned short __b)8517 vec_test_mask(vector signed short __a, vector unsigned short __b) {
8518 return __builtin_s390_vtm((vector unsigned char)__a,
8519 (vector unsigned char)__b);
8520 }
8521
8522 static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned short __a,vector unsigned short __b)8523 vec_test_mask(vector unsigned short __a, vector unsigned short __b) {
8524 return __builtin_s390_vtm((vector unsigned char)__a,
8525 (vector unsigned char)__b);
8526 }
8527
8528 static inline __ATTRS_o_ai int
vec_test_mask(vector signed int __a,vector unsigned int __b)8529 vec_test_mask(vector signed int __a, vector unsigned int __b) {
8530 return __builtin_s390_vtm((vector unsigned char)__a,
8531 (vector unsigned char)__b);
8532 }
8533
8534 static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned int __a,vector unsigned int __b)8535 vec_test_mask(vector unsigned int __a, vector unsigned int __b) {
8536 return __builtin_s390_vtm((vector unsigned char)__a,
8537 (vector unsigned char)__b);
8538 }
8539
8540 static inline __ATTRS_o_ai int
vec_test_mask(vector signed long long __a,vector unsigned long long __b)8541 vec_test_mask(vector signed long long __a, vector unsigned long long __b) {
8542 return __builtin_s390_vtm((vector unsigned char)__a,
8543 (vector unsigned char)__b);
8544 }
8545
8546 static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned long long __a,vector unsigned long long __b)8547 vec_test_mask(vector unsigned long long __a, vector unsigned long long __b) {
8548 return __builtin_s390_vtm((vector unsigned char)__a,
8549 (vector unsigned char)__b);
8550 }
8551
8552 #if __ARCH__ >= 12
8553 static inline __ATTRS_o_ai int
vec_test_mask(vector float __a,vector unsigned int __b)8554 vec_test_mask(vector float __a, vector unsigned int __b) {
8555 return __builtin_s390_vtm((vector unsigned char)__a,
8556 (vector unsigned char)__b);
8557 }
8558 #endif
8559
8560 static inline __ATTRS_o_ai int
vec_test_mask(vector double __a,vector unsigned long long __b)8561 vec_test_mask(vector double __a, vector unsigned long long __b) {
8562 return __builtin_s390_vtm((vector unsigned char)__a,
8563 (vector unsigned char)__b);
8564 }
8565
8566 /*-- vec_madd ---------------------------------------------------------------*/
8567
8568 #if __ARCH__ >= 12
8569 static inline __ATTRS_o_ai vector float
vec_madd(vector float __a,vector float __b,vector float __c)8570 vec_madd(vector float __a, vector float __b, vector float __c) {
8571 return __builtin_s390_vfmasb(__a, __b, __c);
8572 }
8573 #endif
8574
8575 static inline __ATTRS_o_ai vector double
vec_madd(vector double __a,vector double __b,vector double __c)8576 vec_madd(vector double __a, vector double __b, vector double __c) {
8577 return __builtin_s390_vfmadb(__a, __b, __c);
8578 }
8579
8580 /*-- vec_msub ---------------------------------------------------------------*/
8581
8582 #if __ARCH__ >= 12
8583 static inline __ATTRS_o_ai vector float
vec_msub(vector float __a,vector float __b,vector float __c)8584 vec_msub(vector float __a, vector float __b, vector float __c) {
8585 return __builtin_s390_vfmssb(__a, __b, __c);
8586 }
8587 #endif
8588
8589 static inline __ATTRS_o_ai vector double
vec_msub(vector double __a,vector double __b,vector double __c)8590 vec_msub(vector double __a, vector double __b, vector double __c) {
8591 return __builtin_s390_vfmsdb(__a, __b, __c);
8592 }
8593
8594 /*-- vec_nmadd ---------------------------------------------------------------*/
8595
8596 #if __ARCH__ >= 12
8597 static inline __ATTRS_o_ai vector float
vec_nmadd(vector float __a,vector float __b,vector float __c)8598 vec_nmadd(vector float __a, vector float __b, vector float __c) {
8599 return __builtin_s390_vfnmasb(__a, __b, __c);
8600 }
8601
8602 static inline __ATTRS_o_ai vector double
vec_nmadd(vector double __a,vector double __b,vector double __c)8603 vec_nmadd(vector double __a, vector double __b, vector double __c) {
8604 return __builtin_s390_vfnmadb(__a, __b, __c);
8605 }
8606 #endif
8607
8608 /*-- vec_nmsub ---------------------------------------------------------------*/
8609
8610 #if __ARCH__ >= 12
8611 static inline __ATTRS_o_ai vector float
vec_nmsub(vector float __a,vector float __b,vector float __c)8612 vec_nmsub(vector float __a, vector float __b, vector float __c) {
8613 return __builtin_s390_vfnmssb(__a, __b, __c);
8614 }
8615
8616 static inline __ATTRS_o_ai vector double
vec_nmsub(vector double __a,vector double __b,vector double __c)8617 vec_nmsub(vector double __a, vector double __b, vector double __c) {
8618 return __builtin_s390_vfnmsdb(__a, __b, __c);
8619 }
8620 #endif
8621
8622 /*-- vec_sqrt ---------------------------------------------------------------*/
8623
8624 #if __ARCH__ >= 12
8625 static inline __ATTRS_o_ai vector float
vec_sqrt(vector float __a)8626 vec_sqrt(vector float __a) {
8627 return __builtin_s390_vfsqsb(__a);
8628 }
8629 #endif
8630
8631 static inline __ATTRS_o_ai vector double
vec_sqrt(vector double __a)8632 vec_sqrt(vector double __a) {
8633 return __builtin_s390_vfsqdb(__a);
8634 }
8635
8636 /*-- vec_ld2f ---------------------------------------------------------------*/
8637
8638 // This prototype is deprecated.
8639 static inline __ATTRS_ai vector double
vec_ld2f(const float * __ptr)8640 vec_ld2f(const float *__ptr) {
8641 typedef float __v2f32 __attribute__((__vector_size__(8)));
8642 return __builtin_convertvector(*(const __v2f32 *)__ptr, vector double);
8643 }
8644
8645 /*-- vec_st2f ---------------------------------------------------------------*/
8646
8647 // This prototype is deprecated.
8648 static inline __ATTRS_ai void
vec_st2f(vector double __a,float * __ptr)8649 vec_st2f(vector double __a, float *__ptr) {
8650 typedef float __v2f32 __attribute__((__vector_size__(8)));
8651 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
8652 }
8653
8654 /*-- vec_ctd ----------------------------------------------------------------*/
8655
8656 // This prototype is deprecated.
8657 static inline __ATTRS_o_ai vector double
vec_ctd(vector signed long long __a,int __b)8658 vec_ctd(vector signed long long __a, int __b)
8659 __constant_range(__b, 0, 31) {
8660 vector double __conv = __builtin_convertvector(__a, vector double);
8661 __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
8662 return __conv;
8663 }
8664
8665 // This prototype is deprecated.
8666 static inline __ATTRS_o_ai vector double
vec_ctd(vector unsigned long long __a,int __b)8667 vec_ctd(vector unsigned long long __a, int __b)
8668 __constant_range(__b, 0, 31) {
8669 vector double __conv = __builtin_convertvector(__a, vector double);
8670 __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
8671 return __conv;
8672 }
8673
8674 /*-- vec_ctsl ---------------------------------------------------------------*/
8675
8676 // This prototype is deprecated.
8677 static inline __ATTRS_o_ai vector signed long long
vec_ctsl(vector double __a,int __b)8678 vec_ctsl(vector double __a, int __b)
8679 __constant_range(__b, 0, 31) {
8680 __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
8681 return __builtin_convertvector(__a, vector signed long long);
8682 }
8683
8684 /*-- vec_ctul ---------------------------------------------------------------*/
8685
8686 // This prototype is deprecated.
8687 static inline __ATTRS_o_ai vector unsigned long long
vec_ctul(vector double __a,int __b)8688 vec_ctul(vector double __a, int __b)
8689 __constant_range(__b, 0, 31) {
8690 __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
8691 return __builtin_convertvector(__a, vector unsigned long long);
8692 }
8693
8694 /*-- vec_doublee ------------------------------------------------------------*/
8695
8696 #if __ARCH__ >= 12
8697 static inline __ATTRS_ai vector double
vec_doublee(vector float __a)8698 vec_doublee(vector float __a) {
8699 typedef float __v2f32 __attribute__((__vector_size__(8)));
8700 __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);
8701 return __builtin_convertvector(__pack, vector double);
8702 }
8703 #endif
8704
8705 /*-- vec_floate -------------------------------------------------------------*/
8706
8707 #if __ARCH__ >= 12
8708 static inline __ATTRS_ai vector float
vec_floate(vector double __a)8709 vec_floate(vector double __a) {
8710 typedef float __v2f32 __attribute__((__vector_size__(8)));
8711 __v2f32 __pack = __builtin_convertvector(__a, __v2f32);
8712 return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);
8713 }
8714 #endif
8715
8716 /*-- vec_double -------------------------------------------------------------*/
8717
8718 static inline __ATTRS_o_ai vector double
vec_double(vector signed long long __a)8719 vec_double(vector signed long long __a) {
8720 return __builtin_convertvector(__a, vector double);
8721 }
8722
8723 static inline __ATTRS_o_ai vector double
vec_double(vector unsigned long long __a)8724 vec_double(vector unsigned long long __a) {
8725 return __builtin_convertvector(__a, vector double);
8726 }
8727
8728 /*-- vec_signed -------------------------------------------------------------*/
8729
8730 static inline __ATTRS_o_ai vector signed long long
vec_signed(vector double __a)8731 vec_signed(vector double __a) {
8732 return __builtin_convertvector(__a, vector signed long long);
8733 }
8734
8735 /*-- vec_unsigned -----------------------------------------------------------*/
8736
8737 static inline __ATTRS_o_ai vector unsigned long long
vec_unsigned(vector double __a)8738 vec_unsigned(vector double __a) {
8739 return __builtin_convertvector(__a, vector unsigned long long);
8740 }
8741
8742 /*-- vec_roundp -------------------------------------------------------------*/
8743
8744 #if __ARCH__ >= 12
8745 static inline __ATTRS_o_ai vector float
vec_roundp(vector float __a)8746 vec_roundp(vector float __a) {
8747 return __builtin_s390_vfisb(__a, 4, 6);
8748 }
8749 #endif
8750
8751 static inline __ATTRS_o_ai vector double
vec_roundp(vector double __a)8752 vec_roundp(vector double __a) {
8753 return __builtin_s390_vfidb(__a, 4, 6);
8754 }
8755
8756 /*-- vec_ceil ---------------------------------------------------------------*/
8757
8758 #if __ARCH__ >= 12
8759 static inline __ATTRS_o_ai vector float
vec_ceil(vector float __a)8760 vec_ceil(vector float __a) {
8761 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
8762 return __builtin_s390_vfisb(__a, 4, 6);
8763 }
8764 #endif
8765
8766 static inline __ATTRS_o_ai vector double
vec_ceil(vector double __a)8767 vec_ceil(vector double __a) {
8768 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
8769 return __builtin_s390_vfidb(__a, 4, 6);
8770 }
8771
8772 /*-- vec_roundm -------------------------------------------------------------*/
8773
8774 #if __ARCH__ >= 12
8775 static inline __ATTRS_o_ai vector float
vec_roundm(vector float __a)8776 vec_roundm(vector float __a) {
8777 return __builtin_s390_vfisb(__a, 4, 7);
8778 }
8779 #endif
8780
8781 static inline __ATTRS_o_ai vector double
vec_roundm(vector double __a)8782 vec_roundm(vector double __a) {
8783 return __builtin_s390_vfidb(__a, 4, 7);
8784 }
8785
8786 /*-- vec_floor --------------------------------------------------------------*/
8787
8788 #if __ARCH__ >= 12
8789 static inline __ATTRS_o_ai vector float
vec_floor(vector float __a)8790 vec_floor(vector float __a) {
8791 // On this platform, vec_floor never triggers the IEEE-inexact exception.
8792 return __builtin_s390_vfisb(__a, 4, 7);
8793 }
8794 #endif
8795
8796 static inline __ATTRS_o_ai vector double
vec_floor(vector double __a)8797 vec_floor(vector double __a) {
8798 // On this platform, vec_floor never triggers the IEEE-inexact exception.
8799 return __builtin_s390_vfidb(__a, 4, 7);
8800 }
8801
8802 /*-- vec_roundz -------------------------------------------------------------*/
8803
8804 #if __ARCH__ >= 12
8805 static inline __ATTRS_o_ai vector float
vec_roundz(vector float __a)8806 vec_roundz(vector float __a) {
8807 return __builtin_s390_vfisb(__a, 4, 5);
8808 }
8809 #endif
8810
8811 static inline __ATTRS_o_ai vector double
vec_roundz(vector double __a)8812 vec_roundz(vector double __a) {
8813 return __builtin_s390_vfidb(__a, 4, 5);
8814 }
8815
8816 /*-- vec_trunc --------------------------------------------------------------*/
8817
8818 #if __ARCH__ >= 12
8819 static inline __ATTRS_o_ai vector float
vec_trunc(vector float __a)8820 vec_trunc(vector float __a) {
8821 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
8822 return __builtin_s390_vfisb(__a, 4, 5);
8823 }
8824 #endif
8825
8826 static inline __ATTRS_o_ai vector double
vec_trunc(vector double __a)8827 vec_trunc(vector double __a) {
8828 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
8829 return __builtin_s390_vfidb(__a, 4, 5);
8830 }
8831
8832 /*-- vec_roundc -------------------------------------------------------------*/
8833
8834 #if __ARCH__ >= 12
8835 static inline __ATTRS_o_ai vector float
vec_roundc(vector float __a)8836 vec_roundc(vector float __a) {
8837 return __builtin_s390_vfisb(__a, 4, 0);
8838 }
8839 #endif
8840
8841 static inline __ATTRS_o_ai vector double
vec_roundc(vector double __a)8842 vec_roundc(vector double __a) {
8843 return __builtin_s390_vfidb(__a, 4, 0);
8844 }
8845
8846 /*-- vec_rint ---------------------------------------------------------------*/
8847
8848 #if __ARCH__ >= 12
8849 static inline __ATTRS_o_ai vector float
vec_rint(vector float __a)8850 vec_rint(vector float __a) {
8851 // vec_rint may trigger the IEEE-inexact exception.
8852 return __builtin_s390_vfisb(__a, 0, 0);
8853 }
8854 #endif
8855
8856 static inline __ATTRS_o_ai vector double
vec_rint(vector double __a)8857 vec_rint(vector double __a) {
8858 // vec_rint may trigger the IEEE-inexact exception.
8859 return __builtin_s390_vfidb(__a, 0, 0);
8860 }
8861
8862 /*-- vec_round --------------------------------------------------------------*/
8863
8864 #if __ARCH__ >= 12
8865 static inline __ATTRS_o_ai vector float
vec_round(vector float __a)8866 vec_round(vector float __a) {
8867 return __builtin_s390_vfisb(__a, 4, 4);
8868 }
8869 #endif
8870
8871 static inline __ATTRS_o_ai vector double
vec_round(vector double __a)8872 vec_round(vector double __a) {
8873 return __builtin_s390_vfidb(__a, 4, 4);
8874 }
8875
8876 /*-- vec_fp_test_data_class -------------------------------------------------*/
8877
8878 #if __ARCH__ >= 12
8879 extern __ATTRS_o vector bool int
8880 vec_fp_test_data_class(vector float __a, int __b, int *__c)
8881 __constant_range(__b, 0, 4095);
8882
8883 extern __ATTRS_o vector bool long long
8884 vec_fp_test_data_class(vector double __a, int __b, int *__c)
8885 __constant_range(__b, 0, 4095);
8886
8887 #define vec_fp_test_data_class(X, Y, Z) \
8888 ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \
8889 __extension__ ({ \
8890 vector unsigned char __res; \
8891 vector unsigned char __x = (vector unsigned char)(X); \
8892 int *__z = (Z); \
8893 switch (sizeof ((X)[0])) { \
8894 case 4: __res = (vector unsigned char) \
8895 __builtin_s390_vftcisb((vector float)__x, (Y), __z); \
8896 break; \
8897 default: __res = (vector unsigned char) \
8898 __builtin_s390_vftcidb((vector double)__x, (Y), __z); \
8899 break; \
8900 } __res; }))
8901 #else
8902 #define vec_fp_test_data_class(X, Y, Z) \
8903 ((vector bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
8904 #endif
8905
8906 #define __VEC_CLASS_FP_ZERO_P (1 << 11)
8907 #define __VEC_CLASS_FP_ZERO_N (1 << 10)
8908 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)
8909 #define __VEC_CLASS_FP_NORMAL_P (1 << 9)
8910 #define __VEC_CLASS_FP_NORMAL_N (1 << 8)
8911 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \
8912 __VEC_CLASS_FP_NORMAL_N)
8913 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)
8914 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)
8915 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \
8916 __VEC_CLASS_FP_SUBNORMAL_N)
8917 #define __VEC_CLASS_FP_INFINITY_P (1 << 5)
8918 #define __VEC_CLASS_FP_INFINITY_N (1 << 4)
8919 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \
8920 __VEC_CLASS_FP_INFINITY_N)
8921 #define __VEC_CLASS_FP_QNAN_P (1 << 3)
8922 #define __VEC_CLASS_FP_QNAN_N (1 << 2)
8923 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)
8924 #define __VEC_CLASS_FP_SNAN_P (1 << 1)
8925 #define __VEC_CLASS_FP_SNAN_N (1 << 0)
8926 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)
8927 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)
8928 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \
8929 __VEC_CLASS_FP_SUBNORMAL | \
8930 __VEC_CLASS_FP_ZERO | \
8931 __VEC_CLASS_FP_INFINITY)
8932
8933 /*-- vec_cp_until_zero ------------------------------------------------------*/
8934
8935 static inline __ATTRS_o_ai vector signed char
vec_cp_until_zero(vector signed char __a)8936 vec_cp_until_zero(vector signed char __a) {
8937 return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a);
8938 }
8939
8940 static inline __ATTRS_o_ai vector bool char
vec_cp_until_zero(vector bool char __a)8941 vec_cp_until_zero(vector bool char __a) {
8942 return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a);
8943 }
8944
8945 static inline __ATTRS_o_ai vector unsigned char
vec_cp_until_zero(vector unsigned char __a)8946 vec_cp_until_zero(vector unsigned char __a) {
8947 return __builtin_s390_vistrb(__a);
8948 }
8949
8950 static inline __ATTRS_o_ai vector signed short
vec_cp_until_zero(vector signed short __a)8951 vec_cp_until_zero(vector signed short __a) {
8952 return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a);
8953 }
8954
8955 static inline __ATTRS_o_ai vector bool short
vec_cp_until_zero(vector bool short __a)8956 vec_cp_until_zero(vector bool short __a) {
8957 return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a);
8958 }
8959
8960 static inline __ATTRS_o_ai vector unsigned short
vec_cp_until_zero(vector unsigned short __a)8961 vec_cp_until_zero(vector unsigned short __a) {
8962 return __builtin_s390_vistrh(__a);
8963 }
8964
8965 static inline __ATTRS_o_ai vector signed int
vec_cp_until_zero(vector signed int __a)8966 vec_cp_until_zero(vector signed int __a) {
8967 return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a);
8968 }
8969
8970 static inline __ATTRS_o_ai vector bool int
vec_cp_until_zero(vector bool int __a)8971 vec_cp_until_zero(vector bool int __a) {
8972 return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a);
8973 }
8974
8975 static inline __ATTRS_o_ai vector unsigned int
vec_cp_until_zero(vector unsigned int __a)8976 vec_cp_until_zero(vector unsigned int __a) {
8977 return __builtin_s390_vistrf(__a);
8978 }
8979
8980 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
8981
8982 static inline __ATTRS_o_ai vector signed char
vec_cp_until_zero_cc(vector signed char __a,int * __cc)8983 vec_cp_until_zero_cc(vector signed char __a, int *__cc) {
8984 return (vector signed char)
8985 __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
8986 }
8987
8988 static inline __ATTRS_o_ai vector bool char
vec_cp_until_zero_cc(vector bool char __a,int * __cc)8989 vec_cp_until_zero_cc(vector bool char __a, int *__cc) {
8990 return (vector bool char)
8991 __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
8992 }
8993
8994 static inline __ATTRS_o_ai vector unsigned char
vec_cp_until_zero_cc(vector unsigned char __a,int * __cc)8995 vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) {
8996 return __builtin_s390_vistrbs(__a, __cc);
8997 }
8998
8999 static inline __ATTRS_o_ai vector signed short
vec_cp_until_zero_cc(vector signed short __a,int * __cc)9000 vec_cp_until_zero_cc(vector signed short __a, int *__cc) {
9001 return (vector signed short)
9002 __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
9003 }
9004
9005 static inline __ATTRS_o_ai vector bool short
vec_cp_until_zero_cc(vector bool short __a,int * __cc)9006 vec_cp_until_zero_cc(vector bool short __a, int *__cc) {
9007 return (vector bool short)
9008 __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
9009 }
9010
9011 static inline __ATTRS_o_ai vector unsigned short
vec_cp_until_zero_cc(vector unsigned short __a,int * __cc)9012 vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) {
9013 return __builtin_s390_vistrhs(__a, __cc);
9014 }
9015
9016 static inline __ATTRS_o_ai vector signed int
vec_cp_until_zero_cc(vector signed int __a,int * __cc)9017 vec_cp_until_zero_cc(vector signed int __a, int *__cc) {
9018 return (vector signed int)
9019 __builtin_s390_vistrfs((vector unsigned int)__a, __cc);
9020 }
9021
9022 static inline __ATTRS_o_ai vector bool int
vec_cp_until_zero_cc(vector bool int __a,int * __cc)9023 vec_cp_until_zero_cc(vector bool int __a, int *__cc) {
9024 return (vector bool int)__builtin_s390_vistrfs((vector unsigned int)__a,
9025 __cc);
9026 }
9027
9028 static inline __ATTRS_o_ai vector unsigned int
vec_cp_until_zero_cc(vector unsigned int __a,int * __cc)9029 vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) {
9030 return __builtin_s390_vistrfs(__a, __cc);
9031 }
9032
9033 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
9034
9035 static inline __ATTRS_o_ai vector signed char
vec_cmpeq_idx(vector signed char __a,vector signed char __b)9036 vec_cmpeq_idx(vector signed char __a, vector signed char __b) {
9037 return (vector signed char)
9038 __builtin_s390_vfeeb((vector unsigned char)__a,
9039 (vector unsigned char)__b);
9040 }
9041
9042 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx(vector bool char __a,vector bool char __b)9043 vec_cmpeq_idx(vector bool char __a, vector bool char __b) {
9044 return __builtin_s390_vfeeb((vector unsigned char)__a,
9045 (vector unsigned char)__b);
9046 }
9047
9048 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx(vector unsigned char __a,vector unsigned char __b)9049 vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) {
9050 return __builtin_s390_vfeeb(__a, __b);
9051 }
9052
9053 static inline __ATTRS_o_ai vector signed short
vec_cmpeq_idx(vector signed short __a,vector signed short __b)9054 vec_cmpeq_idx(vector signed short __a, vector signed short __b) {
9055 return (vector signed short)
9056 __builtin_s390_vfeeh((vector unsigned short)__a,
9057 (vector unsigned short)__b);
9058 }
9059
9060 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx(vector bool short __a,vector bool short __b)9061 vec_cmpeq_idx(vector bool short __a, vector bool short __b) {
9062 return __builtin_s390_vfeeh((vector unsigned short)__a,
9063 (vector unsigned short)__b);
9064 }
9065
9066 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx(vector unsigned short __a,vector unsigned short __b)9067 vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) {
9068 return __builtin_s390_vfeeh(__a, __b);
9069 }
9070
9071 static inline __ATTRS_o_ai vector signed int
vec_cmpeq_idx(vector signed int __a,vector signed int __b)9072 vec_cmpeq_idx(vector signed int __a, vector signed int __b) {
9073 return (vector signed int)
9074 __builtin_s390_vfeef((vector unsigned int)__a,
9075 (vector unsigned int)__b);
9076 }
9077
9078 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx(vector bool int __a,vector bool int __b)9079 vec_cmpeq_idx(vector bool int __a, vector bool int __b) {
9080 return __builtin_s390_vfeef((vector unsigned int)__a,
9081 (vector unsigned int)__b);
9082 }
9083
9084 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx(vector unsigned int __a,vector unsigned int __b)9085 vec_cmpeq_idx(vector unsigned int __a, vector unsigned int __b) {
9086 return __builtin_s390_vfeef(__a, __b);
9087 }
9088
9089 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
9090
9091 static inline __ATTRS_o_ai vector signed char
vec_cmpeq_idx_cc(vector signed char __a,vector signed char __b,int * __cc)9092 vec_cmpeq_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
9093 return (vector signed char)
9094 __builtin_s390_vfeebs((vector unsigned char)__a,
9095 (vector unsigned char)__b, __cc);
9096 }
9097
9098 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx_cc(vector bool char __a,vector bool char __b,int * __cc)9099 vec_cmpeq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9100 return __builtin_s390_vfeebs((vector unsigned char)__a,
9101 (vector unsigned char)__b, __cc);
9102 }
9103
9104 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)9105 vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b,
9106 int *__cc) {
9107 return __builtin_s390_vfeebs(__a, __b, __cc);
9108 }
9109
9110 static inline __ATTRS_o_ai vector signed short
vec_cmpeq_idx_cc(vector signed short __a,vector signed short __b,int * __cc)9111 vec_cmpeq_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
9112 return (vector signed short)
9113 __builtin_s390_vfeehs((vector unsigned short)__a,
9114 (vector unsigned short)__b, __cc);
9115 }
9116
9117 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx_cc(vector bool short __a,vector bool short __b,int * __cc)9118 vec_cmpeq_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9119 return __builtin_s390_vfeehs((vector unsigned short)__a,
9120 (vector unsigned short)__b, __cc);
9121 }
9122
9123 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)9124 vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b,
9125 int *__cc) {
9126 return __builtin_s390_vfeehs(__a, __b, __cc);
9127 }
9128
9129 static inline __ATTRS_o_ai vector signed int
vec_cmpeq_idx_cc(vector signed int __a,vector signed int __b,int * __cc)9130 vec_cmpeq_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9131 return (vector signed int)
9132 __builtin_s390_vfeefs((vector unsigned int)__a,
9133 (vector unsigned int)__b, __cc);
9134 }
9135
9136 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx_cc(vector bool int __a,vector bool int __b,int * __cc)9137 vec_cmpeq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9138 return __builtin_s390_vfeefs((vector unsigned int)__a,
9139 (vector unsigned int)__b, __cc);
9140 }
9141
9142 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)9143 vec_cmpeq_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
9144 return __builtin_s390_vfeefs(__a, __b, __cc);
9145 }
9146
9147 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
9148
9149 static inline __ATTRS_o_ai vector signed char
vec_cmpeq_or_0_idx(vector signed char __a,vector signed char __b)9150 vec_cmpeq_or_0_idx(vector signed char __a, vector signed char __b) {
9151 return (vector signed char)
9152 __builtin_s390_vfeezb((vector unsigned char)__a,
9153 (vector unsigned char)__b);
9154 }
9155
9156 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx(vector bool char __a,vector bool char __b)9157 vec_cmpeq_or_0_idx(vector bool char __a, vector bool char __b) {
9158 return __builtin_s390_vfeezb((vector unsigned char)__a,
9159 (vector unsigned char)__b);
9160 }
9161
9162 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx(vector unsigned char __a,vector unsigned char __b)9163 vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9164 return __builtin_s390_vfeezb(__a, __b);
9165 }
9166
9167 static inline __ATTRS_o_ai vector signed short
vec_cmpeq_or_0_idx(vector signed short __a,vector signed short __b)9168 vec_cmpeq_or_0_idx(vector signed short __a, vector signed short __b) {
9169 return (vector signed short)
9170 __builtin_s390_vfeezh((vector unsigned short)__a,
9171 (vector unsigned short)__b);
9172 }
9173
9174 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx(vector bool short __a,vector bool short __b)9175 vec_cmpeq_or_0_idx(vector bool short __a, vector bool short __b) {
9176 return __builtin_s390_vfeezh((vector unsigned short)__a,
9177 (vector unsigned short)__b);
9178 }
9179
9180 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx(vector unsigned short __a,vector unsigned short __b)9181 vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9182 return __builtin_s390_vfeezh(__a, __b);
9183 }
9184
9185 static inline __ATTRS_o_ai vector signed int
vec_cmpeq_or_0_idx(vector signed int __a,vector signed int __b)9186 vec_cmpeq_or_0_idx(vector signed int __a, vector signed int __b) {
9187 return (vector signed int)
9188 __builtin_s390_vfeezf((vector unsigned int)__a,
9189 (vector unsigned int)__b);
9190 }
9191
9192 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx(vector bool int __a,vector bool int __b)9193 vec_cmpeq_or_0_idx(vector bool int __a, vector bool int __b) {
9194 return __builtin_s390_vfeezf((vector unsigned int)__a,
9195 (vector unsigned int)__b);
9196 }
9197
9198 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx(vector unsigned int __a,vector unsigned int __b)9199 vec_cmpeq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
9200 return __builtin_s390_vfeezf(__a, __b);
9201 }
9202
9203 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
9204
9205 static inline __ATTRS_o_ai vector signed char
vec_cmpeq_or_0_idx_cc(vector signed char __a,vector signed char __b,int * __cc)9206 vec_cmpeq_or_0_idx_cc(vector signed char __a, vector signed char __b,
9207 int *__cc) {
9208 return (vector signed char)
9209 __builtin_s390_vfeezbs((vector unsigned char)__a,
9210 (vector unsigned char)__b, __cc);
9211 }
9212
9213 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx_cc(vector bool char __a,vector bool char __b,int * __cc)9214 vec_cmpeq_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9215 return __builtin_s390_vfeezbs((vector unsigned char)__a,
9216 (vector unsigned char)__b, __cc);
9217 }
9218
9219 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)9220 vec_cmpeq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9221 int *__cc) {
9222 return __builtin_s390_vfeezbs(__a, __b, __cc);
9223 }
9224
9225 static inline __ATTRS_o_ai vector signed short
vec_cmpeq_or_0_idx_cc(vector signed short __a,vector signed short __b,int * __cc)9226 vec_cmpeq_or_0_idx_cc(vector signed short __a, vector signed short __b,
9227 int *__cc) {
9228 return (vector signed short)
9229 __builtin_s390_vfeezhs((vector unsigned short)__a,
9230 (vector unsigned short)__b, __cc);
9231 }
9232
9233 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx_cc(vector bool short __a,vector bool short __b,int * __cc)9234 vec_cmpeq_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9235 return __builtin_s390_vfeezhs((vector unsigned short)__a,
9236 (vector unsigned short)__b, __cc);
9237 }
9238
9239 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)9240 vec_cmpeq_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9241 int *__cc) {
9242 return __builtin_s390_vfeezhs(__a, __b, __cc);
9243 }
9244
9245 static inline __ATTRS_o_ai vector signed int
vec_cmpeq_or_0_idx_cc(vector signed int __a,vector signed int __b,int * __cc)9246 vec_cmpeq_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9247 return (vector signed int)
9248 __builtin_s390_vfeezfs((vector unsigned int)__a,
9249 (vector unsigned int)__b, __cc);
9250 }
9251
9252 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx_cc(vector bool int __a,vector bool int __b,int * __cc)9253 vec_cmpeq_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9254 return __builtin_s390_vfeezfs((vector unsigned int)__a,
9255 (vector unsigned int)__b, __cc);
9256 }
9257
9258 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)9259 vec_cmpeq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9260 int *__cc) {
9261 return __builtin_s390_vfeezfs(__a, __b, __cc);
9262 }
9263
9264 /*-- vec_cmpne_idx ----------------------------------------------------------*/
9265
9266 static inline __ATTRS_o_ai vector signed char
vec_cmpne_idx(vector signed char __a,vector signed char __b)9267 vec_cmpne_idx(vector signed char __a, vector signed char __b) {
9268 return (vector signed char)
9269 __builtin_s390_vfeneb((vector unsigned char)__a,
9270 (vector unsigned char)__b);
9271 }
9272
9273 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx(vector bool char __a,vector bool char __b)9274 vec_cmpne_idx(vector bool char __a, vector bool char __b) {
9275 return __builtin_s390_vfeneb((vector unsigned char)__a,
9276 (vector unsigned char)__b);
9277 }
9278
9279 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx(vector unsigned char __a,vector unsigned char __b)9280 vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) {
9281 return __builtin_s390_vfeneb(__a, __b);
9282 }
9283
9284 static inline __ATTRS_o_ai vector signed short
vec_cmpne_idx(vector signed short __a,vector signed short __b)9285 vec_cmpne_idx(vector signed short __a, vector signed short __b) {
9286 return (vector signed short)
9287 __builtin_s390_vfeneh((vector unsigned short)__a,
9288 (vector unsigned short)__b);
9289 }
9290
9291 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx(vector bool short __a,vector bool short __b)9292 vec_cmpne_idx(vector bool short __a, vector bool short __b) {
9293 return __builtin_s390_vfeneh((vector unsigned short)__a,
9294 (vector unsigned short)__b);
9295 }
9296
9297 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx(vector unsigned short __a,vector unsigned short __b)9298 vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) {
9299 return __builtin_s390_vfeneh(__a, __b);
9300 }
9301
9302 static inline __ATTRS_o_ai vector signed int
vec_cmpne_idx(vector signed int __a,vector signed int __b)9303 vec_cmpne_idx(vector signed int __a, vector signed int __b) {
9304 return (vector signed int)
9305 __builtin_s390_vfenef((vector unsigned int)__a,
9306 (vector unsigned int)__b);
9307 }
9308
9309 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx(vector bool int __a,vector bool int __b)9310 vec_cmpne_idx(vector bool int __a, vector bool int __b) {
9311 return __builtin_s390_vfenef((vector unsigned int)__a,
9312 (vector unsigned int)__b);
9313 }
9314
9315 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx(vector unsigned int __a,vector unsigned int __b)9316 vec_cmpne_idx(vector unsigned int __a, vector unsigned int __b) {
9317 return __builtin_s390_vfenef(__a, __b);
9318 }
9319
9320 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
9321
9322 static inline __ATTRS_o_ai vector signed char
vec_cmpne_idx_cc(vector signed char __a,vector signed char __b,int * __cc)9323 vec_cmpne_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
9324 return (vector signed char)
9325 __builtin_s390_vfenebs((vector unsigned char)__a,
9326 (vector unsigned char)__b, __cc);
9327 }
9328
9329 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx_cc(vector bool char __a,vector bool char __b,int * __cc)9330 vec_cmpne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9331 return __builtin_s390_vfenebs((vector unsigned char)__a,
9332 (vector unsigned char)__b, __cc);
9333 }
9334
9335 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)9336 vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b,
9337 int *__cc) {
9338 return __builtin_s390_vfenebs(__a, __b, __cc);
9339 }
9340
9341 static inline __ATTRS_o_ai vector signed short
vec_cmpne_idx_cc(vector signed short __a,vector signed short __b,int * __cc)9342 vec_cmpne_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
9343 return (vector signed short)
9344 __builtin_s390_vfenehs((vector unsigned short)__a,
9345 (vector unsigned short)__b, __cc);
9346 }
9347
9348 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx_cc(vector bool short __a,vector bool short __b,int * __cc)9349 vec_cmpne_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9350 return __builtin_s390_vfenehs((vector unsigned short)__a,
9351 (vector unsigned short)__b, __cc);
9352 }
9353
9354 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)9355 vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b,
9356 int *__cc) {
9357 return __builtin_s390_vfenehs(__a, __b, __cc);
9358 }
9359
9360 static inline __ATTRS_o_ai vector signed int
vec_cmpne_idx_cc(vector signed int __a,vector signed int __b,int * __cc)9361 vec_cmpne_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9362 return (vector signed int)
9363 __builtin_s390_vfenefs((vector unsigned int)__a,
9364 (vector unsigned int)__b, __cc);
9365 }
9366
9367 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx_cc(vector bool int __a,vector bool int __b,int * __cc)9368 vec_cmpne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9369 return __builtin_s390_vfenefs((vector unsigned int)__a,
9370 (vector unsigned int)__b, __cc);
9371 }
9372
9373 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)9374 vec_cmpne_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
9375 return __builtin_s390_vfenefs(__a, __b, __cc);
9376 }
9377
9378 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
9379
9380 static inline __ATTRS_o_ai vector signed char
vec_cmpne_or_0_idx(vector signed char __a,vector signed char __b)9381 vec_cmpne_or_0_idx(vector signed char __a, vector signed char __b) {
9382 return (vector signed char)
9383 __builtin_s390_vfenezb((vector unsigned char)__a,
9384 (vector unsigned char)__b);
9385 }
9386
9387 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx(vector bool char __a,vector bool char __b)9388 vec_cmpne_or_0_idx(vector bool char __a, vector bool char __b) {
9389 return __builtin_s390_vfenezb((vector unsigned char)__a,
9390 (vector unsigned char)__b);
9391 }
9392
9393 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx(vector unsigned char __a,vector unsigned char __b)9394 vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9395 return __builtin_s390_vfenezb(__a, __b);
9396 }
9397
9398 static inline __ATTRS_o_ai vector signed short
vec_cmpne_or_0_idx(vector signed short __a,vector signed short __b)9399 vec_cmpne_or_0_idx(vector signed short __a, vector signed short __b) {
9400 return (vector signed short)
9401 __builtin_s390_vfenezh((vector unsigned short)__a,
9402 (vector unsigned short)__b);
9403 }
9404
9405 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx(vector bool short __a,vector bool short __b)9406 vec_cmpne_or_0_idx(vector bool short __a, vector bool short __b) {
9407 return __builtin_s390_vfenezh((vector unsigned short)__a,
9408 (vector unsigned short)__b);
9409 }
9410
9411 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx(vector unsigned short __a,vector unsigned short __b)9412 vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
9413 return __builtin_s390_vfenezh(__a, __b);
9414 }
9415
9416 static inline __ATTRS_o_ai vector signed int
vec_cmpne_or_0_idx(vector signed int __a,vector signed int __b)9417 vec_cmpne_or_0_idx(vector signed int __a, vector signed int __b) {
9418 return (vector signed int)
9419 __builtin_s390_vfenezf((vector unsigned int)__a,
9420 (vector unsigned int)__b);
9421 }
9422
9423 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx(vector bool int __a,vector bool int __b)9424 vec_cmpne_or_0_idx(vector bool int __a, vector bool int __b) {
9425 return __builtin_s390_vfenezf((vector unsigned int)__a,
9426 (vector unsigned int)__b);
9427 }
9428
9429 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx(vector unsigned int __a,vector unsigned int __b)9430 vec_cmpne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
9431 return __builtin_s390_vfenezf(__a, __b);
9432 }
9433
9434 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
9435
9436 static inline __ATTRS_o_ai vector signed char
vec_cmpne_or_0_idx_cc(vector signed char __a,vector signed char __b,int * __cc)9437 vec_cmpne_or_0_idx_cc(vector signed char __a, vector signed char __b,
9438 int *__cc) {
9439 return (vector signed char)
9440 __builtin_s390_vfenezbs((vector unsigned char)__a,
9441 (vector unsigned char)__b, __cc);
9442 }
9443
9444 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx_cc(vector bool char __a,vector bool char __b,int * __cc)9445 vec_cmpne_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9446 return __builtin_s390_vfenezbs((vector unsigned char)__a,
9447 (vector unsigned char)__b, __cc);
9448 }
9449
9450 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)9451 vec_cmpne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9452 int *__cc) {
9453 return __builtin_s390_vfenezbs(__a, __b, __cc);
9454 }
9455
9456 static inline __ATTRS_o_ai vector signed short
vec_cmpne_or_0_idx_cc(vector signed short __a,vector signed short __b,int * __cc)9457 vec_cmpne_or_0_idx_cc(vector signed short __a, vector signed short __b,
9458 int *__cc) {
9459 return (vector signed short)
9460 __builtin_s390_vfenezhs((vector unsigned short)__a,
9461 (vector unsigned short)__b, __cc);
9462 }
9463
9464 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx_cc(vector bool short __a,vector bool short __b,int * __cc)9465 vec_cmpne_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
9466 return __builtin_s390_vfenezhs((vector unsigned short)__a,
9467 (vector unsigned short)__b, __cc);
9468 }
9469
9470 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)9471 vec_cmpne_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9472 int *__cc) {
9473 return __builtin_s390_vfenezhs(__a, __b, __cc);
9474 }
9475
9476 static inline __ATTRS_o_ai vector signed int
vec_cmpne_or_0_idx_cc(vector signed int __a,vector signed int __b,int * __cc)9477 vec_cmpne_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
9478 return (vector signed int)
9479 __builtin_s390_vfenezfs((vector unsigned int)__a,
9480 (vector unsigned int)__b, __cc);
9481 }
9482
9483 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx_cc(vector bool int __a,vector bool int __b,int * __cc)9484 vec_cmpne_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9485 return __builtin_s390_vfenezfs((vector unsigned int)__a,
9486 (vector unsigned int)__b, __cc);
9487 }
9488
9489 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)9490 vec_cmpne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9491 int *__cc) {
9492 return __builtin_s390_vfenezfs(__a, __b, __cc);
9493 }
9494
9495 /*-- vec_cmprg --------------------------------------------------------------*/
9496
9497 static inline __ATTRS_o_ai vector bool char
vec_cmprg(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)9498 vec_cmprg(vector unsigned char __a, vector unsigned char __b,
9499 vector unsigned char __c) {
9500 return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
9501 }
9502
9503 static inline __ATTRS_o_ai vector bool short
vec_cmprg(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)9504 vec_cmprg(vector unsigned short __a, vector unsigned short __b,
9505 vector unsigned short __c) {
9506 return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
9507 }
9508
9509 static inline __ATTRS_o_ai vector bool int
vec_cmprg(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)9510 vec_cmprg(vector unsigned int __a, vector unsigned int __b,
9511 vector unsigned int __c) {
9512 return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
9513 }
9514
9515 /*-- vec_cmprg_cc -----------------------------------------------------------*/
9516
9517 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)9518 vec_cmprg_cc(vector unsigned char __a, vector unsigned char __b,
9519 vector unsigned char __c, int *__cc) {
9520 return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
9521 }
9522
9523 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)9524 vec_cmprg_cc(vector unsigned short __a, vector unsigned short __b,
9525 vector unsigned short __c, int *__cc) {
9526 return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
9527 }
9528
9529 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)9530 vec_cmprg_cc(vector unsigned int __a, vector unsigned int __b,
9531 vector unsigned int __c, int *__cc) {
9532 return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
9533 }
9534
9535 /*-- vec_cmprg_idx ----------------------------------------------------------*/
9536
9537 static inline __ATTRS_o_ai vector unsigned char
vec_cmprg_idx(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)9538 vec_cmprg_idx(vector unsigned char __a, vector unsigned char __b,
9539 vector unsigned char __c) {
9540 return __builtin_s390_vstrcb(__a, __b, __c, 0);
9541 }
9542
9543 static inline __ATTRS_o_ai vector unsigned short
vec_cmprg_idx(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)9544 vec_cmprg_idx(vector unsigned short __a, vector unsigned short __b,
9545 vector unsigned short __c) {
9546 return __builtin_s390_vstrch(__a, __b, __c, 0);
9547 }
9548
9549 static inline __ATTRS_o_ai vector unsigned int
vec_cmprg_idx(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)9550 vec_cmprg_idx(vector unsigned int __a, vector unsigned int __b,
9551 vector unsigned int __c) {
9552 return __builtin_s390_vstrcf(__a, __b, __c, 0);
9553 }
9554
9555 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
9556
9557 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)9558 vec_cmprg_idx_cc(vector unsigned char __a, vector unsigned char __b,
9559 vector unsigned char __c, int *__cc) {
9560 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
9561 }
9562
9563 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)9564 vec_cmprg_idx_cc(vector unsigned short __a, vector unsigned short __b,
9565 vector unsigned short __c, int *__cc) {
9566 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
9567 }
9568
9569 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)9570 vec_cmprg_idx_cc(vector unsigned int __a, vector unsigned int __b,
9571 vector unsigned int __c, int *__cc) {
9572 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
9573 }
9574
9575 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
9576
9577 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)9578 vec_cmprg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
9579 vector unsigned char __c) {
9580 return __builtin_s390_vstrczb(__a, __b, __c, 0);
9581 }
9582
9583 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)9584 vec_cmprg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
9585 vector unsigned short __c) {
9586 return __builtin_s390_vstrczh(__a, __b, __c, 0);
9587 }
9588
9589 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)9590 vec_cmprg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
9591 vector unsigned int __c) {
9592 return __builtin_s390_vstrczf(__a, __b, __c, 0);
9593 }
9594
9595 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
9596
9597 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)9598 vec_cmprg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9599 vector unsigned char __c, int *__cc) {
9600 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
9601 }
9602
9603 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)9604 vec_cmprg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9605 vector unsigned short __c, int *__cc) {
9606 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
9607 }
9608
9609 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)9610 vec_cmprg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9611 vector unsigned int __c, int *__cc) {
9612 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
9613 }
9614
9615 /*-- vec_cmpnrg -------------------------------------------------------------*/
9616
9617 static inline __ATTRS_o_ai vector bool char
vec_cmpnrg(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)9618 vec_cmpnrg(vector unsigned char __a, vector unsigned char __b,
9619 vector unsigned char __c) {
9620 return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
9621 }
9622
9623 static inline __ATTRS_o_ai vector bool short
vec_cmpnrg(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)9624 vec_cmpnrg(vector unsigned short __a, vector unsigned short __b,
9625 vector unsigned short __c) {
9626 return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
9627 }
9628
9629 static inline __ATTRS_o_ai vector bool int
vec_cmpnrg(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)9630 vec_cmpnrg(vector unsigned int __a, vector unsigned int __b,
9631 vector unsigned int __c) {
9632 return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
9633 }
9634
9635 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
9636
9637 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)9638 vec_cmpnrg_cc(vector unsigned char __a, vector unsigned char __b,
9639 vector unsigned char __c, int *__cc) {
9640 return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
9641 }
9642
9643 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)9644 vec_cmpnrg_cc(vector unsigned short __a, vector unsigned short __b,
9645 vector unsigned short __c, int *__cc) {
9646 return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
9647 }
9648
9649 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)9650 vec_cmpnrg_cc(vector unsigned int __a, vector unsigned int __b,
9651 vector unsigned int __c, int *__cc) {
9652 return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
9653 }
9654
9655 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
9656
9657 static inline __ATTRS_o_ai vector unsigned char
vec_cmpnrg_idx(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)9658 vec_cmpnrg_idx(vector unsigned char __a, vector unsigned char __b,
9659 vector unsigned char __c) {
9660 return __builtin_s390_vstrcb(__a, __b, __c, 8);
9661 }
9662
9663 static inline __ATTRS_o_ai vector unsigned short
vec_cmpnrg_idx(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)9664 vec_cmpnrg_idx(vector unsigned short __a, vector unsigned short __b,
9665 vector unsigned short __c) {
9666 return __builtin_s390_vstrch(__a, __b, __c, 8);
9667 }
9668
9669 static inline __ATTRS_o_ai vector unsigned int
vec_cmpnrg_idx(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)9670 vec_cmpnrg_idx(vector unsigned int __a, vector unsigned int __b,
9671 vector unsigned int __c) {
9672 return __builtin_s390_vstrcf(__a, __b, __c, 8);
9673 }
9674
9675 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
9676
9677 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)9678 vec_cmpnrg_idx_cc(vector unsigned char __a, vector unsigned char __b,
9679 vector unsigned char __c, int *__cc) {
9680 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
9681 }
9682
9683 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)9684 vec_cmpnrg_idx_cc(vector unsigned short __a, vector unsigned short __b,
9685 vector unsigned short __c, int *__cc) {
9686 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
9687 }
9688
9689 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)9690 vec_cmpnrg_idx_cc(vector unsigned int __a, vector unsigned int __b,
9691 vector unsigned int __c, int *__cc) {
9692 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
9693 }
9694
9695 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
9696
9697 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)9698 vec_cmpnrg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
9699 vector unsigned char __c) {
9700 return __builtin_s390_vstrczb(__a, __b, __c, 8);
9701 }
9702
9703 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)9704 vec_cmpnrg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
9705 vector unsigned short __c) {
9706 return __builtin_s390_vstrczh(__a, __b, __c, 8);
9707 }
9708
9709 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)9710 vec_cmpnrg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
9711 vector unsigned int __c) {
9712 return __builtin_s390_vstrczf(__a, __b, __c, 8);
9713 }
9714
9715 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
9716
9717 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)9718 vec_cmpnrg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
9719 vector unsigned char __c, int *__cc) {
9720 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
9721 }
9722
9723 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)9724 vec_cmpnrg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
9725 vector unsigned short __c, int *__cc) {
9726 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
9727 }
9728
9729 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)9730 vec_cmpnrg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
9731 vector unsigned int __c, int *__cc) {
9732 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
9733 }
9734
9735 /*-- vec_find_any_eq --------------------------------------------------------*/
9736
9737 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq(vector signed char __a,vector signed char __b)9738 vec_find_any_eq(vector signed char __a, vector signed char __b) {
9739 return (vector bool char)
9740 __builtin_s390_vfaeb((vector unsigned char)__a,
9741 (vector unsigned char)__b, 4);
9742 }
9743
9744 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq(vector bool char __a,vector bool char __b)9745 vec_find_any_eq(vector bool char __a, vector bool char __b) {
9746 return (vector bool char)
9747 __builtin_s390_vfaeb((vector unsigned char)__a,
9748 (vector unsigned char)__b, 4);
9749 }
9750
9751 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq(vector unsigned char __a,vector unsigned char __b)9752 vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) {
9753 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4);
9754 }
9755
9756 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq(vector signed short __a,vector signed short __b)9757 vec_find_any_eq(vector signed short __a, vector signed short __b) {
9758 return (vector bool short)
9759 __builtin_s390_vfaeh((vector unsigned short)__a,
9760 (vector unsigned short)__b, 4);
9761 }
9762
9763 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq(vector bool short __a,vector bool short __b)9764 vec_find_any_eq(vector bool short __a, vector bool short __b) {
9765 return (vector bool short)
9766 __builtin_s390_vfaeh((vector unsigned short)__a,
9767 (vector unsigned short)__b, 4);
9768 }
9769
9770 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq(vector unsigned short __a,vector unsigned short __b)9771 vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) {
9772 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4);
9773 }
9774
9775 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq(vector signed int __a,vector signed int __b)9776 vec_find_any_eq(vector signed int __a, vector signed int __b) {
9777 return (vector bool int)
9778 __builtin_s390_vfaef((vector unsigned int)__a,
9779 (vector unsigned int)__b, 4);
9780 }
9781
9782 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq(vector bool int __a,vector bool int __b)9783 vec_find_any_eq(vector bool int __a, vector bool int __b) {
9784 return (vector bool int)
9785 __builtin_s390_vfaef((vector unsigned int)__a,
9786 (vector unsigned int)__b, 4);
9787 }
9788
9789 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq(vector unsigned int __a,vector unsigned int __b)9790 vec_find_any_eq(vector unsigned int __a, vector unsigned int __b) {
9791 return (vector bool int)__builtin_s390_vfaef(__a, __b, 4);
9792 }
9793
9794 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
9795
9796 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq_cc(vector signed char __a,vector signed char __b,int * __cc)9797 vec_find_any_eq_cc(vector signed char __a, vector signed char __b, int *__cc) {
9798 return (vector bool char)
9799 __builtin_s390_vfaebs((vector unsigned char)__a,
9800 (vector unsigned char)__b, 4, __cc);
9801 }
9802
9803 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq_cc(vector bool char __a,vector bool char __b,int * __cc)9804 vec_find_any_eq_cc(vector bool char __a, vector bool char __b, int *__cc) {
9805 return (vector bool char)
9806 __builtin_s390_vfaebs((vector unsigned char)__a,
9807 (vector unsigned char)__b, 4, __cc);
9808 }
9809
9810 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)9811 vec_find_any_eq_cc(vector unsigned char __a, vector unsigned char __b,
9812 int *__cc) {
9813 return (vector bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
9814 }
9815
9816 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq_cc(vector signed short __a,vector signed short __b,int * __cc)9817 vec_find_any_eq_cc(vector signed short __a, vector signed short __b,
9818 int *__cc) {
9819 return (vector bool short)
9820 __builtin_s390_vfaehs((vector unsigned short)__a,
9821 (vector unsigned short)__b, 4, __cc);
9822 }
9823
9824 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq_cc(vector bool short __a,vector bool short __b,int * __cc)9825 vec_find_any_eq_cc(vector bool short __a, vector bool short __b, int *__cc) {
9826 return (vector bool short)
9827 __builtin_s390_vfaehs((vector unsigned short)__a,
9828 (vector unsigned short)__b, 4, __cc);
9829 }
9830
9831 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)9832 vec_find_any_eq_cc(vector unsigned short __a, vector unsigned short __b,
9833 int *__cc) {
9834 return (vector bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
9835 }
9836
9837 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq_cc(vector signed int __a,vector signed int __b,int * __cc)9838 vec_find_any_eq_cc(vector signed int __a, vector signed int __b, int *__cc) {
9839 return (vector bool int)
9840 __builtin_s390_vfaefs((vector unsigned int)__a,
9841 (vector unsigned int)__b, 4, __cc);
9842 }
9843
9844 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq_cc(vector bool int __a,vector bool int __b,int * __cc)9845 vec_find_any_eq_cc(vector bool int __a, vector bool int __b, int *__cc) {
9846 return (vector bool int)
9847 __builtin_s390_vfaefs((vector unsigned int)__a,
9848 (vector unsigned int)__b, 4, __cc);
9849 }
9850
9851 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)9852 vec_find_any_eq_cc(vector unsigned int __a, vector unsigned int __b,
9853 int *__cc) {
9854 return (vector bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
9855 }
9856
9857 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
9858
9859 static inline __ATTRS_o_ai vector signed char
vec_find_any_eq_idx(vector signed char __a,vector signed char __b)9860 vec_find_any_eq_idx(vector signed char __a, vector signed char __b) {
9861 return (vector signed char)
9862 __builtin_s390_vfaeb((vector unsigned char)__a,
9863 (vector unsigned char)__b, 0);
9864 }
9865
9866 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx(vector bool char __a,vector bool char __b)9867 vec_find_any_eq_idx(vector bool char __a, vector bool char __b) {
9868 return __builtin_s390_vfaeb((vector unsigned char)__a,
9869 (vector unsigned char)__b, 0);
9870 }
9871
9872 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx(vector unsigned char __a,vector unsigned char __b)9873 vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) {
9874 return __builtin_s390_vfaeb(__a, __b, 0);
9875 }
9876
9877 static inline __ATTRS_o_ai vector signed short
vec_find_any_eq_idx(vector signed short __a,vector signed short __b)9878 vec_find_any_eq_idx(vector signed short __a, vector signed short __b) {
9879 return (vector signed short)
9880 __builtin_s390_vfaeh((vector unsigned short)__a,
9881 (vector unsigned short)__b, 0);
9882 }
9883
9884 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx(vector bool short __a,vector bool short __b)9885 vec_find_any_eq_idx(vector bool short __a, vector bool short __b) {
9886 return __builtin_s390_vfaeh((vector unsigned short)__a,
9887 (vector unsigned short)__b, 0);
9888 }
9889
9890 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx(vector unsigned short __a,vector unsigned short __b)9891 vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) {
9892 return __builtin_s390_vfaeh(__a, __b, 0);
9893 }
9894
9895 static inline __ATTRS_o_ai vector signed int
vec_find_any_eq_idx(vector signed int __a,vector signed int __b)9896 vec_find_any_eq_idx(vector signed int __a, vector signed int __b) {
9897 return (vector signed int)
9898 __builtin_s390_vfaef((vector unsigned int)__a,
9899 (vector unsigned int)__b, 0);
9900 }
9901
9902 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx(vector bool int __a,vector bool int __b)9903 vec_find_any_eq_idx(vector bool int __a, vector bool int __b) {
9904 return __builtin_s390_vfaef((vector unsigned int)__a,
9905 (vector unsigned int)__b, 0);
9906 }
9907
9908 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx(vector unsigned int __a,vector unsigned int __b)9909 vec_find_any_eq_idx(vector unsigned int __a, vector unsigned int __b) {
9910 return __builtin_s390_vfaef(__a, __b, 0);
9911 }
9912
9913 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
9914
9915 static inline __ATTRS_o_ai vector signed char
vec_find_any_eq_idx_cc(vector signed char __a,vector signed char __b,int * __cc)9916 vec_find_any_eq_idx_cc(vector signed char __a, vector signed char __b,
9917 int *__cc) {
9918 return (vector signed char)
9919 __builtin_s390_vfaebs((vector unsigned char)__a,
9920 (vector unsigned char)__b, 0, __cc);
9921 }
9922
9923 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx_cc(vector bool char __a,vector bool char __b,int * __cc)9924 vec_find_any_eq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
9925 return __builtin_s390_vfaebs((vector unsigned char)__a,
9926 (vector unsigned char)__b, 0, __cc);
9927 }
9928
9929 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)9930 vec_find_any_eq_idx_cc(vector unsigned char __a, vector unsigned char __b,
9931 int *__cc) {
9932 return __builtin_s390_vfaebs(__a, __b, 0, __cc);
9933 }
9934
9935 static inline __ATTRS_o_ai vector signed short
vec_find_any_eq_idx_cc(vector signed short __a,vector signed short __b,int * __cc)9936 vec_find_any_eq_idx_cc(vector signed short __a, vector signed short __b,
9937 int *__cc) {
9938 return (vector signed short)
9939 __builtin_s390_vfaehs((vector unsigned short)__a,
9940 (vector unsigned short)__b, 0, __cc);
9941 }
9942
9943 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx_cc(vector bool short __a,vector bool short __b,int * __cc)9944 vec_find_any_eq_idx_cc(vector bool short __a, vector bool short __b,
9945 int *__cc) {
9946 return __builtin_s390_vfaehs((vector unsigned short)__a,
9947 (vector unsigned short)__b, 0, __cc);
9948 }
9949
9950 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)9951 vec_find_any_eq_idx_cc(vector unsigned short __a, vector unsigned short __b,
9952 int *__cc) {
9953 return __builtin_s390_vfaehs(__a, __b, 0, __cc);
9954 }
9955
9956 static inline __ATTRS_o_ai vector signed int
vec_find_any_eq_idx_cc(vector signed int __a,vector signed int __b,int * __cc)9957 vec_find_any_eq_idx_cc(vector signed int __a, vector signed int __b,
9958 int *__cc) {
9959 return (vector signed int)
9960 __builtin_s390_vfaefs((vector unsigned int)__a,
9961 (vector unsigned int)__b, 0, __cc);
9962 }
9963
9964 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx_cc(vector bool int __a,vector bool int __b,int * __cc)9965 vec_find_any_eq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
9966 return __builtin_s390_vfaefs((vector unsigned int)__a,
9967 (vector unsigned int)__b, 0, __cc);
9968 }
9969
9970 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)9971 vec_find_any_eq_idx_cc(vector unsigned int __a, vector unsigned int __b,
9972 int *__cc) {
9973 return __builtin_s390_vfaefs(__a, __b, 0, __cc);
9974 }
9975
9976 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
9977
9978 static inline __ATTRS_o_ai vector signed char
vec_find_any_eq_or_0_idx(vector signed char __a,vector signed char __b)9979 vec_find_any_eq_or_0_idx(vector signed char __a, vector signed char __b) {
9980 return (vector signed char)
9981 __builtin_s390_vfaezb((vector unsigned char)__a,
9982 (vector unsigned char)__b, 0);
9983 }
9984
9985 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_or_0_idx(vector bool char __a,vector bool char __b)9986 vec_find_any_eq_or_0_idx(vector bool char __a, vector bool char __b) {
9987 return __builtin_s390_vfaezb((vector unsigned char)__a,
9988 (vector unsigned char)__b, 0);
9989 }
9990
9991 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_or_0_idx(vector unsigned char __a,vector unsigned char __b)9992 vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
9993 return __builtin_s390_vfaezb(__a, __b, 0);
9994 }
9995
9996 static inline __ATTRS_o_ai vector signed short
vec_find_any_eq_or_0_idx(vector signed short __a,vector signed short __b)9997 vec_find_any_eq_or_0_idx(vector signed short __a, vector signed short __b) {
9998 return (vector signed short)
9999 __builtin_s390_vfaezh((vector unsigned short)__a,
10000 (vector unsigned short)__b, 0);
10001 }
10002
10003 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_or_0_idx(vector bool short __a,vector bool short __b)10004 vec_find_any_eq_or_0_idx(vector bool short __a, vector bool short __b) {
10005 return __builtin_s390_vfaezh((vector unsigned short)__a,
10006 (vector unsigned short)__b, 0);
10007 }
10008
10009 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_or_0_idx(vector unsigned short __a,vector unsigned short __b)10010 vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10011 return __builtin_s390_vfaezh(__a, __b, 0);
10012 }
10013
10014 static inline __ATTRS_o_ai vector signed int
vec_find_any_eq_or_0_idx(vector signed int __a,vector signed int __b)10015 vec_find_any_eq_or_0_idx(vector signed int __a, vector signed int __b) {
10016 return (vector signed int)
10017 __builtin_s390_vfaezf((vector unsigned int)__a,
10018 (vector unsigned int)__b, 0);
10019 }
10020
10021 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_or_0_idx(vector bool int __a,vector bool int __b)10022 vec_find_any_eq_or_0_idx(vector bool int __a, vector bool int __b) {
10023 return __builtin_s390_vfaezf((vector unsigned int)__a,
10024 (vector unsigned int)__b, 0);
10025 }
10026
10027 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_or_0_idx(vector unsigned int __a,vector unsigned int __b)10028 vec_find_any_eq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
10029 return __builtin_s390_vfaezf(__a, __b, 0);
10030 }
10031
10032 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
10033
10034 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)10035 vec_find_any_eq_or_0_idx_cc(vector signed char __a, vector signed char __b,
10036 int *__cc) {
10037 return (vector signed char)
10038 __builtin_s390_vfaezbs((vector unsigned char)__a,
10039 (vector unsigned char)__b, 0, __cc);
10040 }
10041
10042 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)10043 vec_find_any_eq_or_0_idx_cc(vector bool char __a, vector bool char __b,
10044 int *__cc) {
10045 return __builtin_s390_vfaezbs((vector unsigned char)__a,
10046 (vector unsigned char)__b, 0, __cc);
10047 }
10048
10049 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)10050 vec_find_any_eq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
10051 int *__cc) {
10052 return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
10053 }
10054
10055 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)10056 vec_find_any_eq_or_0_idx_cc(vector signed short __a, vector signed short __b,
10057 int *__cc) {
10058 return (vector signed short)
10059 __builtin_s390_vfaezhs((vector unsigned short)__a,
10060 (vector unsigned short)__b, 0, __cc);
10061 }
10062
10063 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)10064 vec_find_any_eq_or_0_idx_cc(vector bool short __a, vector bool short __b,
10065 int *__cc) {
10066 return __builtin_s390_vfaezhs((vector unsigned short)__a,
10067 (vector unsigned short)__b, 0, __cc);
10068 }
10069
10070 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)10071 vec_find_any_eq_or_0_idx_cc(vector unsigned short __a,
10072 vector unsigned short __b, int *__cc) {
10073 return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
10074 }
10075
10076 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)10077 vec_find_any_eq_or_0_idx_cc(vector signed int __a, vector signed int __b,
10078 int *__cc) {
10079 return (vector signed int)
10080 __builtin_s390_vfaezfs((vector unsigned int)__a,
10081 (vector unsigned int)__b, 0, __cc);
10082 }
10083
10084 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)10085 vec_find_any_eq_or_0_idx_cc(vector bool int __a, vector bool int __b,
10086 int *__cc) {
10087 return __builtin_s390_vfaezfs((vector unsigned int)__a,
10088 (vector unsigned int)__b, 0, __cc);
10089 }
10090
10091 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)10092 vec_find_any_eq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
10093 int *__cc) {
10094 return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
10095 }
10096
10097 /*-- vec_find_any_ne --------------------------------------------------------*/
10098
10099 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne(vector signed char __a,vector signed char __b)10100 vec_find_any_ne(vector signed char __a, vector signed char __b) {
10101 return (vector bool char)
10102 __builtin_s390_vfaeb((vector unsigned char)__a,
10103 (vector unsigned char)__b, 12);
10104 }
10105
10106 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne(vector bool char __a,vector bool char __b)10107 vec_find_any_ne(vector bool char __a, vector bool char __b) {
10108 return (vector bool char)
10109 __builtin_s390_vfaeb((vector unsigned char)__a,
10110 (vector unsigned char)__b, 12);
10111 }
10112
10113 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne(vector unsigned char __a,vector unsigned char __b)10114 vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) {
10115 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12);
10116 }
10117
10118 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne(vector signed short __a,vector signed short __b)10119 vec_find_any_ne(vector signed short __a, vector signed short __b) {
10120 return (vector bool short)
10121 __builtin_s390_vfaeh((vector unsigned short)__a,
10122 (vector unsigned short)__b, 12);
10123 }
10124
10125 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne(vector bool short __a,vector bool short __b)10126 vec_find_any_ne(vector bool short __a, vector bool short __b) {
10127 return (vector bool short)
10128 __builtin_s390_vfaeh((vector unsigned short)__a,
10129 (vector unsigned short)__b, 12);
10130 }
10131
10132 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne(vector unsigned short __a,vector unsigned short __b)10133 vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) {
10134 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12);
10135 }
10136
10137 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne(vector signed int __a,vector signed int __b)10138 vec_find_any_ne(vector signed int __a, vector signed int __b) {
10139 return (vector bool int)
10140 __builtin_s390_vfaef((vector unsigned int)__a,
10141 (vector unsigned int)__b, 12);
10142 }
10143
10144 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne(vector bool int __a,vector bool int __b)10145 vec_find_any_ne(vector bool int __a, vector bool int __b) {
10146 return (vector bool int)
10147 __builtin_s390_vfaef((vector unsigned int)__a,
10148 (vector unsigned int)__b, 12);
10149 }
10150
10151 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne(vector unsigned int __a,vector unsigned int __b)10152 vec_find_any_ne(vector unsigned int __a, vector unsigned int __b) {
10153 return (vector bool int)__builtin_s390_vfaef(__a, __b, 12);
10154 }
10155
10156 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
10157
10158 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne_cc(vector signed char __a,vector signed char __b,int * __cc)10159 vec_find_any_ne_cc(vector signed char __a, vector signed char __b, int *__cc) {
10160 return (vector bool char)
10161 __builtin_s390_vfaebs((vector unsigned char)__a,
10162 (vector unsigned char)__b, 12, __cc);
10163 }
10164
10165 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne_cc(vector bool char __a,vector bool char __b,int * __cc)10166 vec_find_any_ne_cc(vector bool char __a, vector bool char __b, int *__cc) {
10167 return (vector bool char)
10168 __builtin_s390_vfaebs((vector unsigned char)__a,
10169 (vector unsigned char)__b, 12, __cc);
10170 }
10171
10172 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)10173 vec_find_any_ne_cc(vector unsigned char __a, vector unsigned char __b,
10174 int *__cc) {
10175 return (vector bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
10176 }
10177
10178 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne_cc(vector signed short __a,vector signed short __b,int * __cc)10179 vec_find_any_ne_cc(vector signed short __a, vector signed short __b,
10180 int *__cc) {
10181 return (vector bool short)
10182 __builtin_s390_vfaehs((vector unsigned short)__a,
10183 (vector unsigned short)__b, 12, __cc);
10184 }
10185
10186 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne_cc(vector bool short __a,vector bool short __b,int * __cc)10187 vec_find_any_ne_cc(vector bool short __a, vector bool short __b, int *__cc) {
10188 return (vector bool short)
10189 __builtin_s390_vfaehs((vector unsigned short)__a,
10190 (vector unsigned short)__b, 12, __cc);
10191 }
10192
10193 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)10194 vec_find_any_ne_cc(vector unsigned short __a, vector unsigned short __b,
10195 int *__cc) {
10196 return (vector bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
10197 }
10198
10199 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne_cc(vector signed int __a,vector signed int __b,int * __cc)10200 vec_find_any_ne_cc(vector signed int __a, vector signed int __b, int *__cc) {
10201 return (vector bool int)
10202 __builtin_s390_vfaefs((vector unsigned int)__a,
10203 (vector unsigned int)__b, 12, __cc);
10204 }
10205
10206 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne_cc(vector bool int __a,vector bool int __b,int * __cc)10207 vec_find_any_ne_cc(vector bool int __a, vector bool int __b, int *__cc) {
10208 return (vector bool int)
10209 __builtin_s390_vfaefs((vector unsigned int)__a,
10210 (vector unsigned int)__b, 12, __cc);
10211 }
10212
10213 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)10214 vec_find_any_ne_cc(vector unsigned int __a, vector unsigned int __b,
10215 int *__cc) {
10216 return (vector bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
10217 }
10218
10219 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
10220
10221 static inline __ATTRS_o_ai vector signed char
vec_find_any_ne_idx(vector signed char __a,vector signed char __b)10222 vec_find_any_ne_idx(vector signed char __a, vector signed char __b) {
10223 return (vector signed char)
10224 __builtin_s390_vfaeb((vector unsigned char)__a,
10225 (vector unsigned char)__b, 8);
10226 }
10227
10228 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx(vector bool char __a,vector bool char __b)10229 vec_find_any_ne_idx(vector bool char __a, vector bool char __b) {
10230 return __builtin_s390_vfaeb((vector unsigned char)__a,
10231 (vector unsigned char)__b, 8);
10232 }
10233
10234 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx(vector unsigned char __a,vector unsigned char __b)10235 vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) {
10236 return __builtin_s390_vfaeb(__a, __b, 8);
10237 }
10238
10239 static inline __ATTRS_o_ai vector signed short
vec_find_any_ne_idx(vector signed short __a,vector signed short __b)10240 vec_find_any_ne_idx(vector signed short __a, vector signed short __b) {
10241 return (vector signed short)
10242 __builtin_s390_vfaeh((vector unsigned short)__a,
10243 (vector unsigned short)__b, 8);
10244 }
10245
10246 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx(vector bool short __a,vector bool short __b)10247 vec_find_any_ne_idx(vector bool short __a, vector bool short __b) {
10248 return __builtin_s390_vfaeh((vector unsigned short)__a,
10249 (vector unsigned short)__b, 8);
10250 }
10251
10252 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx(vector unsigned short __a,vector unsigned short __b)10253 vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) {
10254 return __builtin_s390_vfaeh(__a, __b, 8);
10255 }
10256
10257 static inline __ATTRS_o_ai vector signed int
vec_find_any_ne_idx(vector signed int __a,vector signed int __b)10258 vec_find_any_ne_idx(vector signed int __a, vector signed int __b) {
10259 return (vector signed int)
10260 __builtin_s390_vfaef((vector unsigned int)__a,
10261 (vector unsigned int)__b, 8);
10262 }
10263
10264 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx(vector bool int __a,vector bool int __b)10265 vec_find_any_ne_idx(vector bool int __a, vector bool int __b) {
10266 return __builtin_s390_vfaef((vector unsigned int)__a,
10267 (vector unsigned int)__b, 8);
10268 }
10269
10270 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx(vector unsigned int __a,vector unsigned int __b)10271 vec_find_any_ne_idx(vector unsigned int __a, vector unsigned int __b) {
10272 return __builtin_s390_vfaef(__a, __b, 8);
10273 }
10274
10275 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
10276
10277 static inline __ATTRS_o_ai vector signed char
vec_find_any_ne_idx_cc(vector signed char __a,vector signed char __b,int * __cc)10278 vec_find_any_ne_idx_cc(vector signed char __a, vector signed char __b,
10279 int *__cc) {
10280 return (vector signed char)
10281 __builtin_s390_vfaebs((vector unsigned char)__a,
10282 (vector unsigned char)__b, 8, __cc);
10283 }
10284
10285 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx_cc(vector bool char __a,vector bool char __b,int * __cc)10286 vec_find_any_ne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
10287 return __builtin_s390_vfaebs((vector unsigned char)__a,
10288 (vector unsigned char)__b, 8, __cc);
10289 }
10290
10291 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)10292 vec_find_any_ne_idx_cc(vector unsigned char __a, vector unsigned char __b,
10293 int *__cc) {
10294 return __builtin_s390_vfaebs(__a, __b, 8, __cc);
10295 }
10296
10297 static inline __ATTRS_o_ai vector signed short
vec_find_any_ne_idx_cc(vector signed short __a,vector signed short __b,int * __cc)10298 vec_find_any_ne_idx_cc(vector signed short __a, vector signed short __b,
10299 int *__cc) {
10300 return (vector signed short)
10301 __builtin_s390_vfaehs((vector unsigned short)__a,
10302 (vector unsigned short)__b, 8, __cc);
10303 }
10304
10305 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx_cc(vector bool short __a,vector bool short __b,int * __cc)10306 vec_find_any_ne_idx_cc(vector bool short __a, vector bool short __b,
10307 int *__cc) {
10308 return __builtin_s390_vfaehs((vector unsigned short)__a,
10309 (vector unsigned short)__b, 8, __cc);
10310 }
10311
10312 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)10313 vec_find_any_ne_idx_cc(vector unsigned short __a, vector unsigned short __b,
10314 int *__cc) {
10315 return __builtin_s390_vfaehs(__a, __b, 8, __cc);
10316 }
10317
10318 static inline __ATTRS_o_ai vector signed int
vec_find_any_ne_idx_cc(vector signed int __a,vector signed int __b,int * __cc)10319 vec_find_any_ne_idx_cc(vector signed int __a, vector signed int __b,
10320 int *__cc) {
10321 return (vector signed int)
10322 __builtin_s390_vfaefs((vector unsigned int)__a,
10323 (vector unsigned int)__b, 8, __cc);
10324 }
10325
10326 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx_cc(vector bool int __a,vector bool int __b,int * __cc)10327 vec_find_any_ne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
10328 return __builtin_s390_vfaefs((vector unsigned int)__a,
10329 (vector unsigned int)__b, 8, __cc);
10330 }
10331
10332 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)10333 vec_find_any_ne_idx_cc(vector unsigned int __a, vector unsigned int __b,
10334 int *__cc) {
10335 return __builtin_s390_vfaefs(__a, __b, 8, __cc);
10336 }
10337
10338 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
10339
10340 static inline __ATTRS_o_ai vector signed char
vec_find_any_ne_or_0_idx(vector signed char __a,vector signed char __b)10341 vec_find_any_ne_or_0_idx(vector signed char __a, vector signed char __b) {
10342 return (vector signed char)
10343 __builtin_s390_vfaezb((vector unsigned char)__a,
10344 (vector unsigned char)__b, 8);
10345 }
10346
10347 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_or_0_idx(vector bool char __a,vector bool char __b)10348 vec_find_any_ne_or_0_idx(vector bool char __a, vector bool char __b) {
10349 return __builtin_s390_vfaezb((vector unsigned char)__a,
10350 (vector unsigned char)__b, 8);
10351 }
10352
10353 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_or_0_idx(vector unsigned char __a,vector unsigned char __b)10354 vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
10355 return __builtin_s390_vfaezb(__a, __b, 8);
10356 }
10357
10358 static inline __ATTRS_o_ai vector signed short
vec_find_any_ne_or_0_idx(vector signed short __a,vector signed short __b)10359 vec_find_any_ne_or_0_idx(vector signed short __a, vector signed short __b) {
10360 return (vector signed short)
10361 __builtin_s390_vfaezh((vector unsigned short)__a,
10362 (vector unsigned short)__b, 8);
10363 }
10364
10365 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_or_0_idx(vector bool short __a,vector bool short __b)10366 vec_find_any_ne_or_0_idx(vector bool short __a, vector bool short __b) {
10367 return __builtin_s390_vfaezh((vector unsigned short)__a,
10368 (vector unsigned short)__b, 8);
10369 }
10370
10371 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_or_0_idx(vector unsigned short __a,vector unsigned short __b)10372 vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
10373 return __builtin_s390_vfaezh(__a, __b, 8);
10374 }
10375
10376 static inline __ATTRS_o_ai vector signed int
vec_find_any_ne_or_0_idx(vector signed int __a,vector signed int __b)10377 vec_find_any_ne_or_0_idx(vector signed int __a, vector signed int __b) {
10378 return (vector signed int)
10379 __builtin_s390_vfaezf((vector unsigned int)__a,
10380 (vector unsigned int)__b, 8);
10381 }
10382
10383 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_or_0_idx(vector bool int __a,vector bool int __b)10384 vec_find_any_ne_or_0_idx(vector bool int __a, vector bool int __b) {
10385 return __builtin_s390_vfaezf((vector unsigned int)__a,
10386 (vector unsigned int)__b, 8);
10387 }
10388
10389 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_or_0_idx(vector unsigned int __a,vector unsigned int __b)10390 vec_find_any_ne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
10391 return __builtin_s390_vfaezf(__a, __b, 8);
10392 }
10393
10394 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
10395
10396 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)10397 vec_find_any_ne_or_0_idx_cc(vector signed char __a, vector signed char __b,
10398 int *__cc) {
10399 return (vector signed char)
10400 __builtin_s390_vfaezbs((vector unsigned char)__a,
10401 (vector unsigned char)__b, 8, __cc);
10402 }
10403
10404 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)10405 vec_find_any_ne_or_0_idx_cc(vector bool char __a, vector bool char __b,
10406 int *__cc) {
10407 return __builtin_s390_vfaezbs((vector unsigned char)__a,
10408 (vector unsigned char)__b, 8, __cc);
10409 }
10410
10411 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)10412 vec_find_any_ne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
10413 int *__cc) {
10414 return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
10415 }
10416
10417 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)10418 vec_find_any_ne_or_0_idx_cc(vector signed short __a, vector signed short __b,
10419 int *__cc) {
10420 return (vector signed short)
10421 __builtin_s390_vfaezhs((vector unsigned short)__a,
10422 (vector unsigned short)__b, 8, __cc);
10423 }
10424
10425 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)10426 vec_find_any_ne_or_0_idx_cc(vector bool short __a, vector bool short __b,
10427 int *__cc) {
10428 return __builtin_s390_vfaezhs((vector unsigned short)__a,
10429 (vector unsigned short)__b, 8, __cc);
10430 }
10431
10432 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)10433 vec_find_any_ne_or_0_idx_cc(vector unsigned short __a,
10434 vector unsigned short __b, int *__cc) {
10435 return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
10436 }
10437
10438 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)10439 vec_find_any_ne_or_0_idx_cc(vector signed int __a, vector signed int __b,
10440 int *__cc) {
10441 return (vector signed int)
10442 __builtin_s390_vfaezfs((vector unsigned int)__a,
10443 (vector unsigned int)__b, 8, __cc);
10444 }
10445
10446 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)10447 vec_find_any_ne_or_0_idx_cc(vector bool int __a, vector bool int __b,
10448 int *__cc) {
10449 return __builtin_s390_vfaezfs((vector unsigned int)__a,
10450 (vector unsigned int)__b, 8, __cc);
10451 }
10452
10453 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)10454 vec_find_any_ne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
10455 int *__cc) {
10456 return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
10457 }
10458
10459 #undef __constant_pow2_range
10460 #undef __constant_range
10461 #undef __constant
10462 #undef __ATTRS_o
10463 #undef __ATTRS_o_ai
10464 #undef __ATTRS_ai
10465
10466 #else
10467
10468 #error "Use -fzvector to enable vector extensions"
10469
10470 #endif
10471