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