1/*===---- vecintrin.h - Vector intrinsics ----------------------------------===
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 * copies of the Software, and to permit persons to whom the Software is
8 * furnished to do so, subject to the following conditions:
9 *
10 * The above copyright notice and this permission notice shall be included in
11 * all copies or substantial portions of the Software.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 * THE SOFTWARE.
20 *
21 *===-----------------------------------------------------------------------===
22 */
23
24#if defined(__s390x__) && defined(__VEC__)
25
26#define __ATTRS_ai __attribute__((__always_inline__))
27#define __ATTRS_o __attribute__((__overloadable__))
28#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
29
30#define __constant(PARM) \
31  __attribute__((__enable_if__ ((PARM) == (PARM), \
32     "argument must be a constant integer")))
33#define __constant_range(PARM, LOW, HIGH) \
34  __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \
35     "argument must be a constant integer from " #LOW " to " #HIGH)))
36#define __constant_pow2_range(PARM, LOW, HIGH) \
37  __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \
38                                ((PARM) & ((PARM) - 1)) == 0, \
39     "argument must be a constant power of 2 from " #LOW " to " #HIGH)))
40
41/*-- __lcbb -----------------------------------------------------------------*/
42
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
8947