blob: ca7acb4731f9eb50be9540a2e9e76d10b5fc6738 [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001/*===---- 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
43extern __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
59static inline __ATTRS_o_ai signed char
60vec_extract(vector signed char __vec, int __index) {
61 return __vec[__index & 15];
62}
63
64static inline __ATTRS_o_ai unsigned char
65vec_extract(vector bool char __vec, int __index) {
66 return __vec[__index & 15];
67}
68
69static inline __ATTRS_o_ai unsigned char
70vec_extract(vector unsigned char __vec, int __index) {
71 return __vec[__index & 15];
72}
73
74static inline __ATTRS_o_ai signed short
75vec_extract(vector signed short __vec, int __index) {
76 return __vec[__index & 7];
77}
78
79static inline __ATTRS_o_ai unsigned short
80vec_extract(vector bool short __vec, int __index) {
81 return __vec[__index & 7];
82}
83
84static inline __ATTRS_o_ai unsigned short
85vec_extract(vector unsigned short __vec, int __index) {
86 return __vec[__index & 7];
87}
88
89static inline __ATTRS_o_ai signed int
90vec_extract(vector signed int __vec, int __index) {
91 return __vec[__index & 3];
92}
93
94static inline __ATTRS_o_ai unsigned int
95vec_extract(vector bool int __vec, int __index) {
96 return __vec[__index & 3];
97}
98
99static inline __ATTRS_o_ai unsigned int
100vec_extract(vector unsigned int __vec, int __index) {
101 return __vec[__index & 3];
102}
103
104static inline __ATTRS_o_ai signed long long
105vec_extract(vector signed long long __vec, int __index) {
106 return __vec[__index & 1];
107}
108
109static inline __ATTRS_o_ai unsigned long long
110vec_extract(vector bool long long __vec, int __index) {
111 return __vec[__index & 1];
112}
113
114static inline __ATTRS_o_ai unsigned long long
115vec_extract(vector unsigned long long __vec, int __index) {
116 return __vec[__index & 1];
117}
118
119static inline __ATTRS_o_ai double
120vec_extract(vector double __vec, int __index) {
121 return __vec[__index & 1];
122}
123
124/*-- vec_insert -------------------------------------------------------------*/
125
126static inline __ATTRS_o_ai vector signed char
127vec_insert(signed char __scalar, vector signed char __vec, int __index) {
128 __vec[__index & 15] = __scalar;
129 return __vec;
130}
131
132static inline __ATTRS_o_ai vector unsigned char
133vec_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
139static inline __ATTRS_o_ai vector unsigned char
140vec_insert(unsigned char __scalar, vector unsigned char __vec, int __index) {
141 __vec[__index & 15] = __scalar;
142 return __vec;
143}
144
145static inline __ATTRS_o_ai vector signed short
146vec_insert(signed short __scalar, vector signed short __vec, int __index) {
147 __vec[__index & 7] = __scalar;
148 return __vec;
149}
150
151static inline __ATTRS_o_ai vector unsigned short
152vec_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
158static inline __ATTRS_o_ai vector unsigned short
159vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) {
160 __vec[__index & 7] = __scalar;
161 return __vec;
162}
163
164static inline __ATTRS_o_ai vector signed int
165vec_insert(signed int __scalar, vector signed int __vec, int __index) {
166 __vec[__index & 3] = __scalar;
167 return __vec;
168}
169
170static inline __ATTRS_o_ai vector unsigned int
171vec_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
177static inline __ATTRS_o_ai vector unsigned int
178vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) {
179 __vec[__index & 3] = __scalar;
180 return __vec;
181}
182
183static inline __ATTRS_o_ai vector signed long long
184vec_insert(signed long long __scalar, vector signed long long __vec,
185 int __index) {
186 __vec[__index & 1] = __scalar;
187 return __vec;
188}
189
190static inline __ATTRS_o_ai vector unsigned long long
191vec_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
198static inline __ATTRS_o_ai vector unsigned long long
199vec_insert(unsigned long long __scalar, vector unsigned long long __vec,
200 int __index) {
201 __vec[__index & 1] = __scalar;
202 return __vec;
203}
204
205static inline __ATTRS_o_ai vector double
206vec_insert(double __scalar, vector double __vec, int __index) {
207 __vec[__index & 1] = __scalar;
208 return __vec;
209}
210
211/*-- vec_promote ------------------------------------------------------------*/
212
213static inline __ATTRS_o_ai vector signed char
214vec_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
222static inline __ATTRS_o_ai vector unsigned char
223vec_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
231static inline __ATTRS_o_ai vector signed short
232vec_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
240static inline __ATTRS_o_ai vector unsigned short
241vec_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
249static inline __ATTRS_o_ai vector signed int
250vec_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
258static inline __ATTRS_o_ai vector unsigned int
259vec_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
267static inline __ATTRS_o_ai vector signed long long
268vec_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
276static inline __ATTRS_o_ai vector unsigned long long
277vec_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
285static inline __ATTRS_o_ai vector double
286vec_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
295static inline __ATTRS_o_ai vector signed char
296vec_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
302static inline __ATTRS_o_ai vector unsigned char
303vec_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
309static inline __ATTRS_o_ai vector signed short
310vec_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
316static inline __ATTRS_o_ai vector unsigned short
317vec_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
323static inline __ATTRS_o_ai vector signed int
324vec_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
330static inline __ATTRS_o_ai vector unsigned int
331vec_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
337static inline __ATTRS_o_ai vector signed long long
338vec_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
344static inline __ATTRS_o_ai vector unsigned long long
345vec_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
351static inline __ATTRS_o_ai vector double
352vec_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
360static inline __ATTRS_o_ai vector signed char
361vec_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
367static inline __ATTRS_o_ai vector unsigned char
368vec_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
374static inline __ATTRS_o_ai vector bool char
375vec_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
381static inline __ATTRS_o_ai vector signed short
382vec_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
388static inline __ATTRS_o_ai vector unsigned short
389vec_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
395static inline __ATTRS_o_ai vector bool short
396vec_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
402static inline __ATTRS_o_ai vector signed int
403vec_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
409static inline __ATTRS_o_ai vector unsigned int
410vec_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
416static inline __ATTRS_o_ai vector bool int
417vec_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
423static inline __ATTRS_o_ai vector signed long long
424vec_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
430static inline __ATTRS_o_ai vector unsigned long long
431vec_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
437static inline __ATTRS_o_ai vector bool long long
438vec_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
444static inline __ATTRS_o_ai vector double
445vec_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
453extern __ATTRS_o vector signed long long
454vec_permi(vector signed long long __a, vector signed long long __b, int __c)
455 __constant_range(__c, 0, 3);
456
457extern __ATTRS_o vector unsigned long long
458vec_permi(vector unsigned long long __a, vector unsigned long long __b, int __c)
459 __constant_range(__c, 0, 3);
460
461extern __ATTRS_o vector bool long long
462vec_permi(vector bool long long __a, vector bool long long __b, int __c)
463 __constant_range(__c, 0, 3);
464
465extern __ATTRS_o vector double
466vec_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
476static inline __ATTRS_o_ai vector signed char
477vec_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
482static inline __ATTRS_o_ai vector signed char
483vec_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
487static inline __ATTRS_o_ai vector bool char
488vec_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
492static inline __ATTRS_o_ai vector bool char
493vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) {
494 return (__c & __b) | (~__c & __a);
495}
496
497static inline __ATTRS_o_ai vector unsigned char
498vec_sel(vector unsigned char __a, vector unsigned char __b,
499 vector unsigned char __c) {
500 return (__c & __b) | (~__c & __a);
501}
502
503static inline __ATTRS_o_ai vector unsigned char
504vec_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
509static inline __ATTRS_o_ai vector signed short
510vec_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
515static inline __ATTRS_o_ai vector signed short
516vec_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
521static inline __ATTRS_o_ai vector bool short
522vec_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
527static inline __ATTRS_o_ai vector bool short
528vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) {
529 return (__c & __b) | (~__c & __a);
530}
531
532static inline __ATTRS_o_ai vector unsigned short
533vec_sel(vector unsigned short __a, vector unsigned short __b,
534 vector unsigned short __c) {
535 return (__c & __b) | (~__c & __a);
536}
537
538static inline __ATTRS_o_ai vector unsigned short
539vec_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
545static inline __ATTRS_o_ai vector signed int
546vec_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
551static inline __ATTRS_o_ai vector signed int
552vec_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
556static inline __ATTRS_o_ai vector bool int
557vec_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
561static inline __ATTRS_o_ai vector bool int
562vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) {
563 return (__c & __b) | (~__c & __a);
564}
565
566static inline __ATTRS_o_ai vector unsigned int
567vec_sel(vector unsigned int __a, vector unsigned int __b,
568 vector unsigned int __c) {
569 return (__c & __b) | (~__c & __a);
570}
571
572static inline __ATTRS_o_ai vector unsigned int
573vec_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
577static inline __ATTRS_o_ai vector signed long long
578vec_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
584static inline __ATTRS_o_ai vector signed long long
585vec_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
591static inline __ATTRS_o_ai vector bool long long
592vec_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
598static inline __ATTRS_o_ai vector bool long long
599vec_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
604static inline __ATTRS_o_ai vector unsigned long long
605vec_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
610static inline __ATTRS_o_ai vector unsigned long long
611vec_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
617static inline __ATTRS_o_ai vector double
618vec_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
623static inline __ATTRS_o_ai vector double
624vec_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
633static inline __ATTRS_o_ai vector signed int
634vec_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
642static inline __ATTRS_o_ai vector bool int
643vec_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
651static inline __ATTRS_o_ai vector unsigned int
652vec_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
660static inline __ATTRS_o_ai vector signed long long
661vec_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
670static inline __ATTRS_o_ai vector bool long long
671vec_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
680static inline __ATTRS_o_ai vector unsigned long long
681vec_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
690static inline __ATTRS_o_ai vector double
691vec_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
701static inline __ATTRS_o_ai void
702vec_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
709static inline __ATTRS_o_ai void
710vec_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
717static inline __ATTRS_o_ai void
718vec_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
725static inline __ATTRS_o_ai void
726vec_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
734static inline __ATTRS_o_ai void
735vec_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
743static inline __ATTRS_o_ai void
744vec_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
752static inline __ATTRS_o_ai void
753vec_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
762static inline __ATTRS_o_ai vector signed char
763vec_xld2(long __offset, const signed char *__ptr) {
764 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
765}
766
767static inline __ATTRS_o_ai vector unsigned char
768vec_xld2(long __offset, const unsigned char *__ptr) {
769 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
770}
771
772static inline __ATTRS_o_ai vector signed short
773vec_xld2(long __offset, const signed short *__ptr) {
774 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
775}
776
777static inline __ATTRS_o_ai vector unsigned short
778vec_xld2(long __offset, const unsigned short *__ptr) {
779 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
780}
781
782static inline __ATTRS_o_ai vector signed int
783vec_xld2(long __offset, const signed int *__ptr) {
784 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
785}
786
787static inline __ATTRS_o_ai vector unsigned int
788vec_xld2(long __offset, const unsigned int *__ptr) {
789 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
790}
791
792static inline __ATTRS_o_ai vector signed long long
793vec_xld2(long __offset, const signed long long *__ptr) {
794 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset);
795}
796
797static inline __ATTRS_o_ai vector unsigned long long
798vec_xld2(long __offset, const unsigned long long *__ptr) {
799 return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset);
800}
801
802static inline __ATTRS_o_ai vector double
803vec_xld2(long __offset, const double *__ptr) {
804 return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset);
805}
806
807/*-- vec_xlw4 ---------------------------------------------------------------*/
808
809static inline __ATTRS_o_ai vector signed char
810vec_xlw4(long __offset, const signed char *__ptr) {
811 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset);
812}
813
814static inline __ATTRS_o_ai vector unsigned char
815vec_xlw4(long __offset, const unsigned char *__ptr) {
816 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset);
817}
818
819static inline __ATTRS_o_ai vector signed short
820vec_xlw4(long __offset, const signed short *__ptr) {
821 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset);
822}
823
824static inline __ATTRS_o_ai vector unsigned short
825vec_xlw4(long __offset, const unsigned short *__ptr) {
826 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset);
827}
828
829static inline __ATTRS_o_ai vector signed int
830vec_xlw4(long __offset, const signed int *__ptr) {
831 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset);
832}
833
834static inline __ATTRS_o_ai vector unsigned int
835vec_xlw4(long __offset, const unsigned int *__ptr) {
836 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset);
837}
838
839/*-- vec_xstd2 --------------------------------------------------------------*/
840
841static inline __ATTRS_o_ai void
842vec_xstd2(vector signed char __vec, long __offset, signed char *__ptr) {
843 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
844}
845
846static inline __ATTRS_o_ai void
847vec_xstd2(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
848 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
849}
850
851static inline __ATTRS_o_ai void
852vec_xstd2(vector signed short __vec, long __offset, signed short *__ptr) {
853 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
854}
855
856static inline __ATTRS_o_ai void
857vec_xstd2(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
858 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
859}
860
861static inline __ATTRS_o_ai void
862vec_xstd2(vector signed int __vec, long __offset, signed int *__ptr) {
863 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
864}
865
866static inline __ATTRS_o_ai void
867vec_xstd2(vector unsigned int __vec, long __offset, unsigned int *__ptr) {
868 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
869}
870
871static inline __ATTRS_o_ai void
872vec_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
877static inline __ATTRS_o_ai void
878vec_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
884static inline __ATTRS_o_ai void
885vec_xstd2(vector double __vec, long __offset, double *__ptr) {
886 *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
887}
888
889/*-- vec_xstw4 --------------------------------------------------------------*/
890
891static inline __ATTRS_o_ai void
892vec_xstw4(vector signed char __vec, long __offset, signed char *__ptr) {
893 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
894}
895
896static inline __ATTRS_o_ai void
897vec_xstw4(vector unsigned char __vec, long __offset, unsigned char *__ptr) {
898 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
899}
900
901static inline __ATTRS_o_ai void
902vec_xstw4(vector signed short __vec, long __offset, signed short *__ptr) {
903 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
904}
905
906static inline __ATTRS_o_ai void
907vec_xstw4(vector unsigned short __vec, long __offset, unsigned short *__ptr) {
908 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
909}
910
911static inline __ATTRS_o_ai void
912vec_xstw4(vector signed int __vec, long __offset, signed int *__ptr) {
913 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec;
914}
915
916static inline __ATTRS_o_ai void
917vec_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
923extern __ATTRS_o vector signed char
924vec_load_bndry(const signed char *__ptr, unsigned short __len)
925 __constant_pow2_range(__len, 64, 4096);
926
927extern __ATTRS_o vector unsigned char
928vec_load_bndry(const unsigned char *__ptr, unsigned short __len)
929 __constant_pow2_range(__len, 64, 4096);
930
931extern __ATTRS_o vector signed short
932vec_load_bndry(const signed short *__ptr, unsigned short __len)
933 __constant_pow2_range(__len, 64, 4096);
934
935extern __ATTRS_o vector unsigned short
936vec_load_bndry(const unsigned short *__ptr, unsigned short __len)
937 __constant_pow2_range(__len, 64, 4096);
938
939extern __ATTRS_o vector signed int
940vec_load_bndry(const signed int *__ptr, unsigned short __len)
941 __constant_pow2_range(__len, 64, 4096);
942
943extern __ATTRS_o vector unsigned int
944vec_load_bndry(const unsigned int *__ptr, unsigned short __len)
945 __constant_pow2_range(__len, 64, 4096);
946
947extern __ATTRS_o vector signed long long
948vec_load_bndry(const signed long long *__ptr, unsigned short __len)
949 __constant_pow2_range(__len, 64, 4096);
950
951extern __ATTRS_o vector unsigned long long
952vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)
953 __constant_pow2_range(__len, 64, 4096);
954
955extern __ATTRS_o vector double
956vec_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
970static inline __ATTRS_o_ai vector signed char
971vec_load_len(const signed char *__ptr, unsigned int __len) {
972 return (vector signed char)__builtin_s390_vll(__len, __ptr);
973}
974
975static inline __ATTRS_o_ai vector unsigned char
976vec_load_len(const unsigned char *__ptr, unsigned int __len) {
977 return (vector unsigned char)__builtin_s390_vll(__len, __ptr);
978}
979
980static inline __ATTRS_o_ai vector signed short
981vec_load_len(const signed short *__ptr, unsigned int __len) {
982 return (vector signed short)__builtin_s390_vll(__len, __ptr);
983}
984
985static inline __ATTRS_o_ai vector unsigned short
986vec_load_len(const unsigned short *__ptr, unsigned int __len) {
987 return (vector unsigned short)__builtin_s390_vll(__len, __ptr);
988}
989
990static inline __ATTRS_o_ai vector signed int
991vec_load_len(const signed int *__ptr, unsigned int __len) {
992 return (vector signed int)__builtin_s390_vll(__len, __ptr);
993}
994
995static inline __ATTRS_o_ai vector unsigned int
996vec_load_len(const unsigned int *__ptr, unsigned int __len) {
997 return (vector unsigned int)__builtin_s390_vll(__len, __ptr);
998}
999
1000static inline __ATTRS_o_ai vector signed long long
1001vec_load_len(const signed long long *__ptr, unsigned int __len) {
1002 return (vector signed long long)__builtin_s390_vll(__len, __ptr);
1003}
1004
1005static inline __ATTRS_o_ai vector unsigned long long
1006vec_load_len(const unsigned long long *__ptr, unsigned int __len) {
1007 return (vector unsigned long long)__builtin_s390_vll(__len, __ptr);
1008}
1009
1010static inline __ATTRS_o_ai vector double
1011vec_load_len(const double *__ptr, unsigned int __len) {
1012 return (vector double)__builtin_s390_vll(__len, __ptr);
1013}
1014
1015/*-- vec_store_len ----------------------------------------------------------*/
1016
1017static inline __ATTRS_o_ai void
1018vec_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
1023static inline __ATTRS_o_ai void
1024vec_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
1029static inline __ATTRS_o_ai void
1030vec_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
1035static inline __ATTRS_o_ai void
1036vec_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
1041static inline __ATTRS_o_ai void
1042vec_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
1047static inline __ATTRS_o_ai void
1048vec_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
1053static inline __ATTRS_o_ai void
1054vec_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
1059static inline __ATTRS_o_ai void
1060vec_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
1065static inline __ATTRS_o_ai void
1066vec_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
1073static inline __ATTRS_o_ai vector signed long long
1074vec_load_pair(signed long long __a, signed long long __b) {
1075 return (vector signed long long)(__a, __b);
1076}
1077
1078static inline __ATTRS_o_ai vector unsigned long long
1079vec_load_pair(unsigned long long __a, unsigned long long __b) {
1080 return (vector unsigned long long)(__a, __b);
1081}
1082
1083/*-- vec_genmask ------------------------------------------------------------*/
1084
1085static inline __ATTRS_o_ai vector unsigned char
1086vec_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
1109static inline __ATTRS_o_ai vector unsigned char
1110vec_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
1122static inline __ATTRS_o_ai vector unsigned short
1123vec_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
1135static inline __ATTRS_o_ai vector unsigned int
1136vec_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
1148static inline __ATTRS_o_ai vector unsigned long long
1149vec_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
1163static inline __ATTRS_o_ai vector signed char
1164vec_splat(vector signed char __vec, int __index)
1165 __constant_range(__index, 0, 15) {
1166 return (vector signed char)__vec[__index];
1167}
1168
1169static inline __ATTRS_o_ai vector bool char
1170vec_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
1175static inline __ATTRS_o_ai vector unsigned char
1176vec_splat(vector unsigned char __vec, int __index)
1177 __constant_range(__index, 0, 15) {
1178 return (vector unsigned char)__vec[__index];
1179}
1180
1181static inline __ATTRS_o_ai vector signed short
1182vec_splat(vector signed short __vec, int __index)
1183 __constant_range(__index, 0, 7) {
1184 return (vector signed short)__vec[__index];
1185}
1186
1187static inline __ATTRS_o_ai vector bool short
1188vec_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
1193static inline __ATTRS_o_ai vector unsigned short
1194vec_splat(vector unsigned short __vec, int __index)
1195 __constant_range(__index, 0, 7) {
1196 return (vector unsigned short)__vec[__index];
1197}
1198
1199static inline __ATTRS_o_ai vector signed int
1200vec_splat(vector signed int __vec, int __index)
1201 __constant_range(__index, 0, 3) {
1202 return (vector signed int)__vec[__index];
1203}
1204
1205static inline __ATTRS_o_ai vector bool int
1206vec_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
1211static inline __ATTRS_o_ai vector unsigned int
1212vec_splat(vector unsigned int __vec, int __index)
1213 __constant_range(__index, 0, 3) {
1214 return (vector unsigned int)__vec[__index];
1215}
1216
1217static inline __ATTRS_o_ai vector signed long long
1218vec_splat(vector signed long long __vec, int __index)
1219 __constant_range(__index, 0, 1) {
1220 return (vector signed long long)__vec[__index];
1221}
1222
1223static inline __ATTRS_o_ai vector bool long long
1224vec_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
1229static inline __ATTRS_o_ai vector unsigned long long
1230vec_splat(vector unsigned long long __vec, int __index)
1231 __constant_range(__index, 0, 1) {
1232 return (vector unsigned long long)__vec[__index];
1233}
1234
1235static inline __ATTRS_o_ai vector double
1236vec_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
1243static inline __ATTRS_ai vector signed char
1244vec_splat_s8(signed char __scalar)
1245 __constant(__scalar) {
1246 return (vector signed char)__scalar;
1247}
1248
1249static inline __ATTRS_ai vector signed short
1250vec_splat_s16(signed short __scalar)
1251 __constant(__scalar) {
1252 return (vector signed short)__scalar;
1253}
1254
1255static inline __ATTRS_ai vector signed int
1256vec_splat_s32(signed short __scalar)
1257 __constant(__scalar) {
1258 return (vector signed int)(signed int)__scalar;
1259}
1260
1261static inline __ATTRS_ai vector signed long long
1262vec_splat_s64(signed short __scalar)
1263 __constant(__scalar) {
1264 return (vector signed long long)(signed long)__scalar;
1265}
1266
1267/*-- vec_splat_u* -----------------------------------------------------------*/
1268
1269static inline __ATTRS_ai vector unsigned char
1270vec_splat_u8(unsigned char __scalar)
1271 __constant(__scalar) {
1272 return (vector unsigned char)__scalar;
1273}
1274
1275static inline __ATTRS_ai vector unsigned short
1276vec_splat_u16(unsigned short __scalar)
1277 __constant(__scalar) {
1278 return (vector unsigned short)__scalar;
1279}
1280
1281static inline __ATTRS_ai vector unsigned int
1282vec_splat_u32(signed short __scalar)
1283 __constant(__scalar) {
1284 return (vector unsigned int)(signed int)__scalar;
1285}
1286
1287static inline __ATTRS_ai vector unsigned long long
1288vec_splat_u64(signed short __scalar)
1289 __constant(__scalar) {
1290 return (vector unsigned long long)(signed long long)__scalar;
1291}
1292
1293/*-- vec_splats -------------------------------------------------------------*/
1294
1295static inline __ATTRS_o_ai vector signed char
1296vec_splats(signed char __scalar) {
1297 return (vector signed char)__scalar;
1298}
1299
1300static inline __ATTRS_o_ai vector unsigned char
1301vec_splats(unsigned char __scalar) {
1302 return (vector unsigned char)__scalar;
1303}
1304
1305static inline __ATTRS_o_ai vector signed short
1306vec_splats(signed short __scalar) {
1307 return (vector signed short)__scalar;
1308}
1309
1310static inline __ATTRS_o_ai vector unsigned short
1311vec_splats(unsigned short __scalar) {
1312 return (vector unsigned short)__scalar;
1313}
1314
1315static inline __ATTRS_o_ai vector signed int
1316vec_splats(signed int __scalar) {
1317 return (vector signed int)__scalar;
1318}
1319
1320static inline __ATTRS_o_ai vector unsigned int
1321vec_splats(unsigned int __scalar) {
1322 return (vector unsigned int)__scalar;
1323}
1324
1325static inline __ATTRS_o_ai vector signed long long
1326vec_splats(signed long long __scalar) {
1327 return (vector signed long long)__scalar;
1328}
1329
1330static inline __ATTRS_o_ai vector unsigned long long
1331vec_splats(unsigned long long __scalar) {
1332 return (vector unsigned long long)__scalar;
1333}
1334
1335static inline __ATTRS_o_ai vector double
1336vec_splats(double __scalar) {
1337 return (vector double)__scalar;
1338}
1339
1340/*-- vec_extend_s64 ---------------------------------------------------------*/
1341
1342static inline __ATTRS_o_ai vector signed long long
1343vec_extend_s64(vector signed char __a) {
1344 return (vector signed long long)(__a[7], __a[15]);
1345}
1346
1347static inline __ATTRS_o_ai vector signed long long
1348vec_extend_s64(vector signed short __a) {
1349 return (vector signed long long)(__a[3], __a[7]);
1350}
1351
1352static inline __ATTRS_o_ai vector signed long long
1353vec_extend_s64(vector signed int __a) {
1354 return (vector signed long long)(__a[1], __a[3]);
1355}
1356
1357/*-- vec_mergeh -------------------------------------------------------------*/
1358
1359static inline __ATTRS_o_ai vector signed char
1360vec_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
1366static inline __ATTRS_o_ai vector bool char
1367vec_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
1373static inline __ATTRS_o_ai vector unsigned char
1374vec_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
1380static inline __ATTRS_o_ai vector signed short
1381vec_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
1386static inline __ATTRS_o_ai vector bool short
1387vec_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
1392static inline __ATTRS_o_ai vector unsigned short
1393vec_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
1398static inline __ATTRS_o_ai vector signed int
1399vec_mergeh(vector signed int __a, vector signed int __b) {
1400 return (vector signed int)(__a[0], __b[0], __a[1], __b[1]);
1401}
1402
1403static inline __ATTRS_o_ai vector bool int
1404vec_mergeh(vector bool int __a, vector bool int __b) {
1405 return (vector bool int)(__a[0], __b[0], __a[1], __b[1]);
1406}
1407
1408static inline __ATTRS_o_ai vector unsigned int
1409vec_mergeh(vector unsigned int __a, vector unsigned int __b) {
1410 return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);
1411}
1412
1413static inline __ATTRS_o_ai vector signed long long
1414vec_mergeh(vector signed long long __a, vector signed long long __b) {
1415 return (vector signed long long)(__a[0], __b[0]);
1416}
1417
1418static inline __ATTRS_o_ai vector bool long long
1419vec_mergeh(vector bool long long __a, vector bool long long __b) {
1420 return (vector bool long long)(__a[0], __b[0]);
1421}
1422
1423static inline __ATTRS_o_ai vector unsigned long long
1424vec_mergeh(vector unsigned long long __a, vector unsigned long long __b) {
1425 return (vector unsigned long long)(__a[0], __b[0]);
1426}
1427
1428static inline __ATTRS_o_ai vector double
1429vec_mergeh(vector double __a, vector double __b) {
1430 return (vector double)(__a[0], __b[0]);
1431}
1432
1433/*-- vec_mergel -------------------------------------------------------------*/
1434
1435static inline __ATTRS_o_ai vector signed char
1436vec_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
1442static inline __ATTRS_o_ai vector bool char
1443vec_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
1449static inline __ATTRS_o_ai vector unsigned char
1450vec_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
1456static inline __ATTRS_o_ai vector signed short
1457vec_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
1462static inline __ATTRS_o_ai vector bool short
1463vec_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
1468static inline __ATTRS_o_ai vector unsigned short
1469vec_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
1474static inline __ATTRS_o_ai vector signed int
1475vec_mergel(vector signed int __a, vector signed int __b) {
1476 return (vector signed int)(__a[2], __b[2], __a[3], __b[3]);
1477}
1478
1479static inline __ATTRS_o_ai vector bool int
1480vec_mergel(vector bool int __a, vector bool int __b) {
1481 return (vector bool int)(__a[2], __b[2], __a[3], __b[3]);
1482}
1483
1484static inline __ATTRS_o_ai vector unsigned int
1485vec_mergel(vector unsigned int __a, vector unsigned int __b) {
1486 return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);
1487}
1488
1489static inline __ATTRS_o_ai vector signed long long
1490vec_mergel(vector signed long long __a, vector signed long long __b) {
1491 return (vector signed long long)(__a[1], __b[1]);
1492}
1493
1494static inline __ATTRS_o_ai vector bool long long
1495vec_mergel(vector bool long long __a, vector bool long long __b) {
1496 return (vector bool long long)(__a[1], __b[1]);
1497}
1498
1499static inline __ATTRS_o_ai vector unsigned long long
1500vec_mergel(vector unsigned long long __a, vector unsigned long long __b) {
1501 return (vector unsigned long long)(__a[1], __b[1]);
1502}
1503
1504static inline __ATTRS_o_ai vector double
1505vec_mergel(vector double __a, vector double __b) {
1506 return (vector double)(__a[1], __b[1]);
1507}
1508
1509/*-- vec_pack ---------------------------------------------------------------*/
1510
1511static inline __ATTRS_o_ai vector signed char
1512vec_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
1520static inline __ATTRS_o_ai vector bool char
1521vec_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
1529static inline __ATTRS_o_ai vector unsigned char
1530vec_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
1538static inline __ATTRS_o_ai vector signed short
1539vec_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
1547static inline __ATTRS_o_ai vector bool short
1548vec_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
1556static inline __ATTRS_o_ai vector unsigned short
1557vec_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
1565static inline __ATTRS_o_ai vector signed int
1566vec_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
1572static inline __ATTRS_o_ai vector bool int
1573vec_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
1579static inline __ATTRS_o_ai vector unsigned int
1580vec_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
1588static inline __ATTRS_o_ai vector signed char
1589vec_packs(vector signed short __a, vector signed short __b) {
1590 return __builtin_s390_vpksh(__a, __b);
1591}
1592
1593static inline __ATTRS_o_ai vector unsigned char
1594vec_packs(vector unsigned short __a, vector unsigned short __b) {
1595 return __builtin_s390_vpklsh(__a, __b);
1596}
1597
1598static inline __ATTRS_o_ai vector signed short
1599vec_packs(vector signed int __a, vector signed int __b) {
1600 return __builtin_s390_vpksf(__a, __b);
1601}
1602
1603static inline __ATTRS_o_ai vector unsigned short
1604vec_packs(vector unsigned int __a, vector unsigned int __b) {
1605 return __builtin_s390_vpklsf(__a, __b);
1606}
1607
1608static inline __ATTRS_o_ai vector signed int
1609vec_packs(vector signed long long __a, vector signed long long __b) {
1610 return __builtin_s390_vpksg(__a, __b);
1611}
1612
1613static inline __ATTRS_o_ai vector unsigned int
1614vec_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
1620static inline __ATTRS_o_ai vector signed char
1621vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) {
1622 return __builtin_s390_vpkshs(__a, __b, __cc);
1623}
1624
1625static inline __ATTRS_o_ai vector unsigned char
1626vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
1627 return __builtin_s390_vpklshs(__a, __b, __cc);
1628}
1629
1630static inline __ATTRS_o_ai vector signed short
1631vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) {
1632 return __builtin_s390_vpksfs(__a, __b, __cc);
1633}
1634
1635static inline __ATTRS_o_ai vector unsigned short
1636vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
1637 return __builtin_s390_vpklsfs(__a, __b, __cc);
1638}
1639
1640static inline __ATTRS_o_ai vector signed int
1641vec_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
1646static inline __ATTRS_o_ai vector unsigned int
1647vec_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
1654static inline __ATTRS_o_ai vector unsigned char
1655vec_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
1662static inline __ATTRS_o_ai vector unsigned char
1663vec_packsu(vector unsigned short __a, vector unsigned short __b) {
1664 return __builtin_s390_vpklsh(__a, __b);
1665}
1666
1667static inline __ATTRS_o_ai vector unsigned short
1668vec_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
1675static inline __ATTRS_o_ai vector unsigned short
1676vec_packsu(vector unsigned int __a, vector unsigned int __b) {
1677 return __builtin_s390_vpklsf(__a, __b);
1678}
1679
1680static inline __ATTRS_o_ai vector unsigned int
1681vec_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
1690static inline __ATTRS_o_ai vector unsigned int
1691vec_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
1697static inline __ATTRS_o_ai vector unsigned char
1698vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) {
1699 return __builtin_s390_vpklshs(__a, __b, __cc);
1700}
1701
1702static inline __ATTRS_o_ai vector unsigned short
1703vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) {
1704 return __builtin_s390_vpklsfs(__a, __b, __cc);
1705}
1706
1707static inline __ATTRS_o_ai vector unsigned int
1708vec_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
1715static inline __ATTRS_o_ai vector signed short
1716vec_unpackh(vector signed char __a) {
1717 return __builtin_s390_vuphb(__a);
1718}
1719
1720static inline __ATTRS_o_ai vector bool short
1721vec_unpackh(vector bool char __a) {
1722 return (vector bool short)__builtin_s390_vuphb((vector signed char)__a);
1723}
1724
1725static inline __ATTRS_o_ai vector unsigned short
1726vec_unpackh(vector unsigned char __a) {
1727 return __builtin_s390_vuplhb(__a);
1728}
1729
1730static inline __ATTRS_o_ai vector signed int
1731vec_unpackh(vector signed short __a) {
1732 return __builtin_s390_vuphh(__a);
1733}
1734
1735static inline __ATTRS_o_ai vector bool int
1736vec_unpackh(vector bool short __a) {
1737 return (vector bool int)__builtin_s390_vuphh((vector signed short)__a);
1738}
1739
1740static inline __ATTRS_o_ai vector unsigned int
1741vec_unpackh(vector unsigned short __a) {
1742 return __builtin_s390_vuplhh(__a);
1743}
1744
1745static inline __ATTRS_o_ai vector signed long long
1746vec_unpackh(vector signed int __a) {
1747 return __builtin_s390_vuphf(__a);
1748}
1749
1750static inline __ATTRS_o_ai vector bool long long
1751vec_unpackh(vector bool int __a) {
1752 return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a);
1753}
1754
1755static inline __ATTRS_o_ai vector unsigned long long
1756vec_unpackh(vector unsigned int __a) {
1757 return __builtin_s390_vuplhf(__a);
1758}
1759
1760/*-- vec_unpackl ------------------------------------------------------------*/
1761
1762static inline __ATTRS_o_ai vector signed short
1763vec_unpackl(vector signed char __a) {
1764 return __builtin_s390_vuplb(__a);
1765}
1766
1767static inline __ATTRS_o_ai vector bool short
1768vec_unpackl(vector bool char __a) {
1769 return (vector bool short)__builtin_s390_vuplb((vector signed char)__a);
1770}
1771
1772static inline __ATTRS_o_ai vector unsigned short
1773vec_unpackl(vector unsigned char __a) {
1774 return __builtin_s390_vupllb(__a);
1775}
1776
1777static inline __ATTRS_o_ai vector signed int
1778vec_unpackl(vector signed short __a) {
1779 return __builtin_s390_vuplhw(__a);
1780}
1781
1782static inline __ATTRS_o_ai vector bool int
1783vec_unpackl(vector bool short __a) {
1784 return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a);
1785}
1786
1787static inline __ATTRS_o_ai vector unsigned int
1788vec_unpackl(vector unsigned short __a) {
1789 return __builtin_s390_vupllh(__a);
1790}
1791
1792static inline __ATTRS_o_ai vector signed long long
1793vec_unpackl(vector signed int __a) {
1794 return __builtin_s390_vuplf(__a);
1795}
1796
1797static inline __ATTRS_o_ai vector bool long long
1798vec_unpackl(vector bool int __a) {
1799 return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a);
1800}
1801
1802static inline __ATTRS_o_ai vector unsigned long long
1803vec_unpackl(vector unsigned int __a) {
1804 return __builtin_s390_vupllf(__a);
1805}
1806
1807/*-- vec_cmpeq --------------------------------------------------------------*/
1808
1809static inline __ATTRS_o_ai vector bool char
1810vec_cmpeq(vector bool char __a, vector bool char __b) {
1811 return (vector bool char)(__a == __b);
1812}
1813
1814static inline __ATTRS_o_ai vector bool char
1815vec_cmpeq(vector signed char __a, vector signed char __b) {
1816 return (vector bool char)(__a == __b);
1817}
1818
1819static inline __ATTRS_o_ai vector bool char
1820vec_cmpeq(vector unsigned char __a, vector unsigned char __b) {
1821 return (vector bool char)(__a == __b);
1822}
1823
1824static inline __ATTRS_o_ai vector bool short
1825vec_cmpeq(vector bool short __a, vector bool short __b) {
1826 return (vector bool short)(__a == __b);
1827}
1828
1829static inline __ATTRS_o_ai vector bool short
1830vec_cmpeq(vector signed short __a, vector signed short __b) {
1831 return (vector bool short)(__a == __b);
1832}
1833
1834static inline __ATTRS_o_ai vector bool short
1835vec_cmpeq(vector unsigned short __a, vector unsigned short __b) {
1836 return (vector bool short)(__a == __b);
1837}
1838
1839static inline __ATTRS_o_ai vector bool int
1840vec_cmpeq(vector bool int __a, vector bool int __b) {
1841 return (vector bool int)(__a == __b);
1842}
1843
1844static inline __ATTRS_o_ai vector bool int
1845vec_cmpeq(vector signed int __a, vector signed int __b) {
1846 return (vector bool int)(__a == __b);
1847}
1848
1849static inline __ATTRS_o_ai vector bool int
1850vec_cmpeq(vector unsigned int __a, vector unsigned int __b) {
1851 return (vector bool int)(__a == __b);
1852}
1853
1854static inline __ATTRS_o_ai vector bool long long
1855vec_cmpeq(vector bool long long __a, vector bool long long __b) {
1856 return (vector bool long long)(__a == __b);
1857}
1858
1859static inline __ATTRS_o_ai vector bool long long
1860vec_cmpeq(vector signed long long __a, vector signed long long __b) {
1861 return (vector bool long long)(__a == __b);
1862}
1863
1864static inline __ATTRS_o_ai vector bool long long
1865vec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) {
1866 return (vector bool long long)(__a == __b);
1867}
1868
1869static inline __ATTRS_o_ai vector bool long long
1870vec_cmpeq(vector double __a, vector double __b) {
1871 return (vector bool long long)(__a == __b);
1872}
1873
1874/*-- vec_cmpge --------------------------------------------------------------*/
1875
1876static inline __ATTRS_o_ai vector bool char
1877vec_cmpge(vector signed char __a, vector signed char __b) {
1878 return (vector bool char)(__a >= __b);
1879}
1880
1881static inline __ATTRS_o_ai vector bool char
1882vec_cmpge(vector unsigned char __a, vector unsigned char __b) {
1883 return (vector bool char)(__a >= __b);
1884}
1885
1886static inline __ATTRS_o_ai vector bool short
1887vec_cmpge(vector signed short __a, vector signed short __b) {
1888 return (vector bool short)(__a >= __b);
1889}
1890
1891static inline __ATTRS_o_ai vector bool short
1892vec_cmpge(vector unsigned short __a, vector unsigned short __b) {
1893 return (vector bool short)(__a >= __b);
1894}
1895
1896static inline __ATTRS_o_ai vector bool int
1897vec_cmpge(vector signed int __a, vector signed int __b) {
1898 return (vector bool int)(__a >= __b);
1899}
1900
1901static inline __ATTRS_o_ai vector bool int
1902vec_cmpge(vector unsigned int __a, vector unsigned int __b) {
1903 return (vector bool int)(__a >= __b);
1904}
1905
1906static inline __ATTRS_o_ai vector bool long long
1907vec_cmpge(vector signed long long __a, vector signed long long __b) {
1908 return (vector bool long long)(__a >= __b);
1909}
1910
1911static inline __ATTRS_o_ai vector bool long long
1912vec_cmpge(vector unsigned long long __a, vector unsigned long long __b) {
1913 return (vector bool long long)(__a >= __b);
1914}
1915
1916static inline __ATTRS_o_ai vector bool long long
1917vec_cmpge(vector double __a, vector double __b) {
1918 return (vector bool long long)(__a >= __b);
1919}
1920
1921/*-- vec_cmpgt --------------------------------------------------------------*/
1922
1923static inline __ATTRS_o_ai vector bool char
1924vec_cmpgt(vector signed char __a, vector signed char __b) {
1925 return (vector bool char)(__a > __b);
1926}
1927
1928static inline __ATTRS_o_ai vector bool char
1929vec_cmpgt(vector unsigned char __a, vector unsigned char __b) {
1930 return (vector bool char)(__a > __b);
1931}
1932
1933static inline __ATTRS_o_ai vector bool short
1934vec_cmpgt(vector signed short __a, vector signed short __b) {
1935 return (vector bool short)(__a > __b);
1936}
1937
1938static inline __ATTRS_o_ai vector bool short
1939vec_cmpgt(vector unsigned short __a, vector unsigned short __b) {
1940 return (vector bool short)(__a > __b);
1941}
1942
1943static inline __ATTRS_o_ai vector bool int
1944vec_cmpgt(vector signed int __a, vector signed int __b) {
1945 return (vector bool int)(__a > __b);
1946}
1947
1948static inline __ATTRS_o_ai vector bool int
1949vec_cmpgt(vector unsigned int __a, vector unsigned int __b) {
1950 return (vector bool int)(__a > __b);
1951}
1952
1953static inline __ATTRS_o_ai vector bool long long
1954vec_cmpgt(vector signed long long __a, vector signed long long __b) {
1955 return (vector bool long long)(__a > __b);
1956}
1957
1958static inline __ATTRS_o_ai vector bool long long
1959vec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) {
1960 return (vector bool long long)(__a > __b);
1961}
1962
1963static inline __ATTRS_o_ai vector bool long long
1964vec_cmpgt(vector double __a, vector double __b) {
1965 return (vector bool long long)(__a > __b);
1966}
1967
1968/*-- vec_cmple --------------------------------------------------------------*/
1969
1970static inline __ATTRS_o_ai vector bool char
1971vec_cmple(vector signed char __a, vector signed char __b) {
1972 return (vector bool char)(__a <= __b);
1973}
1974
1975static inline __ATTRS_o_ai vector bool char
1976vec_cmple(vector unsigned char __a, vector unsigned char __b) {
1977 return (vector bool char)(__a <= __b);
1978}
1979
1980static inline __ATTRS_o_ai vector bool short
1981vec_cmple(vector signed short __a, vector signed short __b) {
1982 return (vector bool short)(__a <= __b);
1983}
1984
1985static inline __ATTRS_o_ai vector bool short
1986vec_cmple(vector unsigned short __a, vector unsigned short __b) {
1987 return (vector bool short)(__a <= __b);
1988}
1989
1990static inline __ATTRS_o_ai vector bool int
1991vec_cmple(vector signed int __a, vector signed int __b) {
1992 return (vector bool int)(__a <= __b);
1993}
1994
1995static inline __ATTRS_o_ai vector bool int
1996vec_cmple(vector unsigned int __a, vector unsigned int __b) {
1997 return (vector bool int)(__a <= __b);
1998}
1999
2000static inline __ATTRS_o_ai vector bool long long
2001vec_cmple(vector signed long long __a, vector signed long long __b) {
2002 return (vector bool long long)(__a <= __b);
2003}
2004
2005static inline __ATTRS_o_ai vector bool long long
2006vec_cmple(vector unsigned long long __a, vector unsigned long long __b) {
2007 return (vector bool long long)(__a <= __b);
2008}
2009
2010static inline __ATTRS_o_ai vector bool long long
2011vec_cmple(vector double __a, vector double __b) {
2012 return (vector bool long long)(__a <= __b);
2013}
2014
2015/*-- vec_cmplt --------------------------------------------------------------*/
2016
2017static inline __ATTRS_o_ai vector bool char
2018vec_cmplt(vector signed char __a, vector signed char __b) {
2019 return (vector bool char)(__a < __b);
2020}
2021
2022static inline __ATTRS_o_ai vector bool char
2023vec_cmplt(vector unsigned char __a, vector unsigned char __b) {
2024 return (vector bool char)(__a < __b);
2025}
2026
2027static inline __ATTRS_o_ai vector bool short
2028vec_cmplt(vector signed short __a, vector signed short __b) {
2029 return (vector bool short)(__a < __b);
2030}
2031
2032static inline __ATTRS_o_ai vector bool short
2033vec_cmplt(vector unsigned short __a, vector unsigned short __b) {
2034 return (vector bool short)(__a < __b);
2035}
2036
2037static inline __ATTRS_o_ai vector bool int
2038vec_cmplt(vector signed int __a, vector signed int __b) {
2039 return (vector bool int)(__a < __b);
2040}
2041
2042static inline __ATTRS_o_ai vector bool int
2043vec_cmplt(vector unsigned int __a, vector unsigned int __b) {
2044 return (vector bool int)(__a < __b);
2045}
2046
2047static inline __ATTRS_o_ai vector bool long long
2048vec_cmplt(vector signed long long __a, vector signed long long __b) {
2049 return (vector bool long long)(__a < __b);
2050}
2051
2052static inline __ATTRS_o_ai vector bool long long
2053vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
2054 return (vector bool long long)(__a < __b);
2055}
2056
2057static inline __ATTRS_o_ai vector bool long long
2058vec_cmplt(vector double __a, vector double __b) {
2059 return (vector bool long long)(__a < __b);
2060}
2061
2062/*-- vec_all_eq -------------------------------------------------------------*/
2063
2064static inline __ATTRS_o_ai int
2065vec_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
2071static inline __ATTRS_o_ai int
2072vec_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
2078static inline __ATTRS_o_ai int
2079vec_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
2085static inline __ATTRS_o_ai int
2086vec_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
2093static inline __ATTRS_o_ai int
2094vec_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
2101static inline __ATTRS_o_ai int
2102vec_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
2109static inline __ATTRS_o_ai int
2110vec_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
2117static inline __ATTRS_o_ai int
2118vec_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
2124static inline __ATTRS_o_ai int
2125vec_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
2131static inline __ATTRS_o_ai int
2132vec_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
2138static inline __ATTRS_o_ai int
2139vec_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
2146static inline __ATTRS_o_ai int
2147vec_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
2154static inline __ATTRS_o_ai int
2155vec_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
2162static inline __ATTRS_o_ai int
2163vec_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
2170static inline __ATTRS_o_ai int
2171vec_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
2177static inline __ATTRS_o_ai int
2178vec_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
2184static inline __ATTRS_o_ai int
2185vec_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
2191static inline __ATTRS_o_ai int
2192vec_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
2199static inline __ATTRS_o_ai int
2200vec_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
2207static inline __ATTRS_o_ai int
2208vec_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
2215static inline __ATTRS_o_ai int
2216vec_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
2223static inline __ATTRS_o_ai int
2224vec_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
2230static inline __ATTRS_o_ai int
2231vec_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
2237static inline __ATTRS_o_ai int
2238vec_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
2244static inline __ATTRS_o_ai int
2245vec_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
2252static inline __ATTRS_o_ai int
2253vec_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
2260static inline __ATTRS_o_ai int
2261vec_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
2268static inline __ATTRS_o_ai int
2269vec_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
2276static inline __ATTRS_o_ai int
2277vec_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
2285static inline __ATTRS_o_ai int
2286vec_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
2292static inline __ATTRS_o_ai int
2293vec_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
2299static inline __ATTRS_o_ai int
2300vec_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
2306static inline __ATTRS_o_ai int
2307vec_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
2314static inline __ATTRS_o_ai int
2315vec_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
2322static inline __ATTRS_o_ai int
2323vec_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
2330static inline __ATTRS_o_ai int
2331vec_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
2338static inline __ATTRS_o_ai int
2339vec_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
2345static inline __ATTRS_o_ai int
2346vec_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
2352static inline __ATTRS_o_ai int
2353vec_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
2359static inline __ATTRS_o_ai int
2360vec_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
2367static inline __ATTRS_o_ai int
2368vec_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
2375static inline __ATTRS_o_ai int
2376vec_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
2383static inline __ATTRS_o_ai int
2384vec_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
2391static inline __ATTRS_o_ai int
2392vec_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
2398static inline __ATTRS_o_ai int
2399vec_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
2405static inline __ATTRS_o_ai int
2406vec_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
2412static inline __ATTRS_o_ai int
2413vec_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
2420static inline __ATTRS_o_ai int
2421vec_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
2428static inline __ATTRS_o_ai int
2429vec_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
2436static inline __ATTRS_o_ai int
2437vec_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
2444static inline __ATTRS_o_ai int
2445vec_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
2451static inline __ATTRS_o_ai int
2452vec_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
2458static inline __ATTRS_o_ai int
2459vec_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
2465static inline __ATTRS_o_ai int
2466vec_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
2473static inline __ATTRS_o_ai int
2474vec_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
2481static inline __ATTRS_o_ai int
2482vec_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
2489static inline __ATTRS_o_ai int
2490vec_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
2497static inline __ATTRS_o_ai int
2498vec_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
2506static inline __ATTRS_o_ai int
2507vec_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
2513static inline __ATTRS_o_ai int
2514vec_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
2520static inline __ATTRS_o_ai int
2521vec_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
2527static inline __ATTRS_o_ai int
2528vec_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
2534static inline __ATTRS_o_ai int
2535vec_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
2541static inline __ATTRS_o_ai int
2542vec_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
2548static inline __ATTRS_o_ai int
2549vec_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
2556static inline __ATTRS_o_ai int
2557vec_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
2563static inline __ATTRS_o_ai int
2564vec_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
2570static inline __ATTRS_o_ai int
2571vec_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
2577static inline __ATTRS_o_ai int
2578vec_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
2584static inline __ATTRS_o_ai int
2585vec_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
2591static inline __ATTRS_o_ai int
2592vec_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
2598static inline __ATTRS_o_ai int
2599vec_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
2606static inline __ATTRS_o_ai int
2607vec_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
2613static inline __ATTRS_o_ai int
2614vec_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
2620static inline __ATTRS_o_ai int
2621vec_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
2627static inline __ATTRS_o_ai int
2628vec_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
2634static inline __ATTRS_o_ai int
2635vec_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
2641static inline __ATTRS_o_ai int
2642vec_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
2648static inline __ATTRS_o_ai int
2649vec_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
2656static inline __ATTRS_o_ai int
2657vec_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
2663static inline __ATTRS_o_ai int
2664vec_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
2670static inline __ATTRS_o_ai int
2671vec_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
2677static inline __ATTRS_o_ai int
2678vec_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
2684static inline __ATTRS_o_ai int
2685vec_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
2691static inline __ATTRS_o_ai int
2692vec_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
2698static inline __ATTRS_o_ai int
2699vec_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
2706static inline __ATTRS_o_ai int
2707vec_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
2715static inline __ATTRS_o_ai int
2716vec_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
2722static inline __ATTRS_o_ai int
2723vec_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
2729static inline __ATTRS_o_ai int
2730vec_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
2736static inline __ATTRS_o_ai int
2737vec_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
2743static inline __ATTRS_o_ai int
2744vec_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
2750static inline __ATTRS_o_ai int
2751vec_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
2757static inline __ATTRS_o_ai int
2758vec_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
2765static inline __ATTRS_o_ai int
2766vec_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
2772static inline __ATTRS_o_ai int
2773vec_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
2779static inline __ATTRS_o_ai int
2780vec_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
2786static inline __ATTRS_o_ai int
2787vec_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
2793static inline __ATTRS_o_ai int
2794vec_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
2800static inline __ATTRS_o_ai int
2801vec_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
2807static inline __ATTRS_o_ai int
2808vec_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
2815static inline __ATTRS_o_ai int
2816vec_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
2822static inline __ATTRS_o_ai int
2823vec_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
2829static inline __ATTRS_o_ai int
2830vec_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
2836static inline __ATTRS_o_ai int
2837vec_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
2843static inline __ATTRS_o_ai int
2844vec_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
2850static inline __ATTRS_o_ai int
2851vec_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
2857static inline __ATTRS_o_ai int
2858vec_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
2865static inline __ATTRS_o_ai int
2866vec_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
2872static inline __ATTRS_o_ai int
2873vec_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
2879static inline __ATTRS_o_ai int
2880vec_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
2886static inline __ATTRS_o_ai int
2887vec_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
2893static inline __ATTRS_o_ai int
2894vec_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
2900static inline __ATTRS_o_ai int
2901vec_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
2907static inline __ATTRS_o_ai int
2908vec_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
2915static inline __ATTRS_o_ai int
2916vec_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
2924static inline __ATTRS_o_ai int
2925vec_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
2931static inline __ATTRS_o_ai int
2932vec_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
2938static inline __ATTRS_o_ai int
2939vec_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
2945static inline __ATTRS_o_ai int
2946vec_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
2952static inline __ATTRS_o_ai int
2953vec_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
2959static inline __ATTRS_o_ai int
2960vec_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
2966static inline __ATTRS_o_ai int
2967vec_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
2974static inline __ATTRS_o_ai int
2975vec_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
2981static inline __ATTRS_o_ai int
2982vec_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
2988static inline __ATTRS_o_ai int
2989vec_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
2995static inline __ATTRS_o_ai int
2996vec_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
3002static inline __ATTRS_o_ai int
3003vec_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
3009static inline __ATTRS_o_ai int
3010vec_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
3016static inline __ATTRS_o_ai int
3017vec_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
3024static inline __ATTRS_o_ai int
3025vec_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
3031static inline __ATTRS_o_ai int
3032vec_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
3038static inline __ATTRS_o_ai int
3039vec_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
3045static inline __ATTRS_o_ai int
3046vec_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
3052static inline __ATTRS_o_ai int
3053vec_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
3059static inline __ATTRS_o_ai int
3060vec_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
3066static inline __ATTRS_o_ai int
3067vec_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
3074static inline __ATTRS_o_ai int
3075vec_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
3081static inline __ATTRS_o_ai int
3082vec_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
3088static inline __ATTRS_o_ai int
3089vec_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
3095static inline __ATTRS_o_ai int
3096vec_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
3102static inline __ATTRS_o_ai int
3103vec_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
3109static inline __ATTRS_o_ai int
3110vec_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
3116static inline __ATTRS_o_ai int
3117vec_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
3124static inline __ATTRS_o_ai int
3125vec_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
3133static inline __ATTRS_o_ai int
3134vec_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
3140static inline __ATTRS_o_ai int
3141vec_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
3147static inline __ATTRS_o_ai int
3148vec_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
3154static inline __ATTRS_o_ai int
3155vec_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
3161static inline __ATTRS_o_ai int
3162vec_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
3168static inline __ATTRS_o_ai int
3169vec_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
3175static inline __ATTRS_o_ai int
3176vec_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
3183static inline __ATTRS_o_ai int
3184vec_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
3190static inline __ATTRS_o_ai int
3191vec_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
3197static inline __ATTRS_o_ai int
3198vec_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
3204static inline __ATTRS_o_ai int
3205vec_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
3211static inline __ATTRS_o_ai int
3212vec_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
3218static inline __ATTRS_o_ai int
3219vec_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
3225static inline __ATTRS_o_ai int
3226vec_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
3233static inline __ATTRS_o_ai int
3234vec_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
3240static inline __ATTRS_o_ai int
3241vec_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
3247static inline __ATTRS_o_ai int
3248vec_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
3254static inline __ATTRS_o_ai int
3255vec_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
3261static inline __ATTRS_o_ai int
3262vec_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
3268static inline __ATTRS_o_ai int
3269vec_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
3275static inline __ATTRS_o_ai int
3276vec_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
3283static inline __ATTRS_o_ai int
3284vec_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
3290static inline __ATTRS_o_ai int
3291vec_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
3297static inline __ATTRS_o_ai int
3298vec_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
3304static inline __ATTRS_o_ai int
3305vec_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
3311static inline __ATTRS_o_ai int
3312vec_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
3318static inline __ATTRS_o_ai int
3319vec_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
3325static inline __ATTRS_o_ai int
3326vec_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
3333static inline __ATTRS_o_ai int
3334vec_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
3342static inline __ATTRS_ai int
3343vec_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
3351static inline __ATTRS_ai int
3352vec_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
3360static inline __ATTRS_ai int
3361vec_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
3369static inline __ATTRS_ai int
3370vec_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
3378static inline __ATTRS_ai int
3379vec_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
3387static inline __ATTRS_ai int
3388vec_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
3396static inline __ATTRS_o_ai int
3397vec_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
3403static inline __ATTRS_o_ai int
3404vec_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
3410static inline __ATTRS_o_ai int
3411vec_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
3417static inline __ATTRS_o_ai int
3418vec_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
3425static inline __ATTRS_o_ai int
3426vec_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
3433static inline __ATTRS_o_ai int
3434vec_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
3441static inline __ATTRS_o_ai int
3442vec_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
3449static inline __ATTRS_o_ai int
3450vec_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
3456static inline __ATTRS_o_ai int
3457vec_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
3463static inline __ATTRS_o_ai int
3464vec_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
3470static inline __ATTRS_o_ai int
3471vec_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
3478static inline __ATTRS_o_ai int
3479vec_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
3486static inline __ATTRS_o_ai int
3487vec_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
3494static inline __ATTRS_o_ai int
3495vec_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
3502static inline __ATTRS_o_ai int
3503vec_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
3509static inline __ATTRS_o_ai int
3510vec_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
3516static inline __ATTRS_o_ai int
3517vec_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
3523static inline __ATTRS_o_ai int
3524vec_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
3531static inline __ATTRS_o_ai int
3532vec_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
3539static inline __ATTRS_o_ai int
3540vec_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
3547static inline __ATTRS_o_ai int
3548vec_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
3555static inline __ATTRS_o_ai int
3556vec_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
3562static inline __ATTRS_o_ai int
3563vec_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
3569static inline __ATTRS_o_ai int
3570vec_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
3576static inline __ATTRS_o_ai int
3577vec_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
3584static inline __ATTRS_o_ai int
3585vec_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
3592static inline __ATTRS_o_ai int
3593vec_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
3600static inline __ATTRS_o_ai int
3601vec_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
3608static inline __ATTRS_o_ai int
3609vec_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
3617static inline __ATTRS_o_ai int
3618vec_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
3624static inline __ATTRS_o_ai int
3625vec_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
3631static inline __ATTRS_o_ai int
3632vec_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
3638static inline __ATTRS_o_ai int
3639vec_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
3646static inline __ATTRS_o_ai int
3647vec_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
3654static inline __ATTRS_o_ai int
3655vec_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
3662static inline __ATTRS_o_ai int
3663vec_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
3670static inline __ATTRS_o_ai int
3671vec_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
3677static inline __ATTRS_o_ai int
3678vec_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
3684static inline __ATTRS_o_ai int
3685vec_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
3691static inline __ATTRS_o_ai int
3692vec_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
3699static inline __ATTRS_o_ai int
3700vec_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
3707static inline __ATTRS_o_ai int
3708vec_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
3715static inline __ATTRS_o_ai int
3716vec_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
3723static inline __ATTRS_o_ai int
3724vec_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
3730static inline __ATTRS_o_ai int
3731vec_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
3737static inline __ATTRS_o_ai int
3738vec_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
3744static inline __ATTRS_o_ai int
3745vec_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
3752static inline __ATTRS_o_ai int
3753vec_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
3760static inline __ATTRS_o_ai int
3761vec_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
3768static inline __ATTRS_o_ai int
3769vec_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
3776static inline __ATTRS_o_ai int
3777vec_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
3783static inline __ATTRS_o_ai int
3784vec_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
3790static inline __ATTRS_o_ai int
3791vec_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
3797static inline __ATTRS_o_ai int
3798vec_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
3805static inline __ATTRS_o_ai int
3806vec_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
3813static inline __ATTRS_o_ai int
3814vec_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
3821static inline __ATTRS_o_ai int
3822vec_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
3829static inline __ATTRS_o_ai int
3830vec_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
3838static inline __ATTRS_o_ai int
3839vec_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
3845static inline __ATTRS_o_ai int
3846vec_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
3852static inline __ATTRS_o_ai int
3853vec_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
3859static inline __ATTRS_o_ai int
3860vec_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
3866static inline __ATTRS_o_ai int
3867vec_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
3873static inline __ATTRS_o_ai int
3874vec_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
3880static inline __ATTRS_o_ai int
3881vec_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
3888static inline __ATTRS_o_ai int
3889vec_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
3895static inline __ATTRS_o_ai int
3896vec_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
3902static inline __ATTRS_o_ai int
3903vec_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
3909static inline __ATTRS_o_ai int
3910vec_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
3916static inline __ATTRS_o_ai int
3917vec_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
3923static inline __ATTRS_o_ai int
3924vec_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
3930static inline __ATTRS_o_ai int
3931vec_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
3938static inline __ATTRS_o_ai int
3939vec_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
3945static inline __ATTRS_o_ai int
3946vec_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
3952static inline __ATTRS_o_ai int
3953vec_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
3959static inline __ATTRS_o_ai int
3960vec_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
3966static inline __ATTRS_o_ai int
3967vec_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
3973static inline __ATTRS_o_ai int
3974vec_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
3980static inline __ATTRS_o_ai int
3981vec_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
3988static inline __ATTRS_o_ai int
3989vec_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
3995static inline __ATTRS_o_ai int
3996vec_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
4002static inline __ATTRS_o_ai int
4003vec_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
4009static inline __ATTRS_o_ai int
4010vec_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
4016static inline __ATTRS_o_ai int
4017vec_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
4023static inline __ATTRS_o_ai int
4024vec_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
4030static inline __ATTRS_o_ai int
4031vec_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
4038static inline __ATTRS_o_ai int
4039vec_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
4047static inline __ATTRS_o_ai int
4048vec_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
4054static inline __ATTRS_o_ai int
4055vec_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
4061static inline __ATTRS_o_ai int
4062vec_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
4068static inline __ATTRS_o_ai int
4069vec_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
4075static inline __ATTRS_o_ai int
4076vec_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
4082static inline __ATTRS_o_ai int
4083vec_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
4089static inline __ATTRS_o_ai int
4090vec_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
4097static inline __ATTRS_o_ai int
4098vec_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
4104static inline __ATTRS_o_ai int
4105vec_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
4111static inline __ATTRS_o_ai int
4112vec_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
4118static inline __ATTRS_o_ai int
4119vec_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
4125static inline __ATTRS_o_ai int
4126vec_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
4132static inline __ATTRS_o_ai int
4133vec_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
4139static inline __ATTRS_o_ai int
4140vec_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
4147static inline __ATTRS_o_ai int
4148vec_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
4154static inline __ATTRS_o_ai int
4155vec_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
4161static inline __ATTRS_o_ai int
4162vec_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
4168static inline __ATTRS_o_ai int
4169vec_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
4175static inline __ATTRS_o_ai int
4176vec_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
4182static inline __ATTRS_o_ai int
4183vec_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
4189static inline __ATTRS_o_ai int
4190vec_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
4197static inline __ATTRS_o_ai int
4198vec_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
4204static inline __ATTRS_o_ai int
4205vec_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
4211static inline __ATTRS_o_ai int
4212vec_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
4218static inline __ATTRS_o_ai int
4219vec_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
4225static inline __ATTRS_o_ai int
4226vec_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
4232static inline __ATTRS_o_ai int
4233vec_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
4239static inline __ATTRS_o_ai int
4240vec_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
4247static inline __ATTRS_o_ai int
4248vec_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
4256static inline __ATTRS_o_ai int
4257vec_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
4263static inline __ATTRS_o_ai int
4264vec_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
4270static inline __ATTRS_o_ai int
4271vec_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
4277static inline __ATTRS_o_ai int
4278vec_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
4284static inline __ATTRS_o_ai int
4285vec_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
4291static inline __ATTRS_o_ai int
4292vec_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
4298static inline __ATTRS_o_ai int
4299vec_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
4306static inline __ATTRS_o_ai int
4307vec_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
4313static inline __ATTRS_o_ai int
4314vec_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
4320static inline __ATTRS_o_ai int
4321vec_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
4327static inline __ATTRS_o_ai int
4328vec_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
4334static inline __ATTRS_o_ai int
4335vec_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
4341static inline __ATTRS_o_ai int
4342vec_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
4348static inline __ATTRS_o_ai int
4349vec_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
4356static inline __ATTRS_o_ai int
4357vec_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
4363static inline __ATTRS_o_ai int
4364vec_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
4370static inline __ATTRS_o_ai int
4371vec_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
4377static inline __ATTRS_o_ai int
4378vec_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
4384static inline __ATTRS_o_ai int
4385vec_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
4391static inline __ATTRS_o_ai int
4392vec_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
4398static inline __ATTRS_o_ai int
4399vec_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
4406static inline __ATTRS_o_ai int
4407vec_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
4413static inline __ATTRS_o_ai int
4414vec_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
4420static inline __ATTRS_o_ai int
4421vec_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
4427static inline __ATTRS_o_ai int
4428vec_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
4434static inline __ATTRS_o_ai int
4435vec_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
4441static inline __ATTRS_o_ai int
4442vec_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
4448static inline __ATTRS_o_ai int
4449vec_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
4456static inline __ATTRS_o_ai int
4457vec_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
4465static inline __ATTRS_o_ai int
4466vec_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
4472static inline __ATTRS_o_ai int
4473vec_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
4479static inline __ATTRS_o_ai int
4480vec_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
4486static inline __ATTRS_o_ai int
4487vec_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
4493static inline __ATTRS_o_ai int
4494vec_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
4500static inline __ATTRS_o_ai int
4501vec_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
4507static inline __ATTRS_o_ai int
4508vec_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
4515static inline __ATTRS_o_ai int
4516vec_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
4522static inline __ATTRS_o_ai int
4523vec_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
4529static inline __ATTRS_o_ai int
4530vec_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
4536static inline __ATTRS_o_ai int
4537vec_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
4543static inline __ATTRS_o_ai int
4544vec_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
4550static inline __ATTRS_o_ai int
4551vec_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
4557static inline __ATTRS_o_ai int
4558vec_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
4565static inline __ATTRS_o_ai int
4566vec_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
4572static inline __ATTRS_o_ai int
4573vec_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
4579static inline __ATTRS_o_ai int
4580vec_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
4586static inline __ATTRS_o_ai int
4587vec_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
4593static inline __ATTRS_o_ai int
4594vec_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
4600static inline __ATTRS_o_ai int
4601vec_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
4607static inline __ATTRS_o_ai int
4608vec_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
4615static inline __ATTRS_o_ai int
4616vec_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
4622static inline __ATTRS_o_ai int
4623vec_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
4629static inline __ATTRS_o_ai int
4630vec_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
4636static inline __ATTRS_o_ai int
4637vec_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
4643static inline __ATTRS_o_ai int
4644vec_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
4650static inline __ATTRS_o_ai int
4651vec_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
4657static inline __ATTRS_o_ai int
4658vec_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
4665static inline __ATTRS_o_ai int
4666vec_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
4674static inline __ATTRS_ai int
4675vec_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
4683static inline __ATTRS_ai int
4684vec_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
4692static inline __ATTRS_ai int
4693vec_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
4701static inline __ATTRS_ai int
4702vec_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
4710static inline __ATTRS_ai int
4711vec_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
4719static inline __ATTRS_ai int
4720vec_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
4728static inline __ATTRS_o_ai vector bool char
4729vec_andc(vector bool char __a, vector bool char __b) {
4730 return __a & ~__b;
4731}
4732
4733static inline __ATTRS_o_ai vector signed char
4734vec_andc(vector signed char __a, vector signed char __b) {
4735 return __a & ~__b;
4736}
4737
4738static inline __ATTRS_o_ai vector signed char
4739vec_andc(vector bool char __a, vector signed char __b) {
4740 return __a & ~__b;
4741}
4742
4743static inline __ATTRS_o_ai vector signed char
4744vec_andc(vector signed char __a, vector bool char __b) {
4745 return __a & ~__b;
4746}
4747
4748static inline __ATTRS_o_ai vector unsigned char
4749vec_andc(vector unsigned char __a, vector unsigned char __b) {
4750 return __a & ~__b;
4751}
4752
4753static inline __ATTRS_o_ai vector unsigned char
4754vec_andc(vector bool char __a, vector unsigned char __b) {
4755 return __a & ~__b;
4756}
4757
4758static inline __ATTRS_o_ai vector unsigned char
4759vec_andc(vector unsigned char __a, vector bool char __b) {
4760 return __a & ~__b;
4761}
4762
4763static inline __ATTRS_o_ai vector bool short
4764vec_andc(vector bool short __a, vector bool short __b) {
4765 return __a & ~__b;
4766}
4767
4768static inline __ATTRS_o_ai vector signed short
4769vec_andc(vector signed short __a, vector signed short __b) {
4770 return __a & ~__b;
4771}
4772
4773static inline __ATTRS_o_ai vector signed short
4774vec_andc(vector bool short __a, vector signed short __b) {
4775 return __a & ~__b;
4776}
4777
4778static inline __ATTRS_o_ai vector signed short
4779vec_andc(vector signed short __a, vector bool short __b) {
4780 return __a & ~__b;
4781}
4782
4783static inline __ATTRS_o_ai vector unsigned short
4784vec_andc(vector unsigned short __a, vector unsigned short __b) {
4785 return __a & ~__b;
4786}
4787
4788static inline __ATTRS_o_ai vector unsigned short
4789vec_andc(vector bool short __a, vector unsigned short __b) {
4790 return __a & ~__b;
4791}
4792
4793static inline __ATTRS_o_ai vector unsigned short
4794vec_andc(vector unsigned short __a, vector bool short __b) {
4795 return __a & ~__b;
4796}
4797
4798static inline __ATTRS_o_ai vector bool int
4799vec_andc(vector bool int __a, vector bool int __b) {
4800 return __a & ~__b;
4801}
4802
4803static inline __ATTRS_o_ai vector signed int
4804vec_andc(vector signed int __a, vector signed int __b) {
4805 return __a & ~__b;
4806}
4807
4808static inline __ATTRS_o_ai vector signed int
4809vec_andc(vector bool int __a, vector signed int __b) {
4810 return __a & ~__b;
4811}
4812
4813static inline __ATTRS_o_ai vector signed int
4814vec_andc(vector signed int __a, vector bool int __b) {
4815 return __a & ~__b;
4816}
4817
4818static inline __ATTRS_o_ai vector unsigned int
4819vec_andc(vector unsigned int __a, vector unsigned int __b) {
4820 return __a & ~__b;
4821}
4822
4823static inline __ATTRS_o_ai vector unsigned int
4824vec_andc(vector bool int __a, vector unsigned int __b) {
4825 return __a & ~__b;
4826}
4827
4828static inline __ATTRS_o_ai vector unsigned int
4829vec_andc(vector unsigned int __a, vector bool int __b) {
4830 return __a & ~__b;
4831}
4832
4833static inline __ATTRS_o_ai vector bool long long
4834vec_andc(vector bool long long __a, vector bool long long __b) {
4835 return __a & ~__b;
4836}
4837
4838static inline __ATTRS_o_ai vector signed long long
4839vec_andc(vector signed long long __a, vector signed long long __b) {
4840 return __a & ~__b;
4841}
4842
4843static inline __ATTRS_o_ai vector signed long long
4844vec_andc(vector bool long long __a, vector signed long long __b) {
4845 return __a & ~__b;
4846}
4847
4848static inline __ATTRS_o_ai vector signed long long
4849vec_andc(vector signed long long __a, vector bool long long __b) {
4850 return __a & ~__b;
4851}
4852
4853static inline __ATTRS_o_ai vector unsigned long long
4854vec_andc(vector unsigned long long __a, vector unsigned long long __b) {
4855 return __a & ~__b;
4856}
4857
4858static inline __ATTRS_o_ai vector unsigned long long
4859vec_andc(vector bool long long __a, vector unsigned long long __b) {
4860 return __a & ~__b;
4861}
4862
4863static inline __ATTRS_o_ai vector unsigned long long
4864vec_andc(vector unsigned long long __a, vector bool long long __b) {
4865 return __a & ~__b;
4866}
4867
4868static inline __ATTRS_o_ai vector double
4869vec_andc(vector double __a, vector double __b) {
4870 return (vector double)((vector unsigned long long)__a &
4871 ~(vector unsigned long long)__b);
4872}
4873
4874static inline __ATTRS_o_ai vector double
4875vec_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
4880static inline __ATTRS_o_ai vector double
4881vec_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
4888static inline __ATTRS_o_ai vector bool char
4889vec_nor(vector bool char __a, vector bool char __b) {
4890 return ~(__a | __b);
4891}
4892
4893static inline __ATTRS_o_ai vector signed char
4894vec_nor(vector signed char __a, vector signed char __b) {
4895 return ~(__a | __b);
4896}
4897
4898static inline __ATTRS_o_ai vector signed char
4899vec_nor(vector bool char __a, vector signed char __b) {
4900 return ~(__a | __b);
4901}
4902
4903static inline __ATTRS_o_ai vector signed char
4904vec_nor(vector signed char __a, vector bool char __b) {
4905 return ~(__a | __b);
4906}
4907
4908static inline __ATTRS_o_ai vector unsigned char
4909vec_nor(vector unsigned char __a, vector unsigned char __b) {
4910 return ~(__a | __b);
4911}
4912
4913static inline __ATTRS_o_ai vector unsigned char
4914vec_nor(vector bool char __a, vector unsigned char __b) {
4915 return ~(__a | __b);
4916}
4917
4918static inline __ATTRS_o_ai vector unsigned char
4919vec_nor(vector unsigned char __a, vector bool char __b) {
4920 return ~(__a | __b);
4921}
4922
4923static inline __ATTRS_o_ai vector bool short
4924vec_nor(vector bool short __a, vector bool short __b) {
4925 return ~(__a | __b);
4926}
4927
4928static inline __ATTRS_o_ai vector signed short
4929vec_nor(vector signed short __a, vector signed short __b) {
4930 return ~(__a | __b);
4931}
4932
4933static inline __ATTRS_o_ai vector signed short
4934vec_nor(vector bool short __a, vector signed short __b) {
4935 return ~(__a | __b);
4936}
4937
4938static inline __ATTRS_o_ai vector signed short
4939vec_nor(vector signed short __a, vector bool short __b) {
4940 return ~(__a | __b);
4941}
4942
4943static inline __ATTRS_o_ai vector unsigned short
4944vec_nor(vector unsigned short __a, vector unsigned short __b) {
4945 return ~(__a | __b);
4946}
4947
4948static inline __ATTRS_o_ai vector unsigned short
4949vec_nor(vector bool short __a, vector unsigned short __b) {
4950 return ~(__a | __b);
4951}
4952
4953static inline __ATTRS_o_ai vector unsigned short
4954vec_nor(vector unsigned short __a, vector bool short __b) {
4955 return ~(__a | __b);
4956}
4957
4958static inline __ATTRS_o_ai vector bool int
4959vec_nor(vector bool int __a, vector bool int __b) {
4960 return ~(__a | __b);
4961}
4962
4963static inline __ATTRS_o_ai vector signed int
4964vec_nor(vector signed int __a, vector signed int __b) {
4965 return ~(__a | __b);
4966}
4967
4968static inline __ATTRS_o_ai vector signed int
4969vec_nor(vector bool int __a, vector signed int __b) {
4970 return ~(__a | __b);
4971}
4972
4973static inline __ATTRS_o_ai vector signed int
4974vec_nor(vector signed int __a, vector bool int __b) {
4975 return ~(__a | __b);
4976}
4977
4978static inline __ATTRS_o_ai vector unsigned int
4979vec_nor(vector unsigned int __a, vector unsigned int __b) {
4980 return ~(__a | __b);
4981}
4982
4983static inline __ATTRS_o_ai vector unsigned int
4984vec_nor(vector bool int __a, vector unsigned int __b) {
4985 return ~(__a | __b);
4986}
4987
4988static inline __ATTRS_o_ai vector unsigned int
4989vec_nor(vector unsigned int __a, vector bool int __b) {
4990 return ~(__a | __b);
4991}
4992
4993static inline __ATTRS_o_ai vector bool long long
4994vec_nor(vector bool long long __a, vector bool long long __b) {
4995 return ~(__a | __b);
4996}
4997
4998static inline __ATTRS_o_ai vector signed long long
4999vec_nor(vector signed long long __a, vector signed long long __b) {
5000 return ~(__a | __b);
5001}
5002
5003static inline __ATTRS_o_ai vector signed long long
5004vec_nor(vector bool long long __a, vector signed long long __b) {
5005 return ~(__a | __b);
5006}
5007
5008static inline __ATTRS_o_ai vector signed long long
5009vec_nor(vector signed long long __a, vector bool long long __b) {
5010 return ~(__a | __b);
5011}
5012
5013static inline __ATTRS_o_ai vector unsigned long long
5014vec_nor(vector unsigned long long __a, vector unsigned long long __b) {
5015 return ~(__a | __b);
5016}
5017
5018static inline __ATTRS_o_ai vector unsigned long long
5019vec_nor(vector bool long long __a, vector unsigned long long __b) {
5020 return ~(__a | __b);
5021}
5022
5023static inline __ATTRS_o_ai vector unsigned long long
5024vec_nor(vector unsigned long long __a, vector bool long long __b) {
5025 return ~(__a | __b);
5026}
5027
5028static inline __ATTRS_o_ai vector double
5029vec_nor(vector double __a, vector double __b) {
5030 return (vector double)~((vector unsigned long long)__a |
5031 (vector unsigned long long)__b);
5032}
5033
5034static inline __ATTRS_o_ai vector double
5035vec_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
5040static inline __ATTRS_o_ai vector double
5041vec_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
5048static inline __ATTRS_o_ai vector unsigned char
5049vec_cntlz(vector signed char __a) {
5050 return __builtin_s390_vclzb((vector unsigned char)__a);
5051}
5052
5053static inline __ATTRS_o_ai vector unsigned char
5054vec_cntlz(vector unsigned char __a) {
5055 return __builtin_s390_vclzb(__a);
5056}
5057
5058static inline __ATTRS_o_ai vector unsigned short
5059vec_cntlz(vector signed short __a) {
5060 return __builtin_s390_vclzh((vector unsigned short)__a);
5061}
5062
5063static inline __ATTRS_o_ai vector unsigned short
5064vec_cntlz(vector unsigned short __a) {
5065 return __builtin_s390_vclzh(__a);
5066}
5067
5068static inline __ATTRS_o_ai vector unsigned int
5069vec_cntlz(vector signed int __a) {
5070 return __builtin_s390_vclzf((vector unsigned int)__a);
5071}
5072
5073static inline __ATTRS_o_ai vector unsigned int
5074vec_cntlz(vector unsigned int __a) {
5075 return __builtin_s390_vclzf(__a);
5076}
5077
5078static inline __ATTRS_o_ai vector unsigned long long
5079vec_cntlz(vector signed long long __a) {
5080 return __builtin_s390_vclzg((vector unsigned long long)__a);
5081}
5082
5083static inline __ATTRS_o_ai vector unsigned long long
5084vec_cntlz(vector unsigned long long __a) {
5085 return __builtin_s390_vclzg(__a);
5086}
5087
5088/*-- vec_cnttz --------------------------------------------------------------*/
5089
5090static inline __ATTRS_o_ai vector unsigned char
5091vec_cnttz(vector signed char __a) {
5092 return __builtin_s390_vctzb((vector unsigned char)__a);
5093}
5094
5095static inline __ATTRS_o_ai vector unsigned char
5096vec_cnttz(vector unsigned char __a) {
5097 return __builtin_s390_vctzb(__a);
5098}
5099
5100static inline __ATTRS_o_ai vector unsigned short
5101vec_cnttz(vector signed short __a) {
5102 return __builtin_s390_vctzh((vector unsigned short)__a);
5103}
5104
5105static inline __ATTRS_o_ai vector unsigned short
5106vec_cnttz(vector unsigned short __a) {
5107 return __builtin_s390_vctzh(__a);
5108}
5109
5110static inline __ATTRS_o_ai vector unsigned int
5111vec_cnttz(vector signed int __a) {
5112 return __builtin_s390_vctzf((vector unsigned int)__a);
5113}
5114
5115static inline __ATTRS_o_ai vector unsigned int
5116vec_cnttz(vector unsigned int __a) {
5117 return __builtin_s390_vctzf(__a);
5118}
5119
5120static inline __ATTRS_o_ai vector unsigned long long
5121vec_cnttz(vector signed long long __a) {
5122 return __builtin_s390_vctzg((vector unsigned long long)__a);
5123}
5124
5125static inline __ATTRS_o_ai vector unsigned long long
5126vec_cnttz(vector unsigned long long __a) {
5127 return __builtin_s390_vctzg(__a);
5128}
5129
5130/*-- vec_popcnt -------------------------------------------------------------*/
5131
5132static inline __ATTRS_o_ai vector unsigned char
5133vec_popcnt(vector signed char __a) {
5134 return __builtin_s390_vpopctb((vector unsigned char)__a);
5135}
5136
5137static inline __ATTRS_o_ai vector unsigned char
5138vec_popcnt(vector unsigned char __a) {
5139 return __builtin_s390_vpopctb(__a);
5140}
5141
5142static inline __ATTRS_o_ai vector unsigned short
5143vec_popcnt(vector signed short __a) {
5144 return __builtin_s390_vpopcth((vector unsigned short)__a);
5145}
5146
5147static inline __ATTRS_o_ai vector unsigned short
5148vec_popcnt(vector unsigned short __a) {
5149 return __builtin_s390_vpopcth(__a);
5150}
5151
5152static inline __ATTRS_o_ai vector unsigned int
5153vec_popcnt(vector signed int __a) {
5154 return __builtin_s390_vpopctf((vector unsigned int)__a);
5155}
5156
5157static inline __ATTRS_o_ai vector unsigned int
5158vec_popcnt(vector unsigned int __a) {
5159 return __builtin_s390_vpopctf(__a);
5160}
5161
5162static inline __ATTRS_o_ai vector unsigned long long
5163vec_popcnt(vector signed long long __a) {
5164 return __builtin_s390_vpopctg((vector unsigned long long)__a);
5165}
5166
5167static inline __ATTRS_o_ai vector unsigned long long
5168vec_popcnt(vector unsigned long long __a) {
5169 return __builtin_s390_vpopctg(__a);
5170}
5171
5172/*-- vec_rl -----------------------------------------------------------------*/
5173
5174static inline __ATTRS_o_ai vector signed char
5175vec_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
5180static inline __ATTRS_o_ai vector unsigned char
5181vec_rl(vector unsigned char __a, vector unsigned char __b) {
5182 return __builtin_s390_verllvb(__a, __b);
5183}
5184
5185static inline __ATTRS_o_ai vector signed short
5186vec_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
5191static inline __ATTRS_o_ai vector unsigned short
5192vec_rl(vector unsigned short __a, vector unsigned short __b) {
5193 return __builtin_s390_verllvh(__a, __b);
5194}
5195
5196static inline __ATTRS_o_ai vector signed int
5197vec_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
5202static inline __ATTRS_o_ai vector unsigned int
5203vec_rl(vector unsigned int __a, vector unsigned int __b) {
5204 return __builtin_s390_verllvf(__a, __b);
5205}
5206
5207static inline __ATTRS_o_ai vector signed long long
5208vec_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
5213static inline __ATTRS_o_ai vector unsigned long long
5214vec_rl(vector unsigned long long __a, vector unsigned long long __b) {
5215 return __builtin_s390_verllvg(__a, __b);
5216}
5217
5218/*-- vec_rli ----------------------------------------------------------------*/
5219
5220static inline __ATTRS_o_ai vector signed char
5221vec_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
5226static inline __ATTRS_o_ai vector unsigned char
5227vec_rli(vector unsigned char __a, unsigned long __b) {
5228 return __builtin_s390_verllb(__a, (int)__b);
5229}
5230
5231static inline __ATTRS_o_ai vector signed short
5232vec_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
5237static inline __ATTRS_o_ai vector unsigned short
5238vec_rli(vector unsigned short __a, unsigned long __b) {
5239 return __builtin_s390_verllh(__a, (int)__b);
5240}
5241
5242static inline __ATTRS_o_ai vector signed int
5243vec_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
5248static inline __ATTRS_o_ai vector unsigned int
5249vec_rli(vector unsigned int __a, unsigned long __b) {
5250 return __builtin_s390_verllf(__a, (int)__b);
5251}
5252
5253static inline __ATTRS_o_ai vector signed long long
5254vec_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
5259static inline __ATTRS_o_ai vector unsigned long long
5260vec_rli(vector unsigned long long __a, unsigned long __b) {
5261 return __builtin_s390_verllg(__a, (int)__b);
5262}
5263
5264/*-- vec_rl_mask ------------------------------------------------------------*/
5265
5266extern __ATTRS_o vector signed char
5267vec_rl_mask(vector signed char __a, vector unsigned char __b,
5268 unsigned char __c) __constant(__c);
5269
5270extern __ATTRS_o vector unsigned char
5271vec_rl_mask(vector unsigned char __a, vector unsigned char __b,
5272 unsigned char __c) __constant(__c);
5273
5274extern __ATTRS_o vector signed short
5275vec_rl_mask(vector signed short __a, vector unsigned short __b,
5276 unsigned char __c) __constant(__c);
5277
5278extern __ATTRS_o vector unsigned short
5279vec_rl_mask(vector unsigned short __a, vector unsigned short __b,
5280 unsigned char __c) __constant(__c);
5281
5282extern __ATTRS_o vector signed int
5283vec_rl_mask(vector signed int __a, vector unsigned int __b,
5284 unsigned char __c) __constant(__c);
5285
5286extern __ATTRS_o vector unsigned int
5287vec_rl_mask(vector unsigned int __a, vector unsigned int __b,
5288 unsigned char __c) __constant(__c);
5289
5290extern __ATTRS_o vector signed long long
5291vec_rl_mask(vector signed long long __a, vector unsigned long long __b,
5292 unsigned char __c) __constant(__c);
5293
5294extern __ATTRS_o vector unsigned long long
5295vec_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
5320static inline __ATTRS_o_ai vector signed char
5321vec_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
5326static inline __ATTRS_o_ai vector signed char
5327vec_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
5332static inline __ATTRS_o_ai vector signed char
5333vec_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
5338static inline __ATTRS_o_ai vector bool char
5339vec_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
5344static inline __ATTRS_o_ai vector bool char
5345vec_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
5350static inline __ATTRS_o_ai vector bool char
5351vec_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
5356static inline __ATTRS_o_ai vector unsigned char
5357vec_sll(vector unsigned char __a, vector unsigned char __b) {
5358 return __builtin_s390_vsl(__a, __b);
5359}
5360
5361static inline __ATTRS_o_ai vector unsigned char
5362vec_sll(vector unsigned char __a, vector unsigned short __b) {
5363 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
5364}
5365
5366static inline __ATTRS_o_ai vector unsigned char
5367vec_sll(vector unsigned char __a, vector unsigned int __b) {
5368 return __builtin_s390_vsl(__a, (vector unsigned char)__b);
5369}
5370
5371static inline __ATTRS_o_ai vector signed short
5372vec_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
5377static inline __ATTRS_o_ai vector signed short
5378vec_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
5383static inline __ATTRS_o_ai vector signed short
5384vec_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
5389static inline __ATTRS_o_ai vector bool short
5390vec_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
5395static inline __ATTRS_o_ai vector bool short
5396vec_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
5401static inline __ATTRS_o_ai vector bool short
5402vec_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
5407static inline __ATTRS_o_ai vector unsigned short
5408vec_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
5413static inline __ATTRS_o_ai vector unsigned short
5414vec_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
5419static inline __ATTRS_o_ai vector unsigned short
5420vec_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
5425static inline __ATTRS_o_ai vector signed int
5426vec_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
5431static inline __ATTRS_o_ai vector signed int
5432vec_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
5437static inline __ATTRS_o_ai vector signed int
5438vec_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
5443static inline __ATTRS_o_ai vector bool int
5444vec_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
5449static inline __ATTRS_o_ai vector bool int
5450vec_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
5455static inline __ATTRS_o_ai vector bool int
5456vec_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
5461static inline __ATTRS_o_ai vector unsigned int
5462vec_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
5467static inline __ATTRS_o_ai vector unsigned int
5468vec_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
5473static inline __ATTRS_o_ai vector unsigned int
5474vec_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
5479static inline __ATTRS_o_ai vector signed long long
5480vec_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
5485static inline __ATTRS_o_ai vector signed long long
5486vec_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
5491static inline __ATTRS_o_ai vector signed long long
5492vec_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
5497static inline __ATTRS_o_ai vector bool long long
5498vec_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
5503static inline __ATTRS_o_ai vector bool long long
5504vec_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
5509static inline __ATTRS_o_ai vector bool long long
5510vec_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
5515static inline __ATTRS_o_ai vector unsigned long long
5516vec_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
5521static inline __ATTRS_o_ai vector unsigned long long
5522vec_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
5527static inline __ATTRS_o_ai vector unsigned long long
5528vec_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
5535static inline __ATTRS_o_ai vector signed char
5536vec_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
5541static inline __ATTRS_o_ai vector signed char
5542vec_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
5547static inline __ATTRS_o_ai vector unsigned char
5548vec_slb(vector unsigned char __a, vector signed char __b) {
5549 return __builtin_s390_vslb(__a, (vector unsigned char)__b);
5550}
5551
5552static inline __ATTRS_o_ai vector unsigned char
5553vec_slb(vector unsigned char __a, vector unsigned char __b) {
5554 return __builtin_s390_vslb(__a, __b);
5555}
5556
5557static inline __ATTRS_o_ai vector signed short
5558vec_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
5563static inline __ATTRS_o_ai vector signed short
5564vec_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
5569static inline __ATTRS_o_ai vector unsigned short
5570vec_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
5575static inline __ATTRS_o_ai vector unsigned short
5576vec_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
5581static inline __ATTRS_o_ai vector signed int
5582vec_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
5587static inline __ATTRS_o_ai vector signed int
5588vec_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
5593static inline __ATTRS_o_ai vector unsigned int
5594vec_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
5599static inline __ATTRS_o_ai vector unsigned int
5600vec_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
5605static inline __ATTRS_o_ai vector signed long long
5606vec_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
5611static inline __ATTRS_o_ai vector signed long long
5612vec_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
5617static inline __ATTRS_o_ai vector unsigned long long
5618vec_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
5623static inline __ATTRS_o_ai vector unsigned long long
5624vec_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
5629static inline __ATTRS_o_ai vector double
5630vec_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
5635static inline __ATTRS_o_ai vector double
5636vec_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
5643extern __ATTRS_o vector signed char
5644vec_sld(vector signed char __a, vector signed char __b, int __c)
5645 __constant_range(__c, 0, 15);
5646
5647extern __ATTRS_o vector unsigned char
5648vec_sld(vector unsigned char __a, vector unsigned char __b, int __c)
5649 __constant_range(__c, 0, 15);
5650
5651extern __ATTRS_o vector signed short
5652vec_sld(vector signed short __a, vector signed short __b, int __c)
5653 __constant_range(__c, 0, 15);
5654
5655extern __ATTRS_o vector unsigned short
5656vec_sld(vector unsigned short __a, vector unsigned short __b, int __c)
5657 __constant_range(__c, 0, 15);
5658
5659extern __ATTRS_o vector signed int
5660vec_sld(vector signed int __a, vector signed int __b, int __c)
5661 __constant_range(__c, 0, 15);
5662
5663extern __ATTRS_o vector unsigned int
5664vec_sld(vector unsigned int __a, vector unsigned int __b, int __c)
5665 __constant_range(__c, 0, 15);
5666
5667extern __ATTRS_o vector signed long long
5668vec_sld(vector signed long long __a, vector signed long long __b, int __c)
5669 __constant_range(__c, 0, 15);
5670
5671extern __ATTRS_o vector unsigned long long
5672vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c)
5673 __constant_range(__c, 0, 15);
5674
5675extern __ATTRS_o vector double
5676vec_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
5685extern __ATTRS_o vector signed char
5686vec_sldw(vector signed char __a, vector signed char __b, int __c)
5687 __constant_range(__c, 0, 3);
5688
5689extern __ATTRS_o vector unsigned char
5690vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c)
5691 __constant_range(__c, 0, 3);
5692
5693extern __ATTRS_o vector signed short
5694vec_sldw(vector signed short __a, vector signed short __b, int __c)
5695 __constant_range(__c, 0, 3);
5696
5697extern __ATTRS_o vector unsigned short
5698vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c)
5699 __constant_range(__c, 0, 3);
5700
5701extern __ATTRS_o vector signed int
5702vec_sldw(vector signed int __a, vector signed int __b, int __c)
5703 __constant_range(__c, 0, 3);
5704
5705extern __ATTRS_o vector unsigned int
5706vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c)
5707 __constant_range(__c, 0, 3);
5708
5709extern __ATTRS_o vector signed long long
5710vec_sldw(vector signed long long __a, vector signed long long __b, int __c)
5711 __constant_range(__c, 0, 3);
5712
5713extern __ATTRS_o vector unsigned long long
5714vec_sldw(vector unsigned long long __a, vector unsigned long long __b, int __c)
5715 __constant_range(__c, 0, 3);
5716
5717extern __ATTRS_o vector double
5718vec_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
5727static inline __ATTRS_o_ai vector signed char
5728vec_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
5733static inline __ATTRS_o_ai vector signed char
5734vec_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
5739static inline __ATTRS_o_ai vector signed char
5740vec_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
5745static inline __ATTRS_o_ai vector bool char
5746vec_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
5751static inline __ATTRS_o_ai vector bool char
5752vec_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
5757static inline __ATTRS_o_ai vector bool char
5758vec_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
5763static inline __ATTRS_o_ai vector unsigned char
5764vec_sral(vector unsigned char __a, vector unsigned char __b) {
5765 return __builtin_s390_vsra(__a, __b);
5766}
5767
5768static inline __ATTRS_o_ai vector unsigned char
5769vec_sral(vector unsigned char __a, vector unsigned short __b) {
5770 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
5771}
5772
5773static inline __ATTRS_o_ai vector unsigned char
5774vec_sral(vector unsigned char __a, vector unsigned int __b) {
5775 return __builtin_s390_vsra(__a, (vector unsigned char)__b);
5776}
5777
5778static inline __ATTRS_o_ai vector signed short
5779vec_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
5784static inline __ATTRS_o_ai vector signed short
5785vec_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
5790static inline __ATTRS_o_ai vector signed short
5791vec_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
5796static inline __ATTRS_o_ai vector bool short
5797vec_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
5802static inline __ATTRS_o_ai vector bool short
5803vec_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
5808static inline __ATTRS_o_ai vector bool short
5809vec_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
5814static inline __ATTRS_o_ai vector unsigned short
5815vec_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
5820static inline __ATTRS_o_ai vector unsigned short
5821vec_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
5826static inline __ATTRS_o_ai vector unsigned short
5827vec_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
5832static inline __ATTRS_o_ai vector signed int
5833vec_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
5838static inline __ATTRS_o_ai vector signed int
5839vec_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
5844static inline __ATTRS_o_ai vector signed int
5845vec_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
5850static inline __ATTRS_o_ai vector bool int
5851vec_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
5856static inline __ATTRS_o_ai vector bool int
5857vec_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
5862static inline __ATTRS_o_ai vector bool int
5863vec_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
5868static inline __ATTRS_o_ai vector unsigned int
5869vec_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
5874static inline __ATTRS_o_ai vector unsigned int
5875vec_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
5880static inline __ATTRS_o_ai vector unsigned int
5881vec_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
5886static inline __ATTRS_o_ai vector signed long long
5887vec_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
5892static inline __ATTRS_o_ai vector signed long long
5893vec_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
5898static inline __ATTRS_o_ai vector signed long long
5899vec_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
5904static inline __ATTRS_o_ai vector bool long long
5905vec_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
5910static inline __ATTRS_o_ai vector bool long long
5911vec_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
5916static inline __ATTRS_o_ai vector bool long long
5917vec_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
5922static inline __ATTRS_o_ai vector unsigned long long
5923vec_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
5928static inline __ATTRS_o_ai vector unsigned long long
5929vec_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
5934static inline __ATTRS_o_ai vector unsigned long long
5935vec_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
5942static inline __ATTRS_o_ai vector signed char
5943vec_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
5948static inline __ATTRS_o_ai vector signed char
5949vec_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
5954static inline __ATTRS_o_ai vector unsigned char
5955vec_srab(vector unsigned char __a, vector signed char __b) {
5956 return __builtin_s390_vsrab(__a, (vector unsigned char)__b);
5957}
5958
5959static inline __ATTRS_o_ai vector unsigned char
5960vec_srab(vector unsigned char __a, vector unsigned char __b) {
5961 return __builtin_s390_vsrab(__a, __b);
5962}
5963
5964static inline __ATTRS_o_ai vector signed short
5965vec_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
5970static inline __ATTRS_o_ai vector signed short
5971vec_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
5976static inline __ATTRS_o_ai vector unsigned short
5977vec_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
5982static inline __ATTRS_o_ai vector unsigned short
5983vec_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
5988static inline __ATTRS_o_ai vector signed int
5989vec_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
5994static inline __ATTRS_o_ai vector signed int
5995vec_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
6000static inline __ATTRS_o_ai vector unsigned int
6001vec_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
6006static inline __ATTRS_o_ai vector unsigned int
6007vec_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
6012static inline __ATTRS_o_ai vector signed long long
6013vec_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
6018static inline __ATTRS_o_ai vector signed long long
6019vec_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
6024static inline __ATTRS_o_ai vector unsigned long long
6025vec_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
6030static inline __ATTRS_o_ai vector unsigned long long
6031vec_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
6036static inline __ATTRS_o_ai vector double
6037vec_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
6042static inline __ATTRS_o_ai vector double
6043vec_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
6050static inline __ATTRS_o_ai vector signed char
6051vec_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
6056static inline __ATTRS_o_ai vector signed char
6057vec_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
6062static inline __ATTRS_o_ai vector signed char
6063vec_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
6068static inline __ATTRS_o_ai vector bool char
6069vec_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
6074static inline __ATTRS_o_ai vector bool char
6075vec_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
6080static inline __ATTRS_o_ai vector bool char
6081vec_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
6086static inline __ATTRS_o_ai vector unsigned char
6087vec_srl(vector unsigned char __a, vector unsigned char __b) {
6088 return __builtin_s390_vsrl(__a, __b);
6089}
6090
6091static inline __ATTRS_o_ai vector unsigned char
6092vec_srl(vector unsigned char __a, vector unsigned short __b) {
6093 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
6094}
6095
6096static inline __ATTRS_o_ai vector unsigned char
6097vec_srl(vector unsigned char __a, vector unsigned int __b) {
6098 return __builtin_s390_vsrl(__a, (vector unsigned char)__b);
6099}
6100
6101static inline __ATTRS_o_ai vector signed short
6102vec_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
6107static inline __ATTRS_o_ai vector signed short
6108vec_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
6113static inline __ATTRS_o_ai vector signed short
6114vec_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
6119static inline __ATTRS_o_ai vector bool short
6120vec_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
6125static inline __ATTRS_o_ai vector bool short
6126vec_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
6131static inline __ATTRS_o_ai vector bool short
6132vec_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
6137static inline __ATTRS_o_ai vector unsigned short
6138vec_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
6143static inline __ATTRS_o_ai vector unsigned short
6144vec_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
6149static inline __ATTRS_o_ai vector unsigned short
6150vec_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
6155static inline __ATTRS_o_ai vector signed int
6156vec_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
6161static inline __ATTRS_o_ai vector signed int
6162vec_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
6167static inline __ATTRS_o_ai vector signed int
6168vec_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
6173static inline __ATTRS_o_ai vector bool int
6174vec_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
6179static inline __ATTRS_o_ai vector bool int
6180vec_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
6185static inline __ATTRS_o_ai vector bool int
6186vec_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
6191static inline __ATTRS_o_ai vector unsigned int
6192vec_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
6197static inline __ATTRS_o_ai vector unsigned int
6198vec_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
6203static inline __ATTRS_o_ai vector unsigned int
6204vec_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
6209static inline __ATTRS_o_ai vector signed long long
6210vec_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
6215static inline __ATTRS_o_ai vector signed long long
6216vec_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
6221static inline __ATTRS_o_ai vector signed long long
6222vec_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
6227static inline __ATTRS_o_ai vector bool long long
6228vec_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
6233static inline __ATTRS_o_ai vector bool long long
6234vec_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
6239static inline __ATTRS_o_ai vector bool long long
6240vec_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
6245static inline __ATTRS_o_ai vector unsigned long long
6246vec_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
6251static inline __ATTRS_o_ai vector unsigned long long
6252vec_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
6257static inline __ATTRS_o_ai vector unsigned long long
6258vec_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
6265static inline __ATTRS_o_ai vector signed char
6266vec_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
6271static inline __ATTRS_o_ai vector signed char
6272vec_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
6277static inline __ATTRS_o_ai vector unsigned char
6278vec_srb(vector unsigned char __a, vector signed char __b) {
6279 return __builtin_s390_vsrlb(__a, (vector unsigned char)__b);
6280}
6281
6282static inline __ATTRS_o_ai vector unsigned char
6283vec_srb(vector unsigned char __a, vector unsigned char __b) {
6284 return __builtin_s390_vsrlb(__a, __b);
6285}
6286
6287static inline __ATTRS_o_ai vector signed short
6288vec_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
6293static inline __ATTRS_o_ai vector signed short
6294vec_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
6299static inline __ATTRS_o_ai vector unsigned short
6300vec_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
6305static inline __ATTRS_o_ai vector unsigned short
6306vec_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
6311static inline __ATTRS_o_ai vector signed int
6312vec_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
6317static inline __ATTRS_o_ai vector signed int
6318vec_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
6323static inline __ATTRS_o_ai vector unsigned int
6324vec_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
6329static inline __ATTRS_o_ai vector unsigned int
6330vec_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
6335static inline __ATTRS_o_ai vector signed long long
6336vec_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
6341static inline __ATTRS_o_ai vector signed long long
6342vec_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
6347static inline __ATTRS_o_ai vector unsigned long long
6348vec_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
6353static inline __ATTRS_o_ai vector unsigned long long
6354vec_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
6359static inline __ATTRS_o_ai vector double
6360vec_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
6365static inline __ATTRS_o_ai vector double
6366vec_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
6373static inline __ATTRS_o_ai vector signed char
6374vec_abs(vector signed char __a) {
6375 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0));
6376}
6377
6378static inline __ATTRS_o_ai vector signed short
6379vec_abs(vector signed short __a) {
6380 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0));
6381}
6382
6383static inline __ATTRS_o_ai vector signed int
6384vec_abs(vector signed int __a) {
6385 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0));
6386}
6387
6388static inline __ATTRS_o_ai vector signed long long
6389vec_abs(vector signed long long __a) {
6390 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed long long)0));
6391}
6392
6393static inline __ATTRS_o_ai vector double
6394vec_abs(vector double __a) {
6395 return __builtin_s390_vflpdb(__a);
6396}
6397
6398/*-- vec_nabs ---------------------------------------------------------------*/
6399
6400static inline __ATTRS_ai vector double
6401vec_nabs(vector double __a) {
6402 return __builtin_s390_vflndb(__a);
6403}
6404
6405/*-- vec_max ----------------------------------------------------------------*/
6406
6407static inline __ATTRS_o_ai vector signed char
6408vec_max(vector signed char __a, vector signed char __b) {
6409 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6410}
6411
6412static inline __ATTRS_o_ai vector signed char
6413vec_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
6418static inline __ATTRS_o_ai vector signed char
6419vec_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
6424static inline __ATTRS_o_ai vector unsigned char
6425vec_max(vector unsigned char __a, vector unsigned char __b) {
6426 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6427}
6428
6429static inline __ATTRS_o_ai vector unsigned char
6430vec_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
6435static inline __ATTRS_o_ai vector unsigned char
6436vec_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
6441static inline __ATTRS_o_ai vector signed short
6442vec_max(vector signed short __a, vector signed short __b) {
6443 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6444}
6445
6446static inline __ATTRS_o_ai vector signed short
6447vec_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
6452static inline __ATTRS_o_ai vector signed short
6453vec_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
6458static inline __ATTRS_o_ai vector unsigned short
6459vec_max(vector unsigned short __a, vector unsigned short __b) {
6460 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6461}
6462
6463static inline __ATTRS_o_ai vector unsigned short
6464vec_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
6469static inline __ATTRS_o_ai vector unsigned short
6470vec_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
6475static inline __ATTRS_o_ai vector signed int
6476vec_max(vector signed int __a, vector signed int __b) {
6477 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6478}
6479
6480static inline __ATTRS_o_ai vector signed int
6481vec_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
6486static inline __ATTRS_o_ai vector signed int
6487vec_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
6492static inline __ATTRS_o_ai vector unsigned int
6493vec_max(vector unsigned int __a, vector unsigned int __b) {
6494 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6495}
6496
6497static inline __ATTRS_o_ai vector unsigned int
6498vec_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
6503static inline __ATTRS_o_ai vector unsigned int
6504vec_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
6509static inline __ATTRS_o_ai vector signed long long
6510vec_max(vector signed long long __a, vector signed long long __b) {
6511 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6512}
6513
6514static inline __ATTRS_o_ai vector signed long long
6515vec_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
6520static inline __ATTRS_o_ai vector signed long long
6521vec_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
6526static inline __ATTRS_o_ai vector unsigned long long
6527vec_max(vector unsigned long long __a, vector unsigned long long __b) {
6528 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6529}
6530
6531static inline __ATTRS_o_ai vector unsigned long long
6532vec_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
6537static inline __ATTRS_o_ai vector unsigned long long
6538vec_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
6543static inline __ATTRS_o_ai vector double
6544vec_max(vector double __a, vector double __b) {
6545 return vec_sel(__b, __a, vec_cmpgt(__a, __b));
6546}
6547
6548/*-- vec_min ----------------------------------------------------------------*/
6549
6550static inline __ATTRS_o_ai vector signed char
6551vec_min(vector signed char __a, vector signed char __b) {
6552 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6553}
6554
6555static inline __ATTRS_o_ai vector signed char
6556vec_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
6561static inline __ATTRS_o_ai vector signed char
6562vec_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
6567static inline __ATTRS_o_ai vector unsigned char
6568vec_min(vector unsigned char __a, vector unsigned char __b) {
6569 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6570}
6571
6572static inline __ATTRS_o_ai vector unsigned char
6573vec_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
6578static inline __ATTRS_o_ai vector unsigned char
6579vec_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
6584static inline __ATTRS_o_ai vector signed short
6585vec_min(vector signed short __a, vector signed short __b) {
6586 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6587}
6588
6589static inline __ATTRS_o_ai vector signed short
6590vec_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
6595static inline __ATTRS_o_ai vector signed short
6596vec_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
6601static inline __ATTRS_o_ai vector unsigned short
6602vec_min(vector unsigned short __a, vector unsigned short __b) {
6603 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6604}
6605
6606static inline __ATTRS_o_ai vector unsigned short
6607vec_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
6612static inline __ATTRS_o_ai vector unsigned short
6613vec_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
6618static inline __ATTRS_o_ai vector signed int
6619vec_min(vector signed int __a, vector signed int __b) {
6620 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6621}
6622
6623static inline __ATTRS_o_ai vector signed int
6624vec_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
6629static inline __ATTRS_o_ai vector signed int
6630vec_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
6635static inline __ATTRS_o_ai vector unsigned int
6636vec_min(vector unsigned int __a, vector unsigned int __b) {
6637 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6638}
6639
6640static inline __ATTRS_o_ai vector unsigned int
6641vec_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
6646static inline __ATTRS_o_ai vector unsigned int
6647vec_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
6652static inline __ATTRS_o_ai vector signed long long
6653vec_min(vector signed long long __a, vector signed long long __b) {
6654 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6655}
6656
6657static inline __ATTRS_o_ai vector signed long long
6658vec_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
6663static inline __ATTRS_o_ai vector signed long long
6664vec_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
6669static inline __ATTRS_o_ai vector unsigned long long
6670vec_min(vector unsigned long long __a, vector unsigned long long __b) {
6671 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6672}
6673
6674static inline __ATTRS_o_ai vector unsigned long long
6675vec_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
6680static inline __ATTRS_o_ai vector unsigned long long
6681vec_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
6686static inline __ATTRS_o_ai vector double
6687vec_min(vector double __a, vector double __b) {
6688 return vec_sel(__a, __b, vec_cmpgt(__a, __b));
6689}
6690
6691/*-- vec_add_u128 -----------------------------------------------------------*/
6692
6693static inline __ATTRS_ai vector unsigned char
6694vec_add_u128(vector unsigned char __a, vector unsigned char __b) {
6695 return __builtin_s390_vaq(__a, __b);
6696}
6697
6698/*-- vec_addc ---------------------------------------------------------------*/
6699
6700static inline __ATTRS_o_ai vector unsigned char
6701vec_addc(vector unsigned char __a, vector unsigned char __b) {
6702 return __builtin_s390_vaccb(__a, __b);
6703}
6704
6705static inline __ATTRS_o_ai vector unsigned short
6706vec_addc(vector unsigned short __a, vector unsigned short __b) {
6707 return __builtin_s390_vacch(__a, __b);
6708}
6709
6710static inline __ATTRS_o_ai vector unsigned int
6711vec_addc(vector unsigned int __a, vector unsigned int __b) {
6712 return __builtin_s390_vaccf(__a, __b);
6713}
6714
6715static inline __ATTRS_o_ai vector unsigned long long
6716vec_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
6722static inline __ATTRS_ai vector unsigned char
6723vec_addc_u128(vector unsigned char __a, vector unsigned char __b) {
6724 return __builtin_s390_vaccq(__a, __b);
6725}
6726
6727/*-- vec_adde_u128 ----------------------------------------------------------*/
6728
6729static inline __ATTRS_ai vector unsigned char
6730vec_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
6737static inline __ATTRS_ai vector unsigned char
6738vec_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
6745static inline __ATTRS_o_ai vector signed char
6746vec_avg(vector signed char __a, vector signed char __b) {
6747 return __builtin_s390_vavgb(__a, __b);
6748}
6749
6750static inline __ATTRS_o_ai vector signed short
6751vec_avg(vector signed short __a, vector signed short __b) {
6752 return __builtin_s390_vavgh(__a, __b);
6753}
6754
6755static inline __ATTRS_o_ai vector signed int
6756vec_avg(vector signed int __a, vector signed int __b) {
6757 return __builtin_s390_vavgf(__a, __b);
6758}
6759
6760static inline __ATTRS_o_ai vector signed long long
6761vec_avg(vector signed long long __a, vector signed long long __b) {
6762 return __builtin_s390_vavgg(__a, __b);
6763}
6764
6765static inline __ATTRS_o_ai vector unsigned char
6766vec_avg(vector unsigned char __a, vector unsigned char __b) {
6767 return __builtin_s390_vavglb(__a, __b);
6768}
6769
6770static inline __ATTRS_o_ai vector unsigned short
6771vec_avg(vector unsigned short __a, vector unsigned short __b) {
6772 return __builtin_s390_vavglh(__a, __b);
6773}
6774
6775static inline __ATTRS_o_ai vector unsigned int
6776vec_avg(vector unsigned int __a, vector unsigned int __b) {
6777 return __builtin_s390_vavglf(__a, __b);
6778}
6779
6780static inline __ATTRS_o_ai vector unsigned long long
6781vec_avg(vector unsigned long long __a, vector unsigned long long __b) {
6782 return __builtin_s390_vavglg(__a, __b);
6783}
6784
6785/*-- vec_checksum -----------------------------------------------------------*/
6786
6787static inline __ATTRS_ai vector unsigned int
6788vec_checksum(vector unsigned int __a, vector unsigned int __b) {
6789 return __builtin_s390_vcksm(__a, __b);
6790}
6791
6792/*-- vec_gfmsum -------------------------------------------------------------*/
6793
6794static inline __ATTRS_o_ai vector unsigned short
6795vec_gfmsum(vector unsigned char __a, vector unsigned char __b) {
6796 return __builtin_s390_vgfmb(__a, __b);
6797}
6798
6799static inline __ATTRS_o_ai vector unsigned int
6800vec_gfmsum(vector unsigned short __a, vector unsigned short __b) {
6801 return __builtin_s390_vgfmh(__a, __b);
6802}
6803
6804static inline __ATTRS_o_ai vector unsigned long long
6805vec_gfmsum(vector unsigned int __a, vector unsigned int __b) {
6806 return __builtin_s390_vgfmf(__a, __b);
6807}
6808
6809/*-- vec_gfmsum_128 ---------------------------------------------------------*/
6810
6811static inline __ATTRS_o_ai vector unsigned char
6812vec_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
6818static inline __ATTRS_o_ai vector unsigned short
6819vec_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
6824static inline __ATTRS_o_ai vector unsigned int
6825vec_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
6830static inline __ATTRS_o_ai vector unsigned long long
6831vec_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
6838static inline __ATTRS_o_ai vector unsigned char
6839vec_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
6847static inline __ATTRS_o_ai vector signed char
6848vec_mladd(vector signed char __a, vector signed char __b,
6849 vector signed char __c) {
6850 return __a * __b + __c;
6851}
6852
6853static inline __ATTRS_o_ai vector signed char
6854vec_mladd(vector unsigned char __a, vector signed char __b,
6855 vector signed char __c) {
6856 return (vector signed char)__a * __b + __c;
6857}
6858
6859static inline __ATTRS_o_ai vector signed char
6860vec_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
6865static inline __ATTRS_o_ai vector unsigned char
6866vec_mladd(vector unsigned char __a, vector unsigned char __b,
6867 vector unsigned char __c) {
6868 return __a * __b + __c;
6869}
6870
6871static inline __ATTRS_o_ai vector signed short
6872vec_mladd(vector signed short __a, vector signed short __b,
6873 vector signed short __c) {
6874 return __a * __b + __c;
6875}
6876
6877static inline __ATTRS_o_ai vector signed short
6878vec_mladd(vector unsigned short __a, vector signed short __b,
6879 vector signed short __c) {
6880 return (vector signed short)__a * __b + __c;
6881}
6882
6883static inline __ATTRS_o_ai vector signed short
6884vec_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
6889static inline __ATTRS_o_ai vector unsigned short
6890vec_mladd(vector unsigned short __a, vector unsigned short __b,
6891 vector unsigned short __c) {
6892 return __a * __b + __c;
6893}
6894
6895static inline __ATTRS_o_ai vector signed int
6896vec_mladd(vector signed int __a, vector signed int __b,
6897 vector signed int __c) {
6898 return __a * __b + __c;
6899}
6900
6901static inline __ATTRS_o_ai vector signed int
6902vec_mladd(vector unsigned int __a, vector signed int __b,
6903 vector signed int __c) {
6904 return (vector signed int)__a * __b + __c;
6905}
6906
6907static inline __ATTRS_o_ai vector signed int
6908vec_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
6913static inline __ATTRS_o_ai vector unsigned int
6914vec_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
6921static inline __ATTRS_o_ai vector signed char
6922vec_mhadd(vector signed char __a, vector signed char __b,
6923 vector signed char __c) {
6924 return __builtin_s390_vmahb(__a, __b, __c);
6925}
6926
6927static inline __ATTRS_o_ai vector unsigned char
6928vec_mhadd(vector unsigned char __a, vector unsigned char __b,
6929 vector unsigned char __c) {
6930 return __builtin_s390_vmalhb(__a, __b, __c);
6931}
6932
6933static inline __ATTRS_o_ai vector signed short
6934vec_mhadd(vector signed short __a, vector signed short __b,
6935 vector signed short __c) {
6936 return __builtin_s390_vmahh(__a, __b, __c);
6937}
6938
6939static inline __ATTRS_o_ai vector unsigned short
6940vec_mhadd(vector unsigned short __a, vector unsigned short __b,
6941 vector unsigned short __c) {
6942 return __builtin_s390_vmalhh(__a, __b, __c);
6943}
6944
6945static inline __ATTRS_o_ai vector signed int
6946vec_mhadd(vector signed int __a, vector signed int __b,
6947 vector signed int __c) {
6948 return __builtin_s390_vmahf(__a, __b, __c);
6949}
6950
6951static inline __ATTRS_o_ai vector unsigned int
6952vec_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
6959static inline __ATTRS_o_ai vector signed short
6960vec_meadd(vector signed char __a, vector signed char __b,
6961 vector signed short __c) {
6962 return __builtin_s390_vmaeb(__a, __b, __c);
6963}
6964
6965static inline __ATTRS_o_ai vector unsigned short
6966vec_meadd(vector unsigned char __a, vector unsigned char __b,
6967 vector unsigned short __c) {
6968 return __builtin_s390_vmaleb(__a, __b, __c);
6969}
6970
6971static inline __ATTRS_o_ai vector signed int
6972vec_meadd(vector signed short __a, vector signed short __b,
6973 vector signed int __c) {
6974 return __builtin_s390_vmaeh(__a, __b, __c);
6975}
6976
6977static inline __ATTRS_o_ai vector unsigned int
6978vec_meadd(vector unsigned short __a, vector unsigned short __b,
6979 vector unsigned int __c) {
6980 return __builtin_s390_vmaleh(__a, __b, __c);
6981}
6982
6983static inline __ATTRS_o_ai vector signed long long
6984vec_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
6989static inline __ATTRS_o_ai vector unsigned long long
6990vec_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
6997static inline __ATTRS_o_ai vector signed short
6998vec_moadd(vector signed char __a, vector signed char __b,
6999 vector signed short __c) {
7000 return __builtin_s390_vmaob(__a, __b, __c);
7001}
7002
7003static inline __ATTRS_o_ai vector unsigned short
7004vec_moadd(vector unsigned char __a, vector unsigned char __b,
7005 vector unsigned short __c) {
7006 return __builtin_s390_vmalob(__a, __b, __c);
7007}
7008
7009static inline __ATTRS_o_ai vector signed int
7010vec_moadd(vector signed short __a, vector signed short __b,
7011 vector signed int __c) {
7012 return __builtin_s390_vmaoh(__a, __b, __c);
7013}
7014
7015static inline __ATTRS_o_ai vector unsigned int
7016vec_moadd(vector unsigned short __a, vector unsigned short __b,
7017 vector unsigned int __c) {
7018 return __builtin_s390_vmaloh(__a, __b, __c);
7019}
7020
7021static inline __ATTRS_o_ai vector signed long long
7022vec_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
7027static inline __ATTRS_o_ai vector unsigned long long
7028vec_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
7035static inline __ATTRS_o_ai vector signed char
7036vec_mulh(vector signed char __a, vector signed char __b) {
7037 return __builtin_s390_vmhb(__a, __b);
7038}
7039
7040static inline __ATTRS_o_ai vector unsigned char
7041vec_mulh(vector unsigned char __a, vector unsigned char __b) {
7042 return __builtin_s390_vmlhb(__a, __b);
7043}
7044
7045static inline __ATTRS_o_ai vector signed short
7046vec_mulh(vector signed short __a, vector signed short __b) {
7047 return __builtin_s390_vmhh(__a, __b);
7048}
7049
7050static inline __ATTRS_o_ai vector unsigned short
7051vec_mulh(vector unsigned short __a, vector unsigned short __b) {
7052 return __builtin_s390_vmlhh(__a, __b);
7053}
7054
7055static inline __ATTRS_o_ai vector signed int
7056vec_mulh(vector signed int __a, vector signed int __b) {
7057 return __builtin_s390_vmhf(__a, __b);
7058}
7059
7060static inline __ATTRS_o_ai vector unsigned int
7061vec_mulh(vector unsigned int __a, vector unsigned int __b) {
7062 return __builtin_s390_vmlhf(__a, __b);
7063}
7064
7065/*-- vec_mule ---------------------------------------------------------------*/
7066
7067static inline __ATTRS_o_ai vector signed short
7068vec_mule(vector signed char __a, vector signed char __b) {
7069 return __builtin_s390_vmeb(__a, __b);
7070}
7071
7072static inline __ATTRS_o_ai vector unsigned short
7073vec_mule(vector unsigned char __a, vector unsigned char __b) {
7074 return __builtin_s390_vmleb(__a, __b);
7075}
7076
7077static inline __ATTRS_o_ai vector signed int
7078vec_mule(vector signed short __a, vector signed short __b) {
7079 return __builtin_s390_vmeh(__a, __b);
7080}
7081
7082static inline __ATTRS_o_ai vector unsigned int
7083vec_mule(vector unsigned short __a, vector unsigned short __b) {
7084 return __builtin_s390_vmleh(__a, __b);
7085}
7086
7087static inline __ATTRS_o_ai vector signed long long
7088vec_mule(vector signed int __a, vector signed int __b) {
7089 return __builtin_s390_vmef(__a, __b);
7090}
7091
7092static inline __ATTRS_o_ai vector unsigned long long
7093vec_mule(vector unsigned int __a, vector unsigned int __b) {
7094 return __builtin_s390_vmlef(__a, __b);
7095}
7096
7097/*-- vec_mulo ---------------------------------------------------------------*/
7098
7099static inline __ATTRS_o_ai vector signed short
7100vec_mulo(vector signed char __a, vector signed char __b) {
7101 return __builtin_s390_vmob(__a, __b);
7102}
7103
7104static inline __ATTRS_o_ai vector unsigned short
7105vec_mulo(vector unsigned char __a, vector unsigned char __b) {
7106 return __builtin_s390_vmlob(__a, __b);
7107}
7108
7109static inline __ATTRS_o_ai vector signed int
7110vec_mulo(vector signed short __a, vector signed short __b) {
7111 return __builtin_s390_vmoh(__a, __b);
7112}
7113
7114static inline __ATTRS_o_ai vector unsigned int
7115vec_mulo(vector unsigned short __a, vector unsigned short __b) {
7116 return __builtin_s390_vmloh(__a, __b);
7117}
7118
7119static inline __ATTRS_o_ai vector signed long long
7120vec_mulo(vector signed int __a, vector signed int __b) {
7121 return __builtin_s390_vmof(__a, __b);
7122}
7123
7124static inline __ATTRS_o_ai vector unsigned long long
7125vec_mulo(vector unsigned int __a, vector unsigned int __b) {
7126 return __builtin_s390_vmlof(__a, __b);
7127}
7128
7129/*-- vec_sub_u128 -----------------------------------------------------------*/
7130
7131static inline __ATTRS_ai vector unsigned char
7132vec_sub_u128(vector unsigned char __a, vector unsigned char __b) {
7133 return __builtin_s390_vsq(__a, __b);
7134}
7135
7136/*-- vec_subc ---------------------------------------------------------------*/
7137
7138static inline __ATTRS_o_ai vector unsigned char
7139vec_subc(vector unsigned char __a, vector unsigned char __b) {
7140 return __builtin_s390_vscbib(__a, __b);
7141}
7142
7143static inline __ATTRS_o_ai vector unsigned short
7144vec_subc(vector unsigned short __a, vector unsigned short __b) {
7145 return __builtin_s390_vscbih(__a, __b);
7146}
7147
7148static inline __ATTRS_o_ai vector unsigned int
7149vec_subc(vector unsigned int __a, vector unsigned int __b) {
7150 return __builtin_s390_vscbif(__a, __b);
7151}
7152
7153static inline __ATTRS_o_ai vector unsigned long long
7154vec_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
7160static inline __ATTRS_ai vector unsigned char
7161vec_subc_u128(vector unsigned char __a, vector unsigned char __b) {
7162 return __builtin_s390_vscbiq(__a, __b);
7163}
7164
7165/*-- vec_sube_u128 ----------------------------------------------------------*/
7166
7167static inline __ATTRS_ai vector unsigned char
7168vec_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
7175static inline __ATTRS_ai vector unsigned char
7176vec_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
7183static inline __ATTRS_o_ai vector unsigned long long
7184vec_sum2(vector unsigned short __a, vector unsigned short __b) {
7185 return __builtin_s390_vsumgh(__a, __b);
7186}
7187
7188static inline __ATTRS_o_ai vector unsigned long long
7189vec_sum2(vector unsigned int __a, vector unsigned int __b) {
7190 return __builtin_s390_vsumgf(__a, __b);
7191}
7192
7193/*-- vec_sum_u128 -----------------------------------------------------------*/
7194
7195static inline __ATTRS_o_ai vector unsigned char
7196vec_sum_u128(vector unsigned int __a, vector unsigned int __b) {
7197 return __builtin_s390_vsumqf(__a, __b);
7198}
7199
7200static inline __ATTRS_o_ai vector unsigned char
7201vec_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
7207static inline __ATTRS_o_ai vector unsigned int
7208vec_sum4(vector unsigned char __a, vector unsigned char __b) {
7209 return __builtin_s390_vsumb(__a, __b);
7210}
7211
7212static inline __ATTRS_o_ai vector unsigned int
7213vec_sum4(vector unsigned short __a, vector unsigned short __b) {
7214 return __builtin_s390_vsumh(__a, __b);
7215}
7216
7217/*-- vec_test_mask ----------------------------------------------------------*/
7218
7219static inline __ATTRS_o_ai int
7220vec_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
7225static inline __ATTRS_o_ai int
7226vec_test_mask(vector unsigned char __a, vector unsigned char __b) {
7227 return __builtin_s390_vtm(__a, __b);
7228}
7229
7230static inline __ATTRS_o_ai int
7231vec_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
7236static inline __ATTRS_o_ai int
7237vec_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
7242static inline __ATTRS_o_ai int
7243vec_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
7248static inline __ATTRS_o_ai int
7249vec_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
7254static inline __ATTRS_o_ai int
7255vec_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
7260static inline __ATTRS_o_ai int
7261vec_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
7266static inline __ATTRS_o_ai int
7267vec_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
7274static inline __ATTRS_ai vector double
7275vec_madd(vector double __a, vector double __b, vector double __c) {
7276 return __builtin_s390_vfmadb(__a, __b, __c);
7277}
7278
7279/*-- vec_msub ---------------------------------------------------------------*/
7280
7281static inline __ATTRS_ai vector double
7282vec_msub(vector double __a, vector double __b, vector double __c) {
7283 return __builtin_s390_vfmsdb(__a, __b, __c);
7284}
7285
7286/*-- vec_sqrt ---------------------------------------------------------------*/
7287
7288static inline __ATTRS_ai vector double
7289vec_sqrt(vector double __a) {
7290 return __builtin_s390_vfsqdb(__a);
7291}
7292
7293/*-- vec_ld2f ---------------------------------------------------------------*/
7294
7295static inline __ATTRS_ai vector double
7296vec_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
7303static inline __ATTRS_ai void
7304vec_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
7311static inline __ATTRS_o_ai vector double
7312vec_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
7319static inline __ATTRS_o_ai vector double
7320vec_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
7329static inline __ATTRS_o_ai vector signed long long
7330vec_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
7338static inline __ATTRS_o_ai vector unsigned long long
7339vec_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
7347static inline __ATTRS_ai vector double
7348vec_roundp(vector double __a) {
7349 return __builtin_s390_vfidb(__a, 4, 6);
7350}
7351
7352/*-- vec_ceil ---------------------------------------------------------------*/
7353
7354static inline __ATTRS_ai vector double
7355vec_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
7362static inline __ATTRS_ai vector double
7363vec_roundm(vector double __a) {
7364 return __builtin_s390_vfidb(__a, 4, 7);
7365}
7366
7367/*-- vec_floor --------------------------------------------------------------*/
7368
7369static inline __ATTRS_ai vector double
7370vec_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
7377static inline __ATTRS_ai vector double
7378vec_roundz(vector double __a) {
7379 return __builtin_s390_vfidb(__a, 4, 5);
7380}
7381
7382/*-- vec_trunc --------------------------------------------------------------*/
7383
7384static inline __ATTRS_ai vector double
7385vec_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
7392static inline __ATTRS_ai vector double
7393vec_roundc(vector double __a) {
7394 return __builtin_s390_vfidb(__a, 4, 0);
7395}
7396
7397/*-- vec_round --------------------------------------------------------------*/
7398
7399static inline __ATTRS_ai vector double
7400vec_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
7411static inline __ATTRS_o_ai vector signed char
7412vec_cp_until_zero(vector signed char __a) {
7413 return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a);
7414}
7415
7416static inline __ATTRS_o_ai vector bool char
7417vec_cp_until_zero(vector bool char __a) {
7418 return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a);
7419}
7420
7421static inline __ATTRS_o_ai vector unsigned char
7422vec_cp_until_zero(vector unsigned char __a) {
7423 return __builtin_s390_vistrb(__a);
7424}
7425
7426static inline __ATTRS_o_ai vector signed short
7427vec_cp_until_zero(vector signed short __a) {
7428 return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a);
7429}
7430
7431static inline __ATTRS_o_ai vector bool short
7432vec_cp_until_zero(vector bool short __a) {
7433 return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a);
7434}
7435
7436static inline __ATTRS_o_ai vector unsigned short
7437vec_cp_until_zero(vector unsigned short __a) {
7438 return __builtin_s390_vistrh(__a);
7439}
7440
7441static inline __ATTRS_o_ai vector signed int
7442vec_cp_until_zero(vector signed int __a) {
7443 return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a);
7444}
7445
7446static inline __ATTRS_o_ai vector bool int
7447vec_cp_until_zero(vector bool int __a) {
7448 return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a);
7449}
7450
7451static inline __ATTRS_o_ai vector unsigned int
7452vec_cp_until_zero(vector unsigned int __a) {
7453 return __builtin_s390_vistrf(__a);
7454}
7455
7456/*-- vec_cp_until_zero_cc ---------------------------------------------------*/
7457
7458static inline __ATTRS_o_ai vector signed char
7459vec_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
7464static inline __ATTRS_o_ai vector bool char
7465vec_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
7470static inline __ATTRS_o_ai vector unsigned char
7471vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) {
7472 return __builtin_s390_vistrbs(__a, __cc);
7473}
7474
7475static inline __ATTRS_o_ai vector signed short
7476vec_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
7481static inline __ATTRS_o_ai vector bool short
7482vec_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
7487static inline __ATTRS_o_ai vector unsigned short
7488vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) {
7489 return __builtin_s390_vistrhs(__a, __cc);
7490}
7491
7492static inline __ATTRS_o_ai vector signed int
7493vec_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
7498static inline __ATTRS_o_ai vector bool int
7499vec_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
7504static inline __ATTRS_o_ai vector unsigned int
7505vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) {
7506 return __builtin_s390_vistrfs(__a, __cc);
7507}
7508
7509/*-- vec_cmpeq_idx ----------------------------------------------------------*/
7510
7511static inline __ATTRS_o_ai vector signed char
7512vec_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
7518static inline __ATTRS_o_ai vector unsigned char
7519vec_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
7524static inline __ATTRS_o_ai vector unsigned char
7525vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) {
7526 return __builtin_s390_vfeeb(__a, __b);
7527}
7528
7529static inline __ATTRS_o_ai vector signed short
7530vec_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
7536static inline __ATTRS_o_ai vector unsigned short
7537vec_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
7542static inline __ATTRS_o_ai vector unsigned short
7543vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) {
7544 return __builtin_s390_vfeeh(__a, __b);
7545}
7546
7547static inline __ATTRS_o_ai vector signed int
7548vec_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
7554static inline __ATTRS_o_ai vector unsigned int
7555vec_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
7560static inline __ATTRS_o_ai vector unsigned int
7561vec_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
7567static inline __ATTRS_o_ai vector signed char
7568vec_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
7574static inline __ATTRS_o_ai vector unsigned char
7575vec_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
7580static inline __ATTRS_o_ai vector unsigned char
7581vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b,
7582 int *__cc) {
7583 return __builtin_s390_vfeebs(__a, __b, __cc);
7584}
7585
7586static inline __ATTRS_o_ai vector signed short
7587vec_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
7593static inline __ATTRS_o_ai vector unsigned short
7594vec_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
7599static inline __ATTRS_o_ai vector unsigned short
7600vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b,
7601 int *__cc) {
7602 return __builtin_s390_vfeehs(__a, __b, __cc);
7603}
7604
7605static inline __ATTRS_o_ai vector signed int
7606vec_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
7612static inline __ATTRS_o_ai vector unsigned int
7613vec_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
7618static inline __ATTRS_o_ai vector unsigned int
7619vec_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
7625static inline __ATTRS_o_ai vector signed char
7626vec_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
7632static inline __ATTRS_o_ai vector unsigned char
7633vec_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
7638static inline __ATTRS_o_ai vector unsigned char
7639vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
7640 return __builtin_s390_vfeezb(__a, __b);
7641}
7642
7643static inline __ATTRS_o_ai vector signed short
7644vec_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
7650static inline __ATTRS_o_ai vector unsigned short
7651vec_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
7656static inline __ATTRS_o_ai vector unsigned short
7657vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
7658 return __builtin_s390_vfeezh(__a, __b);
7659}
7660
7661static inline __ATTRS_o_ai vector signed int
7662vec_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
7668static inline __ATTRS_o_ai vector unsigned int
7669vec_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
7674static inline __ATTRS_o_ai vector unsigned int
7675vec_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
7681static inline __ATTRS_o_ai vector signed char
7682vec_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
7689static inline __ATTRS_o_ai vector unsigned char
7690vec_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
7695static inline __ATTRS_o_ai vector unsigned char
7696vec_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
7701static inline __ATTRS_o_ai vector signed short
7702vec_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
7709static inline __ATTRS_o_ai vector unsigned short
7710vec_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
7715static inline __ATTRS_o_ai vector unsigned short
7716vec_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
7721static inline __ATTRS_o_ai vector signed int
7722vec_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
7728static inline __ATTRS_o_ai vector unsigned int
7729vec_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
7734static inline __ATTRS_o_ai vector unsigned int
7735vec_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
7742static inline __ATTRS_o_ai vector signed char
7743vec_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
7749static inline __ATTRS_o_ai vector unsigned char
7750vec_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
7755static inline __ATTRS_o_ai vector unsigned char
7756vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) {
7757 return __builtin_s390_vfeneb(__a, __b);
7758}
7759
7760static inline __ATTRS_o_ai vector signed short
7761vec_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
7767static inline __ATTRS_o_ai vector unsigned short
7768vec_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
7773static inline __ATTRS_o_ai vector unsigned short
7774vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) {
7775 return __builtin_s390_vfeneh(__a, __b);
7776}
7777
7778static inline __ATTRS_o_ai vector signed int
7779vec_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
7785static inline __ATTRS_o_ai vector unsigned int
7786vec_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
7791static inline __ATTRS_o_ai vector unsigned int
7792vec_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
7798static inline __ATTRS_o_ai vector signed char
7799vec_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
7805static inline __ATTRS_o_ai vector unsigned char
7806vec_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
7811static inline __ATTRS_o_ai vector unsigned char
7812vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b,
7813 int *__cc) {
7814 return __builtin_s390_vfenebs(__a, __b, __cc);
7815}
7816
7817static inline __ATTRS_o_ai vector signed short
7818vec_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
7824static inline __ATTRS_o_ai vector unsigned short
7825vec_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
7830static inline __ATTRS_o_ai vector unsigned short
7831vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b,
7832 int *__cc) {
7833 return __builtin_s390_vfenehs(__a, __b, __cc);
7834}
7835
7836static inline __ATTRS_o_ai vector signed int
7837vec_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
7843static inline __ATTRS_o_ai vector unsigned int
7844vec_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
7849static inline __ATTRS_o_ai vector unsigned int
7850vec_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
7856static inline __ATTRS_o_ai vector signed char
7857vec_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
7863static inline __ATTRS_o_ai vector unsigned char
7864vec_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
7869static inline __ATTRS_o_ai vector unsigned char
7870vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
7871 return __builtin_s390_vfenezb(__a, __b);
7872}
7873
7874static inline __ATTRS_o_ai vector signed short
7875vec_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
7881static inline __ATTRS_o_ai vector unsigned short
7882vec_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
7887static inline __ATTRS_o_ai vector unsigned short
7888vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
7889 return __builtin_s390_vfenezh(__a, __b);
7890}
7891
7892static inline __ATTRS_o_ai vector signed int
7893vec_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
7899static inline __ATTRS_o_ai vector unsigned int
7900vec_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
7905static inline __ATTRS_o_ai vector unsigned int
7906vec_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
7912static inline __ATTRS_o_ai vector signed char
7913vec_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
7920static inline __ATTRS_o_ai vector unsigned char
7921vec_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
7926static inline __ATTRS_o_ai vector unsigned char
7927vec_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
7932static inline __ATTRS_o_ai vector signed short
7933vec_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
7940static inline __ATTRS_o_ai vector unsigned short
7941vec_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
7946static inline __ATTRS_o_ai vector unsigned short
7947vec_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
7952static inline __ATTRS_o_ai vector signed int
7953vec_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
7959static inline __ATTRS_o_ai vector unsigned int
7960vec_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
7965static inline __ATTRS_o_ai vector unsigned int
7966vec_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
7973static inline __ATTRS_o_ai vector bool char
7974vec_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
7979static inline __ATTRS_o_ai vector bool short
7980vec_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
7985static inline __ATTRS_o_ai vector bool int
7986vec_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
7993static inline __ATTRS_o_ai vector bool char
7994vec_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
7999static inline __ATTRS_o_ai vector bool short
8000vec_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
8005static inline __ATTRS_o_ai vector bool int
8006vec_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
8013static inline __ATTRS_o_ai vector unsigned char
8014vec_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
8019static inline __ATTRS_o_ai vector unsigned short
8020vec_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
8025static inline __ATTRS_o_ai vector unsigned int
8026vec_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
8033static inline __ATTRS_o_ai vector unsigned char
8034vec_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
8039static inline __ATTRS_o_ai vector unsigned short
8040vec_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
8045static inline __ATTRS_o_ai vector unsigned int
8046vec_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
8053static inline __ATTRS_o_ai vector unsigned char
8054vec_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
8059static inline __ATTRS_o_ai vector unsigned short
8060vec_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
8065static inline __ATTRS_o_ai vector unsigned int
8066vec_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
8073static inline __ATTRS_o_ai vector unsigned char
8074vec_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
8079static inline __ATTRS_o_ai vector unsigned short
8080vec_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
8085static inline __ATTRS_o_ai vector unsigned int
8086vec_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
8093static inline __ATTRS_o_ai vector bool char
8094vec_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
8099static inline __ATTRS_o_ai vector bool short
8100vec_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
8105static inline __ATTRS_o_ai vector bool int
8106vec_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
8113static inline __ATTRS_o_ai vector bool char
8114vec_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
8119static inline __ATTRS_o_ai vector bool short
8120vec_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
8125static inline __ATTRS_o_ai vector bool int
8126vec_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
8133static inline __ATTRS_o_ai vector unsigned char
8134vec_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
8139static inline __ATTRS_o_ai vector unsigned short
8140vec_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
8145static inline __ATTRS_o_ai vector unsigned int
8146vec_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
8153static inline __ATTRS_o_ai vector unsigned char
8154vec_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
8159static inline __ATTRS_o_ai vector unsigned short
8160vec_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
8165static inline __ATTRS_o_ai vector unsigned int
8166vec_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
8173static inline __ATTRS_o_ai vector unsigned char
8174vec_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
8179static inline __ATTRS_o_ai vector unsigned short
8180vec_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
8185static inline __ATTRS_o_ai vector unsigned int
8186vec_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
8193static inline __ATTRS_o_ai vector unsigned char
8194vec_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
8199static inline __ATTRS_o_ai vector unsigned short
8200vec_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
8205static inline __ATTRS_o_ai vector unsigned int
8206vec_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
8213static inline __ATTRS_o_ai vector bool char
8214vec_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
8220static inline __ATTRS_o_ai vector bool char
8221vec_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
8227static inline __ATTRS_o_ai vector bool char
8228vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) {
8229 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4);
8230}
8231
8232static inline __ATTRS_o_ai vector bool short
8233vec_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
8239static inline __ATTRS_o_ai vector bool short
8240vec_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
8246static inline __ATTRS_o_ai vector bool short
8247vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) {
8248 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4);
8249}
8250
8251static inline __ATTRS_o_ai vector bool int
8252vec_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
8258static inline __ATTRS_o_ai vector bool int
8259vec_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
8265static inline __ATTRS_o_ai vector bool int
8266vec_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
8272static inline __ATTRS_o_ai vector bool char
8273vec_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
8279static inline __ATTRS_o_ai vector bool char
8280vec_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
8286static inline __ATTRS_o_ai vector bool char
8287vec_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
8292static inline __ATTRS_o_ai vector bool short
8293vec_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
8300static inline __ATTRS_o_ai vector bool short
8301vec_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
8307static inline __ATTRS_o_ai vector bool short
8308vec_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
8313static inline __ATTRS_o_ai vector bool int
8314vec_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
8320static inline __ATTRS_o_ai vector bool int
8321vec_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
8327static inline __ATTRS_o_ai vector bool int
8328vec_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
8335static inline __ATTRS_o_ai vector signed char
8336vec_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
8342static inline __ATTRS_o_ai vector unsigned char
8343vec_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
8348static inline __ATTRS_o_ai vector unsigned char
8349vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) {
8350 return __builtin_s390_vfaeb(__a, __b, 0);
8351}
8352
8353static inline __ATTRS_o_ai vector signed short
8354vec_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
8360static inline __ATTRS_o_ai vector unsigned short
8361vec_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
8366static inline __ATTRS_o_ai vector unsigned short
8367vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) {
8368 return __builtin_s390_vfaeh(__a, __b, 0);
8369}
8370
8371static inline __ATTRS_o_ai vector signed int
8372vec_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
8378static inline __ATTRS_o_ai vector unsigned int
8379vec_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
8384static inline __ATTRS_o_ai vector unsigned int
8385vec_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
8391static inline __ATTRS_o_ai vector signed char
8392vec_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
8399static inline __ATTRS_o_ai vector unsigned char
8400vec_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
8405static inline __ATTRS_o_ai vector unsigned char
8406vec_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
8411static inline __ATTRS_o_ai vector signed short
8412vec_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
8419static inline __ATTRS_o_ai vector unsigned short
8420vec_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
8426static inline __ATTRS_o_ai vector unsigned short
8427vec_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
8432static inline __ATTRS_o_ai vector signed int
8433vec_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
8440static inline __ATTRS_o_ai vector unsigned int
8441vec_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
8446static inline __ATTRS_o_ai vector unsigned int
8447vec_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
8454static inline __ATTRS_o_ai vector signed char
8455vec_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
8461static inline __ATTRS_o_ai vector unsigned char
8462vec_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
8467static inline __ATTRS_o_ai vector unsigned char
8468vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
8469 return __builtin_s390_vfaezb(__a, __b, 0);
8470}
8471
8472static inline __ATTRS_o_ai vector signed short
8473vec_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
8479static inline __ATTRS_o_ai vector unsigned short
8480vec_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
8485static inline __ATTRS_o_ai vector unsigned short
8486vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
8487 return __builtin_s390_vfaezh(__a, __b, 0);
8488}
8489
8490static inline __ATTRS_o_ai vector signed int
8491vec_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
8497static inline __ATTRS_o_ai vector unsigned int
8498vec_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
8503static inline __ATTRS_o_ai vector unsigned int
8504vec_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
8510static inline __ATTRS_o_ai vector signed char
8511vec_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
8518static inline __ATTRS_o_ai vector unsigned char
8519vec_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
8525static inline __ATTRS_o_ai vector unsigned char
8526vec_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
8531static inline __ATTRS_o_ai vector signed short
8532vec_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
8539static inline __ATTRS_o_ai vector unsigned short
8540vec_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
8546static inline __ATTRS_o_ai vector unsigned short
8547vec_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
8552static inline __ATTRS_o_ai vector signed int
8553vec_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
8560static inline __ATTRS_o_ai vector unsigned int
8561vec_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
8567static inline __ATTRS_o_ai vector unsigned int
8568vec_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
8575static inline __ATTRS_o_ai vector bool char
8576vec_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
8582static inline __ATTRS_o_ai vector bool char
8583vec_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
8589static inline __ATTRS_o_ai vector bool char
8590vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) {
8591 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12);
8592}
8593
8594static inline __ATTRS_o_ai vector bool short
8595vec_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
8601static inline __ATTRS_o_ai vector bool short
8602vec_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
8608static inline __ATTRS_o_ai vector bool short
8609vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) {
8610 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12);
8611}
8612
8613static inline __ATTRS_o_ai vector bool int
8614vec_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
8620static inline __ATTRS_o_ai vector bool int
8621vec_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
8627static inline __ATTRS_o_ai vector bool int
8628vec_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
8634static inline __ATTRS_o_ai vector bool char
8635vec_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
8641static inline __ATTRS_o_ai vector bool char
8642vec_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
8648static inline __ATTRS_o_ai vector bool char
8649vec_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
8654static inline __ATTRS_o_ai vector bool short
8655vec_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
8662static inline __ATTRS_o_ai vector bool short
8663vec_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
8669static inline __ATTRS_o_ai vector bool short
8670vec_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
8675static inline __ATTRS_o_ai vector bool int
8676vec_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
8682static inline __ATTRS_o_ai vector bool int
8683vec_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
8689static inline __ATTRS_o_ai vector bool int
8690vec_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
8697static inline __ATTRS_o_ai vector signed char
8698vec_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
8704static inline __ATTRS_o_ai vector unsigned char
8705vec_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
8710static inline __ATTRS_o_ai vector unsigned char
8711vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) {
8712 return __builtin_s390_vfaeb(__a, __b, 8);
8713}
8714
8715static inline __ATTRS_o_ai vector signed short
8716vec_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
8722static inline __ATTRS_o_ai vector unsigned short
8723vec_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
8728static inline __ATTRS_o_ai vector unsigned short
8729vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) {
8730 return __builtin_s390_vfaeh(__a, __b, 8);
8731}
8732
8733static inline __ATTRS_o_ai vector signed int
8734vec_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
8740static inline __ATTRS_o_ai vector unsigned int
8741vec_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
8746static inline __ATTRS_o_ai vector unsigned int
8747vec_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
8753static inline __ATTRS_o_ai vector signed char
8754vec_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
8761static inline __ATTRS_o_ai vector unsigned char
8762vec_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
8767static inline __ATTRS_o_ai vector unsigned char
8768vec_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
8773static inline __ATTRS_o_ai vector signed short
8774vec_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
8781static inline __ATTRS_o_ai vector unsigned short
8782vec_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
8788static inline __ATTRS_o_ai vector unsigned short
8789vec_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
8794static inline __ATTRS_o_ai vector signed int
8795vec_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
8802static inline __ATTRS_o_ai vector unsigned int
8803vec_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
8808static inline __ATTRS_o_ai vector unsigned int
8809vec_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
8816static inline __ATTRS_o_ai vector signed char
8817vec_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
8823static inline __ATTRS_o_ai vector unsigned char
8824vec_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
8829static inline __ATTRS_o_ai vector unsigned char
8830vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) {
8831 return __builtin_s390_vfaezb(__a, __b, 8);
8832}
8833
8834static inline __ATTRS_o_ai vector signed short
8835vec_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
8841static inline __ATTRS_o_ai vector unsigned short
8842vec_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
8847static inline __ATTRS_o_ai vector unsigned short
8848vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) {
8849 return __builtin_s390_vfaezh(__a, __b, 8);
8850}
8851
8852static inline __ATTRS_o_ai vector signed int
8853vec_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
8859static inline __ATTRS_o_ai vector unsigned int
8860vec_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
8865static inline __ATTRS_o_ai vector unsigned int
8866vec_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
8872static inline __ATTRS_o_ai vector signed char
8873vec_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
8880static inline __ATTRS_o_ai vector unsigned char
8881vec_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
8887static inline __ATTRS_o_ai vector unsigned char
8888vec_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
8893static inline __ATTRS_o_ai vector signed short
8894vec_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
8901static inline __ATTRS_o_ai vector unsigned short
8902vec_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
8908static inline __ATTRS_o_ai vector unsigned short
8909vec_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
8914static inline __ATTRS_o_ai vector signed int
8915vec_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
8922static inline __ATTRS_o_ai vector unsigned int
8923vec_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
8929static inline __ATTRS_o_ai vector unsigned int
8930vec_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