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 static inline __ATTRS_o_ai double
vec_extract(vector double __vec,int __index)120 vec_extract(vector double __vec, int __index) {
121 return __vec[__index & 1];
122 }
123
124 /*-- vec_insert -------------------------------------------------------------*/
125
126 static inline __ATTRS_o_ai vector signed char
vec_insert(signed char __scalar,vector signed char __vec,int __index)127 vec_insert(signed char __scalar, vector signed char __vec, int __index) {
128 __vec[__index & 15] = __scalar;
129 return __vec;
130 }
131
132 static inline __ATTRS_o_ai vector unsigned char
vec_insert(unsigned char __scalar,vector bool char __vec,int __index)133 vec_insert(unsigned char __scalar, vector bool char __vec, int __index) {
134 vector unsigned char __newvec = (vector unsigned char)__vec;
135 __newvec[__index & 15] = (unsigned char)__scalar;
136 return __newvec;
137 }
138
139 static inline __ATTRS_o_ai vector unsigned char
vec_insert(unsigned char __scalar,vector unsigned char __vec,int __index)140 vec_insert(unsigned char __scalar, vector unsigned char __vec, int __index) {
141 __vec[__index & 15] = __scalar;
142 return __vec;
143 }
144
145 static inline __ATTRS_o_ai vector signed short
vec_insert(signed short __scalar,vector signed short __vec,int __index)146 vec_insert(signed short __scalar, vector signed short __vec, int __index) {
147 __vec[__index & 7] = __scalar;
148 return __vec;
149 }
150
151 static inline __ATTRS_o_ai vector unsigned short
vec_insert(unsigned short __scalar,vector bool short __vec,int __index)152 vec_insert(unsigned short __scalar, vector bool short __vec, int __index) {
153 vector unsigned short __newvec = (vector unsigned short)__vec;
154 __newvec[__index & 7] = (unsigned short)__scalar;
155 return __newvec;
156 }
157
158 static inline __ATTRS_o_ai vector unsigned short
vec_insert(unsigned short __scalar,vector unsigned short __vec,int __index)159 vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) {
160 __vec[__index & 7] = __scalar;
161 return __vec;
162 }
163
164 static inline __ATTRS_o_ai vector signed int
vec_insert(signed int __scalar,vector signed int __vec,int __index)165 vec_insert(signed int __scalar, vector signed int __vec, int __index) {
166 __vec[__index & 3] = __scalar;
167 return __vec;
168 }
169
170 static inline __ATTRS_o_ai vector unsigned int
vec_insert(unsigned int __scalar,vector bool int __vec,int __index)171 vec_insert(unsigned int __scalar, vector bool int __vec, int __index) {
172 vector unsigned int __newvec = (vector unsigned int)__vec;
173 __newvec[__index & 3] = __scalar;
174 return __newvec;
175 }
176
177 static inline __ATTRS_o_ai vector unsigned int
vec_insert(unsigned int __scalar,vector unsigned int __vec,int __index)178 vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) {
179 __vec[__index & 3] = __scalar;
180 return __vec;
181 }
182
183 static inline __ATTRS_o_ai vector signed long long
vec_insert(signed long long __scalar,vector signed long long __vec,int __index)184 vec_insert(signed long long __scalar, vector signed long long __vec,
185 int __index) {
186 __vec[__index & 1] = __scalar;
187 return __vec;
188 }
189
190 static inline __ATTRS_o_ai vector unsigned long long
vec_insert(unsigned long long __scalar,vector bool long long __vec,int __index)191 vec_insert(unsigned long long __scalar, vector bool long long __vec,
192 int __index) {
193 vector unsigned long long __newvec = (vector unsigned long long)__vec;
194 __newvec[__index & 1] = __scalar;
195 return __newvec;
196 }
197
198 static inline __ATTRS_o_ai vector unsigned long long
vec_insert(unsigned long long __scalar,vector unsigned long long __vec,int __index)199 vec_insert(unsigned long long __scalar, vector unsigned long long __vec,
200 int __index) {
201 __vec[__index & 1] = __scalar;
202 return __vec;
203 }
204
205 static inline __ATTRS_o_ai vector double
vec_insert(double __scalar,vector double __vec,int __index)206 vec_insert(double __scalar, vector double __vec, int __index) {
207 __vec[__index & 1] = __scalar;
208 return __vec;
209 }
210
211 /*-- vec_promote ------------------------------------------------------------*/
212
213 static inline __ATTRS_o_ai vector signed char
vec_promote(signed char __scalar,int __index)214 vec_promote(signed char __scalar, int __index) {
215 const vector signed char __zero = (vector signed char)0;
216 vector signed char __vec = __builtin_shufflevector(__zero, __zero,
217 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
218 __vec[__index & 15] = __scalar;
219 return __vec;
220 }
221
222 static inline __ATTRS_o_ai vector unsigned char
vec_promote(unsigned char __scalar,int __index)223 vec_promote(unsigned char __scalar, int __index) {
224 const vector unsigned char __zero = (vector unsigned char)0;
225 vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,
226 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
227 __vec[__index & 15] = __scalar;
228 return __vec;
229 }
230
231 static inline __ATTRS_o_ai vector signed short
vec_promote(signed short __scalar,int __index)232 vec_promote(signed short __scalar, int __index) {
233 const vector signed short __zero = (vector signed short)0;
234 vector signed short __vec = __builtin_shufflevector(__zero, __zero,
235 -1, -1, -1, -1, -1, -1, -1, -1);
236 __vec[__index & 7] = __scalar;
237 return __vec;
238 }
239
240 static inline __ATTRS_o_ai vector unsigned short
vec_promote(unsigned short __scalar,int __index)241 vec_promote(unsigned short __scalar, int __index) {
242 const vector unsigned short __zero = (vector unsigned short)0;
243 vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,
244 -1, -1, -1, -1, -1, -1, -1, -1);
245 __vec[__index & 7] = __scalar;
246 return __vec;
247 }
248
249 static inline __ATTRS_o_ai vector signed int
vec_promote(signed int __scalar,int __index)250 vec_promote(signed int __scalar, int __index) {
251 const vector signed int __zero = (vector signed int)0;
252 vector signed int __vec = __builtin_shufflevector(__zero, __zero,
253 -1, -1, -1, -1);
254 __vec[__index & 3] = __scalar;
255 return __vec;
256 }
257
258 static inline __ATTRS_o_ai vector unsigned int
vec_promote(unsigned int __scalar,int __index)259 vec_promote(unsigned int __scalar, int __index) {
260 const vector unsigned int __zero = (vector unsigned int)0;
261 vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,
262 -1, -1, -1, -1);
263 __vec[__index & 3] = __scalar;
264 return __vec;
265 }
266
267 static inline __ATTRS_o_ai vector signed long long
vec_promote(signed long long __scalar,int __index)268 vec_promote(signed long long __scalar, int __index) {
269 const vector signed long long __zero = (vector signed long long)0;
270 vector signed long long __vec = __builtin_shufflevector(__zero, __zero,
271 -1, -1);
272 __vec[__index & 1] = __scalar;
273 return __vec;
274 }
275
276 static inline __ATTRS_o_ai vector unsigned long long
vec_promote(unsigned long long __scalar,int __index)277 vec_promote(unsigned long long __scalar, int __index) {
278 const vector unsigned long long __zero = (vector unsigned long long)0;
279 vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,
280 -1, -1);
281 __vec[__index & 1] = __scalar;
282 return __vec;
283 }
284
285 static inline __ATTRS_o_ai vector double
vec_promote(double __scalar,int __index)286 vec_promote(double __scalar, int __index) {
287 const vector double __zero = (vector double)0;
288 vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);
289 __vec[__index & 1] = __scalar;
290 return __vec;
291 }
292
293 /*-- vec_insert_and_zero ----------------------------------------------------*/
294
295 static inline __ATTRS_o_ai vector signed char
vec_insert_and_zero(const signed char * __ptr)296 vec_insert_and_zero(const signed char *__ptr) {
297 vector signed char __vec = (vector signed char)0;
298 __vec[7] = *__ptr;
299 return __vec;
300 }
301
302 static inline __ATTRS_o_ai vector unsigned char
vec_insert_and_zero(const unsigned char * __ptr)303 vec_insert_and_zero(const unsigned char *__ptr) {
304 vector unsigned char __vec = (vector unsigned char)0;
305 __vec[7] = *__ptr;
306 return __vec;
307 }
308
309 static inline __ATTRS_o_ai vector signed short
vec_insert_and_zero(const signed short * __ptr)310 vec_insert_and_zero(const signed short *__ptr) {
311 vector signed short __vec = (vector signed short)0;
312 __vec[3] = *__ptr;
313 return __vec;
314 }
315
316 static inline __ATTRS_o_ai vector unsigned short
vec_insert_and_zero(const unsigned short * __ptr)317 vec_insert_and_zero(const unsigned short *__ptr) {
318 vector unsigned short __vec = (vector unsigned short)0;
319 __vec[3] = *__ptr;
320 return __vec;
321 }
322
323 static inline __ATTRS_o_ai vector signed int
vec_insert_and_zero(const signed int * __ptr)324 vec_insert_and_zero(const signed int *__ptr) {
325 vector signed int __vec = (vector signed int)0;
326 __vec[1] = *__ptr;
327 return __vec;
328 }
329
330 static inline __ATTRS_o_ai vector unsigned int
vec_insert_and_zero(const unsigned int * __ptr)331 vec_insert_and_zero(const unsigned int *__ptr) {
332 vector unsigned int __vec = (vector unsigned int)0;
333 __vec[1] = *__ptr;
334 return __vec;
335 }
336
337 static inline __ATTRS_o_ai vector signed long long
vec_insert_and_zero(const signed long long * __ptr)338 vec_insert_and_zero(const signed long long *__ptr) {
339 vector signed long long __vec = (vector signed long long)0;
340 __vec[0] = *__ptr;
341 return __vec;
342 }
343
344 static inline __ATTRS_o_ai vector unsigned long long
vec_insert_and_zero(const unsigned long long * __ptr)345 vec_insert_and_zero(const unsigned long long *__ptr) {
346 vector unsigned long long __vec = (vector unsigned long long)0;
347 __vec[0] = *__ptr;
348 return __vec;
349 }
350
351 static inline __ATTRS_o_ai vector double
vec_insert_and_zero(const double * __ptr)352 vec_insert_and_zero(const double *__ptr) {
353 vector double __vec = (vector double)0;
354 __vec[0] = *__ptr;
355 return __vec;
356 }
357
358 /*-- vec_perm ---------------------------------------------------------------*/
359
360 static inline __ATTRS_o_ai vector signed char
vec_perm(vector signed char __a,vector signed char __b,vector unsigned char __c)361 vec_perm(vector signed char __a, vector signed char __b,
362 vector unsigned char __c) {
363 return (vector signed char)__builtin_s390_vperm(
364 (vector unsigned char)__a, (vector unsigned char)__b, __c);
365 }
366
367 static inline __ATTRS_o_ai vector unsigned char
vec_perm(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)368 vec_perm(vector unsigned char __a, vector unsigned char __b,
369 vector unsigned char __c) {
370 return (vector unsigned char)__builtin_s390_vperm(
371 (vector unsigned char)__a, (vector unsigned char)__b, __c);
372 }
373
374 static inline __ATTRS_o_ai vector bool char
vec_perm(vector bool char __a,vector bool char __b,vector unsigned char __c)375 vec_perm(vector bool char __a, vector bool char __b,
376 vector unsigned char __c) {
377 return (vector bool char)__builtin_s390_vperm(
378 (vector unsigned char)__a, (vector unsigned char)__b, __c);
379 }
380
381 static inline __ATTRS_o_ai vector signed short
vec_perm(vector signed short __a,vector signed short __b,vector unsigned char __c)382 vec_perm(vector signed short __a, vector signed short __b,
383 vector unsigned char __c) {
384 return (vector signed short)__builtin_s390_vperm(
385 (vector unsigned char)__a, (vector unsigned char)__b, __c);
386 }
387
388 static inline __ATTRS_o_ai vector unsigned short
vec_perm(vector unsigned short __a,vector unsigned short __b,vector unsigned char __c)389 vec_perm(vector unsigned short __a, vector unsigned short __b,
390 vector unsigned char __c) {
391 return (vector unsigned short)__builtin_s390_vperm(
392 (vector unsigned char)__a, (vector unsigned char)__b, __c);
393 }
394
395 static inline __ATTRS_o_ai vector bool short
vec_perm(vector bool short __a,vector bool short __b,vector unsigned char __c)396 vec_perm(vector bool short __a, vector bool short __b,
397 vector unsigned char __c) {
398 return (vector bool short)__builtin_s390_vperm(
399 (vector unsigned char)__a, (vector unsigned char)__b, __c);
400 }
401
402 static inline __ATTRS_o_ai vector signed int
vec_perm(vector signed int __a,vector signed int __b,vector unsigned char __c)403 vec_perm(vector signed int __a, vector signed int __b,
404 vector unsigned char __c) {
405 return (vector signed int)__builtin_s390_vperm(
406 (vector unsigned char)__a, (vector unsigned char)__b, __c);
407 }
408
409 static inline __ATTRS_o_ai vector unsigned int
vec_perm(vector unsigned int __a,vector unsigned int __b,vector unsigned char __c)410 vec_perm(vector unsigned int __a, vector unsigned int __b,
411 vector unsigned char __c) {
412 return (vector unsigned int)__builtin_s390_vperm(
413 (vector unsigned char)__a, (vector unsigned char)__b, __c);
414 }
415
416 static inline __ATTRS_o_ai vector bool int
vec_perm(vector bool int __a,vector bool int __b,vector unsigned char __c)417 vec_perm(vector bool int __a, vector bool int __b,
418 vector unsigned char __c) {
419 return (vector bool int)__builtin_s390_vperm(
420 (vector unsigned char)__a, (vector unsigned char)__b, __c);
421 }
422
423 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)424 vec_perm(vector signed long long __a, vector signed long long __b,
425 vector unsigned char __c) {
426 return (vector signed long long)__builtin_s390_vperm(
427 (vector unsigned char)__a, (vector unsigned char)__b, __c);
428 }
429
430 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)431 vec_perm(vector unsigned long long __a, vector unsigned long long __b,
432 vector unsigned char __c) {
433 return (vector unsigned long long)__builtin_s390_vperm(
434 (vector unsigned char)__a, (vector unsigned char)__b, __c);
435 }
436
437 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)438 vec_perm(vector bool long long __a, vector bool long long __b,
439 vector unsigned char __c) {
440 return (vector bool long long)__builtin_s390_vperm(
441 (vector unsigned char)__a, (vector unsigned char)__b, __c);
442 }
443
444 static inline __ATTRS_o_ai vector double
vec_perm(vector double __a,vector double __b,vector unsigned char __c)445 vec_perm(vector double __a, vector double __b,
446 vector unsigned char __c) {
447 return (vector double)__builtin_s390_vperm(
448 (vector unsigned char)__a, (vector unsigned char)__b, __c);
449 }
450
451 /*-- vec_permi --------------------------------------------------------------*/
452
453 extern __ATTRS_o vector signed long long
454 vec_permi(vector signed long long __a, vector signed long long __b, int __c)
455 __constant_range(__c, 0, 3);
456
457 extern __ATTRS_o vector unsigned long long
458 vec_permi(vector unsigned long long __a, vector unsigned long long __b, int __c)
459 __constant_range(__c, 0, 3);
460
461 extern __ATTRS_o vector bool long long
462 vec_permi(vector bool long long __a, vector bool long long __b, int __c)
463 __constant_range(__c, 0, 3);
464
465 extern __ATTRS_o vector double
466 vec_permi(vector double __a, vector double __b, int __c)
467 __constant_range(__c, 0, 3);
468
469 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \
470 __builtin_s390_vpdi((vector unsigned long long)(X), \
471 (vector unsigned long long)(Y), \
472 (((Z) & 2) << 1) | ((Z) & 1)))
473
474 /*-- vec_sel ----------------------------------------------------------------*/
475
476 static inline __ATTRS_o_ai vector signed char
vec_sel(vector signed char __a,vector signed char __b,vector unsigned char __c)477 vec_sel(vector signed char __a, vector signed char __b,
478 vector unsigned char __c) {
479 return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
480 }
481
482 static inline __ATTRS_o_ai vector signed char
vec_sel(vector signed char __a,vector signed char __b,vector bool char __c)483 vec_sel(vector signed char __a, vector signed char __b, vector bool char __c) {
484 return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a);
485 }
486
487 static inline __ATTRS_o_ai vector bool char
vec_sel(vector bool char __a,vector bool char __b,vector unsigned char __c)488 vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) {
489 return ((vector bool char)__c & __b) | (~(vector bool char)__c & __a);
490 }
491
492 static inline __ATTRS_o_ai vector bool char
vec_sel(vector bool char __a,vector bool char __b,vector bool char __c)493 vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) {
494 return (__c & __b) | (~__c & __a);
495 }
496
497 static inline __ATTRS_o_ai vector unsigned char
vec_sel(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)498 vec_sel(vector unsigned char __a, vector unsigned char __b,
499 vector unsigned char __c) {
500 return (__c & __b) | (~__c & __a);
501 }
502
503 static inline __ATTRS_o_ai vector unsigned char
vec_sel(vector unsigned char __a,vector unsigned char __b,vector bool char __c)504 vec_sel(vector unsigned char __a, vector unsigned char __b,
505 vector bool char __c) {
506 return ((vector unsigned char)__c & __b) | (~(vector unsigned char)__c & __a);
507 }
508
509 static inline __ATTRS_o_ai vector signed short
vec_sel(vector signed short __a,vector signed short __b,vector unsigned short __c)510 vec_sel(vector signed short __a, vector signed short __b,
511 vector unsigned short __c) {
512 return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
513 }
514
515 static inline __ATTRS_o_ai vector signed short
vec_sel(vector signed short __a,vector signed short __b,vector bool short __c)516 vec_sel(vector signed short __a, vector signed short __b,
517 vector bool short __c) {
518 return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a);
519 }
520
521 static inline __ATTRS_o_ai vector bool short
vec_sel(vector bool short __a,vector bool short __b,vector unsigned short __c)522 vec_sel(vector bool short __a, vector bool short __b,
523 vector unsigned short __c) {
524 return ((vector bool short)__c & __b) | (~(vector bool short)__c & __a);
525 }
526
527 static inline __ATTRS_o_ai vector bool short
vec_sel(vector bool short __a,vector bool short __b,vector bool short __c)528 vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) {
529 return (__c & __b) | (~__c & __a);
530 }
531
532 static inline __ATTRS_o_ai vector unsigned short
vec_sel(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)533 vec_sel(vector unsigned short __a, vector unsigned short __b,
534 vector unsigned short __c) {
535 return (__c & __b) | (~__c & __a);
536 }
537
538 static inline __ATTRS_o_ai vector unsigned short
vec_sel(vector unsigned short __a,vector unsigned short __b,vector bool short __c)539 vec_sel(vector unsigned short __a, vector unsigned short __b,
540 vector bool short __c) {
541 return (((vector unsigned short)__c & __b) |
542 (~(vector unsigned short)__c & __a));
543 }
544
545 static inline __ATTRS_o_ai vector signed int
vec_sel(vector signed int __a,vector signed int __b,vector unsigned int __c)546 vec_sel(vector signed int __a, vector signed int __b,
547 vector unsigned int __c) {
548 return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
549 }
550
551 static inline __ATTRS_o_ai vector signed int
vec_sel(vector signed int __a,vector signed int __b,vector bool int __c)552 vec_sel(vector signed int __a, vector signed int __b, vector bool int __c) {
553 return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a);
554 }
555
556 static inline __ATTRS_o_ai vector bool int
vec_sel(vector bool int __a,vector bool int __b,vector unsigned int __c)557 vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) {
558 return ((vector bool int)__c & __b) | (~(vector bool int)__c & __a);
559 }
560
561 static inline __ATTRS_o_ai vector bool int
vec_sel(vector bool int __a,vector bool int __b,vector bool int __c)562 vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) {
563 return (__c & __b) | (~__c & __a);
564 }
565
566 static inline __ATTRS_o_ai vector unsigned int
vec_sel(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)567 vec_sel(vector unsigned int __a, vector unsigned int __b,
568 vector unsigned int __c) {
569 return (__c & __b) | (~__c & __a);
570 }
571
572 static inline __ATTRS_o_ai vector unsigned int
vec_sel(vector unsigned int __a,vector unsigned int __b,vector bool int __c)573 vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) {
574 return ((vector unsigned int)__c & __b) | (~(vector unsigned int)__c & __a);
575 }
576
577 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)578 vec_sel(vector signed long long __a, vector signed long long __b,
579 vector unsigned long long __c) {
580 return (((vector signed long long)__c & __b) |
581 (~(vector signed long long)__c & __a));
582 }
583
584 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)585 vec_sel(vector signed long long __a, vector signed long long __b,
586 vector bool long long __c) {
587 return (((vector signed long long)__c & __b) |
588 (~(vector signed long long)__c & __a));
589 }
590
591 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)592 vec_sel(vector bool long long __a, vector bool long long __b,
593 vector unsigned long long __c) {
594 return (((vector bool long long)__c & __b) |
595 (~(vector bool long long)__c & __a));
596 }
597
598 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)599 vec_sel(vector bool long long __a, vector bool long long __b,
600 vector bool long long __c) {
601 return (__c & __b) | (~__c & __a);
602 }
603
604 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)605 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
606 vector unsigned long long __c) {
607 return (__c & __b) | (~__c & __a);
608 }
609
610 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)611 vec_sel(vector unsigned long long __a, vector unsigned long long __b,
612 vector bool long long __c) {
613 return (((vector unsigned long long)__c & __b) |
614 (~(vector unsigned long long)__c & __a));
615 }
616
617 static inline __ATTRS_o_ai vector double
vec_sel(vector double __a,vector double __b,vector unsigned long long __c)618 vec_sel(vector double __a, vector double __b, vector unsigned long long __c) {
619 return (vector double)((__c & (vector unsigned long long)__b) |
620 (~__c & (vector unsigned long long)__a));
621 }
622
623 static inline __ATTRS_o_ai vector double
vec_sel(vector double __a,vector double __b,vector bool long long __c)624 vec_sel(vector double __a, vector double __b, vector bool long long __c) {
625 vector unsigned long long __ac = (vector unsigned long long)__a;
626 vector unsigned long long __bc = (vector unsigned long long)__b;
627 vector unsigned long long __cc = (vector unsigned long long)__c;
628 return (vector double)((__cc & __bc) | (~__cc & __ac));
629 }
630
631 /*-- vec_gather_element -----------------------------------------------------*/
632
633 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)634 vec_gather_element(vector signed int __vec, vector unsigned int __offset,
635 const signed int *__ptr, int __index)
636 __constant_range(__index, 0, 3) {
637 __vec[__index] = *(const signed int *)(
638 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
639 return __vec;
640 }
641
642 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)643 vec_gather_element(vector bool int __vec, vector unsigned int __offset,
644 const unsigned int *__ptr, int __index)
645 __constant_range(__index, 0, 3) {
646 __vec[__index] = *(const unsigned int *)(
647 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
648 return __vec;
649 }
650
651 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)652 vec_gather_element(vector unsigned int __vec, vector unsigned int __offset,
653 const unsigned int *__ptr, int __index)
654 __constant_range(__index, 0, 3) {
655 __vec[__index] = *(const unsigned int *)(
656 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
657 return __vec;
658 }
659
660 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)661 vec_gather_element(vector signed long long __vec,
662 vector unsigned long long __offset,
663 const signed long long *__ptr, int __index)
664 __constant_range(__index, 0, 1) {
665 __vec[__index] = *(const signed long long *)(
666 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
667 return __vec;
668 }
669
670 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)671 vec_gather_element(vector bool long long __vec,
672 vector unsigned long long __offset,
673 const unsigned long long *__ptr, int __index)
674 __constant_range(__index, 0, 1) {
675 __vec[__index] = *(const unsigned long long *)(
676 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
677 return __vec;
678 }
679
680 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)681 vec_gather_element(vector unsigned long long __vec,
682 vector unsigned long long __offset,
683 const unsigned long long *__ptr, int __index)
684 __constant_range(__index, 0, 1) {
685 __vec[__index] = *(const unsigned long long *)(
686 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
687 return __vec;
688 }
689
690 static inline __ATTRS_o_ai vector double
vec_gather_element(vector double __vec,vector unsigned long long __offset,const double * __ptr,int __index)691 vec_gather_element(vector double __vec, vector unsigned long long __offset,
692 const double *__ptr, int __index)
693 __constant_range(__index, 0, 1) {
694 __vec[__index] = *(const double *)(
695 (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]);
696 return __vec;
697 }
698
699 /*-- vec_scatter_element ----------------------------------------------------*/
700
701 static inline __ATTRS_o_ai void
vec_scatter_element(vector signed int __vec,vector unsigned int __offset,signed int * __ptr,int __index)702 vec_scatter_element(vector signed int __vec, vector unsigned int __offset,
703 signed int *__ptr, int __index)
704 __constant_range(__index, 0, 3) {
705 *(signed int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
706 __vec[__index];
707 }
708
709 static inline __ATTRS_o_ai void
vec_scatter_element(vector bool int __vec,vector unsigned int __offset,unsigned int * __ptr,int __index)710 vec_scatter_element(vector bool int __vec, vector unsigned int __offset,
711 unsigned int *__ptr, int __index)
712 __constant_range(__index, 0, 3) {
713 *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
714 __vec[__index];
715 }
716
717 static inline __ATTRS_o_ai void
vec_scatter_element(vector unsigned int __vec,vector unsigned int __offset,unsigned int * __ptr,int __index)718 vec_scatter_element(vector unsigned int __vec, vector unsigned int __offset,
719 unsigned int *__ptr, int __index)
720 __constant_range(__index, 0, 3) {
721 *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
722 __vec[__index];
723 }
724
725 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)726 vec_scatter_element(vector signed long long __vec,
727 vector unsigned long long __offset,
728 signed long long *__ptr, int __index)
729 __constant_range(__index, 0, 1) {
730 *(signed long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
731 __vec[__index];
732 }
733
734 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)735 vec_scatter_element(vector bool long long __vec,
736 vector unsigned long long __offset,
737 unsigned long long *__ptr, int __index)
738 __constant_range(__index, 0, 1) {
739 *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
740 __vec[__index];
741 }
742
743 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)744 vec_scatter_element(vector unsigned long long __vec,
745 vector unsigned long long __offset,
746 unsigned long long *__ptr, int __index)
747 __constant_range(__index, 0, 1) {
748 *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
749 __vec[__index];
750 }
751
752 static inline __ATTRS_o_ai void
vec_scatter_element(vector double __vec,vector unsigned long long __offset,double * __ptr,int __index)753 vec_scatter_element(vector double __vec, vector unsigned long long __offset,
754 double *__ptr, int __index)
755 __constant_range(__index, 0, 1) {
756 *(double *)((__INTPTR_TYPE__)__ptr + __offset[__index]) =
757 __vec[__index];
758 }
759
760 /*-- vec_xld2 ---------------------------------------------------------------*/
761
762 static inline __ATTRS_o_ai vector signed char
vec_xld2(long __offset,const signed char * __ptr)763 vec_xld2(long __offset, const signed char *__ptr) {
764 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
765 }
766
767 static inline __ATTRS_o_ai vector unsigned char
vec_xld2(long __offset,const unsigned char * __ptr)768 vec_xld2(long __offset, const unsigned char *__ptr) {
769 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
770 }
771
772 static inline __ATTRS_o_ai vector signed short
vec_xld2(long __offset,const signed short * __ptr)773 vec_xld2(long __offset, const signed short *__ptr) {
774 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
775 }
776
777 static inline __ATTRS_o_ai vector unsigned short
vec_xld2(long __offset,const unsigned short * __ptr)778 vec_xld2(long __offset, const unsigned short *__ptr) {
779 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
780 }
781
782 static inline __ATTRS_o_ai vector signed int
vec_xld2(long __offset,const signed int * __ptr)783 vec_xld2(long __offset, const signed int *__ptr) {
784 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
785 }
786
787 static inline __ATTRS_o_ai vector unsigned int
vec_xld2(long __offset,const unsigned int * __ptr)788 vec_xld2(long __offset, const unsigned int *__ptr) {
789 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
790 }
791
792 static inline __ATTRS_o_ai vector signed long long
vec_xld2(long __offset,const signed long long * __ptr)793 vec_xld2(long __offset, const signed long long *__ptr) {
794 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
795 }
796
797 static inline __ATTRS_o_ai vector unsigned long long
vec_xld2(long __offset,const unsigned long long * __ptr)798 vec_xld2(long __offset, const unsigned long long *__ptr) {
799 return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
800 }
801
802 static inline __ATTRS_o_ai vector double
vec_xld2(long __offset,const double * __ptr)803 vec_xld2(long __offset, const double *__ptr) {
804 return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
805 }
806
807 /*-- vec_xlw4 ---------------------------------------------------------------*/
808
809 static inline __ATTRS_o_ai vector signed char
vec_xlw4(long __offset,const signed char * __ptr)810 vec_xlw4(long __offset, const signed char *__ptr) {
811 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
812 }
813
814 static inline __ATTRS_o_ai vector unsigned char
vec_xlw4(long __offset,const unsigned char * __ptr)815 vec_xlw4(long __offset, const unsigned char *__ptr) {
816 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
817 }
818
819 static inline __ATTRS_o_ai vector signed short
vec_xlw4(long __offset,const signed short * __ptr)820 vec_xlw4(long __offset, const signed short *__ptr) {
821 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
822 }
823
824 static inline __ATTRS_o_ai vector unsigned short
vec_xlw4(long __offset,const unsigned short * __ptr)825 vec_xlw4(long __offset, const unsigned short *__ptr) {
826 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
827 }
828
829 static inline __ATTRS_o_ai vector signed int
vec_xlw4(long __offset,const signed int * __ptr)830 vec_xlw4(long __offset, const signed int *__ptr) {
831 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
832 }
833
834 static inline __ATTRS_o_ai vector unsigned int
vec_xlw4(long __offset,const unsigned int * __ptr)835 vec_xlw4(long __offset, const unsigned int *__ptr) {
836 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
837 }
838
839 /*-- vec_xstd2 --------------------------------------------------------------*/
840
841 static inline __ATTRS_o_ai void
vec_xstd2(vector signed char __vec,long __offset,signed char * __ptr)842 vec_xstd2(vector signed char __vec, long __offset, signed char *__ptr) {
843 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
844 }
845
846 static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned char __vec,long __offset,unsigned char * __ptr)847 vec_xstd2(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
848 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
849 }
850
851 static inline __ATTRS_o_ai void
vec_xstd2(vector signed short __vec,long __offset,signed short * __ptr)852 vec_xstd2(vector signed short __vec, long __offset, signed short *__ptr) {
853 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
854 }
855
856 static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned short __vec,long __offset,unsigned short * __ptr)857 vec_xstd2(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
858 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
859 }
860
861 static inline __ATTRS_o_ai void
vec_xstd2(vector signed int __vec,long __offset,signed int * __ptr)862 vec_xstd2(vector signed int __vec, long __offset, signed int *__ptr) {
863 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
864 }
865
866 static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned int __vec,long __offset,unsigned int * __ptr)867 vec_xstd2(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
868 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
869 }
870
871 static inline __ATTRS_o_ai void
vec_xstd2(vector signed long long __vec,long __offset,signed long long * __ptr)872 vec_xstd2(vector signed long long __vec, long __offset,
873 signed long long *__ptr) {
874 *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
875 }
876
877 static inline __ATTRS_o_ai void
vec_xstd2(vector unsigned long long __vec,long __offset,unsigned long long * __ptr)878 vec_xstd2(vector unsigned long long __vec, long __offset,
879 unsigned long long *__ptr) {
880 *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) =
881 __vec;
882 }
883
884 static inline __ATTRS_o_ai void
vec_xstd2(vector double __vec,long __offset,double * __ptr)885 vec_xstd2(vector double __vec, long __offset, double *__ptr) {
886 *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
887 }
888
889 /*-- vec_xstw4 --------------------------------------------------------------*/
890
891 static inline __ATTRS_o_ai void
vec_xstw4(vector signed char __vec,long __offset,signed char * __ptr)892 vec_xstw4(vector signed char __vec, long __offset, signed char *__ptr) {
893 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
894 }
895
896 static inline __ATTRS_o_ai void
vec_xstw4(vector unsigned char __vec,long __offset,unsigned char * __ptr)897 vec_xstw4(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
898 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
899 }
900
901 static inline __ATTRS_o_ai void
vec_xstw4(vector signed short __vec,long __offset,signed short * __ptr)902 vec_xstw4(vector signed short __vec, long __offset, signed short *__ptr) {
903 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
904 }
905
906 static inline __ATTRS_o_ai void
vec_xstw4(vector unsigned short __vec,long __offset,unsigned short * __ptr)907 vec_xstw4(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
908 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
909 }
910
911 static inline __ATTRS_o_ai void
vec_xstw4(vector signed int __vec,long __offset,signed int * __ptr)912 vec_xstw4(vector signed int __vec, long __offset, signed int *__ptr) {
913 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
914 }
915
916 static inline __ATTRS_o_ai void
vec_xstw4(vector unsigned int __vec,long __offset,unsigned int * __ptr)917 vec_xstw4(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
918 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
919 }
920
921 /*-- vec_load_bndry ---------------------------------------------------------*/
922
923 extern __ATTRS_o vector signed char
924 vec_load_bndry(const signed char *__ptr, unsigned short __len)
925 __constant_pow2_range(__len, 64, 4096);
926
927 extern __ATTRS_o vector unsigned char
928 vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
929 __constant_pow2_range(__len, 64, 4096);
930
931 extern __ATTRS_o vector signed short
932 vec_load_bndry(const signed short *__ptr, unsigned short __len)
933 __constant_pow2_range(__len, 64, 4096);
934
935 extern __ATTRS_o vector unsigned short
936 vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
937 __constant_pow2_range(__len, 64, 4096);
938
939 extern __ATTRS_o vector signed int
940 vec_load_bndry(const signed int *__ptr, unsigned short __len)
941 __constant_pow2_range(__len, 64, 4096);
942
943 extern __ATTRS_o vector unsigned int
944 vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
945 __constant_pow2_range(__len, 64, 4096);
946
947 extern __ATTRS_o vector signed long long
948 vec_load_bndry(const signed long long *__ptr, unsigned short __len)
949 __constant_pow2_range(__len, 64, 4096);
950
951 extern __ATTRS_o vector unsigned long long
952 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
953 __constant_pow2_range(__len, 64, 4096);
954
955 extern __ATTRS_o vector double
956 vec_load_bndry(const double *__ptr, unsigned short __len)
957 __constant_pow2_range(__len, 64, 4096);
958
959 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \
960 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \
961 (Y) == 128 ? 1 : \
962 (Y) == 256 ? 2 : \
963 (Y) == 512 ? 3 : \
964 (Y) == 1024 ? 4 : \
965 (Y) == 2048 ? 5 : \
966 (Y) == 4096 ? 6 : -1)))
967
968 /*-- vec_load_len -----------------------------------------------------------*/
969
970 static inline __ATTRS_o_ai vector signed char
vec_load_len(const signed char * __ptr,unsigned int __len)971 vec_load_len(const signed char *__ptr, unsigned int __len) {
972 return (vector signed char)__builtin_s390_vll(__len, __ptr);
973 }
974
975 static inline __ATTRS_o_ai vector unsigned char
vec_load_len(const unsigned char * __ptr,unsigned int __len)976 vec_load_len(const unsigned char *__ptr, unsigned int __len) {
977 return (vector unsigned char)__builtin_s390_vll(__len, __ptr);
978 }
979
980 static inline __ATTRS_o_ai vector signed short
vec_load_len(const signed short * __ptr,unsigned int __len)981 vec_load_len(const signed short *__ptr, unsigned int __len) {
982 return (vector signed short)__builtin_s390_vll(__len, __ptr);
983 }
984
985 static inline __ATTRS_o_ai vector unsigned short
vec_load_len(const unsigned short * __ptr,unsigned int __len)986 vec_load_len(const unsigned short *__ptr, unsigned int __len) {
987 return (vector unsigned short)__builtin_s390_vll(__len, __ptr);
988 }
989
990 static inline __ATTRS_o_ai vector signed int
vec_load_len(const signed int * __ptr,unsigned int __len)991 vec_load_len(const signed int *__ptr, unsigned int __len) {
992 return (vector signed int)__builtin_s390_vll(__len, __ptr);
993 }
994
995 static inline __ATTRS_o_ai vector unsigned int
vec_load_len(const unsigned int * __ptr,unsigned int __len)996 vec_load_len(const unsigned int *__ptr, unsigned int __len) {
997 return (vector unsigned int)__builtin_s390_vll(__len, __ptr);
998 }
999
1000 static inline __ATTRS_o_ai vector signed long long
vec_load_len(const signed long long * __ptr,unsigned int __len)1001 vec_load_len(const signed long long *__ptr, unsigned int __len) {
1002 return (vector signed long long)__builtin_s390_vll(__len, __ptr);
1003 }
1004
1005 static inline __ATTRS_o_ai vector unsigned long long
vec_load_len(const unsigned long long * __ptr,unsigned int __len)1006 vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1007 return (vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1008 }
1009
1010 static inline __ATTRS_o_ai vector double
vec_load_len(const double * __ptr,unsigned int __len)1011 vec_load_len(const double *__ptr, unsigned int __len) {
1012 return (vector double)__builtin_s390_vll(__len, __ptr);
1013 }
1014
1015 /*-- vec_store_len ----------------------------------------------------------*/
1016
1017 static inline __ATTRS_o_ai void
vec_store_len(vector signed char __vec,signed char * __ptr,unsigned int __len)1018 vec_store_len(vector signed char __vec, signed char *__ptr,
1019 unsigned int __len) {
1020 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1021 }
1022
1023 static inline __ATTRS_o_ai void
vec_store_len(vector unsigned char __vec,unsigned char * __ptr,unsigned int __len)1024 vec_store_len(vector unsigned char __vec, unsigned char *__ptr,
1025 unsigned int __len) {
1026 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1027 }
1028
1029 static inline __ATTRS_o_ai void
vec_store_len(vector signed short __vec,signed short * __ptr,unsigned int __len)1030 vec_store_len(vector signed short __vec, signed short *__ptr,
1031 unsigned int __len) {
1032 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1033 }
1034
1035 static inline __ATTRS_o_ai void
vec_store_len(vector unsigned short __vec,unsigned short * __ptr,unsigned int __len)1036 vec_store_len(vector unsigned short __vec, unsigned short *__ptr,
1037 unsigned int __len) {
1038 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1039 }
1040
1041 static inline __ATTRS_o_ai void
vec_store_len(vector signed int __vec,signed int * __ptr,unsigned int __len)1042 vec_store_len(vector signed int __vec, signed int *__ptr,
1043 unsigned int __len) {
1044 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1045 }
1046
1047 static inline __ATTRS_o_ai void
vec_store_len(vector unsigned int __vec,unsigned int * __ptr,unsigned int __len)1048 vec_store_len(vector unsigned int __vec, unsigned int *__ptr,
1049 unsigned int __len) {
1050 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1051 }
1052
1053 static inline __ATTRS_o_ai void
vec_store_len(vector signed long long __vec,signed long long * __ptr,unsigned int __len)1054 vec_store_len(vector signed long long __vec, signed long long *__ptr,
1055 unsigned int __len) {
1056 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1057 }
1058
1059 static inline __ATTRS_o_ai void
vec_store_len(vector unsigned long long __vec,unsigned long long * __ptr,unsigned int __len)1060 vec_store_len(vector unsigned long long __vec, unsigned long long *__ptr,
1061 unsigned int __len) {
1062 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1063 }
1064
1065 static inline __ATTRS_o_ai void
vec_store_len(vector double __vec,double * __ptr,unsigned int __len)1066 vec_store_len(vector double __vec, double *__ptr,
1067 unsigned int __len) {
1068 __builtin_s390_vstl((vector signed char)__vec, __len, __ptr);
1069 }
1070
1071 /*-- vec_load_pair ----------------------------------------------------------*/
1072
1073 static inline __ATTRS_o_ai vector signed long long
vec_load_pair(signed long long __a,signed long long __b)1074 vec_load_pair(signed long long __a, signed long long __b) {
1075 return (vector signed long long)(__a, __b);
1076 }
1077
1078 static inline __ATTRS_o_ai vector unsigned long long
vec_load_pair(unsigned long long __a,unsigned long long __b)1079 vec_load_pair(unsigned long long __a, unsigned long long __b) {
1080 return (vector unsigned long long)(__a, __b);
1081 }
1082
1083 /*-- vec_genmask ------------------------------------------------------------*/
1084
1085 static inline __ATTRS_o_ai vector unsigned char
vec_genmask(unsigned short __mask)1086 vec_genmask(unsigned short __mask)
1087 __constant(__mask) {
1088 return (vector unsigned char)(
1089 __mask & 0x8000 ? 0xff : 0,
1090 __mask & 0x4000 ? 0xff : 0,
1091 __mask & 0x2000 ? 0xff : 0,
1092 __mask & 0x1000 ? 0xff : 0,
1093 __mask & 0x0800 ? 0xff : 0,
1094 __mask & 0x0400 ? 0xff : 0,
1095 __mask & 0x0200 ? 0xff : 0,
1096 __mask & 0x0100 ? 0xff : 0,
1097 __mask & 0x0080 ? 0xff : 0,
1098 __mask & 0x0040 ? 0xff : 0,
1099 __mask & 0x0020 ? 0xff : 0,
1100 __mask & 0x0010 ? 0xff : 0,
1101 __mask & 0x0008 ? 0xff : 0,
1102 __mask & 0x0004 ? 0xff : 0,
1103 __mask & 0x0002 ? 0xff : 0,
1104 __mask & 0x0001 ? 0xff : 0);
1105 }
1106
1107 /*-- vec_genmasks_* ---------------------------------------------------------*/
1108
1109 static inline __ATTRS_o_ai vector unsigned char
vec_genmasks_8(unsigned char __first,unsigned char __last)1110 vec_genmasks_8(unsigned char __first, unsigned char __last)
1111 __constant(__first) __constant(__last) {
1112 unsigned char __bit1 = __first & 7;
1113 unsigned char __bit2 = __last & 7;
1114 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;
1115 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;
1116 unsigned char __value = (__bit1 <= __bit2 ?
1117 __mask1 & ~__mask2 :
1118 __mask1 | ~__mask2);
1119 return (vector unsigned char)__value;
1120 }
1121
1122 static inline __ATTRS_o_ai vector unsigned short
vec_genmasks_16(unsigned char __first,unsigned char __last)1123 vec_genmasks_16(unsigned char __first, unsigned char __last)
1124 __constant(__first) __constant(__last) {
1125 unsigned char __bit1 = __first & 15;
1126 unsigned char __bit2 = __last & 15;
1127 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;
1128 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;
1129 unsigned short __value = (__bit1 <= __bit2 ?
1130 __mask1 & ~__mask2 :
1131 __mask1 | ~__mask2);
1132 return (vector unsigned short)__value;
1133 }
1134
1135 static inline __ATTRS_o_ai vector unsigned int
vec_genmasks_32(unsigned char __first,unsigned char __last)1136 vec_genmasks_32(unsigned char __first, unsigned char __last)
1137 __constant(__first) __constant(__last) {
1138 unsigned char __bit1 = __first & 31;
1139 unsigned char __bit2 = __last & 31;
1140 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;
1141 unsigned int __mask2 = (1U << (31 - __bit2)) - 1;
1142 unsigned int __value = (__bit1 <= __bit2 ?
1143 __mask1 & ~__mask2 :
1144 __mask1 | ~__mask2);
1145 return (vector unsigned int)__value;
1146 }
1147
1148 static inline __ATTRS_o_ai vector unsigned long long
vec_genmasks_64(unsigned char __first,unsigned char __last)1149 vec_genmasks_64(unsigned char __first, unsigned char __last)
1150 __constant(__first) __constant(__last) {
1151 unsigned char __bit1 = __first & 63;
1152 unsigned char __bit2 = __last & 63;
1153 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;
1154 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;
1155 unsigned long long __value = (__bit1 <= __bit2 ?
1156 __mask1 & ~__mask2 :
1157 __mask1 | ~__mask2);
1158 return (vector unsigned long long)__value;
1159 }
1160
1161 /*-- vec_splat --------------------------------------------------------------*/
1162
1163 static inline __ATTRS_o_ai vector signed char
vec_splat(vector signed char __vec,int __index)1164 vec_splat(vector signed char __vec, int __index)
1165 __constant_range(__index, 0, 15) {
1166 return (vector signed char)__vec[__index];
1167 }
1168
1169 static inline __ATTRS_o_ai vector bool char
vec_splat(vector bool char __vec,int __index)1170 vec_splat(vector bool char __vec, int __index)
1171 __constant_range(__index, 0, 15) {
1172 return (vector bool char)(vector unsigned char)__vec[__index];
1173 }
1174
1175 static inline __ATTRS_o_ai vector unsigned char
vec_splat(vector unsigned char __vec,int __index)1176 vec_splat(vector unsigned char __vec, int __index)
1177 __constant_range(__index, 0, 15) {
1178 return (vector unsigned char)__vec[__index];
1179 }
1180
1181 static inline __ATTRS_o_ai vector signed short
vec_splat(vector signed short __vec,int __index)1182 vec_splat(vector signed short __vec, int __index)
1183 __constant_range(__index, 0, 7) {
1184 return (vector signed short)__vec[__index];
1185 }
1186
1187 static inline __ATTRS_o_ai vector bool short
vec_splat(vector bool short __vec,int __index)1188 vec_splat(vector bool short __vec, int __index)
1189 __constant_range(__index, 0, 7) {
1190 return (vector bool short)(vector unsigned short)__vec[__index];
1191 }
1192
1193 static inline __ATTRS_o_ai vector unsigned short
vec_splat(vector unsigned short __vec,int __index)1194 vec_splat(vector unsigned short __vec, int __index)
1195 __constant_range(__index, 0, 7) {
1196 return (vector unsigned short)__vec[__index];
1197 }
1198
1199 static inline __ATTRS_o_ai vector signed int
vec_splat(vector signed int __vec,int __index)1200 vec_splat(vector signed int __vec, int __index)
1201 __constant_range(__index, 0, 3) {
1202 return (vector signed int)__vec[__index];
1203 }
1204
1205 static inline __ATTRS_o_ai vector bool int
vec_splat(vector bool int __vec,int __index)1206 vec_splat(vector bool int __vec, int __index)
1207 __constant_range(__index, 0, 3) {
1208 return (vector bool int)(vector unsigned int)__vec[__index];
1209 }
1210
1211 static inline __ATTRS_o_ai vector unsigned int
vec_splat(vector unsigned int __vec,int __index)1212 vec_splat(vector unsigned int __vec, int __index)
1213 __constant_range(__index, 0, 3) {
1214 return (vector unsigned int)__vec[__index];
1215 }
1216
1217 static inline __ATTRS_o_ai vector signed long long
vec_splat(vector signed long long __vec,int __index)1218 vec_splat(vector signed long long __vec, int __index)
1219 __constant_range(__index, 0, 1) {
1220 return (vector signed long long)__vec[__index];
1221 }
1222
1223 static inline __ATTRS_o_ai vector bool long long
vec_splat(vector bool long long __vec,int __index)1224 vec_splat(vector bool long long __vec, int __index)
1225 __constant_range(__index, 0, 1) {
1226 return (vector bool long long)(vector unsigned long long)__vec[__index];
1227 }
1228
1229 static inline __ATTRS_o_ai vector unsigned long long
vec_splat(vector unsigned long long __vec,int __index)1230 vec_splat(vector unsigned long long __vec, int __index)
1231 __constant_range(__index, 0, 1) {
1232 return (vector unsigned long long)__vec[__index];
1233 }
1234
1235 static inline __ATTRS_o_ai vector double
vec_splat(vector double __vec,int __index)1236 vec_splat(vector double __vec, int __index)
1237 __constant_range(__index, 0, 1) {
1238 return (vector double)__vec[__index];
1239 }
1240
1241 /*-- vec_splat_s* -----------------------------------------------------------*/
1242
1243 static inline __ATTRS_ai vector signed char
vec_splat_s8(signed char __scalar)1244 vec_splat_s8(signed char __scalar)
1245 __constant(__scalar) {
1246 return (vector signed char)__scalar;
1247 }
1248
1249 static inline __ATTRS_ai vector signed short
vec_splat_s16(signed short __scalar)1250 vec_splat_s16(signed short __scalar)
1251 __constant(__scalar) {
1252 return (vector signed short)__scalar;
1253 }
1254
1255 static inline __ATTRS_ai vector signed int
vec_splat_s32(signed short __scalar)1256 vec_splat_s32(signed short __scalar)
1257 __constant(__scalar) {
1258 return (vector signed int)(signed int)__scalar;
1259 }
1260
1261 static inline __ATTRS_ai vector signed long long
vec_splat_s64(signed short __scalar)1262 vec_splat_s64(signed short __scalar)
1263 __constant(__scalar) {
1264 return (vector signed long long)(signed long)__scalar;
1265 }
1266
1267 /*-- vec_splat_u* -----------------------------------------------------------*/
1268
1269 static inline __ATTRS_ai vector unsigned char
vec_splat_u8(unsigned char __scalar)1270 vec_splat_u8(unsigned char __scalar)
1271 __constant(__scalar) {
1272 return (vector unsigned char)__scalar;
1273 }
1274
1275 static inline __ATTRS_ai vector unsigned short
vec_splat_u16(unsigned short __scalar)1276 vec_splat_u16(unsigned short __scalar)
1277 __constant(__scalar) {
1278 return (vector unsigned short)__scalar;
1279 }
1280
1281 static inline __ATTRS_ai vector unsigned int
vec_splat_u32(signed short __scalar)1282 vec_splat_u32(signed short __scalar)
1283 __constant(__scalar) {
1284 return (vector unsigned int)(signed int)__scalar;
1285 }
1286
1287 static inline __ATTRS_ai vector unsigned long long
vec_splat_u64(signed short __scalar)1288 vec_splat_u64(signed short __scalar)
1289 __constant(__scalar) {
1290 return (vector unsigned long long)(signed long long)__scalar;
1291 }
1292
1293 /*-- vec_splats -------------------------------------------------------------*/
1294
1295 static inline __ATTRS_o_ai vector signed char
vec_splats(signed char __scalar)1296 vec_splats(signed char __scalar) {
1297 return (vector signed char)__scalar;
1298 }
1299
1300 static inline __ATTRS_o_ai vector unsigned char
vec_splats(unsigned char __scalar)1301 vec_splats(unsigned char __scalar) {
1302 return (vector unsigned char)__scalar;
1303 }
1304
1305 static inline __ATTRS_o_ai vector signed short
vec_splats(signed short __scalar)1306 vec_splats(signed short __scalar) {
1307 return (vector signed short)__scalar;
1308 }
1309
1310 static inline __ATTRS_o_ai vector unsigned short
vec_splats(unsigned short __scalar)1311 vec_splats(unsigned short __scalar) {
1312 return (vector unsigned short)__scalar;
1313 }
1314
1315 static inline __ATTRS_o_ai vector signed int
vec_splats(signed int __scalar)1316 vec_splats(signed int __scalar) {
1317 return (vector signed int)__scalar;
1318 }
1319
1320 static inline __ATTRS_o_ai vector unsigned int
vec_splats(unsigned int __scalar)1321 vec_splats(unsigned int __scalar) {
1322 return (vector unsigned int)__scalar;
1323 }
1324
1325 static inline __ATTRS_o_ai vector signed long long
vec_splats(signed long long __scalar)1326 vec_splats(signed long long __scalar) {
1327 return (vector signed long long)__scalar;
1328 }
1329
1330 static inline __ATTRS_o_ai vector unsigned long long
vec_splats(unsigned long long __scalar)1331 vec_splats(unsigned long long __scalar) {
1332 return (vector unsigned long long)__scalar;
1333 }
1334
1335 static inline __ATTRS_o_ai vector double
vec_splats(double __scalar)1336 vec_splats(double __scalar) {
1337 return (vector double)__scalar;
1338 }
1339
1340 /*-- vec_extend_s64 ---------------------------------------------------------*/
1341
1342 static inline __ATTRS_o_ai vector signed long long
vec_extend_s64(vector signed char __a)1343 vec_extend_s64(vector signed char __a) {
1344 return (vector signed long long)(__a[7], __a[15]);
1345 }
1346
1347 static inline __ATTRS_o_ai vector signed long long
vec_extend_s64(vector signed short __a)1348 vec_extend_s64(vector signed short __a) {
1349 return (vector signed long long)(__a[3], __a[7]);
1350 }
1351
1352 static inline __ATTRS_o_ai vector signed long long
vec_extend_s64(vector signed int __a)1353 vec_extend_s64(vector signed int __a) {
1354 return (vector signed long long)(__a[1], __a[3]);
1355 }
1356
1357 /*-- vec_mergeh -------------------------------------------------------------*/
1358
1359 static inline __ATTRS_o_ai vector signed char
vec_mergeh(vector signed char __a,vector signed char __b)1360 vec_mergeh(vector signed char __a, vector signed char __b) {
1361 return (vector signed char)(
1362 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1363 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1364 }
1365
1366 static inline __ATTRS_o_ai vector bool char
vec_mergeh(vector bool char __a,vector bool char __b)1367 vec_mergeh(vector bool char __a, vector bool char __b) {
1368 return (vector bool char)(
1369 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1370 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1371 }
1372
1373 static inline __ATTRS_o_ai vector unsigned char
vec_mergeh(vector unsigned char __a,vector unsigned char __b)1374 vec_mergeh(vector unsigned char __a, vector unsigned char __b) {
1375 return (vector unsigned char)(
1376 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],
1377 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1378 }
1379
1380 static inline __ATTRS_o_ai vector signed short
vec_mergeh(vector signed short __a,vector signed short __b)1381 vec_mergeh(vector signed short __a, vector signed short __b) {
1382 return (vector signed short)(
1383 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1384 }
1385
1386 static inline __ATTRS_o_ai vector bool short
vec_mergeh(vector bool short __a,vector bool short __b)1387 vec_mergeh(vector bool short __a, vector bool short __b) {
1388 return (vector bool short)(
1389 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1390 }
1391
1392 static inline __ATTRS_o_ai vector unsigned short
vec_mergeh(vector unsigned short __a,vector unsigned short __b)1393 vec_mergeh(vector unsigned short __a, vector unsigned short __b) {
1394 return (vector unsigned short)(
1395 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);
1396 }
1397
1398 static inline __ATTRS_o_ai vector signed int
vec_mergeh(vector signed int __a,vector signed int __b)1399 vec_mergeh(vector signed int __a, vector signed int __b) {
1400 return (vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1401 }
1402
1403 static inline __ATTRS_o_ai vector bool int
vec_mergeh(vector bool int __a,vector bool int __b)1404 vec_mergeh(vector bool int __a, vector bool int __b) {
1405 return (vector bool int)(__a[0], __b[0], __a[1], __b[1]);
1406 }
1407
1408 static inline __ATTRS_o_ai vector unsigned int
vec_mergeh(vector unsigned int __a,vector unsigned int __b)1409 vec_mergeh(vector unsigned int __a, vector unsigned int __b) {
1410 return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1411 }
1412
1413 static inline __ATTRS_o_ai vector signed long long
vec_mergeh(vector signed long long __a,vector signed long long __b)1414 vec_mergeh(vector signed long long __a, vector signed long long __b) {
1415 return (vector signed long long)(__a[0], __b[0]);
1416 }
1417
1418 static inline __ATTRS_o_ai vector bool long long
vec_mergeh(vector bool long long __a,vector bool long long __b)1419 vec_mergeh(vector bool long long __a, vector bool long long __b) {
1420 return (vector bool long long)(__a[0], __b[0]);
1421 }
1422
1423 static inline __ATTRS_o_ai vector unsigned long long
vec_mergeh(vector unsigned long long __a,vector unsigned long long __b)1424 vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) {
1425 return (vector unsigned long long)(__a[0], __b[0]);
1426 }
1427
1428 static inline __ATTRS_o_ai vector double
vec_mergeh(vector double __a,vector double __b)1429 vec_mergeh(vector double __a, vector double __b) {
1430 return (vector double)(__a[0], __b[0]);
1431 }
1432
1433 /*-- vec_mergel -------------------------------------------------------------*/
1434
1435 static inline __ATTRS_o_ai vector signed char
vec_mergel(vector signed char __a,vector signed char __b)1436 vec_mergel(vector signed char __a, vector signed char __b) {
1437 return (vector signed char)(
1438 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1439 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1440 }
1441
1442 static inline __ATTRS_o_ai vector bool char
vec_mergel(vector bool char __a,vector bool char __b)1443 vec_mergel(vector bool char __a, vector bool char __b) {
1444 return (vector bool char)(
1445 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1446 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1447 }
1448
1449 static inline __ATTRS_o_ai vector unsigned char
vec_mergel(vector unsigned char __a,vector unsigned char __b)1450 vec_mergel(vector unsigned char __a, vector unsigned char __b) {
1451 return (vector unsigned char)(
1452 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],
1453 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);
1454 }
1455
1456 static inline __ATTRS_o_ai vector signed short
vec_mergel(vector signed short __a,vector signed short __b)1457 vec_mergel(vector signed short __a, vector signed short __b) {
1458 return (vector signed short)(
1459 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1460 }
1461
1462 static inline __ATTRS_o_ai vector bool short
vec_mergel(vector bool short __a,vector bool short __b)1463 vec_mergel(vector bool short __a, vector bool short __b) {
1464 return (vector bool short)(
1465 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1466 }
1467
1468 static inline __ATTRS_o_ai vector unsigned short
vec_mergel(vector unsigned short __a,vector unsigned short __b)1469 vec_mergel(vector unsigned short __a, vector unsigned short __b) {
1470 return (vector unsigned short)(
1471 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);
1472 }
1473
1474 static inline __ATTRS_o_ai vector signed int
vec_mergel(vector signed int __a,vector signed int __b)1475 vec_mergel(vector signed int __a, vector signed int __b) {
1476 return (vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1477 }
1478
1479 static inline __ATTRS_o_ai vector bool int
vec_mergel(vector bool int __a,vector bool int __b)1480 vec_mergel(vector bool int __a, vector bool int __b) {
1481 return (vector bool int)(__a[2], __b[2], __a[3], __b[3]);
1482 }
1483
1484 static inline __ATTRS_o_ai vector unsigned int
vec_mergel(vector unsigned int __a,vector unsigned int __b)1485 vec_mergel(vector unsigned int __a, vector unsigned int __b) {
1486 return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1487 }
1488
1489 static inline __ATTRS_o_ai vector signed long long
vec_mergel(vector signed long long __a,vector signed long long __b)1490 vec_mergel(vector signed long long __a, vector signed long long __b) {
1491 return (vector signed long long)(__a[1], __b[1]);
1492 }
1493
1494 static inline __ATTRS_o_ai vector bool long long
vec_mergel(vector bool long long __a,vector bool long long __b)1495 vec_mergel(vector bool long long __a, vector bool long long __b) {
1496 return (vector bool long long)(__a[1], __b[1]);
1497 }
1498
1499 static inline __ATTRS_o_ai vector unsigned long long
vec_mergel(vector unsigned long long __a,vector unsigned long long __b)1500 vec_mergel(vector unsigned long long __a, vector unsigned long long __b) {
1501 return (vector unsigned long long)(__a[1], __b[1]);
1502 }
1503
1504 static inline __ATTRS_o_ai vector double
vec_mergel(vector double __a,vector double __b)1505 vec_mergel(vector double __a, vector double __b) {
1506 return (vector double)(__a[1], __b[1]);
1507 }
1508
1509 /*-- vec_pack ---------------------------------------------------------------*/
1510
1511 static inline __ATTRS_o_ai vector signed char
vec_pack(vector signed short __a,vector signed short __b)1512 vec_pack(vector signed short __a, vector signed short __b) {
1513 vector signed char __ac = (vector signed char)__a;
1514 vector signed char __bc = (vector signed char)__b;
1515 return (vector signed char)(
1516 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1517 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1518 }
1519
1520 static inline __ATTRS_o_ai vector bool char
vec_pack(vector bool short __a,vector bool short __b)1521 vec_pack(vector bool short __a, vector bool short __b) {
1522 vector bool char __ac = (vector bool char)__a;
1523 vector bool char __bc = (vector bool char)__b;
1524 return (vector bool char)(
1525 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1526 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1527 }
1528
1529 static inline __ATTRS_o_ai vector unsigned char
vec_pack(vector unsigned short __a,vector unsigned short __b)1530 vec_pack(vector unsigned short __a, vector unsigned short __b) {
1531 vector unsigned char __ac = (vector unsigned char)__a;
1532 vector unsigned char __bc = (vector unsigned char)__b;
1533 return (vector unsigned char)(
1534 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],
1535 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);
1536 }
1537
1538 static inline __ATTRS_o_ai vector signed short
vec_pack(vector signed int __a,vector signed int __b)1539 vec_pack(vector signed int __a, vector signed int __b) {
1540 vector signed short __ac = (vector signed short)__a;
1541 vector signed short __bc = (vector signed short)__b;
1542 return (vector signed short)(
1543 __ac[1], __ac[3], __ac[5], __ac[7],
1544 __bc[1], __bc[3], __bc[5], __bc[7]);
1545 }
1546
1547 static inline __ATTRS_o_ai vector bool short
vec_pack(vector bool int __a,vector bool int __b)1548 vec_pack(vector bool int __a, vector bool int __b) {
1549 vector bool short __ac = (vector bool short)__a;
1550 vector bool short __bc = (vector bool short)__b;
1551 return (vector bool short)(
1552 __ac[1], __ac[3], __ac[5], __ac[7],
1553 __bc[1], __bc[3], __bc[5], __bc[7]);
1554 }
1555
1556 static inline __ATTRS_o_ai vector unsigned short
vec_pack(vector unsigned int __a,vector unsigned int __b)1557 vec_pack(vector unsigned int __a, vector unsigned int __b) {
1558 vector unsigned short __ac = (vector unsigned short)__a;
1559 vector unsigned short __bc = (vector unsigned short)__b;
1560 return (vector unsigned short)(
1561 __ac[1], __ac[3], __ac[5], __ac[7],
1562 __bc[1], __bc[3], __bc[5], __bc[7]);
1563 }
1564
1565 static inline __ATTRS_o_ai vector signed int
vec_pack(vector signed long long __a,vector signed long long __b)1566 vec_pack(vector signed long long __a, vector signed long long __b) {
1567 vector signed int __ac = (vector signed int)__a;
1568 vector signed int __bc = (vector signed int)__b;
1569 return (vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1570 }
1571
1572 static inline __ATTRS_o_ai vector bool int
vec_pack(vector bool long long __a,vector bool long long __b)1573 vec_pack(vector bool long long __a, vector bool long long __b) {
1574 vector bool int __ac = (vector bool int)__a;
1575 vector bool int __bc = (vector bool int)__b;
1576 return (vector bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1577 }
1578
1579 static inline __ATTRS_o_ai vector unsigned int
vec_pack(vector unsigned long long __a,vector unsigned long long __b)1580 vec_pack(vector unsigned long long __a, vector unsigned long long __b) {
1581 vector unsigned int __ac = (vector unsigned int)__a;
1582 vector unsigned int __bc = (vector unsigned int)__b;
1583 return (vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);
1584 }
1585
1586 /*-- vec_packs --------------------------------------------------------------*/
1587
1588 static inline __ATTRS_o_ai vector signed char
vec_packs(vector signed short __a,vector signed short __b)1589 vec_packs(vector signed short __a, vector signed short __b) {
1590 return __builtin_s390_vpksh(__a, __b);
1591 }
1592
1593 static inline __ATTRS_o_ai vector unsigned char
vec_packs(vector unsigned short __a,vector unsigned short __b)1594 vec_packs(vector unsigned short __a, vector unsigned short __b) {
1595 return __builtin_s390_vpklsh(__a, __b);
1596 }
1597
1598 static inline __ATTRS_o_ai vector signed short
vec_packs(vector signed int __a,vector signed int __b)1599 vec_packs(vector signed int __a, vector signed int __b) {
1600 return __builtin_s390_vpksf(__a, __b);
1601 }
1602
1603 static inline __ATTRS_o_ai vector unsigned short
vec_packs(vector unsigned int __a,vector unsigned int __b)1604 vec_packs(vector unsigned int __a, vector unsigned int __b) {
1605 return __builtin_s390_vpklsf(__a, __b);
1606 }
1607
1608 static inline __ATTRS_o_ai vector signed int
vec_packs(vector signed long long __a,vector signed long long __b)1609 vec_packs(vector signed long long __a, vector signed long long __b) {
1610 return __builtin_s390_vpksg(__a, __b);
1611 }
1612
1613 static inline __ATTRS_o_ai vector unsigned int
vec_packs(vector unsigned long long __a,vector unsigned long long __b)1614 vec_packs(vector unsigned long long __a, vector unsigned long long __b) {
1615 return __builtin_s390_vpklsg(__a, __b);
1616 }
1617
1618 /*-- vec_packs_cc -----------------------------------------------------------*/
1619
1620 static inline __ATTRS_o_ai vector signed char
vec_packs_cc(vector signed short __a,vector signed short __b,int * __cc)1621 vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) {
1622 return __builtin_s390_vpkshs(__a, __b, __cc);
1623 }
1624
1625 static inline __ATTRS_o_ai vector unsigned char
vec_packs_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)1626 vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
1627 return __builtin_s390_vpklshs(__a, __b, __cc);
1628 }
1629
1630 static inline __ATTRS_o_ai vector signed short
vec_packs_cc(vector signed int __a,vector signed int __b,int * __cc)1631 vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) {
1632 return __builtin_s390_vpksfs(__a, __b, __cc);
1633 }
1634
1635 static inline __ATTRS_o_ai vector unsigned short
vec_packs_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)1636 vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
1637 return __builtin_s390_vpklsfs(__a, __b, __cc);
1638 }
1639
1640 static inline __ATTRS_o_ai vector signed int
vec_packs_cc(vector signed long long __a,vector signed long long __b,int * __cc)1641 vec_packs_cc(vector signed long long __a, vector signed long long __b,
1642 int *__cc) {
1643 return __builtin_s390_vpksgs(__a, __b, __cc);
1644 }
1645
1646 static inline __ATTRS_o_ai vector unsigned int
vec_packs_cc(vector unsigned long long __a,vector unsigned long long __b,int * __cc)1647 vec_packs_cc(vector unsigned long long __a, vector unsigned long long __b,
1648 int *__cc) {
1649 return __builtin_s390_vpklsgs(__a, __b, __cc);
1650 }
1651
1652 /*-- vec_packsu -------------------------------------------------------------*/
1653
1654 static inline __ATTRS_o_ai vector unsigned char
vec_packsu(vector signed short __a,vector signed short __b)1655 vec_packsu(vector signed short __a, vector signed short __b) {
1656 const vector signed short __zero = (vector signed short)0;
1657 return __builtin_s390_vpklsh(
1658 (vector unsigned short)(__a >= __zero) & (vector unsigned short)__a,
1659 (vector unsigned short)(__b >= __zero) & (vector unsigned short)__b);
1660 }
1661
1662 static inline __ATTRS_o_ai vector unsigned char
vec_packsu(vector unsigned short __a,vector unsigned short __b)1663 vec_packsu(vector unsigned short __a, vector unsigned short __b) {
1664 return __builtin_s390_vpklsh(__a, __b);
1665 }
1666
1667 static inline __ATTRS_o_ai vector unsigned short
vec_packsu(vector signed int __a,vector signed int __b)1668 vec_packsu(vector signed int __a, vector signed int __b) {
1669 const vector signed int __zero = (vector signed int)0;
1670 return __builtin_s390_vpklsf(
1671 (vector unsigned int)(__a >= __zero) & (vector unsigned int)__a,
1672 (vector unsigned int)(__b >= __zero) & (vector unsigned int)__b);
1673 }
1674
1675 static inline __ATTRS_o_ai vector unsigned short
vec_packsu(vector unsigned int __a,vector unsigned int __b)1676 vec_packsu(vector unsigned int __a, vector unsigned int __b) {
1677 return __builtin_s390_vpklsf(__a, __b);
1678 }
1679
1680 static inline __ATTRS_o_ai vector unsigned int
vec_packsu(vector signed long long __a,vector signed long long __b)1681 vec_packsu(vector signed long long __a, vector signed long long __b) {
1682 const vector signed long long __zero = (vector signed long long)0;
1683 return __builtin_s390_vpklsg(
1684 (vector unsigned long long)(__a >= __zero) &
1685 (vector unsigned long long)__a,
1686 (vector unsigned long long)(__b >= __zero) &
1687 (vector unsigned long long)__b);
1688 }
1689
1690 static inline __ATTRS_o_ai vector unsigned int
vec_packsu(vector unsigned long long __a,vector unsigned long long __b)1691 vec_packsu(vector unsigned long long __a, vector unsigned long long __b) {
1692 return __builtin_s390_vpklsg(__a, __b);
1693 }
1694
1695 /*-- vec_packsu_cc ----------------------------------------------------------*/
1696
1697 static inline __ATTRS_o_ai vector unsigned char
vec_packsu_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)1698 vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
1699 return __builtin_s390_vpklshs(__a, __b, __cc);
1700 }
1701
1702 static inline __ATTRS_o_ai vector unsigned short
vec_packsu_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)1703 vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
1704 return __builtin_s390_vpklsfs(__a, __b, __cc);
1705 }
1706
1707 static inline __ATTRS_o_ai vector unsigned int
vec_packsu_cc(vector unsigned long long __a,vector unsigned long long __b,int * __cc)1708 vec_packsu_cc(vector unsigned long long __a, vector unsigned long long __b,
1709 int *__cc) {
1710 return __builtin_s390_vpklsgs(__a, __b, __cc);
1711 }
1712
1713 /*-- vec_unpackh ------------------------------------------------------------*/
1714
1715 static inline __ATTRS_o_ai vector signed short
vec_unpackh(vector signed char __a)1716 vec_unpackh(vector signed char __a) {
1717 return __builtin_s390_vuphb(__a);
1718 }
1719
1720 static inline __ATTRS_o_ai vector bool short
vec_unpackh(vector bool char __a)1721 vec_unpackh(vector bool char __a) {
1722 return (vector bool short)__builtin_s390_vuphb((vector signed char)__a);
1723 }
1724
1725 static inline __ATTRS_o_ai vector unsigned short
vec_unpackh(vector unsigned char __a)1726 vec_unpackh(vector unsigned char __a) {
1727 return __builtin_s390_vuplhb(__a);
1728 }
1729
1730 static inline __ATTRS_o_ai vector signed int
vec_unpackh(vector signed short __a)1731 vec_unpackh(vector signed short __a) {
1732 return __builtin_s390_vuphh(__a);
1733 }
1734
1735 static inline __ATTRS_o_ai vector bool int
vec_unpackh(vector bool short __a)1736 vec_unpackh(vector bool short __a) {
1737 return (vector bool int)__builtin_s390_vuphh((vector signed short)__a);
1738 }
1739
1740 static inline __ATTRS_o_ai vector unsigned int
vec_unpackh(vector unsigned short __a)1741 vec_unpackh(vector unsigned short __a) {
1742 return __builtin_s390_vuplhh(__a);
1743 }
1744
1745 static inline __ATTRS_o_ai vector signed long long
vec_unpackh(vector signed int __a)1746 vec_unpackh(vector signed int __a) {
1747 return __builtin_s390_vuphf(__a);
1748 }
1749
1750 static inline __ATTRS_o_ai vector bool long long
vec_unpackh(vector bool int __a)1751 vec_unpackh(vector bool int __a) {
1752 return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a);
1753 }
1754
1755 static inline __ATTRS_o_ai vector unsigned long long
vec_unpackh(vector unsigned int __a)1756 vec_unpackh(vector unsigned int __a) {
1757 return __builtin_s390_vuplhf(__a);
1758 }
1759
1760 /*-- vec_unpackl ------------------------------------------------------------*/
1761
1762 static inline __ATTRS_o_ai vector signed short
vec_unpackl(vector signed char __a)1763 vec_unpackl(vector signed char __a) {
1764 return __builtin_s390_vuplb(__a);
1765 }
1766
1767 static inline __ATTRS_o_ai vector bool short
vec_unpackl(vector bool char __a)1768 vec_unpackl(vector bool char __a) {
1769 return (vector bool short)__builtin_s390_vuplb((vector signed char)__a);
1770 }
1771
1772 static inline __ATTRS_o_ai vector unsigned short
vec_unpackl(vector unsigned char __a)1773 vec_unpackl(vector unsigned char __a) {
1774 return __builtin_s390_vupllb(__a);
1775 }
1776
1777 static inline __ATTRS_o_ai vector signed int
vec_unpackl(vector signed short __a)1778 vec_unpackl(vector signed short __a) {
1779 return __builtin_s390_vuplhw(__a);
1780 }
1781
1782 static inline __ATTRS_o_ai vector bool int
vec_unpackl(vector bool short __a)1783 vec_unpackl(vector bool short __a) {
1784 return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a);
1785 }
1786
1787 static inline __ATTRS_o_ai vector unsigned int
vec_unpackl(vector unsigned short __a)1788 vec_unpackl(vector unsigned short __a) {
1789 return __builtin_s390_vupllh(__a);
1790 }
1791
1792 static inline __ATTRS_o_ai vector signed long long
vec_unpackl(vector signed int __a)1793 vec_unpackl(vector signed int __a) {
1794 return __builtin_s390_vuplf(__a);
1795 }
1796
1797 static inline __ATTRS_o_ai vector bool long long
vec_unpackl(vector bool int __a)1798 vec_unpackl(vector bool int __a) {
1799 return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a);
1800 }
1801
1802 static inline __ATTRS_o_ai vector unsigned long long
vec_unpackl(vector unsigned int __a)1803 vec_unpackl(vector unsigned int __a) {
1804 return __builtin_s390_vupllf(__a);
1805 }
1806
1807 /*-- vec_cmpeq --------------------------------------------------------------*/
1808
1809 static inline __ATTRS_o_ai vector bool char
vec_cmpeq(vector bool char __a,vector bool char __b)1810 vec_cmpeq(vector bool char __a, vector bool char __b) {
1811 return (vector bool char)(__a == __b);
1812 }
1813
1814 static inline __ATTRS_o_ai vector bool char
vec_cmpeq(vector signed char __a,vector signed char __b)1815 vec_cmpeq(vector signed char __a, vector signed char __b) {
1816 return (vector bool char)(__a == __b);
1817 }
1818
1819 static inline __ATTRS_o_ai vector bool char
vec_cmpeq(vector unsigned char __a,vector unsigned char __b)1820 vec_cmpeq(vector unsigned char __a, vector unsigned char __b) {
1821 return (vector bool char)(__a == __b);
1822 }
1823
1824 static inline __ATTRS_o_ai vector bool short
vec_cmpeq(vector bool short __a,vector bool short __b)1825 vec_cmpeq(vector bool short __a, vector bool short __b) {
1826 return (vector bool short)(__a == __b);
1827 }
1828
1829 static inline __ATTRS_o_ai vector bool short
vec_cmpeq(vector signed short __a,vector signed short __b)1830 vec_cmpeq(vector signed short __a, vector signed short __b) {
1831 return (vector bool short)(__a == __b);
1832 }
1833
1834 static inline __ATTRS_o_ai vector bool short
vec_cmpeq(vector unsigned short __a,vector unsigned short __b)1835 vec_cmpeq(vector unsigned short __a, vector unsigned short __b) {
1836 return (vector bool short)(__a == __b);
1837 }
1838
1839 static inline __ATTRS_o_ai vector bool int
vec_cmpeq(vector bool int __a,vector bool int __b)1840 vec_cmpeq(vector bool int __a, vector bool int __b) {
1841 return (vector bool int)(__a == __b);
1842 }
1843
1844 static inline __ATTRS_o_ai vector bool int
vec_cmpeq(vector signed int __a,vector signed int __b)1845 vec_cmpeq(vector signed int __a, vector signed int __b) {
1846 return (vector bool int)(__a == __b);
1847 }
1848
1849 static inline __ATTRS_o_ai vector bool int
vec_cmpeq(vector unsigned int __a,vector unsigned int __b)1850 vec_cmpeq(vector unsigned int __a, vector unsigned int __b) {
1851 return (vector bool int)(__a == __b);
1852 }
1853
1854 static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector bool long long __a,vector bool long long __b)1855 vec_cmpeq(vector bool long long __a, vector bool long long __b) {
1856 return (vector bool long long)(__a == __b);
1857 }
1858
1859 static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector signed long long __a,vector signed long long __b)1860 vec_cmpeq(vector signed long long __a, vector signed long long __b) {
1861 return (vector bool long long)(__a == __b);
1862 }
1863
1864 static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector unsigned long long __a,vector unsigned long long __b)1865 vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
1866 return (vector bool long long)(__a == __b);
1867 }
1868
1869 static inline __ATTRS_o_ai vector bool long long
vec_cmpeq(vector double __a,vector double __b)1870 vec_cmpeq(vector double __a, vector double __b) {
1871 return (vector bool long long)(__a == __b);
1872 }
1873
1874 /*-- vec_cmpge --------------------------------------------------------------*/
1875
1876 static inline __ATTRS_o_ai vector bool char
vec_cmpge(vector signed char __a,vector signed char __b)1877 vec_cmpge(vector signed char __a, vector signed char __b) {
1878 return (vector bool char)(__a >= __b);
1879 }
1880
1881 static inline __ATTRS_o_ai vector bool char
vec_cmpge(vector unsigned char __a,vector unsigned char __b)1882 vec_cmpge(vector unsigned char __a, vector unsigned char __b) {
1883 return (vector bool char)(__a >= __b);
1884 }
1885
1886 static inline __ATTRS_o_ai vector bool short
vec_cmpge(vector signed short __a,vector signed short __b)1887 vec_cmpge(vector signed short __a, vector signed short __b) {
1888 return (vector bool short)(__a >= __b);
1889 }
1890
1891 static inline __ATTRS_o_ai vector bool short
vec_cmpge(vector unsigned short __a,vector unsigned short __b)1892 vec_cmpge(vector unsigned short __a, vector unsigned short __b) {
1893 return (vector bool short)(__a >= __b);
1894 }
1895
1896 static inline __ATTRS_o_ai vector bool int
vec_cmpge(vector signed int __a,vector signed int __b)1897 vec_cmpge(vector signed int __a, vector signed int __b) {
1898 return (vector bool int)(__a >= __b);
1899 }
1900
1901 static inline __ATTRS_o_ai vector bool int
vec_cmpge(vector unsigned int __a,vector unsigned int __b)1902 vec_cmpge(vector unsigned int __a, vector unsigned int __b) {
1903 return (vector bool int)(__a >= __b);
1904 }
1905
1906 static inline __ATTRS_o_ai vector bool long long
vec_cmpge(vector signed long long __a,vector signed long long __b)1907 vec_cmpge(vector signed long long __a, vector signed long long __b) {
1908 return (vector bool long long)(__a >= __b);
1909 }
1910
1911 static inline __ATTRS_o_ai vector bool long long
vec_cmpge(vector unsigned long long __a,vector unsigned long long __b)1912 vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) {
1913 return (vector bool long long)(__a >= __b);
1914 }
1915
1916 static inline __ATTRS_o_ai vector bool long long
vec_cmpge(vector double __a,vector double __b)1917 vec_cmpge(vector double __a, vector double __b) {
1918 return (vector bool long long)(__a >= __b);
1919 }
1920
1921 /*-- vec_cmpgt --------------------------------------------------------------*/
1922
1923 static inline __ATTRS_o_ai vector bool char
vec_cmpgt(vector signed char __a,vector signed char __b)1924 vec_cmpgt(vector signed char __a, vector signed char __b) {
1925 return (vector bool char)(__a > __b);
1926 }
1927
1928 static inline __ATTRS_o_ai vector bool char
vec_cmpgt(vector unsigned char __a,vector unsigned char __b)1929 vec_cmpgt(vector unsigned char __a, vector unsigned char __b) {
1930 return (vector bool char)(__a > __b);
1931 }
1932
1933 static inline __ATTRS_o_ai vector bool short
vec_cmpgt(vector signed short __a,vector signed short __b)1934 vec_cmpgt(vector signed short __a, vector signed short __b) {
1935 return (vector bool short)(__a > __b);
1936 }
1937
1938 static inline __ATTRS_o_ai vector bool short
vec_cmpgt(vector unsigned short __a,vector unsigned short __b)1939 vec_cmpgt(vector unsigned short __a, vector unsigned short __b) {
1940 return (vector bool short)(__a > __b);
1941 }
1942
1943 static inline __ATTRS_o_ai vector bool int
vec_cmpgt(vector signed int __a,vector signed int __b)1944 vec_cmpgt(vector signed int __a, vector signed int __b) {
1945 return (vector bool int)(__a > __b);
1946 }
1947
1948 static inline __ATTRS_o_ai vector bool int
vec_cmpgt(vector unsigned int __a,vector unsigned int __b)1949 vec_cmpgt(vector unsigned int __a, vector unsigned int __b) {
1950 return (vector bool int)(__a > __b);
1951 }
1952
1953 static inline __ATTRS_o_ai vector bool long long
vec_cmpgt(vector signed long long __a,vector signed long long __b)1954 vec_cmpgt(vector signed long long __a, vector signed long long __b) {
1955 return (vector bool long long)(__a > __b);
1956 }
1957
1958 static inline __ATTRS_o_ai vector bool long long
vec_cmpgt(vector unsigned long long __a,vector unsigned long long __b)1959 vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
1960 return (vector bool long long)(__a > __b);
1961 }
1962
1963 static inline __ATTRS_o_ai vector bool long long
vec_cmpgt(vector double __a,vector double __b)1964 vec_cmpgt(vector double __a, vector double __b) {
1965 return (vector bool long long)(__a > __b);
1966 }
1967
1968 /*-- vec_cmple --------------------------------------------------------------*/
1969
1970 static inline __ATTRS_o_ai vector bool char
vec_cmple(vector signed char __a,vector signed char __b)1971 vec_cmple(vector signed char __a, vector signed char __b) {
1972 return (vector bool char)(__a <= __b);
1973 }
1974
1975 static inline __ATTRS_o_ai vector bool char
vec_cmple(vector unsigned char __a,vector unsigned char __b)1976 vec_cmple(vector unsigned char __a, vector unsigned char __b) {
1977 return (vector bool char)(__a <= __b);
1978 }
1979
1980 static inline __ATTRS_o_ai vector bool short
vec_cmple(vector signed short __a,vector signed short __b)1981 vec_cmple(vector signed short __a, vector signed short __b) {
1982 return (vector bool short)(__a <= __b);
1983 }
1984
1985 static inline __ATTRS_o_ai vector bool short
vec_cmple(vector unsigned short __a,vector unsigned short __b)1986 vec_cmple(vector unsigned short __a, vector unsigned short __b) {
1987 return (vector bool short)(__a <= __b);
1988 }
1989
1990 static inline __ATTRS_o_ai vector bool int
vec_cmple(vector signed int __a,vector signed int __b)1991 vec_cmple(vector signed int __a, vector signed int __b) {
1992 return (vector bool int)(__a <= __b);
1993 }
1994
1995 static inline __ATTRS_o_ai vector bool int
vec_cmple(vector unsigned int __a,vector unsigned int __b)1996 vec_cmple(vector unsigned int __a, vector unsigned int __b) {
1997 return (vector bool int)(__a <= __b);
1998 }
1999
2000 static inline __ATTRS_o_ai vector bool long long
vec_cmple(vector signed long long __a,vector signed long long __b)2001 vec_cmple(vector signed long long __a, vector signed long long __b) {
2002 return (vector bool long long)(__a <= __b);
2003 }
2004
2005 static inline __ATTRS_o_ai vector bool long long
vec_cmple(vector unsigned long long __a,vector unsigned long long __b)2006 vec_cmple(vector unsigned long long __a, vector unsigned long long __b) {
2007 return (vector bool long long)(__a <= __b);
2008 }
2009
2010 static inline __ATTRS_o_ai vector bool long long
vec_cmple(vector double __a,vector double __b)2011 vec_cmple(vector double __a, vector double __b) {
2012 return (vector bool long long)(__a <= __b);
2013 }
2014
2015 /*-- vec_cmplt --------------------------------------------------------------*/
2016
2017 static inline __ATTRS_o_ai vector bool char
vec_cmplt(vector signed char __a,vector signed char __b)2018 vec_cmplt(vector signed char __a, vector signed char __b) {
2019 return (vector bool char)(__a < __b);
2020 }
2021
2022 static inline __ATTRS_o_ai vector bool char
vec_cmplt(vector unsigned char __a,vector unsigned char __b)2023 vec_cmplt(vector unsigned char __a, vector unsigned char __b) {
2024 return (vector bool char)(__a < __b);
2025 }
2026
2027 static inline __ATTRS_o_ai vector bool short
vec_cmplt(vector signed short __a,vector signed short __b)2028 vec_cmplt(vector signed short __a, vector signed short __b) {
2029 return (vector bool short)(__a < __b);
2030 }
2031
2032 static inline __ATTRS_o_ai vector bool short
vec_cmplt(vector unsigned short __a,vector unsigned short __b)2033 vec_cmplt(vector unsigned short __a, vector unsigned short __b) {
2034 return (vector bool short)(__a < __b);
2035 }
2036
2037 static inline __ATTRS_o_ai vector bool int
vec_cmplt(vector signed int __a,vector signed int __b)2038 vec_cmplt(vector signed int __a, vector signed int __b) {
2039 return (vector bool int)(__a < __b);
2040 }
2041
2042 static inline __ATTRS_o_ai vector bool int
vec_cmplt(vector unsigned int __a,vector unsigned int __b)2043 vec_cmplt(vector unsigned int __a, vector unsigned int __b) {
2044 return (vector bool int)(__a < __b);
2045 }
2046
2047 static inline __ATTRS_o_ai vector bool long long
vec_cmplt(vector signed long long __a,vector signed long long __b)2048 vec_cmplt(vector signed long long __a, vector signed long long __b) {
2049 return (vector bool long long)(__a < __b);
2050 }
2051
2052 static inline __ATTRS_o_ai vector bool long long
vec_cmplt(vector unsigned long long __a,vector unsigned long long __b)2053 vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
2054 return (vector bool long long)(__a < __b);
2055 }
2056
2057 static inline __ATTRS_o_ai vector bool long long
vec_cmplt(vector double __a,vector double __b)2058 vec_cmplt(vector double __a, vector double __b) {
2059 return (vector bool long long)(__a < __b);
2060 }
2061
2062 /*-- vec_all_eq -------------------------------------------------------------*/
2063
2064 static inline __ATTRS_o_ai int
vec_all_eq(vector signed char __a,vector signed char __b)2065 vec_all_eq(vector signed char __a, vector signed char __b) {
2066 int __cc;
2067 __builtin_s390_vceqbs(__a, __b, &__cc);
2068 return __cc == 0;
2069 }
2070
2071 static inline __ATTRS_o_ai int
vec_all_eq(vector signed char __a,vector bool char __b)2072 vec_all_eq(vector signed char __a, vector bool char __b) {
2073 int __cc;
2074 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2075 return __cc == 0;
2076 }
2077
2078 static inline __ATTRS_o_ai int
vec_all_eq(vector bool char __a,vector signed char __b)2079 vec_all_eq(vector bool char __a, vector signed char __b) {
2080 int __cc;
2081 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2082 return __cc == 0;
2083 }
2084
2085 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned char __a,vector unsigned char __b)2086 vec_all_eq(vector unsigned char __a, vector unsigned char __b) {
2087 int __cc;
2088 __builtin_s390_vceqbs((vector signed char)__a,
2089 (vector signed char)__b, &__cc);
2090 return __cc == 0;
2091 }
2092
2093 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned char __a,vector bool char __b)2094 vec_all_eq(vector unsigned char __a, vector bool char __b) {
2095 int __cc;
2096 __builtin_s390_vceqbs((vector signed char)__a,
2097 (vector signed char)__b, &__cc);
2098 return __cc == 0;
2099 }
2100
2101 static inline __ATTRS_o_ai int
vec_all_eq(vector bool char __a,vector unsigned char __b)2102 vec_all_eq(vector bool char __a, vector unsigned char __b) {
2103 int __cc;
2104 __builtin_s390_vceqbs((vector signed char)__a,
2105 (vector signed char)__b, &__cc);
2106 return __cc == 0;
2107 }
2108
2109 static inline __ATTRS_o_ai int
vec_all_eq(vector bool char __a,vector bool char __b)2110 vec_all_eq(vector bool char __a, vector bool char __b) {
2111 int __cc;
2112 __builtin_s390_vceqbs((vector signed char)__a,
2113 (vector signed char)__b, &__cc);
2114 return __cc == 0;
2115 }
2116
2117 static inline __ATTRS_o_ai int
vec_all_eq(vector signed short __a,vector signed short __b)2118 vec_all_eq(vector signed short __a, vector signed short __b) {
2119 int __cc;
2120 __builtin_s390_vceqhs(__a, __b, &__cc);
2121 return __cc == 0;
2122 }
2123
2124 static inline __ATTRS_o_ai int
vec_all_eq(vector signed short __a,vector bool short __b)2125 vec_all_eq(vector signed short __a, vector bool short __b) {
2126 int __cc;
2127 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2128 return __cc == 0;
2129 }
2130
2131 static inline __ATTRS_o_ai int
vec_all_eq(vector bool short __a,vector signed short __b)2132 vec_all_eq(vector bool short __a, vector signed short __b) {
2133 int __cc;
2134 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2135 return __cc == 0;
2136 }
2137
2138 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned short __a,vector unsigned short __b)2139 vec_all_eq(vector unsigned short __a, vector unsigned short __b) {
2140 int __cc;
2141 __builtin_s390_vceqhs((vector signed short)__a,
2142 (vector signed short)__b, &__cc);
2143 return __cc == 0;
2144 }
2145
2146 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned short __a,vector bool short __b)2147 vec_all_eq(vector unsigned short __a, vector bool short __b) {
2148 int __cc;
2149 __builtin_s390_vceqhs((vector signed short)__a,
2150 (vector signed short)__b, &__cc);
2151 return __cc == 0;
2152 }
2153
2154 static inline __ATTRS_o_ai int
vec_all_eq(vector bool short __a,vector unsigned short __b)2155 vec_all_eq(vector bool short __a, vector unsigned short __b) {
2156 int __cc;
2157 __builtin_s390_vceqhs((vector signed short)__a,
2158 (vector signed short)__b, &__cc);
2159 return __cc == 0;
2160 }
2161
2162 static inline __ATTRS_o_ai int
vec_all_eq(vector bool short __a,vector bool short __b)2163 vec_all_eq(vector bool short __a, vector bool short __b) {
2164 int __cc;
2165 __builtin_s390_vceqhs((vector signed short)__a,
2166 (vector signed short)__b, &__cc);
2167 return __cc == 0;
2168 }
2169
2170 static inline __ATTRS_o_ai int
vec_all_eq(vector signed int __a,vector signed int __b)2171 vec_all_eq(vector signed int __a, vector signed int __b) {
2172 int __cc;
2173 __builtin_s390_vceqfs(__a, __b, &__cc);
2174 return __cc == 0;
2175 }
2176
2177 static inline __ATTRS_o_ai int
vec_all_eq(vector signed int __a,vector bool int __b)2178 vec_all_eq(vector signed int __a, vector bool int __b) {
2179 int __cc;
2180 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2181 return __cc == 0;
2182 }
2183
2184 static inline __ATTRS_o_ai int
vec_all_eq(vector bool int __a,vector signed int __b)2185 vec_all_eq(vector bool int __a, vector signed int __b) {
2186 int __cc;
2187 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2188 return __cc == 0;
2189 }
2190
2191 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned int __a,vector unsigned int __b)2192 vec_all_eq(vector unsigned int __a, vector unsigned int __b) {
2193 int __cc;
2194 __builtin_s390_vceqfs((vector signed int)__a,
2195 (vector signed int)__b, &__cc);
2196 return __cc == 0;
2197 }
2198
2199 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned int __a,vector bool int __b)2200 vec_all_eq(vector unsigned int __a, vector bool int __b) {
2201 int __cc;
2202 __builtin_s390_vceqfs((vector signed int)__a,
2203 (vector signed int)__b, &__cc);
2204 return __cc == 0;
2205 }
2206
2207 static inline __ATTRS_o_ai int
vec_all_eq(vector bool int __a,vector unsigned int __b)2208 vec_all_eq(vector bool int __a, vector unsigned int __b) {
2209 int __cc;
2210 __builtin_s390_vceqfs((vector signed int)__a,
2211 (vector signed int)__b, &__cc);
2212 return __cc == 0;
2213 }
2214
2215 static inline __ATTRS_o_ai int
vec_all_eq(vector bool int __a,vector bool int __b)2216 vec_all_eq(vector bool int __a, vector bool int __b) {
2217 int __cc;
2218 __builtin_s390_vceqfs((vector signed int)__a,
2219 (vector signed int)__b, &__cc);
2220 return __cc == 0;
2221 }
2222
2223 static inline __ATTRS_o_ai int
vec_all_eq(vector signed long long __a,vector signed long long __b)2224 vec_all_eq(vector signed long long __a, vector signed long long __b) {
2225 int __cc;
2226 __builtin_s390_vceqgs(__a, __b, &__cc);
2227 return __cc == 0;
2228 }
2229
2230 static inline __ATTRS_o_ai int
vec_all_eq(vector signed long long __a,vector bool long long __b)2231 vec_all_eq(vector signed long long __a, vector bool long long __b) {
2232 int __cc;
2233 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2234 return __cc == 0;
2235 }
2236
2237 static inline __ATTRS_o_ai int
vec_all_eq(vector bool long long __a,vector signed long long __b)2238 vec_all_eq(vector bool long long __a, vector signed long long __b) {
2239 int __cc;
2240 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2241 return __cc == 0;
2242 }
2243
2244 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned long long __a,vector unsigned long long __b)2245 vec_all_eq(vector unsigned long long __a, vector unsigned long long __b) {
2246 int __cc;
2247 __builtin_s390_vceqgs((vector signed long long)__a,
2248 (vector signed long long)__b, &__cc);
2249 return __cc == 0;
2250 }
2251
2252 static inline __ATTRS_o_ai int
vec_all_eq(vector unsigned long long __a,vector bool long long __b)2253 vec_all_eq(vector unsigned long long __a, vector bool long long __b) {
2254 int __cc;
2255 __builtin_s390_vceqgs((vector signed long long)__a,
2256 (vector signed long long)__b, &__cc);
2257 return __cc == 0;
2258 }
2259
2260 static inline __ATTRS_o_ai int
vec_all_eq(vector bool long long __a,vector unsigned long long __b)2261 vec_all_eq(vector bool long long __a, vector unsigned long long __b) {
2262 int __cc;
2263 __builtin_s390_vceqgs((vector signed long long)__a,
2264 (vector signed long long)__b, &__cc);
2265 return __cc == 0;
2266 }
2267
2268 static inline __ATTRS_o_ai int
vec_all_eq(vector bool long long __a,vector bool long long __b)2269 vec_all_eq(vector bool long long __a, vector bool long long __b) {
2270 int __cc;
2271 __builtin_s390_vceqgs((vector signed long long)__a,
2272 (vector signed long long)__b, &__cc);
2273 return __cc == 0;
2274 }
2275
2276 static inline __ATTRS_o_ai int
vec_all_eq(vector double __a,vector double __b)2277 vec_all_eq(vector double __a, vector double __b) {
2278 int __cc;
2279 __builtin_s390_vfcedbs(__a, __b, &__cc);
2280 return __cc == 0;
2281 }
2282
2283 /*-- vec_all_ne -------------------------------------------------------------*/
2284
2285 static inline __ATTRS_o_ai int
vec_all_ne(vector signed char __a,vector signed char __b)2286 vec_all_ne(vector signed char __a, vector signed char __b) {
2287 int __cc;
2288 __builtin_s390_vceqbs(__a, __b, &__cc);
2289 return __cc == 3;
2290 }
2291
2292 static inline __ATTRS_o_ai int
vec_all_ne(vector signed char __a,vector bool char __b)2293 vec_all_ne(vector signed char __a, vector bool char __b) {
2294 int __cc;
2295 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
2296 return __cc == 3;
2297 }
2298
2299 static inline __ATTRS_o_ai int
vec_all_ne(vector bool char __a,vector signed char __b)2300 vec_all_ne(vector bool char __a, vector signed char __b) {
2301 int __cc;
2302 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
2303 return __cc == 3;
2304 }
2305
2306 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned char __a,vector unsigned char __b)2307 vec_all_ne(vector unsigned char __a, vector unsigned char __b) {
2308 int __cc;
2309 __builtin_s390_vceqbs((vector signed char)__a,
2310 (vector signed char)__b, &__cc);
2311 return __cc == 3;
2312 }
2313
2314 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned char __a,vector bool char __b)2315 vec_all_ne(vector unsigned char __a, vector bool char __b) {
2316 int __cc;
2317 __builtin_s390_vceqbs((vector signed char)__a,
2318 (vector signed char)__b, &__cc);
2319 return __cc == 3;
2320 }
2321
2322 static inline __ATTRS_o_ai int
vec_all_ne(vector bool char __a,vector unsigned char __b)2323 vec_all_ne(vector bool char __a, vector unsigned char __b) {
2324 int __cc;
2325 __builtin_s390_vceqbs((vector signed char)__a,
2326 (vector signed char)__b, &__cc);
2327 return __cc == 3;
2328 }
2329
2330 static inline __ATTRS_o_ai int
vec_all_ne(vector bool char __a,vector bool char __b)2331 vec_all_ne(vector bool char __a, vector bool char __b) {
2332 int __cc;
2333 __builtin_s390_vceqbs((vector signed char)__a,
2334 (vector signed char)__b, &__cc);
2335 return __cc == 3;
2336 }
2337
2338 static inline __ATTRS_o_ai int
vec_all_ne(vector signed short __a,vector signed short __b)2339 vec_all_ne(vector signed short __a, vector signed short __b) {
2340 int __cc;
2341 __builtin_s390_vceqhs(__a, __b, &__cc);
2342 return __cc == 3;
2343 }
2344
2345 static inline __ATTRS_o_ai int
vec_all_ne(vector signed short __a,vector bool short __b)2346 vec_all_ne(vector signed short __a, vector bool short __b) {
2347 int __cc;
2348 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
2349 return __cc == 3;
2350 }
2351
2352 static inline __ATTRS_o_ai int
vec_all_ne(vector bool short __a,vector signed short __b)2353 vec_all_ne(vector bool short __a, vector signed short __b) {
2354 int __cc;
2355 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
2356 return __cc == 3;
2357 }
2358
2359 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned short __a,vector unsigned short __b)2360 vec_all_ne(vector unsigned short __a, vector unsigned short __b) {
2361 int __cc;
2362 __builtin_s390_vceqhs((vector signed short)__a,
2363 (vector signed short)__b, &__cc);
2364 return __cc == 3;
2365 }
2366
2367 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned short __a,vector bool short __b)2368 vec_all_ne(vector unsigned short __a, vector bool short __b) {
2369 int __cc;
2370 __builtin_s390_vceqhs((vector signed short)__a,
2371 (vector signed short)__b, &__cc);
2372 return __cc == 3;
2373 }
2374
2375 static inline __ATTRS_o_ai int
vec_all_ne(vector bool short __a,vector unsigned short __b)2376 vec_all_ne(vector bool short __a, vector unsigned short __b) {
2377 int __cc;
2378 __builtin_s390_vceqhs((vector signed short)__a,
2379 (vector signed short)__b, &__cc);
2380 return __cc == 3;
2381 }
2382
2383 static inline __ATTRS_o_ai int
vec_all_ne(vector bool short __a,vector bool short __b)2384 vec_all_ne(vector bool short __a, vector bool short __b) {
2385 int __cc;
2386 __builtin_s390_vceqhs((vector signed short)__a,
2387 (vector signed short)__b, &__cc);
2388 return __cc == 3;
2389 }
2390
2391 static inline __ATTRS_o_ai int
vec_all_ne(vector signed int __a,vector signed int __b)2392 vec_all_ne(vector signed int __a, vector signed int __b) {
2393 int __cc;
2394 __builtin_s390_vceqfs(__a, __b, &__cc);
2395 return __cc == 3;
2396 }
2397
2398 static inline __ATTRS_o_ai int
vec_all_ne(vector signed int __a,vector bool int __b)2399 vec_all_ne(vector signed int __a, vector bool int __b) {
2400 int __cc;
2401 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
2402 return __cc == 3;
2403 }
2404
2405 static inline __ATTRS_o_ai int
vec_all_ne(vector bool int __a,vector signed int __b)2406 vec_all_ne(vector bool int __a, vector signed int __b) {
2407 int __cc;
2408 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
2409 return __cc == 3;
2410 }
2411
2412 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned int __a,vector unsigned int __b)2413 vec_all_ne(vector unsigned int __a, vector unsigned int __b) {
2414 int __cc;
2415 __builtin_s390_vceqfs((vector signed int)__a,
2416 (vector signed int)__b, &__cc);
2417 return __cc == 3;
2418 }
2419
2420 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned int __a,vector bool int __b)2421 vec_all_ne(vector unsigned int __a, vector bool int __b) {
2422 int __cc;
2423 __builtin_s390_vceqfs((vector signed int)__a,
2424 (vector signed int)__b, &__cc);
2425 return __cc == 3;
2426 }
2427
2428 static inline __ATTRS_o_ai int
vec_all_ne(vector bool int __a,vector unsigned int __b)2429 vec_all_ne(vector bool int __a, vector unsigned int __b) {
2430 int __cc;
2431 __builtin_s390_vceqfs((vector signed int)__a,
2432 (vector signed int)__b, &__cc);
2433 return __cc == 3;
2434 }
2435
2436 static inline __ATTRS_o_ai int
vec_all_ne(vector bool int __a,vector bool int __b)2437 vec_all_ne(vector bool int __a, vector bool int __b) {
2438 int __cc;
2439 __builtin_s390_vceqfs((vector signed int)__a,
2440 (vector signed int)__b, &__cc);
2441 return __cc == 3;
2442 }
2443
2444 static inline __ATTRS_o_ai int
vec_all_ne(vector signed long long __a,vector signed long long __b)2445 vec_all_ne(vector signed long long __a, vector signed long long __b) {
2446 int __cc;
2447 __builtin_s390_vceqgs(__a, __b, &__cc);
2448 return __cc == 3;
2449 }
2450
2451 static inline __ATTRS_o_ai int
vec_all_ne(vector signed long long __a,vector bool long long __b)2452 vec_all_ne(vector signed long long __a, vector bool long long __b) {
2453 int __cc;
2454 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
2455 return __cc == 3;
2456 }
2457
2458 static inline __ATTRS_o_ai int
vec_all_ne(vector bool long long __a,vector signed long long __b)2459 vec_all_ne(vector bool long long __a, vector signed long long __b) {
2460 int __cc;
2461 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
2462 return __cc == 3;
2463 }
2464
2465 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned long long __a,vector unsigned long long __b)2466 vec_all_ne(vector unsigned long long __a, vector unsigned long long __b) {
2467 int __cc;
2468 __builtin_s390_vceqgs((vector signed long long)__a,
2469 (vector signed long long)__b, &__cc);
2470 return __cc == 3;
2471 }
2472
2473 static inline __ATTRS_o_ai int
vec_all_ne(vector unsigned long long __a,vector bool long long __b)2474 vec_all_ne(vector unsigned long long __a, vector bool long long __b) {
2475 int __cc;
2476 __builtin_s390_vceqgs((vector signed long long)__a,
2477 (vector signed long long)__b, &__cc);
2478 return __cc == 3;
2479 }
2480
2481 static inline __ATTRS_o_ai int
vec_all_ne(vector bool long long __a,vector unsigned long long __b)2482 vec_all_ne(vector bool long long __a, vector unsigned long long __b) {
2483 int __cc;
2484 __builtin_s390_vceqgs((vector signed long long)__a,
2485 (vector signed long long)__b, &__cc);
2486 return __cc == 3;
2487 }
2488
2489 static inline __ATTRS_o_ai int
vec_all_ne(vector bool long long __a,vector bool long long __b)2490 vec_all_ne(vector bool long long __a, vector bool long long __b) {
2491 int __cc;
2492 __builtin_s390_vceqgs((vector signed long long)__a,
2493 (vector signed long long)__b, &__cc);
2494 return __cc == 3;
2495 }
2496
2497 static inline __ATTRS_o_ai int
vec_all_ne(vector double __a,vector double __b)2498 vec_all_ne(vector double __a, vector double __b) {
2499 int __cc;
2500 __builtin_s390_vfcedbs(__a, __b, &__cc);
2501 return __cc == 3;
2502 }
2503
2504 /*-- vec_all_ge -------------------------------------------------------------*/
2505
2506 static inline __ATTRS_o_ai int
vec_all_ge(vector signed char __a,vector signed char __b)2507 vec_all_ge(vector signed char __a, vector signed char __b) {
2508 int __cc;
2509 __builtin_s390_vchbs(__b, __a, &__cc);
2510 return __cc == 3;
2511 }
2512
2513 static inline __ATTRS_o_ai int
vec_all_ge(vector signed char __a,vector bool char __b)2514 vec_all_ge(vector signed char __a, vector bool char __b) {
2515 int __cc;
2516 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
2517 return __cc == 3;
2518 }
2519
2520 static inline __ATTRS_o_ai int
vec_all_ge(vector bool char __a,vector signed char __b)2521 vec_all_ge(vector bool char __a, vector signed char __b) {
2522 int __cc;
2523 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
2524 return __cc == 3;
2525 }
2526
2527 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned char __a,vector unsigned char __b)2528 vec_all_ge(vector unsigned char __a, vector unsigned char __b) {
2529 int __cc;
2530 __builtin_s390_vchlbs(__b, __a, &__cc);
2531 return __cc == 3;
2532 }
2533
2534 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned char __a,vector bool char __b)2535 vec_all_ge(vector unsigned char __a, vector bool char __b) {
2536 int __cc;
2537 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
2538 return __cc == 3;
2539 }
2540
2541 static inline __ATTRS_o_ai int
vec_all_ge(vector bool char __a,vector unsigned char __b)2542 vec_all_ge(vector bool char __a, vector unsigned char __b) {
2543 int __cc;
2544 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
2545 return __cc == 3;
2546 }
2547
2548 static inline __ATTRS_o_ai int
vec_all_ge(vector bool char __a,vector bool char __b)2549 vec_all_ge(vector bool char __a, vector bool char __b) {
2550 int __cc;
2551 __builtin_s390_vchlbs((vector unsigned char)__b,
2552 (vector unsigned char)__a, &__cc);
2553 return __cc == 3;
2554 }
2555
2556 static inline __ATTRS_o_ai int
vec_all_ge(vector signed short __a,vector signed short __b)2557 vec_all_ge(vector signed short __a, vector signed short __b) {
2558 int __cc;
2559 __builtin_s390_vchhs(__b, __a, &__cc);
2560 return __cc == 3;
2561 }
2562
2563 static inline __ATTRS_o_ai int
vec_all_ge(vector signed short __a,vector bool short __b)2564 vec_all_ge(vector signed short __a, vector bool short __b) {
2565 int __cc;
2566 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
2567 return __cc == 3;
2568 }
2569
2570 static inline __ATTRS_o_ai int
vec_all_ge(vector bool short __a,vector signed short __b)2571 vec_all_ge(vector bool short __a, vector signed short __b) {
2572 int __cc;
2573 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
2574 return __cc == 3;
2575 }
2576
2577 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned short __a,vector unsigned short __b)2578 vec_all_ge(vector unsigned short __a, vector unsigned short __b) {
2579 int __cc;
2580 __builtin_s390_vchlhs(__b, __a, &__cc);
2581 return __cc == 3;
2582 }
2583
2584 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned short __a,vector bool short __b)2585 vec_all_ge(vector unsigned short __a, vector bool short __b) {
2586 int __cc;
2587 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
2588 return __cc == 3;
2589 }
2590
2591 static inline __ATTRS_o_ai int
vec_all_ge(vector bool short __a,vector unsigned short __b)2592 vec_all_ge(vector bool short __a, vector unsigned short __b) {
2593 int __cc;
2594 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
2595 return __cc == 3;
2596 }
2597
2598 static inline __ATTRS_o_ai int
vec_all_ge(vector bool short __a,vector bool short __b)2599 vec_all_ge(vector bool short __a, vector bool short __b) {
2600 int __cc;
2601 __builtin_s390_vchlhs((vector unsigned short)__b,
2602 (vector unsigned short)__a, &__cc);
2603 return __cc == 3;
2604 }
2605
2606 static inline __ATTRS_o_ai int
vec_all_ge(vector signed int __a,vector signed int __b)2607 vec_all_ge(vector signed int __a, vector signed int __b) {
2608 int __cc;
2609 __builtin_s390_vchfs(__b, __a, &__cc);
2610 return __cc == 3;
2611 }
2612
2613 static inline __ATTRS_o_ai int
vec_all_ge(vector signed int __a,vector bool int __b)2614 vec_all_ge(vector signed int __a, vector bool int __b) {
2615 int __cc;
2616 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
2617 return __cc == 3;
2618 }
2619
2620 static inline __ATTRS_o_ai int
vec_all_ge(vector bool int __a,vector signed int __b)2621 vec_all_ge(vector bool int __a, vector signed int __b) {
2622 int __cc;
2623 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
2624 return __cc == 3;
2625 }
2626
2627 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned int __a,vector unsigned int __b)2628 vec_all_ge(vector unsigned int __a, vector unsigned int __b) {
2629 int __cc;
2630 __builtin_s390_vchlfs(__b, __a, &__cc);
2631 return __cc == 3;
2632 }
2633
2634 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned int __a,vector bool int __b)2635 vec_all_ge(vector unsigned int __a, vector bool int __b) {
2636 int __cc;
2637 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
2638 return __cc == 3;
2639 }
2640
2641 static inline __ATTRS_o_ai int
vec_all_ge(vector bool int __a,vector unsigned int __b)2642 vec_all_ge(vector bool int __a, vector unsigned int __b) {
2643 int __cc;
2644 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
2645 return __cc == 3;
2646 }
2647
2648 static inline __ATTRS_o_ai int
vec_all_ge(vector bool int __a,vector bool int __b)2649 vec_all_ge(vector bool int __a, vector bool int __b) {
2650 int __cc;
2651 __builtin_s390_vchlfs((vector unsigned int)__b,
2652 (vector unsigned int)__a, &__cc);
2653 return __cc == 3;
2654 }
2655
2656 static inline __ATTRS_o_ai int
vec_all_ge(vector signed long long __a,vector signed long long __b)2657 vec_all_ge(vector signed long long __a, vector signed long long __b) {
2658 int __cc;
2659 __builtin_s390_vchgs(__b, __a, &__cc);
2660 return __cc == 3;
2661 }
2662
2663 static inline __ATTRS_o_ai int
vec_all_ge(vector signed long long __a,vector bool long long __b)2664 vec_all_ge(vector signed long long __a, vector bool long long __b) {
2665 int __cc;
2666 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
2667 return __cc == 3;
2668 }
2669
2670 static inline __ATTRS_o_ai int
vec_all_ge(vector bool long long __a,vector signed long long __b)2671 vec_all_ge(vector bool long long __a, vector signed long long __b) {
2672 int __cc;
2673 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
2674 return __cc == 3;
2675 }
2676
2677 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned long long __a,vector unsigned long long __b)2678 vec_all_ge(vector unsigned long long __a, vector unsigned long long __b) {
2679 int __cc;
2680 __builtin_s390_vchlgs(__b, __a, &__cc);
2681 return __cc == 3;
2682 }
2683
2684 static inline __ATTRS_o_ai int
vec_all_ge(vector unsigned long long __a,vector bool long long __b)2685 vec_all_ge(vector unsigned long long __a, vector bool long long __b) {
2686 int __cc;
2687 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
2688 return __cc == 3;
2689 }
2690
2691 static inline __ATTRS_o_ai int
vec_all_ge(vector bool long long __a,vector unsigned long long __b)2692 vec_all_ge(vector bool long long __a, vector unsigned long long __b) {
2693 int __cc;
2694 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
2695 return __cc == 3;
2696 }
2697
2698 static inline __ATTRS_o_ai int
vec_all_ge(vector bool long long __a,vector bool long long __b)2699 vec_all_ge(vector bool long long __a, vector bool long long __b) {
2700 int __cc;
2701 __builtin_s390_vchlgs((vector unsigned long long)__b,
2702 (vector unsigned long long)__a, &__cc);
2703 return __cc == 3;
2704 }
2705
2706 static inline __ATTRS_o_ai int
vec_all_ge(vector double __a,vector double __b)2707 vec_all_ge(vector double __a, vector double __b) {
2708 int __cc;
2709 __builtin_s390_vfchedbs(__a, __b, &__cc);
2710 return __cc == 0;
2711 }
2712
2713 /*-- vec_all_gt -------------------------------------------------------------*/
2714
2715 static inline __ATTRS_o_ai int
vec_all_gt(vector signed char __a,vector signed char __b)2716 vec_all_gt(vector signed char __a, vector signed char __b) {
2717 int __cc;
2718 __builtin_s390_vchbs(__a, __b, &__cc);
2719 return __cc == 0;
2720 }
2721
2722 static inline __ATTRS_o_ai int
vec_all_gt(vector signed char __a,vector bool char __b)2723 vec_all_gt(vector signed char __a, vector bool char __b) {
2724 int __cc;
2725 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
2726 return __cc == 0;
2727 }
2728
2729 static inline __ATTRS_o_ai int
vec_all_gt(vector bool char __a,vector signed char __b)2730 vec_all_gt(vector bool char __a, vector signed char __b) {
2731 int __cc;
2732 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
2733 return __cc == 0;
2734 }
2735
2736 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned char __a,vector unsigned char __b)2737 vec_all_gt(vector unsigned char __a, vector unsigned char __b) {
2738 int __cc;
2739 __builtin_s390_vchlbs(__a, __b, &__cc);
2740 return __cc == 0;
2741 }
2742
2743 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned char __a,vector bool char __b)2744 vec_all_gt(vector unsigned char __a, vector bool char __b) {
2745 int __cc;
2746 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
2747 return __cc == 0;
2748 }
2749
2750 static inline __ATTRS_o_ai int
vec_all_gt(vector bool char __a,vector unsigned char __b)2751 vec_all_gt(vector bool char __a, vector unsigned char __b) {
2752 int __cc;
2753 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
2754 return __cc == 0;
2755 }
2756
2757 static inline __ATTRS_o_ai int
vec_all_gt(vector bool char __a,vector bool char __b)2758 vec_all_gt(vector bool char __a, vector bool char __b) {
2759 int __cc;
2760 __builtin_s390_vchlbs((vector unsigned char)__a,
2761 (vector unsigned char)__b, &__cc);
2762 return __cc == 0;
2763 }
2764
2765 static inline __ATTRS_o_ai int
vec_all_gt(vector signed short __a,vector signed short __b)2766 vec_all_gt(vector signed short __a, vector signed short __b) {
2767 int __cc;
2768 __builtin_s390_vchhs(__a, __b, &__cc);
2769 return __cc == 0;
2770 }
2771
2772 static inline __ATTRS_o_ai int
vec_all_gt(vector signed short __a,vector bool short __b)2773 vec_all_gt(vector signed short __a, vector bool short __b) {
2774 int __cc;
2775 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
2776 return __cc == 0;
2777 }
2778
2779 static inline __ATTRS_o_ai int
vec_all_gt(vector bool short __a,vector signed short __b)2780 vec_all_gt(vector bool short __a, vector signed short __b) {
2781 int __cc;
2782 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
2783 return __cc == 0;
2784 }
2785
2786 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned short __a,vector unsigned short __b)2787 vec_all_gt(vector unsigned short __a, vector unsigned short __b) {
2788 int __cc;
2789 __builtin_s390_vchlhs(__a, __b, &__cc);
2790 return __cc == 0;
2791 }
2792
2793 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned short __a,vector bool short __b)2794 vec_all_gt(vector unsigned short __a, vector bool short __b) {
2795 int __cc;
2796 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
2797 return __cc == 0;
2798 }
2799
2800 static inline __ATTRS_o_ai int
vec_all_gt(vector bool short __a,vector unsigned short __b)2801 vec_all_gt(vector bool short __a, vector unsigned short __b) {
2802 int __cc;
2803 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
2804 return __cc == 0;
2805 }
2806
2807 static inline __ATTRS_o_ai int
vec_all_gt(vector bool short __a,vector bool short __b)2808 vec_all_gt(vector bool short __a, vector bool short __b) {
2809 int __cc;
2810 __builtin_s390_vchlhs((vector unsigned short)__a,
2811 (vector unsigned short)__b, &__cc);
2812 return __cc == 0;
2813 }
2814
2815 static inline __ATTRS_o_ai int
vec_all_gt(vector signed int __a,vector signed int __b)2816 vec_all_gt(vector signed int __a, vector signed int __b) {
2817 int __cc;
2818 __builtin_s390_vchfs(__a, __b, &__cc);
2819 return __cc == 0;
2820 }
2821
2822 static inline __ATTRS_o_ai int
vec_all_gt(vector signed int __a,vector bool int __b)2823 vec_all_gt(vector signed int __a, vector bool int __b) {
2824 int __cc;
2825 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
2826 return __cc == 0;
2827 }
2828
2829 static inline __ATTRS_o_ai int
vec_all_gt(vector bool int __a,vector signed int __b)2830 vec_all_gt(vector bool int __a, vector signed int __b) {
2831 int __cc;
2832 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
2833 return __cc == 0;
2834 }
2835
2836 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned int __a,vector unsigned int __b)2837 vec_all_gt(vector unsigned int __a, vector unsigned int __b) {
2838 int __cc;
2839 __builtin_s390_vchlfs(__a, __b, &__cc);
2840 return __cc == 0;
2841 }
2842
2843 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned int __a,vector bool int __b)2844 vec_all_gt(vector unsigned int __a, vector bool int __b) {
2845 int __cc;
2846 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
2847 return __cc == 0;
2848 }
2849
2850 static inline __ATTRS_o_ai int
vec_all_gt(vector bool int __a,vector unsigned int __b)2851 vec_all_gt(vector bool int __a, vector unsigned int __b) {
2852 int __cc;
2853 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
2854 return __cc == 0;
2855 }
2856
2857 static inline __ATTRS_o_ai int
vec_all_gt(vector bool int __a,vector bool int __b)2858 vec_all_gt(vector bool int __a, vector bool int __b) {
2859 int __cc;
2860 __builtin_s390_vchlfs((vector unsigned int)__a,
2861 (vector unsigned int)__b, &__cc);
2862 return __cc == 0;
2863 }
2864
2865 static inline __ATTRS_o_ai int
vec_all_gt(vector signed long long __a,vector signed long long __b)2866 vec_all_gt(vector signed long long __a, vector signed long long __b) {
2867 int __cc;
2868 __builtin_s390_vchgs(__a, __b, &__cc);
2869 return __cc == 0;
2870 }
2871
2872 static inline __ATTRS_o_ai int
vec_all_gt(vector signed long long __a,vector bool long long __b)2873 vec_all_gt(vector signed long long __a, vector bool long long __b) {
2874 int __cc;
2875 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
2876 return __cc == 0;
2877 }
2878
2879 static inline __ATTRS_o_ai int
vec_all_gt(vector bool long long __a,vector signed long long __b)2880 vec_all_gt(vector bool long long __a, vector signed long long __b) {
2881 int __cc;
2882 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
2883 return __cc == 0;
2884 }
2885
2886 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned long long __a,vector unsigned long long __b)2887 vec_all_gt(vector unsigned long long __a, vector unsigned long long __b) {
2888 int __cc;
2889 __builtin_s390_vchlgs(__a, __b, &__cc);
2890 return __cc == 0;
2891 }
2892
2893 static inline __ATTRS_o_ai int
vec_all_gt(vector unsigned long long __a,vector bool long long __b)2894 vec_all_gt(vector unsigned long long __a, vector bool long long __b) {
2895 int __cc;
2896 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
2897 return __cc == 0;
2898 }
2899
2900 static inline __ATTRS_o_ai int
vec_all_gt(vector bool long long __a,vector unsigned long long __b)2901 vec_all_gt(vector bool long long __a, vector unsigned long long __b) {
2902 int __cc;
2903 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
2904 return __cc == 0;
2905 }
2906
2907 static inline __ATTRS_o_ai int
vec_all_gt(vector bool long long __a,vector bool long long __b)2908 vec_all_gt(vector bool long long __a, vector bool long long __b) {
2909 int __cc;
2910 __builtin_s390_vchlgs((vector unsigned long long)__a,
2911 (vector unsigned long long)__b, &__cc);
2912 return __cc == 0;
2913 }
2914
2915 static inline __ATTRS_o_ai int
vec_all_gt(vector double __a,vector double __b)2916 vec_all_gt(vector double __a, vector double __b) {
2917 int __cc;
2918 __builtin_s390_vfchdbs(__a, __b, &__cc);
2919 return __cc == 0;
2920 }
2921
2922 /*-- vec_all_le -------------------------------------------------------------*/
2923
2924 static inline __ATTRS_o_ai int
vec_all_le(vector signed char __a,vector signed char __b)2925 vec_all_le(vector signed char __a, vector signed char __b) {
2926 int __cc;
2927 __builtin_s390_vchbs(__a, __b, &__cc);
2928 return __cc == 3;
2929 }
2930
2931 static inline __ATTRS_o_ai int
vec_all_le(vector signed char __a,vector bool char __b)2932 vec_all_le(vector signed char __a, vector bool char __b) {
2933 int __cc;
2934 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
2935 return __cc == 3;
2936 }
2937
2938 static inline __ATTRS_o_ai int
vec_all_le(vector bool char __a,vector signed char __b)2939 vec_all_le(vector bool char __a, vector signed char __b) {
2940 int __cc;
2941 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
2942 return __cc == 3;
2943 }
2944
2945 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned char __a,vector unsigned char __b)2946 vec_all_le(vector unsigned char __a, vector unsigned char __b) {
2947 int __cc;
2948 __builtin_s390_vchlbs(__a, __b, &__cc);
2949 return __cc == 3;
2950 }
2951
2952 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned char __a,vector bool char __b)2953 vec_all_le(vector unsigned char __a, vector bool char __b) {
2954 int __cc;
2955 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
2956 return __cc == 3;
2957 }
2958
2959 static inline __ATTRS_o_ai int
vec_all_le(vector bool char __a,vector unsigned char __b)2960 vec_all_le(vector bool char __a, vector unsigned char __b) {
2961 int __cc;
2962 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
2963 return __cc == 3;
2964 }
2965
2966 static inline __ATTRS_o_ai int
vec_all_le(vector bool char __a,vector bool char __b)2967 vec_all_le(vector bool char __a, vector bool char __b) {
2968 int __cc;
2969 __builtin_s390_vchlbs((vector unsigned char)__a,
2970 (vector unsigned char)__b, &__cc);
2971 return __cc == 3;
2972 }
2973
2974 static inline __ATTRS_o_ai int
vec_all_le(vector signed short __a,vector signed short __b)2975 vec_all_le(vector signed short __a, vector signed short __b) {
2976 int __cc;
2977 __builtin_s390_vchhs(__a, __b, &__cc);
2978 return __cc == 3;
2979 }
2980
2981 static inline __ATTRS_o_ai int
vec_all_le(vector signed short __a,vector bool short __b)2982 vec_all_le(vector signed short __a, vector bool short __b) {
2983 int __cc;
2984 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
2985 return __cc == 3;
2986 }
2987
2988 static inline __ATTRS_o_ai int
vec_all_le(vector bool short __a,vector signed short __b)2989 vec_all_le(vector bool short __a, vector signed short __b) {
2990 int __cc;
2991 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
2992 return __cc == 3;
2993 }
2994
2995 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned short __a,vector unsigned short __b)2996 vec_all_le(vector unsigned short __a, vector unsigned short __b) {
2997 int __cc;
2998 __builtin_s390_vchlhs(__a, __b, &__cc);
2999 return __cc == 3;
3000 }
3001
3002 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned short __a,vector bool short __b)3003 vec_all_le(vector unsigned short __a, vector bool short __b) {
3004 int __cc;
3005 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
3006 return __cc == 3;
3007 }
3008
3009 static inline __ATTRS_o_ai int
vec_all_le(vector bool short __a,vector unsigned short __b)3010 vec_all_le(vector bool short __a, vector unsigned short __b) {
3011 int __cc;
3012 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
3013 return __cc == 3;
3014 }
3015
3016 static inline __ATTRS_o_ai int
vec_all_le(vector bool short __a,vector bool short __b)3017 vec_all_le(vector bool short __a, vector bool short __b) {
3018 int __cc;
3019 __builtin_s390_vchlhs((vector unsigned short)__a,
3020 (vector unsigned short)__b, &__cc);
3021 return __cc == 3;
3022 }
3023
3024 static inline __ATTRS_o_ai int
vec_all_le(vector signed int __a,vector signed int __b)3025 vec_all_le(vector signed int __a, vector signed int __b) {
3026 int __cc;
3027 __builtin_s390_vchfs(__a, __b, &__cc);
3028 return __cc == 3;
3029 }
3030
3031 static inline __ATTRS_o_ai int
vec_all_le(vector signed int __a,vector bool int __b)3032 vec_all_le(vector signed int __a, vector bool int __b) {
3033 int __cc;
3034 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
3035 return __cc == 3;
3036 }
3037
3038 static inline __ATTRS_o_ai int
vec_all_le(vector bool int __a,vector signed int __b)3039 vec_all_le(vector bool int __a, vector signed int __b) {
3040 int __cc;
3041 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
3042 return __cc == 3;
3043 }
3044
3045 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned int __a,vector unsigned int __b)3046 vec_all_le(vector unsigned int __a, vector unsigned int __b) {
3047 int __cc;
3048 __builtin_s390_vchlfs(__a, __b, &__cc);
3049 return __cc == 3;
3050 }
3051
3052 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned int __a,vector bool int __b)3053 vec_all_le(vector unsigned int __a, vector bool int __b) {
3054 int __cc;
3055 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
3056 return __cc == 3;
3057 }
3058
3059 static inline __ATTRS_o_ai int
vec_all_le(vector bool int __a,vector unsigned int __b)3060 vec_all_le(vector bool int __a, vector unsigned int __b) {
3061 int __cc;
3062 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
3063 return __cc == 3;
3064 }
3065
3066 static inline __ATTRS_o_ai int
vec_all_le(vector bool int __a,vector bool int __b)3067 vec_all_le(vector bool int __a, vector bool int __b) {
3068 int __cc;
3069 __builtin_s390_vchlfs((vector unsigned int)__a,
3070 (vector unsigned int)__b, &__cc);
3071 return __cc == 3;
3072 }
3073
3074 static inline __ATTRS_o_ai int
vec_all_le(vector signed long long __a,vector signed long long __b)3075 vec_all_le(vector signed long long __a, vector signed long long __b) {
3076 int __cc;
3077 __builtin_s390_vchgs(__a, __b, &__cc);
3078 return __cc == 3;
3079 }
3080
3081 static inline __ATTRS_o_ai int
vec_all_le(vector signed long long __a,vector bool long long __b)3082 vec_all_le(vector signed long long __a, vector bool long long __b) {
3083 int __cc;
3084 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
3085 return __cc == 3;
3086 }
3087
3088 static inline __ATTRS_o_ai int
vec_all_le(vector bool long long __a,vector signed long long __b)3089 vec_all_le(vector bool long long __a, vector signed long long __b) {
3090 int __cc;
3091 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
3092 return __cc == 3;
3093 }
3094
3095 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned long long __a,vector unsigned long long __b)3096 vec_all_le(vector unsigned long long __a, vector unsigned long long __b) {
3097 int __cc;
3098 __builtin_s390_vchlgs(__a, __b, &__cc);
3099 return __cc == 3;
3100 }
3101
3102 static inline __ATTRS_o_ai int
vec_all_le(vector unsigned long long __a,vector bool long long __b)3103 vec_all_le(vector unsigned long long __a, vector bool long long __b) {
3104 int __cc;
3105 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
3106 return __cc == 3;
3107 }
3108
3109 static inline __ATTRS_o_ai int
vec_all_le(vector bool long long __a,vector unsigned long long __b)3110 vec_all_le(vector bool long long __a, vector unsigned long long __b) {
3111 int __cc;
3112 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
3113 return __cc == 3;
3114 }
3115
3116 static inline __ATTRS_o_ai int
vec_all_le(vector bool long long __a,vector bool long long __b)3117 vec_all_le(vector bool long long __a, vector bool long long __b) {
3118 int __cc;
3119 __builtin_s390_vchlgs((vector unsigned long long)__a,
3120 (vector unsigned long long)__b, &__cc);
3121 return __cc == 3;
3122 }
3123
3124 static inline __ATTRS_o_ai int
vec_all_le(vector double __a,vector double __b)3125 vec_all_le(vector double __a, vector double __b) {
3126 int __cc;
3127 __builtin_s390_vfchedbs(__b, __a, &__cc);
3128 return __cc == 0;
3129 }
3130
3131 /*-- vec_all_lt -------------------------------------------------------------*/
3132
3133 static inline __ATTRS_o_ai int
vec_all_lt(vector signed char __a,vector signed char __b)3134 vec_all_lt(vector signed char __a, vector signed char __b) {
3135 int __cc;
3136 __builtin_s390_vchbs(__b, __a, &__cc);
3137 return __cc == 0;
3138 }
3139
3140 static inline __ATTRS_o_ai int
vec_all_lt(vector signed char __a,vector bool char __b)3141 vec_all_lt(vector signed char __a, vector bool char __b) {
3142 int __cc;
3143 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3144 return __cc == 0;
3145 }
3146
3147 static inline __ATTRS_o_ai int
vec_all_lt(vector bool char __a,vector signed char __b)3148 vec_all_lt(vector bool char __a, vector signed char __b) {
3149 int __cc;
3150 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3151 return __cc == 0;
3152 }
3153
3154 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned char __a,vector unsigned char __b)3155 vec_all_lt(vector unsigned char __a, vector unsigned char __b) {
3156 int __cc;
3157 __builtin_s390_vchlbs(__b, __a, &__cc);
3158 return __cc == 0;
3159 }
3160
3161 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned char __a,vector bool char __b)3162 vec_all_lt(vector unsigned char __a, vector bool char __b) {
3163 int __cc;
3164 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3165 return __cc == 0;
3166 }
3167
3168 static inline __ATTRS_o_ai int
vec_all_lt(vector bool char __a,vector unsigned char __b)3169 vec_all_lt(vector bool char __a, vector unsigned char __b) {
3170 int __cc;
3171 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3172 return __cc == 0;
3173 }
3174
3175 static inline __ATTRS_o_ai int
vec_all_lt(vector bool char __a,vector bool char __b)3176 vec_all_lt(vector bool char __a, vector bool char __b) {
3177 int __cc;
3178 __builtin_s390_vchlbs((vector unsigned char)__b,
3179 (vector unsigned char)__a, &__cc);
3180 return __cc == 0;
3181 }
3182
3183 static inline __ATTRS_o_ai int
vec_all_lt(vector signed short __a,vector signed short __b)3184 vec_all_lt(vector signed short __a, vector signed short __b) {
3185 int __cc;
3186 __builtin_s390_vchhs(__b, __a, &__cc);
3187 return __cc == 0;
3188 }
3189
3190 static inline __ATTRS_o_ai int
vec_all_lt(vector signed short __a,vector bool short __b)3191 vec_all_lt(vector signed short __a, vector bool short __b) {
3192 int __cc;
3193 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3194 return __cc == 0;
3195 }
3196
3197 static inline __ATTRS_o_ai int
vec_all_lt(vector bool short __a,vector signed short __b)3198 vec_all_lt(vector bool short __a, vector signed short __b) {
3199 int __cc;
3200 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3201 return __cc == 0;
3202 }
3203
3204 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned short __a,vector unsigned short __b)3205 vec_all_lt(vector unsigned short __a, vector unsigned short __b) {
3206 int __cc;
3207 __builtin_s390_vchlhs(__b, __a, &__cc);
3208 return __cc == 0;
3209 }
3210
3211 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned short __a,vector bool short __b)3212 vec_all_lt(vector unsigned short __a, vector bool short __b) {
3213 int __cc;
3214 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3215 return __cc == 0;
3216 }
3217
3218 static inline __ATTRS_o_ai int
vec_all_lt(vector bool short __a,vector unsigned short __b)3219 vec_all_lt(vector bool short __a, vector unsigned short __b) {
3220 int __cc;
3221 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3222 return __cc == 0;
3223 }
3224
3225 static inline __ATTRS_o_ai int
vec_all_lt(vector bool short __a,vector bool short __b)3226 vec_all_lt(vector bool short __a, vector bool short __b) {
3227 int __cc;
3228 __builtin_s390_vchlhs((vector unsigned short)__b,
3229 (vector unsigned short)__a, &__cc);
3230 return __cc == 0;
3231 }
3232
3233 static inline __ATTRS_o_ai int
vec_all_lt(vector signed int __a,vector signed int __b)3234 vec_all_lt(vector signed int __a, vector signed int __b) {
3235 int __cc;
3236 __builtin_s390_vchfs(__b, __a, &__cc);
3237 return __cc == 0;
3238 }
3239
3240 static inline __ATTRS_o_ai int
vec_all_lt(vector signed int __a,vector bool int __b)3241 vec_all_lt(vector signed int __a, vector bool int __b) {
3242 int __cc;
3243 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3244 return __cc == 0;
3245 }
3246
3247 static inline __ATTRS_o_ai int
vec_all_lt(vector bool int __a,vector signed int __b)3248 vec_all_lt(vector bool int __a, vector signed int __b) {
3249 int __cc;
3250 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3251 return __cc == 0;
3252 }
3253
3254 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned int __a,vector unsigned int __b)3255 vec_all_lt(vector unsigned int __a, vector unsigned int __b) {
3256 int __cc;
3257 __builtin_s390_vchlfs(__b, __a, &__cc);
3258 return __cc == 0;
3259 }
3260
3261 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned int __a,vector bool int __b)3262 vec_all_lt(vector unsigned int __a, vector bool int __b) {
3263 int __cc;
3264 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3265 return __cc == 0;
3266 }
3267
3268 static inline __ATTRS_o_ai int
vec_all_lt(vector bool int __a,vector unsigned int __b)3269 vec_all_lt(vector bool int __a, vector unsigned int __b) {
3270 int __cc;
3271 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3272 return __cc == 0;
3273 }
3274
3275 static inline __ATTRS_o_ai int
vec_all_lt(vector bool int __a,vector bool int __b)3276 vec_all_lt(vector bool int __a, vector bool int __b) {
3277 int __cc;
3278 __builtin_s390_vchlfs((vector unsigned int)__b,
3279 (vector unsigned int)__a, &__cc);
3280 return __cc == 0;
3281 }
3282
3283 static inline __ATTRS_o_ai int
vec_all_lt(vector signed long long __a,vector signed long long __b)3284 vec_all_lt(vector signed long long __a, vector signed long long __b) {
3285 int __cc;
3286 __builtin_s390_vchgs(__b, __a, &__cc);
3287 return __cc == 0;
3288 }
3289
3290 static inline __ATTRS_o_ai int
vec_all_lt(vector signed long long __a,vector bool long long __b)3291 vec_all_lt(vector signed long long __a, vector bool long long __b) {
3292 int __cc;
3293 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3294 return __cc == 0;
3295 }
3296
3297 static inline __ATTRS_o_ai int
vec_all_lt(vector bool long long __a,vector signed long long __b)3298 vec_all_lt(vector bool long long __a, vector signed long long __b) {
3299 int __cc;
3300 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
3301 return __cc == 0;
3302 }
3303
3304 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned long long __a,vector unsigned long long __b)3305 vec_all_lt(vector unsigned long long __a, vector unsigned long long __b) {
3306 int __cc;
3307 __builtin_s390_vchlgs(__b, __a, &__cc);
3308 return __cc == 0;
3309 }
3310
3311 static inline __ATTRS_o_ai int
vec_all_lt(vector unsigned long long __a,vector bool long long __b)3312 vec_all_lt(vector unsigned long long __a, vector bool long long __b) {
3313 int __cc;
3314 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
3315 return __cc == 0;
3316 }
3317
3318 static inline __ATTRS_o_ai int
vec_all_lt(vector bool long long __a,vector unsigned long long __b)3319 vec_all_lt(vector bool long long __a, vector unsigned long long __b) {
3320 int __cc;
3321 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
3322 return __cc == 0;
3323 }
3324
3325 static inline __ATTRS_o_ai int
vec_all_lt(vector bool long long __a,vector bool long long __b)3326 vec_all_lt(vector bool long long __a, vector bool long long __b) {
3327 int __cc;
3328 __builtin_s390_vchlgs((vector unsigned long long)__b,
3329 (vector unsigned long long)__a, &__cc);
3330 return __cc == 0;
3331 }
3332
3333 static inline __ATTRS_o_ai int
vec_all_lt(vector double __a,vector double __b)3334 vec_all_lt(vector double __a, vector double __b) {
3335 int __cc;
3336 __builtin_s390_vfchdbs(__b, __a, &__cc);
3337 return __cc == 0;
3338 }
3339
3340 /*-- vec_all_nge ------------------------------------------------------------*/
3341
3342 static inline __ATTRS_ai int
vec_all_nge(vector double __a,vector double __b)3343 vec_all_nge(vector double __a, vector double __b) {
3344 int __cc;
3345 __builtin_s390_vfchedbs(__a, __b, &__cc);
3346 return __cc == 3;
3347 }
3348
3349 /*-- vec_all_ngt ------------------------------------------------------------*/
3350
3351 static inline __ATTRS_ai int
vec_all_ngt(vector double __a,vector double __b)3352 vec_all_ngt(vector double __a, vector double __b) {
3353 int __cc;
3354 __builtin_s390_vfchdbs(__a, __b, &__cc);
3355 return __cc == 3;
3356 }
3357
3358 /*-- vec_all_nle ------------------------------------------------------------*/
3359
3360 static inline __ATTRS_ai int
vec_all_nle(vector double __a,vector double __b)3361 vec_all_nle(vector double __a, vector double __b) {
3362 int __cc;
3363 __builtin_s390_vfchedbs(__b, __a, &__cc);
3364 return __cc == 3;
3365 }
3366
3367 /*-- vec_all_nlt ------------------------------------------------------------*/
3368
3369 static inline __ATTRS_ai int
vec_all_nlt(vector double __a,vector double __b)3370 vec_all_nlt(vector double __a, vector double __b) {
3371 int __cc;
3372 __builtin_s390_vfchdbs(__b, __a, &__cc);
3373 return __cc == 3;
3374 }
3375
3376 /*-- vec_all_nan ------------------------------------------------------------*/
3377
3378 static inline __ATTRS_ai int
vec_all_nan(vector double __a)3379 vec_all_nan(vector double __a) {
3380 int __cc;
3381 __builtin_s390_vftcidb(__a, 15, &__cc);
3382 return __cc == 0;
3383 }
3384
3385 /*-- vec_all_numeric --------------------------------------------------------*/
3386
3387 static inline __ATTRS_ai int
vec_all_numeric(vector double __a)3388 vec_all_numeric(vector double __a) {
3389 int __cc;
3390 __builtin_s390_vftcidb(__a, 15, &__cc);
3391 return __cc == 3;
3392 }
3393
3394 /*-- vec_any_eq -------------------------------------------------------------*/
3395
3396 static inline __ATTRS_o_ai int
vec_any_eq(vector signed char __a,vector signed char __b)3397 vec_any_eq(vector signed char __a, vector signed char __b) {
3398 int __cc;
3399 __builtin_s390_vceqbs(__a, __b, &__cc);
3400 return __cc <= 1;
3401 }
3402
3403 static inline __ATTRS_o_ai int
vec_any_eq(vector signed char __a,vector bool char __b)3404 vec_any_eq(vector signed char __a, vector bool char __b) {
3405 int __cc;
3406 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
3407 return __cc <= 1;
3408 }
3409
3410 static inline __ATTRS_o_ai int
vec_any_eq(vector bool char __a,vector signed char __b)3411 vec_any_eq(vector bool char __a, vector signed char __b) {
3412 int __cc;
3413 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
3414 return __cc <= 1;
3415 }
3416
3417 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned char __a,vector unsigned char __b)3418 vec_any_eq(vector unsigned char __a, vector unsigned char __b) {
3419 int __cc;
3420 __builtin_s390_vceqbs((vector signed char)__a,
3421 (vector signed char)__b, &__cc);
3422 return __cc <= 1;
3423 }
3424
3425 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned char __a,vector bool char __b)3426 vec_any_eq(vector unsigned char __a, vector bool char __b) {
3427 int __cc;
3428 __builtin_s390_vceqbs((vector signed char)__a,
3429 (vector signed char)__b, &__cc);
3430 return __cc <= 1;
3431 }
3432
3433 static inline __ATTRS_o_ai int
vec_any_eq(vector bool char __a,vector unsigned char __b)3434 vec_any_eq(vector bool char __a, vector unsigned char __b) {
3435 int __cc;
3436 __builtin_s390_vceqbs((vector signed char)__a,
3437 (vector signed char)__b, &__cc);
3438 return __cc <= 1;
3439 }
3440
3441 static inline __ATTRS_o_ai int
vec_any_eq(vector bool char __a,vector bool char __b)3442 vec_any_eq(vector bool char __a, vector bool char __b) {
3443 int __cc;
3444 __builtin_s390_vceqbs((vector signed char)__a,
3445 (vector signed char)__b, &__cc);
3446 return __cc <= 1;
3447 }
3448
3449 static inline __ATTRS_o_ai int
vec_any_eq(vector signed short __a,vector signed short __b)3450 vec_any_eq(vector signed short __a, vector signed short __b) {
3451 int __cc;
3452 __builtin_s390_vceqhs(__a, __b, &__cc);
3453 return __cc <= 1;
3454 }
3455
3456 static inline __ATTRS_o_ai int
vec_any_eq(vector signed short __a,vector bool short __b)3457 vec_any_eq(vector signed short __a, vector bool short __b) {
3458 int __cc;
3459 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
3460 return __cc <= 1;
3461 }
3462
3463 static inline __ATTRS_o_ai int
vec_any_eq(vector bool short __a,vector signed short __b)3464 vec_any_eq(vector bool short __a, vector signed short __b) {
3465 int __cc;
3466 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
3467 return __cc <= 1;
3468 }
3469
3470 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned short __a,vector unsigned short __b)3471 vec_any_eq(vector unsigned short __a, vector unsigned short __b) {
3472 int __cc;
3473 __builtin_s390_vceqhs((vector signed short)__a,
3474 (vector signed short)__b, &__cc);
3475 return __cc <= 1;
3476 }
3477
3478 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned short __a,vector bool short __b)3479 vec_any_eq(vector unsigned short __a, vector bool short __b) {
3480 int __cc;
3481 __builtin_s390_vceqhs((vector signed short)__a,
3482 (vector signed short)__b, &__cc);
3483 return __cc <= 1;
3484 }
3485
3486 static inline __ATTRS_o_ai int
vec_any_eq(vector bool short __a,vector unsigned short __b)3487 vec_any_eq(vector bool short __a, vector unsigned short __b) {
3488 int __cc;
3489 __builtin_s390_vceqhs((vector signed short)__a,
3490 (vector signed short)__b, &__cc);
3491 return __cc <= 1;
3492 }
3493
3494 static inline __ATTRS_o_ai int
vec_any_eq(vector bool short __a,vector bool short __b)3495 vec_any_eq(vector bool short __a, vector bool short __b) {
3496 int __cc;
3497 __builtin_s390_vceqhs((vector signed short)__a,
3498 (vector signed short)__b, &__cc);
3499 return __cc <= 1;
3500 }
3501
3502 static inline __ATTRS_o_ai int
vec_any_eq(vector signed int __a,vector signed int __b)3503 vec_any_eq(vector signed int __a, vector signed int __b) {
3504 int __cc;
3505 __builtin_s390_vceqfs(__a, __b, &__cc);
3506 return __cc <= 1;
3507 }
3508
3509 static inline __ATTRS_o_ai int
vec_any_eq(vector signed int __a,vector bool int __b)3510 vec_any_eq(vector signed int __a, vector bool int __b) {
3511 int __cc;
3512 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
3513 return __cc <= 1;
3514 }
3515
3516 static inline __ATTRS_o_ai int
vec_any_eq(vector bool int __a,vector signed int __b)3517 vec_any_eq(vector bool int __a, vector signed int __b) {
3518 int __cc;
3519 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
3520 return __cc <= 1;
3521 }
3522
3523 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned int __a,vector unsigned int __b)3524 vec_any_eq(vector unsigned int __a, vector unsigned int __b) {
3525 int __cc;
3526 __builtin_s390_vceqfs((vector signed int)__a,
3527 (vector signed int)__b, &__cc);
3528 return __cc <= 1;
3529 }
3530
3531 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned int __a,vector bool int __b)3532 vec_any_eq(vector unsigned int __a, vector bool int __b) {
3533 int __cc;
3534 __builtin_s390_vceqfs((vector signed int)__a,
3535 (vector signed int)__b, &__cc);
3536 return __cc <= 1;
3537 }
3538
3539 static inline __ATTRS_o_ai int
vec_any_eq(vector bool int __a,vector unsigned int __b)3540 vec_any_eq(vector bool int __a, vector unsigned int __b) {
3541 int __cc;
3542 __builtin_s390_vceqfs((vector signed int)__a,
3543 (vector signed int)__b, &__cc);
3544 return __cc <= 1;
3545 }
3546
3547 static inline __ATTRS_o_ai int
vec_any_eq(vector bool int __a,vector bool int __b)3548 vec_any_eq(vector bool int __a, vector bool int __b) {
3549 int __cc;
3550 __builtin_s390_vceqfs((vector signed int)__a,
3551 (vector signed int)__b, &__cc);
3552 return __cc <= 1;
3553 }
3554
3555 static inline __ATTRS_o_ai int
vec_any_eq(vector signed long long __a,vector signed long long __b)3556 vec_any_eq(vector signed long long __a, vector signed long long __b) {
3557 int __cc;
3558 __builtin_s390_vceqgs(__a, __b, &__cc);
3559 return __cc <= 1;
3560 }
3561
3562 static inline __ATTRS_o_ai int
vec_any_eq(vector signed long long __a,vector bool long long __b)3563 vec_any_eq(vector signed long long __a, vector bool long long __b) {
3564 int __cc;
3565 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
3566 return __cc <= 1;
3567 }
3568
3569 static inline __ATTRS_o_ai int
vec_any_eq(vector bool long long __a,vector signed long long __b)3570 vec_any_eq(vector bool long long __a, vector signed long long __b) {
3571 int __cc;
3572 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
3573 return __cc <= 1;
3574 }
3575
3576 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned long long __a,vector unsigned long long __b)3577 vec_any_eq(vector unsigned long long __a, vector unsigned long long __b) {
3578 int __cc;
3579 __builtin_s390_vceqgs((vector signed long long)__a,
3580 (vector signed long long)__b, &__cc);
3581 return __cc <= 1;
3582 }
3583
3584 static inline __ATTRS_o_ai int
vec_any_eq(vector unsigned long long __a,vector bool long long __b)3585 vec_any_eq(vector unsigned long long __a, vector bool long long __b) {
3586 int __cc;
3587 __builtin_s390_vceqgs((vector signed long long)__a,
3588 (vector signed long long)__b, &__cc);
3589 return __cc <= 1;
3590 }
3591
3592 static inline __ATTRS_o_ai int
vec_any_eq(vector bool long long __a,vector unsigned long long __b)3593 vec_any_eq(vector bool long long __a, vector unsigned long long __b) {
3594 int __cc;
3595 __builtin_s390_vceqgs((vector signed long long)__a,
3596 (vector signed long long)__b, &__cc);
3597 return __cc <= 1;
3598 }
3599
3600 static inline __ATTRS_o_ai int
vec_any_eq(vector bool long long __a,vector bool long long __b)3601 vec_any_eq(vector bool long long __a, vector bool long long __b) {
3602 int __cc;
3603 __builtin_s390_vceqgs((vector signed long long)__a,
3604 (vector signed long long)__b, &__cc);
3605 return __cc <= 1;
3606 }
3607
3608 static inline __ATTRS_o_ai int
vec_any_eq(vector double __a,vector double __b)3609 vec_any_eq(vector double __a, vector double __b) {
3610 int __cc;
3611 __builtin_s390_vfcedbs(__a, __b, &__cc);
3612 return __cc <= 1;
3613 }
3614
3615 /*-- vec_any_ne -------------------------------------------------------------*/
3616
3617 static inline __ATTRS_o_ai int
vec_any_ne(vector signed char __a,vector signed char __b)3618 vec_any_ne(vector signed char __a, vector signed char __b) {
3619 int __cc;
3620 __builtin_s390_vceqbs(__a, __b, &__cc);
3621 return __cc != 0;
3622 }
3623
3624 static inline __ATTRS_o_ai int
vec_any_ne(vector signed char __a,vector bool char __b)3625 vec_any_ne(vector signed char __a, vector bool char __b) {
3626 int __cc;
3627 __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc);
3628 return __cc != 0;
3629 }
3630
3631 static inline __ATTRS_o_ai int
vec_any_ne(vector bool char __a,vector signed char __b)3632 vec_any_ne(vector bool char __a, vector signed char __b) {
3633 int __cc;
3634 __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc);
3635 return __cc != 0;
3636 }
3637
3638 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned char __a,vector unsigned char __b)3639 vec_any_ne(vector unsigned char __a, vector unsigned char __b) {
3640 int __cc;
3641 __builtin_s390_vceqbs((vector signed char)__a,
3642 (vector signed char)__b, &__cc);
3643 return __cc != 0;
3644 }
3645
3646 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned char __a,vector bool char __b)3647 vec_any_ne(vector unsigned char __a, vector bool char __b) {
3648 int __cc;
3649 __builtin_s390_vceqbs((vector signed char)__a,
3650 (vector signed char)__b, &__cc);
3651 return __cc != 0;
3652 }
3653
3654 static inline __ATTRS_o_ai int
vec_any_ne(vector bool char __a,vector unsigned char __b)3655 vec_any_ne(vector bool char __a, vector unsigned char __b) {
3656 int __cc;
3657 __builtin_s390_vceqbs((vector signed char)__a,
3658 (vector signed char)__b, &__cc);
3659 return __cc != 0;
3660 }
3661
3662 static inline __ATTRS_o_ai int
vec_any_ne(vector bool char __a,vector bool char __b)3663 vec_any_ne(vector bool char __a, vector bool char __b) {
3664 int __cc;
3665 __builtin_s390_vceqbs((vector signed char)__a,
3666 (vector signed char)__b, &__cc);
3667 return __cc != 0;
3668 }
3669
3670 static inline __ATTRS_o_ai int
vec_any_ne(vector signed short __a,vector signed short __b)3671 vec_any_ne(vector signed short __a, vector signed short __b) {
3672 int __cc;
3673 __builtin_s390_vceqhs(__a, __b, &__cc);
3674 return __cc != 0;
3675 }
3676
3677 static inline __ATTRS_o_ai int
vec_any_ne(vector signed short __a,vector bool short __b)3678 vec_any_ne(vector signed short __a, vector bool short __b) {
3679 int __cc;
3680 __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc);
3681 return __cc != 0;
3682 }
3683
3684 static inline __ATTRS_o_ai int
vec_any_ne(vector bool short __a,vector signed short __b)3685 vec_any_ne(vector bool short __a, vector signed short __b) {
3686 int __cc;
3687 __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc);
3688 return __cc != 0;
3689 }
3690
3691 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned short __a,vector unsigned short __b)3692 vec_any_ne(vector unsigned short __a, vector unsigned short __b) {
3693 int __cc;
3694 __builtin_s390_vceqhs((vector signed short)__a,
3695 (vector signed short)__b, &__cc);
3696 return __cc != 0;
3697 }
3698
3699 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned short __a,vector bool short __b)3700 vec_any_ne(vector unsigned short __a, vector bool short __b) {
3701 int __cc;
3702 __builtin_s390_vceqhs((vector signed short)__a,
3703 (vector signed short)__b, &__cc);
3704 return __cc != 0;
3705 }
3706
3707 static inline __ATTRS_o_ai int
vec_any_ne(vector bool short __a,vector unsigned short __b)3708 vec_any_ne(vector bool short __a, vector unsigned short __b) {
3709 int __cc;
3710 __builtin_s390_vceqhs((vector signed short)__a,
3711 (vector signed short)__b, &__cc);
3712 return __cc != 0;
3713 }
3714
3715 static inline __ATTRS_o_ai int
vec_any_ne(vector bool short __a,vector bool short __b)3716 vec_any_ne(vector bool short __a, vector bool short __b) {
3717 int __cc;
3718 __builtin_s390_vceqhs((vector signed short)__a,
3719 (vector signed short)__b, &__cc);
3720 return __cc != 0;
3721 }
3722
3723 static inline __ATTRS_o_ai int
vec_any_ne(vector signed int __a,vector signed int __b)3724 vec_any_ne(vector signed int __a, vector signed int __b) {
3725 int __cc;
3726 __builtin_s390_vceqfs(__a, __b, &__cc);
3727 return __cc != 0;
3728 }
3729
3730 static inline __ATTRS_o_ai int
vec_any_ne(vector signed int __a,vector bool int __b)3731 vec_any_ne(vector signed int __a, vector bool int __b) {
3732 int __cc;
3733 __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc);
3734 return __cc != 0;
3735 }
3736
3737 static inline __ATTRS_o_ai int
vec_any_ne(vector bool int __a,vector signed int __b)3738 vec_any_ne(vector bool int __a, vector signed int __b) {
3739 int __cc;
3740 __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc);
3741 return __cc != 0;
3742 }
3743
3744 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned int __a,vector unsigned int __b)3745 vec_any_ne(vector unsigned int __a, vector unsigned int __b) {
3746 int __cc;
3747 __builtin_s390_vceqfs((vector signed int)__a,
3748 (vector signed int)__b, &__cc);
3749 return __cc != 0;
3750 }
3751
3752 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned int __a,vector bool int __b)3753 vec_any_ne(vector unsigned int __a, vector bool int __b) {
3754 int __cc;
3755 __builtin_s390_vceqfs((vector signed int)__a,
3756 (vector signed int)__b, &__cc);
3757 return __cc != 0;
3758 }
3759
3760 static inline __ATTRS_o_ai int
vec_any_ne(vector bool int __a,vector unsigned int __b)3761 vec_any_ne(vector bool int __a, vector unsigned int __b) {
3762 int __cc;
3763 __builtin_s390_vceqfs((vector signed int)__a,
3764 (vector signed int)__b, &__cc);
3765 return __cc != 0;
3766 }
3767
3768 static inline __ATTRS_o_ai int
vec_any_ne(vector bool int __a,vector bool int __b)3769 vec_any_ne(vector bool int __a, vector bool int __b) {
3770 int __cc;
3771 __builtin_s390_vceqfs((vector signed int)__a,
3772 (vector signed int)__b, &__cc);
3773 return __cc != 0;
3774 }
3775
3776 static inline __ATTRS_o_ai int
vec_any_ne(vector signed long long __a,vector signed long long __b)3777 vec_any_ne(vector signed long long __a, vector signed long long __b) {
3778 int __cc;
3779 __builtin_s390_vceqgs(__a, __b, &__cc);
3780 return __cc != 0;
3781 }
3782
3783 static inline __ATTRS_o_ai int
vec_any_ne(vector signed long long __a,vector bool long long __b)3784 vec_any_ne(vector signed long long __a, vector bool long long __b) {
3785 int __cc;
3786 __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc);
3787 return __cc != 0;
3788 }
3789
3790 static inline __ATTRS_o_ai int
vec_any_ne(vector bool long long __a,vector signed long long __b)3791 vec_any_ne(vector bool long long __a, vector signed long long __b) {
3792 int __cc;
3793 __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc);
3794 return __cc != 0;
3795 }
3796
3797 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned long long __a,vector unsigned long long __b)3798 vec_any_ne(vector unsigned long long __a, vector unsigned long long __b) {
3799 int __cc;
3800 __builtin_s390_vceqgs((vector signed long long)__a,
3801 (vector signed long long)__b, &__cc);
3802 return __cc != 0;
3803 }
3804
3805 static inline __ATTRS_o_ai int
vec_any_ne(vector unsigned long long __a,vector bool long long __b)3806 vec_any_ne(vector unsigned long long __a, vector bool long long __b) {
3807 int __cc;
3808 __builtin_s390_vceqgs((vector signed long long)__a,
3809 (vector signed long long)__b, &__cc);
3810 return __cc != 0;
3811 }
3812
3813 static inline __ATTRS_o_ai int
vec_any_ne(vector bool long long __a,vector unsigned long long __b)3814 vec_any_ne(vector bool long long __a, vector unsigned long long __b) {
3815 int __cc;
3816 __builtin_s390_vceqgs((vector signed long long)__a,
3817 (vector signed long long)__b, &__cc);
3818 return __cc != 0;
3819 }
3820
3821 static inline __ATTRS_o_ai int
vec_any_ne(vector bool long long __a,vector bool long long __b)3822 vec_any_ne(vector bool long long __a, vector bool long long __b) {
3823 int __cc;
3824 __builtin_s390_vceqgs((vector signed long long)__a,
3825 (vector signed long long)__b, &__cc);
3826 return __cc != 0;
3827 }
3828
3829 static inline __ATTRS_o_ai int
vec_any_ne(vector double __a,vector double __b)3830 vec_any_ne(vector double __a, vector double __b) {
3831 int __cc;
3832 __builtin_s390_vfcedbs(__a, __b, &__cc);
3833 return __cc != 0;
3834 }
3835
3836 /*-- vec_any_ge -------------------------------------------------------------*/
3837
3838 static inline __ATTRS_o_ai int
vec_any_ge(vector signed char __a,vector signed char __b)3839 vec_any_ge(vector signed char __a, vector signed char __b) {
3840 int __cc;
3841 __builtin_s390_vchbs(__b, __a, &__cc);
3842 return __cc != 0;
3843 }
3844
3845 static inline __ATTRS_o_ai int
vec_any_ge(vector signed char __a,vector bool char __b)3846 vec_any_ge(vector signed char __a, vector bool char __b) {
3847 int __cc;
3848 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
3849 return __cc != 0;
3850 }
3851
3852 static inline __ATTRS_o_ai int
vec_any_ge(vector bool char __a,vector signed char __b)3853 vec_any_ge(vector bool char __a, vector signed char __b) {
3854 int __cc;
3855 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
3856 return __cc != 0;
3857 }
3858
3859 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned char __a,vector unsigned char __b)3860 vec_any_ge(vector unsigned char __a, vector unsigned char __b) {
3861 int __cc;
3862 __builtin_s390_vchlbs(__b, __a, &__cc);
3863 return __cc != 0;
3864 }
3865
3866 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned char __a,vector bool char __b)3867 vec_any_ge(vector unsigned char __a, vector bool char __b) {
3868 int __cc;
3869 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
3870 return __cc != 0;
3871 }
3872
3873 static inline __ATTRS_o_ai int
vec_any_ge(vector bool char __a,vector unsigned char __b)3874 vec_any_ge(vector bool char __a, vector unsigned char __b) {
3875 int __cc;
3876 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
3877 return __cc != 0;
3878 }
3879
3880 static inline __ATTRS_o_ai int
vec_any_ge(vector bool char __a,vector bool char __b)3881 vec_any_ge(vector bool char __a, vector bool char __b) {
3882 int __cc;
3883 __builtin_s390_vchlbs((vector unsigned char)__b,
3884 (vector unsigned char)__a, &__cc);
3885 return __cc != 0;
3886 }
3887
3888 static inline __ATTRS_o_ai int
vec_any_ge(vector signed short __a,vector signed short __b)3889 vec_any_ge(vector signed short __a, vector signed short __b) {
3890 int __cc;
3891 __builtin_s390_vchhs(__b, __a, &__cc);
3892 return __cc != 0;
3893 }
3894
3895 static inline __ATTRS_o_ai int
vec_any_ge(vector signed short __a,vector bool short __b)3896 vec_any_ge(vector signed short __a, vector bool short __b) {
3897 int __cc;
3898 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
3899 return __cc != 0;
3900 }
3901
3902 static inline __ATTRS_o_ai int
vec_any_ge(vector bool short __a,vector signed short __b)3903 vec_any_ge(vector bool short __a, vector signed short __b) {
3904 int __cc;
3905 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
3906 return __cc != 0;
3907 }
3908
3909 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned short __a,vector unsigned short __b)3910 vec_any_ge(vector unsigned short __a, vector unsigned short __b) {
3911 int __cc;
3912 __builtin_s390_vchlhs(__b, __a, &__cc);
3913 return __cc != 0;
3914 }
3915
3916 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned short __a,vector bool short __b)3917 vec_any_ge(vector unsigned short __a, vector bool short __b) {
3918 int __cc;
3919 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
3920 return __cc != 0;
3921 }
3922
3923 static inline __ATTRS_o_ai int
vec_any_ge(vector bool short __a,vector unsigned short __b)3924 vec_any_ge(vector bool short __a, vector unsigned short __b) {
3925 int __cc;
3926 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
3927 return __cc != 0;
3928 }
3929
3930 static inline __ATTRS_o_ai int
vec_any_ge(vector bool short __a,vector bool short __b)3931 vec_any_ge(vector bool short __a, vector bool short __b) {
3932 int __cc;
3933 __builtin_s390_vchlhs((vector unsigned short)__b,
3934 (vector unsigned short)__a, &__cc);
3935 return __cc != 0;
3936 }
3937
3938 static inline __ATTRS_o_ai int
vec_any_ge(vector signed int __a,vector signed int __b)3939 vec_any_ge(vector signed int __a, vector signed int __b) {
3940 int __cc;
3941 __builtin_s390_vchfs(__b, __a, &__cc);
3942 return __cc != 0;
3943 }
3944
3945 static inline __ATTRS_o_ai int
vec_any_ge(vector signed int __a,vector bool int __b)3946 vec_any_ge(vector signed int __a, vector bool int __b) {
3947 int __cc;
3948 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
3949 return __cc != 0;
3950 }
3951
3952 static inline __ATTRS_o_ai int
vec_any_ge(vector bool int __a,vector signed int __b)3953 vec_any_ge(vector bool int __a, vector signed int __b) {
3954 int __cc;
3955 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
3956 return __cc != 0;
3957 }
3958
3959 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned int __a,vector unsigned int __b)3960 vec_any_ge(vector unsigned int __a, vector unsigned int __b) {
3961 int __cc;
3962 __builtin_s390_vchlfs(__b, __a, &__cc);
3963 return __cc != 0;
3964 }
3965
3966 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned int __a,vector bool int __b)3967 vec_any_ge(vector unsigned int __a, vector bool int __b) {
3968 int __cc;
3969 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
3970 return __cc != 0;
3971 }
3972
3973 static inline __ATTRS_o_ai int
vec_any_ge(vector bool int __a,vector unsigned int __b)3974 vec_any_ge(vector bool int __a, vector unsigned int __b) {
3975 int __cc;
3976 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
3977 return __cc != 0;
3978 }
3979
3980 static inline __ATTRS_o_ai int
vec_any_ge(vector bool int __a,vector bool int __b)3981 vec_any_ge(vector bool int __a, vector bool int __b) {
3982 int __cc;
3983 __builtin_s390_vchlfs((vector unsigned int)__b,
3984 (vector unsigned int)__a, &__cc);
3985 return __cc != 0;
3986 }
3987
3988 static inline __ATTRS_o_ai int
vec_any_ge(vector signed long long __a,vector signed long long __b)3989 vec_any_ge(vector signed long long __a, vector signed long long __b) {
3990 int __cc;
3991 __builtin_s390_vchgs(__b, __a, &__cc);
3992 return __cc != 0;
3993 }
3994
3995 static inline __ATTRS_o_ai int
vec_any_ge(vector signed long long __a,vector bool long long __b)3996 vec_any_ge(vector signed long long __a, vector bool long long __b) {
3997 int __cc;
3998 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
3999 return __cc != 0;
4000 }
4001
4002 static inline __ATTRS_o_ai int
vec_any_ge(vector bool long long __a,vector signed long long __b)4003 vec_any_ge(vector bool long long __a, vector signed long long __b) {
4004 int __cc;
4005 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
4006 return __cc != 0;
4007 }
4008
4009 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned long long __a,vector unsigned long long __b)4010 vec_any_ge(vector unsigned long long __a, vector unsigned long long __b) {
4011 int __cc;
4012 __builtin_s390_vchlgs(__b, __a, &__cc);
4013 return __cc != 0;
4014 }
4015
4016 static inline __ATTRS_o_ai int
vec_any_ge(vector unsigned long long __a,vector bool long long __b)4017 vec_any_ge(vector unsigned long long __a, vector bool long long __b) {
4018 int __cc;
4019 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
4020 return __cc != 0;
4021 }
4022
4023 static inline __ATTRS_o_ai int
vec_any_ge(vector bool long long __a,vector unsigned long long __b)4024 vec_any_ge(vector bool long long __a, vector unsigned long long __b) {
4025 int __cc;
4026 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
4027 return __cc != 0;
4028 }
4029
4030 static inline __ATTRS_o_ai int
vec_any_ge(vector bool long long __a,vector bool long long __b)4031 vec_any_ge(vector bool long long __a, vector bool long long __b) {
4032 int __cc;
4033 __builtin_s390_vchlgs((vector unsigned long long)__b,
4034 (vector unsigned long long)__a, &__cc);
4035 return __cc != 0;
4036 }
4037
4038 static inline __ATTRS_o_ai int
vec_any_ge(vector double __a,vector double __b)4039 vec_any_ge(vector double __a, vector double __b) {
4040 int __cc;
4041 __builtin_s390_vfchedbs(__a, __b, &__cc);
4042 return __cc <= 1;
4043 }
4044
4045 /*-- vec_any_gt -------------------------------------------------------------*/
4046
4047 static inline __ATTRS_o_ai int
vec_any_gt(vector signed char __a,vector signed char __b)4048 vec_any_gt(vector signed char __a, vector signed char __b) {
4049 int __cc;
4050 __builtin_s390_vchbs(__a, __b, &__cc);
4051 return __cc <= 1;
4052 }
4053
4054 static inline __ATTRS_o_ai int
vec_any_gt(vector signed char __a,vector bool char __b)4055 vec_any_gt(vector signed char __a, vector bool char __b) {
4056 int __cc;
4057 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4058 return __cc <= 1;
4059 }
4060
4061 static inline __ATTRS_o_ai int
vec_any_gt(vector bool char __a,vector signed char __b)4062 vec_any_gt(vector bool char __a, vector signed char __b) {
4063 int __cc;
4064 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4065 return __cc <= 1;
4066 }
4067
4068 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned char __a,vector unsigned char __b)4069 vec_any_gt(vector unsigned char __a, vector unsigned char __b) {
4070 int __cc;
4071 __builtin_s390_vchlbs(__a, __b, &__cc);
4072 return __cc <= 1;
4073 }
4074
4075 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned char __a,vector bool char __b)4076 vec_any_gt(vector unsigned char __a, vector bool char __b) {
4077 int __cc;
4078 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4079 return __cc <= 1;
4080 }
4081
4082 static inline __ATTRS_o_ai int
vec_any_gt(vector bool char __a,vector unsigned char __b)4083 vec_any_gt(vector bool char __a, vector unsigned char __b) {
4084 int __cc;
4085 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4086 return __cc <= 1;
4087 }
4088
4089 static inline __ATTRS_o_ai int
vec_any_gt(vector bool char __a,vector bool char __b)4090 vec_any_gt(vector bool char __a, vector bool char __b) {
4091 int __cc;
4092 __builtin_s390_vchlbs((vector unsigned char)__a,
4093 (vector unsigned char)__b, &__cc);
4094 return __cc <= 1;
4095 }
4096
4097 static inline __ATTRS_o_ai int
vec_any_gt(vector signed short __a,vector signed short __b)4098 vec_any_gt(vector signed short __a, vector signed short __b) {
4099 int __cc;
4100 __builtin_s390_vchhs(__a, __b, &__cc);
4101 return __cc <= 1;
4102 }
4103
4104 static inline __ATTRS_o_ai int
vec_any_gt(vector signed short __a,vector bool short __b)4105 vec_any_gt(vector signed short __a, vector bool short __b) {
4106 int __cc;
4107 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4108 return __cc <= 1;
4109 }
4110
4111 static inline __ATTRS_o_ai int
vec_any_gt(vector bool short __a,vector signed short __b)4112 vec_any_gt(vector bool short __a, vector signed short __b) {
4113 int __cc;
4114 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
4115 return __cc <= 1;
4116 }
4117
4118 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned short __a,vector unsigned short __b)4119 vec_any_gt(vector unsigned short __a, vector unsigned short __b) {
4120 int __cc;
4121 __builtin_s390_vchlhs(__a, __b, &__cc);
4122 return __cc <= 1;
4123 }
4124
4125 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned short __a,vector bool short __b)4126 vec_any_gt(vector unsigned short __a, vector bool short __b) {
4127 int __cc;
4128 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
4129 return __cc <= 1;
4130 }
4131
4132 static inline __ATTRS_o_ai int
vec_any_gt(vector bool short __a,vector unsigned short __b)4133 vec_any_gt(vector bool short __a, vector unsigned short __b) {
4134 int __cc;
4135 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
4136 return __cc <= 1;
4137 }
4138
4139 static inline __ATTRS_o_ai int
vec_any_gt(vector bool short __a,vector bool short __b)4140 vec_any_gt(vector bool short __a, vector bool short __b) {
4141 int __cc;
4142 __builtin_s390_vchlhs((vector unsigned short)__a,
4143 (vector unsigned short)__b, &__cc);
4144 return __cc <= 1;
4145 }
4146
4147 static inline __ATTRS_o_ai int
vec_any_gt(vector signed int __a,vector signed int __b)4148 vec_any_gt(vector signed int __a, vector signed int __b) {
4149 int __cc;
4150 __builtin_s390_vchfs(__a, __b, &__cc);
4151 return __cc <= 1;
4152 }
4153
4154 static inline __ATTRS_o_ai int
vec_any_gt(vector signed int __a,vector bool int __b)4155 vec_any_gt(vector signed int __a, vector bool int __b) {
4156 int __cc;
4157 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
4158 return __cc <= 1;
4159 }
4160
4161 static inline __ATTRS_o_ai int
vec_any_gt(vector bool int __a,vector signed int __b)4162 vec_any_gt(vector bool int __a, vector signed int __b) {
4163 int __cc;
4164 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
4165 return __cc <= 1;
4166 }
4167
4168 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned int __a,vector unsigned int __b)4169 vec_any_gt(vector unsigned int __a, vector unsigned int __b) {
4170 int __cc;
4171 __builtin_s390_vchlfs(__a, __b, &__cc);
4172 return __cc <= 1;
4173 }
4174
4175 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned int __a,vector bool int __b)4176 vec_any_gt(vector unsigned int __a, vector bool int __b) {
4177 int __cc;
4178 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
4179 return __cc <= 1;
4180 }
4181
4182 static inline __ATTRS_o_ai int
vec_any_gt(vector bool int __a,vector unsigned int __b)4183 vec_any_gt(vector bool int __a, vector unsigned int __b) {
4184 int __cc;
4185 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
4186 return __cc <= 1;
4187 }
4188
4189 static inline __ATTRS_o_ai int
vec_any_gt(vector bool int __a,vector bool int __b)4190 vec_any_gt(vector bool int __a, vector bool int __b) {
4191 int __cc;
4192 __builtin_s390_vchlfs((vector unsigned int)__a,
4193 (vector unsigned int)__b, &__cc);
4194 return __cc <= 1;
4195 }
4196
4197 static inline __ATTRS_o_ai int
vec_any_gt(vector signed long long __a,vector signed long long __b)4198 vec_any_gt(vector signed long long __a, vector signed long long __b) {
4199 int __cc;
4200 __builtin_s390_vchgs(__a, __b, &__cc);
4201 return __cc <= 1;
4202 }
4203
4204 static inline __ATTRS_o_ai int
vec_any_gt(vector signed long long __a,vector bool long long __b)4205 vec_any_gt(vector signed long long __a, vector bool long long __b) {
4206 int __cc;
4207 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
4208 return __cc <= 1;
4209 }
4210
4211 static inline __ATTRS_o_ai int
vec_any_gt(vector bool long long __a,vector signed long long __b)4212 vec_any_gt(vector bool long long __a, vector signed long long __b) {
4213 int __cc;
4214 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
4215 return __cc <= 1;
4216 }
4217
4218 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned long long __a,vector unsigned long long __b)4219 vec_any_gt(vector unsigned long long __a, vector unsigned long long __b) {
4220 int __cc;
4221 __builtin_s390_vchlgs(__a, __b, &__cc);
4222 return __cc <= 1;
4223 }
4224
4225 static inline __ATTRS_o_ai int
vec_any_gt(vector unsigned long long __a,vector bool long long __b)4226 vec_any_gt(vector unsigned long long __a, vector bool long long __b) {
4227 int __cc;
4228 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
4229 return __cc <= 1;
4230 }
4231
4232 static inline __ATTRS_o_ai int
vec_any_gt(vector bool long long __a,vector unsigned long long __b)4233 vec_any_gt(vector bool long long __a, vector unsigned long long __b) {
4234 int __cc;
4235 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
4236 return __cc <= 1;
4237 }
4238
4239 static inline __ATTRS_o_ai int
vec_any_gt(vector bool long long __a,vector bool long long __b)4240 vec_any_gt(vector bool long long __a, vector bool long long __b) {
4241 int __cc;
4242 __builtin_s390_vchlgs((vector unsigned long long)__a,
4243 (vector unsigned long long)__b, &__cc);
4244 return __cc <= 1;
4245 }
4246
4247 static inline __ATTRS_o_ai int
vec_any_gt(vector double __a,vector double __b)4248 vec_any_gt(vector double __a, vector double __b) {
4249 int __cc;
4250 __builtin_s390_vfchdbs(__a, __b, &__cc);
4251 return __cc <= 1;
4252 }
4253
4254 /*-- vec_any_le -------------------------------------------------------------*/
4255
4256 static inline __ATTRS_o_ai int
vec_any_le(vector signed char __a,vector signed char __b)4257 vec_any_le(vector signed char __a, vector signed char __b) {
4258 int __cc;
4259 __builtin_s390_vchbs(__a, __b, &__cc);
4260 return __cc != 0;
4261 }
4262
4263 static inline __ATTRS_o_ai int
vec_any_le(vector signed char __a,vector bool char __b)4264 vec_any_le(vector signed char __a, vector bool char __b) {
4265 int __cc;
4266 __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc);
4267 return __cc != 0;
4268 }
4269
4270 static inline __ATTRS_o_ai int
vec_any_le(vector bool char __a,vector signed char __b)4271 vec_any_le(vector bool char __a, vector signed char __b) {
4272 int __cc;
4273 __builtin_s390_vchbs((vector signed char)__a, __b, &__cc);
4274 return __cc != 0;
4275 }
4276
4277 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned char __a,vector unsigned char __b)4278 vec_any_le(vector unsigned char __a, vector unsigned char __b) {
4279 int __cc;
4280 __builtin_s390_vchlbs(__a, __b, &__cc);
4281 return __cc != 0;
4282 }
4283
4284 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned char __a,vector bool char __b)4285 vec_any_le(vector unsigned char __a, vector bool char __b) {
4286 int __cc;
4287 __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc);
4288 return __cc != 0;
4289 }
4290
4291 static inline __ATTRS_o_ai int
vec_any_le(vector bool char __a,vector unsigned char __b)4292 vec_any_le(vector bool char __a, vector unsigned char __b) {
4293 int __cc;
4294 __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc);
4295 return __cc != 0;
4296 }
4297
4298 static inline __ATTRS_o_ai int
vec_any_le(vector bool char __a,vector bool char __b)4299 vec_any_le(vector bool char __a, vector bool char __b) {
4300 int __cc;
4301 __builtin_s390_vchlbs((vector unsigned char)__a,
4302 (vector unsigned char)__b, &__cc);
4303 return __cc != 0;
4304 }
4305
4306 static inline __ATTRS_o_ai int
vec_any_le(vector signed short __a,vector signed short __b)4307 vec_any_le(vector signed short __a, vector signed short __b) {
4308 int __cc;
4309 __builtin_s390_vchhs(__a, __b, &__cc);
4310 return __cc != 0;
4311 }
4312
4313 static inline __ATTRS_o_ai int
vec_any_le(vector signed short __a,vector bool short __b)4314 vec_any_le(vector signed short __a, vector bool short __b) {
4315 int __cc;
4316 __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc);
4317 return __cc != 0;
4318 }
4319
4320 static inline __ATTRS_o_ai int
vec_any_le(vector bool short __a,vector signed short __b)4321 vec_any_le(vector bool short __a, vector signed short __b) {
4322 int __cc;
4323 __builtin_s390_vchhs((vector signed short)__a, __b, &__cc);
4324 return __cc != 0;
4325 }
4326
4327 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned short __a,vector unsigned short __b)4328 vec_any_le(vector unsigned short __a, vector unsigned short __b) {
4329 int __cc;
4330 __builtin_s390_vchlhs(__a, __b, &__cc);
4331 return __cc != 0;
4332 }
4333
4334 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned short __a,vector bool short __b)4335 vec_any_le(vector unsigned short __a, vector bool short __b) {
4336 int __cc;
4337 __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc);
4338 return __cc != 0;
4339 }
4340
4341 static inline __ATTRS_o_ai int
vec_any_le(vector bool short __a,vector unsigned short __b)4342 vec_any_le(vector bool short __a, vector unsigned short __b) {
4343 int __cc;
4344 __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc);
4345 return __cc != 0;
4346 }
4347
4348 static inline __ATTRS_o_ai int
vec_any_le(vector bool short __a,vector bool short __b)4349 vec_any_le(vector bool short __a, vector bool short __b) {
4350 int __cc;
4351 __builtin_s390_vchlhs((vector unsigned short)__a,
4352 (vector unsigned short)__b, &__cc);
4353 return __cc != 0;
4354 }
4355
4356 static inline __ATTRS_o_ai int
vec_any_le(vector signed int __a,vector signed int __b)4357 vec_any_le(vector signed int __a, vector signed int __b) {
4358 int __cc;
4359 __builtin_s390_vchfs(__a, __b, &__cc);
4360 return __cc != 0;
4361 }
4362
4363 static inline __ATTRS_o_ai int
vec_any_le(vector signed int __a,vector bool int __b)4364 vec_any_le(vector signed int __a, vector bool int __b) {
4365 int __cc;
4366 __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc);
4367 return __cc != 0;
4368 }
4369
4370 static inline __ATTRS_o_ai int
vec_any_le(vector bool int __a,vector signed int __b)4371 vec_any_le(vector bool int __a, vector signed int __b) {
4372 int __cc;
4373 __builtin_s390_vchfs((vector signed int)__a, __b, &__cc);
4374 return __cc != 0;
4375 }
4376
4377 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned int __a,vector unsigned int __b)4378 vec_any_le(vector unsigned int __a, vector unsigned int __b) {
4379 int __cc;
4380 __builtin_s390_vchlfs(__a, __b, &__cc);
4381 return __cc != 0;
4382 }
4383
4384 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned int __a,vector bool int __b)4385 vec_any_le(vector unsigned int __a, vector bool int __b) {
4386 int __cc;
4387 __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc);
4388 return __cc != 0;
4389 }
4390
4391 static inline __ATTRS_o_ai int
vec_any_le(vector bool int __a,vector unsigned int __b)4392 vec_any_le(vector bool int __a, vector unsigned int __b) {
4393 int __cc;
4394 __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc);
4395 return __cc != 0;
4396 }
4397
4398 static inline __ATTRS_o_ai int
vec_any_le(vector bool int __a,vector bool int __b)4399 vec_any_le(vector bool int __a, vector bool int __b) {
4400 int __cc;
4401 __builtin_s390_vchlfs((vector unsigned int)__a,
4402 (vector unsigned int)__b, &__cc);
4403 return __cc != 0;
4404 }
4405
4406 static inline __ATTRS_o_ai int
vec_any_le(vector signed long long __a,vector signed long long __b)4407 vec_any_le(vector signed long long __a, vector signed long long __b) {
4408 int __cc;
4409 __builtin_s390_vchgs(__a, __b, &__cc);
4410 return __cc != 0;
4411 }
4412
4413 static inline __ATTRS_o_ai int
vec_any_le(vector signed long long __a,vector bool long long __b)4414 vec_any_le(vector signed long long __a, vector bool long long __b) {
4415 int __cc;
4416 __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc);
4417 return __cc != 0;
4418 }
4419
4420 static inline __ATTRS_o_ai int
vec_any_le(vector bool long long __a,vector signed long long __b)4421 vec_any_le(vector bool long long __a, vector signed long long __b) {
4422 int __cc;
4423 __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc);
4424 return __cc != 0;
4425 }
4426
4427 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned long long __a,vector unsigned long long __b)4428 vec_any_le(vector unsigned long long __a, vector unsigned long long __b) {
4429 int __cc;
4430 __builtin_s390_vchlgs(__a, __b, &__cc);
4431 return __cc != 0;
4432 }
4433
4434 static inline __ATTRS_o_ai int
vec_any_le(vector unsigned long long __a,vector bool long long __b)4435 vec_any_le(vector unsigned long long __a, vector bool long long __b) {
4436 int __cc;
4437 __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc);
4438 return __cc != 0;
4439 }
4440
4441 static inline __ATTRS_o_ai int
vec_any_le(vector bool long long __a,vector unsigned long long __b)4442 vec_any_le(vector bool long long __a, vector unsigned long long __b) {
4443 int __cc;
4444 __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc);
4445 return __cc != 0;
4446 }
4447
4448 static inline __ATTRS_o_ai int
vec_any_le(vector bool long long __a,vector bool long long __b)4449 vec_any_le(vector bool long long __a, vector bool long long __b) {
4450 int __cc;
4451 __builtin_s390_vchlgs((vector unsigned long long)__a,
4452 (vector unsigned long long)__b, &__cc);
4453 return __cc != 0;
4454 }
4455
4456 static inline __ATTRS_o_ai int
vec_any_le(vector double __a,vector double __b)4457 vec_any_le(vector double __a, vector double __b) {
4458 int __cc;
4459 __builtin_s390_vfchedbs(__b, __a, &__cc);
4460 return __cc <= 1;
4461 }
4462
4463 /*-- vec_any_lt -------------------------------------------------------------*/
4464
4465 static inline __ATTRS_o_ai int
vec_any_lt(vector signed char __a,vector signed char __b)4466 vec_any_lt(vector signed char __a, vector signed char __b) {
4467 int __cc;
4468 __builtin_s390_vchbs(__b, __a, &__cc);
4469 return __cc <= 1;
4470 }
4471
4472 static inline __ATTRS_o_ai int
vec_any_lt(vector signed char __a,vector bool char __b)4473 vec_any_lt(vector signed char __a, vector bool char __b) {
4474 int __cc;
4475 __builtin_s390_vchbs((vector signed char)__b, __a, &__cc);
4476 return __cc <= 1;
4477 }
4478
4479 static inline __ATTRS_o_ai int
vec_any_lt(vector bool char __a,vector signed char __b)4480 vec_any_lt(vector bool char __a, vector signed char __b) {
4481 int __cc;
4482 __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc);
4483 return __cc <= 1;
4484 }
4485
4486 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned char __a,vector unsigned char __b)4487 vec_any_lt(vector unsigned char __a, vector unsigned char __b) {
4488 int __cc;
4489 __builtin_s390_vchlbs(__b, __a, &__cc);
4490 return __cc <= 1;
4491 }
4492
4493 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned char __a,vector bool char __b)4494 vec_any_lt(vector unsigned char __a, vector bool char __b) {
4495 int __cc;
4496 __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc);
4497 return __cc <= 1;
4498 }
4499
4500 static inline __ATTRS_o_ai int
vec_any_lt(vector bool char __a,vector unsigned char __b)4501 vec_any_lt(vector bool char __a, vector unsigned char __b) {
4502 int __cc;
4503 __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc);
4504 return __cc <= 1;
4505 }
4506
4507 static inline __ATTRS_o_ai int
vec_any_lt(vector bool char __a,vector bool char __b)4508 vec_any_lt(vector bool char __a, vector bool char __b) {
4509 int __cc;
4510 __builtin_s390_vchlbs((vector unsigned char)__b,
4511 (vector unsigned char)__a, &__cc);
4512 return __cc <= 1;
4513 }
4514
4515 static inline __ATTRS_o_ai int
vec_any_lt(vector signed short __a,vector signed short __b)4516 vec_any_lt(vector signed short __a, vector signed short __b) {
4517 int __cc;
4518 __builtin_s390_vchhs(__b, __a, &__cc);
4519 return __cc <= 1;
4520 }
4521
4522 static inline __ATTRS_o_ai int
vec_any_lt(vector signed short __a,vector bool short __b)4523 vec_any_lt(vector signed short __a, vector bool short __b) {
4524 int __cc;
4525 __builtin_s390_vchhs((vector signed short)__b, __a, &__cc);
4526 return __cc <= 1;
4527 }
4528
4529 static inline __ATTRS_o_ai int
vec_any_lt(vector bool short __a,vector signed short __b)4530 vec_any_lt(vector bool short __a, vector signed short __b) {
4531 int __cc;
4532 __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc);
4533 return __cc <= 1;
4534 }
4535
4536 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned short __a,vector unsigned short __b)4537 vec_any_lt(vector unsigned short __a, vector unsigned short __b) {
4538 int __cc;
4539 __builtin_s390_vchlhs(__b, __a, &__cc);
4540 return __cc <= 1;
4541 }
4542
4543 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned short __a,vector bool short __b)4544 vec_any_lt(vector unsigned short __a, vector bool short __b) {
4545 int __cc;
4546 __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc);
4547 return __cc <= 1;
4548 }
4549
4550 static inline __ATTRS_o_ai int
vec_any_lt(vector bool short __a,vector unsigned short __b)4551 vec_any_lt(vector bool short __a, vector unsigned short __b) {
4552 int __cc;
4553 __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc);
4554 return __cc <= 1;
4555 }
4556
4557 static inline __ATTRS_o_ai int
vec_any_lt(vector bool short __a,vector bool short __b)4558 vec_any_lt(vector bool short __a, vector bool short __b) {
4559 int __cc;
4560 __builtin_s390_vchlhs((vector unsigned short)__b,
4561 (vector unsigned short)__a, &__cc);
4562 return __cc <= 1;
4563 }
4564
4565 static inline __ATTRS_o_ai int
vec_any_lt(vector signed int __a,vector signed int __b)4566 vec_any_lt(vector signed int __a, vector signed int __b) {
4567 int __cc;
4568 __builtin_s390_vchfs(__b, __a, &__cc);
4569 return __cc <= 1;
4570 }
4571
4572 static inline __ATTRS_o_ai int
vec_any_lt(vector signed int __a,vector bool int __b)4573 vec_any_lt(vector signed int __a, vector bool int __b) {
4574 int __cc;
4575 __builtin_s390_vchfs((vector signed int)__b, __a, &__cc);
4576 return __cc <= 1;
4577 }
4578
4579 static inline __ATTRS_o_ai int
vec_any_lt(vector bool int __a,vector signed int __b)4580 vec_any_lt(vector bool int __a, vector signed int __b) {
4581 int __cc;
4582 __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc);
4583 return __cc <= 1;
4584 }
4585
4586 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned int __a,vector unsigned int __b)4587 vec_any_lt(vector unsigned int __a, vector unsigned int __b) {
4588 int __cc;
4589 __builtin_s390_vchlfs(__b, __a, &__cc);
4590 return __cc <= 1;
4591 }
4592
4593 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned int __a,vector bool int __b)4594 vec_any_lt(vector unsigned int __a, vector bool int __b) {
4595 int __cc;
4596 __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc);
4597 return __cc <= 1;
4598 }
4599
4600 static inline __ATTRS_o_ai int
vec_any_lt(vector bool int __a,vector unsigned int __b)4601 vec_any_lt(vector bool int __a, vector unsigned int __b) {
4602 int __cc;
4603 __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc);
4604 return __cc <= 1;
4605 }
4606
4607 static inline __ATTRS_o_ai int
vec_any_lt(vector bool int __a,vector bool int __b)4608 vec_any_lt(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 <= 1;
4613 }
4614
4615 static inline __ATTRS_o_ai int
vec_any_lt(vector signed long long __a,vector signed long long __b)4616 vec_any_lt(vector signed long long __a, vector signed long long __b) {
4617 int __cc;
4618 __builtin_s390_vchgs(__b, __a, &__cc);
4619 return __cc <= 1;
4620 }
4621
4622 static inline __ATTRS_o_ai int
vec_any_lt(vector signed long long __a,vector bool long long __b)4623 vec_any_lt(vector signed long long __a, vector bool long long __b) {
4624 int __cc;
4625 __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc);
4626 return __cc <= 1;
4627 }
4628
4629 static inline __ATTRS_o_ai int
vec_any_lt(vector bool long long __a,vector signed long long __b)4630 vec_any_lt(vector bool long long __a, vector signed long long __b) {
4631 int __cc;
4632 __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc);
4633 return __cc <= 1;
4634 }
4635
4636 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned long long __a,vector unsigned long long __b)4637 vec_any_lt(vector unsigned long long __a, vector unsigned long long __b) {
4638 int __cc;
4639 __builtin_s390_vchlgs(__b, __a, &__cc);
4640 return __cc <= 1;
4641 }
4642
4643 static inline __ATTRS_o_ai int
vec_any_lt(vector unsigned long long __a,vector bool long long __b)4644 vec_any_lt(vector unsigned long long __a, vector bool long long __b) {
4645 int __cc;
4646 __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc);
4647 return __cc <= 1;
4648 }
4649
4650 static inline __ATTRS_o_ai int
vec_any_lt(vector bool long long __a,vector unsigned long long __b)4651 vec_any_lt(vector bool long long __a, vector unsigned long long __b) {
4652 int __cc;
4653 __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc);
4654 return __cc <= 1;
4655 }
4656
4657 static inline __ATTRS_o_ai int
vec_any_lt(vector bool long long __a,vector bool long long __b)4658 vec_any_lt(vector bool long long __a, vector bool long long __b) {
4659 int __cc;
4660 __builtin_s390_vchlgs((vector unsigned long long)__b,
4661 (vector unsigned long long)__a, &__cc);
4662 return __cc <= 1;
4663 }
4664
4665 static inline __ATTRS_o_ai int
vec_any_lt(vector double __a,vector double __b)4666 vec_any_lt(vector double __a, vector double __b) {
4667 int __cc;
4668 __builtin_s390_vfchdbs(__b, __a, &__cc);
4669 return __cc <= 1;
4670 }
4671
4672 /*-- vec_any_nge ------------------------------------------------------------*/
4673
4674 static inline __ATTRS_ai int
vec_any_nge(vector double __a,vector double __b)4675 vec_any_nge(vector double __a, vector double __b) {
4676 int __cc;
4677 __builtin_s390_vfchedbs(__a, __b, &__cc);
4678 return __cc != 0;
4679 }
4680
4681 /*-- vec_any_ngt ------------------------------------------------------------*/
4682
4683 static inline __ATTRS_ai int
vec_any_ngt(vector double __a,vector double __b)4684 vec_any_ngt(vector double __a, vector double __b) {
4685 int __cc;
4686 __builtin_s390_vfchdbs(__a, __b, &__cc);
4687 return __cc != 0;
4688 }
4689
4690 /*-- vec_any_nle ------------------------------------------------------------*/
4691
4692 static inline __ATTRS_ai int
vec_any_nle(vector double __a,vector double __b)4693 vec_any_nle(vector double __a, vector double __b) {
4694 int __cc;
4695 __builtin_s390_vfchedbs(__b, __a, &__cc);
4696 return __cc != 0;
4697 }
4698
4699 /*-- vec_any_nlt ------------------------------------------------------------*/
4700
4701 static inline __ATTRS_ai int
vec_any_nlt(vector double __a,vector double __b)4702 vec_any_nlt(vector double __a, vector double __b) {
4703 int __cc;
4704 __builtin_s390_vfchdbs(__b, __a, &__cc);
4705 return __cc != 0;
4706 }
4707
4708 /*-- vec_any_nan ------------------------------------------------------------*/
4709
4710 static inline __ATTRS_ai int
vec_any_nan(vector double __a)4711 vec_any_nan(vector double __a) {
4712 int __cc;
4713 __builtin_s390_vftcidb(__a, 15, &__cc);
4714 return __cc != 3;
4715 }
4716
4717 /*-- vec_any_numeric --------------------------------------------------------*/
4718
4719 static inline __ATTRS_ai int
vec_any_numeric(vector double __a)4720 vec_any_numeric(vector double __a) {
4721 int __cc;
4722 __builtin_s390_vftcidb(__a, 15, &__cc);
4723 return __cc != 0;
4724 }
4725
4726 /*-- vec_andc ---------------------------------------------------------------*/
4727
4728 static inline __ATTRS_o_ai vector bool char
vec_andc(vector bool char __a,vector bool char __b)4729 vec_andc(vector bool char __a, vector bool char __b) {
4730 return __a & ~__b;
4731 }
4732
4733 static inline __ATTRS_o_ai vector signed char
vec_andc(vector signed char __a,vector signed char __b)4734 vec_andc(vector signed char __a, vector signed char __b) {
4735 return __a & ~__b;
4736 }
4737
4738 static inline __ATTRS_o_ai vector signed char
vec_andc(vector bool char __a,vector signed char __b)4739 vec_andc(vector bool char __a, vector signed char __b) {
4740 return __a & ~__b;
4741 }
4742
4743 static inline __ATTRS_o_ai vector signed char
vec_andc(vector signed char __a,vector bool char __b)4744 vec_andc(vector signed char __a, vector bool char __b) {
4745 return __a & ~__b;
4746 }
4747
4748 static inline __ATTRS_o_ai vector unsigned char
vec_andc(vector unsigned char __a,vector unsigned char __b)4749 vec_andc(vector unsigned char __a, vector unsigned char __b) {
4750 return __a & ~__b;
4751 }
4752
4753 static inline __ATTRS_o_ai vector unsigned char
vec_andc(vector bool char __a,vector unsigned char __b)4754 vec_andc(vector bool char __a, vector unsigned char __b) {
4755 return __a & ~__b;
4756 }
4757
4758 static inline __ATTRS_o_ai vector unsigned char
vec_andc(vector unsigned char __a,vector bool char __b)4759 vec_andc(vector unsigned char __a, vector bool char __b) {
4760 return __a & ~__b;
4761 }
4762
4763 static inline __ATTRS_o_ai vector bool short
vec_andc(vector bool short __a,vector bool short __b)4764 vec_andc(vector bool short __a, vector bool short __b) {
4765 return __a & ~__b;
4766 }
4767
4768 static inline __ATTRS_o_ai vector signed short
vec_andc(vector signed short __a,vector signed short __b)4769 vec_andc(vector signed short __a, vector signed short __b) {
4770 return __a & ~__b;
4771 }
4772
4773 static inline __ATTRS_o_ai vector signed short
vec_andc(vector bool short __a,vector signed short __b)4774 vec_andc(vector bool short __a, vector signed short __b) {
4775 return __a & ~__b;
4776 }
4777
4778 static inline __ATTRS_o_ai vector signed short
vec_andc(vector signed short __a,vector bool short __b)4779 vec_andc(vector signed short __a, vector bool short __b) {
4780 return __a & ~__b;
4781 }
4782
4783 static inline __ATTRS_o_ai vector unsigned short
vec_andc(vector unsigned short __a,vector unsigned short __b)4784 vec_andc(vector unsigned short __a, vector unsigned short __b) {
4785 return __a & ~__b;
4786 }
4787
4788 static inline __ATTRS_o_ai vector unsigned short
vec_andc(vector bool short __a,vector unsigned short __b)4789 vec_andc(vector bool short __a, vector unsigned short __b) {
4790 return __a & ~__b;
4791 }
4792
4793 static inline __ATTRS_o_ai vector unsigned short
vec_andc(vector unsigned short __a,vector bool short __b)4794 vec_andc(vector unsigned short __a, vector bool short __b) {
4795 return __a & ~__b;
4796 }
4797
4798 static inline __ATTRS_o_ai vector bool int
vec_andc(vector bool int __a,vector bool int __b)4799 vec_andc(vector bool int __a, vector bool int __b) {
4800 return __a & ~__b;
4801 }
4802
4803 static inline __ATTRS_o_ai vector signed int
vec_andc(vector signed int __a,vector signed int __b)4804 vec_andc(vector signed int __a, vector signed int __b) {
4805 return __a & ~__b;
4806 }
4807
4808 static inline __ATTRS_o_ai vector signed int
vec_andc(vector bool int __a,vector signed int __b)4809 vec_andc(vector bool int __a, vector signed int __b) {
4810 return __a & ~__b;
4811 }
4812
4813 static inline __ATTRS_o_ai vector signed int
vec_andc(vector signed int __a,vector bool int __b)4814 vec_andc(vector signed int __a, vector bool int __b) {
4815 return __a & ~__b;
4816 }
4817
4818 static inline __ATTRS_o_ai vector unsigned int
vec_andc(vector unsigned int __a,vector unsigned int __b)4819 vec_andc(vector unsigned int __a, vector unsigned int __b) {
4820 return __a & ~__b;
4821 }
4822
4823 static inline __ATTRS_o_ai vector unsigned int
vec_andc(vector bool int __a,vector unsigned int __b)4824 vec_andc(vector bool int __a, vector unsigned int __b) {
4825 return __a & ~__b;
4826 }
4827
4828 static inline __ATTRS_o_ai vector unsigned int
vec_andc(vector unsigned int __a,vector bool int __b)4829 vec_andc(vector unsigned int __a, vector bool int __b) {
4830 return __a & ~__b;
4831 }
4832
4833 static inline __ATTRS_o_ai vector bool long long
vec_andc(vector bool long long __a,vector bool long long __b)4834 vec_andc(vector bool long long __a, vector bool long long __b) {
4835 return __a & ~__b;
4836 }
4837
4838 static inline __ATTRS_o_ai vector signed long long
vec_andc(vector signed long long __a,vector signed long long __b)4839 vec_andc(vector signed long long __a, vector signed long long __b) {
4840 return __a & ~__b;
4841 }
4842
4843 static inline __ATTRS_o_ai vector signed long long
vec_andc(vector bool long long __a,vector signed long long __b)4844 vec_andc(vector bool long long __a, vector signed long long __b) {
4845 return __a & ~__b;
4846 }
4847
4848 static inline __ATTRS_o_ai vector signed long long
vec_andc(vector signed long long __a,vector bool long long __b)4849 vec_andc(vector signed long long __a, vector bool long long __b) {
4850 return __a & ~__b;
4851 }
4852
4853 static inline __ATTRS_o_ai vector unsigned long long
vec_andc(vector unsigned long long __a,vector unsigned long long __b)4854 vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
4855 return __a & ~__b;
4856 }
4857
4858 static inline __ATTRS_o_ai vector unsigned long long
vec_andc(vector bool long long __a,vector unsigned long long __b)4859 vec_andc(vector bool long long __a, vector unsigned long long __b) {
4860 return __a & ~__b;
4861 }
4862
4863 static inline __ATTRS_o_ai vector unsigned long long
vec_andc(vector unsigned long long __a,vector bool long long __b)4864 vec_andc(vector unsigned long long __a, vector bool long long __b) {
4865 return __a & ~__b;
4866 }
4867
4868 static inline __ATTRS_o_ai vector double
vec_andc(vector double __a,vector double __b)4869 vec_andc(vector double __a, vector double __b) {
4870 return (vector double)((vector unsigned long long)__a &
4871 ~(vector unsigned long long)__b);
4872 }
4873
4874 static inline __ATTRS_o_ai vector double
vec_andc(vector bool long long __a,vector double __b)4875 vec_andc(vector bool long long __a, vector double __b) {
4876 return (vector double)((vector unsigned long long)__a &
4877 ~(vector unsigned long long)__b);
4878 }
4879
4880 static inline __ATTRS_o_ai vector double
vec_andc(vector double __a,vector bool long long __b)4881 vec_andc(vector double __a, vector bool long long __b) {
4882 return (vector double)((vector unsigned long long)__a &
4883 ~(vector unsigned long long)__b);
4884 }
4885
4886 /*-- vec_nor ----------------------------------------------------------------*/
4887
4888 static inline __ATTRS_o_ai vector bool char
vec_nor(vector bool char __a,vector bool char __b)4889 vec_nor(vector bool char __a, vector bool char __b) {
4890 return ~(__a | __b);
4891 }
4892
4893 static inline __ATTRS_o_ai vector signed char
vec_nor(vector signed char __a,vector signed char __b)4894 vec_nor(vector signed char __a, vector signed char __b) {
4895 return ~(__a | __b);
4896 }
4897
4898 static inline __ATTRS_o_ai vector signed char
vec_nor(vector bool char __a,vector signed char __b)4899 vec_nor(vector bool char __a, vector signed char __b) {
4900 return ~(__a | __b);
4901 }
4902
4903 static inline __ATTRS_o_ai vector signed char
vec_nor(vector signed char __a,vector bool char __b)4904 vec_nor(vector signed char __a, vector bool char __b) {
4905 return ~(__a | __b);
4906 }
4907
4908 static inline __ATTRS_o_ai vector unsigned char
vec_nor(vector unsigned char __a,vector unsigned char __b)4909 vec_nor(vector unsigned char __a, vector unsigned char __b) {
4910 return ~(__a | __b);
4911 }
4912
4913 static inline __ATTRS_o_ai vector unsigned char
vec_nor(vector bool char __a,vector unsigned char __b)4914 vec_nor(vector bool char __a, vector unsigned char __b) {
4915 return ~(__a | __b);
4916 }
4917
4918 static inline __ATTRS_o_ai vector unsigned char
vec_nor(vector unsigned char __a,vector bool char __b)4919 vec_nor(vector unsigned char __a, vector bool char __b) {
4920 return ~(__a | __b);
4921 }
4922
4923 static inline __ATTRS_o_ai vector bool short
vec_nor(vector bool short __a,vector bool short __b)4924 vec_nor(vector bool short __a, vector bool short __b) {
4925 return ~(__a | __b);
4926 }
4927
4928 static inline __ATTRS_o_ai vector signed short
vec_nor(vector signed short __a,vector signed short __b)4929 vec_nor(vector signed short __a, vector signed short __b) {
4930 return ~(__a | __b);
4931 }
4932
4933 static inline __ATTRS_o_ai vector signed short
vec_nor(vector bool short __a,vector signed short __b)4934 vec_nor(vector bool short __a, vector signed short __b) {
4935 return ~(__a | __b);
4936 }
4937
4938 static inline __ATTRS_o_ai vector signed short
vec_nor(vector signed short __a,vector bool short __b)4939 vec_nor(vector signed short __a, vector bool short __b) {
4940 return ~(__a | __b);
4941 }
4942
4943 static inline __ATTRS_o_ai vector unsigned short
vec_nor(vector unsigned short __a,vector unsigned short __b)4944 vec_nor(vector unsigned short __a, vector unsigned short __b) {
4945 return ~(__a | __b);
4946 }
4947
4948 static inline __ATTRS_o_ai vector unsigned short
vec_nor(vector bool short __a,vector unsigned short __b)4949 vec_nor(vector bool short __a, vector unsigned short __b) {
4950 return ~(__a | __b);
4951 }
4952
4953 static inline __ATTRS_o_ai vector unsigned short
vec_nor(vector unsigned short __a,vector bool short __b)4954 vec_nor(vector unsigned short __a, vector bool short __b) {
4955 return ~(__a | __b);
4956 }
4957
4958 static inline __ATTRS_o_ai vector bool int
vec_nor(vector bool int __a,vector bool int __b)4959 vec_nor(vector bool int __a, vector bool int __b) {
4960 return ~(__a | __b);
4961 }
4962
4963 static inline __ATTRS_o_ai vector signed int
vec_nor(vector signed int __a,vector signed int __b)4964 vec_nor(vector signed int __a, vector signed int __b) {
4965 return ~(__a | __b);
4966 }
4967
4968 static inline __ATTRS_o_ai vector signed int
vec_nor(vector bool int __a,vector signed int __b)4969 vec_nor(vector bool int __a, vector signed int __b) {
4970 return ~(__a | __b);
4971 }
4972
4973 static inline __ATTRS_o_ai vector signed int
vec_nor(vector signed int __a,vector bool int __b)4974 vec_nor(vector signed int __a, vector bool int __b) {
4975 return ~(__a | __b);
4976 }
4977
4978 static inline __ATTRS_o_ai vector unsigned int
vec_nor(vector unsigned int __a,vector unsigned int __b)4979 vec_nor(vector unsigned int __a, vector unsigned int __b) {
4980 return ~(__a | __b);
4981 }
4982
4983 static inline __ATTRS_o_ai vector unsigned int
vec_nor(vector bool int __a,vector unsigned int __b)4984 vec_nor(vector bool int __a, vector unsigned int __b) {
4985 return ~(__a | __b);
4986 }
4987
4988 static inline __ATTRS_o_ai vector unsigned int
vec_nor(vector unsigned int __a,vector bool int __b)4989 vec_nor(vector unsigned int __a, vector bool int __b) {
4990 return ~(__a | __b);
4991 }
4992
4993 static inline __ATTRS_o_ai vector bool long long
vec_nor(vector bool long long __a,vector bool long long __b)4994 vec_nor(vector bool long long __a, vector bool long long __b) {
4995 return ~(__a | __b);
4996 }
4997
4998 static inline __ATTRS_o_ai vector signed long long
vec_nor(vector signed long long __a,vector signed long long __b)4999 vec_nor(vector signed long long __a, vector signed long long __b) {
5000 return ~(__a | __b);
5001 }
5002
5003 static inline __ATTRS_o_ai vector signed long long
vec_nor(vector bool long long __a,vector signed long long __b)5004 vec_nor(vector bool long long __a, vector signed long long __b) {
5005 return ~(__a | __b);
5006 }
5007
5008 static inline __ATTRS_o_ai vector signed long long
vec_nor(vector signed long long __a,vector bool long long __b)5009 vec_nor(vector signed long long __a, vector bool long long __b) {
5010 return ~(__a | __b);
5011 }
5012
5013 static inline __ATTRS_o_ai vector unsigned long long
vec_nor(vector unsigned long long __a,vector unsigned long long __b)5014 vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
5015 return ~(__a | __b);
5016 }
5017
5018 static inline __ATTRS_o_ai vector unsigned long long
vec_nor(vector bool long long __a,vector unsigned long long __b)5019 vec_nor(vector bool long long __a, vector unsigned long long __b) {
5020 return ~(__a | __b);
5021 }
5022
5023 static inline __ATTRS_o_ai vector unsigned long long
vec_nor(vector unsigned long long __a,vector bool long long __b)5024 vec_nor(vector unsigned long long __a, vector bool long long __b) {
5025 return ~(__a | __b);
5026 }
5027
5028 static inline __ATTRS_o_ai vector double
vec_nor(vector double __a,vector double __b)5029 vec_nor(vector double __a, vector double __b) {
5030 return (vector double)~((vector unsigned long long)__a |
5031 (vector unsigned long long)__b);
5032 }
5033
5034 static inline __ATTRS_o_ai vector double
vec_nor(vector bool long long __a,vector double __b)5035 vec_nor(vector bool long long __a, vector double __b) {
5036 return (vector double)~((vector unsigned long long)__a |
5037 (vector unsigned long long)__b);
5038 }
5039
5040 static inline __ATTRS_o_ai vector double
vec_nor(vector double __a,vector bool long long __b)5041 vec_nor(vector double __a, vector bool long long __b) {
5042 return (vector double)~((vector unsigned long long)__a |
5043 (vector unsigned long long)__b);
5044 }
5045
5046 /*-- vec_cntlz --------------------------------------------------------------*/
5047
5048 static inline __ATTRS_o_ai vector unsigned char
vec_cntlz(vector signed char __a)5049 vec_cntlz(vector signed char __a) {
5050 return __builtin_s390_vclzb((vector unsigned char)__a);
5051 }
5052
5053 static inline __ATTRS_o_ai vector unsigned char
vec_cntlz(vector unsigned char __a)5054 vec_cntlz(vector unsigned char __a) {
5055 return __builtin_s390_vclzb(__a);
5056 }
5057
5058 static inline __ATTRS_o_ai vector unsigned short
vec_cntlz(vector signed short __a)5059 vec_cntlz(vector signed short __a) {
5060 return __builtin_s390_vclzh((vector unsigned short)__a);
5061 }
5062
5063 static inline __ATTRS_o_ai vector unsigned short
vec_cntlz(vector unsigned short __a)5064 vec_cntlz(vector unsigned short __a) {
5065 return __builtin_s390_vclzh(__a);
5066 }
5067
5068 static inline __ATTRS_o_ai vector unsigned int
vec_cntlz(vector signed int __a)5069 vec_cntlz(vector signed int __a) {
5070 return __builtin_s390_vclzf((vector unsigned int)__a);
5071 }
5072
5073 static inline __ATTRS_o_ai vector unsigned int
vec_cntlz(vector unsigned int __a)5074 vec_cntlz(vector unsigned int __a) {
5075 return __builtin_s390_vclzf(__a);
5076 }
5077
5078 static inline __ATTRS_o_ai vector unsigned long long
vec_cntlz(vector signed long long __a)5079 vec_cntlz(vector signed long long __a) {
5080 return __builtin_s390_vclzg((vector unsigned long long)__a);
5081 }
5082
5083 static inline __ATTRS_o_ai vector unsigned long long
vec_cntlz(vector unsigned long long __a)5084 vec_cntlz(vector unsigned long long __a) {
5085 return __builtin_s390_vclzg(__a);
5086 }
5087
5088 /*-- vec_cnttz --------------------------------------------------------------*/
5089
5090 static inline __ATTRS_o_ai vector unsigned char
vec_cnttz(vector signed char __a)5091 vec_cnttz(vector signed char __a) {
5092 return __builtin_s390_vctzb((vector unsigned char)__a);
5093 }
5094
5095 static inline __ATTRS_o_ai vector unsigned char
vec_cnttz(vector unsigned char __a)5096 vec_cnttz(vector unsigned char __a) {
5097 return __builtin_s390_vctzb(__a);
5098 }
5099
5100 static inline __ATTRS_o_ai vector unsigned short
vec_cnttz(vector signed short __a)5101 vec_cnttz(vector signed short __a) {
5102 return __builtin_s390_vctzh((vector unsigned short)__a);
5103 }
5104
5105 static inline __ATTRS_o_ai vector unsigned short
vec_cnttz(vector unsigned short __a)5106 vec_cnttz(vector unsigned short __a) {
5107 return __builtin_s390_vctzh(__a);
5108 }
5109
5110 static inline __ATTRS_o_ai vector unsigned int
vec_cnttz(vector signed int __a)5111 vec_cnttz(vector signed int __a) {
5112 return __builtin_s390_vctzf((vector unsigned int)__a);
5113 }
5114
5115 static inline __ATTRS_o_ai vector unsigned int
vec_cnttz(vector unsigned int __a)5116 vec_cnttz(vector unsigned int __a) {
5117 return __builtin_s390_vctzf(__a);
5118 }
5119
5120 static inline __ATTRS_o_ai vector unsigned long long
vec_cnttz(vector signed long long __a)5121 vec_cnttz(vector signed long long __a) {
5122 return __builtin_s390_vctzg((vector unsigned long long)__a);
5123 }
5124
5125 static inline __ATTRS_o_ai vector unsigned long long
vec_cnttz(vector unsigned long long __a)5126 vec_cnttz(vector unsigned long long __a) {
5127 return __builtin_s390_vctzg(__a);
5128 }
5129
5130 /*-- vec_popcnt -------------------------------------------------------------*/
5131
5132 static inline __ATTRS_o_ai vector unsigned char
vec_popcnt(vector signed char __a)5133 vec_popcnt(vector signed char __a) {
5134 return __builtin_s390_vpopctb((vector unsigned char)__a);
5135 }
5136
5137 static inline __ATTRS_o_ai vector unsigned char
vec_popcnt(vector unsigned char __a)5138 vec_popcnt(vector unsigned char __a) {
5139 return __builtin_s390_vpopctb(__a);
5140 }
5141
5142 static inline __ATTRS_o_ai vector unsigned short
vec_popcnt(vector signed short __a)5143 vec_popcnt(vector signed short __a) {
5144 return __builtin_s390_vpopcth((vector unsigned short)__a);
5145 }
5146
5147 static inline __ATTRS_o_ai vector unsigned short
vec_popcnt(vector unsigned short __a)5148 vec_popcnt(vector unsigned short __a) {
5149 return __builtin_s390_vpopcth(__a);
5150 }
5151
5152 static inline __ATTRS_o_ai vector unsigned int
vec_popcnt(vector signed int __a)5153 vec_popcnt(vector signed int __a) {
5154 return __builtin_s390_vpopctf((vector unsigned int)__a);
5155 }
5156
5157 static inline __ATTRS_o_ai vector unsigned int
vec_popcnt(vector unsigned int __a)5158 vec_popcnt(vector unsigned int __a) {
5159 return __builtin_s390_vpopctf(__a);
5160 }
5161
5162 static inline __ATTRS_o_ai vector unsigned long long
vec_popcnt(vector signed long long __a)5163 vec_popcnt(vector signed long long __a) {
5164 return __builtin_s390_vpopctg((vector unsigned long long)__a);
5165 }
5166
5167 static inline __ATTRS_o_ai vector unsigned long long
vec_popcnt(vector unsigned long long __a)5168 vec_popcnt(vector unsigned long long __a) {
5169 return __builtin_s390_vpopctg(__a);
5170 }
5171
5172 /*-- vec_rl -----------------------------------------------------------------*/
5173
5174 static inline __ATTRS_o_ai vector signed char
vec_rl(vector signed char __a,vector unsigned char __b)5175 vec_rl(vector signed char __a, vector unsigned char __b) {
5176 return (vector signed char)__builtin_s390_verllvb(
5177 (vector unsigned char)__a, __b);
5178 }
5179
5180 static inline __ATTRS_o_ai vector unsigned char
vec_rl(vector unsigned char __a,vector unsigned char __b)5181 vec_rl(vector unsigned char __a, vector unsigned char __b) {
5182 return __builtin_s390_verllvb(__a, __b);
5183 }
5184
5185 static inline __ATTRS_o_ai vector signed short
vec_rl(vector signed short __a,vector unsigned short __b)5186 vec_rl(vector signed short __a, vector unsigned short __b) {
5187 return (vector signed short)__builtin_s390_verllvh(
5188 (vector unsigned short)__a, __b);
5189 }
5190
5191 static inline __ATTRS_o_ai vector unsigned short
vec_rl(vector unsigned short __a,vector unsigned short __b)5192 vec_rl(vector unsigned short __a, vector unsigned short __b) {
5193 return __builtin_s390_verllvh(__a, __b);
5194 }
5195
5196 static inline __ATTRS_o_ai vector signed int
vec_rl(vector signed int __a,vector unsigned int __b)5197 vec_rl(vector signed int __a, vector unsigned int __b) {
5198 return (vector signed int)__builtin_s390_verllvf(
5199 (vector unsigned int)__a, __b);
5200 }
5201
5202 static inline __ATTRS_o_ai vector unsigned int
vec_rl(vector unsigned int __a,vector unsigned int __b)5203 vec_rl(vector unsigned int __a, vector unsigned int __b) {
5204 return __builtin_s390_verllvf(__a, __b);
5205 }
5206
5207 static inline __ATTRS_o_ai vector signed long long
vec_rl(vector signed long long __a,vector unsigned long long __b)5208 vec_rl(vector signed long long __a, vector unsigned long long __b) {
5209 return (vector signed long long)__builtin_s390_verllvg(
5210 (vector unsigned long long)__a, __b);
5211 }
5212
5213 static inline __ATTRS_o_ai vector unsigned long long
vec_rl(vector unsigned long long __a,vector unsigned long long __b)5214 vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
5215 return __builtin_s390_verllvg(__a, __b);
5216 }
5217
5218 /*-- vec_rli ----------------------------------------------------------------*/
5219
5220 static inline __ATTRS_o_ai vector signed char
vec_rli(vector signed char __a,unsigned long __b)5221 vec_rli(vector signed char __a, unsigned long __b) {
5222 return (vector signed char)__builtin_s390_verllb(
5223 (vector unsigned char)__a, (int)__b);
5224 }
5225
5226 static inline __ATTRS_o_ai vector unsigned char
vec_rli(vector unsigned char __a,unsigned long __b)5227 vec_rli(vector unsigned char __a, unsigned long __b) {
5228 return __builtin_s390_verllb(__a, (int)__b);
5229 }
5230
5231 static inline __ATTRS_o_ai vector signed short
vec_rli(vector signed short __a,unsigned long __b)5232 vec_rli(vector signed short __a, unsigned long __b) {
5233 return (vector signed short)__builtin_s390_verllh(
5234 (vector unsigned short)__a, (int)__b);
5235 }
5236
5237 static inline __ATTRS_o_ai vector unsigned short
vec_rli(vector unsigned short __a,unsigned long __b)5238 vec_rli(vector unsigned short __a, unsigned long __b) {
5239 return __builtin_s390_verllh(__a, (int)__b);
5240 }
5241
5242 static inline __ATTRS_o_ai vector signed int
vec_rli(vector signed int __a,unsigned long __b)5243 vec_rli(vector signed int __a, unsigned long __b) {
5244 return (vector signed int)__builtin_s390_verllf(
5245 (vector unsigned int)__a, (int)__b);
5246 }
5247
5248 static inline __ATTRS_o_ai vector unsigned int
vec_rli(vector unsigned int __a,unsigned long __b)5249 vec_rli(vector unsigned int __a, unsigned long __b) {
5250 return __builtin_s390_verllf(__a, (int)__b);
5251 }
5252
5253 static inline __ATTRS_o_ai vector signed long long
vec_rli(vector signed long long __a,unsigned long __b)5254 vec_rli(vector signed long long __a, unsigned long __b) {
5255 return (vector signed long long)__builtin_s390_verllg(
5256 (vector unsigned long long)__a, (int)__b);
5257 }
5258
5259 static inline __ATTRS_o_ai vector unsigned long long
vec_rli(vector unsigned long long __a,unsigned long __b)5260 vec_rli(vector unsigned long long __a, unsigned long __b) {
5261 return __builtin_s390_verllg(__a, (int)__b);
5262 }
5263
5264 /*-- vec_rl_mask ------------------------------------------------------------*/
5265
5266 extern __ATTRS_o vector signed char
5267 vec_rl_mask(vector signed char __a, vector unsigned char __b,
5268 unsigned char __c) __constant(__c);
5269
5270 extern __ATTRS_o vector unsigned char
5271 vec_rl_mask(vector unsigned char __a, vector unsigned char __b,
5272 unsigned char __c) __constant(__c);
5273
5274 extern __ATTRS_o vector signed short
5275 vec_rl_mask(vector signed short __a, vector unsigned short __b,
5276 unsigned char __c) __constant(__c);
5277
5278 extern __ATTRS_o vector unsigned short
5279 vec_rl_mask(vector unsigned short __a, vector unsigned short __b,
5280 unsigned char __c) __constant(__c);
5281
5282 extern __ATTRS_o vector signed int
5283 vec_rl_mask(vector signed int __a, vector unsigned int __b,
5284 unsigned char __c) __constant(__c);
5285
5286 extern __ATTRS_o vector unsigned int
5287 vec_rl_mask(vector unsigned int __a, vector unsigned int __b,
5288 unsigned char __c) __constant(__c);
5289
5290 extern __ATTRS_o vector signed long long
5291 vec_rl_mask(vector signed long long __a, vector unsigned long long __b,
5292 unsigned char __c) __constant(__c);
5293
5294 extern __ATTRS_o vector unsigned long long
5295 vec_rl_mask(vector unsigned long long __a, vector unsigned long long __b,
5296 unsigned char __c) __constant(__c);
5297
5298 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \
5299 __extension__ ({ \
5300 vector unsigned char __res; \
5301 vector unsigned char __x = (vector unsigned char)(X); \
5302 vector unsigned char __y = (vector unsigned char)(Y); \
5303 switch (sizeof ((X)[0])) { \
5304 case 1: __res = (vector unsigned char) __builtin_s390_verimb( \
5305 (vector unsigned char)__x, (vector unsigned char)__x, \
5306 (vector unsigned char)__y, (Z)); break; \
5307 case 2: __res = (vector unsigned char) __builtin_s390_verimh( \
5308 (vector unsigned short)__x, (vector unsigned short)__x, \
5309 (vector unsigned short)__y, (Z)); break; \
5310 case 4: __res = (vector unsigned char) __builtin_s390_verimf( \
5311 (vector unsigned int)__x, (vector unsigned int)__x, \
5312 (vector unsigned int)__y, (Z)); break; \
5313 default: __res = (vector unsigned char) __builtin_s390_verimg( \
5314 (vector unsigned long long)__x, (vector unsigned long long)__x, \
5315 (vector unsigned long long)__y, (Z)); break; \
5316 } __res; }))
5317
5318 /*-- vec_sll ----------------------------------------------------------------*/
5319
5320 static inline __ATTRS_o_ai vector signed char
vec_sll(vector signed char __a,vector unsigned char __b)5321 vec_sll(vector signed char __a, vector unsigned char __b) {
5322 return (vector signed char)__builtin_s390_vsl(
5323 (vector unsigned char)__a, __b);
5324 }
5325
5326 static inline __ATTRS_o_ai vector signed char
vec_sll(vector signed char __a,vector unsigned short __b)5327 vec_sll(vector signed char __a, vector unsigned short __b) {
5328 return (vector signed char)__builtin_s390_vsl(
5329 (vector unsigned char)__a, (vector unsigned char)__b);
5330 }
5331
5332 static inline __ATTRS_o_ai vector signed char
vec_sll(vector signed char __a,vector unsigned int __b)5333 vec_sll(vector signed char __a, vector unsigned int __b) {
5334 return (vector signed char)__builtin_s390_vsl(
5335 (vector unsigned char)__a, (vector unsigned char)__b);
5336 }
5337
5338 static inline __ATTRS_o_ai vector bool char
vec_sll(vector bool char __a,vector unsigned char __b)5339 vec_sll(vector bool char __a, vector unsigned char __b) {
5340 return (vector bool char)__builtin_s390_vsl(
5341 (vector unsigned char)__a, __b);
5342 }
5343
5344 static inline __ATTRS_o_ai vector bool char
vec_sll(vector bool char __a,vector unsigned short __b)5345 vec_sll(vector bool char __a, vector unsigned short __b) {
5346 return (vector bool char)__builtin_s390_vsl(
5347 (vector unsigned char)__a, (vector unsigned char)__b);
5348 }
5349
5350 static inline __ATTRS_o_ai vector bool char
vec_sll(vector bool char __a,vector unsigned int __b)5351 vec_sll(vector bool char __a, vector unsigned int __b) {
5352 return (vector bool char)__builtin_s390_vsl(
5353 (vector unsigned char)__a, (vector unsigned char)__b);
5354 }
5355
5356 static inline __ATTRS_o_ai vector unsigned char
vec_sll(vector unsigned char __a,vector unsigned char __b)5357 vec_sll(vector unsigned char __a, vector unsigned char __b) {
5358 return __builtin_s390_vsl(__a, __b);
5359 }
5360
5361 static inline __ATTRS_o_ai vector unsigned char
vec_sll(vector unsigned char __a,vector unsigned short __b)5362 vec_sll(vector unsigned char __a, vector unsigned short __b) {
5363 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
5364 }
5365
5366 static inline __ATTRS_o_ai vector unsigned char
vec_sll(vector unsigned char __a,vector unsigned int __b)5367 vec_sll(vector unsigned char __a, vector unsigned int __b) {
5368 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
5369 }
5370
5371 static inline __ATTRS_o_ai vector signed short
vec_sll(vector signed short __a,vector unsigned char __b)5372 vec_sll(vector signed short __a, vector unsigned char __b) {
5373 return (vector signed short)__builtin_s390_vsl(
5374 (vector unsigned char)__a, __b);
5375 }
5376
5377 static inline __ATTRS_o_ai vector signed short
vec_sll(vector signed short __a,vector unsigned short __b)5378 vec_sll(vector signed short __a, vector unsigned short __b) {
5379 return (vector signed short)__builtin_s390_vsl(
5380 (vector unsigned char)__a, (vector unsigned char)__b);
5381 }
5382
5383 static inline __ATTRS_o_ai vector signed short
vec_sll(vector signed short __a,vector unsigned int __b)5384 vec_sll(vector signed short __a, vector unsigned int __b) {
5385 return (vector signed short)__builtin_s390_vsl(
5386 (vector unsigned char)__a, (vector unsigned char)__b);
5387 }
5388
5389 static inline __ATTRS_o_ai vector bool short
vec_sll(vector bool short __a,vector unsigned char __b)5390 vec_sll(vector bool short __a, vector unsigned char __b) {
5391 return (vector bool short)__builtin_s390_vsl(
5392 (vector unsigned char)__a, __b);
5393 }
5394
5395 static inline __ATTRS_o_ai vector bool short
vec_sll(vector bool short __a,vector unsigned short __b)5396 vec_sll(vector bool short __a, vector unsigned short __b) {
5397 return (vector bool short)__builtin_s390_vsl(
5398 (vector unsigned char)__a, (vector unsigned char)__b);
5399 }
5400
5401 static inline __ATTRS_o_ai vector bool short
vec_sll(vector bool short __a,vector unsigned int __b)5402 vec_sll(vector bool short __a, vector unsigned int __b) {
5403 return (vector bool short)__builtin_s390_vsl(
5404 (vector unsigned char)__a, (vector unsigned char)__b);
5405 }
5406
5407 static inline __ATTRS_o_ai vector unsigned short
vec_sll(vector unsigned short __a,vector unsigned char __b)5408 vec_sll(vector unsigned short __a, vector unsigned char __b) {
5409 return (vector unsigned short)__builtin_s390_vsl(
5410 (vector unsigned char)__a, __b);
5411 }
5412
5413 static inline __ATTRS_o_ai vector unsigned short
vec_sll(vector unsigned short __a,vector unsigned short __b)5414 vec_sll(vector unsigned short __a, vector unsigned short __b) {
5415 return (vector unsigned short)__builtin_s390_vsl(
5416 (vector unsigned char)__a, (vector unsigned char)__b);
5417 }
5418
5419 static inline __ATTRS_o_ai vector unsigned short
vec_sll(vector unsigned short __a,vector unsigned int __b)5420 vec_sll(vector unsigned short __a, vector unsigned int __b) {
5421 return (vector unsigned short)__builtin_s390_vsl(
5422 (vector unsigned char)__a, (vector unsigned char)__b);
5423 }
5424
5425 static inline __ATTRS_o_ai vector signed int
vec_sll(vector signed int __a,vector unsigned char __b)5426 vec_sll(vector signed int __a, vector unsigned char __b) {
5427 return (vector signed int)__builtin_s390_vsl(
5428 (vector unsigned char)__a, __b);
5429 }
5430
5431 static inline __ATTRS_o_ai vector signed int
vec_sll(vector signed int __a,vector unsigned short __b)5432 vec_sll(vector signed int __a, vector unsigned short __b) {
5433 return (vector signed int)__builtin_s390_vsl(
5434 (vector unsigned char)__a, (vector unsigned char)__b);
5435 }
5436
5437 static inline __ATTRS_o_ai vector signed int
vec_sll(vector signed int __a,vector unsigned int __b)5438 vec_sll(vector signed int __a, vector unsigned int __b) {
5439 return (vector signed int)__builtin_s390_vsl(
5440 (vector unsigned char)__a, (vector unsigned char)__b);
5441 }
5442
5443 static inline __ATTRS_o_ai vector bool int
vec_sll(vector bool int __a,vector unsigned char __b)5444 vec_sll(vector bool int __a, vector unsigned char __b) {
5445 return (vector bool int)__builtin_s390_vsl(
5446 (vector unsigned char)__a, __b);
5447 }
5448
5449 static inline __ATTRS_o_ai vector bool int
vec_sll(vector bool int __a,vector unsigned short __b)5450 vec_sll(vector bool int __a, vector unsigned short __b) {
5451 return (vector bool int)__builtin_s390_vsl(
5452 (vector unsigned char)__a, (vector unsigned char)__b);
5453 }
5454
5455 static inline __ATTRS_o_ai vector bool int
vec_sll(vector bool int __a,vector unsigned int __b)5456 vec_sll(vector bool int __a, vector unsigned int __b) {
5457 return (vector bool int)__builtin_s390_vsl(
5458 (vector unsigned char)__a, (vector unsigned char)__b);
5459 }
5460
5461 static inline __ATTRS_o_ai vector unsigned int
vec_sll(vector unsigned int __a,vector unsigned char __b)5462 vec_sll(vector unsigned int __a, vector unsigned char __b) {
5463 return (vector unsigned int)__builtin_s390_vsl(
5464 (vector unsigned char)__a, __b);
5465 }
5466
5467 static inline __ATTRS_o_ai vector unsigned int
vec_sll(vector unsigned int __a,vector unsigned short __b)5468 vec_sll(vector unsigned int __a, vector unsigned short __b) {
5469 return (vector unsigned int)__builtin_s390_vsl(
5470 (vector unsigned char)__a, (vector unsigned char)__b);
5471 }
5472
5473 static inline __ATTRS_o_ai vector unsigned int
vec_sll(vector unsigned int __a,vector unsigned int __b)5474 vec_sll(vector unsigned int __a, vector unsigned int __b) {
5475 return (vector unsigned int)__builtin_s390_vsl(
5476 (vector unsigned char)__a, (vector unsigned char)__b);
5477 }
5478
5479 static inline __ATTRS_o_ai vector signed long long
vec_sll(vector signed long long __a,vector unsigned char __b)5480 vec_sll(vector signed long long __a, vector unsigned char __b) {
5481 return (vector signed long long)__builtin_s390_vsl(
5482 (vector unsigned char)__a, __b);
5483 }
5484
5485 static inline __ATTRS_o_ai vector signed long long
vec_sll(vector signed long long __a,vector unsigned short __b)5486 vec_sll(vector signed long long __a, vector unsigned short __b) {
5487 return (vector signed long long)__builtin_s390_vsl(
5488 (vector unsigned char)__a, (vector unsigned char)__b);
5489 }
5490
5491 static inline __ATTRS_o_ai vector signed long long
vec_sll(vector signed long long __a,vector unsigned int __b)5492 vec_sll(vector signed long long __a, vector unsigned int __b) {
5493 return (vector signed long long)__builtin_s390_vsl(
5494 (vector unsigned char)__a, (vector unsigned char)__b);
5495 }
5496
5497 static inline __ATTRS_o_ai vector bool long long
vec_sll(vector bool long long __a,vector unsigned char __b)5498 vec_sll(vector bool long long __a, vector unsigned char __b) {
5499 return (vector bool long long)__builtin_s390_vsl(
5500 (vector unsigned char)__a, __b);
5501 }
5502
5503 static inline __ATTRS_o_ai vector bool long long
vec_sll(vector bool long long __a,vector unsigned short __b)5504 vec_sll(vector bool long long __a, vector unsigned short __b) {
5505 return (vector bool long long)__builtin_s390_vsl(
5506 (vector unsigned char)__a, (vector unsigned char)__b);
5507 }
5508
5509 static inline __ATTRS_o_ai vector bool long long
vec_sll(vector bool long long __a,vector unsigned int __b)5510 vec_sll(vector bool long long __a, vector unsigned int __b) {
5511 return (vector bool long long)__builtin_s390_vsl(
5512 (vector unsigned char)__a, (vector unsigned char)__b);
5513 }
5514
5515 static inline __ATTRS_o_ai vector unsigned long long
vec_sll(vector unsigned long long __a,vector unsigned char __b)5516 vec_sll(vector unsigned long long __a, vector unsigned char __b) {
5517 return (vector unsigned long long)__builtin_s390_vsl(
5518 (vector unsigned char)__a, __b);
5519 }
5520
5521 static inline __ATTRS_o_ai vector unsigned long long
vec_sll(vector unsigned long long __a,vector unsigned short __b)5522 vec_sll(vector unsigned long long __a, vector unsigned short __b) {
5523 return (vector unsigned long long)__builtin_s390_vsl(
5524 (vector unsigned char)__a, (vector unsigned char)__b);
5525 }
5526
5527 static inline __ATTRS_o_ai vector unsigned long long
vec_sll(vector unsigned long long __a,vector unsigned int __b)5528 vec_sll(vector unsigned long long __a, vector unsigned int __b) {
5529 return (vector unsigned long long)__builtin_s390_vsl(
5530 (vector unsigned char)__a, (vector unsigned char)__b);
5531 }
5532
5533 /*-- vec_slb ----------------------------------------------------------------*/
5534
5535 static inline __ATTRS_o_ai vector signed char
vec_slb(vector signed char __a,vector signed char __b)5536 vec_slb(vector signed char __a, vector signed char __b) {
5537 return (vector signed char)__builtin_s390_vslb(
5538 (vector unsigned char)__a, (vector unsigned char)__b);
5539 }
5540
5541 static inline __ATTRS_o_ai vector signed char
vec_slb(vector signed char __a,vector unsigned char __b)5542 vec_slb(vector signed char __a, vector unsigned char __b) {
5543 return (vector signed char)__builtin_s390_vslb(
5544 (vector unsigned char)__a, __b);
5545 }
5546
5547 static inline __ATTRS_o_ai vector unsigned char
vec_slb(vector unsigned char __a,vector signed char __b)5548 vec_slb(vector unsigned char __a, vector signed char __b) {
5549 return __builtin_s390_vslb(__a, (vector unsigned char)__b);
5550 }
5551
5552 static inline __ATTRS_o_ai vector unsigned char
vec_slb(vector unsigned char __a,vector unsigned char __b)5553 vec_slb(vector unsigned char __a, vector unsigned char __b) {
5554 return __builtin_s390_vslb(__a, __b);
5555 }
5556
5557 static inline __ATTRS_o_ai vector signed short
vec_slb(vector signed short __a,vector signed short __b)5558 vec_slb(vector signed short __a, vector signed short __b) {
5559 return (vector signed short)__builtin_s390_vslb(
5560 (vector unsigned char)__a, (vector unsigned char)__b);
5561 }
5562
5563 static inline __ATTRS_o_ai vector signed short
vec_slb(vector signed short __a,vector unsigned short __b)5564 vec_slb(vector signed short __a, vector unsigned short __b) {
5565 return (vector signed short)__builtin_s390_vslb(
5566 (vector unsigned char)__a, (vector unsigned char)__b);
5567 }
5568
5569 static inline __ATTRS_o_ai vector unsigned short
vec_slb(vector unsigned short __a,vector signed short __b)5570 vec_slb(vector unsigned short __a, vector signed short __b) {
5571 return (vector unsigned short)__builtin_s390_vslb(
5572 (vector unsigned char)__a, (vector unsigned char)__b);
5573 }
5574
5575 static inline __ATTRS_o_ai vector unsigned short
vec_slb(vector unsigned short __a,vector unsigned short __b)5576 vec_slb(vector unsigned short __a, vector unsigned short __b) {
5577 return (vector unsigned short)__builtin_s390_vslb(
5578 (vector unsigned char)__a, (vector unsigned char)__b);
5579 }
5580
5581 static inline __ATTRS_o_ai vector signed int
vec_slb(vector signed int __a,vector signed int __b)5582 vec_slb(vector signed int __a, vector signed int __b) {
5583 return (vector signed int)__builtin_s390_vslb(
5584 (vector unsigned char)__a, (vector unsigned char)__b);
5585 }
5586
5587 static inline __ATTRS_o_ai vector signed int
vec_slb(vector signed int __a,vector unsigned int __b)5588 vec_slb(vector signed int __a, vector unsigned int __b) {
5589 return (vector signed int)__builtin_s390_vslb(
5590 (vector unsigned char)__a, (vector unsigned char)__b);
5591 }
5592
5593 static inline __ATTRS_o_ai vector unsigned int
vec_slb(vector unsigned int __a,vector signed int __b)5594 vec_slb(vector unsigned int __a, vector signed int __b) {
5595 return (vector unsigned int)__builtin_s390_vslb(
5596 (vector unsigned char)__a, (vector unsigned char)__b);
5597 }
5598
5599 static inline __ATTRS_o_ai vector unsigned int
vec_slb(vector unsigned int __a,vector unsigned int __b)5600 vec_slb(vector unsigned int __a, vector unsigned int __b) {
5601 return (vector unsigned int)__builtin_s390_vslb(
5602 (vector unsigned char)__a, (vector unsigned char)__b);
5603 }
5604
5605 static inline __ATTRS_o_ai vector signed long long
vec_slb(vector signed long long __a,vector signed long long __b)5606 vec_slb(vector signed long long __a, vector signed long long __b) {
5607 return (vector signed long long)__builtin_s390_vslb(
5608 (vector unsigned char)__a, (vector unsigned char)__b);
5609 }
5610
5611 static inline __ATTRS_o_ai vector signed long long
vec_slb(vector signed long long __a,vector unsigned long long __b)5612 vec_slb(vector signed long long __a, vector unsigned long long __b) {
5613 return (vector signed long long)__builtin_s390_vslb(
5614 (vector unsigned char)__a, (vector unsigned char)__b);
5615 }
5616
5617 static inline __ATTRS_o_ai vector unsigned long long
vec_slb(vector unsigned long long __a,vector signed long long __b)5618 vec_slb(vector unsigned long long __a, vector signed long long __b) {
5619 return (vector unsigned long long)__builtin_s390_vslb(
5620 (vector unsigned char)__a, (vector unsigned char)__b);
5621 }
5622
5623 static inline __ATTRS_o_ai vector unsigned long long
vec_slb(vector unsigned long long __a,vector unsigned long long __b)5624 vec_slb(vector unsigned long long __a, vector unsigned long long __b) {
5625 return (vector unsigned long long)__builtin_s390_vslb(
5626 (vector unsigned char)__a, (vector unsigned char)__b);
5627 }
5628
5629 static inline __ATTRS_o_ai vector double
vec_slb(vector double __a,vector signed long long __b)5630 vec_slb(vector double __a, vector signed long long __b) {
5631 return (vector double)__builtin_s390_vslb(
5632 (vector unsigned char)__a, (vector unsigned char)__b);
5633 }
5634
5635 static inline __ATTRS_o_ai vector double
vec_slb(vector double __a,vector unsigned long long __b)5636 vec_slb(vector double __a, vector unsigned long long __b) {
5637 return (vector double)__builtin_s390_vslb(
5638 (vector unsigned char)__a, (vector unsigned char)__b);
5639 }
5640
5641 /*-- vec_sld ----------------------------------------------------------------*/
5642
5643 extern __ATTRS_o vector signed char
5644 vec_sld(vector signed char __a, vector signed char __b, int __c)
5645 __constant_range(__c, 0, 15);
5646
5647 extern __ATTRS_o vector unsigned char
5648 vec_sld(vector unsigned char __a, vector unsigned char __b, int __c)
5649 __constant_range(__c, 0, 15);
5650
5651 extern __ATTRS_o vector signed short
5652 vec_sld(vector signed short __a, vector signed short __b, int __c)
5653 __constant_range(__c, 0, 15);
5654
5655 extern __ATTRS_o vector unsigned short
5656 vec_sld(vector unsigned short __a, vector unsigned short __b, int __c)
5657 __constant_range(__c, 0, 15);
5658
5659 extern __ATTRS_o vector signed int
5660 vec_sld(vector signed int __a, vector signed int __b, int __c)
5661 __constant_range(__c, 0, 15);
5662
5663 extern __ATTRS_o vector unsigned int
5664 vec_sld(vector unsigned int __a, vector unsigned int __b, int __c)
5665 __constant_range(__c, 0, 15);
5666
5667 extern __ATTRS_o vector signed long long
5668 vec_sld(vector signed long long __a, vector signed long long __b, int __c)
5669 __constant_range(__c, 0, 15);
5670
5671 extern __ATTRS_o vector unsigned long long
5672 vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c)
5673 __constant_range(__c, 0, 15);
5674
5675 extern __ATTRS_o vector double
5676 vec_sld(vector double __a, vector double __b, int __c)
5677 __constant_range(__c, 0, 15);
5678
5679 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \
5680 __builtin_s390_vsldb((vector unsigned char)(X), \
5681 (vector unsigned char)(Y), (Z)))
5682
5683 /*-- vec_sldw ---------------------------------------------------------------*/
5684
5685 extern __ATTRS_o vector signed char
5686 vec_sldw(vector signed char __a, vector signed char __b, int __c)
5687 __constant_range(__c, 0, 3);
5688
5689 extern __ATTRS_o vector unsigned char
5690 vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c)
5691 __constant_range(__c, 0, 3);
5692
5693 extern __ATTRS_o vector signed short
5694 vec_sldw(vector signed short __a, vector signed short __b, int __c)
5695 __constant_range(__c, 0, 3);
5696
5697 extern __ATTRS_o vector unsigned short
5698 vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c)
5699 __constant_range(__c, 0, 3);
5700
5701 extern __ATTRS_o vector signed int
5702 vec_sldw(vector signed int __a, vector signed int __b, int __c)
5703 __constant_range(__c, 0, 3);
5704
5705 extern __ATTRS_o vector unsigned int
5706 vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c)
5707 __constant_range(__c, 0, 3);
5708
5709 extern __ATTRS_o vector signed long long
5710 vec_sldw(vector signed long long __a, vector signed long long __b, int __c)
5711 __constant_range(__c, 0, 3);
5712
5713 extern __ATTRS_o vector unsigned long long
5714 vec_sldw(vector unsigned long long __a, vector unsigned long long __b, int __c)
5715 __constant_range(__c, 0, 3);
5716
5717 extern __ATTRS_o vector double
5718 vec_sldw(vector double __a, vector double __b, int __c)
5719 __constant_range(__c, 0, 3);
5720
5721 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \
5722 __builtin_s390_vsldb((vector unsigned char)(X), \
5723 (vector unsigned char)(Y), (Z) * 4))
5724
5725 /*-- vec_sral ---------------------------------------------------------------*/
5726
5727 static inline __ATTRS_o_ai vector signed char
vec_sral(vector signed char __a,vector unsigned char __b)5728 vec_sral(vector signed char __a, vector unsigned char __b) {
5729 return (vector signed char)__builtin_s390_vsra(
5730 (vector unsigned char)__a, __b);
5731 }
5732
5733 static inline __ATTRS_o_ai vector signed char
vec_sral(vector signed char __a,vector unsigned short __b)5734 vec_sral(vector signed char __a, vector unsigned short __b) {
5735 return (vector signed char)__builtin_s390_vsra(
5736 (vector unsigned char)__a, (vector unsigned char)__b);
5737 }
5738
5739 static inline __ATTRS_o_ai vector signed char
vec_sral(vector signed char __a,vector unsigned int __b)5740 vec_sral(vector signed char __a, vector unsigned int __b) {
5741 return (vector signed char)__builtin_s390_vsra(
5742 (vector unsigned char)__a, (vector unsigned char)__b);
5743 }
5744
5745 static inline __ATTRS_o_ai vector bool char
vec_sral(vector bool char __a,vector unsigned char __b)5746 vec_sral(vector bool char __a, vector unsigned char __b) {
5747 return (vector bool char)__builtin_s390_vsra(
5748 (vector unsigned char)__a, __b);
5749 }
5750
5751 static inline __ATTRS_o_ai vector bool char
vec_sral(vector bool char __a,vector unsigned short __b)5752 vec_sral(vector bool char __a, vector unsigned short __b) {
5753 return (vector bool char)__builtin_s390_vsra(
5754 (vector unsigned char)__a, (vector unsigned char)__b);
5755 }
5756
5757 static inline __ATTRS_o_ai vector bool char
vec_sral(vector bool char __a,vector unsigned int __b)5758 vec_sral(vector bool char __a, vector unsigned int __b) {
5759 return (vector bool char)__builtin_s390_vsra(
5760 (vector unsigned char)__a, (vector unsigned char)__b);
5761 }
5762
5763 static inline __ATTRS_o_ai vector unsigned char
vec_sral(vector unsigned char __a,vector unsigned char __b)5764 vec_sral(vector unsigned char __a, vector unsigned char __b) {
5765 return __builtin_s390_vsra(__a, __b);
5766 }
5767
5768 static inline __ATTRS_o_ai vector unsigned char
vec_sral(vector unsigned char __a,vector unsigned short __b)5769 vec_sral(vector unsigned char __a, vector unsigned short __b) {
5770 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
5771 }
5772
5773 static inline __ATTRS_o_ai vector unsigned char
vec_sral(vector unsigned char __a,vector unsigned int __b)5774 vec_sral(vector unsigned char __a, vector unsigned int __b) {
5775 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
5776 }
5777
5778 static inline __ATTRS_o_ai vector signed short
vec_sral(vector signed short __a,vector unsigned char __b)5779 vec_sral(vector signed short __a, vector unsigned char __b) {
5780 return (vector signed short)__builtin_s390_vsra(
5781 (vector unsigned char)__a, __b);
5782 }
5783
5784 static inline __ATTRS_o_ai vector signed short
vec_sral(vector signed short __a,vector unsigned short __b)5785 vec_sral(vector signed short __a, vector unsigned short __b) {
5786 return (vector signed short)__builtin_s390_vsra(
5787 (vector unsigned char)__a, (vector unsigned char)__b);
5788 }
5789
5790 static inline __ATTRS_o_ai vector signed short
vec_sral(vector signed short __a,vector unsigned int __b)5791 vec_sral(vector signed short __a, vector unsigned int __b) {
5792 return (vector signed short)__builtin_s390_vsra(
5793 (vector unsigned char)__a, (vector unsigned char)__b);
5794 }
5795
5796 static inline __ATTRS_o_ai vector bool short
vec_sral(vector bool short __a,vector unsigned char __b)5797 vec_sral(vector bool short __a, vector unsigned char __b) {
5798 return (vector bool short)__builtin_s390_vsra(
5799 (vector unsigned char)__a, __b);
5800 }
5801
5802 static inline __ATTRS_o_ai vector bool short
vec_sral(vector bool short __a,vector unsigned short __b)5803 vec_sral(vector bool short __a, vector unsigned short __b) {
5804 return (vector bool short)__builtin_s390_vsra(
5805 (vector unsigned char)__a, (vector unsigned char)__b);
5806 }
5807
5808 static inline __ATTRS_o_ai vector bool short
vec_sral(vector bool short __a,vector unsigned int __b)5809 vec_sral(vector bool short __a, vector unsigned int __b) {
5810 return (vector bool short)__builtin_s390_vsra(
5811 (vector unsigned char)__a, (vector unsigned char)__b);
5812 }
5813
5814 static inline __ATTRS_o_ai vector unsigned short
vec_sral(vector unsigned short __a,vector unsigned char __b)5815 vec_sral(vector unsigned short __a, vector unsigned char __b) {
5816 return (vector unsigned short)__builtin_s390_vsra(
5817 (vector unsigned char)__a, __b);
5818 }
5819
5820 static inline __ATTRS_o_ai vector unsigned short
vec_sral(vector unsigned short __a,vector unsigned short __b)5821 vec_sral(vector unsigned short __a, vector unsigned short __b) {
5822 return (vector unsigned short)__builtin_s390_vsra(
5823 (vector unsigned char)__a, (vector unsigned char)__b);
5824 }
5825
5826 static inline __ATTRS_o_ai vector unsigned short
vec_sral(vector unsigned short __a,vector unsigned int __b)5827 vec_sral(vector unsigned short __a, vector unsigned int __b) {
5828 return (vector unsigned short)__builtin_s390_vsra(
5829 (vector unsigned char)__a, (vector unsigned char)__b);
5830 }
5831
5832 static inline __ATTRS_o_ai vector signed int
vec_sral(vector signed int __a,vector unsigned char __b)5833 vec_sral(vector signed int __a, vector unsigned char __b) {
5834 return (vector signed int)__builtin_s390_vsra(
5835 (vector unsigned char)__a, __b);
5836 }
5837
5838 static inline __ATTRS_o_ai vector signed int
vec_sral(vector signed int __a,vector unsigned short __b)5839 vec_sral(vector signed int __a, vector unsigned short __b) {
5840 return (vector signed int)__builtin_s390_vsra(
5841 (vector unsigned char)__a, (vector unsigned char)__b);
5842 }
5843
5844 static inline __ATTRS_o_ai vector signed int
vec_sral(vector signed int __a,vector unsigned int __b)5845 vec_sral(vector signed int __a, vector unsigned int __b) {
5846 return (vector signed int)__builtin_s390_vsra(
5847 (vector unsigned char)__a, (vector unsigned char)__b);
5848 }
5849
5850 static inline __ATTRS_o_ai vector bool int
vec_sral(vector bool int __a,vector unsigned char __b)5851 vec_sral(vector bool int __a, vector unsigned char __b) {
5852 return (vector bool int)__builtin_s390_vsra(
5853 (vector unsigned char)__a, __b);
5854 }
5855
5856 static inline __ATTRS_o_ai vector bool int
vec_sral(vector bool int __a,vector unsigned short __b)5857 vec_sral(vector bool int __a, vector unsigned short __b) {
5858 return (vector bool int)__builtin_s390_vsra(
5859 (vector unsigned char)__a, (vector unsigned char)__b);
5860 }
5861
5862 static inline __ATTRS_o_ai vector bool int
vec_sral(vector bool int __a,vector unsigned int __b)5863 vec_sral(vector bool int __a, vector unsigned int __b) {
5864 return (vector bool int)__builtin_s390_vsra(
5865 (vector unsigned char)__a, (vector unsigned char)__b);
5866 }
5867
5868 static inline __ATTRS_o_ai vector unsigned int
vec_sral(vector unsigned int __a,vector unsigned char __b)5869 vec_sral(vector unsigned int __a, vector unsigned char __b) {
5870 return (vector unsigned int)__builtin_s390_vsra(
5871 (vector unsigned char)__a, __b);
5872 }
5873
5874 static inline __ATTRS_o_ai vector unsigned int
vec_sral(vector unsigned int __a,vector unsigned short __b)5875 vec_sral(vector unsigned int __a, vector unsigned short __b) {
5876 return (vector unsigned int)__builtin_s390_vsra(
5877 (vector unsigned char)__a, (vector unsigned char)__b);
5878 }
5879
5880 static inline __ATTRS_o_ai vector unsigned int
vec_sral(vector unsigned int __a,vector unsigned int __b)5881 vec_sral(vector unsigned int __a, vector unsigned int __b) {
5882 return (vector unsigned int)__builtin_s390_vsra(
5883 (vector unsigned char)__a, (vector unsigned char)__b);
5884 }
5885
5886 static inline __ATTRS_o_ai vector signed long long
vec_sral(vector signed long long __a,vector unsigned char __b)5887 vec_sral(vector signed long long __a, vector unsigned char __b) {
5888 return (vector signed long long)__builtin_s390_vsra(
5889 (vector unsigned char)__a, __b);
5890 }
5891
5892 static inline __ATTRS_o_ai vector signed long long
vec_sral(vector signed long long __a,vector unsigned short __b)5893 vec_sral(vector signed long long __a, vector unsigned short __b) {
5894 return (vector signed long long)__builtin_s390_vsra(
5895 (vector unsigned char)__a, (vector unsigned char)__b);
5896 }
5897
5898 static inline __ATTRS_o_ai vector signed long long
vec_sral(vector signed long long __a,vector unsigned int __b)5899 vec_sral(vector signed long long __a, vector unsigned int __b) {
5900 return (vector signed long long)__builtin_s390_vsra(
5901 (vector unsigned char)__a, (vector unsigned char)__b);
5902 }
5903
5904 static inline __ATTRS_o_ai vector bool long long
vec_sral(vector bool long long __a,vector unsigned char __b)5905 vec_sral(vector bool long long __a, vector unsigned char __b) {
5906 return (vector bool long long)__builtin_s390_vsra(
5907 (vector unsigned char)__a, __b);
5908 }
5909
5910 static inline __ATTRS_o_ai vector bool long long
vec_sral(vector bool long long __a,vector unsigned short __b)5911 vec_sral(vector bool long long __a, vector unsigned short __b) {
5912 return (vector bool long long)__builtin_s390_vsra(
5913 (vector unsigned char)__a, (vector unsigned char)__b);
5914 }
5915
5916 static inline __ATTRS_o_ai vector bool long long
vec_sral(vector bool long long __a,vector unsigned int __b)5917 vec_sral(vector bool long long __a, vector unsigned int __b) {
5918 return (vector bool long long)__builtin_s390_vsra(
5919 (vector unsigned char)__a, (vector unsigned char)__b);
5920 }
5921
5922 static inline __ATTRS_o_ai vector unsigned long long
vec_sral(vector unsigned long long __a,vector unsigned char __b)5923 vec_sral(vector unsigned long long __a, vector unsigned char __b) {
5924 return (vector unsigned long long)__builtin_s390_vsra(
5925 (vector unsigned char)__a, __b);
5926 }
5927
5928 static inline __ATTRS_o_ai vector unsigned long long
vec_sral(vector unsigned long long __a,vector unsigned short __b)5929 vec_sral(vector unsigned long long __a, vector unsigned short __b) {
5930 return (vector unsigned long long)__builtin_s390_vsra(
5931 (vector unsigned char)__a, (vector unsigned char)__b);
5932 }
5933
5934 static inline __ATTRS_o_ai vector unsigned long long
vec_sral(vector unsigned long long __a,vector unsigned int __b)5935 vec_sral(vector unsigned long long __a, vector unsigned int __b) {
5936 return (vector unsigned long long)__builtin_s390_vsra(
5937 (vector unsigned char)__a, (vector unsigned char)__b);
5938 }
5939
5940 /*-- vec_srab ---------------------------------------------------------------*/
5941
5942 static inline __ATTRS_o_ai vector signed char
vec_srab(vector signed char __a,vector signed char __b)5943 vec_srab(vector signed char __a, vector signed char __b) {
5944 return (vector signed char)__builtin_s390_vsrab(
5945 (vector unsigned char)__a, (vector unsigned char)__b);
5946 }
5947
5948 static inline __ATTRS_o_ai vector signed char
vec_srab(vector signed char __a,vector unsigned char __b)5949 vec_srab(vector signed char __a, vector unsigned char __b) {
5950 return (vector signed char)__builtin_s390_vsrab(
5951 (vector unsigned char)__a, __b);
5952 }
5953
5954 static inline __ATTRS_o_ai vector unsigned char
vec_srab(vector unsigned char __a,vector signed char __b)5955 vec_srab(vector unsigned char __a, vector signed char __b) {
5956 return __builtin_s390_vsrab(__a, (vector unsigned char)__b);
5957 }
5958
5959 static inline __ATTRS_o_ai vector unsigned char
vec_srab(vector unsigned char __a,vector unsigned char __b)5960 vec_srab(vector unsigned char __a, vector unsigned char __b) {
5961 return __builtin_s390_vsrab(__a, __b);
5962 }
5963
5964 static inline __ATTRS_o_ai vector signed short
vec_srab(vector signed short __a,vector signed short __b)5965 vec_srab(vector signed short __a, vector signed short __b) {
5966 return (vector signed short)__builtin_s390_vsrab(
5967 (vector unsigned char)__a, (vector unsigned char)__b);
5968 }
5969
5970 static inline __ATTRS_o_ai vector signed short
vec_srab(vector signed short __a,vector unsigned short __b)5971 vec_srab(vector signed short __a, vector unsigned short __b) {
5972 return (vector signed short)__builtin_s390_vsrab(
5973 (vector unsigned char)__a, (vector unsigned char)__b);
5974 }
5975
5976 static inline __ATTRS_o_ai vector unsigned short
vec_srab(vector unsigned short __a,vector signed short __b)5977 vec_srab(vector unsigned short __a, vector signed short __b) {
5978 return (vector unsigned short)__builtin_s390_vsrab(
5979 (vector unsigned char)__a, (vector unsigned char)__b);
5980 }
5981
5982 static inline __ATTRS_o_ai vector unsigned short
vec_srab(vector unsigned short __a,vector unsigned short __b)5983 vec_srab(vector unsigned short __a, vector unsigned short __b) {
5984 return (vector unsigned short)__builtin_s390_vsrab(
5985 (vector unsigned char)__a, (vector unsigned char)__b);
5986 }
5987
5988 static inline __ATTRS_o_ai vector signed int
vec_srab(vector signed int __a,vector signed int __b)5989 vec_srab(vector signed int __a, vector signed int __b) {
5990 return (vector signed int)__builtin_s390_vsrab(
5991 (vector unsigned char)__a, (vector unsigned char)__b);
5992 }
5993
5994 static inline __ATTRS_o_ai vector signed int
vec_srab(vector signed int __a,vector unsigned int __b)5995 vec_srab(vector signed int __a, vector unsigned int __b) {
5996 return (vector signed int)__builtin_s390_vsrab(
5997 (vector unsigned char)__a, (vector unsigned char)__b);
5998 }
5999
6000 static inline __ATTRS_o_ai vector unsigned int
vec_srab(vector unsigned int __a,vector signed int __b)6001 vec_srab(vector unsigned int __a, vector signed int __b) {
6002 return (vector unsigned int)__builtin_s390_vsrab(
6003 (vector unsigned char)__a, (vector unsigned char)__b);
6004 }
6005
6006 static inline __ATTRS_o_ai vector unsigned int
vec_srab(vector unsigned int __a,vector unsigned int __b)6007 vec_srab(vector unsigned int __a, vector unsigned int __b) {
6008 return (vector unsigned int)__builtin_s390_vsrab(
6009 (vector unsigned char)__a, (vector unsigned char)__b);
6010 }
6011
6012 static inline __ATTRS_o_ai vector signed long long
vec_srab(vector signed long long __a,vector signed long long __b)6013 vec_srab(vector signed long long __a, vector signed long long __b) {
6014 return (vector signed long long)__builtin_s390_vsrab(
6015 (vector unsigned char)__a, (vector unsigned char)__b);
6016 }
6017
6018 static inline __ATTRS_o_ai vector signed long long
vec_srab(vector signed long long __a,vector unsigned long long __b)6019 vec_srab(vector signed long long __a, vector unsigned long long __b) {
6020 return (vector signed long long)__builtin_s390_vsrab(
6021 (vector unsigned char)__a, (vector unsigned char)__b);
6022 }
6023
6024 static inline __ATTRS_o_ai vector unsigned long long
vec_srab(vector unsigned long long __a,vector signed long long __b)6025 vec_srab(vector unsigned long long __a, vector signed long long __b) {
6026 return (vector unsigned long long)__builtin_s390_vsrab(
6027 (vector unsigned char)__a, (vector unsigned char)__b);
6028 }
6029
6030 static inline __ATTRS_o_ai vector unsigned long long
vec_srab(vector unsigned long long __a,vector unsigned long long __b)6031 vec_srab(vector unsigned long long __a, vector unsigned long long __b) {
6032 return (vector unsigned long long)__builtin_s390_vsrab(
6033 (vector unsigned char)__a, (vector unsigned char)__b);
6034 }
6035
6036 static inline __ATTRS_o_ai vector double
vec_srab(vector double __a,vector signed long long __b)6037 vec_srab(vector double __a, vector signed long long __b) {
6038 return (vector double)__builtin_s390_vsrab(
6039 (vector unsigned char)__a, (vector unsigned char)__b);
6040 }
6041
6042 static inline __ATTRS_o_ai vector double
vec_srab(vector double __a,vector unsigned long long __b)6043 vec_srab(vector double __a, vector unsigned long long __b) {
6044 return (vector double)__builtin_s390_vsrab(
6045 (vector unsigned char)__a, (vector unsigned char)__b);
6046 }
6047
6048 /*-- vec_srl ----------------------------------------------------------------*/
6049
6050 static inline __ATTRS_o_ai vector signed char
vec_srl(vector signed char __a,vector unsigned char __b)6051 vec_srl(vector signed char __a, vector unsigned char __b) {
6052 return (vector signed char)__builtin_s390_vsrl(
6053 (vector unsigned char)__a, __b);
6054 }
6055
6056 static inline __ATTRS_o_ai vector signed char
vec_srl(vector signed char __a,vector unsigned short __b)6057 vec_srl(vector signed char __a, vector unsigned short __b) {
6058 return (vector signed char)__builtin_s390_vsrl(
6059 (vector unsigned char)__a, (vector unsigned char)__b);
6060 }
6061
6062 static inline __ATTRS_o_ai vector signed char
vec_srl(vector signed char __a,vector unsigned int __b)6063 vec_srl(vector signed char __a, vector unsigned int __b) {
6064 return (vector signed char)__builtin_s390_vsrl(
6065 (vector unsigned char)__a, (vector unsigned char)__b);
6066 }
6067
6068 static inline __ATTRS_o_ai vector bool char
vec_srl(vector bool char __a,vector unsigned char __b)6069 vec_srl(vector bool char __a, vector unsigned char __b) {
6070 return (vector bool char)__builtin_s390_vsrl(
6071 (vector unsigned char)__a, __b);
6072 }
6073
6074 static inline __ATTRS_o_ai vector bool char
vec_srl(vector bool char __a,vector unsigned short __b)6075 vec_srl(vector bool char __a, vector unsigned short __b) {
6076 return (vector bool char)__builtin_s390_vsrl(
6077 (vector unsigned char)__a, (vector unsigned char)__b);
6078 }
6079
6080 static inline __ATTRS_o_ai vector bool char
vec_srl(vector bool char __a,vector unsigned int __b)6081 vec_srl(vector bool char __a, vector unsigned int __b) {
6082 return (vector bool char)__builtin_s390_vsrl(
6083 (vector unsigned char)__a, (vector unsigned char)__b);
6084 }
6085
6086 static inline __ATTRS_o_ai vector unsigned char
vec_srl(vector unsigned char __a,vector unsigned char __b)6087 vec_srl(vector unsigned char __a, vector unsigned char __b) {
6088 return __builtin_s390_vsrl(__a, __b);
6089 }
6090
6091 static inline __ATTRS_o_ai vector unsigned char
vec_srl(vector unsigned char __a,vector unsigned short __b)6092 vec_srl(vector unsigned char __a, vector unsigned short __b) {
6093 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
6094 }
6095
6096 static inline __ATTRS_o_ai vector unsigned char
vec_srl(vector unsigned char __a,vector unsigned int __b)6097 vec_srl(vector unsigned char __a, vector unsigned int __b) {
6098 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
6099 }
6100
6101 static inline __ATTRS_o_ai vector signed short
vec_srl(vector signed short __a,vector unsigned char __b)6102 vec_srl(vector signed short __a, vector unsigned char __b) {
6103 return (vector signed short)__builtin_s390_vsrl(
6104 (vector unsigned char)__a, __b);
6105 }
6106
6107 static inline __ATTRS_o_ai vector signed short
vec_srl(vector signed short __a,vector unsigned short __b)6108 vec_srl(vector signed short __a, vector unsigned short __b) {
6109 return (vector signed short)__builtin_s390_vsrl(
6110 (vector unsigned char)__a, (vector unsigned char)__b);
6111 }
6112
6113 static inline __ATTRS_o_ai vector signed short
vec_srl(vector signed short __a,vector unsigned int __b)6114 vec_srl(vector signed short __a, vector unsigned int __b) {
6115 return (vector signed short)__builtin_s390_vsrl(
6116 (vector unsigned char)__a, (vector unsigned char)__b);
6117 }
6118
6119 static inline __ATTRS_o_ai vector bool short
vec_srl(vector bool short __a,vector unsigned char __b)6120 vec_srl(vector bool short __a, vector unsigned char __b) {
6121 return (vector bool short)__builtin_s390_vsrl(
6122 (vector unsigned char)__a, __b);
6123 }
6124
6125 static inline __ATTRS_o_ai vector bool short
vec_srl(vector bool short __a,vector unsigned short __b)6126 vec_srl(vector bool short __a, vector unsigned short __b) {
6127 return (vector bool short)__builtin_s390_vsrl(
6128 (vector unsigned char)__a, (vector unsigned char)__b);
6129 }
6130
6131 static inline __ATTRS_o_ai vector bool short
vec_srl(vector bool short __a,vector unsigned int __b)6132 vec_srl(vector bool short __a, vector unsigned int __b) {
6133 return (vector bool short)__builtin_s390_vsrl(
6134 (vector unsigned char)__a, (vector unsigned char)__b);
6135 }
6136
6137 static inline __ATTRS_o_ai vector unsigned short
vec_srl(vector unsigned short __a,vector unsigned char __b)6138 vec_srl(vector unsigned short __a, vector unsigned char __b) {
6139 return (vector unsigned short)__builtin_s390_vsrl(
6140 (vector unsigned char)__a, __b);
6141 }
6142
6143 static inline __ATTRS_o_ai vector unsigned short
vec_srl(vector unsigned short __a,vector unsigned short __b)6144 vec_srl(vector unsigned short __a, vector unsigned short __b) {
6145 return (vector unsigned short)__builtin_s390_vsrl(
6146 (vector unsigned char)__a, (vector unsigned char)__b);
6147 }
6148
6149 static inline __ATTRS_o_ai vector unsigned short
vec_srl(vector unsigned short __a,vector unsigned int __b)6150 vec_srl(vector unsigned short __a, vector unsigned int __b) {
6151 return (vector unsigned short)__builtin_s390_vsrl(
6152 (vector unsigned char)__a, (vector unsigned char)__b);
6153 }
6154
6155 static inline __ATTRS_o_ai vector signed int
vec_srl(vector signed int __a,vector unsigned char __b)6156 vec_srl(vector signed int __a, vector unsigned char __b) {
6157 return (vector signed int)__builtin_s390_vsrl(
6158 (vector unsigned char)__a, __b);
6159 }
6160
6161 static inline __ATTRS_o_ai vector signed int
vec_srl(vector signed int __a,vector unsigned short __b)6162 vec_srl(vector signed int __a, vector unsigned short __b) {
6163 return (vector signed int)__builtin_s390_vsrl(
6164 (vector unsigned char)__a, (vector unsigned char)__b);
6165 }
6166
6167 static inline __ATTRS_o_ai vector signed int
vec_srl(vector signed int __a,vector unsigned int __b)6168 vec_srl(vector signed int __a, vector unsigned int __b) {
6169 return (vector signed int)__builtin_s390_vsrl(
6170 (vector unsigned char)__a, (vector unsigned char)__b);
6171 }
6172
6173 static inline __ATTRS_o_ai vector bool int
vec_srl(vector bool int __a,vector unsigned char __b)6174 vec_srl(vector bool int __a, vector unsigned char __b) {
6175 return (vector bool int)__builtin_s390_vsrl(
6176 (vector unsigned char)__a, __b);
6177 }
6178
6179 static inline __ATTRS_o_ai vector bool int
vec_srl(vector bool int __a,vector unsigned short __b)6180 vec_srl(vector bool int __a, vector unsigned short __b) {
6181 return (vector bool int)__builtin_s390_vsrl(
6182 (vector unsigned char)__a, (vector unsigned char)__b);
6183 }
6184
6185 static inline __ATTRS_o_ai vector bool int
vec_srl(vector bool int __a,vector unsigned int __b)6186 vec_srl(vector bool int __a, vector unsigned int __b) {
6187 return (vector bool int)__builtin_s390_vsrl(
6188 (vector unsigned char)__a, (vector unsigned char)__b);
6189 }
6190
6191 static inline __ATTRS_o_ai vector unsigned int
vec_srl(vector unsigned int __a,vector unsigned char __b)6192 vec_srl(vector unsigned int __a, vector unsigned char __b) {
6193 return (vector unsigned int)__builtin_s390_vsrl(
6194 (vector unsigned char)__a, __b);
6195 }
6196
6197 static inline __ATTRS_o_ai vector unsigned int
vec_srl(vector unsigned int __a,vector unsigned short __b)6198 vec_srl(vector unsigned int __a, vector unsigned short __b) {
6199 return (vector unsigned int)__builtin_s390_vsrl(
6200 (vector unsigned char)__a, (vector unsigned char)__b);
6201 }
6202
6203 static inline __ATTRS_o_ai vector unsigned int
vec_srl(vector unsigned int __a,vector unsigned int __b)6204 vec_srl(vector unsigned int __a, vector unsigned int __b) {
6205 return (vector unsigned int)__builtin_s390_vsrl(
6206 (vector unsigned char)__a, (vector unsigned char)__b);
6207 }
6208
6209 static inline __ATTRS_o_ai vector signed long long
vec_srl(vector signed long long __a,vector unsigned char __b)6210 vec_srl(vector signed long long __a, vector unsigned char __b) {
6211 return (vector signed long long)__builtin_s390_vsrl(
6212 (vector unsigned char)__a, __b);
6213 }
6214
6215 static inline __ATTRS_o_ai vector signed long long
vec_srl(vector signed long long __a,vector unsigned short __b)6216 vec_srl(vector signed long long __a, vector unsigned short __b) {
6217 return (vector signed long long)__builtin_s390_vsrl(
6218 (vector unsigned char)__a, (vector unsigned char)__b);
6219 }
6220
6221 static inline __ATTRS_o_ai vector signed long long
vec_srl(vector signed long long __a,vector unsigned int __b)6222 vec_srl(vector signed long long __a, vector unsigned int __b) {
6223 return (vector signed long long)__builtin_s390_vsrl(
6224 (vector unsigned char)__a, (vector unsigned char)__b);
6225 }
6226
6227 static inline __ATTRS_o_ai vector bool long long
vec_srl(vector bool long long __a,vector unsigned char __b)6228 vec_srl(vector bool long long __a, vector unsigned char __b) {
6229 return (vector bool long long)__builtin_s390_vsrl(
6230 (vector unsigned char)__a, __b);
6231 }
6232
6233 static inline __ATTRS_o_ai vector bool long long
vec_srl(vector bool long long __a,vector unsigned short __b)6234 vec_srl(vector bool long long __a, vector unsigned short __b) {
6235 return (vector bool long long)__builtin_s390_vsrl(
6236 (vector unsigned char)__a, (vector unsigned char)__b);
6237 }
6238
6239 static inline __ATTRS_o_ai vector bool long long
vec_srl(vector bool long long __a,vector unsigned int __b)6240 vec_srl(vector bool long long __a, vector unsigned int __b) {
6241 return (vector bool long long)__builtin_s390_vsrl(
6242 (vector unsigned char)__a, (vector unsigned char)__b);
6243 }
6244
6245 static inline __ATTRS_o_ai vector unsigned long long
vec_srl(vector unsigned long long __a,vector unsigned char __b)6246 vec_srl(vector unsigned long long __a, vector unsigned char __b) {
6247 return (vector unsigned long long)__builtin_s390_vsrl(
6248 (vector unsigned char)__a, __b);
6249 }
6250
6251 static inline __ATTRS_o_ai vector unsigned long long
vec_srl(vector unsigned long long __a,vector unsigned short __b)6252 vec_srl(vector unsigned long long __a, vector unsigned short __b) {
6253 return (vector unsigned long long)__builtin_s390_vsrl(
6254 (vector unsigned char)__a, (vector unsigned char)__b);
6255 }
6256
6257 static inline __ATTRS_o_ai vector unsigned long long
vec_srl(vector unsigned long long __a,vector unsigned int __b)6258 vec_srl(vector unsigned long long __a, vector unsigned int __b) {
6259 return (vector unsigned long long)__builtin_s390_vsrl(
6260 (vector unsigned char)__a, (vector unsigned char)__b);
6261 }
6262
6263 /*-- vec_srb ----------------------------------------------------------------*/
6264
6265 static inline __ATTRS_o_ai vector signed char
vec_srb(vector signed char __a,vector signed char __b)6266 vec_srb(vector signed char __a, vector signed char __b) {
6267 return (vector signed char)__builtin_s390_vsrlb(
6268 (vector unsigned char)__a, (vector unsigned char)__b);
6269 }
6270
6271 static inline __ATTRS_o_ai vector signed char
vec_srb(vector signed char __a,vector unsigned char __b)6272 vec_srb(vector signed char __a, vector unsigned char __b) {
6273 return (vector signed char)__builtin_s390_vsrlb(
6274 (vector unsigned char)__a, __b);
6275 }
6276
6277 static inline __ATTRS_o_ai vector unsigned char
vec_srb(vector unsigned char __a,vector signed char __b)6278 vec_srb(vector unsigned char __a, vector signed char __b) {
6279 return __builtin_s390_vsrlb(__a, (vector unsigned char)__b);
6280 }
6281
6282 static inline __ATTRS_o_ai vector unsigned char
vec_srb(vector unsigned char __a,vector unsigned char __b)6283 vec_srb(vector unsigned char __a, vector unsigned char __b) {
6284 return __builtin_s390_vsrlb(__a, __b);
6285 }
6286
6287 static inline __ATTRS_o_ai vector signed short
vec_srb(vector signed short __a,vector signed short __b)6288 vec_srb(vector signed short __a, vector signed short __b) {
6289 return (vector signed short)__builtin_s390_vsrlb(
6290 (vector unsigned char)__a, (vector unsigned char)__b);
6291 }
6292
6293 static inline __ATTRS_o_ai vector signed short
vec_srb(vector signed short __a,vector unsigned short __b)6294 vec_srb(vector signed short __a, vector unsigned short __b) {
6295 return (vector signed short)__builtin_s390_vsrlb(
6296 (vector unsigned char)__a, (vector unsigned char)__b);
6297 }
6298
6299 static inline __ATTRS_o_ai vector unsigned short
vec_srb(vector unsigned short __a,vector signed short __b)6300 vec_srb(vector unsigned short __a, vector signed short __b) {
6301 return (vector unsigned short)__builtin_s390_vsrlb(
6302 (vector unsigned char)__a, (vector unsigned char)__b);
6303 }
6304
6305 static inline __ATTRS_o_ai vector unsigned short
vec_srb(vector unsigned short __a,vector unsigned short __b)6306 vec_srb(vector unsigned short __a, vector unsigned short __b) {
6307 return (vector unsigned short)__builtin_s390_vsrlb(
6308 (vector unsigned char)__a, (vector unsigned char)__b);
6309 }
6310
6311 static inline __ATTRS_o_ai vector signed int
vec_srb(vector signed int __a,vector signed int __b)6312 vec_srb(vector signed int __a, vector signed int __b) {
6313 return (vector signed int)__builtin_s390_vsrlb(
6314 (vector unsigned char)__a, (vector unsigned char)__b);
6315 }
6316
6317 static inline __ATTRS_o_ai vector signed int
vec_srb(vector signed int __a,vector unsigned int __b)6318 vec_srb(vector signed int __a, vector unsigned int __b) {
6319 return (vector signed int)__builtin_s390_vsrlb(
6320 (vector unsigned char)__a, (vector unsigned char)__b);
6321 }
6322
6323 static inline __ATTRS_o_ai vector unsigned int
vec_srb(vector unsigned int __a,vector signed int __b)6324 vec_srb(vector unsigned int __a, vector signed int __b) {
6325 return (vector unsigned int)__builtin_s390_vsrlb(
6326 (vector unsigned char)__a, (vector unsigned char)__b);
6327 }
6328
6329 static inline __ATTRS_o_ai vector unsigned int
vec_srb(vector unsigned int __a,vector unsigned int __b)6330 vec_srb(vector unsigned int __a, vector unsigned int __b) {
6331 return (vector unsigned int)__builtin_s390_vsrlb(
6332 (vector unsigned char)__a, (vector unsigned char)__b);
6333 }
6334
6335 static inline __ATTRS_o_ai vector signed long long
vec_srb(vector signed long long __a,vector signed long long __b)6336 vec_srb(vector signed long long __a, vector signed long long __b) {
6337 return (vector signed long long)__builtin_s390_vsrlb(
6338 (vector unsigned char)__a, (vector unsigned char)__b);
6339 }
6340
6341 static inline __ATTRS_o_ai vector signed long long
vec_srb(vector signed long long __a,vector unsigned long long __b)6342 vec_srb(vector signed long long __a, vector unsigned long long __b) {
6343 return (vector signed long long)__builtin_s390_vsrlb(
6344 (vector unsigned char)__a, (vector unsigned char)__b);
6345 }
6346
6347 static inline __ATTRS_o_ai vector unsigned long long
vec_srb(vector unsigned long long __a,vector signed long long __b)6348 vec_srb(vector unsigned long long __a, vector signed long long __b) {
6349 return (vector unsigned long long)__builtin_s390_vsrlb(
6350 (vector unsigned char)__a, (vector unsigned char)__b);
6351 }
6352
6353 static inline __ATTRS_o_ai vector unsigned long long
vec_srb(vector unsigned long long __a,vector unsigned long long __b)6354 vec_srb(vector unsigned long long __a, vector unsigned long long __b) {
6355 return (vector unsigned long long)__builtin_s390_vsrlb(
6356 (vector unsigned char)__a, (vector unsigned char)__b);
6357 }
6358
6359 static inline __ATTRS_o_ai vector double
vec_srb(vector double __a,vector signed long long __b)6360 vec_srb(vector double __a, vector signed long long __b) {
6361 return (vector double)__builtin_s390_vsrlb(
6362 (vector unsigned char)__a, (vector unsigned char)__b);
6363 }
6364
6365 static inline __ATTRS_o_ai vector double
vec_srb(vector double __a,vector unsigned long long __b)6366 vec_srb(vector double __a, vector unsigned long long __b) {
6367 return (vector double)__builtin_s390_vsrlb(
6368 (vector unsigned char)__a, (vector unsigned char)__b);
6369 }
6370
6371 /*-- vec_abs ----------------------------------------------------------------*/
6372
6373 static inline __ATTRS_o_ai vector signed char
vec_abs(vector signed char __a)6374 vec_abs(vector signed char __a) {
6375 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0));
6376 }
6377
6378 static inline __ATTRS_o_ai vector signed short
vec_abs(vector signed short __a)6379 vec_abs(vector signed short __a) {
6380 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0));
6381 }
6382
6383 static inline __ATTRS_o_ai vector signed int
vec_abs(vector signed int __a)6384 vec_abs(vector signed int __a) {
6385 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0));
6386 }
6387
6388 static inline __ATTRS_o_ai vector signed long long
vec_abs(vector signed long long __a)6389 vec_abs(vector signed long long __a) {
6390 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed long long)0));
6391 }
6392
6393 static inline __ATTRS_o_ai vector double
vec_abs(vector double __a)6394 vec_abs(vector double __a) {
6395 return __builtin_s390_vflpdb(__a);
6396 }
6397
6398 /*-- vec_nabs ---------------------------------------------------------------*/
6399
6400 static inline __ATTRS_ai vector double
vec_nabs(vector double __a)6401 vec_nabs(vector double __a) {
6402 return __builtin_s390_vflndb(__a);
6403 }
6404
6405 /*-- vec_max ----------------------------------------------------------------*/
6406
6407 static inline __ATTRS_o_ai vector signed char
vec_max(vector signed char __a,vector signed char __b)6408 vec_max(vector signed char __a, vector signed char __b) {
6409 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6410 }
6411
6412 static inline __ATTRS_o_ai vector signed char
vec_max(vector signed char __a,vector bool char __b)6413 vec_max(vector signed char __a, vector bool char __b) {
6414 vector signed char __bc = (vector signed char)__b;
6415 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6416 }
6417
6418 static inline __ATTRS_o_ai vector signed char
vec_max(vector bool char __a,vector signed char __b)6419 vec_max(vector bool char __a, vector signed char __b) {
6420 vector signed char __ac = (vector signed char)__a;
6421 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6422 }
6423
6424 static inline __ATTRS_o_ai vector unsigned char
vec_max(vector unsigned char __a,vector unsigned char __b)6425 vec_max(vector unsigned char __a, vector unsigned char __b) {
6426 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6427 }
6428
6429 static inline __ATTRS_o_ai vector unsigned char
vec_max(vector unsigned char __a,vector bool char __b)6430 vec_max(vector unsigned char __a, vector bool char __b) {
6431 vector unsigned char __bc = (vector unsigned char)__b;
6432 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6433 }
6434
6435 static inline __ATTRS_o_ai vector unsigned char
vec_max(vector bool char __a,vector unsigned char __b)6436 vec_max(vector bool char __a, vector unsigned char __b) {
6437 vector unsigned char __ac = (vector unsigned char)__a;
6438 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6439 }
6440
6441 static inline __ATTRS_o_ai vector signed short
vec_max(vector signed short __a,vector signed short __b)6442 vec_max(vector signed short __a, vector signed short __b) {
6443 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6444 }
6445
6446 static inline __ATTRS_o_ai vector signed short
vec_max(vector signed short __a,vector bool short __b)6447 vec_max(vector signed short __a, vector bool short __b) {
6448 vector signed short __bc = (vector signed short)__b;
6449 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6450 }
6451
6452 static inline __ATTRS_o_ai vector signed short
vec_max(vector bool short __a,vector signed short __b)6453 vec_max(vector bool short __a, vector signed short __b) {
6454 vector signed short __ac = (vector signed short)__a;
6455 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6456 }
6457
6458 static inline __ATTRS_o_ai vector unsigned short
vec_max(vector unsigned short __a,vector unsigned short __b)6459 vec_max(vector unsigned short __a, vector unsigned short __b) {
6460 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6461 }
6462
6463 static inline __ATTRS_o_ai vector unsigned short
vec_max(vector unsigned short __a,vector bool short __b)6464 vec_max(vector unsigned short __a, vector bool short __b) {
6465 vector unsigned short __bc = (vector unsigned short)__b;
6466 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6467 }
6468
6469 static inline __ATTRS_o_ai vector unsigned short
vec_max(vector bool short __a,vector unsigned short __b)6470 vec_max(vector bool short __a, vector unsigned short __b) {
6471 vector unsigned short __ac = (vector unsigned short)__a;
6472 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6473 }
6474
6475 static inline __ATTRS_o_ai vector signed int
vec_max(vector signed int __a,vector signed int __b)6476 vec_max(vector signed int __a, vector signed int __b) {
6477 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6478 }
6479
6480 static inline __ATTRS_o_ai vector signed int
vec_max(vector signed int __a,vector bool int __b)6481 vec_max(vector signed int __a, vector bool int __b) {
6482 vector signed int __bc = (vector signed int)__b;
6483 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6484 }
6485
6486 static inline __ATTRS_o_ai vector signed int
vec_max(vector bool int __a,vector signed int __b)6487 vec_max(vector bool int __a, vector signed int __b) {
6488 vector signed int __ac = (vector signed int)__a;
6489 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6490 }
6491
6492 static inline __ATTRS_o_ai vector unsigned int
vec_max(vector unsigned int __a,vector unsigned int __b)6493 vec_max(vector unsigned int __a, vector unsigned int __b) {
6494 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6495 }
6496
6497 static inline __ATTRS_o_ai vector unsigned int
vec_max(vector unsigned int __a,vector bool int __b)6498 vec_max(vector unsigned int __a, vector bool int __b) {
6499 vector unsigned int __bc = (vector unsigned int)__b;
6500 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6501 }
6502
6503 static inline __ATTRS_o_ai vector unsigned int
vec_max(vector bool int __a,vector unsigned int __b)6504 vec_max(vector bool int __a, vector unsigned int __b) {
6505 vector unsigned int __ac = (vector unsigned int)__a;
6506 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6507 }
6508
6509 static inline __ATTRS_o_ai vector signed long long
vec_max(vector signed long long __a,vector signed long long __b)6510 vec_max(vector signed long long __a, vector signed long long __b) {
6511 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6512 }
6513
6514 static inline __ATTRS_o_ai vector signed long long
vec_max(vector signed long long __a,vector bool long long __b)6515 vec_max(vector signed long long __a, vector bool long long __b) {
6516 vector signed long long __bc = (vector signed long long)__b;
6517 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6518 }
6519
6520 static inline __ATTRS_o_ai vector signed long long
vec_max(vector bool long long __a,vector signed long long __b)6521 vec_max(vector bool long long __a, vector signed long long __b) {
6522 vector signed long long __ac = (vector signed long long)__a;
6523 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6524 }
6525
6526 static inline __ATTRS_o_ai vector unsigned long long
vec_max(vector unsigned long long __a,vector unsigned long long __b)6527 vec_max(vector unsigned long long __a, vector unsigned long long __b) {
6528 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6529 }
6530
6531 static inline __ATTRS_o_ai vector unsigned long long
vec_max(vector unsigned long long __a,vector bool long long __b)6532 vec_max(vector unsigned long long __a, vector bool long long __b) {
6533 vector unsigned long long __bc = (vector unsigned long long)__b;
6534 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));
6535 }
6536
6537 static inline __ATTRS_o_ai vector unsigned long long
vec_max(vector bool long long __a,vector unsigned long long __b)6538 vec_max(vector bool long long __a, vector unsigned long long __b) {
6539 vector unsigned long long __ac = (vector unsigned long long)__a;
6540 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));
6541 }
6542
6543 static inline __ATTRS_o_ai vector double
vec_max(vector double __a,vector double __b)6544 vec_max(vector double __a, vector double __b) {
6545 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6546 }
6547
6548 /*-- vec_min ----------------------------------------------------------------*/
6549
6550 static inline __ATTRS_o_ai vector signed char
vec_min(vector signed char __a,vector signed char __b)6551 vec_min(vector signed char __a, vector signed char __b) {
6552 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6553 }
6554
6555 static inline __ATTRS_o_ai vector signed char
vec_min(vector signed char __a,vector bool char __b)6556 vec_min(vector signed char __a, vector bool char __b) {
6557 vector signed char __bc = (vector signed char)__b;
6558 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6559 }
6560
6561 static inline __ATTRS_o_ai vector signed char
vec_min(vector bool char __a,vector signed char __b)6562 vec_min(vector bool char __a, vector signed char __b) {
6563 vector signed char __ac = (vector signed char)__a;
6564 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6565 }
6566
6567 static inline __ATTRS_o_ai vector unsigned char
vec_min(vector unsigned char __a,vector unsigned char __b)6568 vec_min(vector unsigned char __a, vector unsigned char __b) {
6569 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6570 }
6571
6572 static inline __ATTRS_o_ai vector unsigned char
vec_min(vector unsigned char __a,vector bool char __b)6573 vec_min(vector unsigned char __a, vector bool char __b) {
6574 vector unsigned char __bc = (vector unsigned char)__b;
6575 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6576 }
6577
6578 static inline __ATTRS_o_ai vector unsigned char
vec_min(vector bool char __a,vector unsigned char __b)6579 vec_min(vector bool char __a, vector unsigned char __b) {
6580 vector unsigned char __ac = (vector unsigned char)__a;
6581 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6582 }
6583
6584 static inline __ATTRS_o_ai vector signed short
vec_min(vector signed short __a,vector signed short __b)6585 vec_min(vector signed short __a, vector signed short __b) {
6586 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6587 }
6588
6589 static inline __ATTRS_o_ai vector signed short
vec_min(vector signed short __a,vector bool short __b)6590 vec_min(vector signed short __a, vector bool short __b) {
6591 vector signed short __bc = (vector signed short)__b;
6592 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6593 }
6594
6595 static inline __ATTRS_o_ai vector signed short
vec_min(vector bool short __a,vector signed short __b)6596 vec_min(vector bool short __a, vector signed short __b) {
6597 vector signed short __ac = (vector signed short)__a;
6598 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6599 }
6600
6601 static inline __ATTRS_o_ai vector unsigned short
vec_min(vector unsigned short __a,vector unsigned short __b)6602 vec_min(vector unsigned short __a, vector unsigned short __b) {
6603 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6604 }
6605
6606 static inline __ATTRS_o_ai vector unsigned short
vec_min(vector unsigned short __a,vector bool short __b)6607 vec_min(vector unsigned short __a, vector bool short __b) {
6608 vector unsigned short __bc = (vector unsigned short)__b;
6609 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6610 }
6611
6612 static inline __ATTRS_o_ai vector unsigned short
vec_min(vector bool short __a,vector unsigned short __b)6613 vec_min(vector bool short __a, vector unsigned short __b) {
6614 vector unsigned short __ac = (vector unsigned short)__a;
6615 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6616 }
6617
6618 static inline __ATTRS_o_ai vector signed int
vec_min(vector signed int __a,vector signed int __b)6619 vec_min(vector signed int __a, vector signed int __b) {
6620 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6621 }
6622
6623 static inline __ATTRS_o_ai vector signed int
vec_min(vector signed int __a,vector bool int __b)6624 vec_min(vector signed int __a, vector bool int __b) {
6625 vector signed int __bc = (vector signed int)__b;
6626 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6627 }
6628
6629 static inline __ATTRS_o_ai vector signed int
vec_min(vector bool int __a,vector signed int __b)6630 vec_min(vector bool int __a, vector signed int __b) {
6631 vector signed int __ac = (vector signed int)__a;
6632 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6633 }
6634
6635 static inline __ATTRS_o_ai vector unsigned int
vec_min(vector unsigned int __a,vector unsigned int __b)6636 vec_min(vector unsigned int __a, vector unsigned int __b) {
6637 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6638 }
6639
6640 static inline __ATTRS_o_ai vector unsigned int
vec_min(vector unsigned int __a,vector bool int __b)6641 vec_min(vector unsigned int __a, vector bool int __b) {
6642 vector unsigned int __bc = (vector unsigned int)__b;
6643 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6644 }
6645
6646 static inline __ATTRS_o_ai vector unsigned int
vec_min(vector bool int __a,vector unsigned int __b)6647 vec_min(vector bool int __a, vector unsigned int __b) {
6648 vector unsigned int __ac = (vector unsigned int)__a;
6649 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6650 }
6651
6652 static inline __ATTRS_o_ai vector signed long long
vec_min(vector signed long long __a,vector signed long long __b)6653 vec_min(vector signed long long __a, vector signed long long __b) {
6654 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6655 }
6656
6657 static inline __ATTRS_o_ai vector signed long long
vec_min(vector signed long long __a,vector bool long long __b)6658 vec_min(vector signed long long __a, vector bool long long __b) {
6659 vector signed long long __bc = (vector signed long long)__b;
6660 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6661 }
6662
6663 static inline __ATTRS_o_ai vector signed long long
vec_min(vector bool long long __a,vector signed long long __b)6664 vec_min(vector bool long long __a, vector signed long long __b) {
6665 vector signed long long __ac = (vector signed long long)__a;
6666 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6667 }
6668
6669 static inline __ATTRS_o_ai vector unsigned long long
vec_min(vector unsigned long long __a,vector unsigned long long __b)6670 vec_min(vector unsigned long long __a, vector unsigned long long __b) {
6671 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6672 }
6673
6674 static inline __ATTRS_o_ai vector unsigned long long
vec_min(vector unsigned long long __a,vector bool long long __b)6675 vec_min(vector unsigned long long __a, vector bool long long __b) {
6676 vector unsigned long long __bc = (vector unsigned long long)__b;
6677 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));
6678 }
6679
6680 static inline __ATTRS_o_ai vector unsigned long long
vec_min(vector bool long long __a,vector unsigned long long __b)6681 vec_min(vector bool long long __a, vector unsigned long long __b) {
6682 vector unsigned long long __ac = (vector unsigned long long)__a;
6683 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));
6684 }
6685
6686 static inline __ATTRS_o_ai vector double
vec_min(vector double __a,vector double __b)6687 vec_min(vector double __a, vector double __b) {
6688 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6689 }
6690
6691 /*-- vec_add_u128 -----------------------------------------------------------*/
6692
6693 static inline __ATTRS_ai vector unsigned char
vec_add_u128(vector unsigned char __a,vector unsigned char __b)6694 vec_add_u128(vector unsigned char __a, vector unsigned char __b) {
6695 return __builtin_s390_vaq(__a, __b);
6696 }
6697
6698 /*-- vec_addc ---------------------------------------------------------------*/
6699
6700 static inline __ATTRS_o_ai vector unsigned char
vec_addc(vector unsigned char __a,vector unsigned char __b)6701 vec_addc(vector unsigned char __a, vector unsigned char __b) {
6702 return __builtin_s390_vaccb(__a, __b);
6703 }
6704
6705 static inline __ATTRS_o_ai vector unsigned short
vec_addc(vector unsigned short __a,vector unsigned short __b)6706 vec_addc(vector unsigned short __a, vector unsigned short __b) {
6707 return __builtin_s390_vacch(__a, __b);
6708 }
6709
6710 static inline __ATTRS_o_ai vector unsigned int
vec_addc(vector unsigned int __a,vector unsigned int __b)6711 vec_addc(vector unsigned int __a, vector unsigned int __b) {
6712 return __builtin_s390_vaccf(__a, __b);
6713 }
6714
6715 static inline __ATTRS_o_ai vector unsigned long long
vec_addc(vector unsigned long long __a,vector unsigned long long __b)6716 vec_addc(vector unsigned long long __a, vector unsigned long long __b) {
6717 return __builtin_s390_vaccg(__a, __b);
6718 }
6719
6720 /*-- vec_addc_u128 ----------------------------------------------------------*/
6721
6722 static inline __ATTRS_ai vector unsigned char
vec_addc_u128(vector unsigned char __a,vector unsigned char __b)6723 vec_addc_u128(vector unsigned char __a, vector unsigned char __b) {
6724 return __builtin_s390_vaccq(__a, __b);
6725 }
6726
6727 /*-- vec_adde_u128 ----------------------------------------------------------*/
6728
6729 static inline __ATTRS_ai vector unsigned char
vec_adde_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6730 vec_adde_u128(vector unsigned char __a, vector unsigned char __b,
6731 vector unsigned char __c) {
6732 return __builtin_s390_vacq(__a, __b, __c);
6733 }
6734
6735 /*-- vec_addec_u128 ---------------------------------------------------------*/
6736
6737 static inline __ATTRS_ai vector unsigned char
vec_addec_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6738 vec_addec_u128(vector unsigned char __a, vector unsigned char __b,
6739 vector unsigned char __c) {
6740 return __builtin_s390_vacccq(__a, __b, __c);
6741 }
6742
6743 /*-- vec_avg ----------------------------------------------------------------*/
6744
6745 static inline __ATTRS_o_ai vector signed char
vec_avg(vector signed char __a,vector signed char __b)6746 vec_avg(vector signed char __a, vector signed char __b) {
6747 return __builtin_s390_vavgb(__a, __b);
6748 }
6749
6750 static inline __ATTRS_o_ai vector signed short
vec_avg(vector signed short __a,vector signed short __b)6751 vec_avg(vector signed short __a, vector signed short __b) {
6752 return __builtin_s390_vavgh(__a, __b);
6753 }
6754
6755 static inline __ATTRS_o_ai vector signed int
vec_avg(vector signed int __a,vector signed int __b)6756 vec_avg(vector signed int __a, vector signed int __b) {
6757 return __builtin_s390_vavgf(__a, __b);
6758 }
6759
6760 static inline __ATTRS_o_ai vector signed long long
vec_avg(vector signed long long __a,vector signed long long __b)6761 vec_avg(vector signed long long __a, vector signed long long __b) {
6762 return __builtin_s390_vavgg(__a, __b);
6763 }
6764
6765 static inline __ATTRS_o_ai vector unsigned char
vec_avg(vector unsigned char __a,vector unsigned char __b)6766 vec_avg(vector unsigned char __a, vector unsigned char __b) {
6767 return __builtin_s390_vavglb(__a, __b);
6768 }
6769
6770 static inline __ATTRS_o_ai vector unsigned short
vec_avg(vector unsigned short __a,vector unsigned short __b)6771 vec_avg(vector unsigned short __a, vector unsigned short __b) {
6772 return __builtin_s390_vavglh(__a, __b);
6773 }
6774
6775 static inline __ATTRS_o_ai vector unsigned int
vec_avg(vector unsigned int __a,vector unsigned int __b)6776 vec_avg(vector unsigned int __a, vector unsigned int __b) {
6777 return __builtin_s390_vavglf(__a, __b);
6778 }
6779
6780 static inline __ATTRS_o_ai vector unsigned long long
vec_avg(vector unsigned long long __a,vector unsigned long long __b)6781 vec_avg(vector unsigned long long __a, vector unsigned long long __b) {
6782 return __builtin_s390_vavglg(__a, __b);
6783 }
6784
6785 /*-- vec_checksum -----------------------------------------------------------*/
6786
6787 static inline __ATTRS_ai vector unsigned int
vec_checksum(vector unsigned int __a,vector unsigned int __b)6788 vec_checksum(vector unsigned int __a, vector unsigned int __b) {
6789 return __builtin_s390_vcksm(__a, __b);
6790 }
6791
6792 /*-- vec_gfmsum -------------------------------------------------------------*/
6793
6794 static inline __ATTRS_o_ai vector unsigned short
vec_gfmsum(vector unsigned char __a,vector unsigned char __b)6795 vec_gfmsum(vector unsigned char __a, vector unsigned char __b) {
6796 return __builtin_s390_vgfmb(__a, __b);
6797 }
6798
6799 static inline __ATTRS_o_ai vector unsigned int
vec_gfmsum(vector unsigned short __a,vector unsigned short __b)6800 vec_gfmsum(vector unsigned short __a, vector unsigned short __b) {
6801 return __builtin_s390_vgfmh(__a, __b);
6802 }
6803
6804 static inline __ATTRS_o_ai vector unsigned long long
vec_gfmsum(vector unsigned int __a,vector unsigned int __b)6805 vec_gfmsum(vector unsigned int __a, vector unsigned int __b) {
6806 return __builtin_s390_vgfmf(__a, __b);
6807 }
6808
6809 /*-- vec_gfmsum_128 ---------------------------------------------------------*/
6810
6811 static inline __ATTRS_o_ai vector unsigned char
vec_gfmsum_128(vector unsigned long long __a,vector unsigned long long __b)6812 vec_gfmsum_128(vector unsigned long long __a, vector unsigned long long __b) {
6813 return __builtin_s390_vgfmg(__a, __b);
6814 }
6815
6816 /*-- vec_gfmsum_accum -------------------------------------------------------*/
6817
6818 static inline __ATTRS_o_ai vector unsigned short
vec_gfmsum_accum(vector unsigned char __a,vector unsigned char __b,vector unsigned short __c)6819 vec_gfmsum_accum(vector unsigned char __a, vector unsigned char __b,
6820 vector unsigned short __c) {
6821 return __builtin_s390_vgfmab(__a, __b, __c);
6822 }
6823
6824 static inline __ATTRS_o_ai vector unsigned int
vec_gfmsum_accum(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)6825 vec_gfmsum_accum(vector unsigned short __a, vector unsigned short __b,
6826 vector unsigned int __c) {
6827 return __builtin_s390_vgfmah(__a, __b, __c);
6828 }
6829
6830 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)6831 vec_gfmsum_accum(vector unsigned int __a, vector unsigned int __b,
6832 vector unsigned long long __c) {
6833 return __builtin_s390_vgfmaf(__a, __b, __c);
6834 }
6835
6836 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/
6837
6838 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)6839 vec_gfmsum_accum_128(vector unsigned long long __a,
6840 vector unsigned long long __b,
6841 vector unsigned char __c) {
6842 return __builtin_s390_vgfmag(__a, __b, __c);
6843 }
6844
6845 /*-- vec_mladd --------------------------------------------------------------*/
6846
6847 static inline __ATTRS_o_ai vector signed char
vec_mladd(vector signed char __a,vector signed char __b,vector signed char __c)6848 vec_mladd(vector signed char __a, vector signed char __b,
6849 vector signed char __c) {
6850 return __a * __b + __c;
6851 }
6852
6853 static inline __ATTRS_o_ai vector signed char
vec_mladd(vector unsigned char __a,vector signed char __b,vector signed char __c)6854 vec_mladd(vector unsigned char __a, vector signed char __b,
6855 vector signed char __c) {
6856 return (vector signed char)__a * __b + __c;
6857 }
6858
6859 static inline __ATTRS_o_ai vector signed char
vec_mladd(vector signed char __a,vector unsigned char __b,vector unsigned char __c)6860 vec_mladd(vector signed char __a, vector unsigned char __b,
6861 vector unsigned char __c) {
6862 return __a * (vector signed char)__b + (vector signed char)__c;
6863 }
6864
6865 static inline __ATTRS_o_ai vector unsigned char
vec_mladd(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6866 vec_mladd(vector unsigned char __a, vector unsigned char __b,
6867 vector unsigned char __c) {
6868 return __a * __b + __c;
6869 }
6870
6871 static inline __ATTRS_o_ai vector signed short
vec_mladd(vector signed short __a,vector signed short __b,vector signed short __c)6872 vec_mladd(vector signed short __a, vector signed short __b,
6873 vector signed short __c) {
6874 return __a * __b + __c;
6875 }
6876
6877 static inline __ATTRS_o_ai vector signed short
vec_mladd(vector unsigned short __a,vector signed short __b,vector signed short __c)6878 vec_mladd(vector unsigned short __a, vector signed short __b,
6879 vector signed short __c) {
6880 return (vector signed short)__a * __b + __c;
6881 }
6882
6883 static inline __ATTRS_o_ai vector signed short
vec_mladd(vector signed short __a,vector unsigned short __b,vector unsigned short __c)6884 vec_mladd(vector signed short __a, vector unsigned short __b,
6885 vector unsigned short __c) {
6886 return __a * (vector signed short)__b + (vector signed short)__c;
6887 }
6888
6889 static inline __ATTRS_o_ai vector unsigned short
vec_mladd(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)6890 vec_mladd(vector unsigned short __a, vector unsigned short __b,
6891 vector unsigned short __c) {
6892 return __a * __b + __c;
6893 }
6894
6895 static inline __ATTRS_o_ai vector signed int
vec_mladd(vector signed int __a,vector signed int __b,vector signed int __c)6896 vec_mladd(vector signed int __a, vector signed int __b,
6897 vector signed int __c) {
6898 return __a * __b + __c;
6899 }
6900
6901 static inline __ATTRS_o_ai vector signed int
vec_mladd(vector unsigned int __a,vector signed int __b,vector signed int __c)6902 vec_mladd(vector unsigned int __a, vector signed int __b,
6903 vector signed int __c) {
6904 return (vector signed int)__a * __b + __c;
6905 }
6906
6907 static inline __ATTRS_o_ai vector signed int
vec_mladd(vector signed int __a,vector unsigned int __b,vector unsigned int __c)6908 vec_mladd(vector signed int __a, vector unsigned int __b,
6909 vector unsigned int __c) {
6910 return __a * (vector signed int)__b + (vector signed int)__c;
6911 }
6912
6913 static inline __ATTRS_o_ai vector unsigned int
vec_mladd(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)6914 vec_mladd(vector unsigned int __a, vector unsigned int __b,
6915 vector unsigned int __c) {
6916 return __a * __b + __c;
6917 }
6918
6919 /*-- vec_mhadd --------------------------------------------------------------*/
6920
6921 static inline __ATTRS_o_ai vector signed char
vec_mhadd(vector signed char __a,vector signed char __b,vector signed char __c)6922 vec_mhadd(vector signed char __a, vector signed char __b,
6923 vector signed char __c) {
6924 return __builtin_s390_vmahb(__a, __b, __c);
6925 }
6926
6927 static inline __ATTRS_o_ai vector unsigned char
vec_mhadd(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)6928 vec_mhadd(vector unsigned char __a, vector unsigned char __b,
6929 vector unsigned char __c) {
6930 return __builtin_s390_vmalhb(__a, __b, __c);
6931 }
6932
6933 static inline __ATTRS_o_ai vector signed short
vec_mhadd(vector signed short __a,vector signed short __b,vector signed short __c)6934 vec_mhadd(vector signed short __a, vector signed short __b,
6935 vector signed short __c) {
6936 return __builtin_s390_vmahh(__a, __b, __c);
6937 }
6938
6939 static inline __ATTRS_o_ai vector unsigned short
vec_mhadd(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)6940 vec_mhadd(vector unsigned short __a, vector unsigned short __b,
6941 vector unsigned short __c) {
6942 return __builtin_s390_vmalhh(__a, __b, __c);
6943 }
6944
6945 static inline __ATTRS_o_ai vector signed int
vec_mhadd(vector signed int __a,vector signed int __b,vector signed int __c)6946 vec_mhadd(vector signed int __a, vector signed int __b,
6947 vector signed int __c) {
6948 return __builtin_s390_vmahf(__a, __b, __c);
6949 }
6950
6951 static inline __ATTRS_o_ai vector unsigned int
vec_mhadd(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)6952 vec_mhadd(vector unsigned int __a, vector unsigned int __b,
6953 vector unsigned int __c) {
6954 return __builtin_s390_vmalhf(__a, __b, __c);
6955 }
6956
6957 /*-- vec_meadd --------------------------------------------------------------*/
6958
6959 static inline __ATTRS_o_ai vector signed short
vec_meadd(vector signed char __a,vector signed char __b,vector signed short __c)6960 vec_meadd(vector signed char __a, vector signed char __b,
6961 vector signed short __c) {
6962 return __builtin_s390_vmaeb(__a, __b, __c);
6963 }
6964
6965 static inline __ATTRS_o_ai vector unsigned short
vec_meadd(vector unsigned char __a,vector unsigned char __b,vector unsigned short __c)6966 vec_meadd(vector unsigned char __a, vector unsigned char __b,
6967 vector unsigned short __c) {
6968 return __builtin_s390_vmaleb(__a, __b, __c);
6969 }
6970
6971 static inline __ATTRS_o_ai vector signed int
vec_meadd(vector signed short __a,vector signed short __b,vector signed int __c)6972 vec_meadd(vector signed short __a, vector signed short __b,
6973 vector signed int __c) {
6974 return __builtin_s390_vmaeh(__a, __b, __c);
6975 }
6976
6977 static inline __ATTRS_o_ai vector unsigned int
vec_meadd(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)6978 vec_meadd(vector unsigned short __a, vector unsigned short __b,
6979 vector unsigned int __c) {
6980 return __builtin_s390_vmaleh(__a, __b, __c);
6981 }
6982
6983 static inline __ATTRS_o_ai vector signed long long
vec_meadd(vector signed int __a,vector signed int __b,vector signed long long __c)6984 vec_meadd(vector signed int __a, vector signed int __b,
6985 vector signed long long __c) {
6986 return __builtin_s390_vmaef(__a, __b, __c);
6987 }
6988
6989 static inline __ATTRS_o_ai vector unsigned long long
vec_meadd(vector unsigned int __a,vector unsigned int __b,vector unsigned long long __c)6990 vec_meadd(vector unsigned int __a, vector unsigned int __b,
6991 vector unsigned long long __c) {
6992 return __builtin_s390_vmalef(__a, __b, __c);
6993 }
6994
6995 /*-- vec_moadd --------------------------------------------------------------*/
6996
6997 static inline __ATTRS_o_ai vector signed short
vec_moadd(vector signed char __a,vector signed char __b,vector signed short __c)6998 vec_moadd(vector signed char __a, vector signed char __b,
6999 vector signed short __c) {
7000 return __builtin_s390_vmaob(__a, __b, __c);
7001 }
7002
7003 static inline __ATTRS_o_ai vector unsigned short
vec_moadd(vector unsigned char __a,vector unsigned char __b,vector unsigned short __c)7004 vec_moadd(vector unsigned char __a, vector unsigned char __b,
7005 vector unsigned short __c) {
7006 return __builtin_s390_vmalob(__a, __b, __c);
7007 }
7008
7009 static inline __ATTRS_o_ai vector signed int
vec_moadd(vector signed short __a,vector signed short __b,vector signed int __c)7010 vec_moadd(vector signed short __a, vector signed short __b,
7011 vector signed int __c) {
7012 return __builtin_s390_vmaoh(__a, __b, __c);
7013 }
7014
7015 static inline __ATTRS_o_ai vector unsigned int
vec_moadd(vector unsigned short __a,vector unsigned short __b,vector unsigned int __c)7016 vec_moadd(vector unsigned short __a, vector unsigned short __b,
7017 vector unsigned int __c) {
7018 return __builtin_s390_vmaloh(__a, __b, __c);
7019 }
7020
7021 static inline __ATTRS_o_ai vector signed long long
vec_moadd(vector signed int __a,vector signed int __b,vector signed long long __c)7022 vec_moadd(vector signed int __a, vector signed int __b,
7023 vector signed long long __c) {
7024 return __builtin_s390_vmaof(__a, __b, __c);
7025 }
7026
7027 static inline __ATTRS_o_ai vector unsigned long long
vec_moadd(vector unsigned int __a,vector unsigned int __b,vector unsigned long long __c)7028 vec_moadd(vector unsigned int __a, vector unsigned int __b,
7029 vector unsigned long long __c) {
7030 return __builtin_s390_vmalof(__a, __b, __c);
7031 }
7032
7033 /*-- vec_mulh ---------------------------------------------------------------*/
7034
7035 static inline __ATTRS_o_ai vector signed char
vec_mulh(vector signed char __a,vector signed char __b)7036 vec_mulh(vector signed char __a, vector signed char __b) {
7037 return __builtin_s390_vmhb(__a, __b);
7038 }
7039
7040 static inline __ATTRS_o_ai vector unsigned char
vec_mulh(vector unsigned char __a,vector unsigned char __b)7041 vec_mulh(vector unsigned char __a, vector unsigned char __b) {
7042 return __builtin_s390_vmlhb(__a, __b);
7043 }
7044
7045 static inline __ATTRS_o_ai vector signed short
vec_mulh(vector signed short __a,vector signed short __b)7046 vec_mulh(vector signed short __a, vector signed short __b) {
7047 return __builtin_s390_vmhh(__a, __b);
7048 }
7049
7050 static inline __ATTRS_o_ai vector unsigned short
vec_mulh(vector unsigned short __a,vector unsigned short __b)7051 vec_mulh(vector unsigned short __a, vector unsigned short __b) {
7052 return __builtin_s390_vmlhh(__a, __b);
7053 }
7054
7055 static inline __ATTRS_o_ai vector signed int
vec_mulh(vector signed int __a,vector signed int __b)7056 vec_mulh(vector signed int __a, vector signed int __b) {
7057 return __builtin_s390_vmhf(__a, __b);
7058 }
7059
7060 static inline __ATTRS_o_ai vector unsigned int
vec_mulh(vector unsigned int __a,vector unsigned int __b)7061 vec_mulh(vector unsigned int __a, vector unsigned int __b) {
7062 return __builtin_s390_vmlhf(__a, __b);
7063 }
7064
7065 /*-- vec_mule ---------------------------------------------------------------*/
7066
7067 static inline __ATTRS_o_ai vector signed short
vec_mule(vector signed char __a,vector signed char __b)7068 vec_mule(vector signed char __a, vector signed char __b) {
7069 return __builtin_s390_vmeb(__a, __b);
7070 }
7071
7072 static inline __ATTRS_o_ai vector unsigned short
vec_mule(vector unsigned char __a,vector unsigned char __b)7073 vec_mule(vector unsigned char __a, vector unsigned char __b) {
7074 return __builtin_s390_vmleb(__a, __b);
7075 }
7076
7077 static inline __ATTRS_o_ai vector signed int
vec_mule(vector signed short __a,vector signed short __b)7078 vec_mule(vector signed short __a, vector signed short __b) {
7079 return __builtin_s390_vmeh(__a, __b);
7080 }
7081
7082 static inline __ATTRS_o_ai vector unsigned int
vec_mule(vector unsigned short __a,vector unsigned short __b)7083 vec_mule(vector unsigned short __a, vector unsigned short __b) {
7084 return __builtin_s390_vmleh(__a, __b);
7085 }
7086
7087 static inline __ATTRS_o_ai vector signed long long
vec_mule(vector signed int __a,vector signed int __b)7088 vec_mule(vector signed int __a, vector signed int __b) {
7089 return __builtin_s390_vmef(__a, __b);
7090 }
7091
7092 static inline __ATTRS_o_ai vector unsigned long long
vec_mule(vector unsigned int __a,vector unsigned int __b)7093 vec_mule(vector unsigned int __a, vector unsigned int __b) {
7094 return __builtin_s390_vmlef(__a, __b);
7095 }
7096
7097 /*-- vec_mulo ---------------------------------------------------------------*/
7098
7099 static inline __ATTRS_o_ai vector signed short
vec_mulo(vector signed char __a,vector signed char __b)7100 vec_mulo(vector signed char __a, vector signed char __b) {
7101 return __builtin_s390_vmob(__a, __b);
7102 }
7103
7104 static inline __ATTRS_o_ai vector unsigned short
vec_mulo(vector unsigned char __a,vector unsigned char __b)7105 vec_mulo(vector unsigned char __a, vector unsigned char __b) {
7106 return __builtin_s390_vmlob(__a, __b);
7107 }
7108
7109 static inline __ATTRS_o_ai vector signed int
vec_mulo(vector signed short __a,vector signed short __b)7110 vec_mulo(vector signed short __a, vector signed short __b) {
7111 return __builtin_s390_vmoh(__a, __b);
7112 }
7113
7114 static inline __ATTRS_o_ai vector unsigned int
vec_mulo(vector unsigned short __a,vector unsigned short __b)7115 vec_mulo(vector unsigned short __a, vector unsigned short __b) {
7116 return __builtin_s390_vmloh(__a, __b);
7117 }
7118
7119 static inline __ATTRS_o_ai vector signed long long
vec_mulo(vector signed int __a,vector signed int __b)7120 vec_mulo(vector signed int __a, vector signed int __b) {
7121 return __builtin_s390_vmof(__a, __b);
7122 }
7123
7124 static inline __ATTRS_o_ai vector unsigned long long
vec_mulo(vector unsigned int __a,vector unsigned int __b)7125 vec_mulo(vector unsigned int __a, vector unsigned int __b) {
7126 return __builtin_s390_vmlof(__a, __b);
7127 }
7128
7129 /*-- vec_sub_u128 -----------------------------------------------------------*/
7130
7131 static inline __ATTRS_ai vector unsigned char
vec_sub_u128(vector unsigned char __a,vector unsigned char __b)7132 vec_sub_u128(vector unsigned char __a, vector unsigned char __b) {
7133 return __builtin_s390_vsq(__a, __b);
7134 }
7135
7136 /*-- vec_subc ---------------------------------------------------------------*/
7137
7138 static inline __ATTRS_o_ai vector unsigned char
vec_subc(vector unsigned char __a,vector unsigned char __b)7139 vec_subc(vector unsigned char __a, vector unsigned char __b) {
7140 return __builtin_s390_vscbib(__a, __b);
7141 }
7142
7143 static inline __ATTRS_o_ai vector unsigned short
vec_subc(vector unsigned short __a,vector unsigned short __b)7144 vec_subc(vector unsigned short __a, vector unsigned short __b) {
7145 return __builtin_s390_vscbih(__a, __b);
7146 }
7147
7148 static inline __ATTRS_o_ai vector unsigned int
vec_subc(vector unsigned int __a,vector unsigned int __b)7149 vec_subc(vector unsigned int __a, vector unsigned int __b) {
7150 return __builtin_s390_vscbif(__a, __b);
7151 }
7152
7153 static inline __ATTRS_o_ai vector unsigned long long
vec_subc(vector unsigned long long __a,vector unsigned long long __b)7154 vec_subc(vector unsigned long long __a, vector unsigned long long __b) {
7155 return __builtin_s390_vscbig(__a, __b);
7156 }
7157
7158 /*-- vec_subc_u128 ----------------------------------------------------------*/
7159
7160 static inline __ATTRS_ai vector unsigned char
vec_subc_u128(vector unsigned char __a,vector unsigned char __b)7161 vec_subc_u128(vector unsigned char __a, vector unsigned char __b) {
7162 return __builtin_s390_vscbiq(__a, __b);
7163 }
7164
7165 /*-- vec_sube_u128 ----------------------------------------------------------*/
7166
7167 static inline __ATTRS_ai vector unsigned char
vec_sube_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)7168 vec_sube_u128(vector unsigned char __a, vector unsigned char __b,
7169 vector unsigned char __c) {
7170 return __builtin_s390_vsbiq(__a, __b, __c);
7171 }
7172
7173 /*-- vec_subec_u128 ---------------------------------------------------------*/
7174
7175 static inline __ATTRS_ai vector unsigned char
vec_subec_u128(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)7176 vec_subec_u128(vector unsigned char __a, vector unsigned char __b,
7177 vector unsigned char __c) {
7178 return __builtin_s390_vsbcbiq(__a, __b, __c);
7179 }
7180
7181 /*-- vec_sum2 ---------------------------------------------------------------*/
7182
7183 static inline __ATTRS_o_ai vector unsigned long long
vec_sum2(vector unsigned short __a,vector unsigned short __b)7184 vec_sum2(vector unsigned short __a, vector unsigned short __b) {
7185 return __builtin_s390_vsumgh(__a, __b);
7186 }
7187
7188 static inline __ATTRS_o_ai vector unsigned long long
vec_sum2(vector unsigned int __a,vector unsigned int __b)7189 vec_sum2(vector unsigned int __a, vector unsigned int __b) {
7190 return __builtin_s390_vsumgf(__a, __b);
7191 }
7192
7193 /*-- vec_sum_u128 -----------------------------------------------------------*/
7194
7195 static inline __ATTRS_o_ai vector unsigned char
vec_sum_u128(vector unsigned int __a,vector unsigned int __b)7196 vec_sum_u128(vector unsigned int __a, vector unsigned int __b) {
7197 return __builtin_s390_vsumqf(__a, __b);
7198 }
7199
7200 static inline __ATTRS_o_ai vector unsigned char
vec_sum_u128(vector unsigned long long __a,vector unsigned long long __b)7201 vec_sum_u128(vector unsigned long long __a, vector unsigned long long __b) {
7202 return __builtin_s390_vsumqg(__a, __b);
7203 }
7204
7205 /*-- vec_sum4 ---------------------------------------------------------------*/
7206
7207 static inline __ATTRS_o_ai vector unsigned int
vec_sum4(vector unsigned char __a,vector unsigned char __b)7208 vec_sum4(vector unsigned char __a, vector unsigned char __b) {
7209 return __builtin_s390_vsumb(__a, __b);
7210 }
7211
7212 static inline __ATTRS_o_ai vector unsigned int
vec_sum4(vector unsigned short __a,vector unsigned short __b)7213 vec_sum4(vector unsigned short __a, vector unsigned short __b) {
7214 return __builtin_s390_vsumh(__a, __b);
7215 }
7216
7217 /*-- vec_test_mask ----------------------------------------------------------*/
7218
7219 static inline __ATTRS_o_ai int
vec_test_mask(vector signed char __a,vector unsigned char __b)7220 vec_test_mask(vector signed char __a, vector unsigned char __b) {
7221 return __builtin_s390_vtm((vector unsigned char)__a,
7222 (vector unsigned char)__b);
7223 }
7224
7225 static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned char __a,vector unsigned char __b)7226 vec_test_mask(vector unsigned char __a, vector unsigned char __b) {
7227 return __builtin_s390_vtm(__a, __b);
7228 }
7229
7230 static inline __ATTRS_o_ai int
vec_test_mask(vector signed short __a,vector unsigned short __b)7231 vec_test_mask(vector signed short __a, vector unsigned short __b) {
7232 return __builtin_s390_vtm((vector unsigned char)__a,
7233 (vector unsigned char)__b);
7234 }
7235
7236 static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned short __a,vector unsigned short __b)7237 vec_test_mask(vector unsigned short __a, vector unsigned short __b) {
7238 return __builtin_s390_vtm((vector unsigned char)__a,
7239 (vector unsigned char)__b);
7240 }
7241
7242 static inline __ATTRS_o_ai int
vec_test_mask(vector signed int __a,vector unsigned int __b)7243 vec_test_mask(vector signed int __a, vector unsigned int __b) {
7244 return __builtin_s390_vtm((vector unsigned char)__a,
7245 (vector unsigned char)__b);
7246 }
7247
7248 static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned int __a,vector unsigned int __b)7249 vec_test_mask(vector unsigned int __a, vector unsigned int __b) {
7250 return __builtin_s390_vtm((vector unsigned char)__a,
7251 (vector unsigned char)__b);
7252 }
7253
7254 static inline __ATTRS_o_ai int
vec_test_mask(vector signed long long __a,vector unsigned long long __b)7255 vec_test_mask(vector signed long long __a, vector unsigned long long __b) {
7256 return __builtin_s390_vtm((vector unsigned char)__a,
7257 (vector unsigned char)__b);
7258 }
7259
7260 static inline __ATTRS_o_ai int
vec_test_mask(vector unsigned long long __a,vector unsigned long long __b)7261 vec_test_mask(vector unsigned long long __a, vector unsigned long long __b) {
7262 return __builtin_s390_vtm((vector unsigned char)__a,
7263 (vector unsigned char)__b);
7264 }
7265
7266 static inline __ATTRS_o_ai int
vec_test_mask(vector double __a,vector unsigned long long __b)7267 vec_test_mask(vector double __a, vector unsigned long long __b) {
7268 return __builtin_s390_vtm((vector unsigned char)__a,
7269 (vector unsigned char)__b);
7270 }
7271
7272 /*-- vec_madd ---------------------------------------------------------------*/
7273
7274 static inline __ATTRS_ai vector double
vec_madd(vector double __a,vector double __b,vector double __c)7275 vec_madd(vector double __a, vector double __b, vector double __c) {
7276 return __builtin_s390_vfmadb(__a, __b, __c);
7277 }
7278
7279 /*-- vec_msub ---------------------------------------------------------------*/
7280
7281 static inline __ATTRS_ai vector double
vec_msub(vector double __a,vector double __b,vector double __c)7282 vec_msub(vector double __a, vector double __b, vector double __c) {
7283 return __builtin_s390_vfmsdb(__a, __b, __c);
7284 }
7285
7286 /*-- vec_sqrt ---------------------------------------------------------------*/
7287
7288 static inline __ATTRS_ai vector double
vec_sqrt(vector double __a)7289 vec_sqrt(vector double __a) {
7290 return __builtin_s390_vfsqdb(__a);
7291 }
7292
7293 /*-- vec_ld2f ---------------------------------------------------------------*/
7294
7295 static inline __ATTRS_ai vector double
vec_ld2f(const float * __ptr)7296 vec_ld2f(const float *__ptr) {
7297 typedef float __v2f32 __attribute__((__vector_size__(8)));
7298 return __builtin_convertvector(*(const __v2f32 *)__ptr, vector double);
7299 }
7300
7301 /*-- vec_st2f ---------------------------------------------------------------*/
7302
7303 static inline __ATTRS_ai void
vec_st2f(vector double __a,float * __ptr)7304 vec_st2f(vector double __a, float *__ptr) {
7305 typedef float __v2f32 __attribute__((__vector_size__(8)));
7306 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);
7307 }
7308
7309 /*-- vec_ctd ----------------------------------------------------------------*/
7310
7311 static inline __ATTRS_o_ai vector double
vec_ctd(vector signed long long __a,int __b)7312 vec_ctd(vector signed long long __a, int __b)
7313 __constant_range(__b, 0, 31) {
7314 vector double __conv = __builtin_convertvector(__a, vector double);
7315 __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
7316 return __conv;
7317 }
7318
7319 static inline __ATTRS_o_ai vector double
vec_ctd(vector unsigned long long __a,int __b)7320 vec_ctd(vector unsigned long long __a, int __b)
7321 __constant_range(__b, 0, 31) {
7322 vector double __conv = __builtin_convertvector(__a, vector double);
7323 __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52);
7324 return __conv;
7325 }
7326
7327 /*-- vec_ctsl ---------------------------------------------------------------*/
7328
7329 static inline __ATTRS_o_ai vector signed long long
vec_ctsl(vector double __a,int __b)7330 vec_ctsl(vector double __a, int __b)
7331 __constant_range(__b, 0, 31) {
7332 __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
7333 return __builtin_convertvector(__a, vector signed long long);
7334 }
7335
7336 /*-- vec_ctul ---------------------------------------------------------------*/
7337
7338 static inline __ATTRS_o_ai vector unsigned long long
vec_ctul(vector double __a,int __b)7339 vec_ctul(vector double __a, int __b)
7340 __constant_range(__b, 0, 31) {
7341 __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52);
7342 return __builtin_convertvector(__a, vector unsigned long long);
7343 }
7344
7345 /*-- vec_roundp -------------------------------------------------------------*/
7346
7347 static inline __ATTRS_ai vector double
vec_roundp(vector double __a)7348 vec_roundp(vector double __a) {
7349 return __builtin_s390_vfidb(__a, 4, 6);
7350 }
7351
7352 /*-- vec_ceil ---------------------------------------------------------------*/
7353
7354 static inline __ATTRS_ai vector double
vec_ceil(vector double __a)7355 vec_ceil(vector double __a) {
7356 // On this platform, vec_ceil never triggers the IEEE-inexact exception.
7357 return __builtin_s390_vfidb(__a, 4, 6);
7358 }
7359
7360 /*-- vec_roundm -------------------------------------------------------------*/
7361
7362 static inline __ATTRS_ai vector double
vec_roundm(vector double __a)7363 vec_roundm(vector double __a) {
7364 return __builtin_s390_vfidb(__a, 4, 7);
7365 }
7366
7367 /*-- vec_floor --------------------------------------------------------------*/
7368
7369 static inline __ATTRS_ai vector double
vec_floor(vector double __a)7370 vec_floor(vector double __a) {
7371 // On this platform, vec_floor never triggers the IEEE-inexact exception.
7372 return __builtin_s390_vfidb(__a, 4, 7);
7373 }
7374
7375 /*-- vec_roundz -------------------------------------------------------------*/
7376
7377 static inline __ATTRS_ai vector double
vec_roundz(vector double __a)7378 vec_roundz(vector double __a) {
7379 return __builtin_s390_vfidb(__a, 4, 5);
7380 }
7381
7382 /*-- vec_trunc --------------------------------------------------------------*/
7383
7384 static inline __ATTRS_ai vector double
vec_trunc(vector double __a)7385 vec_trunc(vector double __a) {
7386 // On this platform, vec_trunc never triggers the IEEE-inexact exception.
7387 return __builtin_s390_vfidb(__a, 4, 5);
7388 }
7389
7390 /*-- vec_roundc -------------------------------------------------------------*/
7391
7392 static inline __ATTRS_ai vector double
vec_roundc(vector double __a)7393 vec_roundc(vector double __a) {
7394 return __builtin_s390_vfidb(__a, 4, 0);
7395 }
7396
7397 /*-- vec_round --------------------------------------------------------------*/
7398
7399 static inline __ATTRS_ai vector double
vec_round(vector double __a)7400 vec_round(vector double __a) {
7401 return __builtin_s390_vfidb(__a, 4, 4);
7402 }
7403
7404 /*-- vec_fp_test_data_class -------------------------------------------------*/
7405
7406 #define vec_fp_test_data_class(X, Y, Z) \
7407 ((vector bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))
7408
7409 /*-- vec_cp_until_zero ------------------------------------------------------*/
7410
7411 static inline __ATTRS_o_ai vector signed char
vec_cp_until_zero(vector signed char __a)7412 vec_cp_until_zero(vector signed char __a) {
7413 return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a);
7414 }
7415
7416 static inline __ATTRS_o_ai vector bool char
vec_cp_until_zero(vector bool char __a)7417 vec_cp_until_zero(vector bool char __a) {
7418 return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a);
7419 }
7420
7421 static inline __ATTRS_o_ai vector unsigned char
vec_cp_until_zero(vector unsigned char __a)7422 vec_cp_until_zero(vector unsigned char __a) {
7423 return __builtin_s390_vistrb(__a);
7424 }
7425
7426 static inline __ATTRS_o_ai vector signed short
vec_cp_until_zero(vector signed short __a)7427 vec_cp_until_zero(vector signed short __a) {
7428 return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a);
7429 }
7430
7431 static inline __ATTRS_o_ai vector bool short
vec_cp_until_zero(vector bool short __a)7432 vec_cp_until_zero(vector bool short __a) {
7433 return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a);
7434 }
7435
7436 static inline __ATTRS_o_ai vector unsigned short
vec_cp_until_zero(vector unsigned short __a)7437 vec_cp_until_zero(vector unsigned short __a) {
7438 return __builtin_s390_vistrh(__a);
7439 }
7440
7441 static inline __ATTRS_o_ai vector signed int
vec_cp_until_zero(vector signed int __a)7442 vec_cp_until_zero(vector signed int __a) {
7443 return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a);
7444 }
7445
7446 static inline __ATTRS_o_ai vector bool int
vec_cp_until_zero(vector bool int __a)7447 vec_cp_until_zero(vector bool int __a) {
7448 return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a);
7449 }
7450
7451 static inline __ATTRS_o_ai vector unsigned int
vec_cp_until_zero(vector unsigned int __a)7452 vec_cp_until_zero(vector unsigned int __a) {
7453 return __builtin_s390_vistrf(__a);
7454 }
7455
7456 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/
7457
7458 static inline __ATTRS_o_ai vector signed char
vec_cp_until_zero_cc(vector signed char __a,int * __cc)7459 vec_cp_until_zero_cc(vector signed char __a, int *__cc) {
7460 return (vector signed char)
7461 __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
7462 }
7463
7464 static inline __ATTRS_o_ai vector bool char
vec_cp_until_zero_cc(vector bool char __a,int * __cc)7465 vec_cp_until_zero_cc(vector bool char __a, int *__cc) {
7466 return (vector bool char)
7467 __builtin_s390_vistrbs((vector unsigned char)__a, __cc);
7468 }
7469
7470 static inline __ATTRS_o_ai vector unsigned char
vec_cp_until_zero_cc(vector unsigned char __a,int * __cc)7471 vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) {
7472 return __builtin_s390_vistrbs(__a, __cc);
7473 }
7474
7475 static inline __ATTRS_o_ai vector signed short
vec_cp_until_zero_cc(vector signed short __a,int * __cc)7476 vec_cp_until_zero_cc(vector signed short __a, int *__cc) {
7477 return (vector signed short)
7478 __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
7479 }
7480
7481 static inline __ATTRS_o_ai vector bool short
vec_cp_until_zero_cc(vector bool short __a,int * __cc)7482 vec_cp_until_zero_cc(vector bool short __a, int *__cc) {
7483 return (vector bool short)
7484 __builtin_s390_vistrhs((vector unsigned short)__a, __cc);
7485 }
7486
7487 static inline __ATTRS_o_ai vector unsigned short
vec_cp_until_zero_cc(vector unsigned short __a,int * __cc)7488 vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) {
7489 return __builtin_s390_vistrhs(__a, __cc);
7490 }
7491
7492 static inline __ATTRS_o_ai vector signed int
vec_cp_until_zero_cc(vector signed int __a,int * __cc)7493 vec_cp_until_zero_cc(vector signed int __a, int *__cc) {
7494 return (vector signed int)
7495 __builtin_s390_vistrfs((vector unsigned int)__a, __cc);
7496 }
7497
7498 static inline __ATTRS_o_ai vector bool int
vec_cp_until_zero_cc(vector bool int __a,int * __cc)7499 vec_cp_until_zero_cc(vector bool int __a, int *__cc) {
7500 return (vector bool int)__builtin_s390_vistrfs((vector unsigned int)__a,
7501 __cc);
7502 }
7503
7504 static inline __ATTRS_o_ai vector unsigned int
vec_cp_until_zero_cc(vector unsigned int __a,int * __cc)7505 vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) {
7506 return __builtin_s390_vistrfs(__a, __cc);
7507 }
7508
7509 /*-- vec_cmpeq_idx ----------------------------------------------------------*/
7510
7511 static inline __ATTRS_o_ai vector signed char
vec_cmpeq_idx(vector signed char __a,vector signed char __b)7512 vec_cmpeq_idx(vector signed char __a, vector signed char __b) {
7513 return (vector signed char)
7514 __builtin_s390_vfeeb((vector unsigned char)__a,
7515 (vector unsigned char)__b);
7516 }
7517
7518 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx(vector bool char __a,vector bool char __b)7519 vec_cmpeq_idx(vector bool char __a, vector bool char __b) {
7520 return __builtin_s390_vfeeb((vector unsigned char)__a,
7521 (vector unsigned char)__b);
7522 }
7523
7524 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx(vector unsigned char __a,vector unsigned char __b)7525 vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) {
7526 return __builtin_s390_vfeeb(__a, __b);
7527 }
7528
7529 static inline __ATTRS_o_ai vector signed short
vec_cmpeq_idx(vector signed short __a,vector signed short __b)7530 vec_cmpeq_idx(vector signed short __a, vector signed short __b) {
7531 return (vector signed short)
7532 __builtin_s390_vfeeh((vector unsigned short)__a,
7533 (vector unsigned short)__b);
7534 }
7535
7536 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx(vector bool short __a,vector bool short __b)7537 vec_cmpeq_idx(vector bool short __a, vector bool short __b) {
7538 return __builtin_s390_vfeeh((vector unsigned short)__a,
7539 (vector unsigned short)__b);
7540 }
7541
7542 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx(vector unsigned short __a,vector unsigned short __b)7543 vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) {
7544 return __builtin_s390_vfeeh(__a, __b);
7545 }
7546
7547 static inline __ATTRS_o_ai vector signed int
vec_cmpeq_idx(vector signed int __a,vector signed int __b)7548 vec_cmpeq_idx(vector signed int __a, vector signed int __b) {
7549 return (vector signed int)
7550 __builtin_s390_vfeef((vector unsigned int)__a,
7551 (vector unsigned int)__b);
7552 }
7553
7554 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx(vector bool int __a,vector bool int __b)7555 vec_cmpeq_idx(vector bool int __a, vector bool int __b) {
7556 return __builtin_s390_vfeef((vector unsigned int)__a,
7557 (vector unsigned int)__b);
7558 }
7559
7560 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx(vector unsigned int __a,vector unsigned int __b)7561 vec_cmpeq_idx(vector unsigned int __a, vector unsigned int __b) {
7562 return __builtin_s390_vfeef(__a, __b);
7563 }
7564
7565 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/
7566
7567 static inline __ATTRS_o_ai vector signed char
vec_cmpeq_idx_cc(vector signed char __a,vector signed char __b,int * __cc)7568 vec_cmpeq_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
7569 return (vector signed char)
7570 __builtin_s390_vfeebs((vector unsigned char)__a,
7571 (vector unsigned char)__b, __cc);
7572 }
7573
7574 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx_cc(vector bool char __a,vector bool char __b,int * __cc)7575 vec_cmpeq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
7576 return __builtin_s390_vfeebs((vector unsigned char)__a,
7577 (vector unsigned char)__b, __cc);
7578 }
7579
7580 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)7581 vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b,
7582 int *__cc) {
7583 return __builtin_s390_vfeebs(__a, __b, __cc);
7584 }
7585
7586 static inline __ATTRS_o_ai vector signed short
vec_cmpeq_idx_cc(vector signed short __a,vector signed short __b,int * __cc)7587 vec_cmpeq_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
7588 return (vector signed short)
7589 __builtin_s390_vfeehs((vector unsigned short)__a,
7590 (vector unsigned short)__b, __cc);
7591 }
7592
7593 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx_cc(vector bool short __a,vector bool short __b,int * __cc)7594 vec_cmpeq_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
7595 return __builtin_s390_vfeehs((vector unsigned short)__a,
7596 (vector unsigned short)__b, __cc);
7597 }
7598
7599 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)7600 vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b,
7601 int *__cc) {
7602 return __builtin_s390_vfeehs(__a, __b, __cc);
7603 }
7604
7605 static inline __ATTRS_o_ai vector signed int
vec_cmpeq_idx_cc(vector signed int __a,vector signed int __b,int * __cc)7606 vec_cmpeq_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
7607 return (vector signed int)
7608 __builtin_s390_vfeefs((vector unsigned int)__a,
7609 (vector unsigned int)__b, __cc);
7610 }
7611
7612 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx_cc(vector bool int __a,vector bool int __b,int * __cc)7613 vec_cmpeq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
7614 return __builtin_s390_vfeefs((vector unsigned int)__a,
7615 (vector unsigned int)__b, __cc);
7616 }
7617
7618 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)7619 vec_cmpeq_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
7620 return __builtin_s390_vfeefs(__a, __b, __cc);
7621 }
7622
7623 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/
7624
7625 static inline __ATTRS_o_ai vector signed char
vec_cmpeq_or_0_idx(vector signed char __a,vector signed char __b)7626 vec_cmpeq_or_0_idx(vector signed char __a, vector signed char __b) {
7627 return (vector signed char)
7628 __builtin_s390_vfeezb((vector unsigned char)__a,
7629 (vector unsigned char)__b);
7630 }
7631
7632 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx(vector bool char __a,vector bool char __b)7633 vec_cmpeq_or_0_idx(vector bool char __a, vector bool char __b) {
7634 return __builtin_s390_vfeezb((vector unsigned char)__a,
7635 (vector unsigned char)__b);
7636 }
7637
7638 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx(vector unsigned char __a,vector unsigned char __b)7639 vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
7640 return __builtin_s390_vfeezb(__a, __b);
7641 }
7642
7643 static inline __ATTRS_o_ai vector signed short
vec_cmpeq_or_0_idx(vector signed short __a,vector signed short __b)7644 vec_cmpeq_or_0_idx(vector signed short __a, vector signed short __b) {
7645 return (vector signed short)
7646 __builtin_s390_vfeezh((vector unsigned short)__a,
7647 (vector unsigned short)__b);
7648 }
7649
7650 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx(vector bool short __a,vector bool short __b)7651 vec_cmpeq_or_0_idx(vector bool short __a, vector bool short __b) {
7652 return __builtin_s390_vfeezh((vector unsigned short)__a,
7653 (vector unsigned short)__b);
7654 }
7655
7656 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx(vector unsigned short __a,vector unsigned short __b)7657 vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
7658 return __builtin_s390_vfeezh(__a, __b);
7659 }
7660
7661 static inline __ATTRS_o_ai vector signed int
vec_cmpeq_or_0_idx(vector signed int __a,vector signed int __b)7662 vec_cmpeq_or_0_idx(vector signed int __a, vector signed int __b) {
7663 return (vector signed int)
7664 __builtin_s390_vfeezf((vector unsigned int)__a,
7665 (vector unsigned int)__b);
7666 }
7667
7668 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx(vector bool int __a,vector bool int __b)7669 vec_cmpeq_or_0_idx(vector bool int __a, vector bool int __b) {
7670 return __builtin_s390_vfeezf((vector unsigned int)__a,
7671 (vector unsigned int)__b);
7672 }
7673
7674 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx(vector unsigned int __a,vector unsigned int __b)7675 vec_cmpeq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
7676 return __builtin_s390_vfeezf(__a, __b);
7677 }
7678
7679 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/
7680
7681 static inline __ATTRS_o_ai vector signed char
vec_cmpeq_or_0_idx_cc(vector signed char __a,vector signed char __b,int * __cc)7682 vec_cmpeq_or_0_idx_cc(vector signed char __a, vector signed char __b,
7683 int *__cc) {
7684 return (vector signed char)
7685 __builtin_s390_vfeezbs((vector unsigned char)__a,
7686 (vector unsigned char)__b, __cc);
7687 }
7688
7689 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx_cc(vector bool char __a,vector bool char __b,int * __cc)7690 vec_cmpeq_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
7691 return __builtin_s390_vfeezbs((vector unsigned char)__a,
7692 (vector unsigned char)__b, __cc);
7693 }
7694
7695 static inline __ATTRS_o_ai vector unsigned char
vec_cmpeq_or_0_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)7696 vec_cmpeq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
7697 int *__cc) {
7698 return __builtin_s390_vfeezbs(__a, __b, __cc);
7699 }
7700
7701 static inline __ATTRS_o_ai vector signed short
vec_cmpeq_or_0_idx_cc(vector signed short __a,vector signed short __b,int * __cc)7702 vec_cmpeq_or_0_idx_cc(vector signed short __a, vector signed short __b,
7703 int *__cc) {
7704 return (vector signed short)
7705 __builtin_s390_vfeezhs((vector unsigned short)__a,
7706 (vector unsigned short)__b, __cc);
7707 }
7708
7709 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx_cc(vector bool short __a,vector bool short __b,int * __cc)7710 vec_cmpeq_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
7711 return __builtin_s390_vfeezhs((vector unsigned short)__a,
7712 (vector unsigned short)__b, __cc);
7713 }
7714
7715 static inline __ATTRS_o_ai vector unsigned short
vec_cmpeq_or_0_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)7716 vec_cmpeq_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
7717 int *__cc) {
7718 return __builtin_s390_vfeezhs(__a, __b, __cc);
7719 }
7720
7721 static inline __ATTRS_o_ai vector signed int
vec_cmpeq_or_0_idx_cc(vector signed int __a,vector signed int __b,int * __cc)7722 vec_cmpeq_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
7723 return (vector signed int)
7724 __builtin_s390_vfeezfs((vector unsigned int)__a,
7725 (vector unsigned int)__b, __cc);
7726 }
7727
7728 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx_cc(vector bool int __a,vector bool int __b,int * __cc)7729 vec_cmpeq_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
7730 return __builtin_s390_vfeezfs((vector unsigned int)__a,
7731 (vector unsigned int)__b, __cc);
7732 }
7733
7734 static inline __ATTRS_o_ai vector unsigned int
vec_cmpeq_or_0_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)7735 vec_cmpeq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
7736 int *__cc) {
7737 return __builtin_s390_vfeezfs(__a, __b, __cc);
7738 }
7739
7740 /*-- vec_cmpne_idx ----------------------------------------------------------*/
7741
7742 static inline __ATTRS_o_ai vector signed char
vec_cmpne_idx(vector signed char __a,vector signed char __b)7743 vec_cmpne_idx(vector signed char __a, vector signed char __b) {
7744 return (vector signed char)
7745 __builtin_s390_vfeneb((vector unsigned char)__a,
7746 (vector unsigned char)__b);
7747 }
7748
7749 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx(vector bool char __a,vector bool char __b)7750 vec_cmpne_idx(vector bool char __a, vector bool char __b) {
7751 return __builtin_s390_vfeneb((vector unsigned char)__a,
7752 (vector unsigned char)__b);
7753 }
7754
7755 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx(vector unsigned char __a,vector unsigned char __b)7756 vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) {
7757 return __builtin_s390_vfeneb(__a, __b);
7758 }
7759
7760 static inline __ATTRS_o_ai vector signed short
vec_cmpne_idx(vector signed short __a,vector signed short __b)7761 vec_cmpne_idx(vector signed short __a, vector signed short __b) {
7762 return (vector signed short)
7763 __builtin_s390_vfeneh((vector unsigned short)__a,
7764 (vector unsigned short)__b);
7765 }
7766
7767 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx(vector bool short __a,vector bool short __b)7768 vec_cmpne_idx(vector bool short __a, vector bool short __b) {
7769 return __builtin_s390_vfeneh((vector unsigned short)__a,
7770 (vector unsigned short)__b);
7771 }
7772
7773 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx(vector unsigned short __a,vector unsigned short __b)7774 vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) {
7775 return __builtin_s390_vfeneh(__a, __b);
7776 }
7777
7778 static inline __ATTRS_o_ai vector signed int
vec_cmpne_idx(vector signed int __a,vector signed int __b)7779 vec_cmpne_idx(vector signed int __a, vector signed int __b) {
7780 return (vector signed int)
7781 __builtin_s390_vfenef((vector unsigned int)__a,
7782 (vector unsigned int)__b);
7783 }
7784
7785 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx(vector bool int __a,vector bool int __b)7786 vec_cmpne_idx(vector bool int __a, vector bool int __b) {
7787 return __builtin_s390_vfenef((vector unsigned int)__a,
7788 (vector unsigned int)__b);
7789 }
7790
7791 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx(vector unsigned int __a,vector unsigned int __b)7792 vec_cmpne_idx(vector unsigned int __a, vector unsigned int __b) {
7793 return __builtin_s390_vfenef(__a, __b);
7794 }
7795
7796 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/
7797
7798 static inline __ATTRS_o_ai vector signed char
vec_cmpne_idx_cc(vector signed char __a,vector signed char __b,int * __cc)7799 vec_cmpne_idx_cc(vector signed char __a, vector signed char __b, int *__cc) {
7800 return (vector signed char)
7801 __builtin_s390_vfenebs((vector unsigned char)__a,
7802 (vector unsigned char)__b, __cc);
7803 }
7804
7805 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx_cc(vector bool char __a,vector bool char __b,int * __cc)7806 vec_cmpne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
7807 return __builtin_s390_vfenebs((vector unsigned char)__a,
7808 (vector unsigned char)__b, __cc);
7809 }
7810
7811 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)7812 vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b,
7813 int *__cc) {
7814 return __builtin_s390_vfenebs(__a, __b, __cc);
7815 }
7816
7817 static inline __ATTRS_o_ai vector signed short
vec_cmpne_idx_cc(vector signed short __a,vector signed short __b,int * __cc)7818 vec_cmpne_idx_cc(vector signed short __a, vector signed short __b, int *__cc) {
7819 return (vector signed short)
7820 __builtin_s390_vfenehs((vector unsigned short)__a,
7821 (vector unsigned short)__b, __cc);
7822 }
7823
7824 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx_cc(vector bool short __a,vector bool short __b,int * __cc)7825 vec_cmpne_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
7826 return __builtin_s390_vfenehs((vector unsigned short)__a,
7827 (vector unsigned short)__b, __cc);
7828 }
7829
7830 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)7831 vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b,
7832 int *__cc) {
7833 return __builtin_s390_vfenehs(__a, __b, __cc);
7834 }
7835
7836 static inline __ATTRS_o_ai vector signed int
vec_cmpne_idx_cc(vector signed int __a,vector signed int __b,int * __cc)7837 vec_cmpne_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
7838 return (vector signed int)
7839 __builtin_s390_vfenefs((vector unsigned int)__a,
7840 (vector unsigned int)__b, __cc);
7841 }
7842
7843 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx_cc(vector bool int __a,vector bool int __b,int * __cc)7844 vec_cmpne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
7845 return __builtin_s390_vfenefs((vector unsigned int)__a,
7846 (vector unsigned int)__b, __cc);
7847 }
7848
7849 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)7850 vec_cmpne_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
7851 return __builtin_s390_vfenefs(__a, __b, __cc);
7852 }
7853
7854 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/
7855
7856 static inline __ATTRS_o_ai vector signed char
vec_cmpne_or_0_idx(vector signed char __a,vector signed char __b)7857 vec_cmpne_or_0_idx(vector signed char __a, vector signed char __b) {
7858 return (vector signed char)
7859 __builtin_s390_vfenezb((vector unsigned char)__a,
7860 (vector unsigned char)__b);
7861 }
7862
7863 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx(vector bool char __a,vector bool char __b)7864 vec_cmpne_or_0_idx(vector bool char __a, vector bool char __b) {
7865 return __builtin_s390_vfenezb((vector unsigned char)__a,
7866 (vector unsigned char)__b);
7867 }
7868
7869 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx(vector unsigned char __a,vector unsigned char __b)7870 vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
7871 return __builtin_s390_vfenezb(__a, __b);
7872 }
7873
7874 static inline __ATTRS_o_ai vector signed short
vec_cmpne_or_0_idx(vector signed short __a,vector signed short __b)7875 vec_cmpne_or_0_idx(vector signed short __a, vector signed short __b) {
7876 return (vector signed short)
7877 __builtin_s390_vfenezh((vector unsigned short)__a,
7878 (vector unsigned short)__b);
7879 }
7880
7881 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx(vector bool short __a,vector bool short __b)7882 vec_cmpne_or_0_idx(vector bool short __a, vector bool short __b) {
7883 return __builtin_s390_vfenezh((vector unsigned short)__a,
7884 (vector unsigned short)__b);
7885 }
7886
7887 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx(vector unsigned short __a,vector unsigned short __b)7888 vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
7889 return __builtin_s390_vfenezh(__a, __b);
7890 }
7891
7892 static inline __ATTRS_o_ai vector signed int
vec_cmpne_or_0_idx(vector signed int __a,vector signed int __b)7893 vec_cmpne_or_0_idx(vector signed int __a, vector signed int __b) {
7894 return (vector signed int)
7895 __builtin_s390_vfenezf((vector unsigned int)__a,
7896 (vector unsigned int)__b);
7897 }
7898
7899 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx(vector bool int __a,vector bool int __b)7900 vec_cmpne_or_0_idx(vector bool int __a, vector bool int __b) {
7901 return __builtin_s390_vfenezf((vector unsigned int)__a,
7902 (vector unsigned int)__b);
7903 }
7904
7905 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx(vector unsigned int __a,vector unsigned int __b)7906 vec_cmpne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
7907 return __builtin_s390_vfenezf(__a, __b);
7908 }
7909
7910 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/
7911
7912 static inline __ATTRS_o_ai vector signed char
vec_cmpne_or_0_idx_cc(vector signed char __a,vector signed char __b,int * __cc)7913 vec_cmpne_or_0_idx_cc(vector signed char __a, vector signed char __b,
7914 int *__cc) {
7915 return (vector signed char)
7916 __builtin_s390_vfenezbs((vector unsigned char)__a,
7917 (vector unsigned char)__b, __cc);
7918 }
7919
7920 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx_cc(vector bool char __a,vector bool char __b,int * __cc)7921 vec_cmpne_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
7922 return __builtin_s390_vfenezbs((vector unsigned char)__a,
7923 (vector unsigned char)__b, __cc);
7924 }
7925
7926 static inline __ATTRS_o_ai vector unsigned char
vec_cmpne_or_0_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)7927 vec_cmpne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
7928 int *__cc) {
7929 return __builtin_s390_vfenezbs(__a, __b, __cc);
7930 }
7931
7932 static inline __ATTRS_o_ai vector signed short
vec_cmpne_or_0_idx_cc(vector signed short __a,vector signed short __b,int * __cc)7933 vec_cmpne_or_0_idx_cc(vector signed short __a, vector signed short __b,
7934 int *__cc) {
7935 return (vector signed short)
7936 __builtin_s390_vfenezhs((vector unsigned short)__a,
7937 (vector unsigned short)__b, __cc);
7938 }
7939
7940 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx_cc(vector bool short __a,vector bool short __b,int * __cc)7941 vec_cmpne_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) {
7942 return __builtin_s390_vfenezhs((vector unsigned short)__a,
7943 (vector unsigned short)__b, __cc);
7944 }
7945
7946 static inline __ATTRS_o_ai vector unsigned short
vec_cmpne_or_0_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)7947 vec_cmpne_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
7948 int *__cc) {
7949 return __builtin_s390_vfenezhs(__a, __b, __cc);
7950 }
7951
7952 static inline __ATTRS_o_ai vector signed int
vec_cmpne_or_0_idx_cc(vector signed int __a,vector signed int __b,int * __cc)7953 vec_cmpne_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) {
7954 return (vector signed int)
7955 __builtin_s390_vfenezfs((vector unsigned int)__a,
7956 (vector unsigned int)__b, __cc);
7957 }
7958
7959 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx_cc(vector bool int __a,vector bool int __b,int * __cc)7960 vec_cmpne_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
7961 return __builtin_s390_vfenezfs((vector unsigned int)__a,
7962 (vector unsigned int)__b, __cc);
7963 }
7964
7965 static inline __ATTRS_o_ai vector unsigned int
vec_cmpne_or_0_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)7966 vec_cmpne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
7967 int *__cc) {
7968 return __builtin_s390_vfenezfs(__a, __b, __cc);
7969 }
7970
7971 /*-- vec_cmprg --------------------------------------------------------------*/
7972
7973 static inline __ATTRS_o_ai vector bool char
vec_cmprg(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)7974 vec_cmprg(vector unsigned char __a, vector unsigned char __b,
7975 vector unsigned char __c) {
7976 return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);
7977 }
7978
7979 static inline __ATTRS_o_ai vector bool short
vec_cmprg(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)7980 vec_cmprg(vector unsigned short __a, vector unsigned short __b,
7981 vector unsigned short __c) {
7982 return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 4);
7983 }
7984
7985 static inline __ATTRS_o_ai vector bool int
vec_cmprg(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)7986 vec_cmprg(vector unsigned int __a, vector unsigned int __b,
7987 vector unsigned int __c) {
7988 return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);
7989 }
7990
7991 /*-- vec_cmprg_cc -----------------------------------------------------------*/
7992
7993 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)7994 vec_cmprg_cc(vector unsigned char __a, vector unsigned char __b,
7995 vector unsigned char __c, int *__cc) {
7996 return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);
7997 }
7998
7999 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)8000 vec_cmprg_cc(vector unsigned short __a, vector unsigned short __b,
8001 vector unsigned short __c, int *__cc) {
8002 return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);
8003 }
8004
8005 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)8006 vec_cmprg_cc(vector unsigned int __a, vector unsigned int __b,
8007 vector unsigned int __c, int *__cc) {
8008 return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);
8009 }
8010
8011 /*-- vec_cmprg_idx ----------------------------------------------------------*/
8012
8013 static inline __ATTRS_o_ai vector unsigned char
vec_cmprg_idx(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8014 vec_cmprg_idx(vector unsigned char __a, vector unsigned char __b,
8015 vector unsigned char __c) {
8016 return __builtin_s390_vstrcb(__a, __b, __c, 0);
8017 }
8018
8019 static inline __ATTRS_o_ai vector unsigned short
vec_cmprg_idx(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)8020 vec_cmprg_idx(vector unsigned short __a, vector unsigned short __b,
8021 vector unsigned short __c) {
8022 return __builtin_s390_vstrch(__a, __b, __c, 0);
8023 }
8024
8025 static inline __ATTRS_o_ai vector unsigned int
vec_cmprg_idx(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)8026 vec_cmprg_idx(vector unsigned int __a, vector unsigned int __b,
8027 vector unsigned int __c) {
8028 return __builtin_s390_vstrcf(__a, __b, __c, 0);
8029 }
8030
8031 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/
8032
8033 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)8034 vec_cmprg_idx_cc(vector unsigned char __a, vector unsigned char __b,
8035 vector unsigned char __c, int *__cc) {
8036 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);
8037 }
8038
8039 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)8040 vec_cmprg_idx_cc(vector unsigned short __a, vector unsigned short __b,
8041 vector unsigned short __c, int *__cc) {
8042 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);
8043 }
8044
8045 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)8046 vec_cmprg_idx_cc(vector unsigned int __a, vector unsigned int __b,
8047 vector unsigned int __c, int *__cc) {
8048 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);
8049 }
8050
8051 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/
8052
8053 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)8054 vec_cmprg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
8055 vector unsigned char __c) {
8056 return __builtin_s390_vstrczb(__a, __b, __c, 0);
8057 }
8058
8059 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)8060 vec_cmprg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
8061 vector unsigned short __c) {
8062 return __builtin_s390_vstrczh(__a, __b, __c, 0);
8063 }
8064
8065 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)8066 vec_cmprg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
8067 vector unsigned int __c) {
8068 return __builtin_s390_vstrczf(__a, __b, __c, 0);
8069 }
8070
8071 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/
8072
8073 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)8074 vec_cmprg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
8075 vector unsigned char __c, int *__cc) {
8076 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);
8077 }
8078
8079 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)8080 vec_cmprg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
8081 vector unsigned short __c, int *__cc) {
8082 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);
8083 }
8084
8085 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)8086 vec_cmprg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
8087 vector unsigned int __c, int *__cc) {
8088 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);
8089 }
8090
8091 /*-- vec_cmpnrg -------------------------------------------------------------*/
8092
8093 static inline __ATTRS_o_ai vector bool char
vec_cmpnrg(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8094 vec_cmpnrg(vector unsigned char __a, vector unsigned char __b,
8095 vector unsigned char __c) {
8096 return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);
8097 }
8098
8099 static inline __ATTRS_o_ai vector bool short
vec_cmpnrg(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)8100 vec_cmpnrg(vector unsigned short __a, vector unsigned short __b,
8101 vector unsigned short __c) {
8102 return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 12);
8103 }
8104
8105 static inline __ATTRS_o_ai vector bool int
vec_cmpnrg(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)8106 vec_cmpnrg(vector unsigned int __a, vector unsigned int __b,
8107 vector unsigned int __c) {
8108 return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);
8109 }
8110
8111 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/
8112
8113 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)8114 vec_cmpnrg_cc(vector unsigned char __a, vector unsigned char __b,
8115 vector unsigned char __c, int *__cc) {
8116 return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);
8117 }
8118
8119 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)8120 vec_cmpnrg_cc(vector unsigned short __a, vector unsigned short __b,
8121 vector unsigned short __c, int *__cc) {
8122 return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 12, __cc);
8123 }
8124
8125 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)8126 vec_cmpnrg_cc(vector unsigned int __a, vector unsigned int __b,
8127 vector unsigned int __c, int *__cc) {
8128 return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);
8129 }
8130
8131 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/
8132
8133 static inline __ATTRS_o_ai vector unsigned char
vec_cmpnrg_idx(vector unsigned char __a,vector unsigned char __b,vector unsigned char __c)8134 vec_cmpnrg_idx(vector unsigned char __a, vector unsigned char __b,
8135 vector unsigned char __c) {
8136 return __builtin_s390_vstrcb(__a, __b, __c, 8);
8137 }
8138
8139 static inline __ATTRS_o_ai vector unsigned short
vec_cmpnrg_idx(vector unsigned short __a,vector unsigned short __b,vector unsigned short __c)8140 vec_cmpnrg_idx(vector unsigned short __a, vector unsigned short __b,
8141 vector unsigned short __c) {
8142 return __builtin_s390_vstrch(__a, __b, __c, 8);
8143 }
8144
8145 static inline __ATTRS_o_ai vector unsigned int
vec_cmpnrg_idx(vector unsigned int __a,vector unsigned int __b,vector unsigned int __c)8146 vec_cmpnrg_idx(vector unsigned int __a, vector unsigned int __b,
8147 vector unsigned int __c) {
8148 return __builtin_s390_vstrcf(__a, __b, __c, 8);
8149 }
8150
8151 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/
8152
8153 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)8154 vec_cmpnrg_idx_cc(vector unsigned char __a, vector unsigned char __b,
8155 vector unsigned char __c, int *__cc) {
8156 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);
8157 }
8158
8159 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)8160 vec_cmpnrg_idx_cc(vector unsigned short __a, vector unsigned short __b,
8161 vector unsigned short __c, int *__cc) {
8162 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);
8163 }
8164
8165 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)8166 vec_cmpnrg_idx_cc(vector unsigned int __a, vector unsigned int __b,
8167 vector unsigned int __c, int *__cc) {
8168 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);
8169 }
8170
8171 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/
8172
8173 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)8174 vec_cmpnrg_or_0_idx(vector unsigned char __a, vector unsigned char __b,
8175 vector unsigned char __c) {
8176 return __builtin_s390_vstrczb(__a, __b, __c, 8);
8177 }
8178
8179 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)8180 vec_cmpnrg_or_0_idx(vector unsigned short __a, vector unsigned short __b,
8181 vector unsigned short __c) {
8182 return __builtin_s390_vstrczh(__a, __b, __c, 8);
8183 }
8184
8185 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)8186 vec_cmpnrg_or_0_idx(vector unsigned int __a, vector unsigned int __b,
8187 vector unsigned int __c) {
8188 return __builtin_s390_vstrczf(__a, __b, __c, 8);
8189 }
8190
8191 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/
8192
8193 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)8194 vec_cmpnrg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
8195 vector unsigned char __c, int *__cc) {
8196 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);
8197 }
8198
8199 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)8200 vec_cmpnrg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b,
8201 vector unsigned short __c, int *__cc) {
8202 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);
8203 }
8204
8205 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)8206 vec_cmpnrg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
8207 vector unsigned int __c, int *__cc) {
8208 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);
8209 }
8210
8211 /*-- vec_find_any_eq --------------------------------------------------------*/
8212
8213 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq(vector signed char __a,vector signed char __b)8214 vec_find_any_eq(vector signed char __a, vector signed char __b) {
8215 return (vector bool char)
8216 __builtin_s390_vfaeb((vector unsigned char)__a,
8217 (vector unsigned char)__b, 4);
8218 }
8219
8220 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq(vector bool char __a,vector bool char __b)8221 vec_find_any_eq(vector bool char __a, vector bool char __b) {
8222 return (vector bool char)
8223 __builtin_s390_vfaeb((vector unsigned char)__a,
8224 (vector unsigned char)__b, 4);
8225 }
8226
8227 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq(vector unsigned char __a,vector unsigned char __b)8228 vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) {
8229 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4);
8230 }
8231
8232 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq(vector signed short __a,vector signed short __b)8233 vec_find_any_eq(vector signed short __a, vector signed short __b) {
8234 return (vector bool short)
8235 __builtin_s390_vfaeh((vector unsigned short)__a,
8236 (vector unsigned short)__b, 4);
8237 }
8238
8239 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq(vector bool short __a,vector bool short __b)8240 vec_find_any_eq(vector bool short __a, vector bool short __b) {
8241 return (vector bool short)
8242 __builtin_s390_vfaeh((vector unsigned short)__a,
8243 (vector unsigned short)__b, 4);
8244 }
8245
8246 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq(vector unsigned short __a,vector unsigned short __b)8247 vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) {
8248 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4);
8249 }
8250
8251 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq(vector signed int __a,vector signed int __b)8252 vec_find_any_eq(vector signed int __a, vector signed int __b) {
8253 return (vector bool int)
8254 __builtin_s390_vfaef((vector unsigned int)__a,
8255 (vector unsigned int)__b, 4);
8256 }
8257
8258 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq(vector bool int __a,vector bool int __b)8259 vec_find_any_eq(vector bool int __a, vector bool int __b) {
8260 return (vector bool int)
8261 __builtin_s390_vfaef((vector unsigned int)__a,
8262 (vector unsigned int)__b, 4);
8263 }
8264
8265 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq(vector unsigned int __a,vector unsigned int __b)8266 vec_find_any_eq(vector unsigned int __a, vector unsigned int __b) {
8267 return (vector bool int)__builtin_s390_vfaef(__a, __b, 4);
8268 }
8269
8270 /*-- vec_find_any_eq_cc -----------------------------------------------------*/
8271
8272 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq_cc(vector signed char __a,vector signed char __b,int * __cc)8273 vec_find_any_eq_cc(vector signed char __a, vector signed char __b, int *__cc) {
8274 return (vector bool char)
8275 __builtin_s390_vfaebs((vector unsigned char)__a,
8276 (vector unsigned char)__b, 4, __cc);
8277 }
8278
8279 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq_cc(vector bool char __a,vector bool char __b,int * __cc)8280 vec_find_any_eq_cc(vector bool char __a, vector bool char __b, int *__cc) {
8281 return (vector bool char)
8282 __builtin_s390_vfaebs((vector unsigned char)__a,
8283 (vector unsigned char)__b, 4, __cc);
8284 }
8285
8286 static inline __ATTRS_o_ai vector bool char
vec_find_any_eq_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)8287 vec_find_any_eq_cc(vector unsigned char __a, vector unsigned char __b,
8288 int *__cc) {
8289 return (vector bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);
8290 }
8291
8292 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq_cc(vector signed short __a,vector signed short __b,int * __cc)8293 vec_find_any_eq_cc(vector signed short __a, vector signed short __b,
8294 int *__cc) {
8295 return (vector bool short)
8296 __builtin_s390_vfaehs((vector unsigned short)__a,
8297 (vector unsigned short)__b, 4, __cc);
8298 }
8299
8300 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq_cc(vector bool short __a,vector bool short __b,int * __cc)8301 vec_find_any_eq_cc(vector bool short __a, vector bool short __b, int *__cc) {
8302 return (vector bool short)
8303 __builtin_s390_vfaehs((vector unsigned short)__a,
8304 (vector unsigned short)__b, 4, __cc);
8305 }
8306
8307 static inline __ATTRS_o_ai vector bool short
vec_find_any_eq_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)8308 vec_find_any_eq_cc(vector unsigned short __a, vector unsigned short __b,
8309 int *__cc) {
8310 return (vector bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);
8311 }
8312
8313 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq_cc(vector signed int __a,vector signed int __b,int * __cc)8314 vec_find_any_eq_cc(vector signed int __a, vector signed int __b, int *__cc) {
8315 return (vector bool int)
8316 __builtin_s390_vfaefs((vector unsigned int)__a,
8317 (vector unsigned int)__b, 4, __cc);
8318 }
8319
8320 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq_cc(vector bool int __a,vector bool int __b,int * __cc)8321 vec_find_any_eq_cc(vector bool int __a, vector bool int __b, int *__cc) {
8322 return (vector bool int)
8323 __builtin_s390_vfaefs((vector unsigned int)__a,
8324 (vector unsigned int)__b, 4, __cc);
8325 }
8326
8327 static inline __ATTRS_o_ai vector bool int
vec_find_any_eq_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)8328 vec_find_any_eq_cc(vector unsigned int __a, vector unsigned int __b,
8329 int *__cc) {
8330 return (vector bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);
8331 }
8332
8333 /*-- vec_find_any_eq_idx ----------------------------------------------------*/
8334
8335 static inline __ATTRS_o_ai vector signed char
vec_find_any_eq_idx(vector signed char __a,vector signed char __b)8336 vec_find_any_eq_idx(vector signed char __a, vector signed char __b) {
8337 return (vector signed char)
8338 __builtin_s390_vfaeb((vector unsigned char)__a,
8339 (vector unsigned char)__b, 0);
8340 }
8341
8342 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx(vector bool char __a,vector bool char __b)8343 vec_find_any_eq_idx(vector bool char __a, vector bool char __b) {
8344 return __builtin_s390_vfaeb((vector unsigned char)__a,
8345 (vector unsigned char)__b, 0);
8346 }
8347
8348 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx(vector unsigned char __a,vector unsigned char __b)8349 vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) {
8350 return __builtin_s390_vfaeb(__a, __b, 0);
8351 }
8352
8353 static inline __ATTRS_o_ai vector signed short
vec_find_any_eq_idx(vector signed short __a,vector signed short __b)8354 vec_find_any_eq_idx(vector signed short __a, vector signed short __b) {
8355 return (vector signed short)
8356 __builtin_s390_vfaeh((vector unsigned short)__a,
8357 (vector unsigned short)__b, 0);
8358 }
8359
8360 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx(vector bool short __a,vector bool short __b)8361 vec_find_any_eq_idx(vector bool short __a, vector bool short __b) {
8362 return __builtin_s390_vfaeh((vector unsigned short)__a,
8363 (vector unsigned short)__b, 0);
8364 }
8365
8366 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx(vector unsigned short __a,vector unsigned short __b)8367 vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) {
8368 return __builtin_s390_vfaeh(__a, __b, 0);
8369 }
8370
8371 static inline __ATTRS_o_ai vector signed int
vec_find_any_eq_idx(vector signed int __a,vector signed int __b)8372 vec_find_any_eq_idx(vector signed int __a, vector signed int __b) {
8373 return (vector signed int)
8374 __builtin_s390_vfaef((vector unsigned int)__a,
8375 (vector unsigned int)__b, 0);
8376 }
8377
8378 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx(vector bool int __a,vector bool int __b)8379 vec_find_any_eq_idx(vector bool int __a, vector bool int __b) {
8380 return __builtin_s390_vfaef((vector unsigned int)__a,
8381 (vector unsigned int)__b, 0);
8382 }
8383
8384 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx(vector unsigned int __a,vector unsigned int __b)8385 vec_find_any_eq_idx(vector unsigned int __a, vector unsigned int __b) {
8386 return __builtin_s390_vfaef(__a, __b, 0);
8387 }
8388
8389 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/
8390
8391 static inline __ATTRS_o_ai vector signed char
vec_find_any_eq_idx_cc(vector signed char __a,vector signed char __b,int * __cc)8392 vec_find_any_eq_idx_cc(vector signed char __a, vector signed char __b,
8393 int *__cc) {
8394 return (vector signed char)
8395 __builtin_s390_vfaebs((vector unsigned char)__a,
8396 (vector unsigned char)__b, 0, __cc);
8397 }
8398
8399 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx_cc(vector bool char __a,vector bool char __b,int * __cc)8400 vec_find_any_eq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
8401 return __builtin_s390_vfaebs((vector unsigned char)__a,
8402 (vector unsigned char)__b, 0, __cc);
8403 }
8404
8405 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)8406 vec_find_any_eq_idx_cc(vector unsigned char __a, vector unsigned char __b,
8407 int *__cc) {
8408 return __builtin_s390_vfaebs(__a, __b, 0, __cc);
8409 }
8410
8411 static inline __ATTRS_o_ai vector signed short
vec_find_any_eq_idx_cc(vector signed short __a,vector signed short __b,int * __cc)8412 vec_find_any_eq_idx_cc(vector signed short __a, vector signed short __b,
8413 int *__cc) {
8414 return (vector signed short)
8415 __builtin_s390_vfaehs((vector unsigned short)__a,
8416 (vector unsigned short)__b, 0, __cc);
8417 }
8418
8419 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx_cc(vector bool short __a,vector bool short __b,int * __cc)8420 vec_find_any_eq_idx_cc(vector bool short __a, vector bool short __b,
8421 int *__cc) {
8422 return __builtin_s390_vfaehs((vector unsigned short)__a,
8423 (vector unsigned short)__b, 0, __cc);
8424 }
8425
8426 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)8427 vec_find_any_eq_idx_cc(vector unsigned short __a, vector unsigned short __b,
8428 int *__cc) {
8429 return __builtin_s390_vfaehs(__a, __b, 0, __cc);
8430 }
8431
8432 static inline __ATTRS_o_ai vector signed int
vec_find_any_eq_idx_cc(vector signed int __a,vector signed int __b,int * __cc)8433 vec_find_any_eq_idx_cc(vector signed int __a, vector signed int __b,
8434 int *__cc) {
8435 return (vector signed int)
8436 __builtin_s390_vfaefs((vector unsigned int)__a,
8437 (vector unsigned int)__b, 0, __cc);
8438 }
8439
8440 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx_cc(vector bool int __a,vector bool int __b,int * __cc)8441 vec_find_any_eq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
8442 return __builtin_s390_vfaefs((vector unsigned int)__a,
8443 (vector unsigned int)__b, 0, __cc);
8444 }
8445
8446 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)8447 vec_find_any_eq_idx_cc(vector unsigned int __a, vector unsigned int __b,
8448 int *__cc) {
8449 return __builtin_s390_vfaefs(__a, __b, 0, __cc);
8450 }
8451
8452 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/
8453
8454 static inline __ATTRS_o_ai vector signed char
vec_find_any_eq_or_0_idx(vector signed char __a,vector signed char __b)8455 vec_find_any_eq_or_0_idx(vector signed char __a, vector signed char __b) {
8456 return (vector signed char)
8457 __builtin_s390_vfaezb((vector unsigned char)__a,
8458 (vector unsigned char)__b, 0);
8459 }
8460
8461 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_or_0_idx(vector bool char __a,vector bool char __b)8462 vec_find_any_eq_or_0_idx(vector bool char __a, vector bool char __b) {
8463 return __builtin_s390_vfaezb((vector unsigned char)__a,
8464 (vector unsigned char)__b, 0);
8465 }
8466
8467 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_eq_or_0_idx(vector unsigned char __a,vector unsigned char __b)8468 vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
8469 return __builtin_s390_vfaezb(__a, __b, 0);
8470 }
8471
8472 static inline __ATTRS_o_ai vector signed short
vec_find_any_eq_or_0_idx(vector signed short __a,vector signed short __b)8473 vec_find_any_eq_or_0_idx(vector signed short __a, vector signed short __b) {
8474 return (vector signed short)
8475 __builtin_s390_vfaezh((vector unsigned short)__a,
8476 (vector unsigned short)__b, 0);
8477 }
8478
8479 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_or_0_idx(vector bool short __a,vector bool short __b)8480 vec_find_any_eq_or_0_idx(vector bool short __a, vector bool short __b) {
8481 return __builtin_s390_vfaezh((vector unsigned short)__a,
8482 (vector unsigned short)__b, 0);
8483 }
8484
8485 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_eq_or_0_idx(vector unsigned short __a,vector unsigned short __b)8486 vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
8487 return __builtin_s390_vfaezh(__a, __b, 0);
8488 }
8489
8490 static inline __ATTRS_o_ai vector signed int
vec_find_any_eq_or_0_idx(vector signed int __a,vector signed int __b)8491 vec_find_any_eq_or_0_idx(vector signed int __a, vector signed int __b) {
8492 return (vector signed int)
8493 __builtin_s390_vfaezf((vector unsigned int)__a,
8494 (vector unsigned int)__b, 0);
8495 }
8496
8497 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_or_0_idx(vector bool int __a,vector bool int __b)8498 vec_find_any_eq_or_0_idx(vector bool int __a, vector bool int __b) {
8499 return __builtin_s390_vfaezf((vector unsigned int)__a,
8500 (vector unsigned int)__b, 0);
8501 }
8502
8503 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_eq_or_0_idx(vector unsigned int __a,vector unsigned int __b)8504 vec_find_any_eq_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
8505 return __builtin_s390_vfaezf(__a, __b, 0);
8506 }
8507
8508 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/
8509
8510 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)8511 vec_find_any_eq_or_0_idx_cc(vector signed char __a, vector signed char __b,
8512 int *__cc) {
8513 return (vector signed char)
8514 __builtin_s390_vfaezbs((vector unsigned char)__a,
8515 (vector unsigned char)__b, 0, __cc);
8516 }
8517
8518 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)8519 vec_find_any_eq_or_0_idx_cc(vector bool char __a, vector bool char __b,
8520 int *__cc) {
8521 return __builtin_s390_vfaezbs((vector unsigned char)__a,
8522 (vector unsigned char)__b, 0, __cc);
8523 }
8524
8525 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)8526 vec_find_any_eq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
8527 int *__cc) {
8528 return __builtin_s390_vfaezbs(__a, __b, 0, __cc);
8529 }
8530
8531 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)8532 vec_find_any_eq_or_0_idx_cc(vector signed short __a, vector signed short __b,
8533 int *__cc) {
8534 return (vector signed short)
8535 __builtin_s390_vfaezhs((vector unsigned short)__a,
8536 (vector unsigned short)__b, 0, __cc);
8537 }
8538
8539 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)8540 vec_find_any_eq_or_0_idx_cc(vector bool short __a, vector bool short __b,
8541 int *__cc) {
8542 return __builtin_s390_vfaezhs((vector unsigned short)__a,
8543 (vector unsigned short)__b, 0, __cc);
8544 }
8545
8546 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)8547 vec_find_any_eq_or_0_idx_cc(vector unsigned short __a,
8548 vector unsigned short __b, int *__cc) {
8549 return __builtin_s390_vfaezhs(__a, __b, 0, __cc);
8550 }
8551
8552 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)8553 vec_find_any_eq_or_0_idx_cc(vector signed int __a, vector signed int __b,
8554 int *__cc) {
8555 return (vector signed int)
8556 __builtin_s390_vfaezfs((vector unsigned int)__a,
8557 (vector unsigned int)__b, 0, __cc);
8558 }
8559
8560 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)8561 vec_find_any_eq_or_0_idx_cc(vector bool int __a, vector bool int __b,
8562 int *__cc) {
8563 return __builtin_s390_vfaezfs((vector unsigned int)__a,
8564 (vector unsigned int)__b, 0, __cc);
8565 }
8566
8567 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)8568 vec_find_any_eq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
8569 int *__cc) {
8570 return __builtin_s390_vfaezfs(__a, __b, 0, __cc);
8571 }
8572
8573 /*-- vec_find_any_ne --------------------------------------------------------*/
8574
8575 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne(vector signed char __a,vector signed char __b)8576 vec_find_any_ne(vector signed char __a, vector signed char __b) {
8577 return (vector bool char)
8578 __builtin_s390_vfaeb((vector unsigned char)__a,
8579 (vector unsigned char)__b, 12);
8580 }
8581
8582 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne(vector bool char __a,vector bool char __b)8583 vec_find_any_ne(vector bool char __a, vector bool char __b) {
8584 return (vector bool char)
8585 __builtin_s390_vfaeb((vector unsigned char)__a,
8586 (vector unsigned char)__b, 12);
8587 }
8588
8589 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne(vector unsigned char __a,vector unsigned char __b)8590 vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) {
8591 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12);
8592 }
8593
8594 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne(vector signed short __a,vector signed short __b)8595 vec_find_any_ne(vector signed short __a, vector signed short __b) {
8596 return (vector bool short)
8597 __builtin_s390_vfaeh((vector unsigned short)__a,
8598 (vector unsigned short)__b, 12);
8599 }
8600
8601 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne(vector bool short __a,vector bool short __b)8602 vec_find_any_ne(vector bool short __a, vector bool short __b) {
8603 return (vector bool short)
8604 __builtin_s390_vfaeh((vector unsigned short)__a,
8605 (vector unsigned short)__b, 12);
8606 }
8607
8608 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne(vector unsigned short __a,vector unsigned short __b)8609 vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) {
8610 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12);
8611 }
8612
8613 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne(vector signed int __a,vector signed int __b)8614 vec_find_any_ne(vector signed int __a, vector signed int __b) {
8615 return (vector bool int)
8616 __builtin_s390_vfaef((vector unsigned int)__a,
8617 (vector unsigned int)__b, 12);
8618 }
8619
8620 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne(vector bool int __a,vector bool int __b)8621 vec_find_any_ne(vector bool int __a, vector bool int __b) {
8622 return (vector bool int)
8623 __builtin_s390_vfaef((vector unsigned int)__a,
8624 (vector unsigned int)__b, 12);
8625 }
8626
8627 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne(vector unsigned int __a,vector unsigned int __b)8628 vec_find_any_ne(vector unsigned int __a, vector unsigned int __b) {
8629 return (vector bool int)__builtin_s390_vfaef(__a, __b, 12);
8630 }
8631
8632 /*-- vec_find_any_ne_cc -----------------------------------------------------*/
8633
8634 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne_cc(vector signed char __a,vector signed char __b,int * __cc)8635 vec_find_any_ne_cc(vector signed char __a, vector signed char __b, int *__cc) {
8636 return (vector bool char)
8637 __builtin_s390_vfaebs((vector unsigned char)__a,
8638 (vector unsigned char)__b, 12, __cc);
8639 }
8640
8641 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne_cc(vector bool char __a,vector bool char __b,int * __cc)8642 vec_find_any_ne_cc(vector bool char __a, vector bool char __b, int *__cc) {
8643 return (vector bool char)
8644 __builtin_s390_vfaebs((vector unsigned char)__a,
8645 (vector unsigned char)__b, 12, __cc);
8646 }
8647
8648 static inline __ATTRS_o_ai vector bool char
vec_find_any_ne_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)8649 vec_find_any_ne_cc(vector unsigned char __a, vector unsigned char __b,
8650 int *__cc) {
8651 return (vector bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);
8652 }
8653
8654 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne_cc(vector signed short __a,vector signed short __b,int * __cc)8655 vec_find_any_ne_cc(vector signed short __a, vector signed short __b,
8656 int *__cc) {
8657 return (vector bool short)
8658 __builtin_s390_vfaehs((vector unsigned short)__a,
8659 (vector unsigned short)__b, 12, __cc);
8660 }
8661
8662 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne_cc(vector bool short __a,vector bool short __b,int * __cc)8663 vec_find_any_ne_cc(vector bool short __a, vector bool short __b, int *__cc) {
8664 return (vector bool short)
8665 __builtin_s390_vfaehs((vector unsigned short)__a,
8666 (vector unsigned short)__b, 12, __cc);
8667 }
8668
8669 static inline __ATTRS_o_ai vector bool short
vec_find_any_ne_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)8670 vec_find_any_ne_cc(vector unsigned short __a, vector unsigned short __b,
8671 int *__cc) {
8672 return (vector bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);
8673 }
8674
8675 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne_cc(vector signed int __a,vector signed int __b,int * __cc)8676 vec_find_any_ne_cc(vector signed int __a, vector signed int __b, int *__cc) {
8677 return (vector bool int)
8678 __builtin_s390_vfaefs((vector unsigned int)__a,
8679 (vector unsigned int)__b, 12, __cc);
8680 }
8681
8682 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne_cc(vector bool int __a,vector bool int __b,int * __cc)8683 vec_find_any_ne_cc(vector bool int __a, vector bool int __b, int *__cc) {
8684 return (vector bool int)
8685 __builtin_s390_vfaefs((vector unsigned int)__a,
8686 (vector unsigned int)__b, 12, __cc);
8687 }
8688
8689 static inline __ATTRS_o_ai vector bool int
vec_find_any_ne_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)8690 vec_find_any_ne_cc(vector unsigned int __a, vector unsigned int __b,
8691 int *__cc) {
8692 return (vector bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);
8693 }
8694
8695 /*-- vec_find_any_ne_idx ----------------------------------------------------*/
8696
8697 static inline __ATTRS_o_ai vector signed char
vec_find_any_ne_idx(vector signed char __a,vector signed char __b)8698 vec_find_any_ne_idx(vector signed char __a, vector signed char __b) {
8699 return (vector signed char)
8700 __builtin_s390_vfaeb((vector unsigned char)__a,
8701 (vector unsigned char)__b, 8);
8702 }
8703
8704 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx(vector bool char __a,vector bool char __b)8705 vec_find_any_ne_idx(vector bool char __a, vector bool char __b) {
8706 return __builtin_s390_vfaeb((vector unsigned char)__a,
8707 (vector unsigned char)__b, 8);
8708 }
8709
8710 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx(vector unsigned char __a,vector unsigned char __b)8711 vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) {
8712 return __builtin_s390_vfaeb(__a, __b, 8);
8713 }
8714
8715 static inline __ATTRS_o_ai vector signed short
vec_find_any_ne_idx(vector signed short __a,vector signed short __b)8716 vec_find_any_ne_idx(vector signed short __a, vector signed short __b) {
8717 return (vector signed short)
8718 __builtin_s390_vfaeh((vector unsigned short)__a,
8719 (vector unsigned short)__b, 8);
8720 }
8721
8722 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx(vector bool short __a,vector bool short __b)8723 vec_find_any_ne_idx(vector bool short __a, vector bool short __b) {
8724 return __builtin_s390_vfaeh((vector unsigned short)__a,
8725 (vector unsigned short)__b, 8);
8726 }
8727
8728 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx(vector unsigned short __a,vector unsigned short __b)8729 vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) {
8730 return __builtin_s390_vfaeh(__a, __b, 8);
8731 }
8732
8733 static inline __ATTRS_o_ai vector signed int
vec_find_any_ne_idx(vector signed int __a,vector signed int __b)8734 vec_find_any_ne_idx(vector signed int __a, vector signed int __b) {
8735 return (vector signed int)
8736 __builtin_s390_vfaef((vector unsigned int)__a,
8737 (vector unsigned int)__b, 8);
8738 }
8739
8740 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx(vector bool int __a,vector bool int __b)8741 vec_find_any_ne_idx(vector bool int __a, vector bool int __b) {
8742 return __builtin_s390_vfaef((vector unsigned int)__a,
8743 (vector unsigned int)__b, 8);
8744 }
8745
8746 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx(vector unsigned int __a,vector unsigned int __b)8747 vec_find_any_ne_idx(vector unsigned int __a, vector unsigned int __b) {
8748 return __builtin_s390_vfaef(__a, __b, 8);
8749 }
8750
8751 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/
8752
8753 static inline __ATTRS_o_ai vector signed char
vec_find_any_ne_idx_cc(vector signed char __a,vector signed char __b,int * __cc)8754 vec_find_any_ne_idx_cc(vector signed char __a, vector signed char __b,
8755 int *__cc) {
8756 return (vector signed char)
8757 __builtin_s390_vfaebs((vector unsigned char)__a,
8758 (vector unsigned char)__b, 8, __cc);
8759 }
8760
8761 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx_cc(vector bool char __a,vector bool char __b,int * __cc)8762 vec_find_any_ne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) {
8763 return __builtin_s390_vfaebs((vector unsigned char)__a,
8764 (vector unsigned char)__b, 8, __cc);
8765 }
8766
8767 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_idx_cc(vector unsigned char __a,vector unsigned char __b,int * __cc)8768 vec_find_any_ne_idx_cc(vector unsigned char __a, vector unsigned char __b,
8769 int *__cc) {
8770 return __builtin_s390_vfaebs(__a, __b, 8, __cc);
8771 }
8772
8773 static inline __ATTRS_o_ai vector signed short
vec_find_any_ne_idx_cc(vector signed short __a,vector signed short __b,int * __cc)8774 vec_find_any_ne_idx_cc(vector signed short __a, vector signed short __b,
8775 int *__cc) {
8776 return (vector signed short)
8777 __builtin_s390_vfaehs((vector unsigned short)__a,
8778 (vector unsigned short)__b, 8, __cc);
8779 }
8780
8781 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx_cc(vector bool short __a,vector bool short __b,int * __cc)8782 vec_find_any_ne_idx_cc(vector bool short __a, vector bool short __b,
8783 int *__cc) {
8784 return __builtin_s390_vfaehs((vector unsigned short)__a,
8785 (vector unsigned short)__b, 8, __cc);
8786 }
8787
8788 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_idx_cc(vector unsigned short __a,vector unsigned short __b,int * __cc)8789 vec_find_any_ne_idx_cc(vector unsigned short __a, vector unsigned short __b,
8790 int *__cc) {
8791 return __builtin_s390_vfaehs(__a, __b, 8, __cc);
8792 }
8793
8794 static inline __ATTRS_o_ai vector signed int
vec_find_any_ne_idx_cc(vector signed int __a,vector signed int __b,int * __cc)8795 vec_find_any_ne_idx_cc(vector signed int __a, vector signed int __b,
8796 int *__cc) {
8797 return (vector signed int)
8798 __builtin_s390_vfaefs((vector unsigned int)__a,
8799 (vector unsigned int)__b, 8, __cc);
8800 }
8801
8802 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx_cc(vector bool int __a,vector bool int __b,int * __cc)8803 vec_find_any_ne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) {
8804 return __builtin_s390_vfaefs((vector unsigned int)__a,
8805 (vector unsigned int)__b, 8, __cc);
8806 }
8807
8808 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_idx_cc(vector unsigned int __a,vector unsigned int __b,int * __cc)8809 vec_find_any_ne_idx_cc(vector unsigned int __a, vector unsigned int __b,
8810 int *__cc) {
8811 return __builtin_s390_vfaefs(__a, __b, 8, __cc);
8812 }
8813
8814 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/
8815
8816 static inline __ATTRS_o_ai vector signed char
vec_find_any_ne_or_0_idx(vector signed char __a,vector signed char __b)8817 vec_find_any_ne_or_0_idx(vector signed char __a, vector signed char __b) {
8818 return (vector signed char)
8819 __builtin_s390_vfaezb((vector unsigned char)__a,
8820 (vector unsigned char)__b, 8);
8821 }
8822
8823 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_or_0_idx(vector bool char __a,vector bool char __b)8824 vec_find_any_ne_or_0_idx(vector bool char __a, vector bool char __b) {
8825 return __builtin_s390_vfaezb((vector unsigned char)__a,
8826 (vector unsigned char)__b, 8);
8827 }
8828
8829 static inline __ATTRS_o_ai vector unsigned char
vec_find_any_ne_or_0_idx(vector unsigned char __a,vector unsigned char __b)8830 vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
8831 return __builtin_s390_vfaezb(__a, __b, 8);
8832 }
8833
8834 static inline __ATTRS_o_ai vector signed short
vec_find_any_ne_or_0_idx(vector signed short __a,vector signed short __b)8835 vec_find_any_ne_or_0_idx(vector signed short __a, vector signed short __b) {
8836 return (vector signed short)
8837 __builtin_s390_vfaezh((vector unsigned short)__a,
8838 (vector unsigned short)__b, 8);
8839 }
8840
8841 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_or_0_idx(vector bool short __a,vector bool short __b)8842 vec_find_any_ne_or_0_idx(vector bool short __a, vector bool short __b) {
8843 return __builtin_s390_vfaezh((vector unsigned short)__a,
8844 (vector unsigned short)__b, 8);
8845 }
8846
8847 static inline __ATTRS_o_ai vector unsigned short
vec_find_any_ne_or_0_idx(vector unsigned short __a,vector unsigned short __b)8848 vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
8849 return __builtin_s390_vfaezh(__a, __b, 8);
8850 }
8851
8852 static inline __ATTRS_o_ai vector signed int
vec_find_any_ne_or_0_idx(vector signed int __a,vector signed int __b)8853 vec_find_any_ne_or_0_idx(vector signed int __a, vector signed int __b) {
8854 return (vector signed int)
8855 __builtin_s390_vfaezf((vector unsigned int)__a,
8856 (vector unsigned int)__b, 8);
8857 }
8858
8859 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_or_0_idx(vector bool int __a,vector bool int __b)8860 vec_find_any_ne_or_0_idx(vector bool int __a, vector bool int __b) {
8861 return __builtin_s390_vfaezf((vector unsigned int)__a,
8862 (vector unsigned int)__b, 8);
8863 }
8864
8865 static inline __ATTRS_o_ai vector unsigned int
vec_find_any_ne_or_0_idx(vector unsigned int __a,vector unsigned int __b)8866 vec_find_any_ne_or_0_idx(vector unsigned int __a, vector unsigned int __b) {
8867 return __builtin_s390_vfaezf(__a, __b, 8);
8868 }
8869
8870 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/
8871
8872 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)8873 vec_find_any_ne_or_0_idx_cc(vector signed char __a, vector signed char __b,
8874 int *__cc) {
8875 return (vector signed char)
8876 __builtin_s390_vfaezbs((vector unsigned char)__a,
8877 (vector unsigned char)__b, 8, __cc);
8878 }
8879
8880 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)8881 vec_find_any_ne_or_0_idx_cc(vector bool char __a, vector bool char __b,
8882 int *__cc) {
8883 return __builtin_s390_vfaezbs((vector unsigned char)__a,
8884 (vector unsigned char)__b, 8, __cc);
8885 }
8886
8887 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)8888 vec_find_any_ne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b,
8889 int *__cc) {
8890 return __builtin_s390_vfaezbs(__a, __b, 8, __cc);
8891 }
8892
8893 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)8894 vec_find_any_ne_or_0_idx_cc(vector signed short __a, vector signed short __b,
8895 int *__cc) {
8896 return (vector signed short)
8897 __builtin_s390_vfaezhs((vector unsigned short)__a,
8898 (vector unsigned short)__b, 8, __cc);
8899 }
8900
8901 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)8902 vec_find_any_ne_or_0_idx_cc(vector bool short __a, vector bool short __b,
8903 int *__cc) {
8904 return __builtin_s390_vfaezhs((vector unsigned short)__a,
8905 (vector unsigned short)__b, 8, __cc);
8906 }
8907
8908 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)8909 vec_find_any_ne_or_0_idx_cc(vector unsigned short __a,
8910 vector unsigned short __b, int *__cc) {
8911 return __builtin_s390_vfaezhs(__a, __b, 8, __cc);
8912 }
8913
8914 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)8915 vec_find_any_ne_or_0_idx_cc(vector signed int __a, vector signed int __b,
8916 int *__cc) {
8917 return (vector signed int)
8918 __builtin_s390_vfaezfs((vector unsigned int)__a,
8919 (vector unsigned int)__b, 8, __cc);
8920 }
8921
8922 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)8923 vec_find_any_ne_or_0_idx_cc(vector bool int __a, vector bool int __b,
8924 int *__cc) {
8925 return __builtin_s390_vfaezfs((vector unsigned int)__a,
8926 (vector unsigned int)__b, 8, __cc);
8927 }
8928
8929 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)8930 vec_find_any_ne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b,
8931 int *__cc) {
8932 return __builtin_s390_vfaezfs(__a, __b, 8, __cc);
8933 }
8934
8935 #undef __constant_pow2_range
8936 #undef __constant_range
8937 #undef __constant
8938 #undef __ATTRS_o
8939 #undef __ATTRS_o_ai
8940 #undef __ATTRS_ai
8941
8942 #else
8943
8944 #error "Use -fzvector to enable vector extensions"
8945
8946 #endif
8947