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