Home | History | Annotate | Download | only in Headers
      1 /*===---- altivec.h - Standard header for type generic math ---------------===*\
      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 #ifndef __ALTIVEC_H
     24 #define __ALTIVEC_H
     25 
     26 #ifndef __ALTIVEC__
     27 #error "AltiVec support not enabled"
     28 #endif
     29 
     30 /* constants for mapping CR6 bits to predicate result. */
     31 
     32 #define __CR6_EQ     0
     33 #define __CR6_EQ_REV 1
     34 #define __CR6_LT     2
     35 #define __CR6_LT_REV 3
     36 
     37 #define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
     38 
     39 static vector signed char __ATTRS_o_ai
     40 vec_perm(vector signed char __a, vector signed char __b, vector unsigned char __c);
     41 
     42 static vector unsigned char __ATTRS_o_ai
     43 vec_perm(vector unsigned char __a,
     44          vector unsigned char __b,
     45          vector unsigned char __c);
     46 
     47 static vector bool char __ATTRS_o_ai
     48 vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c);
     49 
     50 static vector short __ATTRS_o_ai
     51 vec_perm(vector short __a, vector short __b, vector unsigned char __c);
     52 
     53 static vector unsigned short __ATTRS_o_ai
     54 vec_perm(vector unsigned short __a,
     55          vector unsigned short __b,
     56          vector unsigned char __c);
     57 
     58 static vector bool short __ATTRS_o_ai
     59 vec_perm(vector bool short __a, vector bool short __b, vector unsigned char __c);
     60 
     61 static vector pixel __ATTRS_o_ai
     62 vec_perm(vector pixel __a, vector pixel __b, vector unsigned char __c);
     63 
     64 static vector int __ATTRS_o_ai
     65 vec_perm(vector int __a, vector int __b, vector unsigned char __c);
     66 
     67 static vector unsigned int __ATTRS_o_ai
     68 vec_perm(vector unsigned int __a, vector unsigned int __b, vector unsigned char __c);
     69 
     70 static vector bool int __ATTRS_o_ai
     71 vec_perm(vector bool int __a, vector bool int __b, vector unsigned char __c);
     72 
     73 static vector float __ATTRS_o_ai
     74 vec_perm(vector float __a, vector float __b, vector unsigned char __c);
     75 
     76 static vector unsigned char __ATTRS_o_ai
     77 vec_xor(vector unsigned char __a, vector unsigned char __b);
     78 
     79 /* vec_abs */
     80 
     81 #define __builtin_altivec_abs_v16qi vec_abs
     82 #define __builtin_altivec_abs_v8hi  vec_abs
     83 #define __builtin_altivec_abs_v4si  vec_abs
     84 
     85 static vector signed char __ATTRS_o_ai
     86 vec_abs(vector signed char __a)
     87 {
     88   return __builtin_altivec_vmaxsb(__a, -__a);
     89 }
     90 
     91 static vector signed short __ATTRS_o_ai
     92 vec_abs(vector signed short __a)
     93 {
     94   return __builtin_altivec_vmaxsh(__a, -__a);
     95 }
     96 
     97 static vector signed int __ATTRS_o_ai
     98 vec_abs(vector signed int __a)
     99 {
    100   return __builtin_altivec_vmaxsw(__a, -__a);
    101 }
    102 
    103 static vector float __ATTRS_o_ai
    104 vec_abs(vector float __a)
    105 {
    106   vector unsigned int __res = (vector unsigned int)__a
    107                             & (vector unsigned int)(0x7FFFFFFF);
    108   return (vector float)__res;
    109 }
    110 
    111 /* vec_abss */
    112 
    113 #define __builtin_altivec_abss_v16qi vec_abss
    114 #define __builtin_altivec_abss_v8hi  vec_abss
    115 #define __builtin_altivec_abss_v4si  vec_abss
    116 
    117 static vector signed char __ATTRS_o_ai
    118 vec_abss(vector signed char __a)
    119 {
    120   return __builtin_altivec_vmaxsb
    121            (__a, __builtin_altivec_vsubsbs((vector signed char)(0), __a));
    122 }
    123 
    124 static vector signed short __ATTRS_o_ai
    125 vec_abss(vector signed short __a)
    126 {
    127   return __builtin_altivec_vmaxsh
    128            (__a, __builtin_altivec_vsubshs((vector signed short)(0), __a));
    129 }
    130 
    131 static vector signed int __ATTRS_o_ai
    132 vec_abss(vector signed int __a)
    133 {
    134   return __builtin_altivec_vmaxsw
    135            (__a, __builtin_altivec_vsubsws((vector signed int)(0), __a));
    136 }
    137 
    138 /* vec_add */
    139 
    140 static vector signed char __ATTRS_o_ai
    141 vec_add(vector signed char __a, vector signed char __b)
    142 {
    143   return __a + __b;
    144 }
    145 
    146 static vector signed char __ATTRS_o_ai
    147 vec_add(vector bool char __a, vector signed char __b)
    148 {
    149   return (vector signed char)__a + __b;
    150 }
    151 
    152 static vector signed char __ATTRS_o_ai
    153 vec_add(vector signed char __a, vector bool char __b)
    154 {
    155   return __a + (vector signed char)__b;
    156 }
    157 
    158 static vector unsigned char __ATTRS_o_ai
    159 vec_add(vector unsigned char __a, vector unsigned char __b)
    160 {
    161   return __a + __b;
    162 }
    163 
    164 static vector unsigned char __ATTRS_o_ai
    165 vec_add(vector bool char __a, vector unsigned char __b)
    166 {
    167   return (vector unsigned char)__a + __b;
    168 }
    169 
    170 static vector unsigned char __ATTRS_o_ai
    171 vec_add(vector unsigned char __a, vector bool char __b)
    172 {
    173   return __a + (vector unsigned char)__b;
    174 }
    175 
    176 static vector short __ATTRS_o_ai
    177 vec_add(vector short __a, vector short __b)
    178 {
    179   return __a + __b;
    180 }
    181 
    182 static vector short __ATTRS_o_ai
    183 vec_add(vector bool short __a, vector short __b)
    184 {
    185   return (vector short)__a + __b;
    186 }
    187 
    188 static vector short __ATTRS_o_ai
    189 vec_add(vector short __a, vector bool short __b)
    190 {
    191   return __a + (vector short)__b;
    192 }
    193 
    194 static vector unsigned short __ATTRS_o_ai
    195 vec_add(vector unsigned short __a, vector unsigned short __b)
    196 {
    197   return __a + __b;
    198 }
    199 
    200 static vector unsigned short __ATTRS_o_ai
    201 vec_add(vector bool short __a, vector unsigned short __b)
    202 {
    203   return (vector unsigned short)__a + __b;
    204 }
    205 
    206 static vector unsigned short __ATTRS_o_ai
    207 vec_add(vector unsigned short __a, vector bool short __b)
    208 {
    209   return __a + (vector unsigned short)__b;
    210 }
    211 
    212 static vector int __ATTRS_o_ai
    213 vec_add(vector int __a, vector int __b)
    214 {
    215   return __a + __b;
    216 }
    217 
    218 static vector int __ATTRS_o_ai
    219 vec_add(vector bool int __a, vector int __b)
    220 {
    221   return (vector int)__a + __b;
    222 }
    223 
    224 static vector int __ATTRS_o_ai
    225 vec_add(vector int __a, vector bool int __b)
    226 {
    227   return __a + (vector int)__b;
    228 }
    229 
    230 static vector unsigned int __ATTRS_o_ai
    231 vec_add(vector unsigned int __a, vector unsigned int __b)
    232 {
    233   return __a + __b;
    234 }
    235 
    236 static vector unsigned int __ATTRS_o_ai
    237 vec_add(vector bool int __a, vector unsigned int __b)
    238 {
    239   return (vector unsigned int)__a + __b;
    240 }
    241 
    242 static vector unsigned int __ATTRS_o_ai
    243 vec_add(vector unsigned int __a, vector bool int __b)
    244 {
    245   return __a + (vector unsigned int)__b;
    246 }
    247 
    248 static vector float __ATTRS_o_ai
    249 vec_add(vector float __a, vector float __b)
    250 {
    251   return __a + __b;
    252 }
    253 
    254 /* vec_vaddubm */
    255 
    256 #define __builtin_altivec_vaddubm vec_vaddubm
    257 
    258 static vector signed char __ATTRS_o_ai
    259 vec_vaddubm(vector signed char __a, vector signed char __b)
    260 {
    261   return __a + __b;
    262 }
    263 
    264 static vector signed char __ATTRS_o_ai
    265 vec_vaddubm(vector bool char __a, vector signed char __b)
    266 {
    267   return (vector signed char)__a + __b;
    268 }
    269 
    270 static vector signed char __ATTRS_o_ai
    271 vec_vaddubm(vector signed char __a, vector bool char __b)
    272 {
    273   return __a + (vector signed char)__b;
    274 }
    275 
    276 static vector unsigned char __ATTRS_o_ai
    277 vec_vaddubm(vector unsigned char __a, vector unsigned char __b)
    278 {
    279   return __a + __b;
    280 }
    281 
    282 static vector unsigned char __ATTRS_o_ai
    283 vec_vaddubm(vector bool char __a, vector unsigned char __b)
    284 {
    285   return (vector unsigned char)__a + __b;
    286 }
    287 
    288 static vector unsigned char __ATTRS_o_ai
    289 vec_vaddubm(vector unsigned char __a, vector bool char __b)
    290 {
    291   return __a + (vector unsigned char)__b;
    292 }
    293 
    294 /* vec_vadduhm */
    295 
    296 #define __builtin_altivec_vadduhm vec_vadduhm
    297 
    298 static vector short __ATTRS_o_ai
    299 vec_vadduhm(vector short __a, vector short __b)
    300 {
    301   return __a + __b;
    302 }
    303 
    304 static vector short __ATTRS_o_ai
    305 vec_vadduhm(vector bool short __a, vector short __b)
    306 {
    307   return (vector short)__a + __b;
    308 }
    309 
    310 static vector short __ATTRS_o_ai
    311 vec_vadduhm(vector short __a, vector bool short __b)
    312 {
    313   return __a + (vector short)__b;
    314 }
    315 
    316 static vector unsigned short __ATTRS_o_ai
    317 vec_vadduhm(vector unsigned short __a, vector unsigned short __b)
    318 {
    319   return __a + __b;
    320 }
    321 
    322 static vector unsigned short __ATTRS_o_ai
    323 vec_vadduhm(vector bool short __a, vector unsigned short __b)
    324 {
    325   return (vector unsigned short)__a + __b;
    326 }
    327 
    328 static vector unsigned short __ATTRS_o_ai
    329 vec_vadduhm(vector unsigned short __a, vector bool short __b)
    330 {
    331   return __a + (vector unsigned short)__b;
    332 }
    333 
    334 /* vec_vadduwm */
    335 
    336 #define __builtin_altivec_vadduwm vec_vadduwm
    337 
    338 static vector int __ATTRS_o_ai
    339 vec_vadduwm(vector int __a, vector int __b)
    340 {
    341   return __a + __b;
    342 }
    343 
    344 static vector int __ATTRS_o_ai
    345 vec_vadduwm(vector bool int __a, vector int __b)
    346 {
    347   return (vector int)__a + __b;
    348 }
    349 
    350 static vector int __ATTRS_o_ai
    351 vec_vadduwm(vector int __a, vector bool int __b)
    352 {
    353   return __a + (vector int)__b;
    354 }
    355 
    356 static vector unsigned int __ATTRS_o_ai
    357 vec_vadduwm(vector unsigned int __a, vector unsigned int __b)
    358 {
    359   return __a + __b;
    360 }
    361 
    362 static vector unsigned int __ATTRS_o_ai
    363 vec_vadduwm(vector bool int __a, vector unsigned int __b)
    364 {
    365   return (vector unsigned int)__a + __b;
    366 }
    367 
    368 static vector unsigned int __ATTRS_o_ai
    369 vec_vadduwm(vector unsigned int __a, vector bool int __b)
    370 {
    371   return __a + (vector unsigned int)__b;
    372 }
    373 
    374 /* vec_vaddfp */
    375 
    376 #define __builtin_altivec_vaddfp  vec_vaddfp
    377 
    378 static vector float __attribute__((__always_inline__))
    379 vec_vaddfp(vector float __a, vector float __b)
    380 {
    381   return __a + __b;
    382 }
    383 
    384 /* vec_addc */
    385 
    386 static vector unsigned int __attribute__((__always_inline__))
    387 vec_addc(vector unsigned int __a, vector unsigned int __b)
    388 {
    389   return __builtin_altivec_vaddcuw(__a, __b);
    390 }
    391 
    392 /* vec_vaddcuw */
    393 
    394 static vector unsigned int __attribute__((__always_inline__))
    395 vec_vaddcuw(vector unsigned int __a, vector unsigned int __b)
    396 {
    397   return __builtin_altivec_vaddcuw(__a, __b);
    398 }
    399 
    400 /* vec_adds */
    401 
    402 static vector signed char __ATTRS_o_ai
    403 vec_adds(vector signed char __a, vector signed char __b)
    404 {
    405   return __builtin_altivec_vaddsbs(__a, __b);
    406 }
    407 
    408 static vector signed char __ATTRS_o_ai
    409 vec_adds(vector bool char __a, vector signed char __b)
    410 {
    411   return __builtin_altivec_vaddsbs((vector signed char)__a, __b);
    412 }
    413 
    414 static vector signed char __ATTRS_o_ai
    415 vec_adds(vector signed char __a, vector bool char __b)
    416 {
    417   return __builtin_altivec_vaddsbs(__a, (vector signed char)__b);
    418 }
    419 
    420 static vector unsigned char __ATTRS_o_ai
    421 vec_adds(vector unsigned char __a, vector unsigned char __b)
    422 {
    423   return __builtin_altivec_vaddubs(__a, __b);
    424 }
    425 
    426 static vector unsigned char __ATTRS_o_ai
    427 vec_adds(vector bool char __a, vector unsigned char __b)
    428 {
    429   return __builtin_altivec_vaddubs((vector unsigned char)__a, __b);
    430 }
    431 
    432 static vector unsigned char __ATTRS_o_ai
    433 vec_adds(vector unsigned char __a, vector bool char __b)
    434 {
    435   return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b);
    436 }
    437 
    438 static vector short __ATTRS_o_ai
    439 vec_adds(vector short __a, vector short __b)
    440 {
    441   return __builtin_altivec_vaddshs(__a, __b);
    442 }
    443 
    444 static vector short __ATTRS_o_ai
    445 vec_adds(vector bool short __a, vector short __b)
    446 {
    447   return __builtin_altivec_vaddshs((vector short)__a, __b);
    448 }
    449 
    450 static vector short __ATTRS_o_ai
    451 vec_adds(vector short __a, vector bool short __b)
    452 {
    453   return __builtin_altivec_vaddshs(__a, (vector short)__b);
    454 }
    455 
    456 static vector unsigned short __ATTRS_o_ai
    457 vec_adds(vector unsigned short __a, vector unsigned short __b)
    458 {
    459   return __builtin_altivec_vadduhs(__a, __b);
    460 }
    461 
    462 static vector unsigned short __ATTRS_o_ai
    463 vec_adds(vector bool short __a, vector unsigned short __b)
    464 {
    465   return __builtin_altivec_vadduhs((vector unsigned short)__a, __b);
    466 }
    467 
    468 static vector unsigned short __ATTRS_o_ai
    469 vec_adds(vector unsigned short __a, vector bool short __b)
    470 {
    471   return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b);
    472 }
    473 
    474 static vector int __ATTRS_o_ai
    475 vec_adds(vector int __a, vector int __b)
    476 {
    477   return __builtin_altivec_vaddsws(__a, __b);
    478 }
    479 
    480 static vector int __ATTRS_o_ai
    481 vec_adds(vector bool int __a, vector int __b)
    482 {
    483   return __builtin_altivec_vaddsws((vector int)__a, __b);
    484 }
    485 
    486 static vector int __ATTRS_o_ai
    487 vec_adds(vector int __a, vector bool int __b)
    488 {
    489   return __builtin_altivec_vaddsws(__a, (vector int)__b);
    490 }
    491 
    492 static vector unsigned int __ATTRS_o_ai
    493 vec_adds(vector unsigned int __a, vector unsigned int __b)
    494 {
    495   return __builtin_altivec_vadduws(__a, __b);
    496 }
    497 
    498 static vector unsigned int __ATTRS_o_ai
    499 vec_adds(vector bool int __a, vector unsigned int __b)
    500 {
    501   return __builtin_altivec_vadduws((vector unsigned int)__a, __b);
    502 }
    503 
    504 static vector unsigned int __ATTRS_o_ai
    505 vec_adds(vector unsigned int __a, vector bool int __b)
    506 {
    507   return __builtin_altivec_vadduws(__a, (vector unsigned int)__b);
    508 }
    509 
    510 /* vec_vaddsbs */
    511 
    512 static vector signed char __ATTRS_o_ai
    513 vec_vaddsbs(vector signed char __a, vector signed char __b)
    514 {
    515   return __builtin_altivec_vaddsbs(__a, __b);
    516 }
    517 
    518 static vector signed char __ATTRS_o_ai
    519 vec_vaddsbs(vector bool char __a, vector signed char __b)
    520 {
    521   return __builtin_altivec_vaddsbs((vector signed char)__a, __b);
    522 }
    523 
    524 static vector signed char __ATTRS_o_ai
    525 vec_vaddsbs(vector signed char __a, vector bool char __b)
    526 {
    527   return __builtin_altivec_vaddsbs(__a, (vector signed char)__b);
    528 }
    529 
    530 /* vec_vaddubs */
    531 
    532 static vector unsigned char __ATTRS_o_ai
    533 vec_vaddubs(vector unsigned char __a, vector unsigned char __b)
    534 {
    535   return __builtin_altivec_vaddubs(__a, __b);
    536 }
    537 
    538 static vector unsigned char __ATTRS_o_ai
    539 vec_vaddubs(vector bool char __a, vector unsigned char __b)
    540 {
    541   return __builtin_altivec_vaddubs((vector unsigned char)__a, __b);
    542 }
    543 
    544 static vector unsigned char __ATTRS_o_ai
    545 vec_vaddubs(vector unsigned char __a, vector bool char __b)
    546 {
    547   return __builtin_altivec_vaddubs(__a, (vector unsigned char)__b);
    548 }
    549 
    550 /* vec_vaddshs */
    551 
    552 static vector short __ATTRS_o_ai
    553 vec_vaddshs(vector short __a, vector short __b)
    554 {
    555   return __builtin_altivec_vaddshs(__a, __b);
    556 }
    557 
    558 static vector short __ATTRS_o_ai
    559 vec_vaddshs(vector bool short __a, vector short __b)
    560 {
    561   return __builtin_altivec_vaddshs((vector short)__a, __b);
    562 }
    563 
    564 static vector short __ATTRS_o_ai
    565 vec_vaddshs(vector short __a, vector bool short __b)
    566 {
    567   return __builtin_altivec_vaddshs(__a, (vector short)__b);
    568 }
    569 
    570 /* vec_vadduhs */
    571 
    572 static vector unsigned short __ATTRS_o_ai
    573 vec_vadduhs(vector unsigned short __a, vector unsigned short __b)
    574 {
    575   return __builtin_altivec_vadduhs(__a, __b);
    576 }
    577 
    578 static vector unsigned short __ATTRS_o_ai
    579 vec_vadduhs(vector bool short __a, vector unsigned short __b)
    580 {
    581   return __builtin_altivec_vadduhs((vector unsigned short)__a, __b);
    582 }
    583 
    584 static vector unsigned short __ATTRS_o_ai
    585 vec_vadduhs(vector unsigned short __a, vector bool short __b)
    586 {
    587   return __builtin_altivec_vadduhs(__a, (vector unsigned short)__b);
    588 }
    589 
    590 /* vec_vaddsws */
    591 
    592 static vector int __ATTRS_o_ai
    593 vec_vaddsws(vector int __a, vector int __b)
    594 {
    595   return __builtin_altivec_vaddsws(__a, __b);
    596 }
    597 
    598 static vector int __ATTRS_o_ai
    599 vec_vaddsws(vector bool int __a, vector int __b)
    600 {
    601   return __builtin_altivec_vaddsws((vector int)__a, __b);
    602 }
    603 
    604 static vector int __ATTRS_o_ai
    605 vec_vaddsws(vector int __a, vector bool int __b)
    606 {
    607   return __builtin_altivec_vaddsws(__a, (vector int)__b);
    608 }
    609 
    610 /* vec_vadduws */
    611 
    612 static vector unsigned int __ATTRS_o_ai
    613 vec_vadduws(vector unsigned int __a, vector unsigned int __b)
    614 {
    615   return __builtin_altivec_vadduws(__a, __b);
    616 }
    617 
    618 static vector unsigned int __ATTRS_o_ai
    619 vec_vadduws(vector bool int __a, vector unsigned int __b)
    620 {
    621   return __builtin_altivec_vadduws((vector unsigned int)__a, __b);
    622 }
    623 
    624 static vector unsigned int __ATTRS_o_ai
    625 vec_vadduws(vector unsigned int __a, vector bool int __b)
    626 {
    627   return __builtin_altivec_vadduws(__a, (vector unsigned int)__b);
    628 }
    629 
    630 /* vec_and */
    631 
    632 #define __builtin_altivec_vand vec_and
    633 
    634 static vector signed char __ATTRS_o_ai
    635 vec_and(vector signed char __a, vector signed char __b)
    636 {
    637   return __a & __b;
    638 }
    639 
    640 static vector signed char __ATTRS_o_ai
    641 vec_and(vector bool char __a, vector signed char __b)
    642 {
    643   return (vector signed char)__a & __b;
    644 }
    645 
    646 static vector signed char __ATTRS_o_ai
    647 vec_and(vector signed char __a, vector bool char __b)
    648 {
    649   return __a & (vector signed char)__b;
    650 }
    651 
    652 static vector unsigned char __ATTRS_o_ai
    653 vec_and(vector unsigned char __a, vector unsigned char __b)
    654 {
    655   return __a & __b;
    656 }
    657 
    658 static vector unsigned char __ATTRS_o_ai
    659 vec_and(vector bool char __a, vector unsigned char __b)
    660 {
    661   return (vector unsigned char)__a & __b;
    662 }
    663 
    664 static vector unsigned char __ATTRS_o_ai
    665 vec_and(vector unsigned char __a, vector bool char __b)
    666 {
    667   return __a & (vector unsigned char)__b;
    668 }
    669 
    670 static vector bool char __ATTRS_o_ai
    671 vec_and(vector bool char __a, vector bool char __b)
    672 {
    673   return __a & __b;
    674 }
    675 
    676 static vector short __ATTRS_o_ai
    677 vec_and(vector short __a, vector short __b)
    678 {
    679   return __a & __b;
    680 }
    681 
    682 static vector short __ATTRS_o_ai
    683 vec_and(vector bool short __a, vector short __b)
    684 {
    685   return (vector short)__a & __b;
    686 }
    687 
    688 static vector short __ATTRS_o_ai
    689 vec_and(vector short __a, vector bool short __b)
    690 {
    691   return __a & (vector short)__b;
    692 }
    693 
    694 static vector unsigned short __ATTRS_o_ai
    695 vec_and(vector unsigned short __a, vector unsigned short __b)
    696 {
    697   return __a & __b;
    698 }
    699 
    700 static vector unsigned short __ATTRS_o_ai
    701 vec_and(vector bool short __a, vector unsigned short __b)
    702 {
    703   return (vector unsigned short)__a & __b;
    704 }
    705 
    706 static vector unsigned short __ATTRS_o_ai
    707 vec_and(vector unsigned short __a, vector bool short __b)
    708 {
    709   return __a & (vector unsigned short)__b;
    710 }
    711 
    712 static vector bool short __ATTRS_o_ai
    713 vec_and(vector bool short __a, vector bool short __b)
    714 {
    715   return __a & __b;
    716 }
    717 
    718 static vector int __ATTRS_o_ai
    719 vec_and(vector int __a, vector int __b)
    720 {
    721   return __a & __b;
    722 }
    723 
    724 static vector int __ATTRS_o_ai
    725 vec_and(vector bool int __a, vector int __b)
    726 {
    727   return (vector int)__a & __b;
    728 }
    729 
    730 static vector int __ATTRS_o_ai
    731 vec_and(vector int __a, vector bool int __b)
    732 {
    733   return __a & (vector int)__b;
    734 }
    735 
    736 static vector unsigned int __ATTRS_o_ai
    737 vec_and(vector unsigned int __a, vector unsigned int __b)
    738 {
    739   return __a & __b;
    740 }
    741 
    742 static vector unsigned int __ATTRS_o_ai
    743 vec_and(vector bool int __a, vector unsigned int __b)
    744 {
    745   return (vector unsigned int)__a & __b;
    746 }
    747 
    748 static vector unsigned int __ATTRS_o_ai
    749 vec_and(vector unsigned int __a, vector bool int __b)
    750 {
    751   return __a & (vector unsigned int)__b;
    752 }
    753 
    754 static vector bool int __ATTRS_o_ai
    755 vec_and(vector bool int __a, vector bool int __b)
    756 {
    757   return __a & __b;
    758 }
    759 
    760 static vector float __ATTRS_o_ai
    761 vec_and(vector float __a, vector float __b)
    762 {
    763   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
    764   return (vector float)__res;
    765 }
    766 
    767 static vector float __ATTRS_o_ai
    768 vec_and(vector bool int __a, vector float __b)
    769 {
    770   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
    771   return (vector float)__res;
    772 }
    773 
    774 static vector float __ATTRS_o_ai
    775 vec_and(vector float __a, vector bool int __b)
    776 {
    777   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
    778   return (vector float)__res;
    779 }
    780 
    781 /* vec_vand */
    782 
    783 static vector signed char __ATTRS_o_ai
    784 vec_vand(vector signed char __a, vector signed char __b)
    785 {
    786   return __a & __b;
    787 }
    788 
    789 static vector signed char __ATTRS_o_ai
    790 vec_vand(vector bool char __a, vector signed char __b)
    791 {
    792   return (vector signed char)__a & __b;
    793 }
    794 
    795 static vector signed char __ATTRS_o_ai
    796 vec_vand(vector signed char __a, vector bool char __b)
    797 {
    798   return __a & (vector signed char)__b;
    799 }
    800 
    801 static vector unsigned char __ATTRS_o_ai
    802 vec_vand(vector unsigned char __a, vector unsigned char __b)
    803 {
    804   return __a & __b;
    805 }
    806 
    807 static vector unsigned char __ATTRS_o_ai
    808 vec_vand(vector bool char __a, vector unsigned char __b)
    809 {
    810   return (vector unsigned char)__a & __b;
    811 }
    812 
    813 static vector unsigned char __ATTRS_o_ai
    814 vec_vand(vector unsigned char __a, vector bool char __b)
    815 {
    816   return __a & (vector unsigned char)__b;
    817 }
    818 
    819 static vector bool char __ATTRS_o_ai
    820 vec_vand(vector bool char __a, vector bool char __b)
    821 {
    822   return __a & __b;
    823 }
    824 
    825 static vector short __ATTRS_o_ai
    826 vec_vand(vector short __a, vector short __b)
    827 {
    828   return __a & __b;
    829 }
    830 
    831 static vector short __ATTRS_o_ai
    832 vec_vand(vector bool short __a, vector short __b)
    833 {
    834   return (vector short)__a & __b;
    835 }
    836 
    837 static vector short __ATTRS_o_ai
    838 vec_vand(vector short __a, vector bool short __b)
    839 {
    840   return __a & (vector short)__b;
    841 }
    842 
    843 static vector unsigned short __ATTRS_o_ai
    844 vec_vand(vector unsigned short __a, vector unsigned short __b)
    845 {
    846   return __a & __b;
    847 }
    848 
    849 static vector unsigned short __ATTRS_o_ai
    850 vec_vand(vector bool short __a, vector unsigned short __b)
    851 {
    852   return (vector unsigned short)__a & __b;
    853 }
    854 
    855 static vector unsigned short __ATTRS_o_ai
    856 vec_vand(vector unsigned short __a, vector bool short __b)
    857 {
    858   return __a & (vector unsigned short)__b;
    859 }
    860 
    861 static vector bool short __ATTRS_o_ai
    862 vec_vand(vector bool short __a, vector bool short __b)
    863 {
    864   return __a & __b;
    865 }
    866 
    867 static vector int __ATTRS_o_ai
    868 vec_vand(vector int __a, vector int __b)
    869 {
    870   return __a & __b;
    871 }
    872 
    873 static vector int __ATTRS_o_ai
    874 vec_vand(vector bool int __a, vector int __b)
    875 {
    876   return (vector int)__a & __b;
    877 }
    878 
    879 static vector int __ATTRS_o_ai
    880 vec_vand(vector int __a, vector bool int __b)
    881 {
    882   return __a & (vector int)__b;
    883 }
    884 
    885 static vector unsigned int __ATTRS_o_ai
    886 vec_vand(vector unsigned int __a, vector unsigned int __b)
    887 {
    888   return __a & __b;
    889 }
    890 
    891 static vector unsigned int __ATTRS_o_ai
    892 vec_vand(vector bool int __a, vector unsigned int __b)
    893 {
    894   return (vector unsigned int)__a & __b;
    895 }
    896 
    897 static vector unsigned int __ATTRS_o_ai
    898 vec_vand(vector unsigned int __a, vector bool int __b)
    899 {
    900   return __a & (vector unsigned int)__b;
    901 }
    902 
    903 static vector bool int __ATTRS_o_ai
    904 vec_vand(vector bool int __a, vector bool int __b)
    905 {
    906   return __a & __b;
    907 }
    908 
    909 static vector float __ATTRS_o_ai
    910 vec_vand(vector float __a, vector float __b)
    911 {
    912   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
    913   return (vector float)__res;
    914 }
    915 
    916 static vector float __ATTRS_o_ai
    917 vec_vand(vector bool int __a, vector float __b)
    918 {
    919   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
    920   return (vector float)__res;
    921 }
    922 
    923 static vector float __ATTRS_o_ai
    924 vec_vand(vector float __a, vector bool int __b)
    925 {
    926   vector unsigned int __res = (vector unsigned int)__a & (vector unsigned int)__b;
    927   return (vector float)__res;
    928 }
    929 
    930 /* vec_andc */
    931 
    932 #define __builtin_altivec_vandc vec_andc
    933 
    934 static vector signed char __ATTRS_o_ai
    935 vec_andc(vector signed char __a, vector signed char __b)
    936 {
    937   return __a & ~__b;
    938 }
    939 
    940 static vector signed char __ATTRS_o_ai
    941 vec_andc(vector bool char __a, vector signed char __b)
    942 {
    943   return (vector signed char)__a & ~__b;
    944 }
    945 
    946 static vector signed char __ATTRS_o_ai
    947 vec_andc(vector signed char __a, vector bool char __b)
    948 {
    949   return __a & ~(vector signed char)__b;
    950 }
    951 
    952 static vector unsigned char __ATTRS_o_ai
    953 vec_andc(vector unsigned char __a, vector unsigned char __b)
    954 {
    955   return __a & ~__b;
    956 }
    957 
    958 static vector unsigned char __ATTRS_o_ai
    959 vec_andc(vector bool char __a, vector unsigned char __b)
    960 {
    961   return (vector unsigned char)__a & ~__b;
    962 }
    963 
    964 static vector unsigned char __ATTRS_o_ai
    965 vec_andc(vector unsigned char __a, vector bool char __b)
    966 {
    967   return __a & ~(vector unsigned char)__b;
    968 }
    969 
    970 static vector bool char __ATTRS_o_ai
    971 vec_andc(vector bool char __a, vector bool char __b)
    972 {
    973   return __a & ~__b;
    974 }
    975 
    976 static vector short __ATTRS_o_ai
    977 vec_andc(vector short __a, vector short __b)
    978 {
    979   return __a & ~__b;
    980 }
    981 
    982 static vector short __ATTRS_o_ai
    983 vec_andc(vector bool short __a, vector short __b)
    984 {
    985   return (vector short)__a & ~__b;
    986 }
    987 
    988 static vector short __ATTRS_o_ai
    989 vec_andc(vector short __a, vector bool short __b)
    990 {
    991   return __a & ~(vector short)__b;
    992 }
    993 
    994 static vector unsigned short __ATTRS_o_ai
    995 vec_andc(vector unsigned short __a, vector unsigned short __b)
    996 {
    997   return __a & ~__b;
    998 }
    999 
   1000 static vector unsigned short __ATTRS_o_ai
   1001 vec_andc(vector bool short __a, vector unsigned short __b)
   1002 {
   1003   return (vector unsigned short)__a & ~__b;
   1004 }
   1005 
   1006 static vector unsigned short __ATTRS_o_ai
   1007 vec_andc(vector unsigned short __a, vector bool short __b)
   1008 {
   1009   return __a & ~(vector unsigned short)__b;
   1010 }
   1011 
   1012 static vector bool short __ATTRS_o_ai
   1013 vec_andc(vector bool short __a, vector bool short __b)
   1014 {
   1015   return __a & ~__b;
   1016 }
   1017 
   1018 static vector int __ATTRS_o_ai
   1019 vec_andc(vector int __a, vector int __b)
   1020 {
   1021   return __a & ~__b;
   1022 }
   1023 
   1024 static vector int __ATTRS_o_ai
   1025 vec_andc(vector bool int __a, vector int __b)
   1026 {
   1027   return (vector int)__a & ~__b;
   1028 }
   1029 
   1030 static vector int __ATTRS_o_ai
   1031 vec_andc(vector int __a, vector bool int __b)
   1032 {
   1033   return __a & ~(vector int)__b;
   1034 }
   1035 
   1036 static vector unsigned int __ATTRS_o_ai
   1037 vec_andc(vector unsigned int __a, vector unsigned int __b)
   1038 {
   1039   return __a & ~__b;
   1040 }
   1041 
   1042 static vector unsigned int __ATTRS_o_ai
   1043 vec_andc(vector bool int __a, vector unsigned int __b)
   1044 {
   1045   return (vector unsigned int)__a & ~__b;
   1046 }
   1047 
   1048 static vector unsigned int __ATTRS_o_ai
   1049 vec_andc(vector unsigned int __a, vector bool int __b)
   1050 {
   1051   return __a & ~(vector unsigned int)__b;
   1052 }
   1053 
   1054 static vector bool int __ATTRS_o_ai
   1055 vec_andc(vector bool int __a, vector bool int __b)
   1056 {
   1057   return __a & ~__b;
   1058 }
   1059 
   1060 static vector float __ATTRS_o_ai
   1061 vec_andc(vector float __a, vector float __b)
   1062 {
   1063   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
   1064   return (vector float)__res;
   1065 }
   1066 
   1067 static vector float __ATTRS_o_ai
   1068 vec_andc(vector bool int __a, vector float __b)
   1069 {
   1070   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
   1071   return (vector float)__res;
   1072 }
   1073 
   1074 static vector float __ATTRS_o_ai
   1075 vec_andc(vector float __a, vector bool int __b)
   1076 {
   1077   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
   1078   return (vector float)__res;
   1079 }
   1080 
   1081 /* vec_vandc */
   1082 
   1083 static vector signed char __ATTRS_o_ai
   1084 vec_vandc(vector signed char __a, vector signed char __b)
   1085 {
   1086   return __a & ~__b;
   1087 }
   1088 
   1089 static vector signed char __ATTRS_o_ai
   1090 vec_vandc(vector bool char __a, vector signed char __b)
   1091 {
   1092   return (vector signed char)__a & ~__b;
   1093 }
   1094 
   1095 static vector signed char __ATTRS_o_ai
   1096 vec_vandc(vector signed char __a, vector bool char __b)
   1097 {
   1098   return __a & ~(vector signed char)__b;
   1099 }
   1100 
   1101 static vector unsigned char __ATTRS_o_ai
   1102 vec_vandc(vector unsigned char __a, vector unsigned char __b)
   1103 {
   1104   return __a & ~__b;
   1105 }
   1106 
   1107 static vector unsigned char __ATTRS_o_ai
   1108 vec_vandc(vector bool char __a, vector unsigned char __b)
   1109 {
   1110   return (vector unsigned char)__a & ~__b;
   1111 }
   1112 
   1113 static vector unsigned char __ATTRS_o_ai
   1114 vec_vandc(vector unsigned char __a, vector bool char __b)
   1115 {
   1116   return __a & ~(vector unsigned char)__b;
   1117 }
   1118 
   1119 static vector bool char __ATTRS_o_ai
   1120 vec_vandc(vector bool char __a, vector bool char __b)
   1121 {
   1122   return __a & ~__b;
   1123 }
   1124 
   1125 static vector short __ATTRS_o_ai
   1126 vec_vandc(vector short __a, vector short __b)
   1127 {
   1128   return __a & ~__b;
   1129 }
   1130 
   1131 static vector short __ATTRS_o_ai
   1132 vec_vandc(vector bool short __a, vector short __b)
   1133 {
   1134   return (vector short)__a & ~__b;
   1135 }
   1136 
   1137 static vector short __ATTRS_o_ai
   1138 vec_vandc(vector short __a, vector bool short __b)
   1139 {
   1140   return __a & ~(vector short)__b;
   1141 }
   1142 
   1143 static vector unsigned short __ATTRS_o_ai
   1144 vec_vandc(vector unsigned short __a, vector unsigned short __b)
   1145 {
   1146   return __a & ~__b;
   1147 }
   1148 
   1149 static vector unsigned short __ATTRS_o_ai
   1150 vec_vandc(vector bool short __a, vector unsigned short __b)
   1151 {
   1152   return (vector unsigned short)__a & ~__b;
   1153 }
   1154 
   1155 static vector unsigned short __ATTRS_o_ai
   1156 vec_vandc(vector unsigned short __a, vector bool short __b)
   1157 {
   1158   return __a & ~(vector unsigned short)__b;
   1159 }
   1160 
   1161 static vector bool short __ATTRS_o_ai
   1162 vec_vandc(vector bool short __a, vector bool short __b)
   1163 {
   1164   return __a & ~__b;
   1165 }
   1166 
   1167 static vector int __ATTRS_o_ai
   1168 vec_vandc(vector int __a, vector int __b)
   1169 {
   1170   return __a & ~__b;
   1171 }
   1172 
   1173 static vector int __ATTRS_o_ai
   1174 vec_vandc(vector bool int __a, vector int __b)
   1175 {
   1176   return (vector int)__a & ~__b;
   1177 }
   1178 
   1179 static vector int __ATTRS_o_ai
   1180 vec_vandc(vector int __a, vector bool int __b)
   1181 {
   1182   return __a & ~(vector int)__b;
   1183 }
   1184 
   1185 static vector unsigned int __ATTRS_o_ai
   1186 vec_vandc(vector unsigned int __a, vector unsigned int __b)
   1187 {
   1188   return __a & ~__b;
   1189 }
   1190 
   1191 static vector unsigned int __ATTRS_o_ai
   1192 vec_vandc(vector bool int __a, vector unsigned int __b)
   1193 {
   1194   return (vector unsigned int)__a & ~__b;
   1195 }
   1196 
   1197 static vector unsigned int __ATTRS_o_ai
   1198 vec_vandc(vector unsigned int __a, vector bool int __b)
   1199 {
   1200   return __a & ~(vector unsigned int)__b;
   1201 }
   1202 
   1203 static vector bool int __ATTRS_o_ai
   1204 vec_vandc(vector bool int __a, vector bool int __b)
   1205 {
   1206   return __a & ~__b;
   1207 }
   1208 
   1209 static vector float __ATTRS_o_ai
   1210 vec_vandc(vector float __a, vector float __b)
   1211 {
   1212   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
   1213   return (vector float)__res;
   1214 }
   1215 
   1216 static vector float __ATTRS_o_ai
   1217 vec_vandc(vector bool int __a, vector float __b)
   1218 {
   1219   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
   1220   return (vector float)__res;
   1221 }
   1222 
   1223 static vector float __ATTRS_o_ai
   1224 vec_vandc(vector float __a, vector bool int __b)
   1225 {
   1226   vector unsigned int __res = (vector unsigned int)__a & ~(vector unsigned int)__b;
   1227   return (vector float)__res;
   1228 }
   1229 
   1230 /* vec_avg */
   1231 
   1232 static vector signed char __ATTRS_o_ai
   1233 vec_avg(vector signed char __a, vector signed char __b)
   1234 {
   1235   return __builtin_altivec_vavgsb(__a, __b);
   1236 }
   1237 
   1238 static vector unsigned char __ATTRS_o_ai
   1239 vec_avg(vector unsigned char __a, vector unsigned char __b)
   1240 {
   1241   return __builtin_altivec_vavgub(__a, __b);
   1242 }
   1243 
   1244 static vector short __ATTRS_o_ai
   1245 vec_avg(vector short __a, vector short __b)
   1246 {
   1247   return __builtin_altivec_vavgsh(__a, __b);
   1248 }
   1249 
   1250 static vector unsigned short __ATTRS_o_ai
   1251 vec_avg(vector unsigned short __a, vector unsigned short __b)
   1252 {
   1253   return __builtin_altivec_vavguh(__a, __b);
   1254 }
   1255 
   1256 static vector int __ATTRS_o_ai
   1257 vec_avg(vector int __a, vector int __b)
   1258 {
   1259   return __builtin_altivec_vavgsw(__a, __b);
   1260 }
   1261 
   1262 static vector unsigned int __ATTRS_o_ai
   1263 vec_avg(vector unsigned int __a, vector unsigned int __b)
   1264 {
   1265   return __builtin_altivec_vavguw(__a, __b);
   1266 }
   1267 
   1268 /* vec_vavgsb */
   1269 
   1270 static vector signed char __attribute__((__always_inline__))
   1271 vec_vavgsb(vector signed char __a, vector signed char __b)
   1272 {
   1273   return __builtin_altivec_vavgsb(__a, __b);
   1274 }
   1275 
   1276 /* vec_vavgub */
   1277 
   1278 static vector unsigned char __attribute__((__always_inline__))
   1279 vec_vavgub(vector unsigned char __a, vector unsigned char __b)
   1280 {
   1281   return __builtin_altivec_vavgub(__a, __b);
   1282 }
   1283 
   1284 /* vec_vavgsh */
   1285 
   1286 static vector short __attribute__((__always_inline__))
   1287 vec_vavgsh(vector short __a, vector short __b)
   1288 {
   1289   return __builtin_altivec_vavgsh(__a, __b);
   1290 }
   1291 
   1292 /* vec_vavguh */
   1293 
   1294 static vector unsigned short __attribute__((__always_inline__))
   1295 vec_vavguh(vector unsigned short __a, vector unsigned short __b)
   1296 {
   1297   return __builtin_altivec_vavguh(__a, __b);
   1298 }
   1299 
   1300 /* vec_vavgsw */
   1301 
   1302 static vector int __attribute__((__always_inline__))
   1303 vec_vavgsw(vector int __a, vector int __b)
   1304 {
   1305   return __builtin_altivec_vavgsw(__a, __b);
   1306 }
   1307 
   1308 /* vec_vavguw */
   1309 
   1310 static vector unsigned int __attribute__((__always_inline__))
   1311 vec_vavguw(vector unsigned int __a, vector unsigned int __b)
   1312 {
   1313   return __builtin_altivec_vavguw(__a, __b);
   1314 }
   1315 
   1316 /* vec_ceil */
   1317 
   1318 static vector float __attribute__((__always_inline__))
   1319 vec_ceil(vector float __a)
   1320 {
   1321   return __builtin_altivec_vrfip(__a);
   1322 }
   1323 
   1324 /* vec_vrfip */
   1325 
   1326 static vector float __attribute__((__always_inline__))
   1327 vec_vrfip(vector float __a)
   1328 {
   1329   return __builtin_altivec_vrfip(__a);
   1330 }
   1331 
   1332 /* vec_cmpb */
   1333 
   1334 static vector int __attribute__((__always_inline__))
   1335 vec_cmpb(vector float __a, vector float __b)
   1336 {
   1337   return __builtin_altivec_vcmpbfp(__a, __b);
   1338 }
   1339 
   1340 /* vec_vcmpbfp */
   1341 
   1342 static vector int __attribute__((__always_inline__))
   1343 vec_vcmpbfp(vector float __a, vector float __b)
   1344 {
   1345   return __builtin_altivec_vcmpbfp(__a, __b);
   1346 }
   1347 
   1348 /* vec_cmpeq */
   1349 
   1350 static vector bool char __ATTRS_o_ai
   1351 vec_cmpeq(vector signed char __a, vector signed char __b)
   1352 {
   1353   return (vector bool char)
   1354     __builtin_altivec_vcmpequb((vector char)__a, (vector char)__b);
   1355 }
   1356 
   1357 static vector bool char __ATTRS_o_ai
   1358 vec_cmpeq(vector unsigned char __a, vector unsigned char __b)
   1359 {
   1360   return (vector bool char)
   1361     __builtin_altivec_vcmpequb((vector char)__a, (vector char)__b);
   1362 }
   1363 
   1364 static vector bool short __ATTRS_o_ai
   1365 vec_cmpeq(vector short __a, vector short __b)
   1366 {
   1367   return (vector bool short)__builtin_altivec_vcmpequh(__a, __b);
   1368 }
   1369 
   1370 static vector bool short __ATTRS_o_ai
   1371 vec_cmpeq(vector unsigned short __a, vector unsigned short __b)
   1372 {
   1373   return (vector bool short)
   1374     __builtin_altivec_vcmpequh((vector short)__a, (vector short)__b);
   1375 }
   1376 
   1377 static vector bool int __ATTRS_o_ai
   1378 vec_cmpeq(vector int __a, vector int __b)
   1379 {
   1380   return (vector bool int)__builtin_altivec_vcmpequw(__a, __b);
   1381 }
   1382 
   1383 static vector bool int __ATTRS_o_ai
   1384 vec_cmpeq(vector unsigned int __a, vector unsigned int __b)
   1385 {
   1386   return (vector bool int)
   1387     __builtin_altivec_vcmpequw((vector int)__a, (vector int)__b);
   1388 }
   1389 
   1390 static vector bool int __ATTRS_o_ai
   1391 vec_cmpeq(vector float __a, vector float __b)
   1392 {
   1393   return (vector bool int)__builtin_altivec_vcmpeqfp(__a, __b);
   1394 }
   1395 
   1396 /* vec_cmpge */
   1397 
   1398 static vector bool int __attribute__((__always_inline__))
   1399 vec_cmpge(vector float __a, vector float __b)
   1400 {
   1401   return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b);
   1402 }
   1403 
   1404 /* vec_vcmpgefp */
   1405 
   1406 static vector bool int __attribute__((__always_inline__))
   1407 vec_vcmpgefp(vector float __a, vector float __b)
   1408 {
   1409   return (vector bool int)__builtin_altivec_vcmpgefp(__a, __b);
   1410 }
   1411 
   1412 /* vec_cmpgt */
   1413 
   1414 static vector bool char __ATTRS_o_ai
   1415 vec_cmpgt(vector signed char __a, vector signed char __b)
   1416 {
   1417   return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b);
   1418 }
   1419 
   1420 static vector bool char __ATTRS_o_ai
   1421 vec_cmpgt(vector unsigned char __a, vector unsigned char __b)
   1422 {
   1423   return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b);
   1424 }
   1425 
   1426 static vector bool short __ATTRS_o_ai
   1427 vec_cmpgt(vector short __a, vector short __b)
   1428 {
   1429   return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b);
   1430 }
   1431 
   1432 static vector bool short __ATTRS_o_ai
   1433 vec_cmpgt(vector unsigned short __a, vector unsigned short __b)
   1434 {
   1435   return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b);
   1436 }
   1437 
   1438 static vector bool int __ATTRS_o_ai
   1439 vec_cmpgt(vector int __a, vector int __b)
   1440 {
   1441   return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b);
   1442 }
   1443 
   1444 static vector bool int __ATTRS_o_ai
   1445 vec_cmpgt(vector unsigned int __a, vector unsigned int __b)
   1446 {
   1447   return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b);
   1448 }
   1449 
   1450 static vector bool int __ATTRS_o_ai
   1451 vec_cmpgt(vector float __a, vector float __b)
   1452 {
   1453   return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b);
   1454 }
   1455 
   1456 /* vec_vcmpgtsb */
   1457 
   1458 static vector bool char __attribute__((__always_inline__))
   1459 vec_vcmpgtsb(vector signed char __a, vector signed char __b)
   1460 {
   1461   return (vector bool char)__builtin_altivec_vcmpgtsb(__a, __b);
   1462 }
   1463 
   1464 /* vec_vcmpgtub */
   1465 
   1466 static vector bool char __attribute__((__always_inline__))
   1467 vec_vcmpgtub(vector unsigned char __a, vector unsigned char __b)
   1468 {
   1469   return (vector bool char)__builtin_altivec_vcmpgtub(__a, __b);
   1470 }
   1471 
   1472 /* vec_vcmpgtsh */
   1473 
   1474 static vector bool short __attribute__((__always_inline__))
   1475 vec_vcmpgtsh(vector short __a, vector short __b)
   1476 {
   1477   return (vector bool short)__builtin_altivec_vcmpgtsh(__a, __b);
   1478 }
   1479 
   1480 /* vec_vcmpgtuh */
   1481 
   1482 static vector bool short __attribute__((__always_inline__))
   1483 vec_vcmpgtuh(vector unsigned short __a, vector unsigned short __b)
   1484 {
   1485   return (vector bool short)__builtin_altivec_vcmpgtuh(__a, __b);
   1486 }
   1487 
   1488 /* vec_vcmpgtsw */
   1489 
   1490 static vector bool int __attribute__((__always_inline__))
   1491 vec_vcmpgtsw(vector int __a, vector int __b)
   1492 {
   1493   return (vector bool int)__builtin_altivec_vcmpgtsw(__a, __b);
   1494 }
   1495 
   1496 /* vec_vcmpgtuw */
   1497 
   1498 static vector bool int __attribute__((__always_inline__))
   1499 vec_vcmpgtuw(vector unsigned int __a, vector unsigned int __b)
   1500 {
   1501   return (vector bool int)__builtin_altivec_vcmpgtuw(__a, __b);
   1502 }
   1503 
   1504 /* vec_vcmpgtfp */
   1505 
   1506 static vector bool int __attribute__((__always_inline__))
   1507 vec_vcmpgtfp(vector float __a, vector float __b)
   1508 {
   1509   return (vector bool int)__builtin_altivec_vcmpgtfp(__a, __b);
   1510 }
   1511 
   1512 /* vec_cmple */
   1513 
   1514 static vector bool int __attribute__((__always_inline__))
   1515 vec_cmple(vector float __a, vector float __b)
   1516 {
   1517   return (vector bool int)__builtin_altivec_vcmpgefp(__b, __a);
   1518 }
   1519 
   1520 /* vec_cmplt */
   1521 
   1522 static vector bool char __ATTRS_o_ai
   1523 vec_cmplt(vector signed char __a, vector signed char __b)
   1524 {
   1525   return (vector bool char)__builtin_altivec_vcmpgtsb(__b, __a);
   1526 }
   1527 
   1528 static vector bool char __ATTRS_o_ai
   1529 vec_cmplt(vector unsigned char __a, vector unsigned char __b)
   1530 {
   1531   return (vector bool char)__builtin_altivec_vcmpgtub(__b, __a);
   1532 }
   1533 
   1534 static vector bool short __ATTRS_o_ai
   1535 vec_cmplt(vector short __a, vector short __b)
   1536 {
   1537   return (vector bool short)__builtin_altivec_vcmpgtsh(__b, __a);
   1538 }
   1539 
   1540 static vector bool short __ATTRS_o_ai
   1541 vec_cmplt(vector unsigned short __a, vector unsigned short __b)
   1542 {
   1543   return (vector bool short)__builtin_altivec_vcmpgtuh(__b, __a);
   1544 }
   1545 
   1546 static vector bool int __ATTRS_o_ai
   1547 vec_cmplt(vector int __a, vector int __b)
   1548 {
   1549   return (vector bool int)__builtin_altivec_vcmpgtsw(__b, __a);
   1550 }
   1551 
   1552 static vector bool int __ATTRS_o_ai
   1553 vec_cmplt(vector unsigned int __a, vector unsigned int __b)
   1554 {
   1555   return (vector bool int)__builtin_altivec_vcmpgtuw(__b, __a);
   1556 }
   1557 
   1558 static vector bool int __ATTRS_o_ai
   1559 vec_cmplt(vector float __a, vector float __b)
   1560 {
   1561   return (vector bool int)__builtin_altivec_vcmpgtfp(__b, __a);
   1562 }
   1563 
   1564 /* vec_ctf */
   1565 
   1566 static vector float __ATTRS_o_ai
   1567 vec_ctf(vector int __a, int __b)
   1568 {
   1569   return __builtin_altivec_vcfsx(__a, __b);
   1570 }
   1571 
   1572 static vector float __ATTRS_o_ai
   1573 vec_ctf(vector unsigned int __a, int __b)
   1574 {
   1575   return __builtin_altivec_vcfux((vector int)__a, __b);
   1576 }
   1577 
   1578 /* vec_vcfsx */
   1579 
   1580 static vector float __attribute__((__always_inline__))
   1581 vec_vcfsx(vector int __a, int __b)
   1582 {
   1583   return __builtin_altivec_vcfsx(__a, __b);
   1584 }
   1585 
   1586 /* vec_vcfux */
   1587 
   1588 static vector float __attribute__((__always_inline__))
   1589 vec_vcfux(vector unsigned int __a, int __b)
   1590 {
   1591   return __builtin_altivec_vcfux((vector int)__a, __b);
   1592 }
   1593 
   1594 /* vec_cts */
   1595 
   1596 static vector int __attribute__((__always_inline__))
   1597 vec_cts(vector float __a, int __b)
   1598 {
   1599   return __builtin_altivec_vctsxs(__a, __b);
   1600 }
   1601 
   1602 /* vec_vctsxs */
   1603 
   1604 static vector int __attribute__((__always_inline__))
   1605 vec_vctsxs(vector float __a, int __b)
   1606 {
   1607   return __builtin_altivec_vctsxs(__a, __b);
   1608 }
   1609 
   1610 /* vec_ctu */
   1611 
   1612 static vector unsigned int __attribute__((__always_inline__))
   1613 vec_ctu(vector float __a, int __b)
   1614 {
   1615   return __builtin_altivec_vctuxs(__a, __b);
   1616 }
   1617 
   1618 /* vec_vctuxs */
   1619 
   1620 static vector unsigned int __attribute__((__always_inline__))
   1621 vec_vctuxs(vector float __a, int __b)
   1622 {
   1623   return __builtin_altivec_vctuxs(__a, __b);
   1624 }
   1625 
   1626 /* vec_dss */
   1627 
   1628 static void __attribute__((__always_inline__))
   1629 vec_dss(int __a)
   1630 {
   1631   __builtin_altivec_dss(__a);
   1632 }
   1633 
   1634 /* vec_dssall */
   1635 
   1636 static void __attribute__((__always_inline__))
   1637 vec_dssall(void)
   1638 {
   1639   __builtin_altivec_dssall();
   1640 }
   1641 
   1642 /* vec_dst */
   1643 
   1644 static void __attribute__((__always_inline__))
   1645 vec_dst(const void *__a, int __b, int __c)
   1646 {
   1647   __builtin_altivec_dst(__a, __b, __c);
   1648 }
   1649 
   1650 /* vec_dstst */
   1651 
   1652 static void __attribute__((__always_inline__))
   1653 vec_dstst(const void *__a, int __b, int __c)
   1654 {
   1655   __builtin_altivec_dstst(__a, __b, __c);
   1656 }
   1657 
   1658 /* vec_dststt */
   1659 
   1660 static void __attribute__((__always_inline__))
   1661 vec_dststt(const void *__a, int __b, int __c)
   1662 {
   1663   __builtin_altivec_dststt(__a, __b, __c);
   1664 }
   1665 
   1666 /* vec_dstt */
   1667 
   1668 static void __attribute__((__always_inline__))
   1669 vec_dstt(const void *__a, int __b, int __c)
   1670 {
   1671   __builtin_altivec_dstt(__a, __b, __c);
   1672 }
   1673 
   1674 /* vec_expte */
   1675 
   1676 static vector float __attribute__((__always_inline__))
   1677 vec_expte(vector float __a)
   1678 {
   1679   return __builtin_altivec_vexptefp(__a);
   1680 }
   1681 
   1682 /* vec_vexptefp */
   1683 
   1684 static vector float __attribute__((__always_inline__))
   1685 vec_vexptefp(vector float __a)
   1686 {
   1687   return __builtin_altivec_vexptefp(__a);
   1688 }
   1689 
   1690 /* vec_floor */
   1691 
   1692 static vector float __attribute__((__always_inline__))
   1693 vec_floor(vector float __a)
   1694 {
   1695   return __builtin_altivec_vrfim(__a);
   1696 }
   1697 
   1698 /* vec_vrfim */
   1699 
   1700 static vector float __attribute__((__always_inline__))
   1701 vec_vrfim(vector float __a)
   1702 {
   1703   return __builtin_altivec_vrfim(__a);
   1704 }
   1705 
   1706 /* vec_ld */
   1707 
   1708 static vector signed char __ATTRS_o_ai
   1709 vec_ld(int __a, const vector signed char *__b)
   1710 {
   1711   return (vector signed char)__builtin_altivec_lvx(__a, __b);
   1712 }
   1713 
   1714 static vector signed char __ATTRS_o_ai
   1715 vec_ld(int __a, const signed char *__b)
   1716 {
   1717   return (vector signed char)__builtin_altivec_lvx(__a, __b);
   1718 }
   1719 
   1720 static vector unsigned char __ATTRS_o_ai
   1721 vec_ld(int __a, const vector unsigned char *__b)
   1722 {
   1723   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
   1724 }
   1725 
   1726 static vector unsigned char __ATTRS_o_ai
   1727 vec_ld(int __a, const unsigned char *__b)
   1728 {
   1729   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
   1730 }
   1731 
   1732 static vector bool char __ATTRS_o_ai
   1733 vec_ld(int __a, const vector bool char *__b)
   1734 {
   1735   return (vector bool char)__builtin_altivec_lvx(__a, __b);
   1736 }
   1737 
   1738 static vector short __ATTRS_o_ai
   1739 vec_ld(int __a, const vector short *__b)
   1740 {
   1741   return (vector short)__builtin_altivec_lvx(__a, __b);
   1742 }
   1743 
   1744 static vector short __ATTRS_o_ai
   1745 vec_ld(int __a, const short *__b)
   1746 {
   1747   return (vector short)__builtin_altivec_lvx(__a, __b);
   1748 }
   1749 
   1750 static vector unsigned short __ATTRS_o_ai
   1751 vec_ld(int __a, const vector unsigned short *__b)
   1752 {
   1753   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
   1754 }
   1755 
   1756 static vector unsigned short __ATTRS_o_ai
   1757 vec_ld(int __a, const unsigned short *__b)
   1758 {
   1759   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
   1760 }
   1761 
   1762 static vector bool short __ATTRS_o_ai
   1763 vec_ld(int __a, const vector bool short *__b)
   1764 {
   1765   return (vector bool short)__builtin_altivec_lvx(__a, __b);
   1766 }
   1767 
   1768 static vector pixel __ATTRS_o_ai
   1769 vec_ld(int __a, const vector pixel *__b)
   1770 {
   1771   return (vector pixel)__builtin_altivec_lvx(__a, __b);
   1772 }
   1773 
   1774 static vector int __ATTRS_o_ai
   1775 vec_ld(int __a, const vector int *__b)
   1776 {
   1777   return (vector int)__builtin_altivec_lvx(__a, __b);
   1778 }
   1779 
   1780 static vector int __ATTRS_o_ai
   1781 vec_ld(int __a, const int *__b)
   1782 {
   1783   return (vector int)__builtin_altivec_lvx(__a, __b);
   1784 }
   1785 
   1786 static vector unsigned int __ATTRS_o_ai
   1787 vec_ld(int __a, const vector unsigned int *__b)
   1788 {
   1789   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
   1790 }
   1791 
   1792 static vector unsigned int __ATTRS_o_ai
   1793 vec_ld(int __a, const unsigned int *__b)
   1794 {
   1795   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
   1796 }
   1797 
   1798 static vector bool int __ATTRS_o_ai
   1799 vec_ld(int __a, const vector bool int *__b)
   1800 {
   1801   return (vector bool int)__builtin_altivec_lvx(__a, __b);
   1802 }
   1803 
   1804 static vector float __ATTRS_o_ai
   1805 vec_ld(int __a, const vector float *__b)
   1806 {
   1807   return (vector float)__builtin_altivec_lvx(__a, __b);
   1808 }
   1809 
   1810 static vector float __ATTRS_o_ai
   1811 vec_ld(int __a, const float *__b)
   1812 {
   1813   return (vector float)__builtin_altivec_lvx(__a, __b);
   1814 }
   1815 
   1816 /* vec_lvx */
   1817 
   1818 static vector signed char __ATTRS_o_ai
   1819 vec_lvx(int __a, const vector signed char *__b)
   1820 {
   1821   return (vector signed char)__builtin_altivec_lvx(__a, __b);
   1822 }
   1823 
   1824 static vector signed char __ATTRS_o_ai
   1825 vec_lvx(int __a, const signed char *__b)
   1826 {
   1827   return (vector signed char)__builtin_altivec_lvx(__a, __b);
   1828 }
   1829 
   1830 static vector unsigned char __ATTRS_o_ai
   1831 vec_lvx(int __a, const vector unsigned char *__b)
   1832 {
   1833   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
   1834 }
   1835 
   1836 static vector unsigned char __ATTRS_o_ai
   1837 vec_lvx(int __a, const unsigned char *__b)
   1838 {
   1839   return (vector unsigned char)__builtin_altivec_lvx(__a, __b);
   1840 }
   1841 
   1842 static vector bool char __ATTRS_o_ai
   1843 vec_lvx(int __a, const vector bool char *__b)
   1844 {
   1845   return (vector bool char)__builtin_altivec_lvx(__a, __b);
   1846 }
   1847 
   1848 static vector short __ATTRS_o_ai
   1849 vec_lvx(int __a, const vector short *__b)
   1850 {
   1851   return (vector short)__builtin_altivec_lvx(__a, __b);
   1852 }
   1853 
   1854 static vector short __ATTRS_o_ai
   1855 vec_lvx(int __a, const short *__b)
   1856 {
   1857   return (vector short)__builtin_altivec_lvx(__a, __b);
   1858 }
   1859 
   1860 static vector unsigned short __ATTRS_o_ai
   1861 vec_lvx(int __a, const vector unsigned short *__b)
   1862 {
   1863   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
   1864 }
   1865 
   1866 static vector unsigned short __ATTRS_o_ai
   1867 vec_lvx(int __a, const unsigned short *__b)
   1868 {
   1869   return (vector unsigned short)__builtin_altivec_lvx(__a, __b);
   1870 }
   1871 
   1872 static vector bool short __ATTRS_o_ai
   1873 vec_lvx(int __a, const vector bool short *__b)
   1874 {
   1875   return (vector bool short)__builtin_altivec_lvx(__a, __b);
   1876 }
   1877 
   1878 static vector pixel __ATTRS_o_ai
   1879 vec_lvx(int __a, const vector pixel *__b)
   1880 {
   1881   return (vector pixel)__builtin_altivec_lvx(__a, __b);
   1882 }
   1883 
   1884 static vector int __ATTRS_o_ai
   1885 vec_lvx(int __a, const vector int *__b)
   1886 {
   1887   return (vector int)__builtin_altivec_lvx(__a, __b);
   1888 }
   1889 
   1890 static vector int __ATTRS_o_ai
   1891 vec_lvx(int __a, const int *__b)
   1892 {
   1893   return (vector int)__builtin_altivec_lvx(__a, __b);
   1894 }
   1895 
   1896 static vector unsigned int __ATTRS_o_ai
   1897 vec_lvx(int __a, const vector unsigned int *__b)
   1898 {
   1899   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
   1900 }
   1901 
   1902 static vector unsigned int __ATTRS_o_ai
   1903 vec_lvx(int __a, const unsigned int *__b)
   1904 {
   1905   return (vector unsigned int)__builtin_altivec_lvx(__a, __b);
   1906 }
   1907 
   1908 static vector bool int __ATTRS_o_ai
   1909 vec_lvx(int __a, const vector bool int *__b)
   1910 {
   1911   return (vector bool int)__builtin_altivec_lvx(__a, __b);
   1912 }
   1913 
   1914 static vector float __ATTRS_o_ai
   1915 vec_lvx(int __a, const vector float *__b)
   1916 {
   1917   return (vector float)__builtin_altivec_lvx(__a, __b);
   1918 }
   1919 
   1920 static vector float __ATTRS_o_ai
   1921 vec_lvx(int __a, const float *__b)
   1922 {
   1923   return (vector float)__builtin_altivec_lvx(__a, __b);
   1924 }
   1925 
   1926 /* vec_lde */
   1927 
   1928 static vector signed char __ATTRS_o_ai
   1929 vec_lde(int __a, const signed char *__b)
   1930 {
   1931   return (vector signed char)__builtin_altivec_lvebx(__a, __b);
   1932 }
   1933 
   1934 static vector unsigned char __ATTRS_o_ai
   1935 vec_lde(int __a, const unsigned char *__b)
   1936 {
   1937   return (vector unsigned char)__builtin_altivec_lvebx(__a, __b);
   1938 }
   1939 
   1940 static vector short __ATTRS_o_ai
   1941 vec_lde(int __a, const short *__b)
   1942 {
   1943   return (vector short)__builtin_altivec_lvehx(__a, __b);
   1944 }
   1945 
   1946 static vector unsigned short __ATTRS_o_ai
   1947 vec_lde(int __a, const unsigned short *__b)
   1948 {
   1949   return (vector unsigned short)__builtin_altivec_lvehx(__a, __b);
   1950 }
   1951 
   1952 static vector int __ATTRS_o_ai
   1953 vec_lde(int __a, const int *__b)
   1954 {
   1955   return (vector int)__builtin_altivec_lvewx(__a, __b);
   1956 }
   1957 
   1958 static vector unsigned int __ATTRS_o_ai
   1959 vec_lde(int __a, const unsigned int *__b)
   1960 {
   1961   return (vector unsigned int)__builtin_altivec_lvewx(__a, __b);
   1962 }
   1963 
   1964 static vector float __ATTRS_o_ai
   1965 vec_lde(int __a, const float *__b)
   1966 {
   1967   return (vector float)__builtin_altivec_lvewx(__a, __b);
   1968 }
   1969 
   1970 /* vec_lvebx */
   1971 
   1972 static vector signed char __ATTRS_o_ai
   1973 vec_lvebx(int __a, const signed char *__b)
   1974 {
   1975   return (vector signed char)__builtin_altivec_lvebx(__a, __b);
   1976 }
   1977 
   1978 static vector unsigned char __ATTRS_o_ai
   1979 vec_lvebx(int __a, const unsigned char *__b)
   1980 {
   1981   return (vector unsigned char)__builtin_altivec_lvebx(__a, __b);
   1982 }
   1983 
   1984 /* vec_lvehx */
   1985 
   1986 static vector short __ATTRS_o_ai
   1987 vec_lvehx(int __a, const short *__b)
   1988 {
   1989   return (vector short)__builtin_altivec_lvehx(__a, __b);
   1990 }
   1991 
   1992 static vector unsigned short __ATTRS_o_ai
   1993 vec_lvehx(int __a, const unsigned short *__b)
   1994 {
   1995   return (vector unsigned short)__builtin_altivec_lvehx(__a, __b);
   1996 }
   1997 
   1998 /* vec_lvewx */
   1999 
   2000 static vector int __ATTRS_o_ai
   2001 vec_lvewx(int __a, const int *__b)
   2002 {
   2003   return (vector int)__builtin_altivec_lvewx(__a, __b);
   2004 }
   2005 
   2006 static vector unsigned int __ATTRS_o_ai
   2007 vec_lvewx(int __a, const unsigned int *__b)
   2008 {
   2009   return (vector unsigned int)__builtin_altivec_lvewx(__a, __b);
   2010 }
   2011 
   2012 static vector float __ATTRS_o_ai
   2013 vec_lvewx(int __a, const float *__b)
   2014 {
   2015   return (vector float)__builtin_altivec_lvewx(__a, __b);
   2016 }
   2017 
   2018 /* vec_ldl */
   2019 
   2020 static vector signed char __ATTRS_o_ai
   2021 vec_ldl(int __a, const vector signed char *__b)
   2022 {
   2023   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
   2024 }
   2025 
   2026 static vector signed char __ATTRS_o_ai
   2027 vec_ldl(int __a, const signed char *__b)
   2028 {
   2029   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
   2030 }
   2031 
   2032 static vector unsigned char __ATTRS_o_ai
   2033 vec_ldl(int __a, const vector unsigned char *__b)
   2034 {
   2035   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
   2036 }
   2037 
   2038 static vector unsigned char __ATTRS_o_ai
   2039 vec_ldl(int __a, const unsigned char *__b)
   2040 {
   2041   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
   2042 }
   2043 
   2044 static vector bool char __ATTRS_o_ai
   2045 vec_ldl(int __a, const vector bool char *__b)
   2046 {
   2047   return (vector bool char)__builtin_altivec_lvxl(__a, __b);
   2048 }
   2049 
   2050 static vector short __ATTRS_o_ai
   2051 vec_ldl(int __a, const vector short *__b)
   2052 {
   2053   return (vector short)__builtin_altivec_lvxl(__a, __b);
   2054 }
   2055 
   2056 static vector short __ATTRS_o_ai
   2057 vec_ldl(int __a, const short *__b)
   2058 {
   2059   return (vector short)__builtin_altivec_lvxl(__a, __b);
   2060 }
   2061 
   2062 static vector unsigned short __ATTRS_o_ai
   2063 vec_ldl(int __a, const vector unsigned short *__b)
   2064 {
   2065   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
   2066 }
   2067 
   2068 static vector unsigned short __ATTRS_o_ai
   2069 vec_ldl(int __a, const unsigned short *__b)
   2070 {
   2071   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
   2072 }
   2073 
   2074 static vector bool short __ATTRS_o_ai
   2075 vec_ldl(int __a, const vector bool short *__b)
   2076 {
   2077   return (vector bool short)__builtin_altivec_lvxl(__a, __b);
   2078 }
   2079 
   2080 static vector pixel __ATTRS_o_ai
   2081 vec_ldl(int __a, const vector pixel *__b)
   2082 {
   2083   return (vector pixel short)__builtin_altivec_lvxl(__a, __b);
   2084 }
   2085 
   2086 static vector int __ATTRS_o_ai
   2087 vec_ldl(int __a, const vector int *__b)
   2088 {
   2089   return (vector int)__builtin_altivec_lvxl(__a, __b);
   2090 }
   2091 
   2092 static vector int __ATTRS_o_ai
   2093 vec_ldl(int __a, const int *__b)
   2094 {
   2095   return (vector int)__builtin_altivec_lvxl(__a, __b);
   2096 }
   2097 
   2098 static vector unsigned int __ATTRS_o_ai
   2099 vec_ldl(int __a, const vector unsigned int *__b)
   2100 {
   2101   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
   2102 }
   2103 
   2104 static vector unsigned int __ATTRS_o_ai
   2105 vec_ldl(int __a, const unsigned int *__b)
   2106 {
   2107   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
   2108 }
   2109 
   2110 static vector bool int __ATTRS_o_ai
   2111 vec_ldl(int __a, const vector bool int *__b)
   2112 {
   2113   return (vector bool int)__builtin_altivec_lvxl(__a, __b);
   2114 }
   2115 
   2116 static vector float __ATTRS_o_ai
   2117 vec_ldl(int __a, const vector float *__b)
   2118 {
   2119   return (vector float)__builtin_altivec_lvxl(__a, __b);
   2120 }
   2121 
   2122 static vector float __ATTRS_o_ai
   2123 vec_ldl(int __a, const float *__b)
   2124 {
   2125   return (vector float)__builtin_altivec_lvxl(__a, __b);
   2126 }
   2127 
   2128 /* vec_lvxl */
   2129 
   2130 static vector signed char __ATTRS_o_ai
   2131 vec_lvxl(int __a, const vector signed char *__b)
   2132 {
   2133   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
   2134 }
   2135 
   2136 static vector signed char __ATTRS_o_ai
   2137 vec_lvxl(int __a, const signed char *__b)
   2138 {
   2139   return (vector signed char)__builtin_altivec_lvxl(__a, __b);
   2140 }
   2141 
   2142 static vector unsigned char __ATTRS_o_ai
   2143 vec_lvxl(int __a, const vector unsigned char *__b)
   2144 {
   2145   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
   2146 }
   2147 
   2148 static vector unsigned char __ATTRS_o_ai
   2149 vec_lvxl(int __a, const unsigned char *__b)
   2150 {
   2151   return (vector unsigned char)__builtin_altivec_lvxl(__a, __b);
   2152 }
   2153 
   2154 static vector bool char __ATTRS_o_ai
   2155 vec_lvxl(int __a, const vector bool char *__b)
   2156 {
   2157   return (vector bool char)__builtin_altivec_lvxl(__a, __b);
   2158 }
   2159 
   2160 static vector short __ATTRS_o_ai
   2161 vec_lvxl(int __a, const vector short *__b)
   2162 {
   2163   return (vector short)__builtin_altivec_lvxl(__a, __b);
   2164 }
   2165 
   2166 static vector short __ATTRS_o_ai
   2167 vec_lvxl(int __a, const short *__b)
   2168 {
   2169   return (vector short)__builtin_altivec_lvxl(__a, __b);
   2170 }
   2171 
   2172 static vector unsigned short __ATTRS_o_ai
   2173 vec_lvxl(int __a, const vector unsigned short *__b)
   2174 {
   2175   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
   2176 }
   2177 
   2178 static vector unsigned short __ATTRS_o_ai
   2179 vec_lvxl(int __a, const unsigned short *__b)
   2180 {
   2181   return (vector unsigned short)__builtin_altivec_lvxl(__a, __b);
   2182 }
   2183 
   2184 static vector bool short __ATTRS_o_ai
   2185 vec_lvxl(int __a, const vector bool short *__b)
   2186 {
   2187   return (vector bool short)__builtin_altivec_lvxl(__a, __b);
   2188 }
   2189 
   2190 static vector pixel __ATTRS_o_ai
   2191 vec_lvxl(int __a, const vector pixel *__b)
   2192 {
   2193   return (vector pixel)__builtin_altivec_lvxl(__a, __b);
   2194 }
   2195 
   2196 static vector int __ATTRS_o_ai
   2197 vec_lvxl(int __a, const vector int *__b)
   2198 {
   2199   return (vector int)__builtin_altivec_lvxl(__a, __b);
   2200 }
   2201 
   2202 static vector int __ATTRS_o_ai
   2203 vec_lvxl(int __a, const int *__b)
   2204 {
   2205   return (vector int)__builtin_altivec_lvxl(__a, __b);
   2206 }
   2207 
   2208 static vector unsigned int __ATTRS_o_ai
   2209 vec_lvxl(int __a, const vector unsigned int *__b)
   2210 {
   2211   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
   2212 }
   2213 
   2214 static vector unsigned int __ATTRS_o_ai
   2215 vec_lvxl(int __a, const unsigned int *__b)
   2216 {
   2217   return (vector unsigned int)__builtin_altivec_lvxl(__a, __b);
   2218 }
   2219 
   2220 static vector bool int __ATTRS_o_ai
   2221 vec_lvxl(int __a, const vector bool int *__b)
   2222 {
   2223   return (vector bool int)__builtin_altivec_lvxl(__a, __b);
   2224 }
   2225 
   2226 static vector float __ATTRS_o_ai
   2227 vec_lvxl(int __a, const vector float *__b)
   2228 {
   2229   return (vector float)__builtin_altivec_lvxl(__a, __b);
   2230 }
   2231 
   2232 static vector float __ATTRS_o_ai
   2233 vec_lvxl(int __a, const float *__b)
   2234 {
   2235   return (vector float)__builtin_altivec_lvxl(__a, __b);
   2236 }
   2237 
   2238 /* vec_loge */
   2239 
   2240 static vector float __attribute__((__always_inline__))
   2241 vec_loge(vector float __a)
   2242 {
   2243   return __builtin_altivec_vlogefp(__a);
   2244 }
   2245 
   2246 /* vec_vlogefp */
   2247 
   2248 static vector float __attribute__((__always_inline__))
   2249 vec_vlogefp(vector float __a)
   2250 {
   2251   return __builtin_altivec_vlogefp(__a);
   2252 }
   2253 
   2254 /* vec_lvsl */
   2255 
   2256 static vector unsigned char __ATTRS_o_ai
   2257 vec_lvsl(int __a, const signed char *__b)
   2258 {
   2259   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
   2260 }
   2261 
   2262 static vector unsigned char __ATTRS_o_ai
   2263 vec_lvsl(int __a, const unsigned char *__b)
   2264 {
   2265   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
   2266 }
   2267 
   2268 static vector unsigned char __ATTRS_o_ai
   2269 vec_lvsl(int __a, const short *__b)
   2270 {
   2271   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
   2272 }
   2273 
   2274 static vector unsigned char __ATTRS_o_ai
   2275 vec_lvsl(int __a, const unsigned short *__b)
   2276 {
   2277   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
   2278 }
   2279 
   2280 static vector unsigned char __ATTRS_o_ai
   2281 vec_lvsl(int __a, const int *__b)
   2282 {
   2283   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
   2284 }
   2285 
   2286 static vector unsigned char __ATTRS_o_ai
   2287 vec_lvsl(int __a, const unsigned int *__b)
   2288 {
   2289   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
   2290 }
   2291 
   2292 static vector unsigned char __ATTRS_o_ai
   2293 vec_lvsl(int __a, const float *__b)
   2294 {
   2295   return (vector unsigned char)__builtin_altivec_lvsl(__a, __b);
   2296 }
   2297 
   2298 /* vec_lvsr */
   2299 
   2300 static vector unsigned char __ATTRS_o_ai
   2301 vec_lvsr(int __a, const signed char *__b)
   2302 {
   2303   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
   2304 }
   2305 
   2306 static vector unsigned char __ATTRS_o_ai
   2307 vec_lvsr(int __a, const unsigned char *__b)
   2308 {
   2309   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
   2310 }
   2311 
   2312 static vector unsigned char __ATTRS_o_ai
   2313 vec_lvsr(int __a, const short *__b)
   2314 {
   2315   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
   2316 }
   2317 
   2318 static vector unsigned char __ATTRS_o_ai
   2319 vec_lvsr(int __a, const unsigned short *__b)
   2320 {
   2321   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
   2322 }
   2323 
   2324 static vector unsigned char __ATTRS_o_ai
   2325 vec_lvsr(int __a, const int *__b)
   2326 {
   2327   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
   2328 }
   2329 
   2330 static vector unsigned char __ATTRS_o_ai
   2331 vec_lvsr(int __a, const unsigned int *__b)
   2332 {
   2333   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
   2334 }
   2335 
   2336 static vector unsigned char __ATTRS_o_ai
   2337 vec_lvsr(int __a, const float *__b)
   2338 {
   2339   return (vector unsigned char)__builtin_altivec_lvsr(__a, __b);
   2340 }
   2341 
   2342 /* vec_madd */
   2343 
   2344 static vector float __attribute__((__always_inline__))
   2345 vec_madd(vector float __a, vector float __b, vector float __c)
   2346 {
   2347   return __builtin_altivec_vmaddfp(__a, __b, __c);
   2348 }
   2349 
   2350 /* vec_vmaddfp */
   2351 
   2352 static vector float __attribute__((__always_inline__))
   2353 vec_vmaddfp(vector float __a, vector float __b, vector float __c)
   2354 {
   2355   return __builtin_altivec_vmaddfp(__a, __b, __c);
   2356 }
   2357 
   2358 /* vec_madds */
   2359 
   2360 static vector signed short __attribute__((__always_inline__))
   2361 vec_madds(vector signed short __a, vector signed short __b, vector signed short __c)
   2362 {
   2363   return __builtin_altivec_vmhaddshs(__a, __b, __c);
   2364 }
   2365 
   2366 /* vec_vmhaddshs */
   2367 static vector signed short __attribute__((__always_inline__))
   2368 vec_vmhaddshs(vector signed short __a,
   2369               vector signed short __b,
   2370               vector signed short __c)
   2371 {
   2372   return __builtin_altivec_vmhaddshs(__a, __b, __c);
   2373 }
   2374 
   2375 /* vec_max */
   2376 
   2377 static vector signed char __ATTRS_o_ai
   2378 vec_max(vector signed char __a, vector signed char __b)
   2379 {
   2380   return __builtin_altivec_vmaxsb(__a, __b);
   2381 }
   2382 
   2383 static vector signed char __ATTRS_o_ai
   2384 vec_max(vector bool char __a, vector signed char __b)
   2385 {
   2386   return __builtin_altivec_vmaxsb((vector signed char)__a, __b);
   2387 }
   2388 
   2389 static vector signed char __ATTRS_o_ai
   2390 vec_max(vector signed char __a, vector bool char __b)
   2391 {
   2392   return __builtin_altivec_vmaxsb(__a, (vector signed char)__b);
   2393 }
   2394 
   2395 static vector unsigned char __ATTRS_o_ai
   2396 vec_max(vector unsigned char __a, vector unsigned char __b)
   2397 {
   2398   return __builtin_altivec_vmaxub(__a, __b);
   2399 }
   2400 
   2401 static vector unsigned char __ATTRS_o_ai
   2402 vec_max(vector bool char __a, vector unsigned char __b)
   2403 {
   2404   return __builtin_altivec_vmaxub((vector unsigned char)__a, __b);
   2405 }
   2406 
   2407 static vector unsigned char __ATTRS_o_ai
   2408 vec_max(vector unsigned char __a, vector bool char __b)
   2409 {
   2410   return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b);
   2411 }
   2412 
   2413 static vector short __ATTRS_o_ai
   2414 vec_max(vector short __a, vector short __b)
   2415 {
   2416   return __builtin_altivec_vmaxsh(__a, __b);
   2417 }
   2418 
   2419 static vector short __ATTRS_o_ai
   2420 vec_max(vector bool short __a, vector short __b)
   2421 {
   2422   return __builtin_altivec_vmaxsh((vector short)__a, __b);
   2423 }
   2424 
   2425 static vector short __ATTRS_o_ai
   2426 vec_max(vector short __a, vector bool short __b)
   2427 {
   2428   return __builtin_altivec_vmaxsh(__a, (vector short)__b);
   2429 }
   2430 
   2431 static vector unsigned short __ATTRS_o_ai
   2432 vec_max(vector unsigned short __a, vector unsigned short __b)
   2433 {
   2434   return __builtin_altivec_vmaxuh(__a, __b);
   2435 }
   2436 
   2437 static vector unsigned short __ATTRS_o_ai
   2438 vec_max(vector bool short __a, vector unsigned short __b)
   2439 {
   2440   return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b);
   2441 }
   2442 
   2443 static vector unsigned short __ATTRS_o_ai
   2444 vec_max(vector unsigned short __a, vector bool short __b)
   2445 {
   2446   return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b);
   2447 }
   2448 
   2449 static vector int __ATTRS_o_ai
   2450 vec_max(vector int __a, vector int __b)
   2451 {
   2452   return __builtin_altivec_vmaxsw(__a, __b);
   2453 }
   2454 
   2455 static vector int __ATTRS_o_ai
   2456 vec_max(vector bool int __a, vector int __b)
   2457 {
   2458   return __builtin_altivec_vmaxsw((vector int)__a, __b);
   2459 }
   2460 
   2461 static vector int __ATTRS_o_ai
   2462 vec_max(vector int __a, vector bool int __b)
   2463 {
   2464   return __builtin_altivec_vmaxsw(__a, (vector int)__b);
   2465 }
   2466 
   2467 static vector unsigned int __ATTRS_o_ai
   2468 vec_max(vector unsigned int __a, vector unsigned int __b)
   2469 {
   2470   return __builtin_altivec_vmaxuw(__a, __b);
   2471 }
   2472 
   2473 static vector unsigned int __ATTRS_o_ai
   2474 vec_max(vector bool int __a, vector unsigned int __b)
   2475 {
   2476   return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b);
   2477 }
   2478 
   2479 static vector unsigned int __ATTRS_o_ai
   2480 vec_max(vector unsigned int __a, vector bool int __b)
   2481 {
   2482   return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b);
   2483 }
   2484 
   2485 static vector float __ATTRS_o_ai
   2486 vec_max(vector float __a, vector float __b)
   2487 {
   2488   return __builtin_altivec_vmaxfp(__a, __b);
   2489 }
   2490 
   2491 /* vec_vmaxsb */
   2492 
   2493 static vector signed char __ATTRS_o_ai
   2494 vec_vmaxsb(vector signed char __a, vector signed char __b)
   2495 {
   2496   return __builtin_altivec_vmaxsb(__a, __b);
   2497 }
   2498 
   2499 static vector signed char __ATTRS_o_ai
   2500 vec_vmaxsb(vector bool char __a, vector signed char __b)
   2501 {
   2502   return __builtin_altivec_vmaxsb((vector signed char)__a, __b);
   2503 }
   2504 
   2505 static vector signed char __ATTRS_o_ai
   2506 vec_vmaxsb(vector signed char __a, vector bool char __b)
   2507 {
   2508   return __builtin_altivec_vmaxsb(__a, (vector signed char)__b);
   2509 }
   2510 
   2511 /* vec_vmaxub */
   2512 
   2513 static vector unsigned char __ATTRS_o_ai
   2514 vec_vmaxub(vector unsigned char __a, vector unsigned char __b)
   2515 {
   2516   return __builtin_altivec_vmaxub(__a, __b);
   2517 }
   2518 
   2519 static vector unsigned char __ATTRS_o_ai
   2520 vec_vmaxub(vector bool char __a, vector unsigned char __b)
   2521 {
   2522   return __builtin_altivec_vmaxub((vector unsigned char)__a, __b);
   2523 }
   2524 
   2525 static vector unsigned char __ATTRS_o_ai
   2526 vec_vmaxub(vector unsigned char __a, vector bool char __b)
   2527 {
   2528   return __builtin_altivec_vmaxub(__a, (vector unsigned char)__b);
   2529 }
   2530 
   2531 /* vec_vmaxsh */
   2532 
   2533 static vector short __ATTRS_o_ai
   2534 vec_vmaxsh(vector short __a, vector short __b)
   2535 {
   2536   return __builtin_altivec_vmaxsh(__a, __b);
   2537 }
   2538 
   2539 static vector short __ATTRS_o_ai
   2540 vec_vmaxsh(vector bool short __a, vector short __b)
   2541 {
   2542   return __builtin_altivec_vmaxsh((vector short)__a, __b);
   2543 }
   2544 
   2545 static vector short __ATTRS_o_ai
   2546 vec_vmaxsh(vector short __a, vector bool short __b)
   2547 {
   2548   return __builtin_altivec_vmaxsh(__a, (vector short)__b);
   2549 }
   2550 
   2551 /* vec_vmaxuh */
   2552 
   2553 static vector unsigned short __ATTRS_o_ai
   2554 vec_vmaxuh(vector unsigned short __a, vector unsigned short __b)
   2555 {
   2556   return __builtin_altivec_vmaxuh(__a, __b);
   2557 }
   2558 
   2559 static vector unsigned short __ATTRS_o_ai
   2560 vec_vmaxuh(vector bool short __a, vector unsigned short __b)
   2561 {
   2562   return __builtin_altivec_vmaxuh((vector unsigned short)__a, __b);
   2563 }
   2564 
   2565 static vector unsigned short __ATTRS_o_ai
   2566 vec_vmaxuh(vector unsigned short __a, vector bool short __b)
   2567 {
   2568   return __builtin_altivec_vmaxuh(__a, (vector unsigned short)__b);
   2569 }
   2570 
   2571 /* vec_vmaxsw */
   2572 
   2573 static vector int __ATTRS_o_ai
   2574 vec_vmaxsw(vector int __a, vector int __b)
   2575 {
   2576   return __builtin_altivec_vmaxsw(__a, __b);
   2577 }
   2578 
   2579 static vector int __ATTRS_o_ai
   2580 vec_vmaxsw(vector bool int __a, vector int __b)
   2581 {
   2582   return __builtin_altivec_vmaxsw((vector int)__a, __b);
   2583 }
   2584 
   2585 static vector int __ATTRS_o_ai
   2586 vec_vmaxsw(vector int __a, vector bool int __b)
   2587 {
   2588   return __builtin_altivec_vmaxsw(__a, (vector int)__b);
   2589 }
   2590 
   2591 /* vec_vmaxuw */
   2592 
   2593 static vector unsigned int __ATTRS_o_ai
   2594 vec_vmaxuw(vector unsigned int __a, vector unsigned int __b)
   2595 {
   2596   return __builtin_altivec_vmaxuw(__a, __b);
   2597 }
   2598 
   2599 static vector unsigned int __ATTRS_o_ai
   2600 vec_vmaxuw(vector bool int __a, vector unsigned int __b)
   2601 {
   2602   return __builtin_altivec_vmaxuw((vector unsigned int)__a, __b);
   2603 }
   2604 
   2605 static vector unsigned int __ATTRS_o_ai
   2606 vec_vmaxuw(vector unsigned int __a, vector bool int __b)
   2607 {
   2608   return __builtin_altivec_vmaxuw(__a, (vector unsigned int)__b);
   2609 }
   2610 
   2611 /* vec_vmaxfp */
   2612 
   2613 static vector float __attribute__((__always_inline__))
   2614 vec_vmaxfp(vector float __a, vector float __b)
   2615 {
   2616   return __builtin_altivec_vmaxfp(__a, __b);
   2617 }
   2618 
   2619 /* vec_mergeh */
   2620 
   2621 static vector signed char __ATTRS_o_ai
   2622 vec_mergeh(vector signed char __a, vector signed char __b)
   2623 {
   2624   return vec_perm(__a, __b, (vector unsigned char)
   2625     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
   2626      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
   2627 }
   2628 
   2629 static vector unsigned char __ATTRS_o_ai
   2630 vec_mergeh(vector unsigned char __a, vector unsigned char __b)
   2631 {
   2632   return vec_perm(__a, __b, (vector unsigned char)
   2633     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
   2634      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
   2635 }
   2636 
   2637 static vector bool char __ATTRS_o_ai
   2638 vec_mergeh(vector bool char __a, vector bool char __b)
   2639 {
   2640   return vec_perm(__a, __b, (vector unsigned char)
   2641     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
   2642      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
   2643 }
   2644 
   2645 static vector short __ATTRS_o_ai
   2646 vec_mergeh(vector short __a, vector short __b)
   2647 {
   2648   return vec_perm(__a, __b, (vector unsigned char)
   2649     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
   2650      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
   2651 }
   2652 
   2653 static vector unsigned short __ATTRS_o_ai
   2654 vec_mergeh(vector unsigned short __a, vector unsigned short __b)
   2655 {
   2656   return vec_perm(__a, __b, (vector unsigned char)
   2657     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
   2658      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
   2659 }
   2660 
   2661 static vector bool short __ATTRS_o_ai
   2662 vec_mergeh(vector bool short __a, vector bool short __b)
   2663 {
   2664   return vec_perm(__a, __b, (vector unsigned char)
   2665     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
   2666      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
   2667 }
   2668 
   2669 static vector pixel __ATTRS_o_ai
   2670 vec_mergeh(vector pixel __a, vector pixel __b)
   2671 {
   2672   return vec_perm(__a, __b, (vector unsigned char)
   2673     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
   2674      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
   2675 }
   2676 
   2677 static vector int __ATTRS_o_ai
   2678 vec_mergeh(vector int __a, vector int __b)
   2679 {
   2680   return vec_perm(__a, __b, (vector unsigned char)
   2681     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
   2682      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
   2683 }
   2684 
   2685 static vector unsigned int __ATTRS_o_ai
   2686 vec_mergeh(vector unsigned int __a, vector unsigned int __b)
   2687 {
   2688   return vec_perm(__a, __b, (vector unsigned char)
   2689     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
   2690      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
   2691 }
   2692 
   2693 static vector bool int __ATTRS_o_ai
   2694 vec_mergeh(vector bool int __a, vector bool int __b)
   2695 {
   2696   return vec_perm(__a, __b, (vector unsigned char)
   2697     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
   2698      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
   2699 }
   2700 
   2701 static vector float __ATTRS_o_ai
   2702 vec_mergeh(vector float __a, vector float __b)
   2703 {
   2704   return vec_perm(__a, __b, (vector unsigned char)
   2705     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
   2706      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
   2707 }
   2708 
   2709 /* vec_vmrghb */
   2710 
   2711 #define __builtin_altivec_vmrghb vec_vmrghb
   2712 
   2713 static vector signed char __ATTRS_o_ai
   2714 vec_vmrghb(vector signed char __a, vector signed char __b)
   2715 {
   2716   return vec_perm(__a, __b, (vector unsigned char)
   2717     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
   2718      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
   2719 }
   2720 
   2721 static vector unsigned char __ATTRS_o_ai
   2722 vec_vmrghb(vector unsigned char __a, vector unsigned char __b)
   2723 {
   2724   return vec_perm(__a, __b, (vector unsigned char)
   2725     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
   2726      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
   2727 }
   2728 
   2729 static vector bool char __ATTRS_o_ai
   2730 vec_vmrghb(vector bool char __a, vector bool char __b)
   2731 {
   2732   return vec_perm(__a, __b, (vector unsigned char)
   2733     (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
   2734      0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
   2735 }
   2736 
   2737 /* vec_vmrghh */
   2738 
   2739 #define __builtin_altivec_vmrghh vec_vmrghh
   2740 
   2741 static vector short __ATTRS_o_ai
   2742 vec_vmrghh(vector short __a, vector short __b)
   2743 {
   2744   return vec_perm(__a, __b, (vector unsigned char)
   2745     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
   2746      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
   2747 }
   2748 
   2749 static vector unsigned short __ATTRS_o_ai
   2750 vec_vmrghh(vector unsigned short __a, vector unsigned short __b)
   2751 {
   2752   return vec_perm(__a, __b, (vector unsigned char)
   2753     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
   2754      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
   2755 }
   2756 
   2757 static vector bool short __ATTRS_o_ai
   2758 vec_vmrghh(vector bool short __a, vector bool short __b)
   2759 {
   2760   return vec_perm(__a, __b, (vector unsigned char)
   2761     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
   2762      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
   2763 }
   2764 
   2765 static vector pixel __ATTRS_o_ai
   2766 vec_vmrghh(vector pixel __a, vector pixel __b)
   2767 {
   2768   return vec_perm(__a, __b, (vector unsigned char)
   2769     (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
   2770      0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
   2771 }
   2772 
   2773 /* vec_vmrghw */
   2774 
   2775 #define __builtin_altivec_vmrghw vec_vmrghw
   2776 
   2777 static vector int __ATTRS_o_ai
   2778 vec_vmrghw(vector int __a, vector int __b)
   2779 {
   2780   return vec_perm(__a, __b, (vector unsigned char)
   2781     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
   2782      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
   2783 }
   2784 
   2785 static vector unsigned int __ATTRS_o_ai
   2786 vec_vmrghw(vector unsigned int __a, vector unsigned int __b)
   2787 {
   2788   return vec_perm(__a, __b, (vector unsigned char)
   2789     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
   2790      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
   2791 }
   2792 
   2793 static vector bool int __ATTRS_o_ai
   2794 vec_vmrghw(vector bool int __a, vector bool int __b)
   2795 {
   2796   return vec_perm(__a, __b, (vector unsigned char)
   2797     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
   2798      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
   2799 }
   2800 
   2801 static vector float __ATTRS_o_ai
   2802 vec_vmrghw(vector float __a, vector float __b)
   2803 {
   2804   return vec_perm(__a, __b, (vector unsigned char)
   2805     (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
   2806      0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
   2807 }
   2808 
   2809 /* vec_mergel */
   2810 
   2811 static vector signed char __ATTRS_o_ai
   2812 vec_mergel(vector signed char __a, vector signed char __b)
   2813 {
   2814   return vec_perm(__a, __b, (vector unsigned char)
   2815     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
   2816      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
   2817 }
   2818 
   2819 static vector unsigned char __ATTRS_o_ai
   2820 vec_mergel(vector unsigned char __a, vector unsigned char __b)
   2821 {
   2822   return vec_perm(__a, __b, (vector unsigned char)
   2823     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
   2824      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
   2825 }
   2826 
   2827 static vector bool char __ATTRS_o_ai
   2828 vec_mergel(vector bool char __a, vector bool char __b)
   2829 {
   2830   return vec_perm(__a, __b, (vector unsigned char)
   2831     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
   2832      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
   2833 }
   2834 
   2835 static vector short __ATTRS_o_ai
   2836 vec_mergel(vector short __a, vector short __b)
   2837 {
   2838   return vec_perm(__a, __b, (vector unsigned char)
   2839     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
   2840      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
   2841 }
   2842 
   2843 static vector unsigned short __ATTRS_o_ai
   2844 vec_mergel(vector unsigned short __a, vector unsigned short __b)
   2845 {
   2846   return vec_perm(__a, __b, (vector unsigned char)
   2847     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
   2848      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
   2849 }
   2850 
   2851 static vector bool short __ATTRS_o_ai
   2852 vec_mergel(vector bool short __a, vector bool short __b)
   2853 {
   2854   return vec_perm(__a, __b, (vector unsigned char)
   2855     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
   2856      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
   2857 }
   2858 
   2859 static vector pixel __ATTRS_o_ai
   2860 vec_mergel(vector pixel __a, vector pixel __b)
   2861 {
   2862   return vec_perm(__a, __b, (vector unsigned char)
   2863     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
   2864      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
   2865 }
   2866 
   2867 static vector int __ATTRS_o_ai
   2868 vec_mergel(vector int __a, vector int __b)
   2869 {
   2870   return vec_perm(__a, __b, (vector unsigned char)
   2871     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
   2872      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
   2873 }
   2874 
   2875 static vector unsigned int __ATTRS_o_ai
   2876 vec_mergel(vector unsigned int __a, vector unsigned int __b)
   2877 {
   2878   return vec_perm(__a, __b, (vector unsigned char)
   2879     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
   2880      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
   2881 }
   2882 
   2883 static vector bool int __ATTRS_o_ai
   2884 vec_mergel(vector bool int __a, vector bool int __b)
   2885 {
   2886   return vec_perm(__a, __b, (vector unsigned char)
   2887     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
   2888      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
   2889 }
   2890 
   2891 static vector float __ATTRS_o_ai
   2892 vec_mergel(vector float __a, vector float __b)
   2893 {
   2894   return vec_perm(__a, __b, (vector unsigned char)
   2895     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
   2896      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
   2897 }
   2898 
   2899 /* vec_vmrglb */
   2900 
   2901 #define __builtin_altivec_vmrglb vec_vmrglb
   2902 
   2903 static vector signed char __ATTRS_o_ai
   2904 vec_vmrglb(vector signed char __a, vector signed char __b)
   2905 {
   2906   return vec_perm(__a, __b, (vector unsigned char)
   2907     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
   2908      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
   2909 }
   2910 
   2911 static vector unsigned char __ATTRS_o_ai
   2912 vec_vmrglb(vector unsigned char __a, vector unsigned char __b)
   2913 {
   2914   return vec_perm(__a, __b, (vector unsigned char)
   2915     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
   2916      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
   2917 }
   2918 
   2919 static vector bool char __ATTRS_o_ai
   2920 vec_vmrglb(vector bool char __a, vector bool char __b)
   2921 {
   2922   return vec_perm(__a, __b, (vector unsigned char)
   2923     (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
   2924      0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
   2925 }
   2926 
   2927 /* vec_vmrglh */
   2928 
   2929 #define __builtin_altivec_vmrglh vec_vmrglh
   2930 
   2931 static vector short __ATTRS_o_ai
   2932 vec_vmrglh(vector short __a, vector short __b)
   2933 {
   2934   return vec_perm(__a, __b, (vector unsigned char)
   2935     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
   2936      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
   2937 }
   2938 
   2939 static vector unsigned short __ATTRS_o_ai
   2940 vec_vmrglh(vector unsigned short __a, vector unsigned short __b)
   2941 {
   2942   return vec_perm(__a, __b, (vector unsigned char)
   2943     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
   2944      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
   2945 }
   2946 
   2947 static vector bool short __ATTRS_o_ai
   2948 vec_vmrglh(vector bool short __a, vector bool short __b)
   2949 {
   2950   return vec_perm(__a, __b, (vector unsigned char)
   2951     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
   2952      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
   2953 }
   2954 
   2955 static vector pixel __ATTRS_o_ai
   2956 vec_vmrglh(vector pixel __a, vector pixel __b)
   2957 {
   2958   return vec_perm(__a, __b, (vector unsigned char)
   2959     (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
   2960      0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
   2961 }
   2962 
   2963 /* vec_vmrglw */
   2964 
   2965 #define __builtin_altivec_vmrglw vec_vmrglw
   2966 
   2967 static vector int __ATTRS_o_ai
   2968 vec_vmrglw(vector int __a, vector int __b)
   2969 {
   2970   return vec_perm(__a, __b, (vector unsigned char)
   2971     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
   2972      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
   2973 }
   2974 
   2975 static vector unsigned int __ATTRS_o_ai
   2976 vec_vmrglw(vector unsigned int __a, vector unsigned int __b)
   2977 {
   2978   return vec_perm(__a, __b, (vector unsigned char)
   2979     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
   2980      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
   2981 }
   2982 
   2983 static vector bool int __ATTRS_o_ai
   2984 vec_vmrglw(vector bool int __a, vector bool int __b)
   2985 {
   2986   return vec_perm(__a, __b, (vector unsigned char)
   2987     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
   2988      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
   2989 }
   2990 
   2991 static vector float __ATTRS_o_ai
   2992 vec_vmrglw(vector float __a, vector float __b)
   2993 {
   2994   return vec_perm(__a, __b, (vector unsigned char)
   2995     (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
   2996      0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
   2997 }
   2998 
   2999 /* vec_mfvscr */
   3000 
   3001 static vector unsigned short __attribute__((__always_inline__))
   3002 vec_mfvscr(void)
   3003 {
   3004   return __builtin_altivec_mfvscr();
   3005 }
   3006 
   3007 /* vec_min */
   3008 
   3009 static vector signed char __ATTRS_o_ai
   3010 vec_min(vector signed char __a, vector signed char __b)
   3011 {
   3012   return __builtin_altivec_vminsb(__a, __b);
   3013 }
   3014 
   3015 static vector signed char __ATTRS_o_ai
   3016 vec_min(vector bool char __a, vector signed char __b)
   3017 {
   3018   return __builtin_altivec_vminsb((vector signed char)__a, __b);
   3019 }
   3020 
   3021 static vector signed char __ATTRS_o_ai
   3022 vec_min(vector signed char __a, vector bool char __b)
   3023 {
   3024   return __builtin_altivec_vminsb(__a, (vector signed char)__b);
   3025 }
   3026 
   3027 static vector unsigned char __ATTRS_o_ai
   3028 vec_min(vector unsigned char __a, vector unsigned char __b)
   3029 {
   3030   return __builtin_altivec_vminub(__a, __b);
   3031 }
   3032 
   3033 static vector unsigned char __ATTRS_o_ai
   3034 vec_min(vector bool char __a, vector unsigned char __b)
   3035 {
   3036   return __builtin_altivec_vminub((vector unsigned char)__a, __b);
   3037 }
   3038 
   3039 static vector unsigned char __ATTRS_o_ai
   3040 vec_min(vector unsigned char __a, vector bool char __b)
   3041 {
   3042   return __builtin_altivec_vminub(__a, (vector unsigned char)__b);
   3043 }
   3044 
   3045 static vector short __ATTRS_o_ai
   3046 vec_min(vector short __a, vector short __b)
   3047 {
   3048   return __builtin_altivec_vminsh(__a, __b);
   3049 }
   3050 
   3051 static vector short __ATTRS_o_ai
   3052 vec_min(vector bool short __a, vector short __b)
   3053 {
   3054   return __builtin_altivec_vminsh((vector short)__a, __b);
   3055 }
   3056 
   3057 static vector short __ATTRS_o_ai
   3058 vec_min(vector short __a, vector bool short __b)
   3059 {
   3060   return __builtin_altivec_vminsh(__a, (vector short)__b);
   3061 }
   3062 
   3063 static vector unsigned short __ATTRS_o_ai
   3064 vec_min(vector unsigned short __a, vector unsigned short __b)
   3065 {
   3066   return __builtin_altivec_vminuh(__a, __b);
   3067 }
   3068 
   3069 static vector unsigned short __ATTRS_o_ai
   3070 vec_min(vector bool short __a, vector unsigned short __b)
   3071 {
   3072   return __builtin_altivec_vminuh((vector unsigned short)__a, __b);
   3073 }
   3074 
   3075 static vector unsigned short __ATTRS_o_ai
   3076 vec_min(vector unsigned short __a, vector bool short __b)
   3077 {
   3078   return __builtin_altivec_vminuh(__a, (vector unsigned short)__b);
   3079 }
   3080 
   3081 static vector int __ATTRS_o_ai
   3082 vec_min(vector int __a, vector int __b)
   3083 {
   3084   return __builtin_altivec_vminsw(__a, __b);
   3085 }
   3086 
   3087 static vector int __ATTRS_o_ai
   3088 vec_min(vector bool int __a, vector int __b)
   3089 {
   3090   return __builtin_altivec_vminsw((vector int)__a, __b);
   3091 }
   3092 
   3093 static vector int __ATTRS_o_ai
   3094 vec_min(vector int __a, vector bool int __b)
   3095 {
   3096   return __builtin_altivec_vminsw(__a, (vector int)__b);
   3097 }
   3098 
   3099 static vector unsigned int __ATTRS_o_ai
   3100 vec_min(vector unsigned int __a, vector unsigned int __b)
   3101 {
   3102   return __builtin_altivec_vminuw(__a, __b);
   3103 }
   3104 
   3105 static vector unsigned int __ATTRS_o_ai
   3106 vec_min(vector bool int __a, vector unsigned int __b)
   3107 {
   3108   return __builtin_altivec_vminuw((vector unsigned int)__a, __b);
   3109 }
   3110 
   3111 static vector unsigned int __ATTRS_o_ai
   3112 vec_min(vector unsigned int __a, vector bool int __b)
   3113 {
   3114   return __builtin_altivec_vminuw(__a, (vector unsigned int)__b);
   3115 }
   3116 
   3117 static vector float __ATTRS_o_ai
   3118 vec_min(vector float __a, vector float __b)
   3119 {
   3120   return __builtin_altivec_vminfp(__a, __b);
   3121 }
   3122 
   3123 /* vec_vminsb */
   3124 
   3125 static vector signed char __ATTRS_o_ai
   3126 vec_vminsb(vector signed char __a, vector signed char __b)
   3127 {
   3128   return __builtin_altivec_vminsb(__a, __b);
   3129 }
   3130 
   3131 static vector signed char __ATTRS_o_ai
   3132 vec_vminsb(vector bool char __a, vector signed char __b)
   3133 {
   3134   return __builtin_altivec_vminsb((vector signed char)__a, __b);
   3135 }
   3136 
   3137 static vector signed char __ATTRS_o_ai
   3138 vec_vminsb(vector signed char __a, vector bool char __b)
   3139 {
   3140   return __builtin_altivec_vminsb(__a, (vector signed char)__b);
   3141 }
   3142 
   3143 /* vec_vminub */
   3144 
   3145 static vector unsigned char __ATTRS_o_ai
   3146 vec_vminub(vector unsigned char __a, vector unsigned char __b)
   3147 {
   3148   return __builtin_altivec_vminub(__a, __b);
   3149 }
   3150 
   3151 static vector unsigned char __ATTRS_o_ai
   3152 vec_vminub(vector bool char __a, vector unsigned char __b)
   3153 {
   3154   return __builtin_altivec_vminub((vector unsigned char)__a, __b);
   3155 }
   3156 
   3157 static vector unsigned char __ATTRS_o_ai
   3158 vec_vminub(vector unsigned char __a, vector bool char __b)
   3159 {
   3160   return __builtin_altivec_vminub(__a, (vector unsigned char)__b);
   3161 }
   3162 
   3163 /* vec_vminsh */
   3164 
   3165 static vector short __ATTRS_o_ai
   3166 vec_vminsh(vector short __a, vector short __b)
   3167 {
   3168   return __builtin_altivec_vminsh(__a, __b);
   3169 }
   3170 
   3171 static vector short __ATTRS_o_ai
   3172 vec_vminsh(vector bool short __a, vector short __b)
   3173 {
   3174   return __builtin_altivec_vminsh((vector short)__a, __b);
   3175 }
   3176 
   3177 static vector short __ATTRS_o_ai
   3178 vec_vminsh(vector short __a, vector bool short __b)
   3179 {
   3180   return __builtin_altivec_vminsh(__a, (vector short)__b);
   3181 }
   3182 
   3183 /* vec_vminuh */
   3184 
   3185 static vector unsigned short __ATTRS_o_ai
   3186 vec_vminuh(vector unsigned short __a, vector unsigned short __b)
   3187 {
   3188   return __builtin_altivec_vminuh(__a, __b);
   3189 }
   3190 
   3191 static vector unsigned short __ATTRS_o_ai
   3192 vec_vminuh(vector bool short __a, vector unsigned short __b)
   3193 {
   3194   return __builtin_altivec_vminuh((vector unsigned short)__a, __b);
   3195 }
   3196 
   3197 static vector unsigned short __ATTRS_o_ai
   3198 vec_vminuh(vector unsigned short __a, vector bool short __b)
   3199 {
   3200   return __builtin_altivec_vminuh(__a, (vector unsigned short)__b);
   3201 }
   3202 
   3203 /* vec_vminsw */
   3204 
   3205 static vector int __ATTRS_o_ai
   3206 vec_vminsw(vector int __a, vector int __b)
   3207 {
   3208   return __builtin_altivec_vminsw(__a, __b);
   3209 }
   3210 
   3211 static vector int __ATTRS_o_ai
   3212 vec_vminsw(vector bool int __a, vector int __b)
   3213 {
   3214   return __builtin_altivec_vminsw((vector int)__a, __b);
   3215 }
   3216 
   3217 static vector int __ATTRS_o_ai
   3218 vec_vminsw(vector int __a, vector bool int __b)
   3219 {
   3220   return __builtin_altivec_vminsw(__a, (vector int)__b);
   3221 }
   3222 
   3223 /* vec_vminuw */
   3224 
   3225 static vector unsigned int __ATTRS_o_ai
   3226 vec_vminuw(vector unsigned int __a, vector unsigned int __b)
   3227 {
   3228   return __builtin_altivec_vminuw(__a, __b);
   3229 }
   3230 
   3231 static vector unsigned int __ATTRS_o_ai
   3232 vec_vminuw(vector bool int __a, vector unsigned int __b)
   3233 {
   3234   return __builtin_altivec_vminuw((vector unsigned int)__a, __b);
   3235 }
   3236 
   3237 static vector unsigned int __ATTRS_o_ai
   3238 vec_vminuw(vector unsigned int __a, vector bool int __b)
   3239 {
   3240   return __builtin_altivec_vminuw(__a, (vector unsigned int)__b);
   3241 }
   3242 
   3243 /* vec_vminfp */
   3244 
   3245 static vector float __attribute__((__always_inline__))
   3246 vec_vminfp(vector float __a, vector float __b)
   3247 {
   3248   return __builtin_altivec_vminfp(__a, __b);
   3249 }
   3250 
   3251 /* vec_mladd */
   3252 
   3253 #define __builtin_altivec_vmladduhm vec_mladd
   3254 
   3255 static vector short __ATTRS_o_ai
   3256 vec_mladd(vector short __a, vector short __b, vector short __c)
   3257 {
   3258   return __a * __b + __c;
   3259 }
   3260 
   3261 static vector short __ATTRS_o_ai
   3262 vec_mladd(vector short __a, vector unsigned short __b, vector unsigned short __c)
   3263 {
   3264   return __a * (vector short)__b + (vector short)__c;
   3265 }
   3266 
   3267 static vector short __ATTRS_o_ai
   3268 vec_mladd(vector unsigned short __a, vector short __b, vector short __c)
   3269 {
   3270   return (vector short)__a * __b + __c;
   3271 }
   3272 
   3273 static vector unsigned short __ATTRS_o_ai
   3274 vec_mladd(vector unsigned short __a,
   3275           vector unsigned short __b,
   3276           vector unsigned short __c)
   3277 {
   3278   return __a * __b + __c;
   3279 }
   3280 
   3281 /* vec_vmladduhm */
   3282 
   3283 static vector short __ATTRS_o_ai
   3284 vec_vmladduhm(vector short __a, vector short __b, vector short __c)
   3285 {
   3286   return __a * __b + __c;
   3287 }
   3288 
   3289 static vector short __ATTRS_o_ai
   3290 vec_vmladduhm(vector short __a, vector unsigned short __b, vector unsigned short __c)
   3291 {
   3292   return __a * (vector short)__b + (vector short)__c;
   3293 }
   3294 
   3295 static vector short __ATTRS_o_ai
   3296 vec_vmladduhm(vector unsigned short __a, vector short __b, vector short __c)
   3297 {
   3298   return (vector short)__a * __b + __c;
   3299 }
   3300 
   3301 static vector unsigned short __ATTRS_o_ai
   3302 vec_vmladduhm(vector unsigned short __a,
   3303               vector unsigned short __b,
   3304               vector unsigned short __c)
   3305 {
   3306   return __a * __b + __c;
   3307 }
   3308 
   3309 /* vec_mradds */
   3310 
   3311 static vector short __attribute__((__always_inline__))
   3312 vec_mradds(vector short __a, vector short __b, vector short __c)
   3313 {
   3314   return __builtin_altivec_vmhraddshs(__a, __b, __c);
   3315 }
   3316 
   3317 /* vec_vmhraddshs */
   3318 
   3319 static vector short __attribute__((__always_inline__))
   3320 vec_vmhraddshs(vector short __a, vector short __b, vector short __c)
   3321 {
   3322   return __builtin_altivec_vmhraddshs(__a, __b, __c);
   3323 }
   3324 
   3325 /* vec_msum */
   3326 
   3327 static vector int __ATTRS_o_ai
   3328 vec_msum(vector signed char __a, vector unsigned char __b, vector int __c)
   3329 {
   3330   return __builtin_altivec_vmsummbm(__a, __b, __c);
   3331 }
   3332 
   3333 static vector unsigned int __ATTRS_o_ai
   3334 vec_msum(vector unsigned char __a, vector unsigned char __b, vector unsigned int __c)
   3335 {
   3336   return __builtin_altivec_vmsumubm(__a, __b, __c);
   3337 }
   3338 
   3339 static vector int __ATTRS_o_ai
   3340 vec_msum(vector short __a, vector short __b, vector int __c)
   3341 {
   3342   return __builtin_altivec_vmsumshm(__a, __b, __c);
   3343 }
   3344 
   3345 static vector unsigned int __ATTRS_o_ai
   3346 vec_msum(vector unsigned short __a,
   3347          vector unsigned short __b,
   3348          vector unsigned int __c)
   3349 {
   3350   return __builtin_altivec_vmsumuhm(__a, __b, __c);
   3351 }
   3352 
   3353 /* vec_vmsummbm */
   3354 
   3355 static vector int __attribute__((__always_inline__))
   3356 vec_vmsummbm(vector signed char __a, vector unsigned char __b, vector int __c)
   3357 {
   3358   return __builtin_altivec_vmsummbm(__a, __b, __c);
   3359 }
   3360 
   3361 /* vec_vmsumubm */
   3362 
   3363 static vector unsigned int __attribute__((__always_inline__))
   3364 vec_vmsumubm(vector unsigned char __a,
   3365              vector unsigned char __b,
   3366              vector unsigned int __c)
   3367 {
   3368   return __builtin_altivec_vmsumubm(__a, __b, __c);
   3369 }
   3370 
   3371 /* vec_vmsumshm */
   3372 
   3373 static vector int __attribute__((__always_inline__))
   3374 vec_vmsumshm(vector short __a, vector short __b, vector int __c)
   3375 {
   3376   return __builtin_altivec_vmsumshm(__a, __b, __c);
   3377 }
   3378 
   3379 /* vec_vmsumuhm */
   3380 
   3381 static vector unsigned int __attribute__((__always_inline__))
   3382 vec_vmsumuhm(vector unsigned short __a,
   3383              vector unsigned short __b,
   3384              vector unsigned int __c)
   3385 {
   3386   return __builtin_altivec_vmsumuhm(__a, __b, __c);
   3387 }
   3388 
   3389 /* vec_msums */
   3390 
   3391 static vector int __ATTRS_o_ai
   3392 vec_msums(vector short __a, vector short __b, vector int __c)
   3393 {
   3394   return __builtin_altivec_vmsumshs(__a, __b, __c);
   3395 }
   3396 
   3397 static vector unsigned int __ATTRS_o_ai
   3398 vec_msums(vector unsigned short __a,
   3399           vector unsigned short __b,
   3400           vector unsigned int __c)
   3401 {
   3402   return __builtin_altivec_vmsumuhs(__a, __b, __c);
   3403 }
   3404 
   3405 /* vec_vmsumshs */
   3406 
   3407 static vector int __attribute__((__always_inline__))
   3408 vec_vmsumshs(vector short __a, vector short __b, vector int __c)
   3409 {
   3410   return __builtin_altivec_vmsumshs(__a, __b, __c);
   3411 }
   3412 
   3413 /* vec_vmsumuhs */
   3414 
   3415 static vector unsigned int __attribute__((__always_inline__))
   3416 vec_vmsumuhs(vector unsigned short __a,
   3417              vector unsigned short __b,
   3418              vector unsigned int __c)
   3419 {
   3420   return __builtin_altivec_vmsumuhs(__a, __b, __c);
   3421 }
   3422 
   3423 /* vec_mtvscr */
   3424 
   3425 static void __ATTRS_o_ai
   3426 vec_mtvscr(vector signed char __a)
   3427 {
   3428   __builtin_altivec_mtvscr((vector int)__a);
   3429 }
   3430 
   3431 static void __ATTRS_o_ai
   3432 vec_mtvscr(vector unsigned char __a)
   3433 {
   3434   __builtin_altivec_mtvscr((vector int)__a);
   3435 }
   3436 
   3437 static void __ATTRS_o_ai
   3438 vec_mtvscr(vector bool char __a)
   3439 {
   3440   __builtin_altivec_mtvscr((vector int)__a);
   3441 }
   3442 
   3443 static void __ATTRS_o_ai
   3444 vec_mtvscr(vector short __a)
   3445 {
   3446   __builtin_altivec_mtvscr((vector int)__a);
   3447 }
   3448 
   3449 static void __ATTRS_o_ai
   3450 vec_mtvscr(vector unsigned short __a)
   3451 {
   3452   __builtin_altivec_mtvscr((vector int)__a);
   3453 }
   3454 
   3455 static void __ATTRS_o_ai
   3456 vec_mtvscr(vector bool short __a)
   3457 {
   3458   __builtin_altivec_mtvscr((vector int)__a);
   3459 }
   3460 
   3461 static void __ATTRS_o_ai
   3462 vec_mtvscr(vector pixel __a)
   3463 {
   3464   __builtin_altivec_mtvscr((vector int)__a);
   3465 }
   3466 
   3467 static void __ATTRS_o_ai
   3468 vec_mtvscr(vector int __a)
   3469 {
   3470   __builtin_altivec_mtvscr((vector int)__a);
   3471 }
   3472 
   3473 static void __ATTRS_o_ai
   3474 vec_mtvscr(vector unsigned int __a)
   3475 {
   3476   __builtin_altivec_mtvscr((vector int)__a);
   3477 }
   3478 
   3479 static void __ATTRS_o_ai
   3480 vec_mtvscr(vector bool int __a)
   3481 {
   3482   __builtin_altivec_mtvscr((vector int)__a);
   3483 }
   3484 
   3485 static void __ATTRS_o_ai
   3486 vec_mtvscr(vector float __a)
   3487 {
   3488   __builtin_altivec_mtvscr((vector int)__a);
   3489 }
   3490 
   3491 /* The vmulos* and vmules* instructions have a big endian bias, so
   3492    we must reverse the meaning of "even" and "odd" for little endian.  */
   3493 
   3494 /* vec_mule */
   3495 
   3496 static vector short __ATTRS_o_ai
   3497 vec_mule(vector signed char __a, vector signed char __b)
   3498 {
   3499 #ifdef __LITTLE_ENDIAN__
   3500   return __builtin_altivec_vmulosb(__a, __b);
   3501 #else
   3502   return __builtin_altivec_vmulesb(__a, __b);
   3503 #endif
   3504 }
   3505 
   3506 static vector unsigned short __ATTRS_o_ai
   3507 vec_mule(vector unsigned char __a, vector unsigned char __b)
   3508 {
   3509 #ifdef __LITTLE_ENDIAN__
   3510   return __builtin_altivec_vmuloub(__a, __b);
   3511 #else
   3512   return __builtin_altivec_vmuleub(__a, __b);
   3513 #endif
   3514 }
   3515 
   3516 static vector int __ATTRS_o_ai
   3517 vec_mule(vector short __a, vector short __b)
   3518 {
   3519 #ifdef __LITTLE_ENDIAN__
   3520   return __builtin_altivec_vmulosh(__a, __b);
   3521 #else
   3522   return __builtin_altivec_vmulesh(__a, __b);
   3523 #endif
   3524 }
   3525 
   3526 static vector unsigned int __ATTRS_o_ai
   3527 vec_mule(vector unsigned short __a, vector unsigned short __b)
   3528 {
   3529 #ifdef __LITTLE_ENDIAN__
   3530   return __builtin_altivec_vmulouh(__a, __b);
   3531 #else
   3532   return __builtin_altivec_vmuleuh(__a, __b);
   3533 #endif
   3534 }
   3535 
   3536 /* vec_vmulesb */
   3537 
   3538 static vector short __attribute__((__always_inline__))
   3539 vec_vmulesb(vector signed char __a, vector signed char __b)
   3540 {
   3541 #ifdef __LITTLE_ENDIAN__
   3542   return __builtin_altivec_vmulosb(__a, __b);
   3543 #else
   3544   return __builtin_altivec_vmulesb(__a, __b);
   3545 #endif
   3546 }
   3547 
   3548 /* vec_vmuleub */
   3549 
   3550 static vector unsigned short __attribute__((__always_inline__))
   3551 vec_vmuleub(vector unsigned char __a, vector unsigned char __b)
   3552 {
   3553 #ifdef __LITTLE_ENDIAN__
   3554   return __builtin_altivec_vmuloub(__a, __b);
   3555 #else
   3556   return __builtin_altivec_vmuleub(__a, __b);
   3557 #endif
   3558 }
   3559 
   3560 /* vec_vmulesh */
   3561 
   3562 static vector int __attribute__((__always_inline__))
   3563 vec_vmulesh(vector short __a, vector short __b)
   3564 {
   3565 #ifdef __LITTLE_ENDIAN__
   3566   return __builtin_altivec_vmulosh(__a, __b);
   3567 #else
   3568   return __builtin_altivec_vmulesh(__a, __b);
   3569 #endif
   3570 }
   3571 
   3572 /* vec_vmuleuh */
   3573 
   3574 static vector unsigned int __attribute__((__always_inline__))
   3575 vec_vmuleuh(vector unsigned short __a, vector unsigned short __b)
   3576 {
   3577 #ifdef __LITTLE_ENDIAN__
   3578   return __builtin_altivec_vmulouh(__a, __b);
   3579 #else
   3580   return __builtin_altivec_vmuleuh(__a, __b);
   3581 #endif
   3582 }
   3583 
   3584 /* vec_mulo */
   3585 
   3586 static vector short __ATTRS_o_ai
   3587 vec_mulo(vector signed char __a, vector signed char __b)
   3588 {
   3589 #ifdef __LITTLE_ENDIAN__
   3590   return __builtin_altivec_vmulesb(__a, __b);
   3591 #else
   3592   return __builtin_altivec_vmulosb(__a, __b);
   3593 #endif
   3594 }
   3595 
   3596 static vector unsigned short __ATTRS_o_ai
   3597 vec_mulo(vector unsigned char __a, vector unsigned char __b)
   3598 {
   3599 #ifdef __LITTLE_ENDIAN__
   3600   return __builtin_altivec_vmuleub(__a, __b);
   3601 #else
   3602   return __builtin_altivec_vmuloub(__a, __b);
   3603 #endif
   3604 }
   3605 
   3606 static vector int __ATTRS_o_ai
   3607 vec_mulo(vector short __a, vector short __b)
   3608 {
   3609 #ifdef __LITTLE_ENDIAN__
   3610   return __builtin_altivec_vmulesh(__a, __b);
   3611 #else
   3612   return __builtin_altivec_vmulosh(__a, __b);
   3613 #endif
   3614 }
   3615 
   3616 static vector unsigned int __ATTRS_o_ai
   3617 vec_mulo(vector unsigned short __a, vector unsigned short __b)
   3618 {
   3619 #ifdef __LITTLE_ENDIAN__
   3620   return __builtin_altivec_vmuleuh(__a, __b);
   3621 #else
   3622   return __builtin_altivec_vmulouh(__a, __b);
   3623 #endif
   3624 }
   3625 
   3626 /* vec_vmulosb */
   3627 
   3628 static vector short __attribute__((__always_inline__))
   3629 vec_vmulosb(vector signed char __a, vector signed char __b)
   3630 {
   3631 #ifdef __LITTLE_ENDIAN__
   3632   return __builtin_altivec_vmulesb(__a, __b);
   3633 #else
   3634   return __builtin_altivec_vmulosb(__a, __b);
   3635 #endif
   3636 }
   3637 
   3638 /* vec_vmuloub */
   3639 
   3640 static vector unsigned short __attribute__((__always_inline__))
   3641 vec_vmuloub(vector unsigned char __a, vector unsigned char __b)
   3642 {
   3643 #ifdef __LITTLE_ENDIAN__
   3644   return __builtin_altivec_vmuleub(__a, __b);
   3645 #else
   3646   return __builtin_altivec_vmuloub(__a, __b);
   3647 #endif
   3648 }
   3649 
   3650 /* vec_vmulosh */
   3651 
   3652 static vector int __attribute__((__always_inline__))
   3653 vec_vmulosh(vector short __a, vector short __b)
   3654 {
   3655 #ifdef __LITTLE_ENDIAN__
   3656   return __builtin_altivec_vmulesh(__a, __b);
   3657 #else
   3658   return __builtin_altivec_vmulosh(__a, __b);
   3659 #endif
   3660 }
   3661 
   3662 /* vec_vmulouh */
   3663 
   3664 static vector unsigned int __attribute__((__always_inline__))
   3665 vec_vmulouh(vector unsigned short __a, vector unsigned short __b)
   3666 {
   3667 #ifdef __LITTLE_ENDIAN__
   3668   return __builtin_altivec_vmuleuh(__a, __b);
   3669 #else
   3670   return __builtin_altivec_vmulouh(__a, __b);
   3671 #endif
   3672 }
   3673 
   3674 /* vec_nmsub */
   3675 
   3676 static vector float __attribute__((__always_inline__))
   3677 vec_nmsub(vector float __a, vector float __b, vector float __c)
   3678 {
   3679   return __builtin_altivec_vnmsubfp(__a, __b, __c);
   3680 }
   3681 
   3682 /* vec_vnmsubfp */
   3683 
   3684 static vector float __attribute__((__always_inline__))
   3685 vec_vnmsubfp(vector float __a, vector float __b, vector float __c)
   3686 {
   3687   return __builtin_altivec_vnmsubfp(__a, __b, __c);
   3688 }
   3689 
   3690 /* vec_nor */
   3691 
   3692 #define __builtin_altivec_vnor vec_nor
   3693 
   3694 static vector signed char __ATTRS_o_ai
   3695 vec_nor(vector signed char __a, vector signed char __b)
   3696 {
   3697   return ~(__a | __b);
   3698 }
   3699 
   3700 static vector unsigned char __ATTRS_o_ai
   3701 vec_nor(vector unsigned char __a, vector unsigned char __b)
   3702 {
   3703   return ~(__a | __b);
   3704 }
   3705 
   3706 static vector bool char __ATTRS_o_ai
   3707 vec_nor(vector bool char __a, vector bool char __b)
   3708 {
   3709   return ~(__a | __b);
   3710 }
   3711 
   3712 static vector short __ATTRS_o_ai
   3713 vec_nor(vector short __a, vector short __b)
   3714 {
   3715   return ~(__a | __b);
   3716 }
   3717 
   3718 static vector unsigned short __ATTRS_o_ai
   3719 vec_nor(vector unsigned short __a, vector unsigned short __b)
   3720 {
   3721   return ~(__a | __b);
   3722 }
   3723 
   3724 static vector bool short __ATTRS_o_ai
   3725 vec_nor(vector bool short __a, vector bool short __b)
   3726 {
   3727   return ~(__a | __b);
   3728 }
   3729 
   3730 static vector int __ATTRS_o_ai
   3731 vec_nor(vector int __a, vector int __b)
   3732 {
   3733   return ~(__a | __b);
   3734 }
   3735 
   3736 static vector unsigned int __ATTRS_o_ai
   3737 vec_nor(vector unsigned int __a, vector unsigned int __b)
   3738 {
   3739   return ~(__a | __b);
   3740 }
   3741 
   3742 static vector bool int __ATTRS_o_ai
   3743 vec_nor(vector bool int __a, vector bool int __b)
   3744 {
   3745   return ~(__a | __b);
   3746 }
   3747 
   3748 static vector float __ATTRS_o_ai
   3749 vec_nor(vector float __a, vector float __b)
   3750 {
   3751   vector unsigned int __res = ~((vector unsigned int)__a | (vector unsigned int)__b);
   3752   return (vector float)__res;
   3753 }
   3754 
   3755 /* vec_vnor */
   3756 
   3757 static vector signed char __ATTRS_o_ai
   3758 vec_vnor(vector signed char __a, vector signed char __b)
   3759 {
   3760   return ~(__a | __b);
   3761 }
   3762 
   3763 static vector unsigned char __ATTRS_o_ai
   3764 vec_vnor(vector unsigned char __a, vector unsigned char __b)
   3765 {
   3766   return ~(__a | __b);
   3767 }
   3768 
   3769 static vector bool char __ATTRS_o_ai
   3770 vec_vnor(vector bool char __a, vector bool char __b)
   3771 {
   3772   return ~(__a | __b);
   3773 }
   3774 
   3775 static vector short __ATTRS_o_ai
   3776 vec_vnor(vector short __a, vector short __b)
   3777 {
   3778   return ~(__a | __b);
   3779 }
   3780 
   3781 static vector unsigned short __ATTRS_o_ai
   3782 vec_vnor(vector unsigned short __a, vector unsigned short __b)
   3783 {
   3784   return ~(__a | __b);
   3785 }
   3786 
   3787 static vector bool short __ATTRS_o_ai
   3788 vec_vnor(vector bool short __a, vector bool short __b)
   3789 {
   3790   return ~(__a | __b);
   3791 }
   3792 
   3793 static vector int __ATTRS_o_ai
   3794 vec_vnor(vector int __a, vector int __b)
   3795 {
   3796   return ~(__a | __b);
   3797 }
   3798 
   3799 static vector unsigned int __ATTRS_o_ai
   3800 vec_vnor(vector unsigned int __a, vector unsigned int __b)
   3801 {
   3802   return ~(__a | __b);
   3803 }
   3804 
   3805 static vector bool int __ATTRS_o_ai
   3806 vec_vnor(vector bool int __a, vector bool int __b)
   3807 {
   3808   return ~(__a | __b);
   3809 }
   3810 
   3811 static vector float __ATTRS_o_ai
   3812 vec_vnor(vector float __a, vector float __b)
   3813 {
   3814   vector unsigned int __res = ~((vector unsigned int)__a | (vector unsigned int)__b);
   3815   return (vector float)__res;
   3816 }
   3817 
   3818 /* vec_or */
   3819 
   3820 #define __builtin_altivec_vor vec_or
   3821 
   3822 static vector signed char __ATTRS_o_ai
   3823 vec_or(vector signed char __a, vector signed char __b)
   3824 {
   3825   return __a | __b;
   3826 }
   3827 
   3828 static vector signed char __ATTRS_o_ai
   3829 vec_or(vector bool char __a, vector signed char __b)
   3830 {
   3831   return (vector signed char)__a | __b;
   3832 }
   3833 
   3834 static vector signed char __ATTRS_o_ai
   3835 vec_or(vector signed char __a, vector bool char __b)
   3836 {
   3837   return __a | (vector signed char)__b;
   3838 }
   3839 
   3840 static vector unsigned char __ATTRS_o_ai
   3841 vec_or(vector unsigned char __a, vector unsigned char __b)
   3842 {
   3843   return __a | __b;
   3844 }
   3845 
   3846 static vector unsigned char __ATTRS_o_ai
   3847 vec_or(vector bool char __a, vector unsigned char __b)
   3848 {
   3849   return (vector unsigned char)__a | __b;
   3850 }
   3851 
   3852 static vector unsigned char __ATTRS_o_ai
   3853 vec_or(vector unsigned char __a, vector bool char __b)
   3854 {
   3855   return __a | (vector unsigned char)__b;
   3856 }
   3857 
   3858 static vector bool char __ATTRS_o_ai
   3859 vec_or(vector bool char __a, vector bool char __b)
   3860 {
   3861   return __a | __b;
   3862 }
   3863 
   3864 static vector short __ATTRS_o_ai
   3865 vec_or(vector short __a, vector short __b)
   3866 {
   3867   return __a | __b;
   3868 }
   3869 
   3870 static vector short __ATTRS_o_ai
   3871 vec_or(vector bool short __a, vector short __b)
   3872 {
   3873   return (vector short)__a | __b;
   3874 }
   3875 
   3876 static vector short __ATTRS_o_ai
   3877 vec_or(vector short __a, vector bool short __b)
   3878 {
   3879   return __a | (vector short)__b;
   3880 }
   3881 
   3882 static vector unsigned short __ATTRS_o_ai
   3883 vec_or(vector unsigned short __a, vector unsigned short __b)
   3884 {
   3885   return __a | __b;
   3886 }
   3887 
   3888 static vector unsigned short __ATTRS_o_ai
   3889 vec_or(vector bool short __a, vector unsigned short __b)
   3890 {
   3891   return (vector unsigned short)__a | __b;
   3892 }
   3893 
   3894 static vector unsigned short __ATTRS_o_ai
   3895 vec_or(vector unsigned short __a, vector bool short __b)
   3896 {
   3897   return __a | (vector unsigned short)__b;
   3898 }
   3899 
   3900 static vector bool short __ATTRS_o_ai
   3901 vec_or(vector bool short __a, vector bool short __b)
   3902 {
   3903   return __a | __b;
   3904 }
   3905 
   3906 static vector int __ATTRS_o_ai
   3907 vec_or(vector int __a, vector int __b)
   3908 {
   3909   return __a | __b;
   3910 }
   3911 
   3912 static vector int __ATTRS_o_ai
   3913 vec_or(vector bool int __a, vector int __b)
   3914 {
   3915   return (vector int)__a | __b;
   3916 }
   3917 
   3918 static vector int __ATTRS_o_ai
   3919 vec_or(vector int __a, vector bool int __b)
   3920 {
   3921   return __a | (vector int)__b;
   3922 }
   3923 
   3924 static vector unsigned int __ATTRS_o_ai
   3925 vec_or(vector unsigned int __a, vector unsigned int __b)
   3926 {
   3927   return __a | __b;
   3928 }
   3929 
   3930 static vector unsigned int __ATTRS_o_ai
   3931 vec_or(vector bool int __a, vector unsigned int __b)
   3932 {
   3933   return (vector unsigned int)__a | __b;
   3934 }
   3935 
   3936 static vector unsigned int __ATTRS_o_ai
   3937 vec_or(vector unsigned int __a, vector bool int __b)
   3938 {
   3939   return __a | (vector unsigned int)__b;
   3940 }
   3941 
   3942 static vector bool int __ATTRS_o_ai
   3943 vec_or(vector bool int __a, vector bool int __b)
   3944 {
   3945   return __a | __b;
   3946 }
   3947 
   3948 static vector float __ATTRS_o_ai
   3949 vec_or(vector float __a, vector float __b)
   3950 {
   3951   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
   3952   return (vector float)__res;
   3953 }
   3954 
   3955 static vector float __ATTRS_o_ai
   3956 vec_or(vector bool int __a, vector float __b)
   3957 {
   3958   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
   3959   return (vector float)__res;
   3960 }
   3961 
   3962 static vector float __ATTRS_o_ai
   3963 vec_or(vector float __a, vector bool int __b)
   3964 {
   3965   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
   3966   return (vector float)__res;
   3967 }
   3968 
   3969 /* vec_vor */
   3970 
   3971 static vector signed char __ATTRS_o_ai
   3972 vec_vor(vector signed char __a, vector signed char __b)
   3973 {
   3974   return __a | __b;
   3975 }
   3976 
   3977 static vector signed char __ATTRS_o_ai
   3978 vec_vor(vector bool char __a, vector signed char __b)
   3979 {
   3980   return (vector signed char)__a | __b;
   3981 }
   3982 
   3983 static vector signed char __ATTRS_o_ai
   3984 vec_vor(vector signed char __a, vector bool char __b)
   3985 {
   3986   return __a | (vector signed char)__b;
   3987 }
   3988 
   3989 static vector unsigned char __ATTRS_o_ai
   3990 vec_vor(vector unsigned char __a, vector unsigned char __b)
   3991 {
   3992   return __a | __b;
   3993 }
   3994 
   3995 static vector unsigned char __ATTRS_o_ai
   3996 vec_vor(vector bool char __a, vector unsigned char __b)
   3997 {
   3998   return (vector unsigned char)__a | __b;
   3999 }
   4000 
   4001 static vector unsigned char __ATTRS_o_ai
   4002 vec_vor(vector unsigned char __a, vector bool char __b)
   4003 {
   4004   return __a | (vector unsigned char)__b;
   4005 }
   4006 
   4007 static vector bool char __ATTRS_o_ai
   4008 vec_vor(vector bool char __a, vector bool char __b)
   4009 {
   4010   return __a | __b;
   4011 }
   4012 
   4013 static vector short __ATTRS_o_ai
   4014 vec_vor(vector short __a, vector short __b)
   4015 {
   4016   return __a | __b;
   4017 }
   4018 
   4019 static vector short __ATTRS_o_ai
   4020 vec_vor(vector bool short __a, vector short __b)
   4021 {
   4022   return (vector short)__a | __b;
   4023 }
   4024 
   4025 static vector short __ATTRS_o_ai
   4026 vec_vor(vector short __a, vector bool short __b)
   4027 {
   4028   return __a | (vector short)__b;
   4029 }
   4030 
   4031 static vector unsigned short __ATTRS_o_ai
   4032 vec_vor(vector unsigned short __a, vector unsigned short __b)
   4033 {
   4034   return __a | __b;
   4035 }
   4036 
   4037 static vector unsigned short __ATTRS_o_ai
   4038 vec_vor(vector bool short __a, vector unsigned short __b)
   4039 {
   4040   return (vector unsigned short)__a | __b;
   4041 }
   4042 
   4043 static vector unsigned short __ATTRS_o_ai
   4044 vec_vor(vector unsigned short __a, vector bool short __b)
   4045 {
   4046   return __a | (vector unsigned short)__b;
   4047 }
   4048 
   4049 static vector bool short __ATTRS_o_ai
   4050 vec_vor(vector bool short __a, vector bool short __b)
   4051 {
   4052   return __a | __b;
   4053 }
   4054 
   4055 static vector int __ATTRS_o_ai
   4056 vec_vor(vector int __a, vector int __b)
   4057 {
   4058   return __a | __b;
   4059 }
   4060 
   4061 static vector int __ATTRS_o_ai
   4062 vec_vor(vector bool int __a, vector int __b)
   4063 {
   4064   return (vector int)__a | __b;
   4065 }
   4066 
   4067 static vector int __ATTRS_o_ai
   4068 vec_vor(vector int __a, vector bool int __b)
   4069 {
   4070   return __a | (vector int)__b;
   4071 }
   4072 
   4073 static vector unsigned int __ATTRS_o_ai
   4074 vec_vor(vector unsigned int __a, vector unsigned int __b)
   4075 {
   4076   return __a | __b;
   4077 }
   4078 
   4079 static vector unsigned int __ATTRS_o_ai
   4080 vec_vor(vector bool int __a, vector unsigned int __b)
   4081 {
   4082   return (vector unsigned int)__a | __b;
   4083 }
   4084 
   4085 static vector unsigned int __ATTRS_o_ai
   4086 vec_vor(vector unsigned int __a, vector bool int __b)
   4087 {
   4088   return __a | (vector unsigned int)__b;
   4089 }
   4090 
   4091 static vector bool int __ATTRS_o_ai
   4092 vec_vor(vector bool int __a, vector bool int __b)
   4093 {
   4094   return __a | __b;
   4095 }
   4096 
   4097 static vector float __ATTRS_o_ai
   4098 vec_vor(vector float __a, vector float __b)
   4099 {
   4100   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
   4101   return (vector float)__res;
   4102 }
   4103 
   4104 static vector float __ATTRS_o_ai
   4105 vec_vor(vector bool int __a, vector float __b)
   4106 {
   4107   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
   4108   return (vector float)__res;
   4109 }
   4110 
   4111 static vector float __ATTRS_o_ai
   4112 vec_vor(vector float __a, vector bool int __b)
   4113 {
   4114   vector unsigned int __res = (vector unsigned int)__a | (vector unsigned int)__b;
   4115   return (vector float)__res;
   4116 }
   4117 
   4118 /* vec_pack */
   4119 
   4120 /* The various vector pack instructions have a big-endian bias, so for
   4121    little endian we must handle reversed element numbering.  */
   4122 
   4123 static vector signed char __ATTRS_o_ai
   4124 vec_pack(vector signed short __a, vector signed short __b)
   4125 {
   4126 #ifdef __LITTLE_ENDIAN__
   4127   return (vector signed char)vec_perm(__a, __b, (vector unsigned char)
   4128     (0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
   4129      0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
   4130 #else
   4131   return (vector signed char)vec_perm(__a, __b, (vector unsigned char)
   4132     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
   4133      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
   4134 #endif
   4135 }
   4136 
   4137 static vector unsigned char __ATTRS_o_ai
   4138 vec_pack(vector unsigned short __a, vector unsigned short __b)
   4139 {
   4140 #ifdef __LITTLE_ENDIAN__
   4141   return (vector unsigned char)vec_perm(__a, __b, (vector unsigned char)
   4142     (0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
   4143      0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
   4144 #else
   4145   return (vector unsigned char)vec_perm(__a, __b, (vector unsigned char)
   4146     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
   4147      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
   4148 #endif
   4149 }
   4150 
   4151 static vector bool char __ATTRS_o_ai
   4152 vec_pack(vector bool short __a, vector bool short __b)
   4153 {
   4154 #ifdef __LITTLE_ENDIAN__
   4155   return (vector bool char)vec_perm(__a, __b, (vector unsigned char)
   4156     (0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
   4157      0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
   4158 #else
   4159   return (vector bool char)vec_perm(__a, __b, (vector unsigned char)
   4160     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
   4161      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
   4162 #endif
   4163 }
   4164 
   4165 static vector short __ATTRS_o_ai
   4166 vec_pack(vector int __a, vector int __b)
   4167 {
   4168 #ifdef __LITTLE_ENDIAN__
   4169   return (vector short)vec_perm(__a, __b, (vector unsigned char)
   4170     (0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
   4171      0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
   4172 #else
   4173   return (vector short)vec_perm(__a, __b, (vector unsigned char)
   4174     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
   4175      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
   4176 #endif
   4177 }
   4178 
   4179 static vector unsigned short __ATTRS_o_ai
   4180 vec_pack(vector unsigned int __a, vector unsigned int __b)
   4181 {
   4182 #ifdef __LITTLE_ENDIAN__
   4183   return (vector unsigned short)vec_perm(__a, __b, (vector unsigned char)
   4184     (0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
   4185      0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
   4186 #else
   4187   return (vector unsigned short)vec_perm(__a, __b, (vector unsigned char)
   4188     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
   4189      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
   4190 #endif
   4191 }
   4192 
   4193 static vector bool short __ATTRS_o_ai
   4194 vec_pack(vector bool int __a, vector bool int __b)
   4195 {
   4196 #ifdef __LITTLE_ENDIAN__
   4197   return (vector bool short)vec_perm(__a, __b, (vector unsigned char)
   4198     (0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
   4199      0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
   4200 #else
   4201   return (vector bool short)vec_perm(__a, __b, (vector unsigned char)
   4202     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
   4203      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
   4204 #endif
   4205 }
   4206 
   4207 /* vec_vpkuhum */
   4208 
   4209 #define __builtin_altivec_vpkuhum vec_vpkuhum
   4210 
   4211 static vector signed char __ATTRS_o_ai
   4212 vec_vpkuhum(vector signed short __a, vector signed short __b)
   4213 {
   4214 #ifdef __LITTLE_ENDIAN__
   4215   return (vector signed char)vec_perm(__a, __b, (vector unsigned char)
   4216     (0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
   4217      0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
   4218 #else
   4219   return (vector signed char)vec_perm(__a, __b, (vector unsigned char)
   4220     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
   4221      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
   4222 #endif
   4223 }
   4224 
   4225 static vector unsigned char __ATTRS_o_ai
   4226 vec_vpkuhum(vector unsigned short __a, vector unsigned short __b)
   4227 {
   4228 #ifdef __LITTLE_ENDIAN__
   4229   return (vector unsigned char)vec_perm(__a, __b, (vector unsigned char)
   4230     (0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
   4231      0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
   4232 #else
   4233   return (vector unsigned char)vec_perm(__a, __b, (vector unsigned char)
   4234     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
   4235      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
   4236 #endif
   4237 }
   4238 
   4239 static vector bool char __ATTRS_o_ai
   4240 vec_vpkuhum(vector bool short __a, vector bool short __b)
   4241 {
   4242 #ifdef __LITTLE_ENDIAN__
   4243   return (vector bool char)vec_perm(__a, __b, (vector unsigned char)
   4244     (0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E,
   4245      0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E));
   4246 #else
   4247   return (vector bool char)vec_perm(__a, __b, (vector unsigned char)
   4248     (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
   4249      0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
   4250 #endif
   4251 }
   4252 
   4253 /* vec_vpkuwum */
   4254 
   4255 #define __builtin_altivec_vpkuwum vec_vpkuwum
   4256 
   4257 static vector short __ATTRS_o_ai
   4258 vec_vpkuwum(vector int __a, vector int __b)
   4259 {
   4260 #ifdef __LITTLE_ENDIAN__
   4261   return (vector short)vec_perm(__a, __b, (vector unsigned char)
   4262     (0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
   4263      0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
   4264 #else
   4265   return (vector short)vec_perm(__a, __b, (vector unsigned char)
   4266     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
   4267      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
   4268 #endif
   4269 }
   4270 
   4271 static vector unsigned short __ATTRS_o_ai
   4272 vec_vpkuwum(vector unsigned int __a, vector unsigned int __b)
   4273 {
   4274 #ifdef __LITTLE_ENDIAN__
   4275   return (vector unsigned short)vec_perm(__a, __b, (vector unsigned char)
   4276     (0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
   4277      0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
   4278 #else
   4279   return (vector unsigned short)vec_perm(__a, __b, (vector unsigned char)
   4280     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
   4281      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
   4282 #endif
   4283 }
   4284 
   4285 static vector bool short __ATTRS_o_ai
   4286 vec_vpkuwum(vector bool int __a, vector bool int __b)
   4287 {
   4288 #ifdef __LITTLE_ENDIAN__
   4289   return (vector bool short)vec_perm(__a, __b, (vector unsigned char)
   4290     (0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D,
   4291      0x10, 0x11, 0x14, 0x15, 0x18, 0x19, 0x1C, 0x1D));
   4292 #else
   4293   return (vector bool short)vec_perm(__a, __b, (vector unsigned char)
   4294     (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
   4295      0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
   4296 #endif
   4297 }
   4298 
   4299 /* vec_packpx */
   4300 
   4301 static vector pixel __attribute__((__always_inline__))
   4302 vec_packpx(vector unsigned int __a, vector unsigned int __b)
   4303 {
   4304 #ifdef __LITTLE_ENDIAN__
   4305   return (vector pixel)__builtin_altivec_vpkpx(__b, __a);
   4306 #else
   4307   return (vector pixel)__builtin_altivec_vpkpx(__a, __b);
   4308 #endif
   4309 }
   4310 
   4311 /* vec_vpkpx */
   4312 
   4313 static vector pixel __attribute__((__always_inline__))
   4314 vec_vpkpx(vector unsigned int __a, vector unsigned int __b)
   4315 {
   4316 #ifdef __LITTLE_ENDIAN__
   4317   return (vector pixel)__builtin_altivec_vpkpx(__b, __a);
   4318 #else
   4319   return (vector pixel)__builtin_altivec_vpkpx(__a, __b);
   4320 #endif
   4321 }
   4322 
   4323 /* vec_packs */
   4324 
   4325 static vector signed char __ATTRS_o_ai
   4326 vec_packs(vector short __a, vector short __b)
   4327 {
   4328 #ifdef __LITTLE_ENDIAN__
   4329   return __builtin_altivec_vpkshss(__b, __a);
   4330 #else
   4331   return __builtin_altivec_vpkshss(__a, __b);
   4332 #endif
   4333 }
   4334 
   4335 static vector unsigned char __ATTRS_o_ai
   4336 vec_packs(vector unsigned short __a, vector unsigned short __b)
   4337 {
   4338 #ifdef __LITTLE_ENDIAN__
   4339   return __builtin_altivec_vpkuhus(__b, __a);
   4340 #else
   4341   return __builtin_altivec_vpkuhus(__a, __b);
   4342 #endif
   4343 }
   4344 
   4345 static vector signed short __ATTRS_o_ai
   4346 vec_packs(vector int __a, vector int __b)
   4347 {
   4348 #ifdef __LITTLE_ENDIAN__
   4349   return __builtin_altivec_vpkswss(__b, __a);
   4350 #else
   4351   return __builtin_altivec_vpkswss(__a, __b);
   4352 #endif
   4353 }
   4354 
   4355 static vector unsigned short __ATTRS_o_ai
   4356 vec_packs(vector unsigned int __a, vector unsigned int __b)
   4357 {
   4358 #ifdef __LITTLE_ENDIAN__
   4359   return __builtin_altivec_vpkuwus(__b, __a);
   4360 #else
   4361   return __builtin_altivec_vpkuwus(__a, __b);
   4362 #endif
   4363 }
   4364 
   4365 /* vec_vpkshss */
   4366 
   4367 static vector signed char __attribute__((__always_inline__))
   4368 vec_vpkshss(vector short __a, vector short __b)
   4369 {
   4370 #ifdef __LITTLE_ENDIAN__
   4371   return __builtin_altivec_vpkshss(__b, __a);
   4372 #else
   4373   return __builtin_altivec_vpkshss(__a, __b);
   4374 #endif
   4375 }
   4376 
   4377 /* vec_vpkuhus */
   4378 
   4379 static vector unsigned char __attribute__((__always_inline__))
   4380 vec_vpkuhus(vector unsigned short __a, vector unsigned short __b)
   4381 {
   4382 #ifdef __LITTLE_ENDIAN__
   4383   return __builtin_altivec_vpkuhus(__b, __a);
   4384 #else
   4385   return __builtin_altivec_vpkuhus(__a, __b);
   4386 #endif
   4387 }
   4388 
   4389 /* vec_vpkswss */
   4390 
   4391 static vector signed short __attribute__((__always_inline__))
   4392 vec_vpkswss(vector int __a, vector int __b)
   4393 {
   4394 #ifdef __LITTLE_ENDIAN__
   4395   return __builtin_altivec_vpkswss(__b, __a);
   4396 #else
   4397   return __builtin_altivec_vpkswss(__a, __b);
   4398 #endif
   4399 }
   4400 
   4401 /* vec_vpkuwus */
   4402 
   4403 static vector unsigned short __attribute__((__always_inline__))
   4404 vec_vpkuwus(vector unsigned int __a, vector unsigned int __b)
   4405 {
   4406 #ifdef __LITTLE_ENDIAN__
   4407   return __builtin_altivec_vpkuwus(__b, __a);
   4408 #else
   4409   return __builtin_altivec_vpkuwus(__a, __b);
   4410 #endif
   4411 }
   4412 
   4413 /* vec_packsu */
   4414 
   4415 static vector unsigned char __ATTRS_o_ai
   4416 vec_packsu(vector short __a, vector short __b)
   4417 {
   4418 #ifdef __LITTLE_ENDIAN__
   4419   return __builtin_altivec_vpkshus(__b, __a);
   4420 #else
   4421   return __builtin_altivec_vpkshus(__a, __b);
   4422 #endif
   4423 }
   4424 
   4425 static vector unsigned char __ATTRS_o_ai
   4426 vec_packsu(vector unsigned short __a, vector unsigned short __b)
   4427 {
   4428 #ifdef __LITTLE_ENDIAN__
   4429   return __builtin_altivec_vpkuhus(__b, __a);
   4430 #else
   4431   return __builtin_altivec_vpkuhus(__a, __b);
   4432 #endif
   4433 }
   4434 
   4435 static vector unsigned short __ATTRS_o_ai
   4436 vec_packsu(vector int __a, vector int __b)
   4437 {
   4438 #ifdef __LITTLE_ENDIAN__
   4439   return __builtin_altivec_vpkswus(__b, __a);
   4440 #else
   4441   return __builtin_altivec_vpkswus(__a, __b);
   4442 #endif
   4443 }
   4444 
   4445 static vector unsigned short __ATTRS_o_ai
   4446 vec_packsu(vector unsigned int __a, vector unsigned int __b)
   4447 {
   4448 #ifdef __LITTLE_ENDIAN__
   4449   return __builtin_altivec_vpkuwus(__b, __a);
   4450 #else
   4451   return __builtin_altivec_vpkuwus(__a, __b);
   4452 #endif
   4453 }
   4454 
   4455 /* vec_vpkshus */
   4456 
   4457 static vector unsigned char __ATTRS_o_ai
   4458 vec_vpkshus(vector short __a, vector short __b)
   4459 {
   4460 #ifdef __LITTLE_ENDIAN__
   4461   return __builtin_altivec_vpkshus(__b, __a);
   4462 #else
   4463   return __builtin_altivec_vpkshus(__a, __b);
   4464 #endif
   4465 }
   4466 
   4467 static vector unsigned char __ATTRS_o_ai
   4468 vec_vpkshus(vector unsigned short __a, vector unsigned short __b)
   4469 {
   4470 #ifdef __LITTLE_ENDIAN__
   4471   return __builtin_altivec_vpkuhus(__b, __a);
   4472 #else
   4473   return __builtin_altivec_vpkuhus(__a, __b);
   4474 #endif
   4475 }
   4476 
   4477 /* vec_vpkswus */
   4478 
   4479 static vector unsigned short __ATTRS_o_ai
   4480 vec_vpkswus(vector int __a, vector int __b)
   4481 {
   4482 #ifdef __LITTLE_ENDIAN__
   4483   return __builtin_altivec_vpkswus(__b, __a);
   4484 #else
   4485   return __builtin_altivec_vpkswus(__a, __b);
   4486 #endif
   4487 }
   4488 
   4489 static vector unsigned short __ATTRS_o_ai
   4490 vec_vpkswus(vector unsigned int __a, vector unsigned int __b)
   4491 {
   4492 #ifdef __LITTLE_ENDIAN__
   4493   return __builtin_altivec_vpkuwus(__b, __a);
   4494 #else
   4495   return __builtin_altivec_vpkuwus(__a, __b);
   4496 #endif
   4497 }
   4498 
   4499 /* vec_perm */
   4500 
   4501 // The vperm instruction is defined architecturally with a big-endian bias.
   4502 // For little endian, we swap the input operands and invert the permute
   4503 // control vector.  Only the rightmost 5 bits matter, so we could use
   4504 // a vector of all 31s instead of all 255s to perform the inversion.
   4505 // However, when the PCV is not a constant, using 255 has an advantage
   4506 // in that the vec_xor can be recognized as a vec_nor (and for P8 and
   4507 // later, possibly a vec_nand).
   4508 
   4509 vector signed char __ATTRS_o_ai
   4510 vec_perm(vector signed char __a, vector signed char __b, vector unsigned char __c)
   4511 {
   4512 #ifdef __LITTLE_ENDIAN__
   4513   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4514                               255,255,255,255,255,255,255,255};
   4515   __d = vec_xor(__c, __d);
   4516   return (vector signed char)
   4517            __builtin_altivec_vperm_4si((vector int)__b, (vector int)__a, __d);
   4518 #else
   4519   return (vector signed char)
   4520            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
   4521 #endif
   4522 }
   4523 
   4524 vector unsigned char __ATTRS_o_ai
   4525 vec_perm(vector unsigned char __a,
   4526          vector unsigned char __b,
   4527          vector unsigned char __c)
   4528 {
   4529 #ifdef __LITTLE_ENDIAN__
   4530   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4531                               255,255,255,255,255,255,255,255};
   4532   __d = vec_xor(__c, __d);
   4533   return (vector unsigned char)
   4534            __builtin_altivec_vperm_4si((vector int)__b, (vector int)__a, __d);
   4535 #else
   4536   return (vector unsigned char)
   4537            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
   4538 #endif
   4539 }
   4540 
   4541 vector bool char __ATTRS_o_ai
   4542 vec_perm(vector bool char __a, vector bool char __b, vector unsigned char __c)
   4543 {
   4544 #ifdef __LITTLE_ENDIAN__
   4545   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4546                               255,255,255,255,255,255,255,255};
   4547   __d = vec_xor(__c, __d);
   4548   return (vector bool char)
   4549            __builtin_altivec_vperm_4si((vector int)__b, (vector int)__a, __d);
   4550 #else
   4551   return (vector bool char)
   4552            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
   4553 #endif
   4554 }
   4555 
   4556 vector short __ATTRS_o_ai
   4557 vec_perm(vector short __a, vector short __b, vector unsigned char __c)
   4558 {
   4559 #ifdef __LITTLE_ENDIAN__
   4560   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4561                               255,255,255,255,255,255,255,255};
   4562   __d = vec_xor(__c, __d);
   4563   return (vector short)
   4564            __builtin_altivec_vperm_4si((vector int)__b, (vector int)__a, __d);
   4565 #else
   4566   return (vector short)
   4567            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
   4568 #endif
   4569 }
   4570 
   4571 vector unsigned short __ATTRS_o_ai
   4572 vec_perm(vector unsigned short __a,
   4573          vector unsigned short __b,
   4574          vector unsigned char __c)
   4575 {
   4576 #ifdef __LITTLE_ENDIAN__
   4577   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4578                               255,255,255,255,255,255,255,255};
   4579   __d = vec_xor(__c, __d);
   4580   return (vector unsigned short)
   4581            __builtin_altivec_vperm_4si((vector int)__b, (vector int)__a, __d);
   4582 #else
   4583   return (vector unsigned short)
   4584            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
   4585 #endif
   4586 }
   4587 
   4588 vector bool short __ATTRS_o_ai
   4589 vec_perm(vector bool short __a, vector bool short __b, vector unsigned char __c)
   4590 {
   4591 #ifdef __LITTLE_ENDIAN__
   4592   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4593                               255,255,255,255,255,255,255,255};
   4594   __d = vec_xor(__c, __d);
   4595   return (vector bool short)
   4596            __builtin_altivec_vperm_4si((vector int)__b, (vector int)__a, __d);
   4597 #else
   4598   return (vector bool short)
   4599            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
   4600 #endif
   4601 }
   4602 
   4603 vector pixel __ATTRS_o_ai
   4604 vec_perm(vector pixel __a, vector pixel __b, vector unsigned char __c)
   4605 {
   4606 #ifdef __LITTLE_ENDIAN__
   4607   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4608                               255,255,255,255,255,255,255,255};
   4609   __d = vec_xor(__c, __d);
   4610   return (vector pixel)
   4611            __builtin_altivec_vperm_4si((vector int)__b, (vector int)__a, __d);
   4612 #else
   4613   return (vector pixel)
   4614            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
   4615 #endif
   4616 }
   4617 
   4618 vector int __ATTRS_o_ai
   4619 vec_perm(vector int __a, vector int __b, vector unsigned char __c)
   4620 {
   4621 #ifdef __LITTLE_ENDIAN__
   4622   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4623                               255,255,255,255,255,255,255,255};
   4624   __d = vec_xor(__c, __d);
   4625   return (vector int)__builtin_altivec_vperm_4si(__b, __a, __d);
   4626 #else
   4627   return (vector int)__builtin_altivec_vperm_4si(__a, __b, __c);
   4628 #endif
   4629 }
   4630 
   4631 vector unsigned int __ATTRS_o_ai
   4632 vec_perm(vector unsigned int __a, vector unsigned int __b, vector unsigned char __c)
   4633 {
   4634 #ifdef __LITTLE_ENDIAN__
   4635   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4636                               255,255,255,255,255,255,255,255};
   4637   __d = vec_xor(__c, __d);
   4638   return (vector unsigned int)
   4639            __builtin_altivec_vperm_4si((vector int)__b, (vector int)__a, __d);
   4640 #else
   4641   return (vector unsigned int)
   4642            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
   4643 #endif
   4644 }
   4645 
   4646 vector bool int __ATTRS_o_ai
   4647 vec_perm(vector bool int __a, vector bool int __b, vector unsigned char __c)
   4648 {
   4649 #ifdef __LITTLE_ENDIAN__
   4650   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4651                               255,255,255,255,255,255,255,255};
   4652   __d = vec_xor(__c, __d);
   4653   return (vector bool int)
   4654            __builtin_altivec_vperm_4si((vector int)__b, (vector int)__a, __d);
   4655 #else
   4656   return (vector bool int)
   4657            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
   4658 #endif
   4659 }
   4660 
   4661 vector float __ATTRS_o_ai
   4662 vec_perm(vector float __a, vector float __b, vector unsigned char __c)
   4663 {
   4664 #ifdef __LITTLE_ENDIAN__
   4665   vector unsigned char __d = {255,255,255,255,255,255,255,255,
   4666                               255,255,255,255,255,255,255,255};
   4667   __d = vec_xor(__c, __d);
   4668   return (vector float)
   4669            __builtin_altivec_vperm_4si((vector int)__b, (vector int)__a, __d);
   4670 #else
   4671   return (vector float)
   4672            __builtin_altivec_vperm_4si((vector int)__a, (vector int)__b, __c);
   4673 #endif
   4674 }
   4675 
   4676 /* vec_vperm */
   4677 
   4678 static vector signed char __ATTRS_o_ai
   4679 vec_vperm(vector signed char __a, vector signed char __b, vector unsigned char __c)
   4680 {
   4681   return vec_perm(__a, __b, __c);
   4682 }
   4683 
   4684 static vector unsigned char __ATTRS_o_ai
   4685 vec_vperm(vector unsigned char __a,
   4686           vector unsigned char __b,
   4687           vector unsigned char __c)
   4688 {
   4689   return vec_perm(__a, __b, __c);
   4690 }
   4691 
   4692 static vector bool char __ATTRS_o_ai
   4693 vec_vperm(vector bool char __a, vector bool char __b, vector unsigned char __c)
   4694 {
   4695   return vec_perm(__a, __b, __c);
   4696 }
   4697 
   4698 static vector short __ATTRS_o_ai
   4699 vec_vperm(vector short __a, vector short __b, vector unsigned char __c)
   4700 {
   4701   return vec_perm(__a, __b, __c);
   4702 }
   4703 
   4704 static vector unsigned short __ATTRS_o_ai
   4705 vec_vperm(vector unsigned short __a,
   4706           vector unsigned short __b,
   4707           vector unsigned char __c)
   4708 {
   4709   return vec_perm(__a, __b, __c);
   4710 }
   4711 
   4712 static vector bool short __ATTRS_o_ai
   4713 vec_vperm(vector bool short __a, vector bool short __b, vector unsigned char __c)
   4714 {
   4715   return vec_perm(__a, __b, __c);
   4716 }
   4717 
   4718 static vector pixel __ATTRS_o_ai
   4719 vec_vperm(vector pixel __a, vector pixel __b, vector unsigned char __c)
   4720 {
   4721   return vec_perm(__a, __b, __c);
   4722 }
   4723 
   4724 static vector int __ATTRS_o_ai
   4725 vec_vperm(vector int __a, vector int __b, vector unsigned char __c)
   4726 {
   4727   return vec_perm(__a, __b, __c);
   4728 }
   4729 
   4730 static vector unsigned int __ATTRS_o_ai
   4731 vec_vperm(vector unsigned int __a, vector unsigned int __b, vector unsigned char __c)
   4732 {
   4733   return vec_perm(__a, __b, __c);
   4734 }
   4735 
   4736 static vector bool int __ATTRS_o_ai
   4737 vec_vperm(vector bool int __a, vector bool int __b, vector unsigned char __c)
   4738 {
   4739   return vec_perm(__a, __b, __c);
   4740 }
   4741 
   4742 static vector float __ATTRS_o_ai
   4743 vec_vperm(vector float __a, vector float __b, vector unsigned char __c)
   4744 {
   4745   return vec_perm(__a, __b, __c);
   4746 }
   4747 
   4748 /* vec_re */
   4749 
   4750 static vector float __attribute__((__always_inline__))
   4751 vec_re(vector float __a)
   4752 {
   4753   return __builtin_altivec_vrefp(__a);
   4754 }
   4755 
   4756 /* vec_vrefp */
   4757 
   4758 static vector float __attribute__((__always_inline__))
   4759 vec_vrefp(vector float __a)
   4760 {
   4761   return __builtin_altivec_vrefp(__a);
   4762 }
   4763 
   4764 /* vec_rl */
   4765 
   4766 static vector signed char __ATTRS_o_ai
   4767 vec_rl(vector signed char __a, vector unsigned char __b)
   4768 {
   4769   return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b);
   4770 }
   4771 
   4772 static vector unsigned char __ATTRS_o_ai
   4773 vec_rl(vector unsigned char __a, vector unsigned char __b)
   4774 {
   4775   return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b);
   4776 }
   4777 
   4778 static vector short __ATTRS_o_ai
   4779 vec_rl(vector short __a, vector unsigned short __b)
   4780 {
   4781   return __builtin_altivec_vrlh(__a, __b);
   4782 }
   4783 
   4784 static vector unsigned short __ATTRS_o_ai
   4785 vec_rl(vector unsigned short __a, vector unsigned short __b)
   4786 {
   4787   return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b);
   4788 }
   4789 
   4790 static vector int __ATTRS_o_ai
   4791 vec_rl(vector int __a, vector unsigned int __b)
   4792 {
   4793   return __builtin_altivec_vrlw(__a, __b);
   4794 }
   4795 
   4796 static vector unsigned int __ATTRS_o_ai
   4797 vec_rl(vector unsigned int __a, vector unsigned int __b)
   4798 {
   4799   return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b);
   4800 }
   4801 
   4802 /* vec_vrlb */
   4803 
   4804 static vector signed char __ATTRS_o_ai
   4805 vec_vrlb(vector signed char __a, vector unsigned char __b)
   4806 {
   4807   return (vector signed char)__builtin_altivec_vrlb((vector char)__a, __b);
   4808 }
   4809 
   4810 static vector unsigned char __ATTRS_o_ai
   4811 vec_vrlb(vector unsigned char __a, vector unsigned char __b)
   4812 {
   4813   return (vector unsigned char)__builtin_altivec_vrlb((vector char)__a, __b);
   4814 }
   4815 
   4816 /* vec_vrlh */
   4817 
   4818 static vector short __ATTRS_o_ai
   4819 vec_vrlh(vector short __a, vector unsigned short __b)
   4820 {
   4821   return __builtin_altivec_vrlh(__a, __b);
   4822 }
   4823 
   4824 static vector unsigned short __ATTRS_o_ai
   4825 vec_vrlh(vector unsigned short __a, vector unsigned short __b)
   4826 {
   4827   return (vector unsigned short)__builtin_altivec_vrlh((vector short)__a, __b);
   4828 }
   4829 
   4830 /* vec_vrlw */
   4831 
   4832 static vector int __ATTRS_o_ai
   4833 vec_vrlw(vector int __a, vector unsigned int __b)
   4834 {
   4835   return __builtin_altivec_vrlw(__a, __b);
   4836 }
   4837 
   4838 static vector unsigned int __ATTRS_o_ai
   4839 vec_vrlw(vector unsigned int __a, vector unsigned int __b)
   4840 {
   4841   return (vector unsigned int)__builtin_altivec_vrlw((vector int)__a, __b);
   4842 }
   4843 
   4844 /* vec_round */
   4845 
   4846 static vector float __attribute__((__always_inline__))
   4847 vec_round(vector float __a)
   4848 {
   4849   return __builtin_altivec_vrfin(__a);
   4850 }
   4851 
   4852 /* vec_vrfin */
   4853 
   4854 static vector float __attribute__((__always_inline__))
   4855 vec_vrfin(vector float __a)
   4856 {
   4857   return __builtin_altivec_vrfin(__a);
   4858 }
   4859 
   4860 /* vec_rsqrte */
   4861 
   4862 static __vector float __attribute__((__always_inline__))
   4863 vec_rsqrte(vector float __a)
   4864 {
   4865   return __builtin_altivec_vrsqrtefp(__a);
   4866 }
   4867 
   4868 /* vec_vrsqrtefp */
   4869 
   4870 static __vector float __attribute__((__always_inline__))
   4871 vec_vrsqrtefp(vector float __a)
   4872 {
   4873   return __builtin_altivec_vrsqrtefp(__a);
   4874 }
   4875 
   4876 /* vec_sel */
   4877 
   4878 #define __builtin_altivec_vsel_4si vec_sel
   4879 
   4880 static vector signed char __ATTRS_o_ai
   4881 vec_sel(vector signed char __a, vector signed char __b, vector unsigned char __c)
   4882 {
   4883   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
   4884 }
   4885 
   4886 static vector signed char __ATTRS_o_ai
   4887 vec_sel(vector signed char __a, vector signed char __b, vector bool char __c)
   4888 {
   4889   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
   4890 }
   4891 
   4892 static vector unsigned char __ATTRS_o_ai
   4893 vec_sel(vector unsigned char __a, vector unsigned char __b, vector unsigned char __c)
   4894 {
   4895   return (__a & ~__c) | (__b & __c);
   4896 }
   4897 
   4898 static vector unsigned char __ATTRS_o_ai
   4899 vec_sel(vector unsigned char __a, vector unsigned char __b, vector bool char __c)
   4900 {
   4901   return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c);
   4902 }
   4903 
   4904 static vector bool char __ATTRS_o_ai
   4905 vec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c)
   4906 {
   4907   return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c);
   4908 }
   4909 
   4910 static vector bool char __ATTRS_o_ai
   4911 vec_sel(vector bool char __a, vector bool char __b, vector bool char __c)
   4912 {
   4913   return (__a & ~__c) | (__b & __c);
   4914 }
   4915 
   4916 static vector short __ATTRS_o_ai
   4917 vec_sel(vector short __a, vector short __b, vector unsigned short __c)
   4918 {
   4919   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
   4920 }
   4921 
   4922 static vector short __ATTRS_o_ai
   4923 vec_sel(vector short __a, vector short __b, vector bool short __c)
   4924 {
   4925   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
   4926 }
   4927 
   4928 static vector unsigned short __ATTRS_o_ai
   4929 vec_sel(vector unsigned short __a,
   4930         vector unsigned short __b,
   4931         vector unsigned short __c)
   4932 {
   4933   return (__a & ~__c) | (__b & __c);
   4934 }
   4935 
   4936 static vector unsigned short __ATTRS_o_ai
   4937 vec_sel(vector unsigned short __a, vector unsigned short __b, vector bool short __c)
   4938 {
   4939   return (__a & ~(vector unsigned short)__c) | (__b & (vector unsigned short)__c);
   4940 }
   4941 
   4942 static vector bool short __ATTRS_o_ai
   4943 vec_sel(vector bool short __a, vector bool short __b, vector unsigned short __c)
   4944 {
   4945   return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c);
   4946 }
   4947 
   4948 static vector bool short __ATTRS_o_ai
   4949 vec_sel(vector bool short __a, vector bool short __b, vector bool short __c)
   4950 {
   4951   return (__a & ~__c) | (__b & __c);
   4952 }
   4953 
   4954 static vector int __ATTRS_o_ai
   4955 vec_sel(vector int __a, vector int __b, vector unsigned int __c)
   4956 {
   4957   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
   4958 }
   4959 
   4960 static vector int __ATTRS_o_ai
   4961 vec_sel(vector int __a, vector int __b, vector bool int __c)
   4962 {
   4963   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
   4964 }
   4965 
   4966 static vector unsigned int __ATTRS_o_ai
   4967 vec_sel(vector unsigned int __a, vector unsigned int __b, vector unsigned int __c)
   4968 {
   4969   return (__a & ~__c) | (__b & __c);
   4970 }
   4971 
   4972 static vector unsigned int __ATTRS_o_ai
   4973 vec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c)
   4974 {
   4975   return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c);
   4976 }
   4977 
   4978 static vector bool int __ATTRS_o_ai
   4979 vec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c)
   4980 {
   4981   return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c);
   4982 }
   4983 
   4984 static vector bool int __ATTRS_o_ai
   4985 vec_sel(vector bool int __a, vector bool int __b, vector bool int __c)
   4986 {
   4987   return (__a & ~__c) | (__b & __c);
   4988 }
   4989 
   4990 static vector float __ATTRS_o_ai
   4991 vec_sel(vector float __a, vector float __b, vector unsigned int __c)
   4992 {
   4993   vector int __res = ((vector int)__a & ~(vector int)__c)
   4994                    | ((vector int)__b & (vector int)__c);
   4995   return (vector float)__res;
   4996 }
   4997 
   4998 static vector float __ATTRS_o_ai
   4999 vec_sel(vector float __a, vector float __b, vector bool int __c)
   5000 {
   5001   vector int __res = ((vector int)__a & ~(vector int)__c)
   5002                    | ((vector int)__b & (vector int)__c);
   5003   return (vector float)__res;
   5004 }
   5005 
   5006 /* vec_vsel */
   5007 
   5008 static vector signed char __ATTRS_o_ai
   5009 vec_vsel(vector signed char __a, vector signed char __b, vector unsigned char __c)
   5010 {
   5011   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
   5012 }
   5013 
   5014 static vector signed char __ATTRS_o_ai
   5015 vec_vsel(vector signed char __a, vector signed char __b, vector bool char __c)
   5016 {
   5017   return (__a & ~(vector signed char)__c) | (__b & (vector signed char)__c);
   5018 }
   5019 
   5020 static vector unsigned char __ATTRS_o_ai
   5021 vec_vsel(vector unsigned char __a, vector unsigned char __b, vector unsigned char __c)
   5022 {
   5023   return (__a & ~__c) | (__b & __c);
   5024 }
   5025 
   5026 static vector unsigned char __ATTRS_o_ai
   5027 vec_vsel(vector unsigned char __a, vector unsigned char __b, vector bool char __c)
   5028 {
   5029   return (__a & ~(vector unsigned char)__c) | (__b & (vector unsigned char)__c);
   5030 }
   5031 
   5032 static vector bool char __ATTRS_o_ai
   5033 vec_vsel(vector bool char __a, vector bool char __b, vector unsigned char __c)
   5034 {
   5035   return (__a & ~(vector bool char)__c) | (__b & (vector bool char)__c);
   5036 }
   5037 
   5038 static vector bool char __ATTRS_o_ai
   5039 vec_vsel(vector bool char __a, vector bool char __b, vector bool char __c)
   5040 {
   5041   return (__a & ~__c) | (__b & __c);
   5042 }
   5043 
   5044 static vector short __ATTRS_o_ai
   5045 vec_vsel(vector short __a, vector short __b, vector unsigned short __c)
   5046 {
   5047   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
   5048 }
   5049 
   5050 static vector short __ATTRS_o_ai
   5051 vec_vsel(vector short __a, vector short __b, vector bool short __c)
   5052 {
   5053   return (__a & ~(vector short)__c) | (__b & (vector short)__c);
   5054 }
   5055 
   5056 static vector unsigned short __ATTRS_o_ai
   5057 vec_vsel(vector unsigned short __a,
   5058          vector unsigned short __b,
   5059          vector unsigned short __c)
   5060 {
   5061   return (__a & ~__c) | (__b & __c);
   5062 }
   5063 
   5064 static vector unsigned short __ATTRS_o_ai
   5065 vec_vsel(vector unsigned short __a, vector unsigned short __b, vector bool short __c)
   5066 {
   5067   return (__a & ~(vector unsigned short)__c) | (__b & (vector unsigned short)__c);
   5068 }
   5069 
   5070 static vector bool short __ATTRS_o_ai
   5071 vec_vsel(vector bool short __a, vector bool short __b, vector unsigned short __c)
   5072 {
   5073   return (__a & ~(vector bool short)__c) | (__b & (vector bool short)__c);
   5074 }
   5075 
   5076 static vector bool short __ATTRS_o_ai
   5077 vec_vsel(vector bool short __a, vector bool short __b, vector bool short __c)
   5078 {
   5079   return (__a & ~__c) | (__b & __c);
   5080 }
   5081 
   5082 static vector int __ATTRS_o_ai
   5083 vec_vsel(vector int __a, vector int __b, vector unsigned int __c)
   5084 {
   5085   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
   5086 }
   5087 
   5088 static vector int __ATTRS_o_ai
   5089 vec_vsel(vector int __a, vector int __b, vector bool int __c)
   5090 {
   5091   return (__a & ~(vector int)__c) | (__b & (vector int)__c);
   5092 }
   5093 
   5094 static vector unsigned int __ATTRS_o_ai
   5095 vec_vsel(vector unsigned int __a, vector unsigned int __b, vector unsigned int __c)
   5096 {
   5097   return (__a & ~__c) | (__b & __c);
   5098 }
   5099 
   5100 static vector unsigned int __ATTRS_o_ai
   5101 vec_vsel(vector unsigned int __a, vector unsigned int __b, vector bool int __c)
   5102 {
   5103   return (__a & ~(vector unsigned int)__c) | (__b & (vector unsigned int)__c);
   5104 }
   5105 
   5106 static vector bool int __ATTRS_o_ai
   5107 vec_vsel(vector bool int __a, vector bool int __b, vector unsigned int __c)
   5108 {
   5109   return (__a & ~(vector bool int)__c) | (__b & (vector bool int)__c);
   5110 }
   5111 
   5112 static vector bool int __ATTRS_o_ai
   5113 vec_vsel(vector bool int __a, vector bool int __b, vector bool int __c)
   5114 {
   5115   return (__a & ~__c) | (__b & __c);
   5116 }
   5117 
   5118 static vector float __ATTRS_o_ai
   5119 vec_vsel(vector float __a, vector float __b, vector unsigned int __c)
   5120 {
   5121   vector int __res = ((vector int)__a & ~(vector int)__c)
   5122                    | ((vector int)__b & (vector int)__c);
   5123   return (vector float)__res;
   5124 }
   5125 
   5126 static vector float __ATTRS_o_ai
   5127 vec_vsel(vector float __a, vector float __b, vector bool int __c)
   5128 {
   5129   vector int __res = ((vector int)__a & ~(vector int)__c)
   5130                    | ((vector int)__b & (vector int)__c);
   5131   return (vector float)__res;
   5132 }
   5133 
   5134 /* vec_sl */
   5135 
   5136 static vector signed char __ATTRS_o_ai
   5137 vec_sl(vector signed char __a, vector unsigned char __b)
   5138 {
   5139   return __a << (vector signed char)__b;
   5140 }
   5141 
   5142 static vector unsigned char __ATTRS_o_ai
   5143 vec_sl(vector unsigned char __a, vector unsigned char __b)
   5144 {
   5145   return __a << __b;
   5146 }
   5147 
   5148 static vector short __ATTRS_o_ai
   5149 vec_sl(vector short __a, vector unsigned short __b)
   5150 {
   5151   return __a << (vector short)__b;
   5152 }
   5153 
   5154 static vector unsigned short __ATTRS_o_ai
   5155 vec_sl(vector unsigned short __a, vector unsigned short __b)
   5156 {
   5157   return __a << __b;
   5158 }
   5159 
   5160 static vector int __ATTRS_o_ai
   5161 vec_sl(vector int __a, vector unsigned int __b)
   5162 {
   5163   return __a << (vector int)__b;
   5164 }
   5165 
   5166 static vector unsigned int __ATTRS_o_ai
   5167 vec_sl(vector unsigned int __a, vector unsigned int __b)
   5168 {
   5169   return __a << __b;
   5170 }
   5171 
   5172 /* vec_vslb */
   5173 
   5174 #define __builtin_altivec_vslb vec_vslb
   5175 
   5176 static vector signed char __ATTRS_o_ai
   5177 vec_vslb(vector signed char __a, vector unsigned char __b)
   5178 {
   5179   return vec_sl(__a, __b);
   5180 }
   5181 
   5182 static vector unsigned char __ATTRS_o_ai
   5183 vec_vslb(vector unsigned char __a, vector unsigned char __b)
   5184 {
   5185   return vec_sl(__a, __b);
   5186 }
   5187 
   5188 /* vec_vslh */
   5189 
   5190 #define __builtin_altivec_vslh vec_vslh
   5191 
   5192 static vector short __ATTRS_o_ai
   5193 vec_vslh(vector short __a, vector unsigned short __b)
   5194 {
   5195   return vec_sl(__a, __b);
   5196 }
   5197 
   5198 static vector unsigned short __ATTRS_o_ai
   5199 vec_vslh(vector unsigned short __a, vector unsigned short __b)
   5200 {
   5201   return vec_sl(__a, __b);
   5202 }
   5203 
   5204 /* vec_vslw */
   5205 
   5206 #define __builtin_altivec_vslw vec_vslw
   5207 
   5208 static vector int __ATTRS_o_ai
   5209 vec_vslw(vector int __a, vector unsigned int __b)
   5210 {
   5211   return vec_sl(__a, __b);
   5212 }
   5213 
   5214 static vector unsigned int __ATTRS_o_ai
   5215 vec_vslw(vector unsigned int __a, vector unsigned int __b)
   5216 {
   5217   return vec_sl(__a, __b);
   5218 }
   5219 
   5220 /* vec_sld */
   5221 
   5222 #define __builtin_altivec_vsldoi_4si vec_sld
   5223 
   5224 static vector signed char __ATTRS_o_ai
   5225 vec_sld(vector signed char __a, vector signed char __b, unsigned char __c)
   5226 {
   5227 #ifdef __LITTLE_ENDIAN__
   5228   return vec_perm(__a, __b, (vector unsigned char)
   5229     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5230      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5231 #else
   5232   return vec_perm(__a, __b, (vector unsigned char)
   5233     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5234      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5235 #endif
   5236 }
   5237 
   5238 static vector unsigned char __ATTRS_o_ai
   5239 vec_sld(vector unsigned char __a, vector unsigned char __b, unsigned char __c)
   5240 {
   5241 #ifdef __LITTLE_ENDIAN__
   5242   return vec_perm(__a, __b, (vector unsigned char)
   5243     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5244      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5245 #else
   5246   return vec_perm(__a, __b, (vector unsigned char)
   5247     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5248      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5249 #endif
   5250 }
   5251 
   5252 static vector short __ATTRS_o_ai
   5253 vec_sld(vector short __a, vector short __b, unsigned char __c)
   5254 {
   5255 #ifdef __LITTLE_ENDIAN__
   5256   return vec_perm(__a, __b, (vector unsigned char)
   5257     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5258      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5259 #else
   5260   return vec_perm(__a, __b, (vector unsigned char)
   5261     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5262      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5263 #endif
   5264 }
   5265 
   5266 static vector unsigned short __ATTRS_o_ai
   5267 vec_sld(vector unsigned short __a, vector unsigned short __b, unsigned char __c)
   5268 {
   5269 #ifdef __LITTLE_ENDIAN__
   5270   return vec_perm(__a, __b, (vector unsigned char)
   5271     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5272      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5273 #else
   5274   return vec_perm(__a, __b, (vector unsigned char)
   5275     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5276      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5277 #endif
   5278 }
   5279 
   5280 static vector pixel __ATTRS_o_ai
   5281 vec_sld(vector pixel __a, vector pixel __b, unsigned char __c)
   5282 {
   5283 #ifdef __LITTLE_ENDIAN__
   5284   return vec_perm(__a, __b, (vector unsigned char)
   5285     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5286      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5287 #else
   5288   return vec_perm(__a, __b, (vector unsigned char)
   5289     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5290      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5291 #endif
   5292 }
   5293 
   5294 static vector int __ATTRS_o_ai
   5295 vec_sld(vector int __a, vector int __b, unsigned char __c)
   5296 {
   5297 #ifdef __LITTLE_ENDIAN__
   5298   return vec_perm(__a, __b, (vector unsigned char)
   5299     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5300      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5301 #else
   5302   return vec_perm(__a, __b, (vector unsigned char)
   5303     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5304      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5305 #endif
   5306 }
   5307 
   5308 static vector unsigned int __ATTRS_o_ai
   5309 vec_sld(vector unsigned int __a, vector unsigned int __b, unsigned char __c)
   5310 {
   5311 #ifdef __LITTLE_ENDIAN__
   5312   return vec_perm(__a, __b, (vector unsigned char)
   5313     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5314      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5315 #else
   5316   return vec_perm(__a, __b, (vector unsigned char)
   5317     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5318      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5319 #endif
   5320 }
   5321 
   5322 static vector float __ATTRS_o_ai
   5323 vec_sld(vector float __a, vector float __b, unsigned char __c)
   5324 {
   5325 #ifdef __LITTLE_ENDIAN__
   5326   return vec_perm(__a, __b, (vector unsigned char)
   5327     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5328      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5329 #else
   5330   return vec_perm(__a, __b, (vector unsigned char)
   5331     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5332      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5333 #endif
   5334 }
   5335 
   5336 /* vec_vsldoi */
   5337 
   5338 static vector signed char __ATTRS_o_ai
   5339 vec_vsldoi(vector signed char __a, vector signed char __b, unsigned char __c)
   5340 {
   5341 #ifdef __LITTLE_ENDIAN__
   5342   return vec_perm(__a, __b, (vector unsigned char)
   5343     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5344      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5345 #else
   5346   return vec_perm(__a, __b, (vector unsigned char)
   5347     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5348      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5349 #endif
   5350 }
   5351 
   5352 static vector unsigned char __ATTRS_o_ai
   5353 vec_vsldoi(vector unsigned char __a, vector unsigned char __b, unsigned char __c)
   5354 {
   5355 #ifdef __LITTLE_ENDIAN__
   5356   return vec_perm(__a, __b, (vector unsigned char)
   5357     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5358      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5359 #else
   5360   return vec_perm(__a, __b, (vector unsigned char)
   5361     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5362      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5363 #endif
   5364 }
   5365 
   5366 static vector short __ATTRS_o_ai
   5367 vec_vsldoi(vector short __a, vector short __b, unsigned char __c)
   5368 {
   5369 #ifdef __LITTLE_ENDIAN__
   5370   return vec_perm(__a, __b, (vector unsigned char)
   5371     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5372      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5373 #else
   5374   return vec_perm(__a, __b, (vector unsigned char)
   5375     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5376      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5377 #endif
   5378 }
   5379 
   5380 static vector unsigned short __ATTRS_o_ai
   5381 vec_vsldoi(vector unsigned short __a, vector unsigned short __b, unsigned char __c)
   5382 {
   5383 #ifdef __LITTLE_ENDIAN__
   5384   return vec_perm(__a, __b, (vector unsigned char)
   5385     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5386      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5387 #else
   5388   return vec_perm(__a, __b, (vector unsigned char)
   5389     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5390      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5391 #endif
   5392 }
   5393 
   5394 static vector pixel __ATTRS_o_ai
   5395 vec_vsldoi(vector pixel __a, vector pixel __b, unsigned char __c)
   5396 {
   5397 #ifdef __LITTLE_ENDIAN__
   5398   return vec_perm(__a, __b, (vector unsigned char)
   5399     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5400      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5401 #else
   5402   return vec_perm(__a, __b, (vector unsigned char)
   5403     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5404      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5405 #endif
   5406 }
   5407 
   5408 static vector int __ATTRS_o_ai
   5409 vec_vsldoi(vector int __a, vector int __b, unsigned char __c)
   5410 {
   5411 #ifdef __LITTLE_ENDIAN__
   5412   return vec_perm(__a, __b, (vector unsigned char)
   5413     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5414      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5415 #else
   5416   return vec_perm(__a, __b, (vector unsigned char)
   5417     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5418      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5419 #endif
   5420 }
   5421 
   5422 static vector unsigned int __ATTRS_o_ai
   5423 vec_vsldoi(vector unsigned int __a, vector unsigned int __b, unsigned char __c)
   5424 {
   5425 #ifdef __LITTLE_ENDIAN__
   5426   return vec_perm(__a, __b, (vector unsigned char)
   5427     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5428      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5429 #else
   5430   return vec_perm(__a, __b, (vector unsigned char)
   5431     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5432      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5433 #endif
   5434 }
   5435 
   5436 static vector float __ATTRS_o_ai
   5437 vec_vsldoi(vector float __a, vector float __b, unsigned char __c)
   5438 {
   5439 #ifdef __LITTLE_ENDIAN__
   5440   return vec_perm(__a, __b, (vector unsigned char)
   5441     (__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
   5442      __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
   5443 #else
   5444   return vec_perm(__a, __b, (vector unsigned char)
   5445     (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
   5446      __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
   5447 #endif
   5448 }
   5449 
   5450 /* vec_sll */
   5451 
   5452 static vector signed char __ATTRS_o_ai
   5453 vec_sll(vector signed char __a, vector unsigned char __b)
   5454 {
   5455   return (vector signed char)
   5456            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5457 }
   5458 
   5459 static vector signed char __ATTRS_o_ai
   5460 vec_sll(vector signed char __a, vector unsigned short __b)
   5461 {
   5462   return (vector signed char)
   5463            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5464 }
   5465 
   5466 static vector signed char __ATTRS_o_ai
   5467 vec_sll(vector signed char __a, vector unsigned int __b)
   5468 {
   5469   return (vector signed char)
   5470            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5471 }
   5472 
   5473 static vector unsigned char __ATTRS_o_ai
   5474 vec_sll(vector unsigned char __a, vector unsigned char __b)
   5475 {
   5476   return (vector unsigned char)
   5477            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5478 }
   5479 
   5480 static vector unsigned char __ATTRS_o_ai
   5481 vec_sll(vector unsigned char __a, vector unsigned short __b)
   5482 {
   5483   return (vector unsigned char)
   5484            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5485 }
   5486 
   5487 static vector unsigned char __ATTRS_o_ai
   5488 vec_sll(vector unsigned char __a, vector unsigned int __b)
   5489 {
   5490   return (vector unsigned char)
   5491            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5492 }
   5493 
   5494 static vector bool char __ATTRS_o_ai
   5495 vec_sll(vector bool char __a, vector unsigned char __b)
   5496 {
   5497   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5498 }
   5499 
   5500 static vector bool char __ATTRS_o_ai
   5501 vec_sll(vector bool char __a, vector unsigned short __b)
   5502 {
   5503   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5504 }
   5505 
   5506 static vector bool char __ATTRS_o_ai
   5507 vec_sll(vector bool char __a, vector unsigned int __b)
   5508 {
   5509   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5510 }
   5511 
   5512 static vector short __ATTRS_o_ai
   5513 vec_sll(vector short __a, vector unsigned char __b)
   5514 {
   5515   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5516 }
   5517 
   5518 static vector short __ATTRS_o_ai
   5519 vec_sll(vector short __a, vector unsigned short __b)
   5520 {
   5521   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5522 }
   5523 
   5524 static vector short __ATTRS_o_ai
   5525 vec_sll(vector short __a, vector unsigned int __b)
   5526 {
   5527   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5528 }
   5529 
   5530 static vector unsigned short __ATTRS_o_ai
   5531 vec_sll(vector unsigned short __a, vector unsigned char __b)
   5532 {
   5533   return (vector unsigned short)
   5534            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5535 }
   5536 
   5537 static vector unsigned short __ATTRS_o_ai
   5538 vec_sll(vector unsigned short __a, vector unsigned short __b)
   5539 {
   5540   return (vector unsigned short)
   5541            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5542 }
   5543 
   5544 static vector unsigned short __ATTRS_o_ai
   5545 vec_sll(vector unsigned short __a, vector unsigned int __b)
   5546 {
   5547   return (vector unsigned short)
   5548            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5549 }
   5550 
   5551 static vector bool short __ATTRS_o_ai
   5552 vec_sll(vector bool short __a, vector unsigned char __b)
   5553 {
   5554   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5555 }
   5556 
   5557 static vector bool short __ATTRS_o_ai
   5558 vec_sll(vector bool short __a, vector unsigned short __b)
   5559 {
   5560   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5561 }
   5562 
   5563 static vector bool short __ATTRS_o_ai
   5564 vec_sll(vector bool short __a, vector unsigned int __b)
   5565 {
   5566   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5567 }
   5568 
   5569 static vector pixel __ATTRS_o_ai
   5570 vec_sll(vector pixel __a, vector unsigned char __b)
   5571 {
   5572   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5573 }
   5574 
   5575 static vector pixel __ATTRS_o_ai
   5576 vec_sll(vector pixel __a, vector unsigned short __b)
   5577 {
   5578   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5579 }
   5580 
   5581 static vector pixel __ATTRS_o_ai
   5582 vec_sll(vector pixel __a, vector unsigned int __b)
   5583 {
   5584   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5585 }
   5586 
   5587 static vector int __ATTRS_o_ai
   5588 vec_sll(vector int __a, vector unsigned char __b)
   5589 {
   5590   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
   5591 }
   5592 
   5593 static vector int __ATTRS_o_ai
   5594 vec_sll(vector int __a, vector unsigned short __b)
   5595 {
   5596   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
   5597 }
   5598 
   5599 static vector int __ATTRS_o_ai
   5600 vec_sll(vector int __a, vector unsigned int __b)
   5601 {
   5602   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
   5603 }
   5604 
   5605 static vector unsigned int __ATTRS_o_ai
   5606 vec_sll(vector unsigned int __a, vector unsigned char __b)
   5607 {
   5608   return (vector unsigned int)
   5609            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5610 }
   5611 
   5612 static vector unsigned int __ATTRS_o_ai
   5613 vec_sll(vector unsigned int __a, vector unsigned short __b)
   5614 {
   5615   return (vector unsigned int)
   5616            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5617 }
   5618 
   5619 static vector unsigned int __ATTRS_o_ai
   5620 vec_sll(vector unsigned int __a, vector unsigned int __b)
   5621 {
   5622   return (vector unsigned int)
   5623            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5624 }
   5625 
   5626 static vector bool int __ATTRS_o_ai
   5627 vec_sll(vector bool int __a, vector unsigned char __b)
   5628 {
   5629   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5630 }
   5631 
   5632 static vector bool int __ATTRS_o_ai
   5633 vec_sll(vector bool int __a, vector unsigned short __b)
   5634 {
   5635   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5636 }
   5637 
   5638 static vector bool int __ATTRS_o_ai
   5639 vec_sll(vector bool int __a, vector unsigned int __b)
   5640 {
   5641   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5642 }
   5643 
   5644 /* vec_vsl */
   5645 
   5646 static vector signed char __ATTRS_o_ai
   5647 vec_vsl(vector signed char __a, vector unsigned char __b)
   5648 {
   5649   return (vector signed char)
   5650            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5651 }
   5652 
   5653 static vector signed char __ATTRS_o_ai
   5654 vec_vsl(vector signed char __a, vector unsigned short __b)
   5655 {
   5656   return (vector signed char)
   5657            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5658 }
   5659 
   5660 static vector signed char __ATTRS_o_ai
   5661 vec_vsl(vector signed char __a, vector unsigned int __b)
   5662 {
   5663   return (vector signed char)
   5664            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5665 }
   5666 
   5667 static vector unsigned char __ATTRS_o_ai
   5668 vec_vsl(vector unsigned char __a, vector unsigned char __b)
   5669 {
   5670   return (vector unsigned char)
   5671            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5672 }
   5673 
   5674 static vector unsigned char __ATTRS_o_ai
   5675 vec_vsl(vector unsigned char __a, vector unsigned short __b)
   5676 {
   5677   return (vector unsigned char)
   5678            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5679 }
   5680 
   5681 static vector unsigned char __ATTRS_o_ai
   5682 vec_vsl(vector unsigned char __a, vector unsigned int __b)
   5683 {
   5684   return (vector unsigned char)
   5685            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5686 }
   5687 
   5688 static vector bool char __ATTRS_o_ai
   5689 vec_vsl(vector bool char __a, vector unsigned char __b)
   5690 {
   5691   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5692 }
   5693 
   5694 static vector bool char __ATTRS_o_ai
   5695 vec_vsl(vector bool char __a, vector unsigned short __b)
   5696 {
   5697   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5698 }
   5699 
   5700 static vector bool char __ATTRS_o_ai
   5701 vec_vsl(vector bool char __a, vector unsigned int __b)
   5702 {
   5703   return (vector bool char)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5704 }
   5705 
   5706 static vector short __ATTRS_o_ai
   5707 vec_vsl(vector short __a, vector unsigned char __b)
   5708 {
   5709   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5710 }
   5711 
   5712 static vector short __ATTRS_o_ai
   5713 vec_vsl(vector short __a, vector unsigned short __b)
   5714 {
   5715   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5716 }
   5717 
   5718 static vector short __ATTRS_o_ai
   5719 vec_vsl(vector short __a, vector unsigned int __b)
   5720 {
   5721   return (vector short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5722 }
   5723 
   5724 static vector unsigned short __ATTRS_o_ai
   5725 vec_vsl(vector unsigned short __a, vector unsigned char __b)
   5726 {
   5727   return (vector unsigned short)
   5728            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5729 }
   5730 
   5731 static vector unsigned short __ATTRS_o_ai
   5732 vec_vsl(vector unsigned short __a, vector unsigned short __b)
   5733 {
   5734   return (vector unsigned short)
   5735            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5736 }
   5737 
   5738 static vector unsigned short __ATTRS_o_ai
   5739 vec_vsl(vector unsigned short __a, vector unsigned int __b)
   5740 {
   5741   return (vector unsigned short)
   5742            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5743 }
   5744 
   5745 static vector bool short __ATTRS_o_ai
   5746 vec_vsl(vector bool short __a, vector unsigned char __b)
   5747 {
   5748   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5749 }
   5750 
   5751 static vector bool short __ATTRS_o_ai
   5752 vec_vsl(vector bool short __a, vector unsigned short __b)
   5753 {
   5754   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5755 }
   5756 
   5757 static vector bool short __ATTRS_o_ai
   5758 vec_vsl(vector bool short __a, vector unsigned int __b)
   5759 {
   5760   return (vector bool short)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5761 }
   5762 
   5763 static vector pixel __ATTRS_o_ai
   5764 vec_vsl(vector pixel __a, vector unsigned char __b)
   5765 {
   5766   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5767 }
   5768 
   5769 static vector pixel __ATTRS_o_ai
   5770 vec_vsl(vector pixel __a, vector unsigned short __b)
   5771 {
   5772   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5773 }
   5774 
   5775 static vector pixel __ATTRS_o_ai
   5776 vec_vsl(vector pixel __a, vector unsigned int __b)
   5777 {
   5778   return (vector pixel)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5779 }
   5780 
   5781 static vector int __ATTRS_o_ai
   5782 vec_vsl(vector int __a, vector unsigned char __b)
   5783 {
   5784   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
   5785 }
   5786 
   5787 static vector int __ATTRS_o_ai
   5788 vec_vsl(vector int __a, vector unsigned short __b)
   5789 {
   5790   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
   5791 }
   5792 
   5793 static vector int __ATTRS_o_ai
   5794 vec_vsl(vector int __a, vector unsigned int __b)
   5795 {
   5796   return (vector int)__builtin_altivec_vsl(__a, (vector int)__b);
   5797 }
   5798 
   5799 static vector unsigned int __ATTRS_o_ai
   5800 vec_vsl(vector unsigned int __a, vector unsigned char __b)
   5801 {
   5802   return (vector unsigned int)
   5803            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5804 }
   5805 
   5806 static vector unsigned int __ATTRS_o_ai
   5807 vec_vsl(vector unsigned int __a, vector unsigned short __b)
   5808 {
   5809   return (vector unsigned int)
   5810            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5811 }
   5812 
   5813 static vector unsigned int __ATTRS_o_ai
   5814 vec_vsl(vector unsigned int __a, vector unsigned int __b)
   5815 {
   5816   return (vector unsigned int)
   5817            __builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5818 }
   5819 
   5820 static vector bool int __ATTRS_o_ai
   5821 vec_vsl(vector bool int __a, vector unsigned char __b)
   5822 {
   5823   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5824 }
   5825 
   5826 static vector bool int __ATTRS_o_ai
   5827 vec_vsl(vector bool int __a, vector unsigned short __b)
   5828 {
   5829   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5830 }
   5831 
   5832 static vector bool int __ATTRS_o_ai
   5833 vec_vsl(vector bool int __a, vector unsigned int __b)
   5834 {
   5835   return (vector bool int)__builtin_altivec_vsl((vector int)__a, (vector int)__b);
   5836 }
   5837 
   5838 /* vec_slo */
   5839 
   5840 static vector signed char __ATTRS_o_ai
   5841 vec_slo(vector signed char __a, vector signed char __b)
   5842 {
   5843   return (vector signed char)
   5844            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5845 }
   5846 
   5847 static vector signed char __ATTRS_o_ai
   5848 vec_slo(vector signed char __a, vector unsigned char __b)
   5849 {
   5850   return (vector signed char)
   5851            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5852 }
   5853 
   5854 static vector unsigned char __ATTRS_o_ai
   5855 vec_slo(vector unsigned char __a, vector signed char __b)
   5856 {
   5857   return (vector unsigned char)
   5858            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5859 }
   5860 
   5861 static vector unsigned char __ATTRS_o_ai
   5862 vec_slo(vector unsigned char __a, vector unsigned char __b)
   5863 {
   5864   return (vector unsigned char)
   5865            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5866 }
   5867 
   5868 static vector short __ATTRS_o_ai
   5869 vec_slo(vector short __a, vector signed char __b)
   5870 {
   5871   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5872 }
   5873 
   5874 static vector short __ATTRS_o_ai
   5875 vec_slo(vector short __a, vector unsigned char __b)
   5876 {
   5877   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5878 }
   5879 
   5880 static vector unsigned short __ATTRS_o_ai
   5881 vec_slo(vector unsigned short __a, vector signed char __b)
   5882 {
   5883   return (vector unsigned short)
   5884            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5885 }
   5886 
   5887 static vector unsigned short __ATTRS_o_ai
   5888 vec_slo(vector unsigned short __a, vector unsigned char __b)
   5889 {
   5890   return (vector unsigned short)
   5891            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5892 }
   5893 
   5894 static vector pixel __ATTRS_o_ai
   5895 vec_slo(vector pixel __a, vector signed char __b)
   5896 {
   5897   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5898 }
   5899 
   5900 static vector pixel __ATTRS_o_ai
   5901 vec_slo(vector pixel __a, vector unsigned char __b)
   5902 {
   5903   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5904 }
   5905 
   5906 static vector int __ATTRS_o_ai
   5907 vec_slo(vector int __a, vector signed char __b)
   5908 {
   5909   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
   5910 }
   5911 
   5912 static vector int __ATTRS_o_ai
   5913 vec_slo(vector int __a, vector unsigned char __b)
   5914 {
   5915   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
   5916 }
   5917 
   5918 static vector unsigned int __ATTRS_o_ai
   5919 vec_slo(vector unsigned int __a, vector signed char __b)
   5920 {
   5921   return (vector unsigned int)
   5922            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5923 }
   5924 
   5925 static vector unsigned int __ATTRS_o_ai
   5926 vec_slo(vector unsigned int __a, vector unsigned char __b)
   5927 {
   5928   return (vector unsigned int)
   5929            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5930 }
   5931 
   5932 static vector float __ATTRS_o_ai
   5933 vec_slo(vector float __a, vector signed char __b)
   5934 {
   5935   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5936 }
   5937 
   5938 static vector float __ATTRS_o_ai
   5939 vec_slo(vector float __a, vector unsigned char __b)
   5940 {
   5941   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5942 }
   5943 
   5944 /* vec_vslo */
   5945 
   5946 static vector signed char __ATTRS_o_ai
   5947 vec_vslo(vector signed char __a, vector signed char __b)
   5948 {
   5949   return (vector signed char)
   5950            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5951 }
   5952 
   5953 static vector signed char __ATTRS_o_ai
   5954 vec_vslo(vector signed char __a, vector unsigned char __b)
   5955 {
   5956   return (vector signed char)
   5957            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5958 }
   5959 
   5960 static vector unsigned char __ATTRS_o_ai
   5961 vec_vslo(vector unsigned char __a, vector signed char __b)
   5962 {
   5963   return (vector unsigned char)
   5964            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5965 }
   5966 
   5967 static vector unsigned char __ATTRS_o_ai
   5968 vec_vslo(vector unsigned char __a, vector unsigned char __b)
   5969 {
   5970   return (vector unsigned char)
   5971            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5972 }
   5973 
   5974 static vector short __ATTRS_o_ai
   5975 vec_vslo(vector short __a, vector signed char __b)
   5976 {
   5977   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5978 }
   5979 
   5980 static vector short __ATTRS_o_ai
   5981 vec_vslo(vector short __a, vector unsigned char __b)
   5982 {
   5983   return (vector short)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5984 }
   5985 
   5986 static vector unsigned short __ATTRS_o_ai
   5987 vec_vslo(vector unsigned short __a, vector signed char __b)
   5988 {
   5989   return (vector unsigned short)
   5990            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5991 }
   5992 
   5993 static vector unsigned short __ATTRS_o_ai
   5994 vec_vslo(vector unsigned short __a, vector unsigned char __b)
   5995 {
   5996   return (vector unsigned short)
   5997            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   5998 }
   5999 
   6000 static vector pixel __ATTRS_o_ai
   6001 vec_vslo(vector pixel __a, vector signed char __b)
   6002 {
   6003   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   6004 }
   6005 
   6006 static vector pixel __ATTRS_o_ai
   6007 vec_vslo(vector pixel __a, vector unsigned char __b)
   6008 {
   6009   return (vector pixel)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   6010 }
   6011 
   6012 static vector int __ATTRS_o_ai
   6013 vec_vslo(vector int __a, vector signed char __b)
   6014 {
   6015   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
   6016 }
   6017 
   6018 static vector int __ATTRS_o_ai
   6019 vec_vslo(vector int __a, vector unsigned char __b)
   6020 {
   6021   return (vector int)__builtin_altivec_vslo(__a, (vector int)__b);
   6022 }
   6023 
   6024 static vector unsigned int __ATTRS_o_ai
   6025 vec_vslo(vector unsigned int __a, vector signed char __b)
   6026 {
   6027   return (vector unsigned int)
   6028            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   6029 }
   6030 
   6031 static vector unsigned int __ATTRS_o_ai
   6032 vec_vslo(vector unsigned int __a, vector unsigned char __b)
   6033 {
   6034   return (vector unsigned int)
   6035            __builtin_altivec_vslo((vector int)__a, (vector int)__b);
   6036 }
   6037 
   6038 static vector float __ATTRS_o_ai
   6039 vec_vslo(vector float __a, vector signed char __b)
   6040 {
   6041   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   6042 }
   6043 
   6044 static vector float __ATTRS_o_ai
   6045 vec_vslo(vector float __a, vector unsigned char __b)
   6046 {
   6047   return (vector float)__builtin_altivec_vslo((vector int)__a, (vector int)__b);
   6048 }
   6049 
   6050 /* vec_splat */
   6051 
   6052 static vector signed char __ATTRS_o_ai
   6053 vec_splat(vector signed char __a, unsigned char __b)
   6054 {
   6055   return vec_perm(__a, __a, (vector unsigned char)(__b));
   6056 }
   6057 
   6058 static vector unsigned char __ATTRS_o_ai
   6059 vec_splat(vector unsigned char __a, unsigned char __b)
   6060 {
   6061   return vec_perm(__a, __a, (vector unsigned char)(__b));
   6062 }
   6063 
   6064 static vector bool char __ATTRS_o_ai
   6065 vec_splat(vector bool char __a, unsigned char __b)
   6066 {
   6067   return vec_perm(__a, __a, (vector unsigned char)(__b));
   6068 }
   6069 
   6070 static vector short __ATTRS_o_ai
   6071 vec_splat(vector short __a, unsigned char __b)
   6072 {
   6073   __b *= 2;
   6074   unsigned char b1=__b+1;
   6075   return vec_perm(__a, __a, (vector unsigned char)
   6076     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
   6077 }
   6078 
   6079 static vector unsigned short __ATTRS_o_ai
   6080 vec_splat(vector unsigned short __a, unsigned char __b)
   6081 {
   6082   __b *= 2;
   6083   unsigned char b1=__b+1;
   6084   return vec_perm(__a, __a, (vector unsigned char)
   6085     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
   6086 }
   6087 
   6088 static vector bool short __ATTRS_o_ai
   6089 vec_splat(vector bool short __a, unsigned char __b)
   6090 {
   6091   __b *= 2;
   6092   unsigned char b1=__b+1;
   6093   return vec_perm(__a, __a, (vector unsigned char)
   6094     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
   6095 }
   6096 
   6097 static vector pixel __ATTRS_o_ai
   6098 vec_splat(vector pixel __a, unsigned char __b)
   6099 {
   6100   __b *= 2;
   6101   unsigned char b1=__b+1;
   6102   return vec_perm(__a, __a, (vector unsigned char)
   6103     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
   6104 }
   6105 
   6106 static vector int __ATTRS_o_ai
   6107 vec_splat(vector int __a, unsigned char __b)
   6108 {
   6109   __b *= 4;
   6110   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
   6111   return vec_perm(__a, __a, (vector unsigned char)
   6112     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
   6113 }
   6114 
   6115 static vector unsigned int __ATTRS_o_ai
   6116 vec_splat(vector unsigned int __a, unsigned char __b)
   6117 {
   6118   __b *= 4;
   6119   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
   6120   return vec_perm(__a, __a, (vector unsigned char)
   6121     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
   6122 }
   6123 
   6124 static vector bool int __ATTRS_o_ai
   6125 vec_splat(vector bool int __a, unsigned char __b)
   6126 {
   6127   __b *= 4;
   6128   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
   6129   return vec_perm(__a, __a, (vector unsigned char)
   6130     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
   6131 }
   6132 
   6133 static vector float __ATTRS_o_ai
   6134 vec_splat(vector float __a, unsigned char __b)
   6135 {
   6136   __b *= 4;
   6137   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
   6138   return vec_perm(__a, __a, (vector unsigned char)
   6139     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
   6140 }
   6141 
   6142 /* vec_vspltb */
   6143 
   6144 #define __builtin_altivec_vspltb vec_vspltb
   6145 
   6146 static vector signed char __ATTRS_o_ai
   6147 vec_vspltb(vector signed char __a, unsigned char __b)
   6148 {
   6149   return vec_perm(__a, __a, (vector unsigned char)(__b));
   6150 }
   6151 
   6152 static vector unsigned char __ATTRS_o_ai
   6153 vec_vspltb(vector unsigned char __a, unsigned char __b)
   6154 {
   6155   return vec_perm(__a, __a, (vector unsigned char)(__b));
   6156 }
   6157 
   6158 static vector bool char __ATTRS_o_ai
   6159 vec_vspltb(vector bool char __a, unsigned char __b)
   6160 {
   6161   return vec_perm(__a, __a, (vector unsigned char)(__b));
   6162 }
   6163 
   6164 /* vec_vsplth */
   6165 
   6166 #define __builtin_altivec_vsplth vec_vsplth
   6167 
   6168 static vector short __ATTRS_o_ai
   6169 vec_vsplth(vector short __a, unsigned char __b)
   6170 {
   6171   __b *= 2;
   6172   unsigned char b1=__b+1;
   6173   return vec_perm(__a, __a, (vector unsigned char)
   6174     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
   6175 }
   6176 
   6177 static vector unsigned short __ATTRS_o_ai
   6178 vec_vsplth(vector unsigned short __a, unsigned char __b)
   6179 {
   6180   __b *= 2;
   6181   unsigned char b1=__b+1;
   6182   return vec_perm(__a, __a, (vector unsigned char)
   6183     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
   6184 }
   6185 
   6186 static vector bool short __ATTRS_o_ai
   6187 vec_vsplth(vector bool short __a, unsigned char __b)
   6188 {
   6189   __b *= 2;
   6190   unsigned char b1=__b+1;
   6191   return vec_perm(__a, __a, (vector unsigned char)
   6192     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
   6193 }
   6194 
   6195 static vector pixel __ATTRS_o_ai
   6196 vec_vsplth(vector pixel __a, unsigned char __b)
   6197 {
   6198   __b *= 2;
   6199   unsigned char b1=__b+1;
   6200   return vec_perm(__a, __a, (vector unsigned char)
   6201     (__b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1, __b, b1));
   6202 }
   6203 
   6204 /* vec_vspltw */
   6205 
   6206 #define __builtin_altivec_vspltw vec_vspltw
   6207 
   6208 static vector int __ATTRS_o_ai
   6209 vec_vspltw(vector int __a, unsigned char __b)
   6210 {
   6211   __b *= 4;
   6212   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
   6213   return vec_perm(__a, __a, (vector unsigned char)
   6214     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
   6215 }
   6216 
   6217 static vector unsigned int __ATTRS_o_ai
   6218 vec_vspltw(vector unsigned int __a, unsigned char __b)
   6219 {
   6220   __b *= 4;
   6221   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
   6222   return vec_perm(__a, __a, (vector unsigned char)
   6223     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
   6224 }
   6225 
   6226 static vector bool int __ATTRS_o_ai
   6227 vec_vspltw(vector bool int __a, unsigned char __b)
   6228 {
   6229   __b *= 4;
   6230   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
   6231   return vec_perm(__a, __a, (vector unsigned char)
   6232     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
   6233 }
   6234 
   6235 static vector float __ATTRS_o_ai
   6236 vec_vspltw(vector float __a, unsigned char __b)
   6237 {
   6238   __b *= 4;
   6239   unsigned char b1=__b+1, b2=__b+2, b3=__b+3;
   6240   return vec_perm(__a, __a, (vector unsigned char)
   6241     (__b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3, __b, b1, b2, b3));
   6242 }
   6243 
   6244 /* vec_splat_s8 */
   6245 
   6246 #define __builtin_altivec_vspltisb vec_splat_s8
   6247 
   6248 // FIXME: parameter should be treated as 5-bit signed literal
   6249 static vector signed char __ATTRS_o_ai
   6250 vec_splat_s8(signed char __a)
   6251 {
   6252   return (vector signed char)(__a);
   6253 }
   6254 
   6255 /* vec_vspltisb */
   6256 
   6257 // FIXME: parameter should be treated as 5-bit signed literal
   6258 static vector signed char __ATTRS_o_ai
   6259 vec_vspltisb(signed char __a)
   6260 {
   6261   return (vector signed char)(__a);
   6262 }
   6263 
   6264 /* vec_splat_s16 */
   6265 
   6266 #define __builtin_altivec_vspltish vec_splat_s16
   6267 
   6268 // FIXME: parameter should be treated as 5-bit signed literal
   6269 static vector short __ATTRS_o_ai
   6270 vec_splat_s16(signed char __a)
   6271 {
   6272   return (vector short)(__a);
   6273 }
   6274 
   6275 /* vec_vspltish */
   6276 
   6277 // FIXME: parameter should be treated as 5-bit signed literal
   6278 static vector short __ATTRS_o_ai
   6279 vec_vspltish(signed char __a)
   6280 {
   6281   return (vector short)(__a);
   6282 }
   6283 
   6284 /* vec_splat_s32 */
   6285 
   6286 #define __builtin_altivec_vspltisw vec_splat_s32
   6287 
   6288 // FIXME: parameter should be treated as 5-bit signed literal
   6289 static vector int __ATTRS_o_ai
   6290 vec_splat_s32(signed char __a)
   6291 {
   6292   return (vector int)(__a);
   6293 }
   6294 
   6295 /* vec_vspltisw */
   6296 
   6297 // FIXME: parameter should be treated as 5-bit signed literal
   6298 static vector int __ATTRS_o_ai
   6299 vec_vspltisw(signed char __a)
   6300 {
   6301   return (vector int)(__a);
   6302 }
   6303 
   6304 /* vec_splat_u8 */
   6305 
   6306 // FIXME: parameter should be treated as 5-bit signed literal
   6307 static vector unsigned char __ATTRS_o_ai
   6308 vec_splat_u8(unsigned char __a)
   6309 {
   6310   return (vector unsigned char)(__a);
   6311 }
   6312 
   6313 /* vec_splat_u16 */
   6314 
   6315 // FIXME: parameter should be treated as 5-bit signed literal
   6316 static vector unsigned short __ATTRS_o_ai
   6317 vec_splat_u16(signed char __a)
   6318 {
   6319   return (vector unsigned short)(__a);
   6320 }
   6321 
   6322 /* vec_splat_u32 */
   6323 
   6324 // FIXME: parameter should be treated as 5-bit signed literal
   6325 static vector unsigned int __ATTRS_o_ai
   6326 vec_splat_u32(signed char __a)
   6327 {
   6328   return (vector unsigned int)(__a);
   6329 }
   6330 
   6331 /* vec_sr */
   6332 
   6333 static vector signed char __ATTRS_o_ai
   6334 vec_sr(vector signed char __a, vector unsigned char __b)
   6335 {
   6336   return __a >> (vector signed char)__b;
   6337 }
   6338 
   6339 static vector unsigned char __ATTRS_o_ai
   6340 vec_sr(vector unsigned char __a, vector unsigned char __b)
   6341 {
   6342   return __a >> __b;
   6343 }
   6344 
   6345 static vector short __ATTRS_o_ai
   6346 vec_sr(vector short __a, vector unsigned short __b)
   6347 {
   6348   return __a >> (vector short)__b;
   6349 }
   6350 
   6351 static vector unsigned short __ATTRS_o_ai
   6352 vec_sr(vector unsigned short __a, vector unsigned short __b)
   6353 {
   6354   return __a >> __b;
   6355 }
   6356 
   6357 static vector int __ATTRS_o_ai
   6358 vec_sr(vector int __a, vector unsigned int __b)
   6359 {
   6360   return __a >> (vector int)__b;
   6361 }
   6362 
   6363 static vector unsigned int __ATTRS_o_ai
   6364 vec_sr(vector unsigned int __a, vector unsigned int __b)
   6365 {
   6366   return __a >> __b;
   6367 }
   6368 
   6369 /* vec_vsrb */
   6370 
   6371 #define __builtin_altivec_vsrb vec_vsrb
   6372 
   6373 static vector signed char __ATTRS_o_ai
   6374 vec_vsrb(vector signed char __a, vector unsigned char __b)
   6375 {
   6376   return __a >> (vector signed char)__b;
   6377 }
   6378 
   6379 static vector unsigned char __ATTRS_o_ai
   6380 vec_vsrb(vector unsigned char __a, vector unsigned char __b)
   6381 {
   6382   return __a >> __b;
   6383 }
   6384 
   6385 /* vec_vsrh */
   6386 
   6387 #define __builtin_altivec_vsrh vec_vsrh
   6388 
   6389 static vector short __ATTRS_o_ai
   6390 vec_vsrh(vector short __a, vector unsigned short __b)
   6391 {
   6392   return __a >> (vector short)__b;
   6393 }
   6394 
   6395 static vector unsigned short __ATTRS_o_ai
   6396 vec_vsrh(vector unsigned short __a, vector unsigned short __b)
   6397 {
   6398   return __a >> __b;
   6399 }
   6400 
   6401 /* vec_vsrw */
   6402 
   6403 #define __builtin_altivec_vsrw vec_vsrw
   6404 
   6405 static vector int __ATTRS_o_ai
   6406 vec_vsrw(vector int __a, vector unsigned int __b)
   6407 {
   6408   return __a >> (vector int)__b;
   6409 }
   6410 
   6411 static vector unsigned int __ATTRS_o_ai
   6412 vec_vsrw(vector unsigned int __a, vector unsigned int __b)
   6413 {
   6414   return __a >> __b;
   6415 }
   6416 
   6417 /* vec_sra */
   6418 
   6419 static vector signed char __ATTRS_o_ai
   6420 vec_sra(vector signed char __a, vector unsigned char __b)
   6421 {
   6422   return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b);
   6423 }
   6424 
   6425 static vector unsigned char __ATTRS_o_ai
   6426 vec_sra(vector unsigned char __a, vector unsigned char __b)
   6427 {
   6428   return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b);
   6429 }
   6430 
   6431 static vector short __ATTRS_o_ai
   6432 vec_sra(vector short __a, vector unsigned short __b)
   6433 {
   6434   return __builtin_altivec_vsrah(__a, (vector unsigned short)__b);
   6435 }
   6436 
   6437 static vector unsigned short __ATTRS_o_ai
   6438 vec_sra(vector unsigned short __a, vector unsigned short __b)
   6439 {
   6440   return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b);
   6441 }
   6442 
   6443 static vector int __ATTRS_o_ai
   6444 vec_sra(vector int __a, vector unsigned int __b)
   6445 {
   6446   return __builtin_altivec_vsraw(__a, __b);
   6447 }
   6448 
   6449 static vector unsigned int __ATTRS_o_ai
   6450 vec_sra(vector unsigned int __a, vector unsigned int __b)
   6451 {
   6452   return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b);
   6453 }
   6454 
   6455 /* vec_vsrab */
   6456 
   6457 static vector signed char __ATTRS_o_ai
   6458 vec_vsrab(vector signed char __a, vector unsigned char __b)
   6459 {
   6460   return (vector signed char)__builtin_altivec_vsrab((vector char)__a, __b);
   6461 }
   6462 
   6463 static vector unsigned char __ATTRS_o_ai
   6464 vec_vsrab(vector unsigned char __a, vector unsigned char __b)
   6465 {
   6466   return (vector unsigned char)__builtin_altivec_vsrab((vector char)__a, __b);
   6467 }
   6468 
   6469 /* vec_vsrah */
   6470 
   6471 static vector short __ATTRS_o_ai
   6472 vec_vsrah(vector short __a, vector unsigned short __b)
   6473 {
   6474   return __builtin_altivec_vsrah(__a, (vector unsigned short)__b);
   6475 }
   6476 
   6477 static vector unsigned short __ATTRS_o_ai
   6478 vec_vsrah(vector unsigned short __a, vector unsigned short __b)
   6479 {
   6480   return (vector unsigned short)__builtin_altivec_vsrah((vector short)__a, __b);
   6481 }
   6482 
   6483 /* vec_vsraw */
   6484 
   6485 static vector int __ATTRS_o_ai
   6486 vec_vsraw(vector int __a, vector unsigned int __b)
   6487 {
   6488   return __builtin_altivec_vsraw(__a, __b);
   6489 }
   6490 
   6491 static vector unsigned int __ATTRS_o_ai
   6492 vec_vsraw(vector unsigned int __a, vector unsigned int __b)
   6493 {
   6494   return (vector unsigned int)__builtin_altivec_vsraw((vector int)__a, __b);
   6495 }
   6496 
   6497 /* vec_srl */
   6498 
   6499 static vector signed char __ATTRS_o_ai
   6500 vec_srl(vector signed char __a, vector unsigned char __b)
   6501 {
   6502   return (vector signed char)
   6503            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6504 }
   6505 
   6506 static vector signed char __ATTRS_o_ai
   6507 vec_srl(vector signed char __a, vector unsigned short __b)
   6508 {
   6509   return (vector signed char)
   6510            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6511 }
   6512 
   6513 static vector signed char __ATTRS_o_ai
   6514 vec_srl(vector signed char __a, vector unsigned int __b)
   6515 {
   6516   return (vector signed char)
   6517            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6518 }
   6519 
   6520 static vector unsigned char __ATTRS_o_ai
   6521 vec_srl(vector unsigned char __a, vector unsigned char __b)
   6522 {
   6523   return (vector unsigned char)
   6524            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6525 }
   6526 
   6527 static vector unsigned char __ATTRS_o_ai
   6528 vec_srl(vector unsigned char __a, vector unsigned short __b)
   6529 {
   6530   return (vector unsigned char)
   6531            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6532 }
   6533 
   6534 static vector unsigned char __ATTRS_o_ai
   6535 vec_srl(vector unsigned char __a, vector unsigned int __b)
   6536 {
   6537   return (vector unsigned char)
   6538            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6539 }
   6540 
   6541 static vector bool char __ATTRS_o_ai
   6542 vec_srl(vector bool char __a, vector unsigned char __b)
   6543 {
   6544   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6545 }
   6546 
   6547 static vector bool char __ATTRS_o_ai
   6548 vec_srl(vector bool char __a, vector unsigned short __b)
   6549 {
   6550   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6551 }
   6552 
   6553 static vector bool char __ATTRS_o_ai
   6554 vec_srl(vector bool char __a, vector unsigned int __b)
   6555 {
   6556   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6557 }
   6558 
   6559 static vector short __ATTRS_o_ai
   6560 vec_srl(vector short __a, vector unsigned char __b)
   6561 {
   6562   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6563 }
   6564 
   6565 static vector short __ATTRS_o_ai
   6566 vec_srl(vector short __a, vector unsigned short __b)
   6567 {
   6568   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6569 }
   6570 
   6571 static vector short __ATTRS_o_ai
   6572 vec_srl(vector short __a, vector unsigned int __b)
   6573 {
   6574   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6575 }
   6576 
   6577 static vector unsigned short __ATTRS_o_ai
   6578 vec_srl(vector unsigned short __a, vector unsigned char __b)
   6579 {
   6580   return (vector unsigned short)
   6581            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6582 }
   6583 
   6584 static vector unsigned short __ATTRS_o_ai
   6585 vec_srl(vector unsigned short __a, vector unsigned short __b)
   6586 {
   6587   return (vector unsigned short)
   6588            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6589 }
   6590 
   6591 static vector unsigned short __ATTRS_o_ai
   6592 vec_srl(vector unsigned short __a, vector unsigned int __b)
   6593 {
   6594   return (vector unsigned short)
   6595            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6596 }
   6597 
   6598 static vector bool short __ATTRS_o_ai
   6599 vec_srl(vector bool short __a, vector unsigned char __b)
   6600 {
   6601   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6602 }
   6603 
   6604 static vector bool short __ATTRS_o_ai
   6605 vec_srl(vector bool short __a, vector unsigned short __b)
   6606 {
   6607   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6608 }
   6609 
   6610 static vector bool short __ATTRS_o_ai
   6611 vec_srl(vector bool short __a, vector unsigned int __b)
   6612 {
   6613   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6614 }
   6615 
   6616 static vector pixel __ATTRS_o_ai
   6617 vec_srl(vector pixel __a, vector unsigned char __b)
   6618 {
   6619   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6620 }
   6621 
   6622 static vector pixel __ATTRS_o_ai
   6623 vec_srl(vector pixel __a, vector unsigned short __b)
   6624 {
   6625   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6626 }
   6627 
   6628 static vector pixel __ATTRS_o_ai
   6629 vec_srl(vector pixel __a, vector unsigned int __b)
   6630 {
   6631   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6632 }
   6633 
   6634 static vector int __ATTRS_o_ai
   6635 vec_srl(vector int __a, vector unsigned char __b)
   6636 {
   6637   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
   6638 }
   6639 
   6640 static vector int __ATTRS_o_ai
   6641 vec_srl(vector int __a, vector unsigned short __b)
   6642 {
   6643   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
   6644 }
   6645 
   6646 static vector int __ATTRS_o_ai
   6647 vec_srl(vector int __a, vector unsigned int __b)
   6648 {
   6649   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
   6650 }
   6651 
   6652 static vector unsigned int __ATTRS_o_ai
   6653 vec_srl(vector unsigned int __a, vector unsigned char __b)
   6654 {
   6655   return (vector unsigned int)
   6656            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6657 }
   6658 
   6659 static vector unsigned int __ATTRS_o_ai
   6660 vec_srl(vector unsigned int __a, vector unsigned short __b)
   6661 {
   6662   return (vector unsigned int)
   6663            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6664 }
   6665 
   6666 static vector unsigned int __ATTRS_o_ai
   6667 vec_srl(vector unsigned int __a, vector unsigned int __b)
   6668 {
   6669   return (vector unsigned int)
   6670            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6671 }
   6672 
   6673 static vector bool int __ATTRS_o_ai
   6674 vec_srl(vector bool int __a, vector unsigned char __b)
   6675 {
   6676   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6677 }
   6678 
   6679 static vector bool int __ATTRS_o_ai
   6680 vec_srl(vector bool int __a, vector unsigned short __b)
   6681 {
   6682   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6683 }
   6684 
   6685 static vector bool int __ATTRS_o_ai
   6686 vec_srl(vector bool int __a, vector unsigned int __b)
   6687 {
   6688   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6689 }
   6690 
   6691 /* vec_vsr */
   6692 
   6693 static vector signed char __ATTRS_o_ai
   6694 vec_vsr(vector signed char __a, vector unsigned char __b)
   6695 {
   6696   return (vector signed char)
   6697            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6698 }
   6699 
   6700 static vector signed char __ATTRS_o_ai
   6701 vec_vsr(vector signed char __a, vector unsigned short __b)
   6702 {
   6703   return (vector signed char)
   6704            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6705 }
   6706 
   6707 static vector signed char __ATTRS_o_ai
   6708 vec_vsr(vector signed char __a, vector unsigned int __b)
   6709 {
   6710   return (vector signed char)
   6711            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6712 }
   6713 
   6714 static vector unsigned char __ATTRS_o_ai
   6715 vec_vsr(vector unsigned char __a, vector unsigned char __b)
   6716 {
   6717   return (vector unsigned char)
   6718            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6719 }
   6720 
   6721 static vector unsigned char __ATTRS_o_ai
   6722 vec_vsr(vector unsigned char __a, vector unsigned short __b)
   6723 {
   6724   return (vector unsigned char)
   6725            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6726 }
   6727 
   6728 static vector unsigned char __ATTRS_o_ai
   6729 vec_vsr(vector unsigned char __a, vector unsigned int __b)
   6730 {
   6731   return (vector unsigned char)
   6732            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6733 }
   6734 
   6735 static vector bool char __ATTRS_o_ai
   6736 vec_vsr(vector bool char __a, vector unsigned char __b)
   6737 {
   6738   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6739 }
   6740 
   6741 static vector bool char __ATTRS_o_ai
   6742 vec_vsr(vector bool char __a, vector unsigned short __b)
   6743 {
   6744   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6745 }
   6746 
   6747 static vector bool char __ATTRS_o_ai
   6748 vec_vsr(vector bool char __a, vector unsigned int __b)
   6749 {
   6750   return (vector bool char)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6751 }
   6752 
   6753 static vector short __ATTRS_o_ai
   6754 vec_vsr(vector short __a, vector unsigned char __b)
   6755 {
   6756   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6757 }
   6758 
   6759 static vector short __ATTRS_o_ai
   6760 vec_vsr(vector short __a, vector unsigned short __b)
   6761 {
   6762   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6763 }
   6764 
   6765 static vector short __ATTRS_o_ai
   6766 vec_vsr(vector short __a, vector unsigned int __b)
   6767 {
   6768   return (vector short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6769 }
   6770 
   6771 static vector unsigned short __ATTRS_o_ai
   6772 vec_vsr(vector unsigned short __a, vector unsigned char __b)
   6773 {
   6774   return (vector unsigned short)
   6775            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6776 }
   6777 
   6778 static vector unsigned short __ATTRS_o_ai
   6779 vec_vsr(vector unsigned short __a, vector unsigned short __b)
   6780 {
   6781   return (vector unsigned short)
   6782            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6783 }
   6784 
   6785 static vector unsigned short __ATTRS_o_ai
   6786 vec_vsr(vector unsigned short __a, vector unsigned int __b)
   6787 {
   6788   return (vector unsigned short)
   6789            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6790 }
   6791 
   6792 static vector bool short __ATTRS_o_ai
   6793 vec_vsr(vector bool short __a, vector unsigned char __b)
   6794 {
   6795   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6796 }
   6797 
   6798 static vector bool short __ATTRS_o_ai
   6799 vec_vsr(vector bool short __a, vector unsigned short __b)
   6800 {
   6801   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6802 }
   6803 
   6804 static vector bool short __ATTRS_o_ai
   6805 vec_vsr(vector bool short __a, vector unsigned int __b)
   6806 {
   6807   return (vector bool short)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6808 }
   6809 
   6810 static vector pixel __ATTRS_o_ai
   6811 vec_vsr(vector pixel __a, vector unsigned char __b)
   6812 {
   6813   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6814 }
   6815 
   6816 static vector pixel __ATTRS_o_ai
   6817 vec_vsr(vector pixel __a, vector unsigned short __b)
   6818 {
   6819   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6820 }
   6821 
   6822 static vector pixel __ATTRS_o_ai
   6823 vec_vsr(vector pixel __a, vector unsigned int __b)
   6824 {
   6825   return (vector pixel)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6826 }
   6827 
   6828 static vector int __ATTRS_o_ai
   6829 vec_vsr(vector int __a, vector unsigned char __b)
   6830 {
   6831   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
   6832 }
   6833 
   6834 static vector int __ATTRS_o_ai
   6835 vec_vsr(vector int __a, vector unsigned short __b)
   6836 {
   6837   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
   6838 }
   6839 
   6840 static vector int __ATTRS_o_ai
   6841 vec_vsr(vector int __a, vector unsigned int __b)
   6842 {
   6843   return (vector int)__builtin_altivec_vsr(__a, (vector int)__b);
   6844 }
   6845 
   6846 static vector unsigned int __ATTRS_o_ai
   6847 vec_vsr(vector unsigned int __a, vector unsigned char __b)
   6848 {
   6849   return (vector unsigned int)
   6850            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6851 }
   6852 
   6853 static vector unsigned int __ATTRS_o_ai
   6854 vec_vsr(vector unsigned int __a, vector unsigned short __b)
   6855 {
   6856   return (vector unsigned int)
   6857            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6858 }
   6859 
   6860 static vector unsigned int __ATTRS_o_ai
   6861 vec_vsr(vector unsigned int __a, vector unsigned int __b)
   6862 {
   6863   return (vector unsigned int)
   6864            __builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6865 }
   6866 
   6867 static vector bool int __ATTRS_o_ai
   6868 vec_vsr(vector bool int __a, vector unsigned char __b)
   6869 {
   6870   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6871 }
   6872 
   6873 static vector bool int __ATTRS_o_ai
   6874 vec_vsr(vector bool int __a, vector unsigned short __b)
   6875 {
   6876   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6877 }
   6878 
   6879 static vector bool int __ATTRS_o_ai
   6880 vec_vsr(vector bool int __a, vector unsigned int __b)
   6881 {
   6882   return (vector bool int)__builtin_altivec_vsr((vector int)__a, (vector int)__b);
   6883 }
   6884 
   6885 /* vec_sro */
   6886 
   6887 static vector signed char __ATTRS_o_ai
   6888 vec_sro(vector signed char __a, vector signed char __b)
   6889 {
   6890   return (vector signed char)
   6891            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6892 }
   6893 
   6894 static vector signed char __ATTRS_o_ai
   6895 vec_sro(vector signed char __a, vector unsigned char __b)
   6896 {
   6897   return (vector signed char)
   6898            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6899 }
   6900 
   6901 static vector unsigned char __ATTRS_o_ai
   6902 vec_sro(vector unsigned char __a, vector signed char __b)
   6903 {
   6904   return (vector unsigned char)
   6905            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6906 }
   6907 
   6908 static vector unsigned char __ATTRS_o_ai
   6909 vec_sro(vector unsigned char __a, vector unsigned char __b)
   6910 {
   6911   return (vector unsigned char)
   6912            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6913 }
   6914 
   6915 static vector short __ATTRS_o_ai
   6916 vec_sro(vector short __a, vector signed char __b)
   6917 {
   6918   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6919 }
   6920 
   6921 static vector short __ATTRS_o_ai
   6922 vec_sro(vector short __a, vector unsigned char __b)
   6923 {
   6924   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6925 }
   6926 
   6927 static vector unsigned short __ATTRS_o_ai
   6928 vec_sro(vector unsigned short __a, vector signed char __b)
   6929 {
   6930   return (vector unsigned short)
   6931            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6932 }
   6933 
   6934 static vector unsigned short __ATTRS_o_ai
   6935 vec_sro(vector unsigned short __a, vector unsigned char __b)
   6936 {
   6937   return (vector unsigned short)
   6938            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6939 }
   6940 
   6941 static vector pixel __ATTRS_o_ai
   6942 vec_sro(vector pixel __a, vector signed char __b)
   6943 {
   6944   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6945 }
   6946 
   6947 static vector pixel __ATTRS_o_ai
   6948 vec_sro(vector pixel __a, vector unsigned char __b)
   6949 {
   6950   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6951 }
   6952 
   6953 static vector int __ATTRS_o_ai
   6954 vec_sro(vector int __a, vector signed char __b)
   6955 {
   6956   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
   6957 }
   6958 
   6959 static vector int __ATTRS_o_ai
   6960 vec_sro(vector int __a, vector unsigned char __b)
   6961 {
   6962   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
   6963 }
   6964 
   6965 static vector unsigned int __ATTRS_o_ai
   6966 vec_sro(vector unsigned int __a, vector signed char __b)
   6967 {
   6968   return (vector unsigned int)
   6969            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6970 }
   6971 
   6972 static vector unsigned int __ATTRS_o_ai
   6973 vec_sro(vector unsigned int __a, vector unsigned char __b)
   6974 {
   6975   return (vector unsigned int)
   6976            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6977 }
   6978 
   6979 static vector float __ATTRS_o_ai
   6980 vec_sro(vector float __a, vector signed char __b)
   6981 {
   6982   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6983 }
   6984 
   6985 static vector float __ATTRS_o_ai
   6986 vec_sro(vector float __a, vector unsigned char __b)
   6987 {
   6988   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6989 }
   6990 
   6991 /* vec_vsro */
   6992 
   6993 static vector signed char __ATTRS_o_ai
   6994 vec_vsro(vector signed char __a, vector signed char __b)
   6995 {
   6996   return (vector signed char)
   6997            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   6998 }
   6999 
   7000 static vector signed char __ATTRS_o_ai
   7001 vec_vsro(vector signed char __a, vector unsigned char __b)
   7002 {
   7003   return (vector signed char)
   7004            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7005 }
   7006 
   7007 static vector unsigned char __ATTRS_o_ai
   7008 vec_vsro(vector unsigned char __a, vector signed char __b)
   7009 {
   7010   return (vector unsigned char)
   7011            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7012 }
   7013 
   7014 static vector unsigned char __ATTRS_o_ai
   7015 vec_vsro(vector unsigned char __a, vector unsigned char __b)
   7016 {
   7017   return (vector unsigned char)
   7018            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7019 }
   7020 
   7021 static vector short __ATTRS_o_ai
   7022 vec_vsro(vector short __a, vector signed char __b)
   7023 {
   7024   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7025 }
   7026 
   7027 static vector short __ATTRS_o_ai
   7028 vec_vsro(vector short __a, vector unsigned char __b)
   7029 {
   7030   return (vector short)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7031 }
   7032 
   7033 static vector unsigned short __ATTRS_o_ai
   7034 vec_vsro(vector unsigned short __a, vector signed char __b)
   7035 {
   7036   return (vector unsigned short)
   7037            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7038 }
   7039 
   7040 static vector unsigned short __ATTRS_o_ai
   7041 vec_vsro(vector unsigned short __a, vector unsigned char __b)
   7042 {
   7043   return (vector unsigned short)
   7044            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7045 }
   7046 
   7047 static vector pixel __ATTRS_o_ai
   7048 vec_vsro(vector pixel __a, vector signed char __b)
   7049 {
   7050   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7051 }
   7052 
   7053 static vector pixel __ATTRS_o_ai
   7054 vec_vsro(vector pixel __a, vector unsigned char __b)
   7055 {
   7056   return (vector pixel)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7057 }
   7058 
   7059 static vector int __ATTRS_o_ai
   7060 vec_vsro(vector int __a, vector signed char __b)
   7061 {
   7062   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
   7063 }
   7064 
   7065 static vector int __ATTRS_o_ai
   7066 vec_vsro(vector int __a, vector unsigned char __b)
   7067 {
   7068   return (vector int)__builtin_altivec_vsro(__a, (vector int)__b);
   7069 }
   7070 
   7071 static vector unsigned int __ATTRS_o_ai
   7072 vec_vsro(vector unsigned int __a, vector signed char __b)
   7073 {
   7074   return (vector unsigned int)
   7075            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7076 }
   7077 
   7078 static vector unsigned int __ATTRS_o_ai
   7079 vec_vsro(vector unsigned int __a, vector unsigned char __b)
   7080 {
   7081   return (vector unsigned int)
   7082            __builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7083 }
   7084 
   7085 static vector float __ATTRS_o_ai
   7086 vec_vsro(vector float __a, vector signed char __b)
   7087 {
   7088   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7089 }
   7090 
   7091 static vector float __ATTRS_o_ai
   7092 vec_vsro(vector float __a, vector unsigned char __b)
   7093 {
   7094   return (vector float)__builtin_altivec_vsro((vector int)__a, (vector int)__b);
   7095 }
   7096 
   7097 /* vec_st */
   7098 
   7099 static void __ATTRS_o_ai
   7100 vec_st(vector signed char __a, int __b, vector signed char *__c)
   7101 {
   7102   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7103 }
   7104 
   7105 static void __ATTRS_o_ai
   7106 vec_st(vector signed char __a, int __b, signed char *__c)
   7107 {
   7108   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7109 }
   7110 
   7111 static void __ATTRS_o_ai
   7112 vec_st(vector unsigned char __a, int __b, vector unsigned char *__c)
   7113 {
   7114   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7115 }
   7116 
   7117 static void __ATTRS_o_ai
   7118 vec_st(vector unsigned char __a, int __b, unsigned char *__c)
   7119 {
   7120   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7121 }
   7122 
   7123 static void __ATTRS_o_ai
   7124 vec_st(vector bool char __a, int __b, signed char *__c)
   7125 {
   7126   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7127 }
   7128 
   7129 static void __ATTRS_o_ai
   7130 vec_st(vector bool char __a, int __b, unsigned char *__c)
   7131 {
   7132   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7133 }
   7134 
   7135 static void __ATTRS_o_ai
   7136 vec_st(vector bool char __a, int __b, vector bool char *__c)
   7137 {
   7138   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7139 }
   7140 
   7141 static void __ATTRS_o_ai
   7142 vec_st(vector short __a, int __b, vector short *__c)
   7143 {
   7144   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7145 }
   7146 
   7147 static void __ATTRS_o_ai
   7148 vec_st(vector short __a, int __b, short *__c)
   7149 {
   7150   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7151 }
   7152 
   7153 static void __ATTRS_o_ai
   7154 vec_st(vector unsigned short __a, int __b, vector unsigned short *__c)
   7155 {
   7156   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7157 }
   7158 
   7159 static void __ATTRS_o_ai
   7160 vec_st(vector unsigned short __a, int __b, unsigned short *__c)
   7161 {
   7162   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7163 }
   7164 
   7165 static void __ATTRS_o_ai
   7166 vec_st(vector bool short __a, int __b, short *__c)
   7167 {
   7168   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7169 }
   7170 
   7171 static void __ATTRS_o_ai
   7172 vec_st(vector bool short __a, int __b, unsigned short *__c)
   7173 {
   7174   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7175 }
   7176 
   7177 static void __ATTRS_o_ai
   7178 vec_st(vector bool short __a, int __b, vector bool short *__c)
   7179 {
   7180   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7181 }
   7182 
   7183 static void __ATTRS_o_ai
   7184 vec_st(vector pixel __a, int __b, short *__c)
   7185 {
   7186   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7187 }
   7188 
   7189 static void __ATTRS_o_ai
   7190 vec_st(vector pixel __a, int __b, unsigned short *__c)
   7191 {
   7192   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7193 }
   7194 
   7195 static void __ATTRS_o_ai
   7196 vec_st(vector pixel __a, int __b, vector pixel *__c)
   7197 {
   7198   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7199 }
   7200 
   7201 static void __ATTRS_o_ai
   7202 vec_st(vector int __a, int __b, vector int *__c)
   7203 {
   7204   __builtin_altivec_stvx(__a, __b, __c);
   7205 }
   7206 
   7207 static void __ATTRS_o_ai
   7208 vec_st(vector int __a, int __b, int *__c)
   7209 {
   7210   __builtin_altivec_stvx(__a, __b, __c);
   7211 }
   7212 
   7213 static void __ATTRS_o_ai
   7214 vec_st(vector unsigned int __a, int __b, vector unsigned int *__c)
   7215 {
   7216   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7217 }
   7218 
   7219 static void __ATTRS_o_ai
   7220 vec_st(vector unsigned int __a, int __b, unsigned int *__c)
   7221 {
   7222   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7223 }
   7224 
   7225 static void __ATTRS_o_ai
   7226 vec_st(vector bool int __a, int __b, int *__c)
   7227 {
   7228   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7229 }
   7230 
   7231 static void __ATTRS_o_ai
   7232 vec_st(vector bool int __a, int __b, unsigned int *__c)
   7233 {
   7234   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7235 }
   7236 
   7237 static void __ATTRS_o_ai
   7238 vec_st(vector bool int __a, int __b, vector bool int *__c)
   7239 {
   7240   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7241 }
   7242 
   7243 static void __ATTRS_o_ai
   7244 vec_st(vector float __a, int __b, vector float *__c)
   7245 {
   7246   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7247 }
   7248 
   7249 static void __ATTRS_o_ai
   7250 vec_st(vector float __a, int __b, float *__c)
   7251 {
   7252   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7253 }
   7254 
   7255 /* vec_stvx */
   7256 
   7257 static void __ATTRS_o_ai
   7258 vec_stvx(vector signed char __a, int __b, vector signed char *__c)
   7259 {
   7260   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7261 }
   7262 
   7263 static void __ATTRS_o_ai
   7264 vec_stvx(vector signed char __a, int __b, signed char *__c)
   7265 {
   7266   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7267 }
   7268 
   7269 static void __ATTRS_o_ai
   7270 vec_stvx(vector unsigned char __a, int __b, vector unsigned char *__c)
   7271 {
   7272   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7273 }
   7274 
   7275 static void __ATTRS_o_ai
   7276 vec_stvx(vector unsigned char __a, int __b, unsigned char *__c)
   7277 {
   7278   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7279 }
   7280 
   7281 static void __ATTRS_o_ai
   7282 vec_stvx(vector bool char __a, int __b, signed char *__c)
   7283 {
   7284   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7285 }
   7286 
   7287 static void __ATTRS_o_ai
   7288 vec_stvx(vector bool char __a, int __b, unsigned char *__c)
   7289 {
   7290   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7291 }
   7292 
   7293 static void __ATTRS_o_ai
   7294 vec_stvx(vector bool char __a, int __b, vector bool char *__c)
   7295 {
   7296   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7297 }
   7298 
   7299 static void __ATTRS_o_ai
   7300 vec_stvx(vector short __a, int __b, vector short *__c)
   7301 {
   7302   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7303 }
   7304 
   7305 static void __ATTRS_o_ai
   7306 vec_stvx(vector short __a, int __b, short *__c)
   7307 {
   7308   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7309 }
   7310 
   7311 static void __ATTRS_o_ai
   7312 vec_stvx(vector unsigned short __a, int __b, vector unsigned short *__c)
   7313 {
   7314   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7315 }
   7316 
   7317 static void __ATTRS_o_ai
   7318 vec_stvx(vector unsigned short __a, int __b, unsigned short *__c)
   7319 {
   7320   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7321 }
   7322 
   7323 static void __ATTRS_o_ai
   7324 vec_stvx(vector bool short __a, int __b, short *__c)
   7325 {
   7326   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7327 }
   7328 
   7329 static void __ATTRS_o_ai
   7330 vec_stvx(vector bool short __a, int __b, unsigned short *__c)
   7331 {
   7332   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7333 }
   7334 
   7335 static void __ATTRS_o_ai
   7336 vec_stvx(vector bool short __a, int __b, vector bool short *__c)
   7337 {
   7338   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7339 }
   7340 
   7341 static void __ATTRS_o_ai
   7342 vec_stvx(vector pixel __a, int __b, short *__c)
   7343 {
   7344   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7345 }
   7346 
   7347 static void __ATTRS_o_ai
   7348 vec_stvx(vector pixel __a, int __b, unsigned short *__c)
   7349 {
   7350   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7351 }
   7352 
   7353 static void __ATTRS_o_ai
   7354 vec_stvx(vector pixel __a, int __b, vector pixel *__c)
   7355 {
   7356   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7357 }
   7358 
   7359 static void __ATTRS_o_ai
   7360 vec_stvx(vector int __a, int __b, vector int *__c)
   7361 {
   7362   __builtin_altivec_stvx(__a, __b, __c);
   7363 }
   7364 
   7365 static void __ATTRS_o_ai
   7366 vec_stvx(vector int __a, int __b, int *__c)
   7367 {
   7368   __builtin_altivec_stvx(__a, __b, __c);
   7369 }
   7370 
   7371 static void __ATTRS_o_ai
   7372 vec_stvx(vector unsigned int __a, int __b, vector unsigned int *__c)
   7373 {
   7374   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7375 }
   7376 
   7377 static void __ATTRS_o_ai
   7378 vec_stvx(vector unsigned int __a, int __b, unsigned int *__c)
   7379 {
   7380   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7381 }
   7382 
   7383 static void __ATTRS_o_ai
   7384 vec_stvx(vector bool int __a, int __b, int *__c)
   7385 {
   7386   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7387 }
   7388 
   7389 static void __ATTRS_o_ai
   7390 vec_stvx(vector bool int __a, int __b, unsigned int *__c)
   7391 {
   7392   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7393 }
   7394 
   7395 static void __ATTRS_o_ai
   7396 vec_stvx(vector bool int __a, int __b, vector bool int *__c)
   7397 {
   7398   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7399 }
   7400 
   7401 static void __ATTRS_o_ai
   7402 vec_stvx(vector float __a, int __b, vector float *__c)
   7403 {
   7404   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7405 }
   7406 
   7407 static void __ATTRS_o_ai
   7408 vec_stvx(vector float __a, int __b, float *__c)
   7409 {
   7410   __builtin_altivec_stvx((vector int)__a, __b, __c);
   7411 }
   7412 
   7413 /* vec_ste */
   7414 
   7415 static void __ATTRS_o_ai
   7416 vec_ste(vector signed char __a, int __b, signed char *__c)
   7417 {
   7418   __builtin_altivec_stvebx((vector char)__a, __b, __c);
   7419 }
   7420 
   7421 static void __ATTRS_o_ai
   7422 vec_ste(vector unsigned char __a, int __b, unsigned char *__c)
   7423 {
   7424   __builtin_altivec_stvebx((vector char)__a, __b, __c);
   7425 }
   7426 
   7427 static void __ATTRS_o_ai
   7428 vec_ste(vector bool char __a, int __b, signed char *__c)
   7429 {
   7430   __builtin_altivec_stvebx((vector char)__a, __b, __c);
   7431 }
   7432 
   7433 static void __ATTRS_o_ai
   7434 vec_ste(vector bool char __a, int __b, unsigned char *__c)
   7435 {
   7436   __builtin_altivec_stvebx((vector char)__a, __b, __c);
   7437 }
   7438 
   7439 static void __ATTRS_o_ai
   7440 vec_ste(vector short __a, int __b, short *__c)
   7441 {
   7442   __builtin_altivec_stvehx(__a, __b, __c);
   7443 }
   7444 
   7445 static void __ATTRS_o_ai
   7446 vec_ste(vector unsigned short __a, int __b, unsigned short *__c)
   7447 {
   7448   __builtin_altivec_stvehx((vector short)__a, __b, __c);
   7449 }
   7450 
   7451 static void __ATTRS_o_ai
   7452 vec_ste(vector bool short __a, int __b, short *__c)
   7453 {
   7454   __builtin_altivec_stvehx((vector short)__a, __b, __c);
   7455 }
   7456 
   7457 static void __ATTRS_o_ai
   7458 vec_ste(vector bool short __a, int __b, unsigned short *__c)
   7459 {
   7460   __builtin_altivec_stvehx((vector short)__a, __b, __c);
   7461 }
   7462 
   7463 static void __ATTRS_o_ai
   7464 vec_ste(vector pixel __a, int __b, short *__c)
   7465 {
   7466   __builtin_altivec_stvehx((vector short)__a, __b, __c);
   7467 }
   7468 
   7469 static void __ATTRS_o_ai
   7470 vec_ste(vector pixel __a, int __b, unsigned short *__c)
   7471 {
   7472   __builtin_altivec_stvehx((vector short)__a, __b, __c);
   7473 }
   7474 
   7475 static void __ATTRS_o_ai
   7476 vec_ste(vector int __a, int __b, int *__c)
   7477 {
   7478   __builtin_altivec_stvewx(__a, __b, __c);
   7479 }
   7480 
   7481 static void __ATTRS_o_ai
   7482 vec_ste(vector unsigned int __a, int __b, unsigned int *__c)
   7483 {
   7484   __builtin_altivec_stvewx((vector int)__a, __b, __c);
   7485 }
   7486 
   7487 static void __ATTRS_o_ai
   7488 vec_ste(vector bool int __a, int __b, int *__c)
   7489 {
   7490   __builtin_altivec_stvewx((vector int)__a, __b, __c);
   7491 }
   7492 
   7493 static void __ATTRS_o_ai
   7494 vec_ste(vector bool int __a, int __b, unsigned int *__c)
   7495 {
   7496   __builtin_altivec_stvewx((vector int)__a, __b, __c);
   7497 }
   7498 
   7499 static void __ATTRS_o_ai
   7500 vec_ste(vector float __a, int __b, float *__c)
   7501 {
   7502   __builtin_altivec_stvewx((vector int)__a, __b, __c);
   7503 }
   7504 
   7505 /* vec_stvebx */
   7506 
   7507 static void __ATTRS_o_ai
   7508 vec_stvebx(vector signed char __a, int __b, signed char *__c)
   7509 {
   7510   __builtin_altivec_stvebx((vector char)__a, __b, __c);
   7511 }
   7512 
   7513 static void __ATTRS_o_ai
   7514 vec_stvebx(vector unsigned char __a, int __b, unsigned char *__c)
   7515 {
   7516   __builtin_altivec_stvebx((vector char)__a, __b, __c);
   7517 }
   7518 
   7519 static void __ATTRS_o_ai
   7520 vec_stvebx(vector bool char __a, int __b, signed char *__c)
   7521 {
   7522   __builtin_altivec_stvebx((vector char)__a, __b, __c);
   7523 }
   7524 
   7525 static void __ATTRS_o_ai
   7526 vec_stvebx(vector bool char __a, int __b, unsigned char *__c)
   7527 {
   7528   __builtin_altivec_stvebx((vector char)__a, __b, __c);
   7529 }
   7530 
   7531 /* vec_stvehx */
   7532 
   7533 static void __ATTRS_o_ai
   7534 vec_stvehx(vector short __a, int __b, short *__c)
   7535 {
   7536   __builtin_altivec_stvehx(__a, __b, __c);
   7537 }
   7538 
   7539 static void __ATTRS_o_ai
   7540 vec_stvehx(vector unsigned short __a, int __b, unsigned short *__c)
   7541 {
   7542   __builtin_altivec_stvehx((vector short)__a, __b, __c);
   7543 }
   7544 
   7545 static void __ATTRS_o_ai
   7546 vec_stvehx(vector bool short __a, int __b, short *__c)
   7547 {
   7548   __builtin_altivec_stvehx((vector short)__a, __b, __c);
   7549 }
   7550 
   7551 static void __ATTRS_o_ai
   7552 vec_stvehx(vector bool short __a, int __b, unsigned short *__c)
   7553 {
   7554   __builtin_altivec_stvehx((vector short)__a, __b, __c);
   7555 }
   7556 
   7557 static void __ATTRS_o_ai
   7558 vec_stvehx(vector pixel __a, int __b, short *__c)
   7559 {
   7560   __builtin_altivec_stvehx((vector short)__a, __b, __c);
   7561 }
   7562 
   7563 static void __ATTRS_o_ai
   7564 vec_stvehx(vector pixel __a, int __b, unsigned short *__c)
   7565 {
   7566   __builtin_altivec_stvehx((vector short)__a, __b, __c);
   7567 }
   7568 
   7569 /* vec_stvewx */
   7570 
   7571 static void __ATTRS_o_ai
   7572 vec_stvewx(vector int __a, int __b, int *__c)
   7573 {
   7574   __builtin_altivec_stvewx(__a, __b, __c);
   7575 }
   7576 
   7577 static void __ATTRS_o_ai
   7578 vec_stvewx(vector unsigned int __a, int __b, unsigned int *__c)
   7579 {
   7580   __builtin_altivec_stvewx((vector int)__a, __b, __c);
   7581 }
   7582 
   7583 static void __ATTRS_o_ai
   7584 vec_stvewx(vector bool int __a, int __b, int *__c)
   7585 {
   7586   __builtin_altivec_stvewx((vector int)__a, __b, __c);
   7587 }
   7588 
   7589 static void __ATTRS_o_ai
   7590 vec_stvewx(vector bool int __a, int __b, unsigned int *__c)
   7591 {
   7592   __builtin_altivec_stvewx((vector int)__a, __b, __c);
   7593 }
   7594 
   7595 static void __ATTRS_o_ai
   7596 vec_stvewx(vector float __a, int __b, float *__c)
   7597 {
   7598   __builtin_altivec_stvewx((vector int)__a, __b, __c);
   7599 }
   7600 
   7601 /* vec_stl */
   7602 
   7603 static void __ATTRS_o_ai
   7604 vec_stl(vector signed char __a, int __b, vector signed char *__c)
   7605 {
   7606   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7607 }
   7608 
   7609 static void __ATTRS_o_ai
   7610 vec_stl(vector signed char __a, int __b, signed char *__c)
   7611 {
   7612   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7613 }
   7614 
   7615 static void __ATTRS_o_ai
   7616 vec_stl(vector unsigned char __a, int __b, vector unsigned char *__c)
   7617 {
   7618   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7619 }
   7620 
   7621 static void __ATTRS_o_ai
   7622 vec_stl(vector unsigned char __a, int __b, unsigned char *__c)
   7623 {
   7624   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7625 }
   7626 
   7627 static void __ATTRS_o_ai
   7628 vec_stl(vector bool char __a, int __b, signed char *__c)
   7629 {
   7630   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7631 }
   7632 
   7633 static void __ATTRS_o_ai
   7634 vec_stl(vector bool char __a, int __b, unsigned char *__c)
   7635 {
   7636   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7637 }
   7638 
   7639 static void __ATTRS_o_ai
   7640 vec_stl(vector bool char __a, int __b, vector bool char *__c)
   7641 {
   7642   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7643 }
   7644 
   7645 static void __ATTRS_o_ai
   7646 vec_stl(vector short __a, int __b, vector short *__c)
   7647 {
   7648   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7649 }
   7650 
   7651 static void __ATTRS_o_ai
   7652 vec_stl(vector short __a, int __b, short *__c)
   7653 {
   7654   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7655 }
   7656 
   7657 static void __ATTRS_o_ai
   7658 vec_stl(vector unsigned short __a, int __b, vector unsigned short *__c)
   7659 {
   7660   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7661 }
   7662 
   7663 static void __ATTRS_o_ai
   7664 vec_stl(vector unsigned short __a, int __b, unsigned short *__c)
   7665 {
   7666   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7667 }
   7668 
   7669 static void __ATTRS_o_ai
   7670 vec_stl(vector bool short __a, int __b, short *__c)
   7671 {
   7672   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7673 }
   7674 
   7675 static void __ATTRS_o_ai
   7676 vec_stl(vector bool short __a, int __b, unsigned short *__c)
   7677 {
   7678   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7679 }
   7680 
   7681 static void __ATTRS_o_ai
   7682 vec_stl(vector bool short __a, int __b, vector bool short *__c)
   7683 {
   7684   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7685 }
   7686 
   7687 static void __ATTRS_o_ai
   7688 vec_stl(vector pixel __a, int __b, short *__c)
   7689 {
   7690   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7691 }
   7692 
   7693 static void __ATTRS_o_ai
   7694 vec_stl(vector pixel __a, int __b, unsigned short *__c)
   7695 {
   7696   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7697 }
   7698 
   7699 static void __ATTRS_o_ai
   7700 vec_stl(vector pixel __a, int __b, vector pixel *__c)
   7701 {
   7702   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7703 }
   7704 
   7705 static void __ATTRS_o_ai
   7706 vec_stl(vector int __a, int __b, vector int *__c)
   7707 {
   7708   __builtin_altivec_stvxl(__a, __b, __c);
   7709 }
   7710 
   7711 static void __ATTRS_o_ai
   7712 vec_stl(vector int __a, int __b, int *__c)
   7713 {
   7714   __builtin_altivec_stvxl(__a, __b, __c);
   7715 }
   7716 
   7717 static void __ATTRS_o_ai
   7718 vec_stl(vector unsigned int __a, int __b, vector unsigned int *__c)
   7719 {
   7720   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7721 }
   7722 
   7723 static void __ATTRS_o_ai
   7724 vec_stl(vector unsigned int __a, int __b, unsigned int *__c)
   7725 {
   7726   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7727 }
   7728 
   7729 static void __ATTRS_o_ai
   7730 vec_stl(vector bool int __a, int __b, int *__c)
   7731 {
   7732   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7733 }
   7734 
   7735 static void __ATTRS_o_ai
   7736 vec_stl(vector bool int __a, int __b, unsigned int *__c)
   7737 {
   7738   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7739 }
   7740 
   7741 static void __ATTRS_o_ai
   7742 vec_stl(vector bool int __a, int __b, vector bool int *__c)
   7743 {
   7744   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7745 }
   7746 
   7747 static void __ATTRS_o_ai
   7748 vec_stl(vector float __a, int __b, vector float *__c)
   7749 {
   7750   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7751 }
   7752 
   7753 static void __ATTRS_o_ai
   7754 vec_stl(vector float __a, int __b, float *__c)
   7755 {
   7756   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7757 }
   7758 
   7759 /* vec_stvxl */
   7760 
   7761 static void __ATTRS_o_ai
   7762 vec_stvxl(vector signed char __a, int __b, vector signed char *__c)
   7763 {
   7764   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7765 }
   7766 
   7767 static void __ATTRS_o_ai
   7768 vec_stvxl(vector signed char __a, int __b, signed char *__c)
   7769 {
   7770   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7771 }
   7772 
   7773 static void __ATTRS_o_ai
   7774 vec_stvxl(vector unsigned char __a, int __b, vector unsigned char *__c)
   7775 {
   7776   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7777 }
   7778 
   7779 static void __ATTRS_o_ai
   7780 vec_stvxl(vector unsigned char __a, int __b, unsigned char *__c)
   7781 {
   7782   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7783 }
   7784 
   7785 static void __ATTRS_o_ai
   7786 vec_stvxl(vector bool char __a, int __b, signed char *__c)
   7787 {
   7788   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7789 }
   7790 
   7791 static void __ATTRS_o_ai
   7792 vec_stvxl(vector bool char __a, int __b, unsigned char *__c)
   7793 {
   7794   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7795 }
   7796 
   7797 static void __ATTRS_o_ai
   7798 vec_stvxl(vector bool char __a, int __b, vector bool char *__c)
   7799 {
   7800   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7801 }
   7802 
   7803 static void __ATTRS_o_ai
   7804 vec_stvxl(vector short __a, int __b, vector short *__c)
   7805 {
   7806   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7807 }
   7808 
   7809 static void __ATTRS_o_ai
   7810 vec_stvxl(vector short __a, int __b, short *__c)
   7811 {
   7812   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7813 }
   7814 
   7815 static void __ATTRS_o_ai
   7816 vec_stvxl(vector unsigned short __a, int __b, vector unsigned short *__c)
   7817 {
   7818   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7819 }
   7820 
   7821 static void __ATTRS_o_ai
   7822 vec_stvxl(vector unsigned short __a, int __b, unsigned short *__c)
   7823 {
   7824   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7825 }
   7826 
   7827 static void __ATTRS_o_ai
   7828 vec_stvxl(vector bool short __a, int __b, short *__c)
   7829 {
   7830   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7831 }
   7832 
   7833 static void __ATTRS_o_ai
   7834 vec_stvxl(vector bool short __a, int __b, unsigned short *__c)
   7835 {
   7836   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7837 }
   7838 
   7839 static void __ATTRS_o_ai
   7840 vec_stvxl(vector bool short __a, int __b, vector bool short *__c)
   7841 {
   7842   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7843 }
   7844 
   7845 static void __ATTRS_o_ai
   7846 vec_stvxl(vector pixel __a, int __b, short *__c)
   7847 {
   7848   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7849 }
   7850 
   7851 static void __ATTRS_o_ai
   7852 vec_stvxl(vector pixel __a, int __b, unsigned short *__c)
   7853 {
   7854   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7855 }
   7856 
   7857 static void __ATTRS_o_ai
   7858 vec_stvxl(vector pixel __a, int __b, vector pixel *__c)
   7859 {
   7860   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7861 }
   7862 
   7863 static void __ATTRS_o_ai
   7864 vec_stvxl(vector int __a, int __b, vector int *__c)
   7865 {
   7866   __builtin_altivec_stvxl(__a, __b, __c);
   7867 }
   7868 
   7869 static void __ATTRS_o_ai
   7870 vec_stvxl(vector int __a, int __b, int *__c)
   7871 {
   7872   __builtin_altivec_stvxl(__a, __b, __c);
   7873 }
   7874 
   7875 static void __ATTRS_o_ai
   7876 vec_stvxl(vector unsigned int __a, int __b, vector unsigned int *__c)
   7877 {
   7878   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7879 }
   7880 
   7881 static void __ATTRS_o_ai
   7882 vec_stvxl(vector unsigned int __a, int __b, unsigned int *__c)
   7883 {
   7884   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7885 }
   7886 
   7887 static void __ATTRS_o_ai
   7888 vec_stvxl(vector bool int __a, int __b, int *__c)
   7889 {
   7890   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7891 }
   7892 
   7893 static void __ATTRS_o_ai
   7894 vec_stvxl(vector bool int __a, int __b, unsigned int *__c)
   7895 {
   7896   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7897 }
   7898 
   7899 static void __ATTRS_o_ai
   7900 vec_stvxl(vector bool int __a, int __b, vector bool int *__c)
   7901 {
   7902   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7903 }
   7904 
   7905 static void __ATTRS_o_ai
   7906 vec_stvxl(vector float __a, int __b, vector float *__c)
   7907 {
   7908   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7909 }
   7910 
   7911 static void __ATTRS_o_ai
   7912 vec_stvxl(vector float __a, int __b, float *__c)
   7913 {
   7914   __builtin_altivec_stvxl((vector int)__a, __b, __c);
   7915 }
   7916 
   7917 /* vec_sub */
   7918 
   7919 static vector signed char __ATTRS_o_ai
   7920 vec_sub(vector signed char __a, vector signed char __b)
   7921 {
   7922   return __a - __b;
   7923 }
   7924 
   7925 static vector signed char __ATTRS_o_ai
   7926 vec_sub(vector bool char __a, vector signed char __b)
   7927 {
   7928   return (vector signed char)__a - __b;
   7929 }
   7930 
   7931 static vector signed char __ATTRS_o_ai
   7932 vec_sub(vector signed char __a, vector bool char __b)
   7933 {
   7934   return __a - (vector signed char)__b;
   7935 }
   7936 
   7937 static vector unsigned char __ATTRS_o_ai
   7938 vec_sub(vector unsigned char __a, vector unsigned char __b)
   7939 {
   7940   return __a - __b;
   7941 }
   7942 
   7943 static vector unsigned char __ATTRS_o_ai
   7944 vec_sub(vector bool char __a, vector unsigned char __b)
   7945 {
   7946   return (vector unsigned char)__a - __b;
   7947 }
   7948 
   7949 static vector unsigned char __ATTRS_o_ai
   7950 vec_sub(vector unsigned char __a, vector bool char __b)
   7951 {
   7952   return __a - (vector unsigned char)__b;
   7953 }
   7954 
   7955 static vector short __ATTRS_o_ai
   7956 vec_sub(vector short __a, vector short __b)
   7957 {
   7958   return __a - __b;
   7959 }
   7960 
   7961 static vector short __ATTRS_o_ai
   7962 vec_sub(vector bool short __a, vector short __b)
   7963 {
   7964   return (vector short)__a - __b;
   7965 }
   7966 
   7967 static vector short __ATTRS_o_ai
   7968 vec_sub(vector short __a, vector bool short __b)
   7969 {
   7970   return __a - (vector short)__b;
   7971 }
   7972 
   7973 static vector unsigned short __ATTRS_o_ai
   7974 vec_sub(vector unsigned short __a, vector unsigned short __b)
   7975 {
   7976   return __a - __b;
   7977 }
   7978 
   7979 static vector unsigned short __ATTRS_o_ai
   7980 vec_sub(vector bool short __a, vector unsigned short __b)
   7981 {
   7982   return (vector unsigned short)__a - __b;
   7983 }
   7984 
   7985 static vector unsigned short __ATTRS_o_ai
   7986 vec_sub(vector unsigned short __a, vector bool short __b)
   7987 {
   7988   return __a - (vector unsigned short)__b;
   7989 }
   7990 
   7991 static vector int __ATTRS_o_ai
   7992 vec_sub(vector int __a, vector int __b)
   7993 {
   7994   return __a - __b;
   7995 }
   7996 
   7997 static vector int __ATTRS_o_ai
   7998 vec_sub(vector bool int __a, vector int __b)
   7999 {
   8000   return (vector int)__a - __b;
   8001 }
   8002 
   8003 static vector int __ATTRS_o_ai
   8004 vec_sub(vector int __a, vector bool int __b)
   8005 {
   8006   return __a - (vector int)__b;
   8007 }
   8008 
   8009 static vector unsigned int __ATTRS_o_ai
   8010 vec_sub(vector unsigned int __a, vector unsigned int __b)
   8011 {
   8012   return __a - __b;
   8013 }
   8014 
   8015 static vector unsigned int __ATTRS_o_ai
   8016 vec_sub(vector bool int __a, vector unsigned int __b)
   8017 {
   8018   return (vector unsigned int)__a - __b;
   8019 }
   8020 
   8021 static vector unsigned int __ATTRS_o_ai
   8022 vec_sub(vector unsigned int __a, vector bool int __b)
   8023 {
   8024   return __a - (vector unsigned int)__b;
   8025 }
   8026 
   8027 static vector float __ATTRS_o_ai
   8028 vec_sub(vector float __a, vector float __b)
   8029 {
   8030   return __a - __b;
   8031 }
   8032 
   8033 /* vec_vsububm */
   8034 
   8035 #define __builtin_altivec_vsububm vec_vsububm
   8036 
   8037 static vector signed char __ATTRS_o_ai
   8038 vec_vsububm(vector signed char __a, vector signed char __b)
   8039 {
   8040   return __a - __b;
   8041 }
   8042 
   8043 static vector signed char __ATTRS_o_ai
   8044 vec_vsububm(vector bool char __a, vector signed char __b)
   8045 {
   8046   return (vector signed char)__a - __b;
   8047 }
   8048 
   8049 static vector signed char __ATTRS_o_ai
   8050 vec_vsububm(vector signed char __a, vector bool char __b)
   8051 {
   8052   return __a - (vector signed char)__b;
   8053 }
   8054 
   8055 static vector unsigned char __ATTRS_o_ai
   8056 vec_vsububm(vector unsigned char __a, vector unsigned char __b)
   8057 {
   8058   return __a - __b;
   8059 }
   8060 
   8061 static vector unsigned char __ATTRS_o_ai
   8062 vec_vsububm(vector bool char __a, vector unsigned char __b)
   8063 {
   8064   return (vector unsigned char)__a - __b;
   8065 }
   8066 
   8067 static vector unsigned char __ATTRS_o_ai
   8068 vec_vsububm(vector unsigned char __a, vector bool char __b)
   8069 {
   8070   return __a - (vector unsigned char)__b;
   8071 }
   8072 
   8073 /* vec_vsubuhm */
   8074 
   8075 #define __builtin_altivec_vsubuhm vec_vsubuhm
   8076 
   8077 static vector short __ATTRS_o_ai
   8078 vec_vsubuhm(vector short __a, vector short __b)
   8079 {
   8080   return __a - __b;
   8081 }
   8082 
   8083 static vector short __ATTRS_o_ai
   8084 vec_vsubuhm(vector bool short __a, vector short __b)
   8085 {
   8086   return (vector short)__a - __b;
   8087 }
   8088 
   8089 static vector short __ATTRS_o_ai
   8090 vec_vsubuhm(vector short __a, vector bool short __b)
   8091 {
   8092   return __a - (vector short)__b;
   8093 }
   8094 
   8095 static vector unsigned short __ATTRS_o_ai
   8096 vec_vsubuhm(vector unsigned short __a, vector unsigned short __b)
   8097 {
   8098   return __a - __b;
   8099 }
   8100 
   8101 static vector unsigned short __ATTRS_o_ai
   8102 vec_vsubuhm(vector bool short __a, vector unsigned short __b)
   8103 {
   8104   return (vector unsigned short)__a - __b;
   8105 }
   8106 
   8107 static vector unsigned short __ATTRS_o_ai
   8108 vec_vsubuhm(vector unsigned short __a, vector bool short __b)
   8109 {
   8110   return __a - (vector unsigned short)__b;
   8111 }
   8112 
   8113 /* vec_vsubuwm */
   8114 
   8115 #define __builtin_altivec_vsubuwm vec_vsubuwm
   8116 
   8117 static vector int __ATTRS_o_ai
   8118 vec_vsubuwm(vector int __a, vector int __b)
   8119 {
   8120   return __a - __b;
   8121 }
   8122 
   8123 static vector int __ATTRS_o_ai
   8124 vec_vsubuwm(vector bool int __a, vector int __b)
   8125 {
   8126   return (vector int)__a - __b;
   8127 }
   8128 
   8129 static vector int __ATTRS_o_ai
   8130 vec_vsubuwm(vector int __a, vector bool int __b)
   8131 {
   8132   return __a - (vector int)__b;
   8133 }
   8134 
   8135 static vector unsigned int __ATTRS_o_ai
   8136 vec_vsubuwm(vector unsigned int __a, vector unsigned int __b)
   8137 {
   8138   return __a - __b;
   8139 }
   8140 
   8141 static vector unsigned int __ATTRS_o_ai
   8142 vec_vsubuwm(vector bool int __a, vector unsigned int __b)
   8143 {
   8144   return (vector unsigned int)__a - __b;
   8145 }
   8146 
   8147 static vector unsigned int __ATTRS_o_ai
   8148 vec_vsubuwm(vector unsigned int __a, vector bool int __b)
   8149 {
   8150   return __a - (vector unsigned int)__b;
   8151 }
   8152 
   8153 /* vec_vsubfp */
   8154 
   8155 #define __builtin_altivec_vsubfp vec_vsubfp
   8156 
   8157 static vector float __attribute__((__always_inline__))
   8158 vec_vsubfp(vector float __a, vector float __b)
   8159 {
   8160   return __a - __b;
   8161 }
   8162 
   8163 /* vec_subc */
   8164 
   8165 static vector unsigned int __attribute__((__always_inline__))
   8166 vec_subc(vector unsigned int __a, vector unsigned int __b)
   8167 {
   8168   return __builtin_altivec_vsubcuw(__a, __b);
   8169 }
   8170 
   8171 /* vec_vsubcuw */
   8172 
   8173 static vector unsigned int __attribute__((__always_inline__))
   8174 vec_vsubcuw(vector unsigned int __a, vector unsigned int __b)
   8175 {
   8176   return __builtin_altivec_vsubcuw(__a, __b);
   8177 }
   8178 
   8179 /* vec_subs */
   8180 
   8181 static vector signed char __ATTRS_o_ai
   8182 vec_subs(vector signed char __a, vector signed char __b)
   8183 {
   8184   return __builtin_altivec_vsubsbs(__a, __b);
   8185 }
   8186 
   8187 static vector signed char __ATTRS_o_ai
   8188 vec_subs(vector bool char __a, vector signed char __b)
   8189 {
   8190   return __builtin_altivec_vsubsbs((vector signed char)__a, __b);
   8191 }
   8192 
   8193 static vector signed char __ATTRS_o_ai
   8194 vec_subs(vector signed char __a, vector bool char __b)
   8195 {
   8196   return __builtin_altivec_vsubsbs(__a, (vector signed char)__b);
   8197 }
   8198 
   8199 static vector unsigned char __ATTRS_o_ai
   8200 vec_subs(vector unsigned char __a, vector unsigned char __b)
   8201 {
   8202   return __builtin_altivec_vsububs(__a, __b);
   8203 }
   8204 
   8205 static vector unsigned char __ATTRS_o_ai
   8206 vec_subs(vector bool char __a, vector unsigned char __b)
   8207 {
   8208   return __builtin_altivec_vsububs((vector unsigned char)__a, __b);
   8209 }
   8210 
   8211 static vector unsigned char __ATTRS_o_ai
   8212 vec_subs(vector unsigned char __a, vector bool char __b)
   8213 {
   8214   return __builtin_altivec_vsububs(__a, (vector unsigned char)__b);
   8215 }
   8216 
   8217 static vector short __ATTRS_o_ai
   8218 vec_subs(vector short __a, vector short __b)
   8219 {
   8220   return __builtin_altivec_vsubshs(__a, __b);
   8221 }
   8222 
   8223 static vector short __ATTRS_o_ai
   8224 vec_subs(vector bool short __a, vector short __b)
   8225 {
   8226   return __builtin_altivec_vsubshs((vector short)__a, __b);
   8227 }
   8228 
   8229 static vector short __ATTRS_o_ai
   8230 vec_subs(vector short __a, vector bool short __b)
   8231 {
   8232   return __builtin_altivec_vsubshs(__a, (vector short)__b);
   8233 }
   8234 
   8235 static vector unsigned short __ATTRS_o_ai
   8236 vec_subs(vector unsigned short __a, vector unsigned short __b)
   8237 {
   8238   return __builtin_altivec_vsubuhs(__a, __b);
   8239 }
   8240 
   8241 static vector unsigned short __ATTRS_o_ai
   8242 vec_subs(vector bool short __a, vector unsigned short __b)
   8243 {
   8244   return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b);
   8245 }
   8246 
   8247 static vector unsigned short __ATTRS_o_ai
   8248 vec_subs(vector unsigned short __a, vector bool short __b)
   8249 {
   8250   return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b);
   8251 }
   8252 
   8253 static vector int __ATTRS_o_ai
   8254 vec_subs(vector int __a, vector int __b)
   8255 {
   8256   return __builtin_altivec_vsubsws(__a, __b);
   8257 }
   8258 
   8259 static vector int __ATTRS_o_ai
   8260 vec_subs(vector bool int __a, vector int __b)
   8261 {
   8262   return __builtin_altivec_vsubsws((vector int)__a, __b);
   8263 }
   8264 
   8265 static vector int __ATTRS_o_ai
   8266 vec_subs(vector int __a, vector bool int __b)
   8267 {
   8268   return __builtin_altivec_vsubsws(__a, (vector int)__b);
   8269 }
   8270 
   8271 static vector unsigned int __ATTRS_o_ai
   8272 vec_subs(vector unsigned int __a, vector unsigned int __b)
   8273 {
   8274   return __builtin_altivec_vsubuws(__a, __b);
   8275 }
   8276 
   8277 static vector unsigned int __ATTRS_o_ai
   8278 vec_subs(vector bool int __a, vector unsigned int __b)
   8279 {
   8280   return __builtin_altivec_vsubuws((vector unsigned int)__a, __b);
   8281 }
   8282 
   8283 static vector unsigned int __ATTRS_o_ai
   8284 vec_subs(vector unsigned int __a, vector bool int __b)
   8285 {
   8286   return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b);
   8287 }
   8288 
   8289 /* vec_vsubsbs */
   8290 
   8291 static vector signed char __ATTRS_o_ai
   8292 vec_vsubsbs(vector signed char __a, vector signed char __b)
   8293 {
   8294   return __builtin_altivec_vsubsbs(__a, __b);
   8295 }
   8296 
   8297 static vector signed char __ATTRS_o_ai
   8298 vec_vsubsbs(vector bool char __a, vector signed char __b)
   8299 {
   8300   return __builtin_altivec_vsubsbs((vector signed char)__a, __b);
   8301 }
   8302 
   8303 static vector signed char __ATTRS_o_ai
   8304 vec_vsubsbs(vector signed char __a, vector bool char __b)
   8305 {
   8306   return __builtin_altivec_vsubsbs(__a, (vector signed char)__b);
   8307 }
   8308 
   8309 /* vec_vsububs */
   8310 
   8311 static vector unsigned char __ATTRS_o_ai
   8312 vec_vsububs(vector unsigned char __a, vector unsigned char __b)
   8313 {
   8314   return __builtin_altivec_vsububs(__a, __b);
   8315 }
   8316 
   8317 static vector unsigned char __ATTRS_o_ai
   8318 vec_vsububs(vector bool char __a, vector unsigned char __b)
   8319 {
   8320   return __builtin_altivec_vsububs((vector unsigned char)__a, __b);
   8321 }
   8322 
   8323 static vector unsigned char __ATTRS_o_ai
   8324 vec_vsububs(vector unsigned char __a, vector bool char __b)
   8325 {
   8326   return __builtin_altivec_vsububs(__a, (vector unsigned char)__b);
   8327 }
   8328 
   8329 /* vec_vsubshs */
   8330 
   8331 static vector short __ATTRS_o_ai
   8332 vec_vsubshs(vector short __a, vector short __b)
   8333 {
   8334   return __builtin_altivec_vsubshs(__a, __b);
   8335 }
   8336 
   8337 static vector short __ATTRS_o_ai
   8338 vec_vsubshs(vector bool short __a, vector short __b)
   8339 {
   8340   return __builtin_altivec_vsubshs((vector short)__a, __b);
   8341 }
   8342 
   8343 static vector short __ATTRS_o_ai
   8344 vec_vsubshs(vector short __a, vector bool short __b)
   8345 {
   8346   return __builtin_altivec_vsubshs(__a, (vector short)__b);
   8347 }
   8348 
   8349 /* vec_vsubuhs */
   8350 
   8351 static vector unsigned short __ATTRS_o_ai
   8352 vec_vsubuhs(vector unsigned short __a, vector unsigned short __b)
   8353 {
   8354   return __builtin_altivec_vsubuhs(__a, __b);
   8355 }
   8356 
   8357 static vector unsigned short __ATTRS_o_ai
   8358 vec_vsubuhs(vector bool short __a, vector unsigned short __b)
   8359 {
   8360   return __builtin_altivec_vsubuhs((vector unsigned short)__a, __b);
   8361 }
   8362 
   8363 static vector unsigned short __ATTRS_o_ai
   8364 vec_vsubuhs(vector unsigned short __a, vector bool short __b)
   8365 {
   8366   return __builtin_altivec_vsubuhs(__a, (vector unsigned short)__b);
   8367 }
   8368 
   8369 /* vec_vsubsws */
   8370 
   8371 static vector int __ATTRS_o_ai
   8372 vec_vsubsws(vector int __a, vector int __b)
   8373 {
   8374   return __builtin_altivec_vsubsws(__a, __b);
   8375 }
   8376 
   8377 static vector int __ATTRS_o_ai
   8378 vec_vsubsws(vector bool int __a, vector int __b)
   8379 {
   8380   return __builtin_altivec_vsubsws((vector int)__a, __b);
   8381 }
   8382 
   8383 static vector int __ATTRS_o_ai
   8384 vec_vsubsws(vector int __a, vector bool int __b)
   8385 {
   8386   return __builtin_altivec_vsubsws(__a, (vector int)__b);
   8387 }
   8388 
   8389 /* vec_vsubuws */
   8390 
   8391 static vector unsigned int __ATTRS_o_ai
   8392 vec_vsubuws(vector unsigned int __a, vector unsigned int __b)
   8393 {
   8394   return __builtin_altivec_vsubuws(__a, __b);
   8395 }
   8396 
   8397 static vector unsigned int __ATTRS_o_ai
   8398 vec_vsubuws(vector bool int __a, vector unsigned int __b)
   8399 {
   8400   return __builtin_altivec_vsubuws((vector unsigned int)__a, __b);
   8401 }
   8402 
   8403 static vector unsigned int __ATTRS_o_ai
   8404 vec_vsubuws(vector unsigned int __a, vector bool int __b)
   8405 {
   8406   return __builtin_altivec_vsubuws(__a, (vector unsigned int)__b);
   8407 }
   8408 
   8409 /* vec_sum4s */
   8410 
   8411 static vector int __ATTRS_o_ai
   8412 vec_sum4s(vector signed char __a, vector int __b)
   8413 {
   8414   return __builtin_altivec_vsum4sbs(__a, __b);
   8415 }
   8416 
   8417 static vector unsigned int __ATTRS_o_ai
   8418 vec_sum4s(vector unsigned char __a, vector unsigned int __b)
   8419 {
   8420   return __builtin_altivec_vsum4ubs(__a, __b);
   8421 }
   8422 
   8423 static vector int __ATTRS_o_ai
   8424 vec_sum4s(vector signed short __a, vector int __b)
   8425 {
   8426   return __builtin_altivec_vsum4shs(__a, __b);
   8427 }
   8428 
   8429 /* vec_vsum4sbs */
   8430 
   8431 static vector int __attribute__((__always_inline__))
   8432 vec_vsum4sbs(vector signed char __a, vector int __b)
   8433 {
   8434   return __builtin_altivec_vsum4sbs(__a, __b);
   8435 }
   8436 
   8437 /* vec_vsum4ubs */
   8438 
   8439 static vector unsigned int __attribute__((__always_inline__))
   8440 vec_vsum4ubs(vector unsigned char __a, vector unsigned int __b)
   8441 {
   8442   return __builtin_altivec_vsum4ubs(__a, __b);
   8443 }
   8444 
   8445 /* vec_vsum4shs */
   8446 
   8447 static vector int __attribute__((__always_inline__))
   8448 vec_vsum4shs(vector signed short __a, vector int __b)
   8449 {
   8450   return __builtin_altivec_vsum4shs(__a, __b);
   8451 }
   8452 
   8453 /* vec_sum2s */
   8454 
   8455 /* The vsum2sws instruction has a big-endian bias, so that the second
   8456    input vector and the result always reference big-endian elements
   8457    1 and 3 (little-endian element 0 and 2).  For ease of porting the
   8458    programmer wants elements 1 and 3 in both cases, so for little
   8459    endian we must perform some permutes.  */
   8460 
   8461 static vector signed int __attribute__((__always_inline__))
   8462 vec_sum2s(vector int __a, vector int __b)
   8463 {
   8464 #ifdef __LITTLE_ENDIAN__
   8465   vector int __c = (vector signed int)
   8466     vec_perm(__b, __b, (vector unsigned char)
   8467 	     (4,5,6,7,0,1,2,3,12,13,14,15,8,9,10,11));
   8468   __c = __builtin_altivec_vsum2sws(__a, __c);
   8469   return (vector signed int)
   8470     vec_perm(__c, __c, (vector unsigned char)
   8471 	     (4,5,6,7,0,1,2,3,12,13,14,15,8,9,10,11));
   8472 #else
   8473   return __builtin_altivec_vsum2sws(__a, __b);
   8474 #endif
   8475 }
   8476 
   8477 /* vec_vsum2sws */
   8478 
   8479 static vector signed int __attribute__((__always_inline__))
   8480 vec_vsum2sws(vector int __a, vector int __b)
   8481 {
   8482 #ifdef __LITTLE_ENDIAN__
   8483   vector int __c = (vector signed int)
   8484     vec_perm(__b, __b, (vector unsigned char)
   8485 	     (4,5,6,7,0,1,2,3,12,13,14,15,8,9,10,11));
   8486   __c = __builtin_altivec_vsum2sws(__a, __c);
   8487   return (vector signed int)
   8488     vec_perm(__c, __c, (vector unsigned char)
   8489 	     (4,5,6,7,0,1,2,3,12,13,14,15,8,9,10,11));
   8490 #else
   8491   return __builtin_altivec_vsum2sws(__a, __b);
   8492 #endif
   8493 }
   8494 
   8495 /* vec_sums */
   8496 
   8497 /* The vsumsws instruction has a big-endian bias, so that the second
   8498    input vector and the result always reference big-endian element 3
   8499    (little-endian element 0).  For ease of porting the programmer
   8500    wants element 3 in both cases, so for little endian we must perform
   8501    some permutes.  */
   8502 
   8503 static vector signed int __attribute__((__always_inline__))
   8504 vec_sums(vector signed int __a, vector signed int __b)
   8505 {
   8506 #ifdef __LITTLE_ENDIAN__
   8507   __b = (vector signed int)
   8508     vec_perm(__b, __b, (vector unsigned char)
   8509 	     (12,13,14,15,0,1,2,3,4,5,6,7,8,9,10,11));
   8510   __b = __builtin_altivec_vsumsws(__a, __b);
   8511   return (vector signed int)
   8512     vec_perm(__b, __b, (vector unsigned char)
   8513 	     (4,5,6,7,8,9,10,11,12,13,14,15,0,1,2,3));
   8514 #else
   8515   return __builtin_altivec_vsumsws(__a, __b);
   8516 #endif
   8517 }
   8518 
   8519 /* vec_vsumsws */
   8520 
   8521 static vector signed int __attribute__((__always_inline__))
   8522 vec_vsumsws(vector signed int __a, vector signed int __b)
   8523 {
   8524 #ifdef __LITTLE_ENDIAN__
   8525   __b = (vector signed int)
   8526     vec_perm(__b, __b, (vector unsigned char)
   8527 	     (12,13,14,15,0,1,2,3,4,5,6,7,8,9,10,11));
   8528   __b = __builtin_altivec_vsumsws(__a, __b);
   8529   return (vector signed int)
   8530     vec_perm(__b, __b, (vector unsigned char)
   8531 	     (4,5,6,7,8,9,10,11,12,13,14,15,0,1,2,3));
   8532 #else
   8533   return __builtin_altivec_vsumsws(__a, __b);
   8534 #endif
   8535 }
   8536 
   8537 /* vec_trunc */
   8538 
   8539 static vector float __attribute__((__always_inline__))
   8540 vec_trunc(vector float __a)
   8541 {
   8542   return __builtin_altivec_vrfiz(__a);
   8543 }
   8544 
   8545 /* vec_vrfiz */
   8546 
   8547 static vector float __attribute__((__always_inline__))
   8548 vec_vrfiz(vector float __a)
   8549 {
   8550   return __builtin_altivec_vrfiz(__a);
   8551 }
   8552 
   8553 /* vec_unpackh */
   8554 
   8555 /* The vector unpack instructions all have a big-endian bias, so for
   8556    little endian we must reverse the meanings of "high" and "low."  */
   8557 
   8558 static vector short __ATTRS_o_ai
   8559 vec_unpackh(vector signed char __a)
   8560 {
   8561 #ifdef __LITTLE_ENDIAN__
   8562   return __builtin_altivec_vupklsb((vector char)__a);
   8563 #else
   8564   return __builtin_altivec_vupkhsb((vector char)__a);
   8565 #endif
   8566 }
   8567 
   8568 static vector bool short __ATTRS_o_ai
   8569 vec_unpackh(vector bool char __a)
   8570 {
   8571 #ifdef __LITTLE_ENDIAN__
   8572   return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
   8573 #else
   8574   return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
   8575 #endif
   8576 }
   8577 
   8578 static vector int __ATTRS_o_ai
   8579 vec_unpackh(vector short __a)
   8580 {
   8581 #ifdef __LITTLE_ENDIAN__
   8582   return __builtin_altivec_vupklsh(__a);
   8583 #else
   8584   return __builtin_altivec_vupkhsh(__a);
   8585 #endif
   8586 }
   8587 
   8588 static vector bool int __ATTRS_o_ai
   8589 vec_unpackh(vector bool short __a)
   8590 {
   8591 #ifdef __LITTLE_ENDIAN__
   8592   return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
   8593 #else
   8594   return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
   8595 #endif
   8596 }
   8597 
   8598 static vector unsigned int __ATTRS_o_ai
   8599 vec_unpackh(vector pixel __a)
   8600 {
   8601 #ifdef __LITTLE_ENDIAN__
   8602   return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
   8603 #else
   8604   return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
   8605 #endif
   8606 }
   8607 
   8608 /* vec_vupkhsb */
   8609 
   8610 static vector short __ATTRS_o_ai
   8611 vec_vupkhsb(vector signed char __a)
   8612 {
   8613 #ifdef __LITTLE_ENDIAN__
   8614   return __builtin_altivec_vupklsb((vector char)__a);
   8615 #else
   8616   return __builtin_altivec_vupkhsb((vector char)__a);
   8617 #endif
   8618 }
   8619 
   8620 static vector bool short __ATTRS_o_ai
   8621 vec_vupkhsb(vector bool char __a)
   8622 {
   8623 #ifdef __LITTLE_ENDIAN__
   8624   return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
   8625 #else
   8626   return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
   8627 #endif
   8628 }
   8629 
   8630 /* vec_vupkhsh */
   8631 
   8632 static vector int __ATTRS_o_ai
   8633 vec_vupkhsh(vector short __a)
   8634 {
   8635 #ifdef __LITTLE_ENDIAN__
   8636   return __builtin_altivec_vupklsh(__a);
   8637 #else
   8638   return __builtin_altivec_vupkhsh(__a);
   8639 #endif
   8640 }
   8641 
   8642 static vector bool int __ATTRS_o_ai
   8643 vec_vupkhsh(vector bool short __a)
   8644 {
   8645 #ifdef __LITTLE_ENDIAN__
   8646   return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
   8647 #else
   8648   return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
   8649 #endif
   8650 }
   8651 
   8652 static vector unsigned int __ATTRS_o_ai
   8653 vec_vupkhsh(vector pixel __a)
   8654 {
   8655 #ifdef __LITTLE_ENDIAN__
   8656   return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
   8657 #else
   8658   return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
   8659 #endif
   8660 }
   8661 
   8662 /* vec_unpackl */
   8663 
   8664 static vector short __ATTRS_o_ai
   8665 vec_unpackl(vector signed char __a)
   8666 {
   8667 #ifdef __LITTLE_ENDIAN__
   8668   return __builtin_altivec_vupkhsb((vector char)__a);
   8669 #else
   8670   return __builtin_altivec_vupklsb((vector char)__a);
   8671 #endif
   8672 }
   8673 
   8674 static vector bool short __ATTRS_o_ai
   8675 vec_unpackl(vector bool char __a)
   8676 {
   8677 #ifdef __LITTLE_ENDIAN__
   8678   return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
   8679 #else
   8680   return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
   8681 #endif
   8682 }
   8683 
   8684 static vector int __ATTRS_o_ai
   8685 vec_unpackl(vector short __a)
   8686 {
   8687 #ifdef __LITTLE_ENDIAN__
   8688   return __builtin_altivec_vupkhsh(__a);
   8689 #else
   8690   return __builtin_altivec_vupklsh(__a);
   8691 #endif
   8692 }
   8693 
   8694 static vector bool int __ATTRS_o_ai
   8695 vec_unpackl(vector bool short __a)
   8696 {
   8697 #ifdef __LITTLE_ENDIAN__
   8698   return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
   8699 #else
   8700   return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
   8701 #endif
   8702 }
   8703 
   8704 static vector unsigned int __ATTRS_o_ai
   8705 vec_unpackl(vector pixel __a)
   8706 {
   8707 #ifdef __LITTLE_ENDIAN__
   8708   return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
   8709 #else
   8710   return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
   8711 #endif
   8712 }
   8713 
   8714 /* vec_vupklsb */
   8715 
   8716 static vector short __ATTRS_o_ai
   8717 vec_vupklsb(vector signed char __a)
   8718 {
   8719 #ifdef __LITTLE_ENDIAN__
   8720   return __builtin_altivec_vupkhsb((vector char)__a);
   8721 #else
   8722   return __builtin_altivec_vupklsb((vector char)__a);
   8723 #endif
   8724 }
   8725 
   8726 static vector bool short __ATTRS_o_ai
   8727 vec_vupklsb(vector bool char __a)
   8728 {
   8729 #ifdef __LITTLE_ENDIAN__
   8730   return (vector bool short)__builtin_altivec_vupkhsb((vector char)__a);
   8731 #else
   8732   return (vector bool short)__builtin_altivec_vupklsb((vector char)__a);
   8733 #endif
   8734 }
   8735 
   8736 /* vec_vupklsh */
   8737 
   8738 static vector int __ATTRS_o_ai
   8739 vec_vupklsh(vector short __a)
   8740 {
   8741 #ifdef __LITTLE_ENDIAN__
   8742   return __builtin_altivec_vupkhsh(__a);
   8743 #else
   8744   return __builtin_altivec_vupklsh(__a);
   8745 #endif
   8746 }
   8747 
   8748 static vector bool int __ATTRS_o_ai
   8749 vec_vupklsh(vector bool short __a)
   8750 {
   8751 #ifdef __LITTLE_ENDIAN__
   8752   return (vector bool int)__builtin_altivec_vupkhsh((vector short)__a);
   8753 #else
   8754   return (vector bool int)__builtin_altivec_vupklsh((vector short)__a);
   8755 #endif
   8756 }
   8757 
   8758 static vector unsigned int __ATTRS_o_ai
   8759 vec_vupklsh(vector pixel __a)
   8760 {
   8761 #ifdef __LITTLE_ENDIAN__
   8762   return (vector unsigned int)__builtin_altivec_vupkhpx((vector short)__a);
   8763 #else
   8764   return (vector unsigned int)__builtin_altivec_vupklpx((vector short)__a);
   8765 #endif
   8766 }
   8767 
   8768 /* vec_xor */
   8769 
   8770 #define __builtin_altivec_vxor vec_xor
   8771 
   8772 static vector signed char __ATTRS_o_ai
   8773 vec_xor(vector signed char __a, vector signed char __b)
   8774 {
   8775   return __a ^ __b;
   8776 }
   8777 
   8778 static vector signed char __ATTRS_o_ai
   8779 vec_xor(vector bool char __a, vector signed char __b)
   8780 {
   8781   return (vector signed char)__a ^ __b;
   8782 }
   8783 
   8784 static vector signed char __ATTRS_o_ai
   8785 vec_xor(vector signed char __a, vector bool char __b)
   8786 {
   8787   return __a ^ (vector signed char)__b;
   8788 }
   8789 
   8790 static vector unsigned char __ATTRS_o_ai
   8791 vec_xor(vector unsigned char __a, vector unsigned char __b)
   8792 {
   8793   return __a ^ __b;
   8794 }
   8795 
   8796 static vector unsigned char __ATTRS_o_ai
   8797 vec_xor(vector bool char __a, vector unsigned char __b)
   8798 {
   8799   return (vector unsigned char)__a ^ __b;
   8800 }
   8801 
   8802 static vector unsigned char __ATTRS_o_ai
   8803 vec_xor(vector unsigned char __a, vector bool char __b)
   8804 {
   8805   return __a ^ (vector unsigned char)__b;
   8806 }
   8807 
   8808 static vector bool char __ATTRS_o_ai
   8809 vec_xor(vector bool char __a, vector bool char __b)
   8810 {
   8811   return __a ^ __b;
   8812 }
   8813 
   8814 static vector short __ATTRS_o_ai
   8815 vec_xor(vector short __a, vector short __b)
   8816 {
   8817   return __a ^ __b;
   8818 }
   8819 
   8820 static vector short __ATTRS_o_ai
   8821 vec_xor(vector bool short __a, vector short __b)
   8822 {
   8823   return (vector short)__a ^ __b;
   8824 }
   8825 
   8826 static vector short __ATTRS_o_ai
   8827 vec_xor(vector short __a, vector bool short __b)
   8828 {
   8829   return __a ^ (vector short)__b;
   8830 }
   8831 
   8832 static vector unsigned short __ATTRS_o_ai
   8833 vec_xor(vector unsigned short __a, vector unsigned short __b)
   8834 {
   8835   return __a ^ __b;
   8836 }
   8837 
   8838 static vector unsigned short __ATTRS_o_ai
   8839 vec_xor(vector bool short __a, vector unsigned short __b)
   8840 {
   8841   return (vector unsigned short)__a ^ __b;
   8842 }
   8843 
   8844 static vector unsigned short __ATTRS_o_ai
   8845 vec_xor(vector unsigned short __a, vector bool short __b)
   8846 {
   8847   return __a ^ (vector unsigned short)__b;
   8848 }
   8849 
   8850 static vector bool short __ATTRS_o_ai
   8851 vec_xor(vector bool short __a, vector bool short __b)
   8852 {
   8853   return __a ^ __b;
   8854 }
   8855 
   8856 static vector int __ATTRS_o_ai
   8857 vec_xor(vector int __a, vector int __b)
   8858 {
   8859   return __a ^ __b;
   8860 }
   8861 
   8862 static vector int __ATTRS_o_ai
   8863 vec_xor(vector bool int __a, vector int __b)
   8864 {
   8865   return (vector int)__a ^ __b;
   8866 }
   8867 
   8868 static vector int __ATTRS_o_ai
   8869 vec_xor(vector int __a, vector bool int __b)
   8870 {
   8871   return __a ^ (vector int)__b;
   8872 }
   8873 
   8874 static vector unsigned int __ATTRS_o_ai
   8875 vec_xor(vector unsigned int __a, vector unsigned int __b)
   8876 {
   8877   return __a ^ __b;
   8878 }
   8879 
   8880 static vector unsigned int __ATTRS_o_ai
   8881 vec_xor(vector bool int __a, vector unsigned int __b)
   8882 {
   8883   return (vector unsigned int)__a ^ __b;
   8884 }
   8885 
   8886 static vector unsigned int __ATTRS_o_ai
   8887 vec_xor(vector unsigned int __a, vector bool int __b)
   8888 {
   8889   return __a ^ (vector unsigned int)__b;
   8890 }
   8891 
   8892 static vector bool int __ATTRS_o_ai
   8893 vec_xor(vector bool int __a, vector bool int __b)
   8894 {
   8895   return __a ^ __b;
   8896 }
   8897 
   8898 static vector float __ATTRS_o_ai
   8899 vec_xor(vector float __a, vector float __b)
   8900 {
   8901   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
   8902   return (vector float)__res;
   8903 }
   8904 
   8905 static vector float __ATTRS_o_ai
   8906 vec_xor(vector bool int __a, vector float __b)
   8907 {
   8908   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
   8909   return (vector float)__res;
   8910 }
   8911 
   8912 static vector float __ATTRS_o_ai
   8913 vec_xor(vector float __a, vector bool int __b)
   8914 {
   8915   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
   8916   return (vector float)__res;
   8917 }
   8918 
   8919 /* vec_vxor */
   8920 
   8921 static vector signed char __ATTRS_o_ai
   8922 vec_vxor(vector signed char __a, vector signed char __b)
   8923 {
   8924   return __a ^ __b;
   8925 }
   8926 
   8927 static vector signed char __ATTRS_o_ai
   8928 vec_vxor(vector bool char __a, vector signed char __b)
   8929 {
   8930   return (vector signed char)__a ^ __b;
   8931 }
   8932 
   8933 static vector signed char __ATTRS_o_ai
   8934 vec_vxor(vector signed char __a, vector bool char __b)
   8935 {
   8936   return __a ^ (vector signed char)__b;
   8937 }
   8938 
   8939 static vector unsigned char __ATTRS_o_ai
   8940 vec_vxor(vector unsigned char __a, vector unsigned char __b)
   8941 {
   8942   return __a ^ __b;
   8943 }
   8944 
   8945 static vector unsigned char __ATTRS_o_ai
   8946 vec_vxor(vector bool char __a, vector unsigned char __b)
   8947 {
   8948   return (vector unsigned char)__a ^ __b;
   8949 }
   8950 
   8951 static vector unsigned char __ATTRS_o_ai
   8952 vec_vxor(vector unsigned char __a, vector bool char __b)
   8953 {
   8954   return __a ^ (vector unsigned char)__b;
   8955 }
   8956 
   8957 static vector bool char __ATTRS_o_ai
   8958 vec_vxor(vector bool char __a, vector bool char __b)
   8959 {
   8960   return __a ^ __b;
   8961 }
   8962 
   8963 static vector short __ATTRS_o_ai
   8964 vec_vxor(vector short __a, vector short __b)
   8965 {
   8966   return __a ^ __b;
   8967 }
   8968 
   8969 static vector short __ATTRS_o_ai
   8970 vec_vxor(vector bool short __a, vector short __b)
   8971 {
   8972   return (vector short)__a ^ __b;
   8973 }
   8974 
   8975 static vector short __ATTRS_o_ai
   8976 vec_vxor(vector short __a, vector bool short __b)
   8977 {
   8978   return __a ^ (vector short)__b;
   8979 }
   8980 
   8981 static vector unsigned short __ATTRS_o_ai
   8982 vec_vxor(vector unsigned short __a, vector unsigned short __b)
   8983 {
   8984   return __a ^ __b;
   8985 }
   8986 
   8987 static vector unsigned short __ATTRS_o_ai
   8988 vec_vxor(vector bool short __a, vector unsigned short __b)
   8989 {
   8990   return (vector unsigned short)__a ^ __b;
   8991 }
   8992 
   8993 static vector unsigned short __ATTRS_o_ai
   8994 vec_vxor(vector unsigned short __a, vector bool short __b)
   8995 {
   8996   return __a ^ (vector unsigned short)__b;
   8997 }
   8998 
   8999 static vector bool short __ATTRS_o_ai
   9000 vec_vxor(vector bool short __a, vector bool short __b)
   9001 {
   9002   return __a ^ __b;
   9003 }
   9004 
   9005 static vector int __ATTRS_o_ai
   9006 vec_vxor(vector int __a, vector int __b)
   9007 {
   9008   return __a ^ __b;
   9009 }
   9010 
   9011 static vector int __ATTRS_o_ai
   9012 vec_vxor(vector bool int __a, vector int __b)
   9013 {
   9014   return (vector int)__a ^ __b;
   9015 }
   9016 
   9017 static vector int __ATTRS_o_ai
   9018 vec_vxor(vector int __a, vector bool int __b)
   9019 {
   9020   return __a ^ (vector int)__b;
   9021 }
   9022 
   9023 static vector unsigned int __ATTRS_o_ai
   9024 vec_vxor(vector unsigned int __a, vector unsigned int __b)
   9025 {
   9026   return __a ^ __b;
   9027 }
   9028 
   9029 static vector unsigned int __ATTRS_o_ai
   9030 vec_vxor(vector bool int __a, vector unsigned int __b)
   9031 {
   9032   return (vector unsigned int)__a ^ __b;
   9033 }
   9034 
   9035 static vector unsigned int __ATTRS_o_ai
   9036 vec_vxor(vector unsigned int __a, vector bool int __b)
   9037 {
   9038   return __a ^ (vector unsigned int)__b;
   9039 }
   9040 
   9041 static vector bool int __ATTRS_o_ai
   9042 vec_vxor(vector bool int __a, vector bool int __b)
   9043 {
   9044   return __a ^ __b;
   9045 }
   9046 
   9047 static vector float __ATTRS_o_ai
   9048 vec_vxor(vector float __a, vector float __b)
   9049 {
   9050   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
   9051   return (vector float)__res;
   9052 }
   9053 
   9054 static vector float __ATTRS_o_ai
   9055 vec_vxor(vector bool int __a, vector float __b)
   9056 {
   9057   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
   9058   return (vector float)__res;
   9059 }
   9060 
   9061 static vector float __ATTRS_o_ai
   9062 vec_vxor(vector float __a, vector bool int __b)
   9063 {
   9064   vector unsigned int __res = (vector unsigned int)__a ^ (vector unsigned int)__b;
   9065   return (vector float)__res;
   9066 }
   9067 
   9068 /* ------------------------ extensions for CBEA ----------------------------- */
   9069 
   9070 /* vec_extract */
   9071 
   9072 static signed char __ATTRS_o_ai
   9073 vec_extract(vector signed char __a, int __b)
   9074 {
   9075   return __a[__b];
   9076 }
   9077 
   9078 static unsigned char __ATTRS_o_ai
   9079 vec_extract(vector unsigned char __a, int __b)
   9080 {
   9081   return __a[__b];
   9082 }
   9083 
   9084 static short __ATTRS_o_ai
   9085 vec_extract(vector short __a, int __b)
   9086 {
   9087   return __a[__b];
   9088 }
   9089 
   9090 static unsigned short __ATTRS_o_ai
   9091 vec_extract(vector unsigned short __a, int __b)
   9092 {
   9093   return __a[__b];
   9094 }
   9095 
   9096 static int __ATTRS_o_ai
   9097 vec_extract(vector int __a, int __b)
   9098 {
   9099   return __a[__b];
   9100 }
   9101 
   9102 static unsigned int __ATTRS_o_ai
   9103 vec_extract(vector unsigned int __a, int __b)
   9104 {
   9105   return __a[__b];
   9106 }
   9107 
   9108 static float __ATTRS_o_ai
   9109 vec_extract(vector float __a, int __b)
   9110 {
   9111   return __a[__b];
   9112 }
   9113 
   9114 /* vec_insert */
   9115 
   9116 static vector signed char __ATTRS_o_ai
   9117 vec_insert(signed char __a, vector signed char __b, int __c)
   9118 {
   9119   __b[__c] = __a;
   9120   return __b;
   9121 }
   9122 
   9123 static vector unsigned char __ATTRS_o_ai
   9124 vec_insert(unsigned char __a, vector unsigned char __b, int __c)
   9125 {
   9126   __b[__c] = __a;
   9127   return __b;
   9128 }
   9129 
   9130 static vector short __ATTRS_o_ai
   9131 vec_insert(short __a, vector short __b, int __c)
   9132 {
   9133   __b[__c] = __a;
   9134   return __b;
   9135 }
   9136 
   9137 static vector unsigned short __ATTRS_o_ai
   9138 vec_insert(unsigned short __a, vector unsigned short __b, int __c)
   9139 {
   9140   __b[__c] = __a;
   9141   return __b;
   9142 }
   9143 
   9144 static vector int __ATTRS_o_ai
   9145 vec_insert(int __a, vector int __b, int __c)
   9146 {
   9147   __b[__c] = __a;
   9148   return __b;
   9149 }
   9150 
   9151 static vector unsigned int __ATTRS_o_ai
   9152 vec_insert(unsigned int __a, vector unsigned int __b, int __c)
   9153 {
   9154   __b[__c] = __a;
   9155   return __b;
   9156 }
   9157 
   9158 static vector float __ATTRS_o_ai
   9159 vec_insert(float __a, vector float __b, int __c)
   9160 {
   9161   __b[__c] = __a;
   9162   return __b;
   9163 }
   9164 
   9165 /* vec_lvlx */
   9166 
   9167 static vector signed char __ATTRS_o_ai
   9168 vec_lvlx(int __a, const signed char *__b)
   9169 {
   9170   return vec_perm(vec_ld(__a, __b),
   9171                   (vector signed char)(0),
   9172                   vec_lvsl(__a, __b));
   9173 }
   9174 
   9175 static vector signed char __ATTRS_o_ai
   9176 vec_lvlx(int __a, const vector signed char *__b)
   9177 {
   9178   return vec_perm(vec_ld(__a, __b),
   9179                   (vector signed char)(0),
   9180                   vec_lvsl(__a, (unsigned char *)__b));
   9181 }
   9182 
   9183 static vector unsigned char __ATTRS_o_ai
   9184 vec_lvlx(int __a, const unsigned char *__b)
   9185 {
   9186   return vec_perm(vec_ld(__a, __b),
   9187                   (vector unsigned char)(0),
   9188                   vec_lvsl(__a, __b));
   9189 }
   9190 
   9191 static vector unsigned char __ATTRS_o_ai
   9192 vec_lvlx(int __a, const vector unsigned char *__b)
   9193 {
   9194   return vec_perm(vec_ld(__a, __b),
   9195                   (vector unsigned char)(0),
   9196                   vec_lvsl(__a, (unsigned char *)__b));
   9197 }
   9198 
   9199 static vector bool char __ATTRS_o_ai
   9200 vec_lvlx(int __a, const vector bool char *__b)
   9201 {
   9202   return vec_perm(vec_ld(__a, __b),
   9203                   (vector bool char)(0),
   9204                   vec_lvsl(__a, (unsigned char *)__b));
   9205 }
   9206 
   9207 static vector short __ATTRS_o_ai
   9208 vec_lvlx(int __a, const short *__b)
   9209 {
   9210   return vec_perm(vec_ld(__a, __b),
   9211                   (vector short)(0),
   9212                   vec_lvsl(__a, __b));
   9213 }
   9214 
   9215 static vector short __ATTRS_o_ai
   9216 vec_lvlx(int __a, const vector short *__b)
   9217 {
   9218   return vec_perm(vec_ld(__a, __b),
   9219                   (vector short)(0),
   9220                   vec_lvsl(__a, (unsigned char *)__b));
   9221 }
   9222 
   9223 static vector unsigned short __ATTRS_o_ai
   9224 vec_lvlx(int __a, const unsigned short *__b)
   9225 {
   9226   return vec_perm(vec_ld(__a, __b),
   9227                   (vector unsigned short)(0),
   9228                   vec_lvsl(__a, __b));
   9229 }
   9230 
   9231 static vector unsigned short __ATTRS_o_ai
   9232 vec_lvlx(int __a, const vector unsigned short *__b)
   9233 {
   9234   return vec_perm(vec_ld(__a, __b),
   9235                   (vector unsigned short)(0),
   9236                   vec_lvsl(__a, (unsigned char *)__b));
   9237 }
   9238 
   9239 static vector bool short __ATTRS_o_ai
   9240 vec_lvlx(int __a, const vector bool short *__b)
   9241 {
   9242   return vec_perm(vec_ld(__a, __b),
   9243                   (vector bool short)(0),
   9244                   vec_lvsl(__a, (unsigned char *)__b));
   9245 }
   9246 
   9247 static vector pixel __ATTRS_o_ai
   9248 vec_lvlx(int __a, const vector pixel *__b)
   9249 {
   9250   return vec_perm(vec_ld(__a, __b),
   9251                   (vector pixel)(0),
   9252                   vec_lvsl(__a, (unsigned char *)__b));
   9253 }
   9254 
   9255 static vector int __ATTRS_o_ai
   9256 vec_lvlx(int __a, const int *__b)
   9257 {
   9258   return vec_perm(vec_ld(__a, __b),
   9259                   (vector int)(0),
   9260                   vec_lvsl(__a, __b));
   9261 }
   9262 
   9263 static vector int __ATTRS_o_ai
   9264 vec_lvlx(int __a, const vector int *__b)
   9265 {
   9266   return vec_perm(vec_ld(__a, __b),
   9267                   (vector int)(0),
   9268                   vec_lvsl(__a, (unsigned char *)__b));
   9269 }
   9270 
   9271 static vector unsigned int __ATTRS_o_ai
   9272 vec_lvlx(int __a, const unsigned int *__b)
   9273 {
   9274   return vec_perm(vec_ld(__a, __b),
   9275                   (vector unsigned int)(0),
   9276                   vec_lvsl(__a, __b));
   9277 }
   9278 
   9279 static vector unsigned int __ATTRS_o_ai
   9280 vec_lvlx(int __a, const vector unsigned int *__b)
   9281 {
   9282   return vec_perm(vec_ld(__a, __b),
   9283                   (vector unsigned int)(0),
   9284                   vec_lvsl(__a, (unsigned char *)__b));
   9285 }
   9286 
   9287 static vector bool int __ATTRS_o_ai
   9288 vec_lvlx(int __a, const vector bool int *__b)
   9289 {
   9290   return vec_perm(vec_ld(__a, __b),
   9291                   (vector bool int)(0),
   9292                   vec_lvsl(__a, (unsigned char *)__b));
   9293 }
   9294 
   9295 static vector float __ATTRS_o_ai
   9296 vec_lvlx(int __a, const float *__b)
   9297 {
   9298   return vec_perm(vec_ld(__a, __b),
   9299                   (vector float)(0),
   9300                   vec_lvsl(__a, __b));
   9301 }
   9302 
   9303 static vector float __ATTRS_o_ai
   9304 vec_lvlx(int __a, const vector float *__b)
   9305 {
   9306   return vec_perm(vec_ld(__a, __b),
   9307                   (vector float)(0),
   9308                   vec_lvsl(__a, (unsigned char *)__b));
   9309 }
   9310 
   9311 /* vec_lvlxl */
   9312 
   9313 static vector signed char __ATTRS_o_ai
   9314 vec_lvlxl(int __a, const signed char *__b)
   9315 {
   9316   return vec_perm(vec_ldl(__a, __b),
   9317                   (vector signed char)(0),
   9318                   vec_lvsl(__a, __b));
   9319 }
   9320 
   9321 static vector signed char __ATTRS_o_ai
   9322 vec_lvlxl(int __a, const vector signed char *__b)
   9323 {
   9324   return vec_perm(vec_ldl(__a, __b),
   9325                   (vector signed char)(0),
   9326                   vec_lvsl(__a, (unsigned char *)__b));
   9327 }
   9328 
   9329 static vector unsigned char __ATTRS_o_ai
   9330 vec_lvlxl(int __a, const unsigned char *__b)
   9331 {
   9332   return vec_perm(vec_ldl(__a, __b),
   9333                   (vector unsigned char)(0),
   9334                   vec_lvsl(__a, __b));
   9335 }
   9336 
   9337 static vector unsigned char __ATTRS_o_ai
   9338 vec_lvlxl(int __a, const vector unsigned char *__b)
   9339 {
   9340   return vec_perm(vec_ldl(__a, __b),
   9341                   (vector unsigned char)(0),
   9342                   vec_lvsl(__a, (unsigned char *)__b));
   9343 }
   9344 
   9345 static vector bool char __ATTRS_o_ai
   9346 vec_lvlxl(int __a, const vector bool char *__b)
   9347 {
   9348   return vec_perm(vec_ldl(__a, __b),
   9349                   (vector bool char)(0),
   9350                   vec_lvsl(__a, (unsigned char *)__b));
   9351 }
   9352 
   9353 static vector short __ATTRS_o_ai
   9354 vec_lvlxl(int __a, const short *__b)
   9355 {
   9356   return vec_perm(vec_ldl(__a, __b),
   9357                   (vector short)(0),
   9358                   vec_lvsl(__a, __b));
   9359 }
   9360 
   9361 static vector short __ATTRS_o_ai
   9362 vec_lvlxl(int __a, const vector short *__b)
   9363 {
   9364   return vec_perm(vec_ldl(__a, __b),
   9365                   (vector short)(0),
   9366                   vec_lvsl(__a, (unsigned char *)__b));
   9367 }
   9368 
   9369 static vector unsigned short __ATTRS_o_ai
   9370 vec_lvlxl(int __a, const unsigned short *__b)
   9371 {
   9372   return vec_perm(vec_ldl(__a, __b),
   9373                   (vector unsigned short)(0),
   9374                   vec_lvsl(__a, __b));
   9375 }
   9376 
   9377 static vector unsigned short __ATTRS_o_ai
   9378 vec_lvlxl(int __a, const vector unsigned short *__b)
   9379 {
   9380   return vec_perm(vec_ldl(__a, __b),
   9381                   (vector unsigned short)(0),
   9382                   vec_lvsl(__a, (unsigned char *)__b));
   9383 }
   9384 
   9385 static vector bool short __ATTRS_o_ai
   9386 vec_lvlxl(int __a, const vector bool short *__b)
   9387 {
   9388   return vec_perm(vec_ldl(__a, __b),
   9389                   (vector bool short)(0),
   9390                   vec_lvsl(__a, (unsigned char *)__b));
   9391 }
   9392 
   9393 static vector pixel __ATTRS_o_ai
   9394 vec_lvlxl(int __a, const vector pixel *__b)
   9395 {
   9396   return vec_perm(vec_ldl(__a, __b),
   9397                   (vector pixel)(0),
   9398                   vec_lvsl(__a, (unsigned char *)__b));
   9399 }
   9400 
   9401 static vector int __ATTRS_o_ai
   9402 vec_lvlxl(int __a, const int *__b)
   9403 {
   9404   return vec_perm(vec_ldl(__a, __b),
   9405                   (vector int)(0),
   9406                   vec_lvsl(__a, __b));
   9407 }
   9408 
   9409 static vector int __ATTRS_o_ai
   9410 vec_lvlxl(int __a, const vector int *__b)
   9411 {
   9412   return vec_perm(vec_ldl(__a, __b),
   9413                   (vector int)(0),
   9414                   vec_lvsl(__a, (unsigned char *)__b));
   9415 }
   9416 
   9417 static vector unsigned int __ATTRS_o_ai
   9418 vec_lvlxl(int __a, const unsigned int *__b)
   9419 {
   9420   return vec_perm(vec_ldl(__a, __b),
   9421                   (vector unsigned int)(0),
   9422                   vec_lvsl(__a, __b));
   9423 }
   9424 
   9425 static vector unsigned int __ATTRS_o_ai
   9426 vec_lvlxl(int __a, const vector unsigned int *__b)
   9427 {
   9428   return vec_perm(vec_ldl(__a, __b),
   9429                   (vector unsigned int)(0),
   9430                   vec_lvsl(__a, (unsigned char *)__b));
   9431 }
   9432 
   9433 static vector bool int __ATTRS_o_ai
   9434 vec_lvlxl(int __a, const vector bool int *__b)
   9435 {
   9436   return vec_perm(vec_ldl(__a, __b),
   9437                   (vector bool int)(0),
   9438                   vec_lvsl(__a, (unsigned char *)__b));
   9439 }
   9440 
   9441 static vector float __ATTRS_o_ai
   9442 vec_lvlxl(int __a, const float *__b)
   9443 {
   9444   return vec_perm(vec_ldl(__a, __b),
   9445                   (vector float)(0),
   9446                   vec_lvsl(__a, __b));
   9447 }
   9448 
   9449 static vector float __ATTRS_o_ai
   9450 vec_lvlxl(int __a, vector float *__b)
   9451 {
   9452   return vec_perm(vec_ldl(__a, __b),
   9453                   (vector float)(0),
   9454                   vec_lvsl(__a, (unsigned char *)__b));
   9455 }
   9456 
   9457 /* vec_lvrx */
   9458 
   9459 static vector signed char __ATTRS_o_ai
   9460 vec_lvrx(int __a, const signed char *__b)
   9461 {
   9462   return vec_perm((vector signed char)(0),
   9463                   vec_ld(__a, __b),
   9464                   vec_lvsl(__a, __b));
   9465 }
   9466 
   9467 static vector signed char __ATTRS_o_ai
   9468 vec_lvrx(int __a, const vector signed char *__b)
   9469 {
   9470   return vec_perm((vector signed char)(0),
   9471                   vec_ld(__a, __b),
   9472                   vec_lvsl(__a, (unsigned char *)__b));
   9473 }
   9474 
   9475 static vector unsigned char __ATTRS_o_ai
   9476 vec_lvrx(int __a, const unsigned char *__b)
   9477 {
   9478   return vec_perm((vector unsigned char)(0),
   9479                   vec_ld(__a, __b),
   9480                   vec_lvsl(__a, __b));
   9481 }
   9482 
   9483 static vector unsigned char __ATTRS_o_ai
   9484 vec_lvrx(int __a, const vector unsigned char *__b)
   9485 {
   9486   return vec_perm((vector unsigned char)(0),
   9487                   vec_ld(__a, __b),
   9488                   vec_lvsl(__a, (unsigned char *)__b));
   9489 }
   9490 
   9491 static vector bool char __ATTRS_o_ai
   9492 vec_lvrx(int __a, const vector bool char *__b)
   9493 {
   9494   return vec_perm((vector bool char)(0),
   9495                   vec_ld(__a, __b),
   9496                   vec_lvsl(__a, (unsigned char *)__b));
   9497 }
   9498 
   9499 static vector short __ATTRS_o_ai
   9500 vec_lvrx(int __a, const short *__b)
   9501 {
   9502   return vec_perm((vector short)(0),
   9503                   vec_ld(__a, __b),
   9504                   vec_lvsl(__a, __b));
   9505 }
   9506 
   9507 static vector short __ATTRS_o_ai
   9508 vec_lvrx(int __a, const vector short *__b)
   9509 {
   9510   return vec_perm((vector short)(0),
   9511                   vec_ld(__a, __b),
   9512                   vec_lvsl(__a, (unsigned char *)__b));
   9513 }
   9514 
   9515 static vector unsigned short __ATTRS_o_ai
   9516 vec_lvrx(int __a, const unsigned short *__b)
   9517 {
   9518   return vec_perm((vector unsigned short)(0),
   9519                   vec_ld(__a, __b),
   9520                   vec_lvsl(__a, __b));
   9521 }
   9522 
   9523 static vector unsigned short __ATTRS_o_ai
   9524 vec_lvrx(int __a, const vector unsigned short *__b)
   9525 {
   9526   return vec_perm((vector unsigned short)(0),
   9527                   vec_ld(__a, __b),
   9528                   vec_lvsl(__a, (unsigned char *)__b));
   9529 }
   9530 
   9531 static vector bool short __ATTRS_o_ai
   9532 vec_lvrx(int __a, const vector bool short *__b)
   9533 {
   9534   return vec_perm((vector bool short)(0),
   9535                   vec_ld(__a, __b),
   9536                   vec_lvsl(__a, (unsigned char *)__b));
   9537 }
   9538 
   9539 static vector pixel __ATTRS_o_ai
   9540 vec_lvrx(int __a, const vector pixel *__b)
   9541 {
   9542   return vec_perm((vector pixel)(0),
   9543                   vec_ld(__a, __b),
   9544                   vec_lvsl(__a, (unsigned char *)__b));
   9545 }
   9546 
   9547 static vector int __ATTRS_o_ai
   9548 vec_lvrx(int __a, const int *__b)
   9549 {
   9550   return vec_perm((vector int)(0),
   9551                   vec_ld(__a, __b),
   9552                   vec_lvsl(__a, __b));
   9553 }
   9554 
   9555 static vector int __ATTRS_o_ai
   9556 vec_lvrx(int __a, const vector int *__b)
   9557 {
   9558   return vec_perm((vector int)(0),
   9559                   vec_ld(__a, __b),
   9560                   vec_lvsl(__a, (unsigned char *)__b));
   9561 }
   9562 
   9563 static vector unsigned int __ATTRS_o_ai
   9564 vec_lvrx(int __a, const unsigned int *__b)
   9565 {
   9566   return vec_perm((vector unsigned int)(0),
   9567                   vec_ld(__a, __b),
   9568                   vec_lvsl(__a, __b));
   9569 }
   9570 
   9571 static vector unsigned int __ATTRS_o_ai
   9572 vec_lvrx(int __a, const vector unsigned int *__b)
   9573 {
   9574   return vec_perm((vector unsigned int)(0),
   9575                   vec_ld(__a, __b),
   9576                   vec_lvsl(__a, (unsigned char *)__b));
   9577 }
   9578 
   9579 static vector bool int __ATTRS_o_ai
   9580 vec_lvrx(int __a, const vector bool int *__b)
   9581 {
   9582   return vec_perm((vector bool int)(0),
   9583                   vec_ld(__a, __b),
   9584                   vec_lvsl(__a, (unsigned char *)__b));
   9585 }
   9586 
   9587 static vector float __ATTRS_o_ai
   9588 vec_lvrx(int __a, const float *__b)
   9589 {
   9590   return vec_perm((vector float)(0),
   9591                   vec_ld(__a, __b),
   9592                   vec_lvsl(__a, __b));
   9593 }
   9594 
   9595 static vector float __ATTRS_o_ai
   9596 vec_lvrx(int __a, const vector float *__b)
   9597 {
   9598   return vec_perm((vector float)(0),
   9599                   vec_ld(__a, __b),
   9600                   vec_lvsl(__a, (unsigned char *)__b));
   9601 }
   9602 
   9603 /* vec_lvrxl */
   9604 
   9605 static vector signed char __ATTRS_o_ai
   9606 vec_lvrxl(int __a, const signed char *__b)
   9607 {
   9608   return vec_perm((vector signed char)(0),
   9609                   vec_ldl(__a, __b),
   9610                   vec_lvsl(__a, __b));
   9611 }
   9612 
   9613 static vector signed char __ATTRS_o_ai
   9614 vec_lvrxl(int __a, const vector signed char *__b)
   9615 {
   9616   return vec_perm((vector signed char)(0),
   9617                   vec_ldl(__a, __b),
   9618                   vec_lvsl(__a, (unsigned char *)__b));
   9619 }
   9620 
   9621 static vector unsigned char __ATTRS_o_ai
   9622 vec_lvrxl(int __a, const unsigned char *__b)
   9623 {
   9624   return vec_perm((vector unsigned char)(0),
   9625                   vec_ldl(__a, __b),
   9626                   vec_lvsl(__a, __b));
   9627 }
   9628 
   9629 static vector unsigned char __ATTRS_o_ai
   9630 vec_lvrxl(int __a, const vector unsigned char *__b)
   9631 {
   9632   return vec_perm((vector unsigned char)(0),
   9633                   vec_ldl(__a, __b),
   9634                   vec_lvsl(__a, (unsigned char *)__b));
   9635 }
   9636 
   9637 static vector bool char __ATTRS_o_ai
   9638 vec_lvrxl(int __a, const vector bool char *__b)
   9639 {
   9640   return vec_perm((vector bool char)(0),
   9641                   vec_ldl(__a, __b),
   9642                   vec_lvsl(__a, (unsigned char *)__b));
   9643 }
   9644 
   9645 static vector short __ATTRS_o_ai
   9646 vec_lvrxl(int __a, const short *__b)
   9647 {
   9648   return vec_perm((vector short)(0),
   9649                   vec_ldl(__a, __b),
   9650                   vec_lvsl(__a, __b));
   9651 }
   9652 
   9653 static vector short __ATTRS_o_ai
   9654 vec_lvrxl(int __a, const vector short *__b)
   9655 {
   9656   return vec_perm((vector short)(0),
   9657                   vec_ldl(__a, __b),
   9658                   vec_lvsl(__a, (unsigned char *)__b));
   9659 }
   9660 
   9661 static vector unsigned short __ATTRS_o_ai
   9662 vec_lvrxl(int __a, const unsigned short *__b)
   9663 {
   9664   return vec_perm((vector unsigned short)(0),
   9665                   vec_ldl(__a, __b),
   9666                   vec_lvsl(__a, __b));
   9667 }
   9668 
   9669 static vector unsigned short __ATTRS_o_ai
   9670 vec_lvrxl(int __a, const vector unsigned short *__b)
   9671 {
   9672   return vec_perm((vector unsigned short)(0),
   9673                   vec_ldl(__a, __b),
   9674                   vec_lvsl(__a, (unsigned char *)__b));
   9675 }
   9676 
   9677 static vector bool short __ATTRS_o_ai
   9678 vec_lvrxl(int __a, const vector bool short *__b)
   9679 {
   9680   return vec_perm((vector bool short)(0),
   9681                   vec_ldl(__a, __b),
   9682                   vec_lvsl(__a, (unsigned char *)__b));
   9683 }
   9684 
   9685 static vector pixel __ATTRS_o_ai
   9686 vec_lvrxl(int __a, const vector pixel *__b)
   9687 {
   9688   return vec_perm((vector pixel)(0),
   9689                   vec_ldl(__a, __b),
   9690                   vec_lvsl(__a, (unsigned char *)__b));
   9691 }
   9692 
   9693 static vector int __ATTRS_o_ai
   9694 vec_lvrxl(int __a, const int *__b)
   9695 {
   9696   return vec_perm((vector int)(0),
   9697                   vec_ldl(__a, __b),
   9698                   vec_lvsl(__a, __b));
   9699 }
   9700 
   9701 static vector int __ATTRS_o_ai
   9702 vec_lvrxl(int __a, const vector int *__b)
   9703 {
   9704   return vec_perm((vector int)(0),
   9705                   vec_ldl(__a, __b),
   9706                   vec_lvsl(__a, (unsigned char *)__b));
   9707 }
   9708 
   9709 static vector unsigned int __ATTRS_o_ai
   9710 vec_lvrxl(int __a, const unsigned int *__b)
   9711 {
   9712   return vec_perm((vector unsigned int)(0),
   9713                   vec_ldl(__a, __b),
   9714                   vec_lvsl(__a, __b));
   9715 }
   9716 
   9717 static vector unsigned int __ATTRS_o_ai
   9718 vec_lvrxl(int __a, const vector unsigned int *__b)
   9719 {
   9720   return vec_perm((vector unsigned int)(0),
   9721                   vec_ldl(__a, __b),
   9722                   vec_lvsl(__a, (unsigned char *)__b));
   9723 }
   9724 
   9725 static vector bool int __ATTRS_o_ai
   9726 vec_lvrxl(int __a, const vector bool int *__b)
   9727 {
   9728   return vec_perm((vector bool int)(0),
   9729                   vec_ldl(__a, __b),
   9730                   vec_lvsl(__a, (unsigned char *)__b));
   9731 }
   9732 
   9733 static vector float __ATTRS_o_ai
   9734 vec_lvrxl(int __a, const float *__b)
   9735 {
   9736   return vec_perm((vector float)(0),
   9737                   vec_ldl(__a, __b),
   9738                   vec_lvsl(__a, __b));
   9739 }
   9740 
   9741 static vector float __ATTRS_o_ai
   9742 vec_lvrxl(int __a, const vector float *__b)
   9743 {
   9744   return vec_perm((vector float)(0),
   9745                   vec_ldl(__a, __b),
   9746                   vec_lvsl(__a, (unsigned char *)__b));
   9747 }
   9748 
   9749 /* vec_stvlx */
   9750 
   9751 static void __ATTRS_o_ai
   9752 vec_stvlx(vector signed char __a, int __b, signed char *__c)
   9753 {
   9754   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9755                          __a,
   9756                          vec_lvsr(__b, __c)),
   9757                 __b, __c);
   9758 }
   9759 
   9760 static void __ATTRS_o_ai
   9761 vec_stvlx(vector signed char __a, int __b, vector signed char *__c)
   9762 {
   9763   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9764                          __a,
   9765                          vec_lvsr(__b, (unsigned char *)__c)),
   9766                 __b, __c);
   9767 }
   9768 
   9769 static void __ATTRS_o_ai
   9770 vec_stvlx(vector unsigned char __a, int __b, unsigned char *__c)
   9771 {
   9772   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9773                          __a,
   9774                          vec_lvsr(__b, __c)),
   9775                 __b, __c);
   9776 }
   9777 
   9778 static void __ATTRS_o_ai
   9779 vec_stvlx(vector unsigned char __a, int __b, vector unsigned char *__c)
   9780 {
   9781   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9782                          __a,
   9783                          vec_lvsr(__b, (unsigned char *)__c)),
   9784                 __b, __c);
   9785 }
   9786 
   9787 static void __ATTRS_o_ai
   9788 vec_stvlx(vector bool char __a, int __b, vector bool char *__c)
   9789 {
   9790   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9791                          __a,
   9792                          vec_lvsr(__b, (unsigned char *)__c)),
   9793                 __b, __c);
   9794 }
   9795 
   9796 static void __ATTRS_o_ai
   9797 vec_stvlx(vector short __a, int __b, short *__c)
   9798 {
   9799   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9800                          __a,
   9801                          vec_lvsr(__b, __c)),
   9802                 __b, __c);
   9803 }
   9804 
   9805 static void __ATTRS_o_ai
   9806 vec_stvlx(vector short __a, int __b, vector short *__c)
   9807 {
   9808   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9809                          __a,
   9810                          vec_lvsr(__b, (unsigned char *)__c)),
   9811                 __b, __c);
   9812 }
   9813 
   9814 static void __ATTRS_o_ai
   9815 vec_stvlx(vector unsigned short __a, int __b, unsigned short *__c)
   9816 {
   9817   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9818                          __a,
   9819                          vec_lvsr(__b, __c)),
   9820                 __b, __c);
   9821 }
   9822 
   9823 static void __ATTRS_o_ai
   9824 vec_stvlx(vector unsigned short __a, int __b, vector unsigned short *__c)
   9825 {
   9826   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9827                          __a,
   9828                          vec_lvsr(__b, (unsigned char *)__c)),
   9829                 __b, __c);
   9830 }
   9831 
   9832 static void __ATTRS_o_ai
   9833 vec_stvlx(vector bool short __a, int __b, vector bool short *__c)
   9834 {
   9835   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9836                          __a,
   9837                          vec_lvsr(__b, (unsigned char *)__c)),
   9838                 __b, __c);
   9839 }
   9840 
   9841 static void __ATTRS_o_ai
   9842 vec_stvlx(vector pixel __a, int __b, vector pixel *__c)
   9843 {
   9844   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9845                          __a,
   9846                          vec_lvsr(__b, (unsigned char *)__c)),
   9847                 __b, __c);
   9848 }
   9849 
   9850 static void __ATTRS_o_ai
   9851 vec_stvlx(vector int __a, int __b, int *__c)
   9852 {
   9853   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9854                          __a,
   9855                          vec_lvsr(__b, __c)),
   9856                 __b, __c);
   9857 }
   9858 
   9859 static void __ATTRS_o_ai
   9860 vec_stvlx(vector int __a, int __b, vector int *__c)
   9861 {
   9862   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9863                          __a,
   9864                          vec_lvsr(__b, (unsigned char *)__c)),
   9865                 __b, __c);
   9866 }
   9867 
   9868 static void __ATTRS_o_ai
   9869 vec_stvlx(vector unsigned int __a, int __b, unsigned int *__c)
   9870 {
   9871   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9872                          __a,
   9873                          vec_lvsr(__b, __c)),
   9874                 __b, __c);
   9875 }
   9876 
   9877 static void __ATTRS_o_ai
   9878 vec_stvlx(vector unsigned int __a, int __b, vector unsigned int *__c)
   9879 {
   9880   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9881                          __a,
   9882                          vec_lvsr(__b, (unsigned char *)__c)),
   9883                 __b, __c);
   9884 }
   9885 
   9886 static void __ATTRS_o_ai
   9887 vec_stvlx(vector bool int __a, int __b, vector bool int *__c)
   9888 {
   9889   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9890                          __a,
   9891                          vec_lvsr(__b, (unsigned char *)__c)),
   9892                 __b, __c);
   9893 }
   9894 
   9895 static void __ATTRS_o_ai
   9896 vec_stvlx(vector float __a, int __b, vector float *__c)
   9897 {
   9898   return vec_st(vec_perm(vec_lvrx(__b, __c),
   9899                          __a,
   9900                          vec_lvsr(__b, (unsigned char *)__c)),
   9901                 __b, __c);
   9902 }
   9903 
   9904 /* vec_stvlxl */
   9905 
   9906 static void __ATTRS_o_ai
   9907 vec_stvlxl(vector signed char __a, int __b, signed char *__c)
   9908 {
   9909   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   9910                           __a,
   9911                           vec_lvsr(__b, __c)),
   9912                  __b, __c);
   9913 }
   9914 
   9915 static void __ATTRS_o_ai
   9916 vec_stvlxl(vector signed char __a, int __b, vector signed char *__c)
   9917 {
   9918   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   9919                           __a,
   9920                           vec_lvsr(__b, (unsigned char *)__c)),
   9921                  __b, __c);
   9922 }
   9923 
   9924 static void __ATTRS_o_ai
   9925 vec_stvlxl(vector unsigned char __a, int __b, unsigned char *__c)
   9926 {
   9927   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   9928                           __a,
   9929                           vec_lvsr(__b, __c)),
   9930                  __b, __c);
   9931 }
   9932 
   9933 static void __ATTRS_o_ai
   9934 vec_stvlxl(vector unsigned char __a, int __b, vector unsigned char *__c)
   9935 {
   9936   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   9937                           __a,
   9938                           vec_lvsr(__b, (unsigned char *)__c)),
   9939                  __b, __c);
   9940 }
   9941 
   9942 static void __ATTRS_o_ai
   9943 vec_stvlxl(vector bool char __a, int __b, vector bool char *__c)
   9944 {
   9945   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   9946                           __a,
   9947                           vec_lvsr(__b, (unsigned char *)__c)),
   9948                  __b, __c);
   9949 }
   9950 
   9951 static void __ATTRS_o_ai
   9952 vec_stvlxl(vector short __a, int __b, short *__c)
   9953 {
   9954   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   9955                           __a,
   9956                           vec_lvsr(__b, __c)),
   9957                  __b, __c);
   9958 }
   9959 
   9960 static void __ATTRS_o_ai
   9961 vec_stvlxl(vector short __a, int __b, vector short *__c)
   9962 {
   9963   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   9964                           __a,
   9965                           vec_lvsr(__b, (unsigned char *)__c)),
   9966                  __b, __c);
   9967 }
   9968 
   9969 static void __ATTRS_o_ai
   9970 vec_stvlxl(vector unsigned short __a, int __b, unsigned short *__c)
   9971 {
   9972   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   9973                           __a,
   9974                           vec_lvsr(__b, __c)),
   9975                  __b, __c);
   9976 }
   9977 
   9978 static void __ATTRS_o_ai
   9979 vec_stvlxl(vector unsigned short __a, int __b, vector unsigned short *__c)
   9980 {
   9981   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   9982                           __a,
   9983                           vec_lvsr(__b, (unsigned char *)__c)),
   9984                  __b, __c);
   9985 }
   9986 
   9987 static void __ATTRS_o_ai
   9988 vec_stvlxl(vector bool short __a, int __b, vector bool short *__c)
   9989 {
   9990   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   9991                           __a,
   9992                           vec_lvsr(__b, (unsigned char *)__c)),
   9993                  __b, __c);
   9994 }
   9995 
   9996 static void __ATTRS_o_ai
   9997 vec_stvlxl(vector pixel __a, int __b, vector pixel *__c)
   9998 {
   9999   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   10000                           __a,
   10001                           vec_lvsr(__b, (unsigned char *)__c)),
   10002                  __b, __c);
   10003 }
   10004 
   10005 static void __ATTRS_o_ai
   10006 vec_stvlxl(vector int __a, int __b, int *__c)
   10007 {
   10008   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   10009                           __a,
   10010                           vec_lvsr(__b, __c)),
   10011                  __b, __c);
   10012 }
   10013 
   10014 static void __ATTRS_o_ai
   10015 vec_stvlxl(vector int __a, int __b, vector int *__c)
   10016 {
   10017   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   10018                           __a,
   10019                           vec_lvsr(__b, (unsigned char *)__c)),
   10020                  __b, __c);
   10021 }
   10022 
   10023 static void __ATTRS_o_ai
   10024 vec_stvlxl(vector unsigned int __a, int __b, unsigned int *__c)
   10025 {
   10026   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   10027                           __a,
   10028                           vec_lvsr(__b, __c)),
   10029                  __b, __c);
   10030 }
   10031 
   10032 static void __ATTRS_o_ai
   10033 vec_stvlxl(vector unsigned int __a, int __b, vector unsigned int *__c)
   10034 {
   10035   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   10036                           __a,
   10037                           vec_lvsr(__b, (unsigned char *)__c)),
   10038                  __b, __c);
   10039 }
   10040 
   10041 static void __ATTRS_o_ai
   10042 vec_stvlxl(vector bool int __a, int __b, vector bool int *__c)
   10043 {
   10044   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   10045                           __a,
   10046                           vec_lvsr(__b, (unsigned char *)__c)),
   10047                  __b, __c);
   10048 }
   10049 
   10050 static void __ATTRS_o_ai
   10051 vec_stvlxl(vector float __a, int __b, vector float *__c)
   10052 {
   10053   return vec_stl(vec_perm(vec_lvrx(__b, __c),
   10054                           __a,
   10055                           vec_lvsr(__b, (unsigned char *)__c)),
   10056                  __b, __c);
   10057 }
   10058 
   10059 /* vec_stvrx */
   10060 
   10061 static void __ATTRS_o_ai
   10062 vec_stvrx(vector signed char __a, int __b, signed char *__c)
   10063 {
   10064   return vec_st(vec_perm(__a,
   10065                          vec_lvlx(__b, __c),
   10066                          vec_lvsr(__b, __c)),
   10067                 __b, __c);
   10068 }
   10069 
   10070 static void __ATTRS_o_ai
   10071 vec_stvrx(vector signed char __a, int __b, vector signed char *__c)
   10072 {
   10073   return vec_st(vec_perm(__a,
   10074                          vec_lvlx(__b, __c),
   10075                          vec_lvsr(__b, (unsigned char *)__c)),
   10076                 __b, __c);
   10077 }
   10078 
   10079 static void __ATTRS_o_ai
   10080 vec_stvrx(vector unsigned char __a, int __b, unsigned char *__c)
   10081 {
   10082   return vec_st(vec_perm(__a,
   10083                          vec_lvlx(__b, __c),
   10084                          vec_lvsr(__b, __c)),
   10085                 __b, __c);
   10086 }
   10087 
   10088 static void __ATTRS_o_ai
   10089 vec_stvrx(vector unsigned char __a, int __b, vector unsigned char *__c)
   10090 {
   10091   return vec_st(vec_perm(__a,
   10092                          vec_lvlx(__b, __c),
   10093                          vec_lvsr(__b, (unsigned char *)__c)),
   10094                 __b, __c);
   10095 }
   10096 
   10097 static void __ATTRS_o_ai
   10098 vec_stvrx(vector bool char __a, int __b, vector bool char *__c)
   10099 {
   10100   return vec_st(vec_perm(__a,
   10101                          vec_lvlx(__b, __c),
   10102                          vec_lvsr(__b, (unsigned char *)__c)),
   10103                 __b, __c);
   10104 }
   10105 
   10106 static void __ATTRS_o_ai
   10107 vec_stvrx(vector short __a, int __b, short *__c)
   10108 {
   10109   return vec_st(vec_perm(__a,
   10110                          vec_lvlx(__b, __c),
   10111                          vec_lvsr(__b, __c)),
   10112                 __b, __c);
   10113 }
   10114 
   10115 static void __ATTRS_o_ai
   10116 vec_stvrx(vector short __a, int __b, vector short *__c)
   10117 {
   10118   return vec_st(vec_perm(__a,
   10119                          vec_lvlx(__b, __c),
   10120                          vec_lvsr(__b, (unsigned char *)__c)),
   10121                 __b, __c);
   10122 }
   10123 
   10124 static void __ATTRS_o_ai
   10125 vec_stvrx(vector unsigned short __a, int __b, unsigned short *__c)
   10126 {
   10127   return vec_st(vec_perm(__a,
   10128                          vec_lvlx(__b, __c),
   10129                          vec_lvsr(__b, __c)),
   10130                 __b, __c);
   10131 }
   10132 
   10133 static void __ATTRS_o_ai
   10134 vec_stvrx(vector unsigned short __a, int __b, vector unsigned short *__c)
   10135 {
   10136   return vec_st(vec_perm(__a,
   10137                          vec_lvlx(__b, __c),
   10138                          vec_lvsr(__b, (unsigned char *)__c)),
   10139                 __b, __c);
   10140 }
   10141 
   10142 static void __ATTRS_o_ai
   10143 vec_stvrx(vector bool short __a, int __b, vector bool short *__c)
   10144 {
   10145   return vec_st(vec_perm(__a,
   10146                          vec_lvlx(__b, __c),
   10147                          vec_lvsr(__b, (unsigned char *)__c)),
   10148                 __b, __c);
   10149 }
   10150 
   10151 static void __ATTRS_o_ai
   10152 vec_stvrx(vector pixel __a, int __b, vector pixel *__c)
   10153 {
   10154   return vec_st(vec_perm(__a,
   10155                          vec_lvlx(__b, __c),
   10156                          vec_lvsr(__b, (unsigned char *)__c)),
   10157                 __b, __c);
   10158 }
   10159 
   10160 static void __ATTRS_o_ai
   10161 vec_stvrx(vector int __a, int __b, int *__c)
   10162 {
   10163   return vec_st(vec_perm(__a,
   10164                          vec_lvlx(__b, __c),
   10165                          vec_lvsr(__b, __c)),
   10166                 __b, __c);
   10167 }
   10168 
   10169 static void __ATTRS_o_ai
   10170 vec_stvrx(vector int __a, int __b, vector int *__c)
   10171 {
   10172   return vec_st(vec_perm(__a,
   10173                          vec_lvlx(__b, __c),
   10174                          vec_lvsr(__b, (unsigned char *)__c)),
   10175                 __b, __c);
   10176 }
   10177 
   10178 static void __ATTRS_o_ai
   10179 vec_stvrx(vector unsigned int __a, int __b, unsigned int *__c)
   10180 {
   10181   return vec_st(vec_perm(__a,
   10182                          vec_lvlx(__b, __c),
   10183                          vec_lvsr(__b, __c)),
   10184                 __b, __c);
   10185 }
   10186 
   10187 static void __ATTRS_o_ai
   10188 vec_stvrx(vector unsigned int __a, int __b, vector unsigned int *__c)
   10189 {
   10190   return vec_st(vec_perm(__a,
   10191                          vec_lvlx(__b, __c),
   10192                          vec_lvsr(__b, (unsigned char *)__c)),
   10193                 __b, __c);
   10194 }
   10195 
   10196 static void __ATTRS_o_ai
   10197 vec_stvrx(vector bool int __a, int __b, vector bool int *__c)
   10198 {
   10199   return vec_st(vec_perm(__a,
   10200                          vec_lvlx(__b, __c),
   10201                          vec_lvsr(__b, (unsigned char *)__c)),
   10202                 __b, __c);
   10203 }
   10204 
   10205 static void __ATTRS_o_ai
   10206 vec_stvrx(vector float __a, int __b, vector float *__c)
   10207 {
   10208   return vec_st(vec_perm(__a,
   10209                          vec_lvlx(__b, __c),
   10210                          vec_lvsr(__b, (unsigned char *)__c)),
   10211                 __b, __c);
   10212 }
   10213 
   10214 /* vec_stvrxl */
   10215 
   10216 static void __ATTRS_o_ai
   10217 vec_stvrxl(vector signed char __a, int __b, signed char *__c)
   10218 {
   10219   return vec_stl(vec_perm(__a,
   10220                           vec_lvlx(__b, __c),
   10221                           vec_lvsr(__b, __c)),
   10222                  __b, __c);
   10223 }
   10224 
   10225 static void __ATTRS_o_ai
   10226 vec_stvrxl(vector signed char __a, int __b, vector signed char *__c)
   10227 {
   10228   return vec_stl(vec_perm(__a,
   10229                           vec_lvlx(__b, __c),
   10230                           vec_lvsr(__b, (unsigned char *)__c)),
   10231                  __b, __c);
   10232 }
   10233 
   10234 static void __ATTRS_o_ai
   10235 vec_stvrxl(vector unsigned char __a, int __b, unsigned char *__c)
   10236 {
   10237   return vec_stl(vec_perm(__a,
   10238                           vec_lvlx(__b, __c),
   10239                           vec_lvsr(__b, __c)),
   10240                  __b, __c);
   10241 }
   10242 
   10243 static void __ATTRS_o_ai
   10244 vec_stvrxl(vector unsigned char __a, int __b, vector unsigned char *__c)
   10245 {
   10246   return vec_stl(vec_perm(__a,
   10247                           vec_lvlx(__b, __c),
   10248                           vec_lvsr(__b, (unsigned char *)__c)),
   10249                  __b, __c);
   10250 }
   10251 
   10252 static void __ATTRS_o_ai
   10253 vec_stvrxl(vector bool char __a, int __b, vector bool char *__c)
   10254 {
   10255   return vec_stl(vec_perm(__a,
   10256                           vec_lvlx(__b, __c),
   10257                           vec_lvsr(__b, (unsigned char *)__c)),
   10258                  __b, __c);
   10259 }
   10260 
   10261 static void __ATTRS_o_ai
   10262 vec_stvrxl(vector short __a, int __b, short *__c)
   10263 {
   10264   return vec_stl(vec_perm(__a,
   10265                           vec_lvlx(__b, __c),
   10266                           vec_lvsr(__b, __c)),
   10267                  __b, __c);
   10268 }
   10269 
   10270 static void __ATTRS_o_ai
   10271 vec_stvrxl(vector short __a, int __b, vector short *__c)
   10272 {
   10273   return vec_stl(vec_perm(__a,
   10274                           vec_lvlx(__b, __c),
   10275                           vec_lvsr(__b, (unsigned char *)__c)),
   10276                  __b, __c);
   10277 }
   10278 
   10279 static void __ATTRS_o_ai
   10280 vec_stvrxl(vector unsigned short __a, int __b, unsigned short *__c)
   10281 {
   10282   return vec_stl(vec_perm(__a,
   10283                           vec_lvlx(__b, __c),
   10284                           vec_lvsr(__b, __c)),
   10285                  __b, __c);
   10286 }
   10287 
   10288 static void __ATTRS_o_ai
   10289 vec_stvrxl(vector unsigned short __a, int __b, vector unsigned short *__c)
   10290 {
   10291   return vec_stl(vec_perm(__a,
   10292                           vec_lvlx(__b, __c),
   10293                           vec_lvsr(__b, (unsigned char *)__c)),
   10294                  __b, __c);
   10295 }
   10296 
   10297 static void __ATTRS_o_ai
   10298 vec_stvrxl(vector bool short __a, int __b, vector bool short *__c)
   10299 {
   10300   return vec_stl(vec_perm(__a,
   10301                           vec_lvlx(__b, __c),
   10302                           vec_lvsr(__b, (unsigned char *)__c)),
   10303                  __b, __c);
   10304 }
   10305 
   10306 static void __ATTRS_o_ai
   10307 vec_stvrxl(vector pixel __a, int __b, vector pixel *__c)
   10308 {
   10309   return vec_stl(vec_perm(__a,
   10310                           vec_lvlx(__b, __c),
   10311                           vec_lvsr(__b, (unsigned char *)__c)),
   10312                  __b, __c);
   10313 }
   10314 
   10315 static void __ATTRS_o_ai
   10316 vec_stvrxl(vector int __a, int __b, int *__c)
   10317 {
   10318   return vec_stl(vec_perm(__a,
   10319                           vec_lvlx(__b, __c),
   10320                           vec_lvsr(__b, __c)),
   10321                  __b, __c);
   10322 }
   10323 
   10324 static void __ATTRS_o_ai
   10325 vec_stvrxl(vector int __a, int __b, vector int *__c)
   10326 {
   10327   return vec_stl(vec_perm(__a,
   10328                           vec_lvlx(__b, __c),
   10329                           vec_lvsr(__b, (unsigned char *)__c)),
   10330                  __b, __c);
   10331 }
   10332 
   10333 static void __ATTRS_o_ai
   10334 vec_stvrxl(vector unsigned int __a, int __b, unsigned int *__c)
   10335 {
   10336   return vec_stl(vec_perm(__a,
   10337                           vec_lvlx(__b, __c),
   10338                           vec_lvsr(__b, __c)),
   10339                  __b, __c);
   10340 }
   10341 
   10342 static void __ATTRS_o_ai
   10343 vec_stvrxl(vector unsigned int __a, int __b, vector unsigned int *__c)
   10344 {
   10345   return vec_stl(vec_perm(__a,
   10346                           vec_lvlx(__b, __c),
   10347                           vec_lvsr(__b, (unsigned char *)__c)),
   10348                  __b, __c);
   10349 }
   10350 
   10351 static void __ATTRS_o_ai
   10352 vec_stvrxl(vector bool int __a, int __b, vector bool int *__c)
   10353 {
   10354   return vec_stl(vec_perm(__a,
   10355                           vec_lvlx(__b, __c),
   10356                           vec_lvsr(__b, (unsigned char *)__c)),
   10357                  __b, __c);
   10358 }
   10359 
   10360 static void __ATTRS_o_ai
   10361 vec_stvrxl(vector float __a, int __b, vector float *__c)
   10362 {
   10363   return vec_stl(vec_perm(__a,
   10364                           vec_lvlx(__b, __c),
   10365                           vec_lvsr(__b, (unsigned char *)__c)),
   10366                  __b, __c);
   10367 }
   10368 
   10369 /* vec_promote */
   10370 
   10371 static vector signed char __ATTRS_o_ai
   10372 vec_promote(signed char __a, int __b)
   10373 {
   10374   vector signed char __res = (vector signed char)(0);
   10375   __res[__b] = __a;
   10376   return __res;
   10377 }
   10378 
   10379 static vector unsigned char __ATTRS_o_ai
   10380 vec_promote(unsigned char __a, int __b)
   10381 {
   10382   vector unsigned char __res = (vector unsigned char)(0);
   10383   __res[__b] = __a;
   10384   return __res;
   10385 }
   10386 
   10387 static vector short __ATTRS_o_ai
   10388 vec_promote(short __a, int __b)
   10389 {
   10390   vector short __res = (vector short)(0);
   10391   __res[__b] = __a;
   10392   return __res;
   10393 }
   10394 
   10395 static vector unsigned short __ATTRS_o_ai
   10396 vec_promote(unsigned short __a, int __b)
   10397 {
   10398   vector unsigned short __res = (vector unsigned short)(0);
   10399   __res[__b] = __a;
   10400   return __res;
   10401 }
   10402 
   10403 static vector int __ATTRS_o_ai
   10404 vec_promote(int __a, int __b)
   10405 {
   10406   vector int __res = (vector int)(0);
   10407   __res[__b] = __a;
   10408   return __res;
   10409 }
   10410 
   10411 static vector unsigned int __ATTRS_o_ai
   10412 vec_promote(unsigned int __a, int __b)
   10413 {
   10414   vector unsigned int __res = (vector unsigned int)(0);
   10415   __res[__b] = __a;
   10416   return __res;
   10417 }
   10418 
   10419 static vector float __ATTRS_o_ai
   10420 vec_promote(float __a, int __b)
   10421 {
   10422   vector float __res = (vector float)(0);
   10423   __res[__b] = __a;
   10424   return __res;
   10425 }
   10426 
   10427 /* vec_splats */
   10428 
   10429 static vector signed char __ATTRS_o_ai
   10430 vec_splats(signed char __a)
   10431 {
   10432   return (vector signed char)(__a);
   10433 }
   10434 
   10435 static vector unsigned char __ATTRS_o_ai
   10436 vec_splats(unsigned char __a)
   10437 {
   10438   return (vector unsigned char)(__a);
   10439 }
   10440 
   10441 static vector short __ATTRS_o_ai
   10442 vec_splats(short __a)
   10443 {
   10444   return (vector short)(__a);
   10445 }
   10446 
   10447 static vector unsigned short __ATTRS_o_ai
   10448 vec_splats(unsigned short __a)
   10449 {
   10450   return (vector unsigned short)(__a);
   10451 }
   10452 
   10453 static vector int __ATTRS_o_ai
   10454 vec_splats(int __a)
   10455 {
   10456   return (vector int)(__a);
   10457 }
   10458 
   10459 static vector unsigned int __ATTRS_o_ai
   10460 vec_splats(unsigned int __a)
   10461 {
   10462   return (vector unsigned int)(__a);
   10463 }
   10464 
   10465 static vector float __ATTRS_o_ai
   10466 vec_splats(float __a)
   10467 {
   10468   return (vector float)(__a);
   10469 }
   10470 
   10471 /* ----------------------------- predicates --------------------------------- */
   10472 
   10473 /* vec_all_eq */
   10474 
   10475 static int __ATTRS_o_ai
   10476 vec_all_eq(vector signed char __a, vector signed char __b)
   10477 {
   10478   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
   10479 }
   10480 
   10481 static int __ATTRS_o_ai
   10482 vec_all_eq(vector signed char __a, vector bool char __b)
   10483 {
   10484   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
   10485 }
   10486 
   10487 static int __ATTRS_o_ai
   10488 vec_all_eq(vector unsigned char __a, vector unsigned char __b)
   10489 {
   10490   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
   10491 }
   10492 
   10493 static int __ATTRS_o_ai
   10494 vec_all_eq(vector unsigned char __a, vector bool char __b)
   10495 {
   10496   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
   10497 }
   10498 
   10499 static int __ATTRS_o_ai
   10500 vec_all_eq(vector bool char __a, vector signed char __b)
   10501 {
   10502   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
   10503 }
   10504 
   10505 static int __ATTRS_o_ai
   10506 vec_all_eq(vector bool char __a, vector unsigned char __b)
   10507 {
   10508   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
   10509 }
   10510 
   10511 static int __ATTRS_o_ai
   10512 vec_all_eq(vector bool char __a, vector bool char __b)
   10513 {
   10514   return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)__a, (vector char)__b);
   10515 }
   10516 
   10517 static int __ATTRS_o_ai
   10518 vec_all_eq(vector short __a, vector short __b)
   10519 {
   10520   return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, __b);
   10521 }
   10522 
   10523 static int __ATTRS_o_ai
   10524 vec_all_eq(vector short __a, vector bool short __b)
   10525 {
   10526   return __builtin_altivec_vcmpequh_p(__CR6_LT, __a, (vector short)__b);
   10527 }
   10528 
   10529 static int __ATTRS_o_ai
   10530 vec_all_eq(vector unsigned short __a, vector unsigned short __b)
   10531 {
   10532   return
   10533     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
   10534 }
   10535 
   10536 static int __ATTRS_o_ai
   10537 vec_all_eq(vector unsigned short __a, vector bool short __b)
   10538 {
   10539   return
   10540     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
   10541 }
   10542 
   10543 static int __ATTRS_o_ai
   10544 vec_all_eq(vector bool short __a, vector short __b)
   10545 {
   10546   return
   10547     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
   10548 }
   10549 
   10550 static int __ATTRS_o_ai
   10551 vec_all_eq(vector bool short __a, vector unsigned short __b)
   10552 {
   10553   return
   10554     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
   10555 }
   10556 
   10557 static int __ATTRS_o_ai
   10558 vec_all_eq(vector bool short __a, vector bool short __b)
   10559 {
   10560   return
   10561     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
   10562 }
   10563 
   10564 static int __ATTRS_o_ai
   10565 vec_all_eq(vector pixel __a, vector pixel __b)
   10566 {
   10567   return
   10568     __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)__a, (vector short)__b);
   10569 }
   10570 
   10571 static int __ATTRS_o_ai
   10572 vec_all_eq(vector int __a, vector int __b)
   10573 {
   10574   return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, __b);
   10575 }
   10576 
   10577 static int __ATTRS_o_ai
   10578 vec_all_eq(vector int __a, vector bool int __b)
   10579 {
   10580   return __builtin_altivec_vcmpequw_p(__CR6_LT, __a, (vector int)__b);
   10581 }
   10582 
   10583 static int __ATTRS_o_ai
   10584 vec_all_eq(vector unsigned int __a, vector unsigned int __b)
   10585 {
   10586   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
   10587 }
   10588 
   10589 static int __ATTRS_o_ai
   10590 vec_all_eq(vector unsigned int __a, vector bool int __b)
   10591 {
   10592   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
   10593 }
   10594 
   10595 static int __ATTRS_o_ai
   10596 vec_all_eq(vector bool int __a, vector int __b)
   10597 {
   10598   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
   10599 }
   10600 
   10601 static int __ATTRS_o_ai
   10602 vec_all_eq(vector bool int __a, vector unsigned int __b)
   10603 {
   10604   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
   10605 }
   10606 
   10607 static int __ATTRS_o_ai
   10608 vec_all_eq(vector bool int __a, vector bool int __b)
   10609 {
   10610   return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)__a, (vector int)__b);
   10611 }
   10612 
   10613 static int __ATTRS_o_ai
   10614 vec_all_eq(vector float __a, vector float __b)
   10615 {
   10616   return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __b);
   10617 }
   10618 
   10619 /* vec_all_ge */
   10620 
   10621 static int __ATTRS_o_ai
   10622 vec_all_ge(vector signed char __a, vector signed char __b)
   10623 {
   10624   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __b, __a);
   10625 }
   10626 
   10627 static int __ATTRS_o_ai
   10628 vec_all_ge(vector signed char __a, vector bool char __b)
   10629 {
   10630   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, (vector signed char)__b, __a);
   10631 }
   10632 
   10633 static int __ATTRS_o_ai
   10634 vec_all_ge(vector unsigned char __a, vector unsigned char __b)
   10635 {
   10636   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, __a);
   10637 }
   10638 
   10639 static int __ATTRS_o_ai
   10640 vec_all_ge(vector unsigned char __a, vector bool char __b)
   10641 {
   10642   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__b, __a);
   10643 }
   10644 
   10645 static int __ATTRS_o_ai
   10646 vec_all_ge(vector bool char __a, vector signed char __b)
   10647 {
   10648   return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
   10649                                       (vector unsigned char)__b,
   10650                                       (vector unsigned char)__a);
   10651 }
   10652 
   10653 static int __ATTRS_o_ai
   10654 vec_all_ge(vector bool char __a, vector unsigned char __b)
   10655 {
   10656   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __b, (vector unsigned char)__a);
   10657 }
   10658 
   10659 static int __ATTRS_o_ai
   10660 vec_all_ge(vector bool char __a, vector bool char __b)
   10661 {
   10662   return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
   10663                                       (vector unsigned char)__b,
   10664                                       (vector unsigned char)__a);
   10665 }
   10666 
   10667 static int __ATTRS_o_ai
   10668 vec_all_ge(vector short __a, vector short __b)
   10669 {
   10670   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __b, __a);
   10671 }
   10672 
   10673 static int __ATTRS_o_ai
   10674 vec_all_ge(vector short __a, vector bool short __b)
   10675 {
   10676   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, (vector short)__b, __a);
   10677 }
   10678 
   10679 static int __ATTRS_o_ai
   10680 vec_all_ge(vector unsigned short __a, vector unsigned short __b)
   10681 {
   10682   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b, __a);
   10683 }
   10684 
   10685 static int __ATTRS_o_ai
   10686 vec_all_ge(vector unsigned short __a, vector bool short __b)
   10687 {
   10688   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__b, __a);
   10689 }
   10690 
   10691 static int __ATTRS_o_ai
   10692 vec_all_ge(vector bool short __a, vector short __b)
   10693 {
   10694   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
   10695                                       (vector unsigned short)__b,
   10696                                       (vector unsigned short)__a);
   10697 }
   10698 
   10699 static int __ATTRS_o_ai
   10700 vec_all_ge(vector bool short __a, vector unsigned short __b)
   10701 {
   10702   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __b, (vector unsigned short)__a);
   10703 }
   10704 
   10705 static int __ATTRS_o_ai
   10706 vec_all_ge(vector bool short __a, vector bool short __b)
   10707 {
   10708   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
   10709                                       (vector unsigned short)__b,
   10710                                       (vector unsigned short)__a);
   10711 }
   10712 
   10713 static int __ATTRS_o_ai
   10714 vec_all_ge(vector int __a, vector int __b)
   10715 {
   10716   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __b, __a);
   10717 }
   10718 
   10719 static int __ATTRS_o_ai
   10720 vec_all_ge(vector int __a, vector bool int __b)
   10721 {
   10722   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, (vector int)__b, __a);
   10723 }
   10724 
   10725 static int __ATTRS_o_ai
   10726 vec_all_ge(vector unsigned int __a, vector unsigned int __b)
   10727 {
   10728   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, __a);
   10729 }
   10730 
   10731 static int __ATTRS_o_ai
   10732 vec_all_ge(vector unsigned int __a, vector bool int __b)
   10733 {
   10734   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__b, __a);
   10735 }
   10736 
   10737 static int __ATTRS_o_ai
   10738 vec_all_ge(vector bool int __a, vector int __b)
   10739 {
   10740   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
   10741                                       (vector unsigned int)__b,
   10742                                       (vector unsigned int)__a);
   10743 }
   10744 
   10745 static int __ATTRS_o_ai
   10746 vec_all_ge(vector bool int __a, vector unsigned int __b)
   10747 {
   10748   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __b, (vector unsigned int)__a);
   10749 }
   10750 
   10751 static int __ATTRS_o_ai
   10752 vec_all_ge(vector bool int __a, vector bool int __b)
   10753 {
   10754   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
   10755                                       (vector unsigned int)__b,
   10756                                       (vector unsigned int)__a);
   10757 }
   10758 
   10759 static int __ATTRS_o_ai
   10760 vec_all_ge(vector float __a, vector float __b)
   10761 {
   10762   return __builtin_altivec_vcmpgefp_p(__CR6_LT, __a, __b);
   10763 }
   10764 
   10765 /* vec_all_gt */
   10766 
   10767 static int __ATTRS_o_ai
   10768 vec_all_gt(vector signed char __a, vector signed char __b)
   10769 {
   10770   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, __b);
   10771 }
   10772 
   10773 static int __ATTRS_o_ai
   10774 vec_all_gt(vector signed char __a, vector bool char __b)
   10775 {
   10776   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __a, (vector signed char)__b);
   10777 }
   10778 
   10779 static int __ATTRS_o_ai
   10780 vec_all_gt(vector unsigned char __a, vector unsigned char __b)
   10781 {
   10782   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, __b);
   10783 }
   10784 
   10785 static int __ATTRS_o_ai
   10786 vec_all_gt(vector unsigned char __a, vector bool char __b)
   10787 {
   10788   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __a, (vector unsigned char)__b);
   10789 }
   10790 
   10791 static int __ATTRS_o_ai
   10792 vec_all_gt(vector bool char __a, vector signed char __b)
   10793 {
   10794   return __builtin_altivec_vcmpgtub_p(__CR6_LT,
   10795                                       (vector unsigned char)__a,
   10796                                       (vector unsigned char)__b);
   10797 }
   10798 
   10799 static int __ATTRS_o_ai
   10800 vec_all_gt(vector bool char __a, vector unsigned char __b)
   10801 {
   10802   return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__a, __b);
   10803 }
   10804 
   10805 static int __ATTRS_o_ai
   10806 vec_all_gt(vector bool char __a, vector bool char __b)
   10807 {
   10808   return __builtin_altivec_vcmpgtub_p(__CR6_LT,
   10809                                       (vector unsigned char)__a,
   10810                                       (vector unsigned char)__b);
   10811 }
   10812 
   10813 static int __ATTRS_o_ai
   10814 vec_all_gt(vector short __a, vector short __b)
   10815 {
   10816   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, __b);
   10817 }
   10818 
   10819 static int __ATTRS_o_ai
   10820 vec_all_gt(vector short __a, vector bool short __b)
   10821 {
   10822   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __a, (vector short)__b);
   10823 }
   10824 
   10825 static int __ATTRS_o_ai
   10826 vec_all_gt(vector unsigned short __a, vector unsigned short __b)
   10827 {
   10828   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a, __b);
   10829 }
   10830 
   10831 static int __ATTRS_o_ai
   10832 vec_all_gt(vector unsigned short __a, vector bool short __b)
   10833 {
   10834   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __a, (vector unsigned short)__b);
   10835 }
   10836 
   10837 static int __ATTRS_o_ai
   10838 vec_all_gt(vector bool short __a, vector short __b)
   10839 {
   10840   return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
   10841                                       (vector unsigned short)__a,
   10842                                       (vector unsigned short)__b);
   10843 }
   10844 
   10845 static int __ATTRS_o_ai
   10846 vec_all_gt(vector bool short __a, vector unsigned short __b)
   10847 {
   10848   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__a, __b);
   10849 }
   10850 
   10851 static int __ATTRS_o_ai
   10852 vec_all_gt(vector bool short __a, vector bool short __b)
   10853 {
   10854   return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
   10855                                       (vector unsigned short)__a,
   10856                                       (vector unsigned short)__b);
   10857 }
   10858 
   10859 static int __ATTRS_o_ai
   10860 vec_all_gt(vector int __a, vector int __b)
   10861 {
   10862   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, __b);
   10863 }
   10864 
   10865 static int __ATTRS_o_ai
   10866 vec_all_gt(vector int __a, vector bool int __b)
   10867 {
   10868   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __a, (vector int)__b);
   10869 }
   10870 
   10871 static int __ATTRS_o_ai
   10872 vec_all_gt(vector unsigned int __a, vector unsigned int __b)
   10873 {
   10874   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, __b);
   10875 }
   10876 
   10877 static int __ATTRS_o_ai
   10878 vec_all_gt(vector unsigned int __a, vector bool int __b)
   10879 {
   10880   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __a, (vector unsigned int)__b);
   10881 }
   10882 
   10883 static int __ATTRS_o_ai
   10884 vec_all_gt(vector bool int __a, vector int __b)
   10885 {
   10886   return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
   10887                                       (vector unsigned int)__a,
   10888                                       (vector unsigned int)__b);
   10889 }
   10890 
   10891 static int __ATTRS_o_ai
   10892 vec_all_gt(vector bool int __a, vector unsigned int __b)
   10893 {
   10894   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__a, __b);
   10895 }
   10896 
   10897 static int __ATTRS_o_ai
   10898 vec_all_gt(vector bool int __a, vector bool int __b)
   10899 {
   10900   return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
   10901                                       (vector unsigned int)__a,
   10902                                       (vector unsigned int)__b);
   10903 }
   10904 
   10905 static int __ATTRS_o_ai
   10906 vec_all_gt(vector float __a, vector float __b)
   10907 {
   10908   return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __a, __b);
   10909 }
   10910 
   10911 /* vec_all_in */
   10912 
   10913 static int __attribute__((__always_inline__))
   10914 vec_all_in(vector float __a, vector float __b)
   10915 {
   10916   return __builtin_altivec_vcmpbfp_p(__CR6_EQ, __a, __b);
   10917 }
   10918 
   10919 /* vec_all_le */
   10920 
   10921 static int __ATTRS_o_ai
   10922 vec_all_le(vector signed char __a, vector signed char __b)
   10923 {
   10924   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, __b);
   10925 }
   10926 
   10927 static int __ATTRS_o_ai
   10928 vec_all_le(vector signed char __a, vector bool char __b)
   10929 {
   10930   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, __a, (vector signed char)__b);
   10931 }
   10932 
   10933 static int __ATTRS_o_ai
   10934 vec_all_le(vector unsigned char __a, vector unsigned char __b)
   10935 {
   10936   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, __b);
   10937 }
   10938 
   10939 static int __ATTRS_o_ai
   10940 vec_all_le(vector unsigned char __a, vector bool char __b)
   10941 {
   10942   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, __a, (vector unsigned char)__b);
   10943 }
   10944 
   10945 static int __ATTRS_o_ai
   10946 vec_all_le(vector bool char __a, vector signed char __b)
   10947 {
   10948   return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
   10949                                       (vector unsigned char)__a,
   10950                                       (vector unsigned char)__b);
   10951 }
   10952 
   10953 static int __ATTRS_o_ai
   10954 vec_all_le(vector bool char __a, vector unsigned char __b)
   10955 {
   10956   return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)__a, __b);
   10957 }
   10958 
   10959 static int __ATTRS_o_ai
   10960 vec_all_le(vector bool char __a, vector bool char __b)
   10961 {
   10962   return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
   10963                                       (vector unsigned char)__a,
   10964                                       (vector unsigned char)__b);
   10965 }
   10966 
   10967 static int __ATTRS_o_ai
   10968 vec_all_le(vector short __a, vector short __b)
   10969 {
   10970   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, __b);
   10971 }
   10972 
   10973 static int __ATTRS_o_ai
   10974 vec_all_le(vector short __a, vector bool short __b)
   10975 {
   10976   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, __a, (vector short)__b);
   10977 }
   10978 
   10979 static int __ATTRS_o_ai
   10980 vec_all_le(vector unsigned short __a, vector unsigned short __b)
   10981 {
   10982   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a, __b);
   10983 }
   10984 
   10985 static int __ATTRS_o_ai
   10986 vec_all_le(vector unsigned short __a, vector bool short __b)
   10987 {
   10988   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, __a, (vector unsigned short)__b);
   10989 }
   10990 
   10991 static int __ATTRS_o_ai
   10992 vec_all_le(vector bool short __a, vector short __b)
   10993 {
   10994   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
   10995                                       (vector unsigned short)__a,
   10996                                       (vector unsigned short)__b);
   10997 }
   10998 
   10999 static int __ATTRS_o_ai
   11000 vec_all_le(vector bool short __a, vector unsigned short __b)
   11001 {
   11002   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)__a, __b);
   11003 }
   11004 
   11005 static int __ATTRS_o_ai
   11006 vec_all_le(vector bool short __a, vector bool short __b)
   11007 {
   11008   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
   11009                                       (vector unsigned short)__a,
   11010                                       (vector unsigned short)__b);
   11011 }
   11012 
   11013 static int __ATTRS_o_ai
   11014 vec_all_le(vector int __a, vector int __b)
   11015 {
   11016   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, __b);
   11017 }
   11018 
   11019 static int __ATTRS_o_ai
   11020 vec_all_le(vector int __a, vector bool int __b)
   11021 {
   11022   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, __a, (vector int)__b);
   11023 }
   11024 
   11025 static int __ATTRS_o_ai
   11026 vec_all_le(vector unsigned int __a, vector unsigned int __b)
   11027 {
   11028   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, __b);
   11029 }
   11030 
   11031 static int __ATTRS_o_ai
   11032 vec_all_le(vector unsigned int __a, vector bool int __b)
   11033 {
   11034   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, __a, (vector unsigned int)__b);
   11035 }
   11036 
   11037 static int __ATTRS_o_ai
   11038 vec_all_le(vector bool int __a, vector int __b)
   11039 {
   11040   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
   11041                                       (vector unsigned int)__a,
   11042                                       (vector unsigned int)__b);
   11043 }
   11044 
   11045 static int __ATTRS_o_ai
   11046 vec_all_le(vector bool int __a, vector unsigned int __b)
   11047 {
   11048   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)__a, __b);
   11049 }
   11050 
   11051 static int __ATTRS_o_ai
   11052 vec_all_le(vector bool int __a, vector bool int __b)
   11053 {
   11054   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
   11055                                       (vector unsigned int)__a,
   11056                                       (vector unsigned int)__b);
   11057 }
   11058 
   11059 static int __ATTRS_o_ai
   11060 vec_all_le(vector float __a, vector float __b)
   11061 {
   11062   return __builtin_altivec_vcmpgefp_p(__CR6_LT, __b, __a);
   11063 }
   11064 
   11065 /* vec_all_lt */
   11066 
   11067 static int __ATTRS_o_ai
   11068 vec_all_lt(vector signed char __a, vector signed char __b)
   11069 {
   11070   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, __b, __a);
   11071 }
   11072 
   11073 static int __ATTRS_o_ai
   11074 vec_all_lt(vector signed char __a, vector bool char __b)
   11075 {
   11076   return __builtin_altivec_vcmpgtsb_p(__CR6_LT, (vector signed char)__b, __a);
   11077 }
   11078 
   11079 static int __ATTRS_o_ai
   11080 vec_all_lt(vector unsigned char __a, vector unsigned char __b)
   11081 {
   11082   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, __a);
   11083 }
   11084 
   11085 static int __ATTRS_o_ai
   11086 vec_all_lt(vector unsigned char __a, vector bool char __b)
   11087 {
   11088   return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)__b, __a);
   11089 }
   11090 
   11091 static int __ATTRS_o_ai
   11092 vec_all_lt(vector bool char __a, vector signed char __b)
   11093 {
   11094   return __builtin_altivec_vcmpgtub_p(__CR6_LT,
   11095                                       (vector unsigned char)__b,
   11096                                       (vector unsigned char)__a);
   11097 }
   11098 
   11099 static int __ATTRS_o_ai
   11100 vec_all_lt(vector bool char __a, vector unsigned char __b)
   11101 {
   11102   return __builtin_altivec_vcmpgtub_p(__CR6_LT, __b, (vector unsigned char)__a);
   11103 }
   11104 
   11105 static int __ATTRS_o_ai
   11106 vec_all_lt(vector bool char __a, vector bool char __b)
   11107 {
   11108   return __builtin_altivec_vcmpgtub_p(__CR6_LT,
   11109                                       (vector unsigned char)__b,
   11110                                       (vector unsigned char)__a);
   11111 }
   11112 
   11113 static int __ATTRS_o_ai
   11114 vec_all_lt(vector short __a, vector short __b)
   11115 {
   11116   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, __b, __a);
   11117 }
   11118 
   11119 static int __ATTRS_o_ai
   11120 vec_all_lt(vector short __a, vector bool short __b)
   11121 {
   11122   return __builtin_altivec_vcmpgtsh_p(__CR6_LT, (vector short)__b, __a);
   11123 }
   11124 
   11125 static int __ATTRS_o_ai
   11126 vec_all_lt(vector unsigned short __a, vector unsigned short __b)
   11127 {
   11128   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b, __a);
   11129 }
   11130 
   11131 static int __ATTRS_o_ai
   11132 vec_all_lt(vector unsigned short __a, vector bool short __b)
   11133 {
   11134   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)__b, __a);
   11135 }
   11136 
   11137 static int __ATTRS_o_ai
   11138 vec_all_lt(vector bool short __a, vector short __b)
   11139 {
   11140   return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
   11141                                       (vector unsigned short)__b,
   11142                                       (vector unsigned short)__a);
   11143 }
   11144 
   11145 static int __ATTRS_o_ai
   11146 vec_all_lt(vector bool short __a, vector unsigned short __b)
   11147 {
   11148   return __builtin_altivec_vcmpgtuh_p(__CR6_LT, __b, (vector unsigned short)__a);
   11149 }
   11150 
   11151 static int __ATTRS_o_ai
   11152 vec_all_lt(vector bool short __a, vector bool short __b)
   11153 {
   11154   return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
   11155                                       (vector unsigned short)__b,
   11156                                       (vector unsigned short)__a);
   11157 }
   11158 
   11159 static int __ATTRS_o_ai
   11160 vec_all_lt(vector int __a, vector int __b)
   11161 {
   11162   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, __b, __a);
   11163 }
   11164 
   11165 static int __ATTRS_o_ai
   11166 vec_all_lt(vector int __a, vector bool int __b)
   11167 {
   11168   return __builtin_altivec_vcmpgtsw_p(__CR6_LT, (vector int)__b, __a);
   11169 }
   11170 
   11171 static int __ATTRS_o_ai
   11172 vec_all_lt(vector unsigned int __a, vector unsigned int __b)
   11173 {
   11174   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, __a);
   11175 }
   11176 
   11177 static int __ATTRS_o_ai
   11178 vec_all_lt(vector unsigned int __a, vector bool int __b)
   11179 {
   11180   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)__b, __a);
   11181 }
   11182 
   11183 static int __ATTRS_o_ai
   11184 vec_all_lt(vector bool int __a, vector int __b)
   11185 {
   11186   return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
   11187                                       (vector unsigned int)__b,
   11188                                       (vector unsigned int)__a);
   11189 }
   11190 
   11191 static int __ATTRS_o_ai
   11192 vec_all_lt(vector bool int __a, vector unsigned int __b)
   11193 {
   11194   return __builtin_altivec_vcmpgtuw_p(__CR6_LT, __b, (vector unsigned int)__a);
   11195 }
   11196 
   11197 static int __ATTRS_o_ai
   11198 vec_all_lt(vector bool int __a, vector bool int __b)
   11199 {
   11200   return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
   11201                                       (vector unsigned int)__b,
   11202                                       (vector unsigned int)__a);
   11203 }
   11204 
   11205 static int __ATTRS_o_ai
   11206 vec_all_lt(vector float __a, vector float __b)
   11207 {
   11208   return __builtin_altivec_vcmpgtfp_p(__CR6_LT, __b, __a);
   11209 }
   11210 
   11211 /* vec_all_nan */
   11212 
   11213 static int __attribute__((__always_inline__))
   11214 vec_all_nan(vector float __a)
   11215 {
   11216   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __a);
   11217 }
   11218 
   11219 /* vec_all_ne */
   11220 
   11221 static int __ATTRS_o_ai
   11222 vec_all_ne(vector signed char __a, vector signed char __b)
   11223 {
   11224   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
   11225 }
   11226 
   11227 static int __ATTRS_o_ai
   11228 vec_all_ne(vector signed char __a, vector bool char __b)
   11229 {
   11230   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
   11231 }
   11232 
   11233 static int __ATTRS_o_ai
   11234 vec_all_ne(vector unsigned char __a, vector unsigned char __b)
   11235 {
   11236   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
   11237 }
   11238 
   11239 static int __ATTRS_o_ai
   11240 vec_all_ne(vector unsigned char __a, vector bool char __b)
   11241 {
   11242   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
   11243 }
   11244 
   11245 static int __ATTRS_o_ai
   11246 vec_all_ne(vector bool char __a, vector signed char __b)
   11247 {
   11248   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
   11249 }
   11250 
   11251 static int __ATTRS_o_ai
   11252 vec_all_ne(vector bool char __a, vector unsigned char __b)
   11253 {
   11254   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
   11255 }
   11256 
   11257 static int __ATTRS_o_ai
   11258 vec_all_ne(vector bool char __a, vector bool char __b)
   11259 {
   11260   return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)__a, (vector char)__b);
   11261 }
   11262 
   11263 static int __ATTRS_o_ai
   11264 vec_all_ne(vector short __a, vector short __b)
   11265 {
   11266   return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, __b);
   11267 }
   11268 
   11269 static int __ATTRS_o_ai
   11270 vec_all_ne(vector short __a, vector bool short __b)
   11271 {
   11272   return __builtin_altivec_vcmpequh_p(__CR6_EQ, __a, (vector short)__b);
   11273 }
   11274 
   11275 static int __ATTRS_o_ai
   11276 vec_all_ne(vector unsigned short __a, vector unsigned short __b)
   11277 {
   11278   return
   11279     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
   11280 }
   11281 
   11282 static int __ATTRS_o_ai
   11283 vec_all_ne(vector unsigned short __a, vector bool short __b)
   11284 {
   11285   return
   11286     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
   11287 }
   11288 
   11289 static int __ATTRS_o_ai
   11290 vec_all_ne(vector bool short __a, vector short __b)
   11291 {
   11292   return
   11293     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
   11294 }
   11295 
   11296 static int __ATTRS_o_ai
   11297 vec_all_ne(vector bool short __a, vector unsigned short __b)
   11298 {
   11299   return
   11300     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
   11301 }
   11302 
   11303 static int __ATTRS_o_ai
   11304 vec_all_ne(vector bool short __a, vector bool short __b)
   11305 {
   11306   return
   11307     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
   11308 }
   11309 
   11310 static int __ATTRS_o_ai
   11311 vec_all_ne(vector pixel __a, vector pixel __b)
   11312 {
   11313   return
   11314     __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)__a, (vector short)__b);
   11315 }
   11316 
   11317 static int __ATTRS_o_ai
   11318 vec_all_ne(vector int __a, vector int __b)
   11319 {
   11320   return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, __b);
   11321 }
   11322 
   11323 static int __ATTRS_o_ai
   11324 vec_all_ne(vector int __a, vector bool int __b)
   11325 {
   11326   return __builtin_altivec_vcmpequw_p(__CR6_EQ, __a, (vector int)__b);
   11327 }
   11328 
   11329 static int __ATTRS_o_ai
   11330 vec_all_ne(vector unsigned int __a, vector unsigned int __b)
   11331 {
   11332   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
   11333 }
   11334 
   11335 static int __ATTRS_o_ai
   11336 vec_all_ne(vector unsigned int __a, vector bool int __b)
   11337 {
   11338   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
   11339 }
   11340 
   11341 static int __ATTRS_o_ai
   11342 vec_all_ne(vector bool int __a, vector int __b)
   11343 {
   11344   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
   11345 }
   11346 
   11347 static int __ATTRS_o_ai
   11348 vec_all_ne(vector bool int __a, vector unsigned int __b)
   11349 {
   11350   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
   11351 }
   11352 
   11353 static int __ATTRS_o_ai
   11354 vec_all_ne(vector bool int __a, vector bool int __b)
   11355 {
   11356   return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)__a, (vector int)__b);
   11357 }
   11358 
   11359 static int __ATTRS_o_ai
   11360 vec_all_ne(vector float __a, vector float __b)
   11361 {
   11362   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, __a, __b);
   11363 }
   11364 
   11365 /* vec_all_nge */
   11366 
   11367 static int __attribute__((__always_inline__))
   11368 vec_all_nge(vector float __a, vector float __b)
   11369 {
   11370   return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __a, __b);
   11371 }
   11372 
   11373 /* vec_all_ngt */
   11374 
   11375 static int __attribute__((__always_inline__))
   11376 vec_all_ngt(vector float __a, vector float __b)
   11377 {
   11378   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __a, __b);
   11379 }
   11380 
   11381 /* vec_all_nle */
   11382 
   11383 static int __attribute__((__always_inline__))
   11384 vec_all_nle(vector float __a, vector float __b)
   11385 {
   11386   return __builtin_altivec_vcmpgefp_p(__CR6_EQ, __b, __a);
   11387 }
   11388 
   11389 /* vec_all_nlt */
   11390 
   11391 static int __attribute__((__always_inline__))
   11392 vec_all_nlt(vector float __a, vector float __b)
   11393 {
   11394   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, __b, __a);
   11395 }
   11396 
   11397 /* vec_all_numeric */
   11398 
   11399 static int __attribute__((__always_inline__))
   11400 vec_all_numeric(vector float __a)
   11401 {
   11402   return __builtin_altivec_vcmpeqfp_p(__CR6_LT, __a, __a);
   11403 }
   11404 
   11405 /* vec_any_eq */
   11406 
   11407 static int __ATTRS_o_ai
   11408 vec_any_eq(vector signed char __a, vector signed char __b)
   11409 {
   11410   return
   11411     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
   11412 }
   11413 
   11414 static int __ATTRS_o_ai
   11415 vec_any_eq(vector signed char __a, vector bool char __b)
   11416 {
   11417   return
   11418     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
   11419 }
   11420 
   11421 static int __ATTRS_o_ai
   11422 vec_any_eq(vector unsigned char __a, vector unsigned char __b)
   11423 {
   11424   return
   11425     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
   11426 }
   11427 
   11428 static int __ATTRS_o_ai
   11429 vec_any_eq(vector unsigned char __a, vector bool char __b)
   11430 {
   11431   return
   11432     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
   11433 }
   11434 
   11435 static int __ATTRS_o_ai
   11436 vec_any_eq(vector bool char __a, vector signed char __b)
   11437 {
   11438   return
   11439     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
   11440 }
   11441 
   11442 static int __ATTRS_o_ai
   11443 vec_any_eq(vector bool char __a, vector unsigned char __b)
   11444 {
   11445   return
   11446     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
   11447 }
   11448 
   11449 static int __ATTRS_o_ai
   11450 vec_any_eq(vector bool char __a, vector bool char __b)
   11451 {
   11452   return
   11453     __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)__a, (vector char)__b);
   11454 }
   11455 
   11456 static int __ATTRS_o_ai
   11457 vec_any_eq(vector short __a, vector short __b)
   11458 {
   11459   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, __b);
   11460 }
   11461 
   11462 static int __ATTRS_o_ai
   11463 vec_any_eq(vector short __a, vector bool short __b)
   11464 {
   11465   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, __a, (vector short)__b);
   11466 }
   11467 
   11468 static int __ATTRS_o_ai
   11469 vec_any_eq(vector unsigned short __a, vector unsigned short __b)
   11470 {
   11471   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
   11472                                       (vector short)__a,
   11473                                       (vector short)__b);
   11474 }
   11475 
   11476 static int __ATTRS_o_ai
   11477 vec_any_eq(vector unsigned short __a, vector bool short __b)
   11478 {
   11479   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
   11480                                       (vector short)__a,
   11481                                       (vector short)__b);
   11482 }
   11483 
   11484 static int __ATTRS_o_ai
   11485 vec_any_eq(vector bool short __a, vector short __b)
   11486 {
   11487   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
   11488                                       (vector short)__a,
   11489                                       (vector short)__b);
   11490 }
   11491 
   11492 static int __ATTRS_o_ai
   11493 vec_any_eq(vector bool short __a, vector unsigned short __b)
   11494 {
   11495   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
   11496                                       (vector short)__a,
   11497                                       (vector short)__b);
   11498 }
   11499 
   11500 static int __ATTRS_o_ai
   11501 vec_any_eq(vector bool short __a, vector bool short __b)
   11502 {
   11503   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
   11504                                       (vector short)__a,
   11505                                       (vector short)__b);
   11506 }
   11507 
   11508 static int __ATTRS_o_ai
   11509 vec_any_eq(vector pixel __a, vector pixel __b)
   11510 {
   11511   return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
   11512                                       (vector short)__a,
   11513                                       (vector short)__b);
   11514 }
   11515 
   11516 static int __ATTRS_o_ai
   11517 vec_any_eq(vector int __a, vector int __b)
   11518 {
   11519   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, __b);
   11520 }
   11521 
   11522 static int __ATTRS_o_ai
   11523 vec_any_eq(vector int __a, vector bool int __b)
   11524 {
   11525   return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, __a, (vector int)__b);
   11526 }
   11527 
   11528 static int __ATTRS_o_ai
   11529 vec_any_eq(vector unsigned int __a, vector unsigned int __b)
   11530 {
   11531   return
   11532     __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
   11533 }
   11534 
   11535 static int __ATTRS_o_ai
   11536 vec_any_eq(vector unsigned int __a, vector bool int __b)
   11537 {
   11538   return
   11539     __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
   11540 }
   11541 
   11542 static int __ATTRS_o_ai
   11543 vec_any_eq(vector bool int __a, vector int __b)
   11544 {
   11545   return
   11546     __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
   11547 }
   11548 
   11549 static int __ATTRS_o_ai
   11550 vec_any_eq(vector bool int __a, vector unsigned int __b)
   11551 {
   11552   return
   11553     __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
   11554 }
   11555 
   11556 static int __ATTRS_o_ai
   11557 vec_any_eq(vector bool int __a, vector bool int __b)
   11558 {
   11559   return
   11560     __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)__a, (vector int)__b);
   11561 }
   11562 
   11563 static int __ATTRS_o_ai
   11564 vec_any_eq(vector float __a, vector float __b)
   11565 {
   11566   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __b);
   11567 }
   11568 
   11569 /* vec_any_ge */
   11570 
   11571 static int __ATTRS_o_ai
   11572 vec_any_ge(vector signed char __a, vector signed char __b)
   11573 {
   11574   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __b, __a);
   11575 }
   11576 
   11577 static int __ATTRS_o_ai
   11578 vec_any_ge(vector signed char __a, vector bool char __b)
   11579 {
   11580   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, (vector signed char)__b, __a);
   11581 }
   11582 
   11583 static int __ATTRS_o_ai
   11584 vec_any_ge(vector unsigned char __a, vector unsigned char __b)
   11585 {
   11586   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b, __a);
   11587 }
   11588 
   11589 static int __ATTRS_o_ai
   11590 vec_any_ge(vector unsigned char __a, vector bool char __b)
   11591 {
   11592   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__b, __a);
   11593 }
   11594 
   11595 static int __ATTRS_o_ai
   11596 vec_any_ge(vector bool char __a, vector signed char __b)
   11597 {
   11598   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
   11599                                       (vector unsigned char)__b,
   11600                                       (vector unsigned char)__a);
   11601 }
   11602 
   11603 static int __ATTRS_o_ai
   11604 vec_any_ge(vector bool char __a, vector unsigned char __b)
   11605 {
   11606   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __b, (vector unsigned char)__a);
   11607 }
   11608 
   11609 static int __ATTRS_o_ai
   11610 vec_any_ge(vector bool char __a, vector bool char __b)
   11611 {
   11612   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
   11613                                       (vector unsigned char)__b,
   11614                                       (vector unsigned char)__a);
   11615 }
   11616 
   11617 static int __ATTRS_o_ai
   11618 vec_any_ge(vector short __a, vector short __b)
   11619 {
   11620   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __b, __a);
   11621 }
   11622 
   11623 static int __ATTRS_o_ai
   11624 vec_any_ge(vector short __a, vector bool short __b)
   11625 {
   11626   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, (vector short)__b, __a);
   11627 }
   11628 
   11629 static int __ATTRS_o_ai
   11630 vec_any_ge(vector unsigned short __a, vector unsigned short __b)
   11631 {
   11632   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b, __a);
   11633 }
   11634 
   11635 static int __ATTRS_o_ai
   11636 vec_any_ge(vector unsigned short __a, vector bool short __b)
   11637 {
   11638   return
   11639     __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__b, __a);
   11640 }
   11641 
   11642 static int __ATTRS_o_ai
   11643 vec_any_ge(vector bool short __a, vector short __b)
   11644 {
   11645   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
   11646                                       (vector unsigned short)__b,
   11647                                       (vector unsigned short)__a);
   11648 }
   11649 
   11650 static int __ATTRS_o_ai
   11651 vec_any_ge(vector bool short __a, vector unsigned short __b)
   11652 {
   11653   return
   11654     __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __b, (vector unsigned short)__a);
   11655 }
   11656 
   11657 static int __ATTRS_o_ai
   11658 vec_any_ge(vector bool short __a, vector bool short __b)
   11659 {
   11660   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
   11661                                       (vector unsigned short)__b,
   11662                                       (vector unsigned short)__a);
   11663 }
   11664 
   11665 static int __ATTRS_o_ai
   11666 vec_any_ge(vector int __a, vector int __b)
   11667 {
   11668   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __b, __a);
   11669 }
   11670 
   11671 static int __ATTRS_o_ai
   11672 vec_any_ge(vector int __a, vector bool int __b)
   11673 {
   11674   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, (vector int)__b, __a);
   11675 }
   11676 
   11677 static int __ATTRS_o_ai
   11678 vec_any_ge(vector unsigned int __a, vector unsigned int __b)
   11679 {
   11680   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b, __a);
   11681 }
   11682 
   11683 static int __ATTRS_o_ai
   11684 vec_any_ge(vector unsigned int __a, vector bool int __b)
   11685 {
   11686   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__b, __a);
   11687 }
   11688 
   11689 static int __ATTRS_o_ai
   11690 vec_any_ge(vector bool int __a, vector int __b)
   11691 {
   11692   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
   11693                                       (vector unsigned int)__b,
   11694                                       (vector unsigned int)__a);
   11695 }
   11696 
   11697 static int __ATTRS_o_ai
   11698 vec_any_ge(vector bool int __a, vector unsigned int __b)
   11699 {
   11700   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __b, (vector unsigned int)__a);
   11701 }
   11702 
   11703 static int __ATTRS_o_ai
   11704 vec_any_ge(vector bool int __a, vector bool int __b)
   11705 {
   11706   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
   11707                                       (vector unsigned int)__b,
   11708                                       (vector unsigned int)__a);
   11709 }
   11710 
   11711 static int __ATTRS_o_ai
   11712 vec_any_ge(vector float __a, vector float __b)
   11713 {
   11714   return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __a, __b);
   11715 }
   11716 
   11717 /* vec_any_gt */
   11718 
   11719 static int __ATTRS_o_ai
   11720 vec_any_gt(vector signed char __a, vector signed char __b)
   11721 {
   11722   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a, __b);
   11723 }
   11724 
   11725 static int __ATTRS_o_ai
   11726 vec_any_gt(vector signed char __a, vector bool char __b)
   11727 {
   11728   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __a, (vector signed char)__b);
   11729 }
   11730 
   11731 static int __ATTRS_o_ai
   11732 vec_any_gt(vector unsigned char __a, vector unsigned char __b)
   11733 {
   11734   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a, __b);
   11735 }
   11736 
   11737 static int __ATTRS_o_ai
   11738 vec_any_gt(vector unsigned char __a, vector bool char __b)
   11739 {
   11740   return
   11741     __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __a, (vector unsigned char)__b);
   11742 }
   11743 
   11744 static int __ATTRS_o_ai
   11745 vec_any_gt(vector bool char __a, vector signed char __b)
   11746 {
   11747   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
   11748                                       (vector unsigned char)__a,
   11749                                       (vector unsigned char)__b);
   11750 }
   11751 
   11752 static int __ATTRS_o_ai
   11753 vec_any_gt(vector bool char __a, vector unsigned char __b)
   11754 {
   11755   return
   11756     __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__a, __b);
   11757 }
   11758 
   11759 static int __ATTRS_o_ai
   11760 vec_any_gt(vector bool char __a, vector bool char __b)
   11761 {
   11762   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
   11763                                       (vector unsigned char)__a,
   11764                                       (vector unsigned char)__b);
   11765 }
   11766 
   11767 static int __ATTRS_o_ai
   11768 vec_any_gt(vector short __a, vector short __b)
   11769 {
   11770   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, __b);
   11771 }
   11772 
   11773 static int __ATTRS_o_ai
   11774 vec_any_gt(vector short __a, vector bool short __b)
   11775 {
   11776   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __a, (vector short)__b);
   11777 }
   11778 
   11779 static int __ATTRS_o_ai
   11780 vec_any_gt(vector unsigned short __a, vector unsigned short __b)
   11781 {
   11782   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a, __b);
   11783 }
   11784 
   11785 static int __ATTRS_o_ai
   11786 vec_any_gt(vector unsigned short __a, vector bool short __b)
   11787 {
   11788   return
   11789     __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __a, (vector unsigned short)__b);
   11790 }
   11791 
   11792 static int __ATTRS_o_ai
   11793 vec_any_gt(vector bool short __a, vector short __b)
   11794 {
   11795   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
   11796                                       (vector unsigned short)__a,
   11797                                       (vector unsigned short)__b);
   11798 }
   11799 
   11800 static int __ATTRS_o_ai
   11801 vec_any_gt(vector bool short __a, vector unsigned short __b)
   11802 {
   11803   return
   11804     __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__a, __b);
   11805 }
   11806 
   11807 static int __ATTRS_o_ai
   11808 vec_any_gt(vector bool short __a, vector bool short __b)
   11809 {
   11810   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
   11811                                       (vector unsigned short)__a,
   11812                                       (vector unsigned short)__b);
   11813 }
   11814 
   11815 static int __ATTRS_o_ai
   11816 vec_any_gt(vector int __a, vector int __b)
   11817 {
   11818   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, __b);
   11819 }
   11820 
   11821 static int __ATTRS_o_ai
   11822 vec_any_gt(vector int __a, vector bool int __b)
   11823 {
   11824   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __a, (vector int)__b);
   11825 }
   11826 
   11827 static int __ATTRS_o_ai
   11828 vec_any_gt(vector unsigned int __a, vector unsigned int __b)
   11829 {
   11830   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a, __b);
   11831 }
   11832 
   11833 static int __ATTRS_o_ai
   11834 vec_any_gt(vector unsigned int __a, vector bool int __b)
   11835 {
   11836   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __a, (vector unsigned int)__b);
   11837 }
   11838 
   11839 static int __ATTRS_o_ai
   11840 vec_any_gt(vector bool int __a, vector int __b)
   11841 {
   11842   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
   11843                                       (vector unsigned int)__a,
   11844                                       (vector unsigned int)__b);
   11845 }
   11846 
   11847 static int __ATTRS_o_ai
   11848 vec_any_gt(vector bool int __a, vector unsigned int __b)
   11849 {
   11850   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__a, __b);
   11851 }
   11852 
   11853 static int __ATTRS_o_ai
   11854 vec_any_gt(vector bool int __a, vector bool int __b)
   11855 {
   11856   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
   11857                                       (vector unsigned int)__a,
   11858                                       (vector unsigned int)__b);
   11859 }
   11860 
   11861 static int __ATTRS_o_ai
   11862 vec_any_gt(vector float __a, vector float __b)
   11863 {
   11864   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __a, __b);
   11865 }
   11866 
   11867 /* vec_any_le */
   11868 
   11869 static int __ATTRS_o_ai
   11870 vec_any_le(vector signed char __a, vector signed char __b)
   11871 {
   11872   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a, __b);
   11873 }
   11874 
   11875 static int __ATTRS_o_ai
   11876 vec_any_le(vector signed char __a, vector bool char __b)
   11877 {
   11878   return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, __a, (vector signed char)__b);
   11879 }
   11880 
   11881 static int __ATTRS_o_ai
   11882 vec_any_le(vector unsigned char __a, vector unsigned char __b)
   11883 {
   11884   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a, __b);
   11885 }
   11886 
   11887 static int __ATTRS_o_ai
   11888 vec_any_le(vector unsigned char __a, vector bool char __b)
   11889 {
   11890   return
   11891     __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, __a, (vector unsigned char)__b);
   11892 }
   11893 
   11894 static int __ATTRS_o_ai
   11895 vec_any_le(vector bool char __a, vector signed char __b)
   11896 {
   11897   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
   11898                                       (vector unsigned char)__a,
   11899                                       (vector unsigned char)__b);
   11900 }
   11901 
   11902 static int __ATTRS_o_ai
   11903 vec_any_le(vector bool char __a, vector unsigned char __b)
   11904 {
   11905   return
   11906     __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)__a, __b);
   11907 }
   11908 
   11909 static int __ATTRS_o_ai
   11910 vec_any_le(vector bool char __a, vector bool char __b)
   11911 {
   11912   return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
   11913                                       (vector unsigned char)__a,
   11914                                       (vector unsigned char)__b);
   11915 }
   11916 
   11917 static int __ATTRS_o_ai
   11918 vec_any_le(vector short __a, vector short __b)
   11919 {
   11920   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, __b);
   11921 }
   11922 
   11923 static int __ATTRS_o_ai
   11924 vec_any_le(vector short __a, vector bool short __b)
   11925 {
   11926   return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, __a, (vector short)__b);
   11927 }
   11928 
   11929 static int __ATTRS_o_ai
   11930 vec_any_le(vector unsigned short __a, vector unsigned short __b)
   11931 {
   11932   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a, __b);
   11933 }
   11934 
   11935 static int __ATTRS_o_ai
   11936 vec_any_le(vector unsigned short __a, vector bool short __b)
   11937 {
   11938   return
   11939     __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, __a, (vector unsigned short)__b);
   11940 }
   11941 
   11942 static int __ATTRS_o_ai
   11943 vec_any_le(vector bool short __a, vector short __b)
   11944 {
   11945   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
   11946                                       (vector unsigned short)__a,
   11947                                       (vector unsigned short)__b);
   11948 }
   11949 
   11950 static int __ATTRS_o_ai
   11951 vec_any_le(vector bool short __a, vector unsigned short __b)
   11952 {
   11953   return
   11954     __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)__a, __b);
   11955 }
   11956 
   11957 static int __ATTRS_o_ai
   11958 vec_any_le(vector bool short __a, vector bool short __b)
   11959 {
   11960   return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
   11961                                       (vector unsigned short)__a,
   11962                                       (vector unsigned short)__b);
   11963 }
   11964 
   11965 static int __ATTRS_o_ai
   11966 vec_any_le(vector int __a, vector int __b)
   11967 {
   11968   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, __b);
   11969 }
   11970 
   11971 static int __ATTRS_o_ai
   11972 vec_any_le(vector int __a, vector bool int __b)
   11973 {
   11974   return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, __a, (vector int)__b);
   11975 }
   11976 
   11977 static int __ATTRS_o_ai
   11978 vec_any_le(vector unsigned int __a, vector unsigned int __b)
   11979 {
   11980   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a, __b);
   11981 }
   11982 
   11983 static int __ATTRS_o_ai
   11984 vec_any_le(vector unsigned int __a, vector bool int __b)
   11985 {
   11986   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, __a, (vector unsigned int)__b);
   11987 }
   11988 
   11989 static int __ATTRS_o_ai
   11990 vec_any_le(vector bool int __a, vector int __b)
   11991 {
   11992   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
   11993                                       (vector unsigned int)__a,
   11994                                       (vector unsigned int)__b);
   11995 }
   11996 
   11997 static int __ATTRS_o_ai
   11998 vec_any_le(vector bool int __a, vector unsigned int __b)
   11999 {
   12000   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)__a, __b);
   12001 }
   12002 
   12003 static int __ATTRS_o_ai
   12004 vec_any_le(vector bool int __a, vector bool int __b)
   12005 {
   12006   return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
   12007                                       (vector unsigned int)__a,
   12008                                       (vector unsigned int)__b);
   12009 }
   12010 
   12011 static int __ATTRS_o_ai
   12012 vec_any_le(vector float __a, vector float __b)
   12013 {
   12014   return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, __b, __a);
   12015 }
   12016 
   12017 /* vec_any_lt */
   12018 
   12019 static int __ATTRS_o_ai
   12020 vec_any_lt(vector signed char __a, vector signed char __b)
   12021 {
   12022   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, __b, __a);
   12023 }
   12024 
   12025 static int __ATTRS_o_ai
   12026 vec_any_lt(vector signed char __a, vector bool char __b)
   12027 {
   12028   return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, (vector signed char)__b, __a);
   12029 }
   12030 
   12031 static int __ATTRS_o_ai
   12032 vec_any_lt(vector unsigned char __a, vector unsigned char __b)
   12033 {
   12034   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b, __a);
   12035 }
   12036 
   12037 static int __ATTRS_o_ai
   12038 vec_any_lt(vector unsigned char __a, vector bool char __b)
   12039 {
   12040   return
   12041     __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)__b, __a);
   12042 }
   12043 
   12044 static int __ATTRS_o_ai
   12045 vec_any_lt(vector bool char __a, vector signed char __b)
   12046 {
   12047   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
   12048                                       (vector unsigned char)__b,
   12049                                       (vector unsigned char)__a);
   12050 }
   12051 
   12052 static int __ATTRS_o_ai
   12053 vec_any_lt(vector bool char __a, vector unsigned char __b)
   12054 {
   12055   return
   12056     __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, __b, (vector unsigned char)__a);
   12057 }
   12058 
   12059 static int __ATTRS_o_ai
   12060 vec_any_lt(vector bool char __a, vector bool char __b)
   12061 {
   12062   return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
   12063                                       (vector unsigned char)__b,
   12064                                       (vector unsigned char)__a);
   12065 }
   12066 
   12067 static int __ATTRS_o_ai
   12068 vec_any_lt(vector short __a, vector short __b)
   12069 {
   12070   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, __b, __a);
   12071 }
   12072 
   12073 static int __ATTRS_o_ai
   12074 vec_any_lt(vector short __a, vector bool short __b)
   12075 {
   12076   return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, (vector short)__b, __a);
   12077 }
   12078 
   12079 static int __ATTRS_o_ai
   12080 vec_any_lt(vector unsigned short __a, vector unsigned short __b)
   12081 {
   12082   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b, __a);
   12083 }
   12084 
   12085 static int __ATTRS_o_ai
   12086 vec_any_lt(vector unsigned short __a, vector bool short __b)
   12087 {
   12088   return
   12089     __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)__b, __a);
   12090 }
   12091 
   12092 static int __ATTRS_o_ai
   12093 vec_any_lt(vector bool short __a, vector short __b)
   12094 {
   12095   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
   12096                                       (vector unsigned short)__b,
   12097                                       (vector unsigned short)__a);
   12098 }
   12099 
   12100 static int __ATTRS_o_ai
   12101 vec_any_lt(vector bool short __a, vector unsigned short __b)
   12102 {
   12103   return
   12104     __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, __b, (vector unsigned short)__a);
   12105 }
   12106 
   12107 static int __ATTRS_o_ai
   12108 vec_any_lt(vector bool short __a, vector bool short __b)
   12109 {
   12110   return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
   12111                                       (vector unsigned short)__b,
   12112                                       (vector unsigned short)__a);
   12113 }
   12114 
   12115 static int __ATTRS_o_ai
   12116 vec_any_lt(vector int __a, vector int __b)
   12117 {
   12118   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, __b, __a);
   12119 }
   12120 
   12121 static int __ATTRS_o_ai
   12122 vec_any_lt(vector int __a, vector bool int __b)
   12123 {
   12124   return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, (vector int)__b, __a);
   12125 }
   12126 
   12127 static int __ATTRS_o_ai
   12128 vec_any_lt(vector unsigned int __a, vector unsigned int __b)
   12129 {
   12130   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b, __a);
   12131 }
   12132 
   12133 static int __ATTRS_o_ai
   12134 vec_any_lt(vector unsigned int __a, vector bool int __b)
   12135 {
   12136   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)__b, __a);
   12137 }
   12138 
   12139 static int __ATTRS_o_ai
   12140 vec_any_lt(vector bool int __a, vector int __b)
   12141 {
   12142   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
   12143                                       (vector unsigned int)__b,
   12144                                       (vector unsigned int)__a);
   12145 }
   12146 
   12147 static int __ATTRS_o_ai
   12148 vec_any_lt(vector bool int __a, vector unsigned int __b)
   12149 {
   12150   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, __b, (vector unsigned int)__a);
   12151 }
   12152 
   12153 static int __ATTRS_o_ai
   12154 vec_any_lt(vector bool int __a, vector bool int __b)
   12155 {
   12156   return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
   12157                                       (vector unsigned int)__b,
   12158                                       (vector unsigned int)__a);
   12159 }
   12160 
   12161 static int __ATTRS_o_ai
   12162 vec_any_lt(vector float __a, vector float __b)
   12163 {
   12164   return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, __b, __a);
   12165 }
   12166 
   12167 /* vec_any_nan */
   12168 
   12169 static int __attribute__((__always_inline__))
   12170 vec_any_nan(vector float __a)
   12171 {
   12172   return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __a);
   12173 }
   12174 
   12175 /* vec_any_ne */
   12176 
   12177 static int __ATTRS_o_ai
   12178 vec_any_ne(vector signed char __a, vector signed char __b)
   12179 {
   12180   return
   12181     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
   12182 }
   12183 
   12184 static int __ATTRS_o_ai
   12185 vec_any_ne(vector signed char __a, vector bool char __b)
   12186 {
   12187   return
   12188     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
   12189 }
   12190 
   12191 static int __ATTRS_o_ai
   12192 vec_any_ne(vector unsigned char __a, vector unsigned char __b)
   12193 {
   12194   return
   12195     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
   12196 }
   12197 
   12198 static int __ATTRS_o_ai
   12199 vec_any_ne(vector unsigned char __a, vector bool char __b)
   12200 {
   12201   return
   12202     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
   12203 }
   12204 
   12205 static int __ATTRS_o_ai
   12206 vec_any_ne(vector bool char __a, vector signed char __b)
   12207 {
   12208   return
   12209     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
   12210 }
   12211 
   12212 static int __ATTRS_o_ai
   12213 vec_any_ne(vector bool char __a, vector unsigned char __b)
   12214 {
   12215   return
   12216     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
   12217 }
   12218 
   12219 static int __ATTRS_o_ai
   12220 vec_any_ne(vector bool char __a, vector bool char __b)
   12221 {
   12222   return
   12223     __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)__a, (vector char)__b);
   12224 }
   12225 
   12226 static int __ATTRS_o_ai
   12227 vec_any_ne(vector short __a, vector short __b)
   12228 {
   12229   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, __b);
   12230 }
   12231 
   12232 static int __ATTRS_o_ai
   12233 vec_any_ne(vector short __a, vector bool short __b)
   12234 {
   12235   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, __a, (vector short)__b);
   12236 }
   12237 
   12238 static int __ATTRS_o_ai
   12239 vec_any_ne(vector unsigned short __a, vector unsigned short __b)
   12240 {
   12241   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
   12242                                       (vector short)__a,
   12243                                       (vector short)__b);
   12244 }
   12245 
   12246 static int __ATTRS_o_ai
   12247 vec_any_ne(vector unsigned short __a, vector bool short __b)
   12248 {
   12249   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
   12250                                       (vector short)__a,
   12251                                       (vector short)__b);
   12252 }
   12253 
   12254 static int __ATTRS_o_ai
   12255 vec_any_ne(vector bool short __a, vector short __b)
   12256 {
   12257   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
   12258                                       (vector short)__a,
   12259                                       (vector short)__b);
   12260 }
   12261 
   12262 static int __ATTRS_o_ai
   12263 vec_any_ne(vector bool short __a, vector unsigned short __b)
   12264 {
   12265   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
   12266                                       (vector short)__a,
   12267                                       (vector short)__b);
   12268 }
   12269 
   12270 static int __ATTRS_o_ai
   12271 vec_any_ne(vector bool short __a, vector bool short __b)
   12272 {
   12273   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
   12274                                       (vector short)__a,
   12275                                       (vector short)__b);
   12276 }
   12277 
   12278 static int __ATTRS_o_ai
   12279 vec_any_ne(vector pixel __a, vector pixel __b)
   12280 {
   12281   return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
   12282                                       (vector short)__a,
   12283                                       (vector short)__b);
   12284 }
   12285 
   12286 static int __ATTRS_o_ai
   12287 vec_any_ne(vector int __a, vector int __b)
   12288 {
   12289   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, __b);
   12290 }
   12291 
   12292 static int __ATTRS_o_ai
   12293 vec_any_ne(vector int __a, vector bool int __b)
   12294 {
   12295   return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, __a, (vector int)__b);
   12296 }
   12297 
   12298 static int __ATTRS_o_ai
   12299 vec_any_ne(vector unsigned int __a, vector unsigned int __b)
   12300 {
   12301   return
   12302     __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
   12303 }
   12304 
   12305 static int __ATTRS_o_ai
   12306 vec_any_ne(vector unsigned int __a, vector bool int __b)
   12307 {
   12308   return
   12309     __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
   12310 }
   12311 
   12312 static int __ATTRS_o_ai
   12313 vec_any_ne(vector bool int __a, vector int __b)
   12314 {
   12315   return
   12316     __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
   12317 }
   12318 
   12319 static int __ATTRS_o_ai
   12320 vec_any_ne(vector bool int __a, vector unsigned int __b)
   12321 {
   12322   return
   12323     __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
   12324 }
   12325 
   12326 static int __ATTRS_o_ai
   12327 vec_any_ne(vector bool int __a, vector bool int __b)
   12328 {
   12329   return
   12330     __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)__a, (vector int)__b);
   12331 }
   12332 
   12333 static int __ATTRS_o_ai
   12334 vec_any_ne(vector float __a, vector float __b)
   12335 {
   12336   return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, __a, __b);
   12337 }
   12338 
   12339 /* vec_any_nge */
   12340 
   12341 static int __attribute__((__always_inline__))
   12342 vec_any_nge(vector float __a, vector float __b)
   12343 {
   12344   return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __a, __b);
   12345 }
   12346 
   12347 /* vec_any_ngt */
   12348 
   12349 static int __attribute__((__always_inline__))
   12350 vec_any_ngt(vector float __a, vector float __b)
   12351 {
   12352   return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __a, __b);
   12353 }
   12354 
   12355 /* vec_any_nle */
   12356 
   12357 static int __attribute__((__always_inline__))
   12358 vec_any_nle(vector float __a, vector float __b)
   12359 {
   12360   return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, __b, __a);
   12361 }
   12362 
   12363 /* vec_any_nlt */
   12364 
   12365 static int __attribute__((__always_inline__))
   12366 vec_any_nlt(vector float __a, vector float __b)
   12367 {
   12368   return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, __b, __a);
   12369 }
   12370 
   12371 /* vec_any_numeric */
   12372 
   12373 static int __attribute__((__always_inline__))
   12374 vec_any_numeric(vector float __a)
   12375 {
   12376   return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, __a, __a);
   12377 }
   12378 
   12379 /* vec_any_out */
   12380 
   12381 static int __attribute__((__always_inline__))
   12382 vec_any_out(vector float __a, vector float __b)
   12383 {
   12384   return __builtin_altivec_vcmpbfp_p(__CR6_EQ_REV, __a, __b);
   12385 }
   12386 
   12387 #undef __ATTRS_o_ai
   12388 
   12389 #endif /* __ALTIVEC_H */
   12390