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