altivec.h revision 146895
1/* PowerPC AltiVec include file. 2 Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. 3 Contributed by Aldy Hernandez (aldyh@redhat.com). 4 5 This file is part of GCC. 6 7 GCC is free software; you can redistribute it and/or modify it 8 under the terms of the GNU General Public License as published 9 by the Free Software Foundation; either version 2, or (at your 10 option) any later version. 11 12 GCC is distributed in the hope that it will be useful, but WITHOUT 13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15 License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with GCC; see the file COPYING. If not, write to the 19 Free Software Foundation, 59 Temple Place - Suite 330, Boston, 20 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#if !defined(__VEC__) || !defined(__ALTIVEC__) 36#error Use the "-maltivec" flag to enable PowerPC AltiVec support 37#endif 38 39/* If __APPLE_ALTIVEC__ is defined, the compiler supports 'vector', 40 'pixel' and 'bool' as context-sensitive AltiVec keywords (in 41 non-AltiVec contexts, they revert to their original meanings, 42 if any), so we do not need to define them as macros. */ 43 44#if !defined(__APPLE_ALTIVEC__) 45/* You are allowed to undef these for C++ compatibility. */ 46#define vector __vector 47#define pixel __pixel 48#define bool __bool 49#endif 50 51/* Condition register codes for AltiVec predicates. */ 52 53#define __CR6_EQ 0 54#define __CR6_EQ_REV 1 55#define __CR6_LT 2 56#define __CR6_LT_REV 3 57 58/* These are easy... Same exact arguments. */ 59 60#define vec_vaddcuw vec_addc 61#define vec_vand vec_and 62#define vec_vandc vec_andc 63#define vec_vrfip vec_ceil 64#define vec_vcmpbfp vec_cmpb 65#define vec_vcmpgefp vec_cmpge 66#define vec_vctsxs vec_cts 67#define vec_vctuxs vec_ctu 68#define vec_vexptefp vec_expte 69#define vec_vrfim vec_floor 70#define vec_lvx vec_ld 71#define vec_lvxl vec_ldl 72#define vec_vlogefp vec_loge 73#define vec_vmaddfp vec_madd 74#define vec_vmhaddshs vec_madds 75#define vec_vmladduhm vec_mladd 76#define vec_vmhraddshs vec_mradds 77#define vec_vnmsubfp vec_nmsub 78#define vec_vnor vec_nor 79#define vec_vor vec_or 80#define vec_vpkpx vec_packpx 81#define vec_vperm vec_perm 82#define vec_vrefp vec_re 83#define vec_vrfin vec_round 84#define vec_vrsqrtefp vec_rsqrte 85#define vec_vsel vec_sel 86#define vec_vsldoi vec_sld 87#define vec_vsl vec_sll 88#define vec_vslo vec_slo 89#define vec_vspltisb vec_splat_s8 90#define vec_vspltish vec_splat_s16 91#define vec_vspltisw vec_splat_s32 92#define vec_vsr vec_srl 93#define vec_vsro vec_sro 94#define vec_stvx vec_st 95#define vec_stvxl vec_stl 96#define vec_vsubcuw vec_subc 97#define vec_vsum2sws vec_sum2s 98#define vec_vsumsws vec_sums 99#define vec_vrfiz vec_trunc 100#define vec_vxor vec_xor 101 102#ifdef __cplusplus 103 104extern "C++" { 105 106/* Prototypes for builtins that take literals and must always be 107 inlined. */ 108inline __vector float vec_ctf (__vector unsigned int, const int) __attribute__ ((always_inline)); 109inline __vector float vec_ctf (__vector signed int, const int) __attribute__ ((always_inline)); 110inline __vector float vec_vcfsx (__vector signed int a1, const int a2) __attribute__ ((always_inline)); 111inline __vector float vec_vcfux (__vector unsigned int a1, const int a2) __attribute__ ((always_inline)); 112inline __vector signed int vec_cts (__vector float, const int) __attribute__ ((always_inline)); 113inline __vector unsigned int vec_ctu (__vector float, const int) __attribute__ ((always_inline)); 114inline void vec_dss (const int) __attribute__ ((always_inline)); 115 116inline void vec_dst (const __vector unsigned char *, int, const int) __attribute__ ((always_inline)); 117inline void vec_dst (const __vector signed char *, int, const int) __attribute__ ((always_inline)); 118inline void vec_dst (const __vector __bool char *, int, const int) __attribute__ ((always_inline)); 119inline void vec_dst (const __vector unsigned short *, int, const int) __attribute__ ((always_inline)); 120inline void vec_dst (const __vector signed short *, int, const int) __attribute__ ((always_inline)); 121inline void vec_dst (const __vector __bool short *, int, const int) __attribute__ ((always_inline)); 122inline void vec_dst (const __vector __pixel *, int, const int) __attribute__ ((always_inline)); 123inline void vec_dst (const __vector unsigned int *, int, const int) __attribute__ ((always_inline)); 124inline void vec_dst (const __vector signed int *, int, const int) __attribute__ ((always_inline)); 125inline void vec_dst (const __vector __bool int *, int, const int) __attribute__ ((always_inline)); 126inline void vec_dst (const __vector float *, int, const int) __attribute__ ((always_inline)); 127inline void vec_dst (const unsigned char *, int, const int) __attribute__ ((always_inline)); 128inline void vec_dst (const signed char *, int, const int) __attribute__ ((always_inline)); 129inline void vec_dst (const unsigned short *, int, const int) __attribute__ ((always_inline)); 130inline void vec_dst (const short *, int, const int) __attribute__ ((always_inline)); 131inline void vec_dst (const unsigned int *, int, const int) __attribute__ ((always_inline)); 132inline void vec_dst (const int *, int, const int) __attribute__ ((always_inline)); 133inline void vec_dst (const unsigned long *, int, const int) __attribute__ ((always_inline)); 134inline void vec_dst (const long *, int, const int) __attribute__ ((always_inline)); 135inline void vec_dst (const float *, int, const int) __attribute__ ((always_inline)); 136 137inline void vec_dstst (const __vector unsigned char *, int, const int) __attribute__ ((always_inline)); 138inline void vec_dstst (const __vector signed char *, int, const int) __attribute__ ((always_inline)); 139inline void vec_dstst (const __vector __bool char *, int, const int) __attribute__ ((always_inline)); 140inline void vec_dstst (const __vector unsigned short *, int, const int) __attribute__ ((always_inline)); 141inline void vec_dstst (const __vector signed short *, int, const int) __attribute__ ((always_inline)); 142inline void vec_dstst (const __vector __bool short *, int, const int) __attribute__ ((always_inline)); 143inline void vec_dstst (const __vector __pixel *, int, const int) __attribute__ ((always_inline)); 144inline void vec_dstst (const __vector unsigned int *, int, const int) __attribute__ ((always_inline)); 145inline void vec_dstst (const __vector signed int *, int, const int) __attribute__ ((always_inline)); 146inline void vec_dstst (const __vector __bool int *, int, const int) __attribute__ ((always_inline)); 147inline void vec_dstst (const __vector float *, int, const int) __attribute__ ((always_inline)); 148inline void vec_dstst (const unsigned char *, int, const int) __attribute__ ((always_inline)); 149inline void vec_dstst (const signed char *, int, const int) __attribute__ ((always_inline)); 150inline void vec_dstst (const unsigned short *, int, const int) __attribute__ ((always_inline)); 151inline void vec_dstst (const short *, int, const int) __attribute__ ((always_inline)); 152inline void vec_dstst (const unsigned int *, int, const int) __attribute__ ((always_inline)); 153inline void vec_dstst (const int *, int, const int) __attribute__ ((always_inline)); 154inline void vec_dstst (const unsigned long *, int, const int) __attribute__ ((always_inline)); 155inline void vec_dstst (const long *, int, const int) __attribute__ ((always_inline)); 156inline void vec_dstst (const float *, int, const int) __attribute__ ((always_inline)); 157 158inline void vec_dststt (const __vector unsigned char *, int, const int) __attribute__ ((always_inline)); 159inline void vec_dststt (const __vector signed char *, int, const int) __attribute__ ((always_inline)); 160inline void vec_dststt (const __vector __bool char *, int, const int) __attribute__ ((always_inline)); 161inline void vec_dststt (const __vector unsigned short *, int, const int) __attribute__ ((always_inline)); 162inline void vec_dststt (const __vector signed short *, int, const int) __attribute__ ((always_inline)); 163inline void vec_dststt (const __vector __bool short *, int, const int) __attribute__ ((always_inline)); 164inline void vec_dststt (const __vector __pixel *, int, const int) __attribute__ ((always_inline)); 165inline void vec_dststt (const __vector unsigned int *, int, const int) __attribute__ ((always_inline)); 166inline void vec_dststt (const __vector signed int *, int, const int) __attribute__ ((always_inline)); 167inline void vec_dststt (const __vector __bool int *, int, const int) __attribute__ ((always_inline)); 168inline void vec_dststt (const __vector float *, int, const int) __attribute__ ((always_inline)); 169inline void vec_dststt (const unsigned char *, int, const int) __attribute__ ((always_inline)); 170inline void vec_dststt (const signed char *, int, const int) __attribute__ ((always_inline)); 171inline void vec_dststt (const unsigned short *, int, const int) __attribute__ ((always_inline)); 172inline void vec_dststt (const short *, int, const int) __attribute__ ((always_inline)); 173inline void vec_dststt (const unsigned int *, int, const int) __attribute__ ((always_inline)); 174inline void vec_dststt (const int *, int, const int) __attribute__ ((always_inline)); 175inline void vec_dststt (const unsigned long *, int, const int) __attribute__ ((always_inline)); 176inline void vec_dststt (const long *, int, const int) __attribute__ ((always_inline)); 177inline void vec_dststt (const float *, int, const int) __attribute__ ((always_inline)); 178 179inline void vec_dstt (const __vector unsigned char *, int, const int) __attribute__ ((always_inline)); 180inline void vec_dstt (const __vector signed char *, int, const int) __attribute__ ((always_inline)); 181inline void vec_dstt (const __vector __bool char *, int, const int) __attribute__ ((always_inline)); 182inline void vec_dstt (const __vector unsigned short *, int, const int) __attribute__ ((always_inline)); 183inline void vec_dstt (const __vector signed short *, int, const int) __attribute__ ((always_inline)); 184inline void vec_dstt (const __vector __bool short *, int, const int) __attribute__ ((always_inline)); 185inline void vec_dstt (const __vector __pixel *, int, const int) __attribute__ ((always_inline)); 186inline void vec_dstt (const __vector unsigned int *, int, const int) __attribute__ ((always_inline)); 187inline void vec_dstt (const __vector signed int *, int, const int) __attribute__ ((always_inline)); 188inline void vec_dstt (const __vector __bool int *, int, const int) __attribute__ ((always_inline)); 189inline void vec_dstt (const __vector float *, int, const int) __attribute__ ((always_inline)); 190inline void vec_dstt (const unsigned char *, int, const int) __attribute__ ((always_inline)); 191inline void vec_dstt (const signed char *, int, const int) __attribute__ ((always_inline)); 192inline void vec_dstt (const unsigned short *, int, const int) __attribute__ ((always_inline)); 193inline void vec_dstt (const short *, int, const int) __attribute__ ((always_inline)); 194inline void vec_dstt (const unsigned int *, int, const int) __attribute__ ((always_inline)); 195inline void vec_dstt (const int *, int, const int) __attribute__ ((always_inline)); 196inline void vec_dstt (const unsigned long *, int, const int) __attribute__ ((always_inline)); 197inline void vec_dstt (const long *, int, const int) __attribute__ ((always_inline)); 198inline void vec_dstt (const float *, int, const int) __attribute__ ((always_inline)); 199 200inline __vector float vec_sld (__vector float, __vector float, const int) __attribute__ ((always_inline)); 201inline __vector signed int vec_sld (__vector signed int, __vector signed int, const int) __attribute__ ((always_inline)); 202inline __vector unsigned int vec_sld (__vector unsigned int, __vector unsigned int, const int) __attribute__ ((always_inline)); 203inline __vector __bool int vec_sld (__vector __bool int, __vector __bool int, const int) __attribute__ ((always_inline)); 204inline __vector signed short vec_sld (__vector signed short, __vector signed short, const int) __attribute__ ((always_inline)); 205inline __vector unsigned short vec_sld (__vector unsigned short, __vector unsigned short, const int) __attribute__ ((always_inline)); 206inline __vector __bool short vec_sld (__vector __bool short, __vector __bool short, const int) __attribute__ ((always_inline)); 207inline __vector __pixel vec_sld (__vector __pixel, __vector __pixel, const int) __attribute__ ((always_inline)); 208inline __vector signed char vec_sld (__vector signed char, __vector signed char, const int) __attribute__ ((always_inline)); 209inline __vector unsigned char vec_sld (__vector unsigned char, __vector unsigned char, const int) __attribute__ ((always_inline)); 210inline __vector __bool char vec_sld (__vector __bool char, __vector __bool char, const int) __attribute__ ((always_inline)); 211inline __vector signed char vec_splat (__vector signed char, const int) __attribute__ ((always_inline)); 212inline __vector unsigned char vec_splat (__vector unsigned char, const int) __attribute__ ((always_inline)); 213inline __vector __bool char vec_splat (__vector __bool char, const int) __attribute__ ((always_inline)); 214inline __vector signed short vec_splat (__vector signed short, const int) __attribute__ ((always_inline)); 215inline __vector unsigned short vec_splat (__vector unsigned short, const int) __attribute__ ((always_inline)); 216inline __vector __bool short vec_splat (__vector __bool short, const int) __attribute__ ((always_inline)); 217inline __vector __pixel vec_splat (__vector __pixel, const int) __attribute__ ((always_inline)); 218inline __vector float vec_splat (__vector float, const int) __attribute__ ((always_inline)); 219inline __vector signed int vec_splat (__vector signed int, const int) __attribute__ ((always_inline)); 220inline __vector unsigned int vec_splat (__vector unsigned int, const int) __attribute__ ((always_inline)); 221inline __vector __bool int vec_splat (__vector __bool int, const int) __attribute__ ((always_inline)); 222inline __vector signed char vec_splat_s8 (const int) __attribute__ ((always_inline)); 223inline __vector signed short vec_splat_s16 (const int) __attribute__ ((always_inline)); 224inline __vector signed int vec_splat_s32 (const int) __attribute__ ((always_inline)); 225inline __vector unsigned char vec_splat_u8 (const int) __attribute__ ((always_inline)); 226inline __vector unsigned short vec_splat_u16 (const int) __attribute__ ((always_inline)); 227inline __vector unsigned int vec_splat_u32 (const int) __attribute__ ((always_inline)); 228inline __vector float vec_vspltw (__vector float a1, const int a2) __attribute__ ((always_inline)); 229inline __vector __bool int vec_vspltw (__vector __bool int a1, const int a2) __attribute__ ((always_inline)); 230inline __vector signed int vec_vspltw (__vector signed int a1, const int a2) __attribute__ ((always_inline)); 231inline __vector unsigned int vec_vspltw (__vector unsigned int a1, const int a2) __attribute__ ((always_inline)); 232inline __vector __bool short vec_vsplth (__vector __bool short a1, const int a2) __attribute__ ((always_inline)); 233inline __vector signed short vec_vsplth (__vector signed short a1, const int a2) __attribute__ ((always_inline)); 234inline __vector unsigned short vec_vsplth (__vector unsigned short a1, const int a2) __attribute__ ((always_inline)); 235inline __vector __pixel vec_vsplth (__vector __pixel a1, const int a2) __attribute__ ((always_inline)); 236inline __vector __bool char vec_vspltb (__vector __bool char a1, const int a2) __attribute__ ((always_inline)); 237inline __vector signed char vec_vspltb (__vector signed char a1, const int a2) __attribute__ ((always_inline)); 238inline __vector unsigned char vec_vspltb (__vector unsigned char a1, const int a2) __attribute__ ((always_inline)); 239 240/* vec_step */ 241 242template<typename _Tp> 243struct __vec_step_help 244{ 245 // All proper __vector types will specialize _S_elem. 246}; 247 248template<> 249struct __vec_step_help<__vector signed short> 250{ 251 static const int _S_elem = 8; 252}; 253 254template<> 255struct __vec_step_help<__vector unsigned short> 256{ 257 static const int _S_elem = 8; 258}; 259 260template<> 261struct __vec_step_help<__vector __bool short> 262{ 263 static const int _S_elem = 8; 264}; 265 266template<> 267struct __vec_step_help<__vector __pixel> 268{ 269 static const int _S_elem = 8; 270}; 271 272template<> 273struct __vec_step_help<__vector signed int> 274{ 275 static const int _S_elem = 4; 276}; 277 278template<> 279struct __vec_step_help<__vector unsigned int> 280{ 281 static const int _S_elem = 4; 282}; 283 284template<> 285struct __vec_step_help<__vector __bool int> 286{ 287 static const int _S_elem = 4; 288}; 289 290template<> 291struct __vec_step_help<__vector unsigned char> 292{ 293 static const int _S_elem = 16; 294}; 295 296template<> 297struct __vec_step_help<__vector signed char> 298{ 299 static const int _S_elem = 16; 300}; 301 302template<> 303struct __vec_step_help<__vector __bool char> 304{ 305 static const int _S_elem = 16; 306}; 307 308template<> 309struct __vec_step_help<__vector float> 310{ 311 static const int _S_elem = 4; 312}; 313 314#define vec_step(t) __vec_step_help<typeof(t)>::_S_elem 315 316/* vec_abs */ 317 318inline __vector signed char 319vec_abs (__vector signed char a1) 320{ 321 return __builtin_altivec_abs_v16qi (a1); 322} 323 324inline __vector signed short 325vec_abs (__vector signed short a1) 326{ 327 return __builtin_altivec_abs_v8hi (a1); 328} 329 330inline __vector signed int 331vec_abs (__vector signed int a1) 332{ 333 return __builtin_altivec_abs_v4si (a1); 334} 335 336inline __vector float 337vec_abs (__vector float a1) 338{ 339 return __builtin_altivec_abs_v4sf (a1); 340} 341 342/* vec_abss */ 343 344inline __vector signed char 345vec_abss (__vector signed char a1) 346{ 347 return __builtin_altivec_abss_v16qi (a1); 348} 349 350inline __vector signed short 351vec_abss (__vector signed short a1) 352{ 353 return __builtin_altivec_abss_v8hi (a1); 354} 355 356inline __vector signed int 357vec_abss (__vector signed int a1) 358{ 359 return __builtin_altivec_abss_v4si (a1); 360} 361 362/* vec_add */ 363 364inline __vector signed char 365vec_add (__vector __bool char a1, __vector signed char a2) 366{ 367 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 368} 369 370inline __vector signed char 371vec_add (__vector signed char a1, __vector __bool char a2) 372{ 373 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 374} 375 376inline __vector signed char 377vec_add (__vector signed char a1, __vector signed char a2) 378{ 379 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 380} 381 382inline __vector unsigned char 383vec_add (__vector __bool char a1, __vector unsigned char a2) 384{ 385 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 386} 387 388inline __vector unsigned char 389vec_add (__vector unsigned char a1, __vector __bool char a2) 390{ 391 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 392} 393 394inline __vector unsigned char 395vec_add (__vector unsigned char a1, __vector unsigned char a2) 396{ 397 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 398} 399 400inline __vector signed short 401vec_add (__vector __bool short a1, __vector signed short a2) 402{ 403 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 404} 405 406inline __vector signed short 407vec_add (__vector signed short a1, __vector __bool short a2) 408{ 409 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 410} 411 412inline __vector signed short 413vec_add (__vector signed short a1, __vector signed short a2) 414{ 415 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 416} 417 418inline __vector unsigned short 419vec_add (__vector __bool short a1, __vector unsigned short a2) 420{ 421 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 422} 423 424inline __vector unsigned short 425vec_add (__vector unsigned short a1, __vector __bool short a2) 426{ 427 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 428} 429 430inline __vector unsigned short 431vec_add (__vector unsigned short a1, __vector unsigned short a2) 432{ 433 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 434} 435 436inline __vector signed int 437vec_add (__vector __bool int a1, __vector signed int a2) 438{ 439 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 440} 441 442inline __vector signed int 443vec_add (__vector signed int a1, __vector __bool int a2) 444{ 445 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 446} 447 448inline __vector signed int 449vec_add (__vector signed int a1, __vector signed int a2) 450{ 451 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 452} 453 454inline __vector unsigned int 455vec_add (__vector __bool int a1, __vector unsigned int a2) 456{ 457 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 458} 459 460inline __vector unsigned int 461vec_add (__vector unsigned int a1, __vector __bool int a2) 462{ 463 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 464} 465 466inline __vector unsigned int 467vec_add (__vector unsigned int a1, __vector unsigned int a2) 468{ 469 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 470} 471 472inline __vector float 473vec_add (__vector float a1, __vector float a2) 474{ 475 return (__vector float) __builtin_altivec_vaddfp ((__vector float) a1, (__vector float) a2); 476} 477 478/* vec_vaddfp */ 479 480inline __vector float 481vec_vaddfp (__vector float a1, __vector float a2) 482{ 483 return (__vector float) __builtin_altivec_vaddfp ((__vector float) a1, (__vector float) a2); 484} 485 486/* vec_vadduwm */ 487 488inline __vector signed int 489vec_vadduwm (__vector __bool int a1, __vector signed int a2) 490{ 491 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 492} 493 494inline __vector signed int 495vec_vadduwm (__vector signed int a1, __vector __bool int a2) 496{ 497 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 498} 499 500inline __vector signed int 501vec_vadduwm (__vector signed int a1, __vector signed int a2) 502{ 503 return (__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 504} 505 506inline __vector unsigned int 507vec_vadduwm (__vector __bool int a1, __vector unsigned int a2) 508{ 509 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 510} 511 512inline __vector unsigned int 513vec_vadduwm (__vector unsigned int a1, __vector __bool int a2) 514{ 515 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 516} 517 518inline __vector unsigned int 519vec_vadduwm (__vector unsigned int a1, __vector unsigned int a2) 520{ 521 return (__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) a1, (__vector signed int) a2); 522} 523 524/* vec_vadduhm */ 525 526inline __vector signed short 527vec_vadduhm (__vector __bool short a1, __vector signed short a2) 528{ 529 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 530} 531 532inline __vector signed short 533vec_vadduhm (__vector signed short a1, __vector __bool short a2) 534{ 535 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 536} 537 538inline __vector signed short 539vec_vadduhm (__vector signed short a1, __vector signed short a2) 540{ 541 return (__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 542} 543 544inline __vector unsigned short 545vec_vadduhm (__vector __bool short a1, __vector unsigned short a2) 546{ 547 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 548} 549 550inline __vector unsigned short 551vec_vadduhm (__vector unsigned short a1, __vector __bool short a2) 552{ 553 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 554} 555 556inline __vector unsigned short 557vec_vadduhm (__vector unsigned short a1, __vector unsigned short a2) 558{ 559 return (__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) a1, (__vector signed short) a2); 560} 561 562/* vec_vaddubm */ 563 564inline __vector signed char 565vec_vaddubm (__vector __bool char a1, __vector signed char a2) 566{ 567 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 568} 569 570inline __vector signed char 571vec_vaddubm (__vector signed char a1, __vector __bool char a2) 572{ 573 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 574} 575 576inline __vector signed char 577vec_vaddubm (__vector signed char a1, __vector signed char a2) 578{ 579 return (__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 580} 581 582inline __vector unsigned char 583vec_vaddubm (__vector __bool char a1, __vector unsigned char a2) 584{ 585 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 586} 587 588inline __vector unsigned char 589vec_vaddubm (__vector unsigned char a1, __vector __bool char a2) 590{ 591 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 592} 593 594inline __vector unsigned char 595vec_vaddubm (__vector unsigned char a1, __vector unsigned char a2) 596{ 597 return (__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) a1, (__vector signed char) a2); 598} 599 600/* vec_addc */ 601 602inline __vector unsigned int 603vec_addc (__vector unsigned int a1, __vector unsigned int a2) 604{ 605 return (__vector unsigned int) __builtin_altivec_vaddcuw ((__vector signed int) a1, (__vector signed int) a2); 606} 607 608/* vec_adds */ 609 610inline __vector unsigned char 611vec_adds (__vector __bool char a1, __vector unsigned char a2) 612{ 613 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2); 614} 615 616inline __vector unsigned char 617vec_adds (__vector unsigned char a1, __vector __bool char a2) 618{ 619 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2); 620} 621 622inline __vector unsigned char 623vec_adds (__vector unsigned char a1, __vector unsigned char a2) 624{ 625 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2); 626} 627 628inline __vector signed char 629vec_adds (__vector __bool char a1, __vector signed char a2) 630{ 631 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2); 632} 633 634inline __vector signed char 635vec_adds (__vector signed char a1, __vector __bool char a2) 636{ 637 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2); 638} 639 640inline __vector signed char 641vec_adds (__vector signed char a1, __vector signed char a2) 642{ 643 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2); 644} 645 646inline __vector unsigned short 647vec_adds (__vector __bool short a1, __vector unsigned short a2) 648{ 649 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2); 650} 651 652inline __vector unsigned short 653vec_adds (__vector unsigned short a1, __vector __bool short a2) 654{ 655 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2); 656} 657 658inline __vector unsigned short 659vec_adds (__vector unsigned short a1, __vector unsigned short a2) 660{ 661 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2); 662} 663 664inline __vector signed short 665vec_adds (__vector __bool short a1, __vector signed short a2) 666{ 667 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2); 668} 669 670inline __vector signed short 671vec_adds (__vector signed short a1, __vector __bool short a2) 672{ 673 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2); 674} 675 676inline __vector signed short 677vec_adds (__vector signed short a1, __vector signed short a2) 678{ 679 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2); 680} 681 682inline __vector unsigned int 683vec_adds (__vector __bool int a1, __vector unsigned int a2) 684{ 685 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2); 686} 687 688inline __vector unsigned int 689vec_adds (__vector unsigned int a1, __vector __bool int a2) 690{ 691 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2); 692} 693 694inline __vector unsigned int 695vec_adds (__vector unsigned int a1, __vector unsigned int a2) 696{ 697 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2); 698} 699 700inline __vector signed int 701vec_adds (__vector __bool int a1, __vector signed int a2) 702{ 703 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2); 704} 705 706inline __vector signed int 707vec_adds (__vector signed int a1, __vector __bool int a2) 708{ 709 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2); 710} 711 712inline __vector signed int 713vec_adds (__vector signed int a1, __vector signed int a2) 714{ 715 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2); 716} 717 718/* vec_vaddsws */ 719 720inline __vector signed int 721vec_vaddsws (__vector __bool int a1, __vector signed int a2) 722{ 723 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2); 724} 725 726inline __vector signed int 727vec_vaddsws (__vector signed int a1, __vector __bool int a2) 728{ 729 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2); 730} 731 732inline __vector signed int 733vec_vaddsws (__vector signed int a1, __vector signed int a2) 734{ 735 return (__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) a1, (__vector signed int) a2); 736} 737 738/* vec_vadduws */ 739 740inline __vector unsigned int 741vec_vadduws (__vector __bool int a1, __vector unsigned int a2) 742{ 743 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2); 744} 745 746inline __vector unsigned int 747vec_vadduws (__vector unsigned int a1, __vector __bool int a2) 748{ 749 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2); 750} 751 752inline __vector unsigned int 753vec_vadduws (__vector unsigned int a1, __vector unsigned int a2) 754{ 755 return (__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) a1, (__vector signed int) a2); 756} 757 758/* vec_vaddshs */ 759 760inline __vector signed short 761vec_vaddshs (__vector __bool short a1, __vector signed short a2) 762{ 763 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2); 764} 765 766inline __vector signed short 767vec_vaddshs (__vector signed short a1, __vector __bool short a2) 768{ 769 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2); 770} 771 772inline __vector signed short 773vec_vaddshs (__vector signed short a1, __vector signed short a2) 774{ 775 return (__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) a1, (__vector signed short) a2); 776} 777 778/* vec_vadduhs */ 779 780inline __vector unsigned short 781vec_vadduhs (__vector __bool short a1, __vector unsigned short a2) 782{ 783 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2); 784} 785 786inline __vector unsigned short 787vec_vadduhs (__vector unsigned short a1, __vector __bool short a2) 788{ 789 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2); 790} 791 792inline __vector unsigned short 793vec_vadduhs (__vector unsigned short a1, __vector unsigned short a2) 794{ 795 return (__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) a1, (__vector signed short) a2); 796} 797 798/* vec_vaddsbs */ 799 800inline __vector signed char 801vec_vaddsbs (__vector __bool char a1, __vector signed char a2) 802{ 803 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2); 804} 805 806inline __vector signed char 807vec_vaddsbs (__vector signed char a1, __vector __bool char a2) 808{ 809 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2); 810} 811 812inline __vector signed char 813vec_vaddsbs (__vector signed char a1, __vector signed char a2) 814{ 815 return (__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) a1, (__vector signed char) a2); 816} 817 818/* vec_vaddubs */ 819 820inline __vector unsigned char 821vec_vaddubs (__vector __bool char a1, __vector unsigned char a2) 822{ 823 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2); 824} 825 826inline __vector unsigned char 827vec_vaddubs (__vector unsigned char a1, __vector __bool char a2) 828{ 829 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2); 830} 831 832inline __vector unsigned char 833vec_vaddubs (__vector unsigned char a1, __vector unsigned char a2) 834{ 835 return (__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) a1, (__vector signed char) a2); 836} 837 838/* vec_and */ 839 840inline __vector float 841vec_and (__vector float a1, __vector float a2) 842{ 843 return (__vector float) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 844} 845 846inline __vector float 847vec_and (__vector float a1, __vector __bool int a2) 848{ 849 return (__vector float) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 850} 851 852inline __vector float 853vec_and (__vector __bool int a1, __vector float a2) 854{ 855 return (__vector float) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 856} 857 858inline __vector __bool int 859vec_and (__vector __bool int a1, __vector __bool int a2) 860{ 861 return (__vector __bool int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 862} 863 864inline __vector signed int 865vec_and (__vector __bool int a1, __vector signed int a2) 866{ 867 return (__vector signed int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 868} 869 870inline __vector signed int 871vec_and (__vector signed int a1, __vector __bool int a2) 872{ 873 return (__vector signed int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 874} 875 876inline __vector signed int 877vec_and (__vector signed int a1, __vector signed int a2) 878{ 879 return (__vector signed int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 880} 881 882inline __vector unsigned int 883vec_and (__vector __bool int a1, __vector unsigned int a2) 884{ 885 return (__vector unsigned int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 886} 887 888inline __vector unsigned int 889vec_and (__vector unsigned int a1, __vector __bool int a2) 890{ 891 return (__vector unsigned int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 892} 893 894inline __vector unsigned int 895vec_and (__vector unsigned int a1, __vector unsigned int a2) 896{ 897 return (__vector unsigned int) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 898} 899 900inline __vector __bool short 901vec_and (__vector __bool short a1, __vector __bool short a2) 902{ 903 return (__vector __bool short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 904} 905 906inline __vector signed short 907vec_and (__vector __bool short a1, __vector signed short a2) 908{ 909 return (__vector signed short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 910} 911 912inline __vector signed short 913vec_and (__vector signed short a1, __vector __bool short a2) 914{ 915 return (__vector signed short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 916} 917 918inline __vector signed short 919vec_and (__vector signed short a1, __vector signed short a2) 920{ 921 return (__vector signed short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 922} 923 924inline __vector unsigned short 925vec_and (__vector __bool short a1, __vector unsigned short a2) 926{ 927 return (__vector unsigned short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 928} 929 930inline __vector unsigned short 931vec_and (__vector unsigned short a1, __vector __bool short a2) 932{ 933 return (__vector unsigned short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 934} 935 936inline __vector unsigned short 937vec_and (__vector unsigned short a1, __vector unsigned short a2) 938{ 939 return (__vector unsigned short) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 940} 941 942inline __vector signed char 943vec_and (__vector __bool char a1, __vector signed char a2) 944{ 945 return (__vector signed char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 946} 947 948inline __vector __bool char 949vec_and (__vector __bool char a1, __vector __bool char a2) 950{ 951 return (__vector __bool char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 952} 953 954inline __vector signed char 955vec_and (__vector signed char a1, __vector __bool char a2) 956{ 957 return (__vector signed char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 958} 959 960inline __vector signed char 961vec_and (__vector signed char a1, __vector signed char a2) 962{ 963 return (__vector signed char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 964} 965 966inline __vector unsigned char 967vec_and (__vector __bool char a1, __vector unsigned char a2) 968{ 969 return (__vector unsigned char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 970} 971 972inline __vector unsigned char 973vec_and (__vector unsigned char a1, __vector __bool char a2) 974{ 975 return (__vector unsigned char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 976} 977 978inline __vector unsigned char 979vec_and (__vector unsigned char a1, __vector unsigned char a2) 980{ 981 return (__vector unsigned char) __builtin_altivec_vand ((__vector signed int) a1, (__vector signed int) a2); 982} 983 984/* vec_andc */ 985 986inline __vector float 987vec_andc (__vector float a1, __vector float a2) 988{ 989 return (__vector float) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 990} 991 992inline __vector float 993vec_andc (__vector float a1, __vector __bool int a2) 994{ 995 return (__vector float) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 996} 997 998inline __vector float 999vec_andc (__vector __bool int a1, __vector float a2) 1000{ 1001 return (__vector float) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1002} 1003 1004inline __vector __bool int 1005vec_andc (__vector __bool int a1, __vector __bool int a2) 1006{ 1007 return (__vector __bool int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1008} 1009 1010inline __vector signed int 1011vec_andc (__vector __bool int a1, __vector signed int a2) 1012{ 1013 return (__vector signed int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1014} 1015 1016inline __vector signed int 1017vec_andc (__vector signed int a1, __vector __bool int a2) 1018{ 1019 return (__vector signed int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1020} 1021 1022inline __vector signed int 1023vec_andc (__vector signed int a1, __vector signed int a2) 1024{ 1025 return (__vector signed int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1026} 1027 1028inline __vector unsigned int 1029vec_andc (__vector __bool int a1, __vector unsigned int a2) 1030{ 1031 return (__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1032} 1033 1034inline __vector unsigned int 1035vec_andc (__vector unsigned int a1, __vector __bool int a2) 1036{ 1037 return (__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1038} 1039 1040inline __vector unsigned int 1041vec_andc (__vector unsigned int a1, __vector unsigned int a2) 1042{ 1043 return (__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1044} 1045 1046inline __vector __bool short 1047vec_andc (__vector __bool short a1, __vector __bool short a2) 1048{ 1049 return (__vector __bool short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1050} 1051 1052inline __vector signed short 1053vec_andc (__vector __bool short a1, __vector signed short a2) 1054{ 1055 return (__vector signed short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1056} 1057 1058inline __vector signed short 1059vec_andc (__vector signed short a1, __vector __bool short a2) 1060{ 1061 return (__vector signed short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1062} 1063 1064inline __vector signed short 1065vec_andc (__vector signed short a1, __vector signed short a2) 1066{ 1067 return (__vector signed short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1068} 1069 1070inline __vector unsigned short 1071vec_andc (__vector __bool short a1, __vector unsigned short a2) 1072{ 1073 return (__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1074} 1075 1076inline __vector unsigned short 1077vec_andc (__vector unsigned short a1, __vector __bool short a2) 1078{ 1079 return (__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1080} 1081 1082inline __vector unsigned short 1083vec_andc (__vector unsigned short a1, __vector unsigned short a2) 1084{ 1085 return (__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1086} 1087 1088inline __vector signed char 1089vec_andc (__vector __bool char a1, __vector signed char a2) 1090{ 1091 return (__vector signed char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1092} 1093 1094inline __vector __bool char 1095vec_andc (__vector __bool char a1, __vector __bool char a2) 1096{ 1097 return (__vector __bool char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1098} 1099 1100inline __vector signed char 1101vec_andc (__vector signed char a1, __vector __bool char a2) 1102{ 1103 return (__vector signed char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1104} 1105 1106inline __vector signed char 1107vec_andc (__vector signed char a1, __vector signed char a2) 1108{ 1109 return (__vector signed char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1110} 1111 1112inline __vector unsigned char 1113vec_andc (__vector __bool char a1, __vector unsigned char a2) 1114{ 1115 return (__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1116} 1117 1118inline __vector unsigned char 1119vec_andc (__vector unsigned char a1, __vector __bool char a2) 1120{ 1121 return (__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1122} 1123 1124inline __vector unsigned char 1125vec_andc (__vector unsigned char a1, __vector unsigned char a2) 1126{ 1127 return (__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) a1, (__vector signed int) a2); 1128} 1129 1130/* vec_avg */ 1131 1132inline __vector unsigned char 1133vec_avg (__vector unsigned char a1, __vector unsigned char a2) 1134{ 1135 return (__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) a1, (__vector signed char) a2); 1136} 1137 1138inline __vector signed char 1139vec_avg (__vector signed char a1, __vector signed char a2) 1140{ 1141 return (__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) a1, (__vector signed char) a2); 1142} 1143 1144inline __vector unsigned short 1145vec_avg (__vector unsigned short a1, __vector unsigned short a2) 1146{ 1147 return (__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) a1, (__vector signed short) a2); 1148} 1149 1150inline __vector signed short 1151vec_avg (__vector signed short a1, __vector signed short a2) 1152{ 1153 return (__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) a1, (__vector signed short) a2); 1154} 1155 1156inline __vector unsigned int 1157vec_avg (__vector unsigned int a1, __vector unsigned int a2) 1158{ 1159 return (__vector unsigned int) __builtin_altivec_vavguw ((__vector signed int) a1, (__vector signed int) a2); 1160} 1161 1162inline __vector signed int 1163vec_avg (__vector signed int a1, __vector signed int a2) 1164{ 1165 return (__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) a1, (__vector signed int) a2); 1166} 1167 1168/* vec_vavgsw */ 1169 1170inline __vector signed int 1171vec_vavgsw (__vector signed int a1, __vector signed int a2) 1172{ 1173 return (__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) a1, (__vector signed int) a2); 1174} 1175 1176/* vec_vavguw */ 1177 1178inline __vector unsigned int 1179vec_vavguw (__vector unsigned int a1, __vector unsigned int a2) 1180{ 1181 return (__vector unsigned int) __builtin_altivec_vavguw ((__vector signed int) a1, (__vector signed int) a2); 1182} 1183 1184/* vec_vavgsh */ 1185 1186inline __vector signed short 1187vec_vavgsh (__vector signed short a1, __vector signed short a2) 1188{ 1189 return (__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) a1, (__vector signed short) a2); 1190} 1191 1192/* vec_vavguh */ 1193 1194inline __vector unsigned short 1195vec_vavguh (__vector unsigned short a1, __vector unsigned short a2) 1196{ 1197 return (__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) a1, (__vector signed short) a2); 1198} 1199 1200/* vec_vavgsb */ 1201 1202inline __vector signed char 1203vec_vavgsb (__vector signed char a1, __vector signed char a2) 1204{ 1205 return (__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) a1, (__vector signed char) a2); 1206} 1207 1208/* vec_vavgub */ 1209 1210inline __vector unsigned char 1211vec_vavgub (__vector unsigned char a1, __vector unsigned char a2) 1212{ 1213 return (__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) a1, (__vector signed char) a2); 1214} 1215 1216/* vec_ceil */ 1217 1218inline __vector float 1219vec_ceil (__vector float a1) 1220{ 1221 return (__vector float) __builtin_altivec_vrfip ((__vector float) a1); 1222} 1223 1224/* vec_cmpb */ 1225 1226inline __vector signed int 1227vec_cmpb (__vector float a1, __vector float a2) 1228{ 1229 return (__vector signed int) __builtin_altivec_vcmpbfp ((__vector float) a1, (__vector float) a2); 1230} 1231 1232/* vec_cmpeq */ 1233 1234inline __vector __bool char 1235vec_cmpeq (__vector signed char a1, __vector signed char a2) 1236{ 1237 return (__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) a1, (__vector signed char) a2); 1238} 1239 1240inline __vector __bool char 1241vec_cmpeq (__vector unsigned char a1, __vector unsigned char a2) 1242{ 1243 return (__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) a1, (__vector signed char) a2); 1244} 1245 1246inline __vector __bool short 1247vec_cmpeq (__vector signed short a1, __vector signed short a2) 1248{ 1249 return (__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) a1, (__vector signed short) a2); 1250} 1251 1252inline __vector __bool short 1253vec_cmpeq (__vector unsigned short a1, __vector unsigned short a2) 1254{ 1255 return (__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) a1, (__vector signed short) a2); 1256} 1257 1258inline __vector __bool int 1259vec_cmpeq (__vector signed int a1, __vector signed int a2) 1260{ 1261 return (__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2); 1262} 1263 1264inline __vector __bool int 1265vec_cmpeq (__vector unsigned int a1, __vector unsigned int a2) 1266{ 1267 return (__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2); 1268} 1269 1270inline __vector __bool int 1271vec_cmpeq (__vector float a1, __vector float a2) 1272{ 1273 return (__vector __bool int) __builtin_altivec_vcmpeqfp ((__vector float) a1, (__vector float) a2); 1274} 1275 1276/* vec_vcmpeqfp */ 1277 1278inline __vector __bool int 1279vec_vcmpeqfp (__vector float a1, __vector float a2) 1280{ 1281 return (__vector __bool int) __builtin_altivec_vcmpeqfp ((__vector float) a1, (__vector float) a2); 1282} 1283 1284/* vec_vcmpequw */ 1285 1286inline __vector __bool int 1287vec_vcmpequw (__vector signed int a1, __vector signed int a2) 1288{ 1289 return (__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2); 1290} 1291 1292inline __vector __bool int 1293vec_vcmpequw (__vector unsigned int a1, __vector unsigned int a2) 1294{ 1295 return (__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) a1, (__vector signed int) a2); 1296} 1297 1298/* vec_vcmpequh */ 1299 1300inline __vector __bool short 1301vec_vcmpequh (__vector signed short a1, __vector signed short a2) 1302{ 1303 return (__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) a1, (__vector signed short) a2); 1304} 1305 1306inline __vector __bool short 1307vec_vcmpequh (__vector unsigned short a1, __vector unsigned short a2) 1308{ 1309 return (__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) a1, (__vector signed short) a2); 1310} 1311 1312/* vec_vcmpequb */ 1313 1314inline __vector __bool char 1315vec_vcmpequb (__vector signed char a1, __vector signed char a2) 1316{ 1317 return (__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) a1, (__vector signed char) a2); 1318} 1319 1320inline __vector __bool char 1321vec_vcmpequb (__vector unsigned char a1, __vector unsigned char a2) 1322{ 1323 return (__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) a1, (__vector signed char) a2); 1324} 1325 1326/* vec_cmpge */ 1327 1328inline __vector __bool int 1329vec_cmpge (__vector float a1, __vector float a2) 1330{ 1331 return (__vector __bool int) __builtin_altivec_vcmpgefp ((__vector float) a1, (__vector float) a2); 1332} 1333 1334/* vec_cmpgt */ 1335 1336inline __vector __bool char 1337vec_cmpgt (__vector unsigned char a1, __vector unsigned char a2) 1338{ 1339 return (__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) a1, (__vector signed char) a2); 1340} 1341 1342inline __vector __bool char 1343vec_cmpgt (__vector signed char a1, __vector signed char a2) 1344{ 1345 return (__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) a1, (__vector signed char) a2); 1346} 1347 1348inline __vector __bool short 1349vec_cmpgt (__vector unsigned short a1, __vector unsigned short a2) 1350{ 1351 return (__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) a1, (__vector signed short) a2); 1352} 1353 1354inline __vector __bool short 1355vec_cmpgt (__vector signed short a1, __vector signed short a2) 1356{ 1357 return (__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) a1, (__vector signed short) a2); 1358} 1359 1360inline __vector __bool int 1361vec_cmpgt (__vector unsigned int a1, __vector unsigned int a2) 1362{ 1363 return (__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) a1, (__vector signed int) a2); 1364} 1365 1366inline __vector __bool int 1367vec_cmpgt (__vector signed int a1, __vector signed int a2) 1368{ 1369 return (__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) a1, (__vector signed int) a2); 1370} 1371 1372inline __vector __bool int 1373vec_cmpgt (__vector float a1, __vector float a2) 1374{ 1375 return (__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) a1, (__vector float) a2); 1376} 1377 1378/* vec_vcmpgtfp */ 1379 1380inline __vector __bool int 1381vec_vcmpgtfp (__vector float a1, __vector float a2) 1382{ 1383 return (__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) a1, (__vector float) a2); 1384} 1385 1386/* vec_vcmpgtsw */ 1387 1388inline __vector __bool int 1389vec_vcmpgtsw (__vector signed int a1, __vector signed int a2) 1390{ 1391 return (__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) a1, (__vector signed int) a2); 1392} 1393 1394/* vec_vcmpgtuw */ 1395 1396inline __vector __bool int 1397vec_vcmpgtuw (__vector unsigned int a1, __vector unsigned int a2) 1398{ 1399 return (__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) a1, (__vector signed int) a2); 1400} 1401 1402/* vec_vcmpgtsh */ 1403 1404inline __vector __bool short 1405vec_vcmpgtsh (__vector signed short a1, __vector signed short a2) 1406{ 1407 return (__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) a1, (__vector signed short) a2); 1408} 1409 1410/* vec_vcmpgtuh */ 1411 1412inline __vector __bool short 1413vec_vcmpgtuh (__vector unsigned short a1, __vector unsigned short a2) 1414{ 1415 return (__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) a1, (__vector signed short) a2); 1416} 1417 1418/* vec_vcmpgtsb */ 1419 1420inline __vector __bool char 1421vec_vcmpgtsb (__vector signed char a1, __vector signed char a2) 1422{ 1423 return (__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) a1, (__vector signed char) a2); 1424} 1425 1426/* vec_vcmpgtub */ 1427 1428inline __vector __bool char 1429vec_vcmpgtub (__vector unsigned char a1, __vector unsigned char a2) 1430{ 1431 return (__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) a1, (__vector signed char) a2); 1432} 1433 1434/* vec_cmple */ 1435 1436inline __vector __bool int 1437vec_cmple (__vector float a1, __vector float a2) 1438{ 1439 return (__vector __bool int) __builtin_altivec_vcmpgefp ((__vector float) a2, (__vector float) a1); 1440} 1441 1442/* vec_cmplt */ 1443 1444inline __vector __bool char 1445vec_cmplt (__vector unsigned char a1, __vector unsigned char a2) 1446{ 1447 return (__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) a2, (__vector signed char) a1); 1448} 1449 1450inline __vector __bool char 1451vec_cmplt (__vector signed char a1, __vector signed char a2) 1452{ 1453 return (__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) a2, (__vector signed char) a1); 1454} 1455 1456inline __vector __bool short 1457vec_cmplt (__vector unsigned short a1, __vector unsigned short a2) 1458{ 1459 return (__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) a2, (__vector signed short) a1); 1460} 1461 1462inline __vector __bool short 1463vec_cmplt (__vector signed short a1, __vector signed short a2) 1464{ 1465 return (__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) a2, (__vector signed short) a1); 1466} 1467 1468inline __vector __bool int 1469vec_cmplt (__vector unsigned int a1, __vector unsigned int a2) 1470{ 1471 return (__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) a2, (__vector signed int) a1); 1472} 1473 1474inline __vector __bool int 1475vec_cmplt (__vector signed int a1, __vector signed int a2) 1476{ 1477 return (__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) a2, (__vector signed int) a1); 1478} 1479 1480inline __vector __bool int 1481vec_cmplt (__vector float a1, __vector float a2) 1482{ 1483 return (__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) a2, (__vector float) a1); 1484} 1485 1486/* vec_ctf */ 1487 1488inline __vector float 1489vec_ctf (__vector unsigned int a1, const int a2) 1490{ 1491 return (__vector float) __builtin_altivec_vcfux ((__vector signed int) a1, a2); 1492} 1493 1494inline __vector float 1495vec_ctf (__vector signed int a1, const int a2) 1496{ 1497 return (__vector float) __builtin_altivec_vcfsx ((__vector signed int) a1, a2); 1498} 1499 1500/* vec_vcfsx */ 1501 1502inline __vector float 1503vec_vcfsx (__vector signed int a1, const int a2) 1504{ 1505 return (__vector float) __builtin_altivec_vcfsx ((__vector signed int) a1, a2); 1506} 1507 1508/* vec_vcfux */ 1509 1510inline __vector float 1511vec_vcfux (__vector unsigned int a1, const int a2) 1512{ 1513 return (__vector float) __builtin_altivec_vcfux ((__vector signed int) a1, a2); 1514} 1515 1516/* vec_cts */ 1517 1518inline __vector signed int 1519vec_cts (__vector float a1, const int a2) 1520{ 1521 return (__vector signed int) __builtin_altivec_vctsxs ((__vector float) a1, a2); 1522} 1523 1524/* vec_ctu */ 1525 1526inline __vector unsigned int 1527vec_ctu (__vector float a1, const int a2) 1528{ 1529 return (__vector unsigned int) __builtin_altivec_vctuxs ((__vector float) a1, a2); 1530} 1531 1532/* vec_dss */ 1533 1534inline void 1535vec_dss (const int a1) 1536{ 1537 __builtin_altivec_dss (a1); 1538} 1539 1540/* vec_dssall */ 1541 1542inline void 1543vec_dssall (void) 1544{ 1545 __builtin_altivec_dssall (); 1546} 1547 1548/* vec_dst */ 1549 1550inline void 1551vec_dst (const __vector unsigned char *a1, int a2, const int a3) 1552{ 1553 __builtin_altivec_dst ((void *) a1, a2, a3); 1554} 1555 1556inline void 1557vec_dst (const __vector signed char *a1, int a2, const int a3) 1558{ 1559 __builtin_altivec_dst ((void *) a1, a2, a3); 1560} 1561 1562inline void 1563vec_dst (const __vector __bool char *a1, int a2, const int a3) 1564{ 1565 __builtin_altivec_dst ((void *) a1, a2, a3); 1566} 1567 1568inline void 1569vec_dst (const __vector unsigned short *a1, int a2, const int a3) 1570{ 1571 __builtin_altivec_dst ((void *) a1, a2, a3); 1572} 1573 1574inline void 1575vec_dst (const __vector signed short *a1, int a2, const int a3) 1576{ 1577 __builtin_altivec_dst ((void *) a1, a2, a3); 1578} 1579 1580inline void 1581vec_dst (const __vector __bool short *a1, int a2, const int a3) 1582{ 1583 __builtin_altivec_dst ((void *) a1, a2, a3); 1584} 1585 1586inline void 1587vec_dst (const __vector __pixel *a1, int a2, const int a3) 1588{ 1589 __builtin_altivec_dst ((void *) a1, a2, a3); 1590} 1591 1592inline void 1593vec_dst (const __vector unsigned int *a1, int a2, const int a3) 1594{ 1595 __builtin_altivec_dst ((void *) a1, a2, a3); 1596} 1597 1598inline void 1599vec_dst (const __vector signed int *a1, int a2, const int a3) 1600{ 1601 __builtin_altivec_dst ((void *) a1, a2, a3); 1602} 1603 1604inline void 1605vec_dst (const __vector __bool int *a1, int a2, const int a3) 1606{ 1607 __builtin_altivec_dst ((void *) a1, a2, a3); 1608} 1609 1610inline void 1611vec_dst (const __vector float *a1, int a2, const int a3) 1612{ 1613 __builtin_altivec_dst ((void *) a1, a2, a3); 1614} 1615 1616inline void 1617vec_dst (const unsigned char *a1, int a2, const int a3) 1618{ 1619 __builtin_altivec_dst ((void *) a1, a2, a3); 1620} 1621 1622inline void 1623vec_dst (const signed char *a1, int a2, const int a3) 1624{ 1625 __builtin_altivec_dst ((void *) a1, a2, a3); 1626} 1627 1628inline void 1629vec_dst (const unsigned short *a1, int a2, const int a3) 1630{ 1631 __builtin_altivec_dst ((void *) a1, a2, a3); 1632} 1633 1634inline void 1635vec_dst (const short *a1, int a2, const int a3) 1636{ 1637 __builtin_altivec_dst ((void *) a1, a2, a3); 1638} 1639 1640inline void 1641vec_dst (const unsigned int *a1, int a2, const int a3) 1642{ 1643 __builtin_altivec_dst ((void *) a1, a2, a3); 1644} 1645 1646inline void 1647vec_dst (const int *a1, int a2, const int a3) 1648{ 1649 __builtin_altivec_dst ((void *) a1, a2, a3); 1650} 1651 1652inline void 1653vec_dst (const unsigned long *a1, int a2, const int a3) 1654{ 1655 __builtin_altivec_dst ((void *) a1, a2, a3); 1656} 1657 1658inline void 1659vec_dst (const long *a1, int a2, const int a3) 1660{ 1661 __builtin_altivec_dst ((void *) a1, a2, a3); 1662} 1663 1664inline void 1665vec_dst (const float *a1, int a2, const int a3) 1666{ 1667 __builtin_altivec_dst ((void *) a1, a2, a3); 1668} 1669 1670/* vec_dstst */ 1671 1672inline void 1673vec_dstst (const __vector unsigned char *a1, int a2, const int a3) 1674{ 1675 __builtin_altivec_dstst ((void *) a1, a2, a3); 1676} 1677 1678inline void 1679vec_dstst (const __vector signed char *a1, int a2, const int a3) 1680{ 1681 __builtin_altivec_dstst ((void *) a1, a2, a3); 1682} 1683 1684inline void 1685vec_dstst (const __vector __bool char *a1, int a2, const int a3) 1686{ 1687 __builtin_altivec_dstst ((void *) a1, a2, a3); 1688} 1689 1690inline void 1691vec_dstst (const __vector unsigned short *a1, int a2, const int a3) 1692{ 1693 __builtin_altivec_dstst ((void *) a1, a2, a3); 1694} 1695 1696inline void 1697vec_dstst (const __vector signed short *a1, int a2, const int a3) 1698{ 1699 __builtin_altivec_dstst ((void *) a1, a2, a3); 1700} 1701 1702inline void 1703vec_dstst (const __vector __bool short *a1, int a2, const int a3) 1704{ 1705 __builtin_altivec_dstst ((void *) a1, a2, a3); 1706} 1707 1708inline void 1709vec_dstst (const __vector __pixel *a1, int a2, const int a3) 1710{ 1711 __builtin_altivec_dstst ((void *) a1, a2, a3); 1712} 1713 1714inline void 1715vec_dstst (const __vector unsigned int *a1, int a2, const int a3) 1716{ 1717 __builtin_altivec_dstst ((void *) a1, a2, a3); 1718} 1719 1720inline void 1721vec_dstst (const __vector signed int *a1, int a2, const int a3) 1722{ 1723 __builtin_altivec_dstst ((void *) a1, a2, a3); 1724} 1725 1726inline void 1727vec_dstst (const __vector __bool int *a1, int a2, const int a3) 1728{ 1729 __builtin_altivec_dstst ((void *) a1, a2, a3); 1730} 1731 1732inline void 1733vec_dstst (const __vector float *a1, int a2, const int a3) 1734{ 1735 __builtin_altivec_dstst ((void *) a1, a2, a3); 1736} 1737 1738inline void 1739vec_dstst (const unsigned char *a1, int a2, const int a3) 1740{ 1741 __builtin_altivec_dstst ((void *) a1, a2, a3); 1742} 1743 1744inline void 1745vec_dstst (const signed char *a1, int a2, const int a3) 1746{ 1747 __builtin_altivec_dstst ((void *) a1, a2, a3); 1748} 1749 1750inline void 1751vec_dstst (const unsigned short *a1, int a2, const int a3) 1752{ 1753 __builtin_altivec_dstst ((void *) a1, a2, a3); 1754} 1755 1756inline void 1757vec_dstst (const short *a1, int a2, const int a3) 1758{ 1759 __builtin_altivec_dstst ((void *) a1, a2, a3); 1760} 1761 1762inline void 1763vec_dstst (const unsigned int *a1, int a2, const int a3) 1764{ 1765 __builtin_altivec_dstst ((void *) a1, a2, a3); 1766} 1767 1768inline void 1769vec_dstst (const int *a1, int a2, const int a3) 1770{ 1771 __builtin_altivec_dstst ((void *) a1, a2, a3); 1772} 1773 1774inline void 1775vec_dstst (const unsigned long *a1, int a2, const int a3) 1776{ 1777 __builtin_altivec_dstst ((void *) a1, a2, a3); 1778} 1779 1780inline void 1781vec_dstst (const long *a1, int a2, const int a3) 1782{ 1783 __builtin_altivec_dstst ((void *) a1, a2, a3); 1784} 1785 1786inline void 1787vec_dstst (const float *a1, int a2, const int a3) 1788{ 1789 __builtin_altivec_dstst ((void *) a1, a2, a3); 1790} 1791 1792/* vec_dststt */ 1793 1794inline void 1795vec_dststt (const __vector unsigned char *a1, int a2, const int a3) 1796{ 1797 __builtin_altivec_dststt ((void *) a1, a2, a3); 1798} 1799 1800inline void 1801vec_dststt (const __vector signed char *a1, int a2, const int a3) 1802{ 1803 __builtin_altivec_dststt ((void *) a1, a2, a3); 1804} 1805 1806inline void 1807vec_dststt (const __vector __bool char *a1, int a2, const int a3) 1808{ 1809 __builtin_altivec_dststt ((void *) a1, a2, a3); 1810} 1811 1812inline void 1813vec_dststt (const __vector unsigned short *a1, int a2, const int a3) 1814{ 1815 __builtin_altivec_dststt ((void *) a1, a2, a3); 1816} 1817 1818inline void 1819vec_dststt (const __vector signed short *a1, int a2, const int a3) 1820{ 1821 __builtin_altivec_dststt ((void *) a1, a2, a3); 1822} 1823 1824inline void 1825vec_dststt (const __vector __bool short *a1, int a2, const int a3) 1826{ 1827 __builtin_altivec_dststt ((void *) a1, a2, a3); 1828} 1829 1830inline void 1831vec_dststt (const __vector __pixel *a1, int a2, const int a3) 1832{ 1833 __builtin_altivec_dststt ((void *) a1, a2, a3); 1834} 1835 1836inline void 1837vec_dststt (const __vector unsigned int *a1, int a2, const int a3) 1838{ 1839 __builtin_altivec_dststt ((void *) a1, a2, a3); 1840} 1841 1842inline void 1843vec_dststt (const __vector signed int *a1, int a2, const int a3) 1844{ 1845 __builtin_altivec_dststt ((void *) a1, a2, a3); 1846} 1847 1848inline void 1849vec_dststt (const __vector __bool int *a1, int a2, const int a3) 1850{ 1851 __builtin_altivec_dststt ((void *) a1, a2, a3); 1852} 1853 1854inline void 1855vec_dststt (const __vector float *a1, int a2, const int a3) 1856{ 1857 __builtin_altivec_dststt ((void *) a1, a2, a3); 1858} 1859 1860inline void 1861vec_dststt (const unsigned char *a1, int a2, const int a3) 1862{ 1863 __builtin_altivec_dststt ((void *) a1, a2, a3); 1864} 1865 1866inline void 1867vec_dststt (const signed char *a1, int a2, const int a3) 1868{ 1869 __builtin_altivec_dststt ((void *) a1, a2, a3); 1870} 1871 1872inline void 1873vec_dststt (const unsigned short *a1, int a2, const int a3) 1874{ 1875 __builtin_altivec_dststt ((void *) a1, a2, a3); 1876} 1877 1878inline void 1879vec_dststt (const short *a1, int a2, const int a3) 1880{ 1881 __builtin_altivec_dststt ((void *) a1, a2, a3); 1882} 1883 1884inline void 1885vec_dststt (const unsigned int *a1, int a2, const int a3) 1886{ 1887 __builtin_altivec_dststt ((void *) a1, a2, a3); 1888} 1889 1890inline void 1891vec_dststt (const int *a1, int a2, const int a3) 1892{ 1893 __builtin_altivec_dststt ((void *) a1, a2, a3); 1894} 1895 1896inline void 1897vec_dststt (const unsigned long *a1, int a2, const int a3) 1898{ 1899 __builtin_altivec_dststt ((void *) a1, a2, a3); 1900} 1901 1902inline void 1903vec_dststt (const long *a1, int a2, const int a3) 1904{ 1905 __builtin_altivec_dststt ((void *) a1, a2, a3); 1906} 1907 1908inline void 1909vec_dststt (const float *a1, int a2, const int a3) 1910{ 1911 __builtin_altivec_dststt ((void *) a1, a2, a3); 1912} 1913 1914/* vec_dstt */ 1915 1916inline void 1917vec_dstt (const __vector unsigned char *a1, int a2, const int a3) 1918{ 1919 __builtin_altivec_dstt ((void *) a1, a2, a3); 1920} 1921 1922inline void 1923vec_dstt (const __vector signed char *a1, int a2, const int a3) 1924{ 1925 __builtin_altivec_dstt ((void *) a1, a2, a3); 1926} 1927 1928inline void 1929vec_dstt (const __vector __bool char *a1, int a2, const int a3) 1930{ 1931 __builtin_altivec_dstt ((void *) a1, a2, a3); 1932} 1933 1934inline void 1935vec_dstt (const __vector unsigned short *a1, int a2, const int a3) 1936{ 1937 __builtin_altivec_dstt ((void *) a1, a2, a3); 1938} 1939 1940inline void 1941vec_dstt (const __vector signed short *a1, int a2, const int a3) 1942{ 1943 __builtin_altivec_dstt ((void *) a1, a2, a3); 1944} 1945 1946inline void 1947vec_dstt (const __vector __bool short *a1, int a2, const int a3) 1948{ 1949 __builtin_altivec_dstt ((void *) a1, a2, a3); 1950} 1951 1952inline void 1953vec_dstt (const __vector __pixel *a1, int a2, const int a3) 1954{ 1955 __builtin_altivec_dstt ((void *) a1, a2, a3); 1956} 1957 1958inline void 1959vec_dstt (const __vector unsigned int *a1, int a2, const int a3) 1960{ 1961 __builtin_altivec_dstt ((void *) a1, a2, a3); 1962} 1963 1964inline void 1965vec_dstt (const __vector signed int *a1, int a2, const int a3) 1966{ 1967 __builtin_altivec_dstt ((void *) a1, a2, a3); 1968} 1969 1970inline void 1971vec_dstt (const __vector __bool int *a1, int a2, const int a3) 1972{ 1973 __builtin_altivec_dstt ((void *) a1, a2, a3); 1974} 1975 1976inline void 1977vec_dstt (const __vector float *a1, int a2, const int a3) 1978{ 1979 __builtin_altivec_dstt ((void *) a1, a2, a3); 1980} 1981 1982inline void 1983vec_dstt (const unsigned char *a1, int a2, const int a3) 1984{ 1985 __builtin_altivec_dstt ((void *) a1, a2, a3); 1986} 1987 1988inline void 1989vec_dstt (const signed char *a1, int a2, const int a3) 1990{ 1991 __builtin_altivec_dstt ((void *) a1, a2, a3); 1992} 1993 1994inline void 1995vec_dstt (const unsigned short *a1, int a2, const int a3) 1996{ 1997 __builtin_altivec_dstt ((void *) a1, a2, a3); 1998} 1999 2000inline void 2001vec_dstt (const short *a1, int a2, const int a3) 2002{ 2003 __builtin_altivec_dstt ((void *) a1, a2, a3); 2004} 2005 2006inline void 2007vec_dstt (const unsigned int *a1, int a2, const int a3) 2008{ 2009 __builtin_altivec_dstt ((void *) a1, a2, a3); 2010} 2011 2012inline void 2013vec_dstt (const int *a1, int a2, const int a3) 2014{ 2015 __builtin_altivec_dstt ((void *) a1, a2, a3); 2016} 2017 2018inline void 2019vec_dstt (const unsigned long *a1, int a2, const int a3) 2020{ 2021 __builtin_altivec_dstt ((void *) a1, a2, a3); 2022} 2023 2024inline void 2025vec_dstt (const long *a1, int a2, const int a3) 2026{ 2027 __builtin_altivec_dstt ((void *) a1, a2, a3); 2028} 2029 2030inline void 2031vec_dstt (const float *a1, int a2, const int a3) 2032{ 2033 __builtin_altivec_dstt ((void *) a1, a2, a3); 2034} 2035 2036/* vec_expte */ 2037 2038inline __vector float 2039vec_expte (__vector float a1) 2040{ 2041 return (__vector float) __builtin_altivec_vexptefp ((__vector float) a1); 2042} 2043 2044/* vec_floor */ 2045 2046inline __vector float 2047vec_floor (__vector float a1) 2048{ 2049 return (__vector float) __builtin_altivec_vrfim ((__vector float) a1); 2050} 2051 2052/* vec_ld */ 2053 2054inline __vector float 2055vec_ld (int a1, const __vector float *a2) 2056{ 2057 return (__vector float) __builtin_altivec_lvx (a1, (void *) a2); 2058} 2059 2060inline __vector float 2061vec_ld (int a1, const float *a2) 2062{ 2063 return (__vector float) __builtin_altivec_lvx (a1, (void *) a2); 2064} 2065 2066inline __vector __bool int 2067vec_ld (int a1, const __vector __bool int *a2) 2068{ 2069 return (__vector __bool int) __builtin_altivec_lvx (a1, (void *) a2); 2070} 2071 2072inline __vector signed int 2073vec_ld (int a1, const __vector signed int *a2) 2074{ 2075 return (__vector signed int) __builtin_altivec_lvx (a1, (void *) a2); 2076} 2077 2078inline __vector signed int 2079vec_ld (int a1, const int *a2) 2080{ 2081 return (__vector signed int) __builtin_altivec_lvx (a1, (void *) a2); 2082} 2083 2084inline __vector signed int 2085vec_ld (int a1, const long *a2) 2086{ 2087 return (__vector signed int) __builtin_altivec_lvx (a1, (void *) a2); 2088} 2089 2090inline __vector unsigned int 2091vec_ld (int a1, const __vector unsigned int *a2) 2092{ 2093 return (__vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2); 2094} 2095 2096inline __vector unsigned int 2097vec_ld (int a1, const unsigned int *a2) 2098{ 2099 return (__vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2); 2100} 2101 2102inline __vector unsigned int 2103vec_ld (int a1, const unsigned long *a2) 2104{ 2105 return (__vector unsigned int) __builtin_altivec_lvx (a1, (void *) a2); 2106} 2107 2108inline __vector __bool short 2109vec_ld (int a1, const __vector __bool short *a2) 2110{ 2111 return (__vector __bool short) __builtin_altivec_lvx (a1, (void *) a2); 2112} 2113 2114inline __vector __pixel 2115vec_ld (int a1, const __vector __pixel *a2) 2116{ 2117 return (__vector __pixel) __builtin_altivec_lvx (a1, (void *) a2); 2118} 2119 2120inline __vector signed short 2121vec_ld (int a1, const __vector signed short *a2) 2122{ 2123 return (__vector signed short) __builtin_altivec_lvx (a1, (void *) a2); 2124} 2125 2126inline __vector signed short 2127vec_ld (int a1, const short *a2) 2128{ 2129 return (__vector signed short) __builtin_altivec_lvx (a1, (void *) a2); 2130} 2131 2132inline __vector unsigned short 2133vec_ld (int a1, const __vector unsigned short *a2) 2134{ 2135 return (__vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2); 2136} 2137 2138inline __vector unsigned short 2139vec_ld (int a1, const unsigned short *a2) 2140{ 2141 return (__vector unsigned short) __builtin_altivec_lvx (a1, (void *) a2); 2142} 2143 2144inline __vector __bool char 2145vec_ld (int a1, const __vector __bool char *a2) 2146{ 2147 return (__vector __bool char) __builtin_altivec_lvx (a1, (void *) a2); 2148} 2149 2150inline __vector signed char 2151vec_ld (int a1, const __vector signed char *a2) 2152{ 2153 return (__vector signed char) __builtin_altivec_lvx (a1, (void *) a2); 2154} 2155 2156inline __vector signed char 2157vec_ld (int a1, const signed char *a2) 2158{ 2159 return (__vector signed char) __builtin_altivec_lvx (a1, (void *) a2); 2160} 2161 2162inline __vector unsigned char 2163vec_ld (int a1, const __vector unsigned char *a2) 2164{ 2165 return (__vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2); 2166} 2167 2168inline __vector unsigned char 2169vec_ld (int a1, const unsigned char *a2) 2170{ 2171 return (__vector unsigned char) __builtin_altivec_lvx (a1, (void *) a2); 2172} 2173 2174/* vec_lde */ 2175 2176inline __vector signed char 2177vec_lde (int a1, const signed char *a2) 2178{ 2179 return (__vector signed char) __builtin_altivec_lvebx (a1, (void *) a2); 2180} 2181 2182inline __vector unsigned char 2183vec_lde (int a1, const unsigned char *a2) 2184{ 2185 return (__vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2); 2186} 2187 2188inline __vector signed short 2189vec_lde (int a1, const short *a2) 2190{ 2191 return (__vector signed short) __builtin_altivec_lvehx (a1, (void *) a2); 2192} 2193 2194inline __vector unsigned short 2195vec_lde (int a1, const unsigned short *a2) 2196{ 2197 return (__vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2); 2198} 2199 2200inline __vector float 2201vec_lde (int a1, const float *a2) 2202{ 2203 return (__vector float) __builtin_altivec_lvewx (a1, (void *) a2); 2204} 2205 2206inline __vector signed int 2207vec_lde (int a1, const int *a2) 2208{ 2209 return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2); 2210} 2211 2212inline __vector unsigned int 2213vec_lde (int a1, const unsigned int *a2) 2214{ 2215 return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); 2216} 2217 2218inline __vector signed int 2219vec_lde (int a1, const long *a2) 2220{ 2221 return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2); 2222} 2223 2224inline __vector unsigned int 2225vec_lde (int a1, const unsigned long *a2) 2226{ 2227 return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); 2228} 2229 2230/* vec_lvewx */ 2231 2232inline __vector float 2233vec_lvewx (int a1, float *a2) 2234{ 2235 return (__vector float) __builtin_altivec_lvewx (a1, (void *) a2); 2236} 2237 2238inline __vector signed int 2239vec_lvewx (int a1, int *a2) 2240{ 2241 return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2); 2242} 2243 2244inline __vector unsigned int 2245vec_lvewx (int a1, unsigned int *a2) 2246{ 2247 return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); 2248} 2249 2250inline __vector signed int 2251vec_lvewx (int a1, long *a2) 2252{ 2253 return (__vector signed int) __builtin_altivec_lvewx (a1, (void *) a2); 2254} 2255 2256inline __vector unsigned int 2257vec_lvewx (int a1, unsigned long *a2) 2258{ 2259 return (__vector unsigned int) __builtin_altivec_lvewx (a1, (void *) a2); 2260} 2261 2262/* vec_lvehx */ 2263 2264inline __vector signed short 2265vec_lvehx (int a1, short *a2) 2266{ 2267 return (__vector signed short) __builtin_altivec_lvehx (a1, (void *) a2); 2268} 2269 2270inline __vector unsigned short 2271vec_lvehx (int a1, unsigned short *a2) 2272{ 2273 return (__vector unsigned short) __builtin_altivec_lvehx (a1, (void *) a2); 2274} 2275 2276/* vec_lvebx */ 2277 2278inline __vector signed char 2279vec_lvebx (int a1, signed char *a2) 2280{ 2281 return (__vector signed char) __builtin_altivec_lvebx (a1, (void *) a2); 2282} 2283 2284inline __vector unsigned char 2285vec_lvebx (int a1, unsigned char *a2) 2286{ 2287 return (__vector unsigned char) __builtin_altivec_lvebx (a1, (void *) a2); 2288} 2289 2290/* vec_ldl */ 2291 2292inline __vector float 2293vec_ldl (int a1, const __vector float *a2) 2294{ 2295 return (__vector float) __builtin_altivec_lvxl (a1, (void *) a2); 2296} 2297 2298inline __vector float 2299vec_ldl (int a1, const float *a2) 2300{ 2301 return (__vector float) __builtin_altivec_lvxl (a1, (void *) a2); 2302} 2303 2304inline __vector __bool int 2305vec_ldl (int a1, const __vector __bool int *a2) 2306{ 2307 return (__vector __bool int) __builtin_altivec_lvxl (a1, (void *) a2); 2308} 2309 2310inline __vector signed int 2311vec_ldl (int a1, const __vector signed int *a2) 2312{ 2313 return (__vector signed int) __builtin_altivec_lvxl (a1, (void *) a2); 2314} 2315 2316inline __vector signed int 2317vec_ldl (int a1, const int *a2) 2318{ 2319 return (__vector signed int) __builtin_altivec_lvxl (a1, (void *) a2); 2320} 2321 2322inline __vector signed int 2323vec_ldl (int a1, const long *a2) 2324{ 2325 return (__vector signed int) __builtin_altivec_lvxl (a1, (void *) a2); 2326} 2327 2328inline __vector unsigned int 2329vec_ldl (int a1, const __vector unsigned int *a2) 2330{ 2331 return (__vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2); 2332} 2333 2334inline __vector unsigned int 2335vec_ldl (int a1, const unsigned int *a2) 2336{ 2337 return (__vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2); 2338} 2339 2340inline __vector unsigned int 2341vec_ldl (int a1, const unsigned long *a2) 2342{ 2343 return (__vector unsigned int) __builtin_altivec_lvxl (a1, (void *) a2); 2344} 2345 2346inline __vector __bool short 2347vec_ldl (int a1, const __vector __bool short *a2) 2348{ 2349 return (__vector __bool short) __builtin_altivec_lvxl (a1, (void *) a2); 2350} 2351 2352inline __vector __pixel 2353vec_ldl (int a1, const __vector __pixel *a2) 2354{ 2355 return (__vector __pixel) __builtin_altivec_lvxl (a1, (void *) a2); 2356} 2357 2358inline __vector signed short 2359vec_ldl (int a1, const __vector signed short *a2) 2360{ 2361 return (__vector signed short) __builtin_altivec_lvxl (a1, (void *) a2); 2362} 2363 2364inline __vector signed short 2365vec_ldl (int a1, const short *a2) 2366{ 2367 return (__vector signed short) __builtin_altivec_lvxl (a1, (void *) a2); 2368} 2369 2370inline __vector unsigned short 2371vec_ldl (int a1, const __vector unsigned short *a2) 2372{ 2373 return (__vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2); 2374} 2375 2376inline __vector unsigned short 2377vec_ldl (int a1, const unsigned short *a2) 2378{ 2379 return (__vector unsigned short) __builtin_altivec_lvxl (a1, (void *) a2); 2380} 2381 2382inline __vector __bool char 2383vec_ldl (int a1, const __vector __bool char *a2) 2384{ 2385 return (__vector __bool char) __builtin_altivec_lvxl (a1, (void *) a2); 2386} 2387 2388inline __vector signed char 2389vec_ldl (int a1, const __vector signed char *a2) 2390{ 2391 return (__vector signed char) __builtin_altivec_lvxl (a1, (void *) a2); 2392} 2393 2394inline __vector signed char 2395vec_ldl (int a1, const signed char *a2) 2396{ 2397 return (__vector signed char) __builtin_altivec_lvxl (a1, (void *) a2); 2398} 2399 2400inline __vector unsigned char 2401vec_ldl (int a1, const __vector unsigned char *a2) 2402{ 2403 return (__vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2); 2404} 2405 2406inline __vector unsigned char 2407vec_ldl (int a1, const unsigned char *a2) 2408{ 2409 return (__vector unsigned char) __builtin_altivec_lvxl (a1, (void *) a2); 2410} 2411 2412/* vec_loge */ 2413 2414inline __vector float 2415vec_loge (__vector float a1) 2416{ 2417 return (__vector float) __builtin_altivec_vlogefp ((__vector float) a1); 2418} 2419 2420/* vec_lvsl */ 2421 2422inline __vector unsigned char 2423vec_lvsl (int a1, const volatile unsigned char *a2) 2424{ 2425 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); 2426} 2427 2428inline __vector unsigned char 2429vec_lvsl (int a1, const volatile signed char *a2) 2430{ 2431 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); 2432} 2433 2434inline __vector unsigned char 2435vec_lvsl (int a1, const volatile unsigned short *a2) 2436{ 2437 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); 2438} 2439 2440inline __vector unsigned char 2441vec_lvsl (int a1, const volatile short *a2) 2442{ 2443 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); 2444} 2445 2446inline __vector unsigned char 2447vec_lvsl (int a1, const volatile unsigned int *a2) 2448{ 2449 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); 2450} 2451 2452inline __vector unsigned char 2453vec_lvsl (int a1, const volatile int *a2) 2454{ 2455 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); 2456} 2457 2458inline __vector unsigned char 2459vec_lvsl (int a1, const volatile unsigned long *a2) 2460{ 2461 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); 2462} 2463 2464inline __vector unsigned char 2465vec_lvsl (int a1, const volatile long *a2) 2466{ 2467 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); 2468} 2469 2470inline __vector unsigned char 2471vec_lvsl (int a1, const volatile float *a2) 2472{ 2473 return (__vector unsigned char) __builtin_altivec_lvsl (a1, (void *) a2); 2474} 2475 2476/* vec_lvsr */ 2477 2478inline __vector unsigned char 2479vec_lvsr (int a1, const volatile unsigned char *a2) 2480{ 2481 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); 2482} 2483 2484inline __vector unsigned char 2485vec_lvsr (int a1, const volatile signed char *a2) 2486{ 2487 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); 2488} 2489 2490inline __vector unsigned char 2491vec_lvsr (int a1, const volatile unsigned short *a2) 2492{ 2493 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); 2494} 2495 2496inline __vector unsigned char 2497vec_lvsr (int a1, const volatile short *a2) 2498{ 2499 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); 2500} 2501 2502inline __vector unsigned char 2503vec_lvsr (int a1, const volatile unsigned int *a2) 2504{ 2505 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); 2506} 2507 2508inline __vector unsigned char 2509vec_lvsr (int a1, const volatile int *a2) 2510{ 2511 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); 2512} 2513 2514inline __vector unsigned char 2515vec_lvsr (int a1, const volatile unsigned long *a2) 2516{ 2517 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); 2518} 2519 2520inline __vector unsigned char 2521vec_lvsr (int a1, const volatile long *a2) 2522{ 2523 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); 2524} 2525 2526inline __vector unsigned char 2527vec_lvsr (int a1, const volatile float *a2) 2528{ 2529 return (__vector unsigned char) __builtin_altivec_lvsr (a1, (void *) a2); 2530} 2531 2532/* vec_madd */ 2533 2534inline __vector float 2535vec_madd (__vector float a1, __vector float a2, __vector float a3) 2536{ 2537 return (__vector float) __builtin_altivec_vmaddfp ((__vector float) a1, (__vector float) a2, (__vector float) a3); 2538} 2539 2540/* vec_madds */ 2541 2542inline __vector signed short 2543vec_madds (__vector signed short a1, __vector signed short a2, __vector signed short a3) 2544{ 2545 return (__vector signed short) __builtin_altivec_vmhaddshs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3); 2546} 2547 2548/* vec_max */ 2549 2550inline __vector unsigned char 2551vec_max (__vector __bool char a1, __vector unsigned char a2) 2552{ 2553 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2); 2554} 2555 2556inline __vector unsigned char 2557vec_max (__vector unsigned char a1, __vector __bool char a2) 2558{ 2559 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2); 2560} 2561 2562inline __vector unsigned char 2563vec_max (__vector unsigned char a1, __vector unsigned char a2) 2564{ 2565 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2); 2566} 2567 2568inline __vector signed char 2569vec_max (__vector __bool char a1, __vector signed char a2) 2570{ 2571 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2); 2572} 2573 2574inline __vector signed char 2575vec_max (__vector signed char a1, __vector __bool char a2) 2576{ 2577 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2); 2578} 2579 2580inline __vector signed char 2581vec_max (__vector signed char a1, __vector signed char a2) 2582{ 2583 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2); 2584} 2585 2586inline __vector unsigned short 2587vec_max (__vector __bool short a1, __vector unsigned short a2) 2588{ 2589 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2); 2590} 2591 2592inline __vector unsigned short 2593vec_max (__vector unsigned short a1, __vector __bool short a2) 2594{ 2595 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2); 2596} 2597 2598inline __vector unsigned short 2599vec_max (__vector unsigned short a1, __vector unsigned short a2) 2600{ 2601 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2); 2602} 2603 2604inline __vector signed short 2605vec_max (__vector __bool short a1, __vector signed short a2) 2606{ 2607 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2); 2608} 2609 2610inline __vector signed short 2611vec_max (__vector signed short a1, __vector __bool short a2) 2612{ 2613 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2); 2614} 2615 2616inline __vector signed short 2617vec_max (__vector signed short a1, __vector signed short a2) 2618{ 2619 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2); 2620} 2621 2622inline __vector unsigned int 2623vec_max (__vector __bool int a1, __vector unsigned int a2) 2624{ 2625 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2); 2626} 2627 2628inline __vector unsigned int 2629vec_max (__vector unsigned int a1, __vector __bool int a2) 2630{ 2631 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2); 2632} 2633 2634inline __vector unsigned int 2635vec_max (__vector unsigned int a1, __vector unsigned int a2) 2636{ 2637 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2); 2638} 2639 2640inline __vector signed int 2641vec_max (__vector __bool int a1, __vector signed int a2) 2642{ 2643 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2); 2644} 2645 2646inline __vector signed int 2647vec_max (__vector signed int a1, __vector __bool int a2) 2648{ 2649 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2); 2650} 2651 2652inline __vector signed int 2653vec_max (__vector signed int a1, __vector signed int a2) 2654{ 2655 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2); 2656} 2657 2658inline __vector float 2659vec_max (__vector float a1, __vector float a2) 2660{ 2661 return (__vector float) __builtin_altivec_vmaxfp ((__vector float) a1, (__vector float) a2); 2662} 2663 2664/* vec_vmaxfp */ 2665 2666inline __vector float 2667vec_vmaxfp (__vector float a1, __vector float a2) 2668{ 2669 return (__vector float) __builtin_altivec_vmaxfp ((__vector float) a1, (__vector float) a2); 2670} 2671 2672/* vec_vmaxsw */ 2673 2674inline __vector signed int 2675vec_vmaxsw (__vector __bool int a1, __vector signed int a2) 2676{ 2677 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2); 2678} 2679 2680inline __vector signed int 2681vec_vmaxsw (__vector signed int a1, __vector __bool int a2) 2682{ 2683 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2); 2684} 2685 2686inline __vector signed int 2687vec_vmaxsw (__vector signed int a1, __vector signed int a2) 2688{ 2689 return (__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) a1, (__vector signed int) a2); 2690} 2691 2692/* vec_vmaxuw */ 2693 2694inline __vector unsigned int 2695vec_vmaxuw (__vector __bool int a1, __vector unsigned int a2) 2696{ 2697 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2); 2698} 2699 2700inline __vector unsigned int 2701vec_vmaxuw (__vector unsigned int a1, __vector __bool int a2) 2702{ 2703 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2); 2704} 2705 2706inline __vector unsigned int 2707vec_vmaxuw (__vector unsigned int a1, __vector unsigned int a2) 2708{ 2709 return (__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) a1, (__vector signed int) a2); 2710} 2711 2712/* vec_vmaxsh */ 2713 2714inline __vector signed short 2715vec_vmaxsh (__vector __bool short a1, __vector signed short a2) 2716{ 2717 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2); 2718} 2719 2720inline __vector signed short 2721vec_vmaxsh (__vector signed short a1, __vector __bool short a2) 2722{ 2723 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2); 2724} 2725 2726inline __vector signed short 2727vec_vmaxsh (__vector signed short a1, __vector signed short a2) 2728{ 2729 return (__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) a1, (__vector signed short) a2); 2730} 2731 2732/* vec_vmaxuh */ 2733 2734inline __vector unsigned short 2735vec_vmaxuh (__vector __bool short a1, __vector unsigned short a2) 2736{ 2737 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2); 2738} 2739 2740inline __vector unsigned short 2741vec_vmaxuh (__vector unsigned short a1, __vector __bool short a2) 2742{ 2743 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2); 2744} 2745 2746inline __vector unsigned short 2747vec_vmaxuh (__vector unsigned short a1, __vector unsigned short a2) 2748{ 2749 return (__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) a1, (__vector signed short) a2); 2750} 2751 2752/* vec_vmaxsb */ 2753 2754inline __vector signed char 2755vec_vmaxsb (__vector __bool char a1, __vector signed char a2) 2756{ 2757 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2); 2758} 2759 2760inline __vector signed char 2761vec_vmaxsb (__vector signed char a1, __vector __bool char a2) 2762{ 2763 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2); 2764} 2765 2766inline __vector signed char 2767vec_vmaxsb (__vector signed char a1, __vector signed char a2) 2768{ 2769 return (__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) a1, (__vector signed char) a2); 2770} 2771 2772/* vec_vmaxub */ 2773 2774inline __vector unsigned char 2775vec_vmaxub (__vector __bool char a1, __vector unsigned char a2) 2776{ 2777 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2); 2778} 2779 2780inline __vector unsigned char 2781vec_vmaxub (__vector unsigned char a1, __vector __bool char a2) 2782{ 2783 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2); 2784} 2785 2786inline __vector unsigned char 2787vec_vmaxub (__vector unsigned char a1, __vector unsigned char a2) 2788{ 2789 return (__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) a1, (__vector signed char) a2); 2790} 2791 2792/* vec_mergeh */ 2793 2794inline __vector __bool char 2795vec_mergeh (__vector __bool char a1, __vector __bool char a2) 2796{ 2797 return (__vector __bool char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2); 2798} 2799 2800inline __vector signed char 2801vec_mergeh (__vector signed char a1, __vector signed char a2) 2802{ 2803 return (__vector signed char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2); 2804} 2805 2806inline __vector unsigned char 2807vec_mergeh (__vector unsigned char a1, __vector unsigned char a2) 2808{ 2809 return (__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2); 2810} 2811 2812inline __vector __bool short 2813vec_mergeh (__vector __bool short a1, __vector __bool short a2) 2814{ 2815 return (__vector __bool short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2); 2816} 2817 2818inline __vector __pixel 2819vec_mergeh (__vector __pixel a1, __vector __pixel a2) 2820{ 2821 return (__vector __pixel) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2); 2822} 2823 2824inline __vector signed short 2825vec_mergeh (__vector signed short a1, __vector signed short a2) 2826{ 2827 return (__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2); 2828} 2829 2830inline __vector unsigned short 2831vec_mergeh (__vector unsigned short a1, __vector unsigned short a2) 2832{ 2833 return (__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2); 2834} 2835 2836inline __vector float 2837vec_mergeh (__vector float a1, __vector float a2) 2838{ 2839 return (__vector float) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2); 2840} 2841 2842inline __vector __bool int 2843vec_mergeh (__vector __bool int a1, __vector __bool int a2) 2844{ 2845 return (__vector __bool int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2); 2846} 2847 2848inline __vector signed int 2849vec_mergeh (__vector signed int a1, __vector signed int a2) 2850{ 2851 return (__vector signed int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2); 2852} 2853 2854inline __vector unsigned int 2855vec_mergeh (__vector unsigned int a1, __vector unsigned int a2) 2856{ 2857 return (__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2); 2858} 2859 2860/* vec_vmrghw */ 2861 2862inline __vector float 2863vec_vmrghw (__vector float a1, __vector float a2) 2864{ 2865 return (__vector float) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2); 2866} 2867 2868inline __vector __bool int 2869vec_vmrghw (__vector __bool int a1, __vector __bool int a2) 2870{ 2871 return (__vector __bool int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2); 2872} 2873 2874inline __vector signed int 2875vec_vmrghw (__vector signed int a1, __vector signed int a2) 2876{ 2877 return (__vector signed int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2); 2878} 2879 2880inline __vector unsigned int 2881vec_vmrghw (__vector unsigned int a1, __vector unsigned int a2) 2882{ 2883 return (__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) a1, (__vector signed int) a2); 2884} 2885 2886/* vec_vmrghh */ 2887 2888inline __vector __bool short 2889vec_vmrghh (__vector __bool short a1, __vector __bool short a2) 2890{ 2891 return (__vector __bool short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2); 2892} 2893 2894inline __vector signed short 2895vec_vmrghh (__vector signed short a1, __vector signed short a2) 2896{ 2897 return (__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2); 2898} 2899 2900inline __vector unsigned short 2901vec_vmrghh (__vector unsigned short a1, __vector unsigned short a2) 2902{ 2903 return (__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2); 2904} 2905 2906inline __vector __pixel 2907vec_vmrghh (__vector __pixel a1, __vector __pixel a2) 2908{ 2909 return (__vector __pixel) __builtin_altivec_vmrghh ((__vector signed short) a1, (__vector signed short) a2); 2910} 2911 2912/* vec_vmrghb */ 2913 2914inline __vector __bool char 2915vec_vmrghb (__vector __bool char a1, __vector __bool char a2) 2916{ 2917 return (__vector __bool char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2); 2918} 2919 2920inline __vector signed char 2921vec_vmrghb (__vector signed char a1, __vector signed char a2) 2922{ 2923 return (__vector signed char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2); 2924} 2925 2926inline __vector unsigned char 2927vec_vmrghb (__vector unsigned char a1, __vector unsigned char a2) 2928{ 2929 return (__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) a1, (__vector signed char) a2); 2930} 2931 2932/* vec_mergel */ 2933 2934inline __vector __bool char 2935vec_mergel (__vector __bool char a1, __vector __bool char a2) 2936{ 2937 return (__vector __bool char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2); 2938} 2939 2940inline __vector signed char 2941vec_mergel (__vector signed char a1, __vector signed char a2) 2942{ 2943 return (__vector signed char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2); 2944} 2945 2946inline __vector unsigned char 2947vec_mergel (__vector unsigned char a1, __vector unsigned char a2) 2948{ 2949 return (__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2); 2950} 2951 2952inline __vector __bool short 2953vec_mergel (__vector __bool short a1, __vector __bool short a2) 2954{ 2955 return (__vector __bool short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2); 2956} 2957 2958inline __vector __pixel 2959vec_mergel (__vector __pixel a1, __vector __pixel a2) 2960{ 2961 return (__vector __pixel) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2); 2962} 2963 2964inline __vector signed short 2965vec_mergel (__vector signed short a1, __vector signed short a2) 2966{ 2967 return (__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2); 2968} 2969 2970inline __vector unsigned short 2971vec_mergel (__vector unsigned short a1, __vector unsigned short a2) 2972{ 2973 return (__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2); 2974} 2975 2976inline __vector float 2977vec_mergel (__vector float a1, __vector float a2) 2978{ 2979 return (__vector float) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2); 2980} 2981 2982inline __vector __bool int 2983vec_mergel (__vector __bool int a1, __vector __bool int a2) 2984{ 2985 return (__vector __bool int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2); 2986} 2987 2988inline __vector signed int 2989vec_mergel (__vector signed int a1, __vector signed int a2) 2990{ 2991 return (__vector signed int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2); 2992} 2993 2994inline __vector unsigned int 2995vec_mergel (__vector unsigned int a1, __vector unsigned int a2) 2996{ 2997 return (__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2); 2998} 2999 3000/* vec_vmrglw */ 3001 3002inline __vector float 3003vec_vmrglw (__vector float a1, __vector float a2) 3004{ 3005 return (__vector float) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2); 3006} 3007 3008inline __vector signed int 3009vec_vmrglw (__vector signed int a1, __vector signed int a2) 3010{ 3011 return (__vector signed int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2); 3012} 3013 3014inline __vector unsigned int 3015vec_vmrglw (__vector unsigned int a1, __vector unsigned int a2) 3016{ 3017 return (__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2); 3018} 3019 3020inline __vector __bool int 3021vec_vmrglw (__vector __bool int a1, __vector __bool int a2) 3022{ 3023 return (__vector __bool int) __builtin_altivec_vmrglw ((__vector signed int) a1, (__vector signed int) a2); 3024} 3025 3026/* vec_vmrglh */ 3027 3028inline __vector __bool short 3029vec_vmrglh (__vector __bool short a1, __vector __bool short a2) 3030{ 3031 return (__vector __bool short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2); 3032} 3033 3034inline __vector signed short 3035vec_vmrglh (__vector signed short a1, __vector signed short a2) 3036{ 3037 return (__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2); 3038} 3039 3040inline __vector unsigned short 3041vec_vmrglh (__vector unsigned short a1, __vector unsigned short a2) 3042{ 3043 return (__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2); 3044} 3045 3046inline __vector __pixel 3047vec_vmrglh (__vector __pixel a1, __vector __pixel a2) 3048{ 3049 return (__vector __pixel) __builtin_altivec_vmrglh ((__vector signed short) a1, (__vector signed short) a2); 3050} 3051 3052/* vec_vmrglb */ 3053 3054inline __vector __bool char 3055vec_vmrglb (__vector __bool char a1, __vector __bool char a2) 3056{ 3057 return (__vector __bool char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2); 3058} 3059 3060inline __vector signed char 3061vec_vmrglb (__vector signed char a1, __vector signed char a2) 3062{ 3063 return (__vector signed char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2); 3064} 3065 3066inline __vector unsigned char 3067vec_vmrglb (__vector unsigned char a1, __vector unsigned char a2) 3068{ 3069 return (__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) a1, (__vector signed char) a2); 3070} 3071 3072/* vec_mfvscr */ 3073 3074inline __vector unsigned short 3075vec_mfvscr (void) 3076{ 3077 return (__vector unsigned short) __builtin_altivec_mfvscr (); 3078} 3079 3080/* vec_min */ 3081 3082inline __vector unsigned char 3083vec_min (__vector __bool char a1, __vector unsigned char a2) 3084{ 3085 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2); 3086} 3087 3088inline __vector unsigned char 3089vec_min (__vector unsigned char a1, __vector __bool char a2) 3090{ 3091 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2); 3092} 3093 3094inline __vector unsigned char 3095vec_min (__vector unsigned char a1, __vector unsigned char a2) 3096{ 3097 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2); 3098} 3099 3100inline __vector signed char 3101vec_min (__vector __bool char a1, __vector signed char a2) 3102{ 3103 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2); 3104} 3105 3106inline __vector signed char 3107vec_min (__vector signed char a1, __vector __bool char a2) 3108{ 3109 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2); 3110} 3111 3112inline __vector signed char 3113vec_min (__vector signed char a1, __vector signed char a2) 3114{ 3115 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2); 3116} 3117 3118inline __vector unsigned short 3119vec_min (__vector __bool short a1, __vector unsigned short a2) 3120{ 3121 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2); 3122} 3123 3124inline __vector unsigned short 3125vec_min (__vector unsigned short a1, __vector __bool short a2) 3126{ 3127 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2); 3128} 3129 3130inline __vector unsigned short 3131vec_min (__vector unsigned short a1, __vector unsigned short a2) 3132{ 3133 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2); 3134} 3135 3136inline __vector signed short 3137vec_min (__vector __bool short a1, __vector signed short a2) 3138{ 3139 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2); 3140} 3141 3142inline __vector signed short 3143vec_min (__vector signed short a1, __vector __bool short a2) 3144{ 3145 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2); 3146} 3147 3148inline __vector signed short 3149vec_min (__vector signed short a1, __vector signed short a2) 3150{ 3151 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2); 3152} 3153 3154inline __vector unsigned int 3155vec_min (__vector __bool int a1, __vector unsigned int a2) 3156{ 3157 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2); 3158} 3159 3160inline __vector unsigned int 3161vec_min (__vector unsigned int a1, __vector __bool int a2) 3162{ 3163 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2); 3164} 3165 3166inline __vector unsigned int 3167vec_min (__vector unsigned int a1, __vector unsigned int a2) 3168{ 3169 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2); 3170} 3171 3172inline __vector signed int 3173vec_min (__vector __bool int a1, __vector signed int a2) 3174{ 3175 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2); 3176} 3177 3178inline __vector signed int 3179vec_min (__vector signed int a1, __vector __bool int a2) 3180{ 3181 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2); 3182} 3183 3184inline __vector signed int 3185vec_min (__vector signed int a1, __vector signed int a2) 3186{ 3187 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2); 3188} 3189 3190inline __vector float 3191vec_min (__vector float a1, __vector float a2) 3192{ 3193 return (__vector float) __builtin_altivec_vminfp ((__vector float) a1, (__vector float) a2); 3194} 3195 3196/* vec_vminfp */ 3197 3198inline __vector float 3199vec_vminfp (__vector float a1, __vector float a2) 3200{ 3201 return (__vector float) __builtin_altivec_vminfp ((__vector float) a1, (__vector float) a2); 3202} 3203 3204/* vec_vminsw */ 3205 3206inline __vector signed int 3207vec_vminsw (__vector __bool int a1, __vector signed int a2) 3208{ 3209 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2); 3210} 3211 3212inline __vector signed int 3213vec_vminsw (__vector signed int a1, __vector __bool int a2) 3214{ 3215 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2); 3216} 3217 3218inline __vector signed int 3219vec_vminsw (__vector signed int a1, __vector signed int a2) 3220{ 3221 return (__vector signed int) __builtin_altivec_vminsw ((__vector signed int) a1, (__vector signed int) a2); 3222} 3223 3224/* vec_vminuw */ 3225 3226inline __vector unsigned int 3227vec_vminuw (__vector __bool int a1, __vector unsigned int a2) 3228{ 3229 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2); 3230} 3231 3232inline __vector unsigned int 3233vec_vminuw (__vector unsigned int a1, __vector __bool int a2) 3234{ 3235 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2); 3236} 3237 3238inline __vector unsigned int 3239vec_vminuw (__vector unsigned int a1, __vector unsigned int a2) 3240{ 3241 return (__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) a1, (__vector signed int) a2); 3242} 3243 3244/* vec_vminsh */ 3245 3246inline __vector signed short 3247vec_vminsh (__vector __bool short a1, __vector signed short a2) 3248{ 3249 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2); 3250} 3251 3252inline __vector signed short 3253vec_vminsh (__vector signed short a1, __vector __bool short a2) 3254{ 3255 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2); 3256} 3257 3258inline __vector signed short 3259vec_vminsh (__vector signed short a1, __vector signed short a2) 3260{ 3261 return (__vector signed short) __builtin_altivec_vminsh ((__vector signed short) a1, (__vector signed short) a2); 3262} 3263 3264/* vec_vminuh */ 3265 3266inline __vector unsigned short 3267vec_vminuh (__vector __bool short a1, __vector unsigned short a2) 3268{ 3269 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2); 3270} 3271 3272inline __vector unsigned short 3273vec_vminuh (__vector unsigned short a1, __vector __bool short a2) 3274{ 3275 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2); 3276} 3277 3278inline __vector unsigned short 3279vec_vminuh (__vector unsigned short a1, __vector unsigned short a2) 3280{ 3281 return (__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) a1, (__vector signed short) a2); 3282} 3283 3284/* vec_vminsb */ 3285 3286inline __vector signed char 3287vec_vminsb (__vector __bool char a1, __vector signed char a2) 3288{ 3289 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2); 3290} 3291 3292inline __vector signed char 3293vec_vminsb (__vector signed char a1, __vector __bool char a2) 3294{ 3295 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2); 3296} 3297 3298inline __vector signed char 3299vec_vminsb (__vector signed char a1, __vector signed char a2) 3300{ 3301 return (__vector signed char) __builtin_altivec_vminsb ((__vector signed char) a1, (__vector signed char) a2); 3302} 3303 3304/* vec_vminub */ 3305 3306inline __vector unsigned char 3307vec_vminub (__vector __bool char a1, __vector unsigned char a2) 3308{ 3309 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2); 3310} 3311 3312inline __vector unsigned char 3313vec_vminub (__vector unsigned char a1, __vector __bool char a2) 3314{ 3315 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2); 3316} 3317 3318inline __vector unsigned char 3319vec_vminub (__vector unsigned char a1, __vector unsigned char a2) 3320{ 3321 return (__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) a1, (__vector signed char) a2); 3322} 3323 3324/* vec_mladd */ 3325 3326inline __vector signed short 3327vec_mladd (__vector signed short a1, __vector signed short a2, __vector signed short a3) 3328{ 3329 return (__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3); 3330} 3331 3332inline __vector signed short 3333vec_mladd (__vector signed short a1, __vector unsigned short a2, __vector unsigned short a3) 3334{ 3335 return (__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3); 3336} 3337 3338inline __vector signed short 3339vec_mladd (__vector unsigned short a1, __vector signed short a2, __vector signed short a3) 3340{ 3341 return (__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3); 3342} 3343 3344inline __vector unsigned short 3345vec_mladd (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned short a3) 3346{ 3347 return (__vector unsigned short) __builtin_altivec_vmladduhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3); 3348} 3349 3350/* vec_mradds */ 3351 3352inline __vector signed short 3353vec_mradds (__vector signed short a1, __vector signed short a2, __vector signed short a3) 3354{ 3355 return (__vector signed short) __builtin_altivec_vmhraddshs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed short) a3); 3356} 3357 3358/* vec_msum */ 3359 3360inline __vector unsigned int 3361vec_msum (__vector unsigned char a1, __vector unsigned char a2, __vector unsigned int a3) 3362{ 3363 return (__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) a1, (__vector signed char) a2, (__vector signed int) a3); 3364} 3365 3366inline __vector signed int 3367vec_msum (__vector signed char a1, __vector unsigned char a2, __vector signed int a3) 3368{ 3369 return (__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) a1, (__vector signed char) a2, (__vector signed int) a3); 3370} 3371 3372inline __vector unsigned int 3373vec_msum (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3) 3374{ 3375 return (__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3); 3376} 3377 3378inline __vector signed int 3379vec_msum (__vector signed short a1, __vector signed short a2, __vector signed int a3) 3380{ 3381 return (__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3); 3382} 3383 3384/* vec_vmsumshm */ 3385 3386inline __vector signed int 3387vec_vmsumshm (__vector signed short a1, __vector signed short a2, __vector signed int a3) 3388{ 3389 return (__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3); 3390} 3391 3392/* vec_vmsumuhm */ 3393 3394inline __vector unsigned int 3395vec_vmsumuhm (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3) 3396{ 3397 return (__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3); 3398} 3399 3400/* vec_vmsummbm */ 3401 3402inline __vector signed int 3403vec_vmsummbm (__vector signed char a1, __vector unsigned char a2, __vector signed int a3) 3404{ 3405 return (__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) a1, (__vector signed char) a2, (__vector signed int) a3); 3406} 3407 3408/* vec_vmsumubm */ 3409 3410inline __vector unsigned int 3411vec_vmsumubm (__vector unsigned char a1, __vector unsigned char a2, __vector unsigned int a3) 3412{ 3413 return (__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) a1, (__vector signed char) a2, (__vector signed int) a3); 3414} 3415 3416/* vec_msums */ 3417 3418inline __vector unsigned int 3419vec_msums (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3) 3420{ 3421 return (__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3); 3422} 3423 3424inline __vector signed int 3425vec_msums (__vector signed short a1, __vector signed short a2, __vector signed int a3) 3426{ 3427 return (__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3); 3428} 3429 3430/* vec_vmsumshs */ 3431 3432inline __vector signed int 3433vec_vmsumshs (__vector signed short a1, __vector signed short a2, __vector signed int a3) 3434{ 3435 return (__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3); 3436} 3437 3438/* vec_vmsumuhs */ 3439 3440inline __vector unsigned int 3441vec_vmsumuhs (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned int a3) 3442{ 3443 return (__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) a1, (__vector signed short) a2, (__vector signed int) a3); 3444} 3445 3446/* vec_mtvscr */ 3447 3448inline void 3449vec_mtvscr (__vector signed int a1) 3450{ 3451 __builtin_altivec_mtvscr ((__vector signed int) a1); 3452} 3453 3454inline void 3455vec_mtvscr (__vector unsigned int a1) 3456{ 3457 __builtin_altivec_mtvscr ((__vector signed int) a1); 3458} 3459 3460inline void 3461vec_mtvscr (__vector __bool int a1) 3462{ 3463 __builtin_altivec_mtvscr ((__vector signed int) a1); 3464} 3465 3466inline void 3467vec_mtvscr (__vector signed short a1) 3468{ 3469 __builtin_altivec_mtvscr ((__vector signed int) a1); 3470} 3471 3472inline void 3473vec_mtvscr (__vector unsigned short a1) 3474{ 3475 __builtin_altivec_mtvscr ((__vector signed int) a1); 3476} 3477 3478inline void 3479vec_mtvscr (__vector __bool short a1) 3480{ 3481 __builtin_altivec_mtvscr ((__vector signed int) a1); 3482} 3483 3484inline void 3485vec_mtvscr (__vector __pixel a1) 3486{ 3487 __builtin_altivec_mtvscr ((__vector signed int) a1); 3488} 3489 3490inline void 3491vec_mtvscr (__vector signed char a1) 3492{ 3493 __builtin_altivec_mtvscr ((__vector signed int) a1); 3494} 3495 3496inline void 3497vec_mtvscr (__vector unsigned char a1) 3498{ 3499 __builtin_altivec_mtvscr ((__vector signed int) a1); 3500} 3501 3502inline void 3503vec_mtvscr (__vector __bool char a1) 3504{ 3505 __builtin_altivec_mtvscr ((__vector signed int) a1); 3506} 3507 3508/* vec_mule */ 3509 3510inline __vector unsigned short 3511vec_mule (__vector unsigned char a1, __vector unsigned char a2) 3512{ 3513 return (__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) a1, (__vector signed char) a2); 3514} 3515 3516inline __vector signed short 3517vec_mule (__vector signed char a1, __vector signed char a2) 3518{ 3519 return (__vector signed short) __builtin_altivec_vmulesb ((__vector signed char) a1, (__vector signed char) a2); 3520} 3521 3522inline __vector unsigned int 3523vec_mule (__vector unsigned short a1, __vector unsigned short a2) 3524{ 3525 return (__vector unsigned int) __builtin_altivec_vmuleuh ((__vector signed short) a1, (__vector signed short) a2); 3526} 3527 3528inline __vector signed int 3529vec_mule (__vector signed short a1, __vector signed short a2) 3530{ 3531 return (__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) a1, (__vector signed short) a2); 3532} 3533 3534/* vec_vmulesh */ 3535 3536inline __vector signed int 3537vec_vmulesh (__vector signed short a1, __vector signed short a2) 3538{ 3539 return (__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) a1, (__vector signed short) a2); 3540} 3541 3542/* vec_vmuleuh */ 3543 3544inline __vector unsigned int 3545vec_vmuleuh (__vector unsigned short a1, __vector unsigned short a2) 3546{ 3547 return (__vector unsigned int) __builtin_altivec_vmuleuh ((__vector signed short) a1, (__vector signed short) a2); 3548} 3549 3550/* vec_vmulesb */ 3551 3552inline __vector signed short 3553vec_vmulesb (__vector signed char a1, __vector signed char a2) 3554{ 3555 return (__vector signed short) __builtin_altivec_vmuleub ((__vector signed char) a1, (__vector signed char) a2); 3556} 3557 3558/* vec_vmuleub */ 3559 3560inline __vector unsigned short 3561vec_vmuleub (__vector unsigned char a1, __vector unsigned char a2) 3562{ 3563 return (__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) a1, (__vector signed char) a2); 3564} 3565 3566/* vec_mulo */ 3567 3568inline __vector unsigned short 3569vec_mulo (__vector unsigned char a1, __vector unsigned char a2) 3570{ 3571 return (__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) a1, (__vector signed char) a2); 3572} 3573 3574inline __vector signed short 3575vec_mulo (__vector signed char a1, __vector signed char a2) 3576{ 3577 return (__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) a1, (__vector signed char) a2); 3578} 3579 3580inline __vector unsigned int 3581vec_mulo (__vector unsigned short a1, __vector unsigned short a2) 3582{ 3583 return (__vector unsigned int) __builtin_altivec_vmulouh ((__vector signed short) a1, (__vector signed short) a2); 3584} 3585 3586inline __vector signed int 3587vec_mulo (__vector signed short a1, __vector signed short a2) 3588{ 3589 return (__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) a1, (__vector signed short) a2); 3590} 3591 3592/* vec_vmulosh */ 3593 3594inline __vector signed int 3595vec_vmulosh (__vector signed short a1, __vector signed short a2) 3596{ 3597 return (__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) a1, (__vector signed short) a2); 3598} 3599 3600/* vec_vmulouh */ 3601 3602inline __vector unsigned int 3603vec_vmulouh (__vector unsigned short a1, __vector unsigned short a2) 3604{ 3605 return (__vector unsigned int) __builtin_altivec_vmulouh ((__vector signed short) a1, (__vector signed short) a2); 3606} 3607 3608/* vec_vmulosb */ 3609 3610inline __vector signed short 3611vec_vmulosb (__vector signed char a1, __vector signed char a2) 3612{ 3613 return (__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) a1, (__vector signed char) a2); 3614} 3615 3616/* vec_vmuloub */ 3617 3618inline __vector unsigned short 3619vec_vmuloub (__vector unsigned char a1, __vector unsigned char a2) 3620{ 3621 return (__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) a1, (__vector signed char) a2); 3622} 3623 3624/* vec_nmsub */ 3625 3626inline __vector float 3627vec_nmsub (__vector float a1, __vector float a2, __vector float a3) 3628{ 3629 return (__vector float) __builtin_altivec_vnmsubfp ((__vector float) a1, (__vector float) a2, (__vector float) a3); 3630} 3631 3632/* vec_nor */ 3633 3634inline __vector float 3635vec_nor (__vector float a1, __vector float a2) 3636{ 3637 return (__vector float) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2); 3638} 3639 3640inline __vector signed int 3641vec_nor (__vector signed int a1, __vector signed int a2) 3642{ 3643 return (__vector signed int) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2); 3644} 3645 3646inline __vector unsigned int 3647vec_nor (__vector unsigned int a1, __vector unsigned int a2) 3648{ 3649 return (__vector unsigned int) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2); 3650} 3651 3652inline __vector __bool int 3653vec_nor (__vector __bool int a1, __vector __bool int a2) 3654{ 3655 return (__vector __bool int) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2); 3656} 3657 3658inline __vector signed short 3659vec_nor (__vector signed short a1, __vector signed short a2) 3660{ 3661 return (__vector signed short) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2); 3662} 3663 3664inline __vector unsigned short 3665vec_nor (__vector unsigned short a1, __vector unsigned short a2) 3666{ 3667 return (__vector unsigned short) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2); 3668} 3669 3670inline __vector __bool short 3671vec_nor (__vector __bool short a1, __vector __bool short a2) 3672{ 3673 return (__vector __bool short) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2); 3674} 3675 3676inline __vector signed char 3677vec_nor (__vector signed char a1, __vector signed char a2) 3678{ 3679 return (__vector signed char) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2); 3680} 3681 3682inline __vector unsigned char 3683vec_nor (__vector unsigned char a1, __vector unsigned char a2) 3684{ 3685 return (__vector unsigned char) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2); 3686} 3687 3688inline __vector __bool char 3689vec_nor (__vector __bool char a1, __vector __bool char a2) 3690{ 3691 return (__vector __bool char) __builtin_altivec_vnor ((__vector signed int) a1, (__vector signed int) a2); 3692} 3693 3694/* vec_or */ 3695 3696inline __vector float 3697vec_or (__vector float a1, __vector float a2) 3698{ 3699 return (__vector float) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3700} 3701 3702inline __vector float 3703vec_or (__vector float a1, __vector __bool int a2) 3704{ 3705 return (__vector float) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3706} 3707 3708inline __vector float 3709vec_or (__vector __bool int a1, __vector float a2) 3710{ 3711 return (__vector float) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3712} 3713 3714inline __vector __bool int 3715vec_or (__vector __bool int a1, __vector __bool int a2) 3716{ 3717 return (__vector __bool int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3718} 3719 3720inline __vector signed int 3721vec_or (__vector __bool int a1, __vector signed int a2) 3722{ 3723 return (__vector signed int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3724} 3725 3726inline __vector signed int 3727vec_or (__vector signed int a1, __vector __bool int a2) 3728{ 3729 return (__vector signed int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3730} 3731 3732inline __vector signed int 3733vec_or (__vector signed int a1, __vector signed int a2) 3734{ 3735 return (__vector signed int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3736} 3737 3738inline __vector unsigned int 3739vec_or (__vector __bool int a1, __vector unsigned int a2) 3740{ 3741 return (__vector unsigned int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3742} 3743 3744inline __vector unsigned int 3745vec_or (__vector unsigned int a1, __vector __bool int a2) 3746{ 3747 return (__vector unsigned int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3748} 3749 3750inline __vector unsigned int 3751vec_or (__vector unsigned int a1, __vector unsigned int a2) 3752{ 3753 return (__vector unsigned int) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3754} 3755 3756inline __vector __bool short 3757vec_or (__vector __bool short a1, __vector __bool short a2) 3758{ 3759 return (__vector __bool short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3760} 3761 3762inline __vector signed short 3763vec_or (__vector __bool short a1, __vector signed short a2) 3764{ 3765 return (__vector signed short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3766} 3767 3768inline __vector signed short 3769vec_or (__vector signed short a1, __vector __bool short a2) 3770{ 3771 return (__vector signed short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3772} 3773 3774inline __vector signed short 3775vec_or (__vector signed short a1, __vector signed short a2) 3776{ 3777 return (__vector signed short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3778} 3779 3780inline __vector unsigned short 3781vec_or (__vector __bool short a1, __vector unsigned short a2) 3782{ 3783 return (__vector unsigned short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3784} 3785 3786inline __vector unsigned short 3787vec_or (__vector unsigned short a1, __vector __bool short a2) 3788{ 3789 return (__vector unsigned short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3790} 3791 3792inline __vector unsigned short 3793vec_or (__vector unsigned short a1, __vector unsigned short a2) 3794{ 3795 return (__vector unsigned short) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3796} 3797 3798inline __vector signed char 3799vec_or (__vector __bool char a1, __vector signed char a2) 3800{ 3801 return (__vector signed char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3802} 3803 3804inline __vector __bool char 3805vec_or (__vector __bool char a1, __vector __bool char a2) 3806{ 3807 return (__vector __bool char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3808} 3809 3810inline __vector signed char 3811vec_or (__vector signed char a1, __vector __bool char a2) 3812{ 3813 return (__vector signed char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3814} 3815 3816inline __vector signed char 3817vec_or (__vector signed char a1, __vector signed char a2) 3818{ 3819 return (__vector signed char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3820} 3821 3822inline __vector unsigned char 3823vec_or (__vector __bool char a1, __vector unsigned char a2) 3824{ 3825 return (__vector unsigned char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3826} 3827 3828inline __vector unsigned char 3829vec_or (__vector unsigned char a1, __vector __bool char a2) 3830{ 3831 return (__vector unsigned char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3832} 3833 3834inline __vector unsigned char 3835vec_or (__vector unsigned char a1, __vector unsigned char a2) 3836{ 3837 return (__vector unsigned char) __builtin_altivec_vor ((__vector signed int) a1, (__vector signed int) a2); 3838} 3839 3840/* vec_pack */ 3841 3842inline __vector signed char 3843vec_pack (__vector signed short a1, __vector signed short a2) 3844{ 3845 return (__vector signed char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2); 3846} 3847 3848inline __vector unsigned char 3849vec_pack (__vector unsigned short a1, __vector unsigned short a2) 3850{ 3851 return (__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2); 3852} 3853 3854inline __vector __bool char 3855vec_pack (__vector __bool short a1, __vector __bool short a2) 3856{ 3857 return (__vector __bool char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2); 3858} 3859 3860inline __vector signed short 3861vec_pack (__vector signed int a1, __vector signed int a2) 3862{ 3863 return (__vector signed short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2); 3864} 3865 3866inline __vector unsigned short 3867vec_pack (__vector unsigned int a1, __vector unsigned int a2) 3868{ 3869 return (__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2); 3870} 3871 3872inline __vector __bool short 3873vec_pack (__vector __bool int a1, __vector __bool int a2) 3874{ 3875 return (__vector __bool short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2); 3876} 3877 3878/* vec_vpkuwum */ 3879 3880inline __vector __bool short 3881vec_vpkuwum (__vector __bool int a1, __vector __bool int a2) 3882{ 3883 return (__vector __bool short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2); 3884} 3885 3886inline __vector signed short 3887vec_vpkuwum (__vector signed int a1, __vector signed int a2) 3888{ 3889 return (__vector signed short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2); 3890} 3891 3892inline __vector unsigned short 3893vec_vpkuwum (__vector unsigned int a1, __vector unsigned int a2) 3894{ 3895 return (__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) a1, (__vector signed int) a2); 3896} 3897 3898/* vec_vpkuhum */ 3899 3900inline __vector __bool char 3901vec_vpkuhum (__vector __bool short a1, __vector __bool short a2) 3902{ 3903 return (__vector __bool char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2); 3904} 3905 3906inline __vector signed char 3907vec_vpkuhum (__vector signed short a1, __vector signed short a2) 3908{ 3909 return (__vector signed char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2); 3910} 3911 3912inline __vector unsigned char 3913vec_vpkuhum (__vector unsigned short a1, __vector unsigned short a2) 3914{ 3915 return (__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) a1, (__vector signed short) a2); 3916} 3917 3918/* vec_packpx */ 3919 3920inline __vector __pixel 3921vec_packpx (__vector unsigned int a1, __vector unsigned int a2) 3922{ 3923 return (__vector __pixel) __builtin_altivec_vpkpx ((__vector signed int) a1, (__vector signed int) a2); 3924} 3925 3926/* vec_packs */ 3927 3928inline __vector unsigned char 3929vec_packs (__vector unsigned short a1, __vector unsigned short a2) 3930{ 3931 return (__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) a1, (__vector signed short) a2); 3932} 3933 3934inline __vector signed char 3935vec_packs (__vector signed short a1, __vector signed short a2) 3936{ 3937 return (__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) a1, (__vector signed short) a2); 3938} 3939 3940inline __vector unsigned short 3941vec_packs (__vector unsigned int a1, __vector unsigned int a2) 3942{ 3943 return (__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) a1, (__vector signed int) a2); 3944} 3945 3946inline __vector signed short 3947vec_packs (__vector signed int a1, __vector signed int a2) 3948{ 3949 return (__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) a1, (__vector signed int) a2); 3950} 3951 3952/* vec_vpkswss */ 3953 3954inline __vector signed short 3955vec_vpkswss (__vector signed int a1, __vector signed int a2) 3956{ 3957 return (__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) a1, (__vector signed int) a2); 3958} 3959 3960/* vec_vpkuwus */ 3961 3962inline __vector unsigned short 3963vec_vpkuwus (__vector unsigned int a1, __vector unsigned int a2) 3964{ 3965 return (__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) a1, (__vector signed int) a2); 3966} 3967 3968/* vec_vpkshss */ 3969 3970inline __vector signed char 3971vec_vpkshss (__vector signed short a1, __vector signed short a2) 3972{ 3973 return (__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) a1, (__vector signed short) a2); 3974} 3975 3976/* vec_vpkuhus */ 3977 3978inline __vector unsigned char 3979vec_vpkuhus (__vector unsigned short a1, __vector unsigned short a2) 3980{ 3981 return (__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) a1, (__vector signed short) a2); 3982} 3983 3984/* vec_packsu */ 3985 3986inline __vector unsigned char 3987vec_packsu (__vector unsigned short a1, __vector unsigned short a2) 3988{ 3989 return (__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) a1, (__vector signed short) a2); 3990} 3991 3992inline __vector unsigned char 3993vec_packsu (__vector signed short a1, __vector signed short a2) 3994{ 3995 return (__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) a1, (__vector signed short) a2); 3996} 3997 3998inline __vector unsigned short 3999vec_packsu (__vector unsigned int a1, __vector unsigned int a2) 4000{ 4001 return (__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) a1, (__vector signed int) a2); 4002} 4003 4004inline __vector unsigned short 4005vec_packsu (__vector signed int a1, __vector signed int a2) 4006{ 4007 return (__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) a1, (__vector signed int) a2); 4008} 4009 4010/* vec_vpkswus */ 4011 4012inline __vector unsigned short 4013vec_vpkswus (__vector signed int a1, __vector signed int a2) 4014{ 4015 return (__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) a1, (__vector signed int) a2); 4016} 4017 4018/* vec_vpkshus */ 4019 4020inline __vector unsigned char 4021vec_vpkshus (__vector signed short a1, __vector signed short a2) 4022{ 4023 return (__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) a1, (__vector signed short) a2); 4024} 4025 4026/* vec_perm */ 4027 4028inline __vector float 4029vec_perm (__vector float a1, __vector float a2, __vector unsigned char a3) 4030{ 4031 return (__vector float) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4032} 4033 4034inline __vector signed int 4035vec_perm (__vector signed int a1, __vector signed int a2, __vector unsigned char a3) 4036{ 4037 return (__vector signed int) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4038} 4039 4040inline __vector unsigned int 4041vec_perm (__vector unsigned int a1, __vector unsigned int a2, __vector unsigned char a3) 4042{ 4043 return (__vector unsigned int) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4044} 4045 4046inline __vector __bool int 4047vec_perm (__vector __bool int a1, __vector __bool int a2, __vector unsigned char a3) 4048{ 4049 return (__vector __bool int) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4050} 4051 4052inline __vector signed short 4053vec_perm (__vector signed short a1, __vector signed short a2, __vector unsigned char a3) 4054{ 4055 return (__vector signed short) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4056} 4057 4058inline __vector unsigned short 4059vec_perm (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned char a3) 4060{ 4061 return (__vector unsigned short) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4062} 4063 4064inline __vector __bool short 4065vec_perm (__vector __bool short a1, __vector __bool short a2, __vector unsigned char a3) 4066{ 4067 return (__vector __bool short) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4068} 4069 4070inline __vector __pixel 4071vec_perm (__vector __pixel a1, __vector __pixel a2, __vector unsigned char a3) 4072{ 4073 return (__vector __pixel) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4074} 4075 4076inline __vector signed char 4077vec_perm (__vector signed char a1, __vector signed char a2, __vector unsigned char a3) 4078{ 4079 return (__vector signed char) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4080} 4081 4082inline __vector unsigned char 4083vec_perm (__vector unsigned char a1, __vector unsigned char a2, __vector unsigned char a3) 4084{ 4085 return (__vector unsigned char) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4086} 4087 4088inline __vector __bool char 4089vec_perm (__vector __bool char a1, __vector __bool char a2, __vector unsigned char a3) 4090{ 4091 return (__vector __bool char) __builtin_altivec_vperm_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed char) a3); 4092} 4093 4094/* vec_re */ 4095 4096inline __vector float 4097vec_re (__vector float a1) 4098{ 4099 return (__vector float) __builtin_altivec_vrefp ((__vector float) a1); 4100} 4101 4102/* vec_rl */ 4103 4104inline __vector signed char 4105vec_rl (__vector signed char a1, __vector unsigned char a2) 4106{ 4107 return (__vector signed char) __builtin_altivec_vrlb ((__vector signed char) a1, (__vector signed char) a2); 4108} 4109 4110inline __vector unsigned char 4111vec_rl (__vector unsigned char a1, __vector unsigned char a2) 4112{ 4113 return (__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) a1, (__vector signed char) a2); 4114} 4115 4116inline __vector signed short 4117vec_rl (__vector signed short a1, __vector unsigned short a2) 4118{ 4119 return (__vector signed short) __builtin_altivec_vrlh ((__vector signed short) a1, (__vector signed short) a2); 4120} 4121 4122inline __vector unsigned short 4123vec_rl (__vector unsigned short a1, __vector unsigned short a2) 4124{ 4125 return (__vector unsigned short) __builtin_altivec_vrlh ((__vector signed short) a1, (__vector signed short) a2); 4126} 4127 4128inline __vector signed int 4129vec_rl (__vector signed int a1, __vector unsigned int a2) 4130{ 4131 return (__vector signed int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2); 4132} 4133 4134inline __vector unsigned int 4135vec_rl (__vector unsigned int a1, __vector unsigned int a2) 4136{ 4137 return (__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2); 4138} 4139 4140/* vec_vrlw */ 4141 4142inline __vector signed int 4143vec_vrlw (__vector signed int a1, __vector unsigned int a2) 4144{ 4145 return (__vector signed int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2); 4146} 4147 4148inline __vector unsigned int 4149vec_vrlw (__vector unsigned int a1, __vector unsigned int a2) 4150{ 4151 return (__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) a1, (__vector signed int) a2); 4152} 4153 4154/* vec_vrlh */ 4155 4156inline __vector signed short 4157vec_vrlh (__vector signed short a1, __vector unsigned short a2) 4158{ 4159 return (__vector signed short) __builtin_altivec_vrlh ((__vector signed short) a1, (__vector signed short) a2); 4160} 4161 4162inline __vector unsigned short 4163vec_vrlh (__vector unsigned short a1, __vector unsigned short a2) 4164{ 4165 return (__vector unsigned short) __builtin_altivec_vrlh ((__vector signed short) a1, (__vector signed short) a2); 4166} 4167 4168/* vec_vrlb */ 4169 4170inline __vector signed char 4171vec_vrlb (__vector signed char a1, __vector unsigned char a2) 4172{ 4173 return (__vector signed char) __builtin_altivec_vrlb ((__vector signed char) a1, (__vector signed char) a2); 4174} 4175 4176inline __vector unsigned char 4177vec_vrlb (__vector unsigned char a1, __vector unsigned char a2) 4178{ 4179 return (__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) a1, (__vector signed char) a2); 4180} 4181 4182/* vec_round */ 4183 4184inline __vector float 4185vec_round (__vector float a1) 4186{ 4187 return (__vector float) __builtin_altivec_vrfin ((__vector float) a1); 4188} 4189 4190/* vec_rsqrte */ 4191 4192inline __vector float 4193vec_rsqrte (__vector float a1) 4194{ 4195 return (__vector float) __builtin_altivec_vrsqrtefp ((__vector float) a1); 4196} 4197 4198/* vec_sel */ 4199 4200inline __vector float 4201vec_sel (__vector float a1, __vector float a2, __vector __bool int a3) 4202{ 4203 return (__vector float) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4204} 4205 4206inline __vector float 4207vec_sel (__vector float a1, __vector float a2, __vector unsigned int a3) 4208{ 4209 return (__vector float) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4210} 4211 4212inline __vector signed int 4213vec_sel (__vector signed int a1, __vector signed int a2, __vector __bool int a3) 4214{ 4215 return (__vector signed int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4216} 4217 4218inline __vector signed int 4219vec_sel (__vector signed int a1, __vector signed int a2, __vector unsigned int a3) 4220{ 4221 return (__vector signed int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4222} 4223 4224inline __vector unsigned int 4225vec_sel (__vector unsigned int a1, __vector unsigned int a2, __vector __bool int a3) 4226{ 4227 return (__vector unsigned int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4228} 4229 4230inline __vector unsigned int 4231vec_sel (__vector unsigned int a1, __vector unsigned int a2, __vector unsigned int a3) 4232{ 4233 return (__vector unsigned int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4234} 4235 4236inline __vector __bool int 4237vec_sel (__vector __bool int a1, __vector __bool int a2, __vector __bool int a3) 4238{ 4239 return (__vector __bool int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4240} 4241 4242inline __vector __bool int 4243vec_sel (__vector __bool int a1, __vector __bool int a2, __vector unsigned int a3) 4244{ 4245 return (__vector __bool int) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4246} 4247 4248inline __vector signed short 4249vec_sel (__vector signed short a1, __vector signed short a2, __vector __bool short a3) 4250{ 4251 return (__vector signed short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4252} 4253 4254inline __vector signed short 4255vec_sel (__vector signed short a1, __vector signed short a2, __vector unsigned short a3) 4256{ 4257 return (__vector signed short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4258} 4259 4260inline __vector unsigned short 4261vec_sel (__vector unsigned short a1, __vector unsigned short a2, __vector __bool short a3) 4262{ 4263 return (__vector unsigned short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4264} 4265 4266inline __vector unsigned short 4267vec_sel (__vector unsigned short a1, __vector unsigned short a2, __vector unsigned short a3) 4268{ 4269 return (__vector unsigned short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4270} 4271 4272inline __vector __bool short 4273vec_sel (__vector __bool short a1, __vector __bool short a2, __vector __bool short a3) 4274{ 4275 return (__vector __bool short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4276} 4277 4278inline __vector __bool short 4279vec_sel (__vector __bool short a1, __vector __bool short a2, __vector unsigned short a3) 4280{ 4281 return (__vector __bool short) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4282} 4283 4284inline __vector signed char 4285vec_sel (__vector signed char a1, __vector signed char a2, __vector __bool char a3) 4286{ 4287 return (__vector signed char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4288} 4289 4290inline __vector signed char 4291vec_sel (__vector signed char a1, __vector signed char a2, __vector unsigned char a3) 4292{ 4293 return (__vector signed char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4294} 4295 4296inline __vector unsigned char 4297vec_sel (__vector unsigned char a1, __vector unsigned char a2, __vector __bool char a3) 4298{ 4299 return (__vector unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4300} 4301 4302inline __vector unsigned char 4303vec_sel (__vector unsigned char a1, __vector unsigned char a2, __vector unsigned char a3) 4304{ 4305 return (__vector unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4306} 4307 4308inline __vector __bool char 4309vec_sel (__vector __bool char a1, __vector __bool char a2, __vector __bool char a3) 4310{ 4311 return (__vector __bool char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4312} 4313 4314inline __vector __bool char 4315vec_sel (__vector __bool char a1, __vector __bool char a2, __vector unsigned char a3) 4316{ 4317 return (__vector __bool char) __builtin_altivec_vsel_4si ((__vector signed int) a1, (__vector signed int) a2, (__vector signed int) a3); 4318} 4319 4320/* vec_sl */ 4321 4322inline __vector signed char 4323vec_sl (__vector signed char a1, __vector unsigned char a2) 4324{ 4325 return (__vector signed char) __builtin_altivec_vslb ((__vector signed char) a1, (__vector signed char) a2); 4326} 4327 4328inline __vector unsigned char 4329vec_sl (__vector unsigned char a1, __vector unsigned char a2) 4330{ 4331 return (__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) a1, (__vector signed char) a2); 4332} 4333 4334inline __vector signed short 4335vec_sl (__vector signed short a1, __vector unsigned short a2) 4336{ 4337 return (__vector signed short) __builtin_altivec_vslh ((__vector signed short) a1, (__vector signed short) a2); 4338} 4339 4340inline __vector unsigned short 4341vec_sl (__vector unsigned short a1, __vector unsigned short a2) 4342{ 4343 return (__vector unsigned short) __builtin_altivec_vslh ((__vector signed short) a1, (__vector signed short) a2); 4344} 4345 4346inline __vector signed int 4347vec_sl (__vector signed int a1, __vector unsigned int a2) 4348{ 4349 return (__vector signed int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2); 4350} 4351 4352inline __vector unsigned int 4353vec_sl (__vector unsigned int a1, __vector unsigned int a2) 4354{ 4355 return (__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2); 4356} 4357 4358/* vec_vslw */ 4359 4360inline __vector signed int 4361vec_vslw (__vector signed int a1, __vector unsigned int a2) 4362{ 4363 return (__vector signed int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2); 4364} 4365 4366inline __vector unsigned int 4367vec_vslw (__vector unsigned int a1, __vector unsigned int a2) 4368{ 4369 return (__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) a1, (__vector signed int) a2); 4370} 4371 4372/* vec_vslh */ 4373 4374inline __vector signed short 4375vec_vslh (__vector signed short a1, __vector unsigned short a2) 4376{ 4377 return (__vector signed short) __builtin_altivec_vslh ((__vector signed short) a1, (__vector signed short) a2); 4378} 4379 4380inline __vector unsigned short 4381vec_vslh (__vector unsigned short a1, __vector unsigned short a2) 4382{ 4383 return (__vector unsigned short) __builtin_altivec_vslh ((__vector signed short) a1, (__vector signed short) a2); 4384} 4385 4386/* vec_vslb */ 4387 4388inline __vector signed char 4389vec_vslb (__vector signed char a1, __vector unsigned char a2) 4390{ 4391 return (__vector signed char) __builtin_altivec_vslb ((__vector signed char) a1, (__vector signed char) a2); 4392} 4393 4394inline __vector unsigned char 4395vec_vslb (__vector unsigned char a1, __vector unsigned char a2) 4396{ 4397 return (__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) a1, (__vector signed char) a2); 4398} 4399 4400/* vec_sld */ 4401 4402inline __vector float 4403vec_sld (__vector float a1, __vector float a2, const int a3) 4404{ 4405 return (__vector float) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4406} 4407 4408inline __vector signed int 4409vec_sld (__vector signed int a1, __vector signed int a2, const int a3) 4410{ 4411 return (__vector signed int) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4412} 4413 4414inline __vector unsigned int 4415vec_sld (__vector unsigned int a1, __vector unsigned int a2, const int a3) 4416{ 4417 return (__vector unsigned int) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4418} 4419 4420inline __vector __bool int 4421vec_sld (__vector __bool int a1, __vector __bool int a2, const int a3) 4422{ 4423 return (__vector __bool int) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4424} 4425 4426inline __vector signed short 4427vec_sld (__vector signed short a1, __vector signed short a2, const int a3) 4428{ 4429 return (__vector signed short) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4430} 4431 4432inline __vector unsigned short 4433vec_sld (__vector unsigned short a1, __vector unsigned short a2, const int a3) 4434{ 4435 return (__vector unsigned short) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4436} 4437 4438inline __vector __bool short 4439vec_sld (__vector __bool short a1, __vector __bool short a2, const int a3) 4440{ 4441 return (__vector __bool short) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4442} 4443 4444inline __vector __pixel 4445vec_sld (__vector __pixel a1, __vector __pixel a2, const int a3) 4446{ 4447 return (__vector __pixel) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4448} 4449 4450inline __vector signed char 4451vec_sld (__vector signed char a1, __vector signed char a2, const int a3) 4452{ 4453 return (__vector signed char) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4454} 4455 4456inline __vector unsigned char 4457vec_sld (__vector unsigned char a1, __vector unsigned char a2, const int a3) 4458{ 4459 return (__vector unsigned char) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4460} 4461 4462inline __vector __bool char 4463vec_sld (__vector __bool char a1, __vector __bool char a2, const int a3) 4464{ 4465 return (__vector __bool char) __builtin_altivec_vsldoi_4si ((__vector signed int) a1, (__vector signed int) a2, a3); 4466} 4467 4468/* vec_sll */ 4469 4470inline __vector signed int 4471vec_sll (__vector signed int a1, __vector unsigned int a2) 4472{ 4473 return (__vector signed int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4474} 4475 4476inline __vector signed int 4477vec_sll (__vector signed int a1, __vector unsigned short a2) 4478{ 4479 return (__vector signed int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4480} 4481 4482inline __vector signed int 4483vec_sll (__vector signed int a1, __vector unsigned char a2) 4484{ 4485 return (__vector signed int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4486} 4487 4488inline __vector unsigned int 4489vec_sll (__vector unsigned int a1, __vector unsigned int a2) 4490{ 4491 return (__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4492} 4493 4494inline __vector unsigned int 4495vec_sll (__vector unsigned int a1, __vector unsigned short a2) 4496{ 4497 return (__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4498} 4499 4500inline __vector unsigned int 4501vec_sll (__vector unsigned int a1, __vector unsigned char a2) 4502{ 4503 return (__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4504} 4505 4506inline __vector __bool int 4507vec_sll (__vector __bool int a1, __vector unsigned int a2) 4508{ 4509 return (__vector __bool int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4510} 4511 4512inline __vector __bool int 4513vec_sll (__vector __bool int a1, __vector unsigned short a2) 4514{ 4515 return (__vector __bool int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4516} 4517 4518inline __vector __bool int 4519vec_sll (__vector __bool int a1, __vector unsigned char a2) 4520{ 4521 return (__vector __bool int) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4522} 4523 4524inline __vector signed short 4525vec_sll (__vector signed short a1, __vector unsigned int a2) 4526{ 4527 return (__vector signed short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4528} 4529 4530inline __vector signed short 4531vec_sll (__vector signed short a1, __vector unsigned short a2) 4532{ 4533 return (__vector signed short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4534} 4535 4536inline __vector signed short 4537vec_sll (__vector signed short a1, __vector unsigned char a2) 4538{ 4539 return (__vector signed short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4540} 4541 4542inline __vector unsigned short 4543vec_sll (__vector unsigned short a1, __vector unsigned int a2) 4544{ 4545 return (__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4546} 4547 4548inline __vector unsigned short 4549vec_sll (__vector unsigned short a1, __vector unsigned short a2) 4550{ 4551 return (__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4552} 4553 4554inline __vector unsigned short 4555vec_sll (__vector unsigned short a1, __vector unsigned char a2) 4556{ 4557 return (__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4558} 4559 4560inline __vector __bool short 4561vec_sll (__vector __bool short a1, __vector unsigned int a2) 4562{ 4563 return (__vector __bool short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4564} 4565 4566inline __vector __bool short 4567vec_sll (__vector __bool short a1, __vector unsigned short a2) 4568{ 4569 return (__vector __bool short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4570} 4571 4572inline __vector __bool short 4573vec_sll (__vector __bool short a1, __vector unsigned char a2) 4574{ 4575 return (__vector __bool short) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4576} 4577 4578inline __vector __pixel 4579vec_sll (__vector __pixel a1, __vector unsigned int a2) 4580{ 4581 return (__vector __pixel) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4582} 4583 4584inline __vector __pixel 4585vec_sll (__vector __pixel a1, __vector unsigned short a2) 4586{ 4587 return (__vector __pixel) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4588} 4589 4590inline __vector __pixel 4591vec_sll (__vector __pixel a1, __vector unsigned char a2) 4592{ 4593 return (__vector __pixel) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4594} 4595 4596inline __vector signed char 4597vec_sll (__vector signed char a1, __vector unsigned int a2) 4598{ 4599 return (__vector signed char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4600} 4601 4602inline __vector signed char 4603vec_sll (__vector signed char a1, __vector unsigned short a2) 4604{ 4605 return (__vector signed char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4606} 4607 4608inline __vector signed char 4609vec_sll (__vector signed char a1, __vector unsigned char a2) 4610{ 4611 return (__vector signed char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4612} 4613 4614inline __vector unsigned char 4615vec_sll (__vector unsigned char a1, __vector unsigned int a2) 4616{ 4617 return (__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4618} 4619 4620inline __vector unsigned char 4621vec_sll (__vector unsigned char a1, __vector unsigned short a2) 4622{ 4623 return (__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4624} 4625 4626inline __vector unsigned char 4627vec_sll (__vector unsigned char a1, __vector unsigned char a2) 4628{ 4629 return (__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4630} 4631 4632inline __vector __bool char 4633vec_sll (__vector __bool char a1, __vector unsigned int a2) 4634{ 4635 return (__vector __bool char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4636} 4637 4638inline __vector __bool char 4639vec_sll (__vector __bool char a1, __vector unsigned short a2) 4640{ 4641 return (__vector __bool char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4642} 4643 4644inline __vector __bool char 4645vec_sll (__vector __bool char a1, __vector unsigned char a2) 4646{ 4647 return (__vector __bool char) __builtin_altivec_vsl ((__vector signed int) a1, (__vector signed int) a2); 4648} 4649 4650/* vec_slo */ 4651 4652inline __vector float 4653vec_slo (__vector float a1, __vector signed char a2) 4654{ 4655 return (__vector float) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4656} 4657 4658inline __vector float 4659vec_slo (__vector float a1, __vector unsigned char a2) 4660{ 4661 return (__vector float) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4662} 4663 4664inline __vector signed int 4665vec_slo (__vector signed int a1, __vector signed char a2) 4666{ 4667 return (__vector signed int) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4668} 4669 4670inline __vector signed int 4671vec_slo (__vector signed int a1, __vector unsigned char a2) 4672{ 4673 return (__vector signed int) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4674} 4675 4676inline __vector unsigned int 4677vec_slo (__vector unsigned int a1, __vector signed char a2) 4678{ 4679 return (__vector unsigned int) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4680} 4681 4682inline __vector unsigned int 4683vec_slo (__vector unsigned int a1, __vector unsigned char a2) 4684{ 4685 return (__vector unsigned int) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4686} 4687 4688inline __vector signed short 4689vec_slo (__vector signed short a1, __vector signed char a2) 4690{ 4691 return (__vector signed short) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4692} 4693 4694inline __vector signed short 4695vec_slo (__vector signed short a1, __vector unsigned char a2) 4696{ 4697 return (__vector signed short) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4698} 4699 4700inline __vector unsigned short 4701vec_slo (__vector unsigned short a1, __vector signed char a2) 4702{ 4703 return (__vector unsigned short) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4704} 4705 4706inline __vector unsigned short 4707vec_slo (__vector unsigned short a1, __vector unsigned char a2) 4708{ 4709 return (__vector unsigned short) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4710} 4711 4712inline __vector __pixel 4713vec_slo (__vector __pixel a1, __vector signed char a2) 4714{ 4715 return (__vector __pixel) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4716} 4717 4718inline __vector __pixel 4719vec_slo (__vector __pixel a1, __vector unsigned char a2) 4720{ 4721 return (__vector __pixel) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4722} 4723 4724inline __vector signed char 4725vec_slo (__vector signed char a1, __vector signed char a2) 4726{ 4727 return (__vector signed char) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4728} 4729 4730inline __vector signed char 4731vec_slo (__vector signed char a1, __vector unsigned char a2) 4732{ 4733 return (__vector signed char) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4734} 4735 4736inline __vector unsigned char 4737vec_slo (__vector unsigned char a1, __vector signed char a2) 4738{ 4739 return (__vector unsigned char) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4740} 4741 4742inline __vector unsigned char 4743vec_slo (__vector unsigned char a1, __vector unsigned char a2) 4744{ 4745 return (__vector unsigned char) __builtin_altivec_vslo ((__vector signed int) a1, (__vector signed int) a2); 4746} 4747 4748/* vec_splat */ 4749 4750inline __vector signed char 4751vec_splat (__vector signed char a1, const int a2) 4752{ 4753 return (__vector signed char) __builtin_altivec_vspltb ((__vector signed char) a1, a2); 4754} 4755 4756inline __vector unsigned char 4757vec_splat (__vector unsigned char a1, const int a2) 4758{ 4759 return (__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) a1, a2); 4760} 4761 4762inline __vector __bool char 4763vec_splat (__vector __bool char a1, const int a2) 4764{ 4765 return (__vector __bool char) __builtin_altivec_vspltb ((__vector signed char) a1, a2); 4766} 4767 4768inline __vector signed short 4769vec_splat (__vector signed short a1, const int a2) 4770{ 4771 return (__vector signed short) __builtin_altivec_vsplth ((__vector signed short) a1, a2); 4772} 4773 4774inline __vector unsigned short 4775vec_splat (__vector unsigned short a1, const int a2) 4776{ 4777 return (__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) a1, a2); 4778} 4779 4780inline __vector __bool short 4781vec_splat (__vector __bool short a1, const int a2) 4782{ 4783 return (__vector __bool short) __builtin_altivec_vsplth ((__vector signed short) a1, a2); 4784} 4785 4786inline __vector __pixel 4787vec_splat (__vector __pixel a1, const int a2) 4788{ 4789 return (__vector __pixel) __builtin_altivec_vsplth ((__vector signed short) a1, a2); 4790} 4791 4792inline __vector float 4793vec_splat (__vector float a1, const int a2) 4794{ 4795 return (__vector float) __builtin_altivec_vspltw ((__vector signed int) a1, a2); 4796} 4797 4798inline __vector signed int 4799vec_splat (__vector signed int a1, const int a2) 4800{ 4801 return (__vector signed int) __builtin_altivec_vspltw ((__vector signed int) a1, a2); 4802} 4803 4804inline __vector unsigned int 4805vec_splat (__vector unsigned int a1, const int a2) 4806{ 4807 return (__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) a1, a2); 4808} 4809 4810inline __vector __bool int 4811vec_splat (__vector __bool int a1, const int a2) 4812{ 4813 return (__vector __bool int) __builtin_altivec_vspltw ((__vector signed int) a1, a2); 4814} 4815 4816/* vec_vspltw */ 4817 4818inline __vector float 4819vec_vspltw (__vector float a1, const int a2) 4820{ 4821 return (__vector float) __builtin_altivec_vspltw ((__vector signed int) a1, a2); 4822} 4823 4824inline __vector signed int 4825vec_vspltw (__vector signed int a1, const int a2) 4826{ 4827 return (__vector signed int) __builtin_altivec_vspltw ((__vector signed int) a1, a2); 4828} 4829 4830inline __vector unsigned int 4831vec_vspltw (__vector unsigned int a1, const int a2) 4832{ 4833 return (__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) a1, a2); 4834} 4835 4836inline __vector __bool int 4837vec_vspltw (__vector __bool int a1, const int a2) 4838{ 4839 return (__vector __bool int) __builtin_altivec_vspltw ((__vector signed int) a1, a2); 4840} 4841 4842/* vec_vsplth */ 4843 4844inline __vector __bool short 4845vec_vsplth (__vector __bool short a1, const int a2) 4846{ 4847 return (__vector __bool short) __builtin_altivec_vsplth ((__vector signed short) a1, a2); 4848} 4849 4850inline __vector signed short 4851vec_vsplth (__vector signed short a1, const int a2) 4852{ 4853 return (__vector signed short) __builtin_altivec_vsplth ((__vector signed short) a1, a2); 4854} 4855 4856inline __vector unsigned short 4857vec_vsplth (__vector unsigned short a1, const int a2) 4858{ 4859 return (__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) a1, a2); 4860} 4861 4862inline __vector __pixel 4863vec_vsplth (__vector __pixel a1, const int a2) 4864{ 4865 return (__vector __pixel) __builtin_altivec_vsplth ((__vector signed short) a1, a2); 4866} 4867 4868/* vec_vspltb */ 4869 4870inline __vector signed char 4871vec_vspltb (__vector signed char a1, const int a2) 4872{ 4873 return (__vector signed char) __builtin_altivec_vspltb ((__vector signed char) a1, a2); 4874} 4875 4876inline __vector unsigned char 4877vec_vspltb (__vector unsigned char a1, const int a2) 4878{ 4879 return (__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) a1, a2); 4880} 4881 4882inline __vector __bool char 4883vec_vspltb (__vector __bool char a1, const int a2) 4884{ 4885 return (__vector __bool char) __builtin_altivec_vspltb ((__vector signed char) a1, a2); 4886} 4887 4888/* vec_splat_s8 */ 4889 4890inline __vector signed char 4891vec_splat_s8 (const int a1) 4892{ 4893 return (__vector signed char) __builtin_altivec_vspltisb (a1); 4894} 4895 4896/* vec_splat_s16 */ 4897 4898inline __vector signed short 4899vec_splat_s16 (const int a1) 4900{ 4901 return (__vector signed short) __builtin_altivec_vspltish (a1); 4902} 4903 4904/* vec_splat_s32 */ 4905 4906inline __vector signed int 4907vec_splat_s32 (const int a1) 4908{ 4909 return (__vector signed int) __builtin_altivec_vspltisw (a1); 4910} 4911 4912/* vec_splat_u8 */ 4913 4914inline __vector unsigned char 4915vec_splat_u8 (const int a1) 4916{ 4917 return (__vector unsigned char) __builtin_altivec_vspltisb (a1); 4918} 4919 4920/* vec_splat_u16 */ 4921 4922inline __vector unsigned short 4923vec_splat_u16 (const int a1) 4924{ 4925 return (__vector unsigned short) __builtin_altivec_vspltish (a1); 4926} 4927 4928/* vec_splat_u32 */ 4929 4930inline __vector unsigned int 4931vec_splat_u32 (const int a1) 4932{ 4933 return (__vector unsigned int) __builtin_altivec_vspltisw (a1); 4934} 4935 4936/* vec_sr */ 4937 4938inline __vector signed char 4939vec_sr (__vector signed char a1, __vector unsigned char a2) 4940{ 4941 return (__vector signed char) __builtin_altivec_vsrb ((__vector signed char) a1, (__vector signed char) a2); 4942} 4943 4944inline __vector unsigned char 4945vec_sr (__vector unsigned char a1, __vector unsigned char a2) 4946{ 4947 return (__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) a1, (__vector signed char) a2); 4948} 4949 4950inline __vector signed short 4951vec_sr (__vector signed short a1, __vector unsigned short a2) 4952{ 4953 return (__vector signed short) __builtin_altivec_vsrh ((__vector signed short) a1, (__vector signed short) a2); 4954} 4955 4956inline __vector unsigned short 4957vec_sr (__vector unsigned short a1, __vector unsigned short a2) 4958{ 4959 return (__vector unsigned short) __builtin_altivec_vsrh ((__vector signed short) a1, (__vector signed short) a2); 4960} 4961 4962inline __vector signed int 4963vec_sr (__vector signed int a1, __vector unsigned int a2) 4964{ 4965 return (__vector signed int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2); 4966} 4967 4968inline __vector unsigned int 4969vec_sr (__vector unsigned int a1, __vector unsigned int a2) 4970{ 4971 return (__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2); 4972} 4973 4974/* vec_vsrw */ 4975 4976inline __vector signed int 4977vec_vsrw (__vector signed int a1, __vector unsigned int a2) 4978{ 4979 return (__vector signed int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2); 4980} 4981 4982inline __vector unsigned int 4983vec_vsrw (__vector unsigned int a1, __vector unsigned int a2) 4984{ 4985 return (__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) a1, (__vector signed int) a2); 4986} 4987 4988/* vec_vsrh */ 4989 4990inline __vector signed short 4991vec_vsrh (__vector signed short a1, __vector unsigned short a2) 4992{ 4993 return (__vector signed short) __builtin_altivec_vsrh ((__vector signed short) a1, (__vector signed short) a2); 4994} 4995 4996inline __vector unsigned short 4997vec_vsrh (__vector unsigned short a1, __vector unsigned short a2) 4998{ 4999 return (__vector unsigned short) __builtin_altivec_vsrh ((__vector signed short) a1, (__vector signed short) a2); 5000} 5001 5002/* vec_vsrb */ 5003 5004inline __vector signed char 5005vec_vsrb (__vector signed char a1, __vector unsigned char a2) 5006{ 5007 return (__vector signed char) __builtin_altivec_vsrb ((__vector signed char) a1, (__vector signed char) a2); 5008} 5009 5010inline __vector unsigned char 5011vec_vsrb (__vector unsigned char a1, __vector unsigned char a2) 5012{ 5013 return (__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) a1, (__vector signed char) a2); 5014} 5015 5016/* vec_sra */ 5017 5018inline __vector signed char 5019vec_sra (__vector signed char a1, __vector unsigned char a2) 5020{ 5021 return (__vector signed char) __builtin_altivec_vsrab ((__vector signed char) a1, (__vector signed char) a2); 5022} 5023 5024inline __vector unsigned char 5025vec_sra (__vector unsigned char a1, __vector unsigned char a2) 5026{ 5027 return (__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) a1, (__vector signed char) a2); 5028} 5029 5030inline __vector signed short 5031vec_sra (__vector signed short a1, __vector unsigned short a2) 5032{ 5033 return (__vector signed short) __builtin_altivec_vsrah ((__vector signed short) a1, (__vector signed short) a2); 5034} 5035 5036inline __vector unsigned short 5037vec_sra (__vector unsigned short a1, __vector unsigned short a2) 5038{ 5039 return (__vector unsigned short) __builtin_altivec_vsrah ((__vector signed short) a1, (__vector signed short) a2); 5040} 5041 5042inline __vector signed int 5043vec_sra (__vector signed int a1, __vector unsigned int a2) 5044{ 5045 return (__vector signed int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2); 5046} 5047 5048inline __vector unsigned int 5049vec_sra (__vector unsigned int a1, __vector unsigned int a2) 5050{ 5051 return (__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2); 5052} 5053 5054/* vec_vsraw */ 5055 5056inline __vector signed int 5057vec_vsraw (__vector signed int a1, __vector unsigned int a2) 5058{ 5059 return (__vector signed int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2); 5060} 5061 5062inline __vector unsigned int 5063vec_vsraw (__vector unsigned int a1, __vector unsigned int a2) 5064{ 5065 return (__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) a1, (__vector signed int) a2); 5066} 5067 5068/* vec_vsrah */ 5069 5070inline __vector signed short 5071vec_vsrah (__vector signed short a1, __vector unsigned short a2) 5072{ 5073 return (__vector signed short) __builtin_altivec_vsrah ((__vector signed short) a1, (__vector signed short) a2); 5074} 5075 5076inline __vector unsigned short 5077vec_vsrah (__vector unsigned short a1, __vector unsigned short a2) 5078{ 5079 return (__vector unsigned short) __builtin_altivec_vsrah ((__vector signed short) a1, (__vector signed short) a2); 5080} 5081 5082/* vec_vsrab */ 5083 5084inline __vector signed char 5085vec_vsrab (__vector signed char a1, __vector unsigned char a2) 5086{ 5087 return (__vector signed char) __builtin_altivec_vsrab ((__vector signed char) a1, (__vector signed char) a2); 5088} 5089 5090inline __vector unsigned char 5091vec_vsrab (__vector unsigned char a1, __vector unsigned char a2) 5092{ 5093 return (__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) a1, (__vector signed char) a2); 5094} 5095 5096/* vec_srl */ 5097 5098inline __vector signed int 5099vec_srl (__vector signed int a1, __vector unsigned int a2) 5100{ 5101 return (__vector signed int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5102} 5103 5104inline __vector signed int 5105vec_srl (__vector signed int a1, __vector unsigned short a2) 5106{ 5107 return (__vector signed int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5108} 5109 5110inline __vector signed int 5111vec_srl (__vector signed int a1, __vector unsigned char a2) 5112{ 5113 return (__vector signed int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5114} 5115 5116inline __vector unsigned int 5117vec_srl (__vector unsigned int a1, __vector unsigned int a2) 5118{ 5119 return (__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5120} 5121 5122inline __vector unsigned int 5123vec_srl (__vector unsigned int a1, __vector unsigned short a2) 5124{ 5125 return (__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5126} 5127 5128inline __vector unsigned int 5129vec_srl (__vector unsigned int a1, __vector unsigned char a2) 5130{ 5131 return (__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5132} 5133 5134inline __vector __bool int 5135vec_srl (__vector __bool int a1, __vector unsigned int a2) 5136{ 5137 return (__vector __bool int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5138} 5139 5140inline __vector __bool int 5141vec_srl (__vector __bool int a1, __vector unsigned short a2) 5142{ 5143 return (__vector __bool int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5144} 5145 5146inline __vector __bool int 5147vec_srl (__vector __bool int a1, __vector unsigned char a2) 5148{ 5149 return (__vector __bool int) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5150} 5151 5152inline __vector signed short 5153vec_srl (__vector signed short a1, __vector unsigned int a2) 5154{ 5155 return (__vector signed short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5156} 5157 5158inline __vector signed short 5159vec_srl (__vector signed short a1, __vector unsigned short a2) 5160{ 5161 return (__vector signed short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5162} 5163 5164inline __vector signed short 5165vec_srl (__vector signed short a1, __vector unsigned char a2) 5166{ 5167 return (__vector signed short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5168} 5169 5170inline __vector unsigned short 5171vec_srl (__vector unsigned short a1, __vector unsigned int a2) 5172{ 5173 return (__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5174} 5175 5176inline __vector unsigned short 5177vec_srl (__vector unsigned short a1, __vector unsigned short a2) 5178{ 5179 return (__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5180} 5181 5182inline __vector unsigned short 5183vec_srl (__vector unsigned short a1, __vector unsigned char a2) 5184{ 5185 return (__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5186} 5187 5188inline __vector __bool short 5189vec_srl (__vector __bool short a1, __vector unsigned int a2) 5190{ 5191 return (__vector __bool short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5192} 5193 5194inline __vector __bool short 5195vec_srl (__vector __bool short a1, __vector unsigned short a2) 5196{ 5197 return (__vector __bool short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5198} 5199 5200inline __vector __bool short 5201vec_srl (__vector __bool short a1, __vector unsigned char a2) 5202{ 5203 return (__vector __bool short) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5204} 5205 5206inline __vector __pixel 5207vec_srl (__vector __pixel a1, __vector unsigned int a2) 5208{ 5209 return (__vector __pixel) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5210} 5211 5212inline __vector __pixel 5213vec_srl (__vector __pixel a1, __vector unsigned short a2) 5214{ 5215 return (__vector __pixel) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5216} 5217 5218inline __vector __pixel 5219vec_srl (__vector __pixel a1, __vector unsigned char a2) 5220{ 5221 return (__vector __pixel) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5222} 5223 5224inline __vector signed char 5225vec_srl (__vector signed char a1, __vector unsigned int a2) 5226{ 5227 return (__vector signed char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5228} 5229 5230inline __vector signed char 5231vec_srl (__vector signed char a1, __vector unsigned short a2) 5232{ 5233 return (__vector signed char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5234} 5235 5236inline __vector signed char 5237vec_srl (__vector signed char a1, __vector unsigned char a2) 5238{ 5239 return (__vector signed char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5240} 5241 5242inline __vector unsigned char 5243vec_srl (__vector unsigned char a1, __vector unsigned int a2) 5244{ 5245 return (__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5246} 5247 5248inline __vector unsigned char 5249vec_srl (__vector unsigned char a1, __vector unsigned short a2) 5250{ 5251 return (__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5252} 5253 5254inline __vector unsigned char 5255vec_srl (__vector unsigned char a1, __vector unsigned char a2) 5256{ 5257 return (__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5258} 5259 5260inline __vector __bool char 5261vec_srl (__vector __bool char a1, __vector unsigned int a2) 5262{ 5263 return (__vector __bool char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5264} 5265 5266inline __vector __bool char 5267vec_srl (__vector __bool char a1, __vector unsigned short a2) 5268{ 5269 return (__vector __bool char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5270} 5271 5272inline __vector __bool char 5273vec_srl (__vector __bool char a1, __vector unsigned char a2) 5274{ 5275 return (__vector __bool char) __builtin_altivec_vsr ((__vector signed int) a1, (__vector signed int) a2); 5276} 5277 5278/* vec_sro */ 5279 5280inline __vector float 5281vec_sro (__vector float a1, __vector signed char a2) 5282{ 5283 return (__vector float) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5284} 5285 5286inline __vector float 5287vec_sro (__vector float a1, __vector unsigned char a2) 5288{ 5289 return (__vector float) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5290} 5291 5292inline __vector signed int 5293vec_sro (__vector signed int a1, __vector signed char a2) 5294{ 5295 return (__vector signed int) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5296} 5297 5298inline __vector signed int 5299vec_sro (__vector signed int a1, __vector unsigned char a2) 5300{ 5301 return (__vector signed int) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5302} 5303 5304inline __vector unsigned int 5305vec_sro (__vector unsigned int a1, __vector signed char a2) 5306{ 5307 return (__vector unsigned int) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5308} 5309 5310inline __vector unsigned int 5311vec_sro (__vector unsigned int a1, __vector unsigned char a2) 5312{ 5313 return (__vector unsigned int) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5314} 5315 5316inline __vector signed short 5317vec_sro (__vector signed short a1, __vector signed char a2) 5318{ 5319 return (__vector signed short) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5320} 5321 5322inline __vector signed short 5323vec_sro (__vector signed short a1, __vector unsigned char a2) 5324{ 5325 return (__vector signed short) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5326} 5327 5328inline __vector unsigned short 5329vec_sro (__vector unsigned short a1, __vector signed char a2) 5330{ 5331 return (__vector unsigned short) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5332} 5333 5334inline __vector unsigned short 5335vec_sro (__vector unsigned short a1, __vector unsigned char a2) 5336{ 5337 return (__vector unsigned short) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5338} 5339 5340inline __vector __pixel 5341vec_sro (__vector __pixel a1, __vector signed char a2) 5342{ 5343 return (__vector __pixel) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5344} 5345 5346inline __vector __pixel 5347vec_sro (__vector __pixel a1, __vector unsigned char a2) 5348{ 5349 return (__vector __pixel) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5350} 5351 5352inline __vector signed char 5353vec_sro (__vector signed char a1, __vector signed char a2) 5354{ 5355 return (__vector signed char) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5356} 5357 5358inline __vector signed char 5359vec_sro (__vector signed char a1, __vector unsigned char a2) 5360{ 5361 return (__vector signed char) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5362} 5363 5364inline __vector unsigned char 5365vec_sro (__vector unsigned char a1, __vector signed char a2) 5366{ 5367 return (__vector unsigned char) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5368} 5369 5370inline __vector unsigned char 5371vec_sro (__vector unsigned char a1, __vector unsigned char a2) 5372{ 5373 return (__vector unsigned char) __builtin_altivec_vsro ((__vector signed int) a1, (__vector signed int) a2); 5374} 5375 5376/* vec_st */ 5377 5378inline void 5379vec_st (__vector float a1, int a2, __vector float *a3) 5380{ 5381 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5382} 5383 5384inline void 5385vec_st (__vector float a1, int a2, float *a3) 5386{ 5387 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5388} 5389 5390inline void 5391vec_st (__vector signed int a1, int a2, __vector signed int *a3) 5392{ 5393 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5394} 5395 5396inline void 5397vec_st (__vector signed int a1, int a2, int *a3) 5398{ 5399 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5400} 5401 5402inline void 5403vec_st (__vector unsigned int a1, int a2, __vector unsigned int *a3) 5404{ 5405 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5406} 5407 5408inline void 5409vec_st (__vector unsigned int a1, int a2, unsigned int *a3) 5410{ 5411 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5412} 5413 5414inline void 5415vec_st (__vector __bool int a1, int a2, __vector __bool int *a3) 5416{ 5417 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5418} 5419 5420inline void 5421vec_st (__vector __bool int a1, int a2, unsigned int *a3) 5422{ 5423 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5424} 5425 5426inline void 5427vec_st (__vector __bool int a1, int a2, int *a3) 5428{ 5429 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5430} 5431 5432inline void 5433vec_st (__vector signed short a1, int a2, __vector signed short *a3) 5434{ 5435 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5436} 5437 5438inline void 5439vec_st (__vector signed short a1, int a2, short *a3) 5440{ 5441 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5442} 5443 5444inline void 5445vec_st (__vector unsigned short a1, int a2, __vector unsigned short *a3) 5446{ 5447 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5448} 5449 5450inline void 5451vec_st (__vector unsigned short a1, int a2, unsigned short *a3) 5452{ 5453 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5454} 5455 5456inline void 5457vec_st (__vector __bool short a1, int a2, __vector __bool short *a3) 5458{ 5459 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5460} 5461 5462inline void 5463vec_st (__vector __bool short a1, int a2, unsigned short *a3) 5464{ 5465 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5466} 5467 5468inline void 5469vec_st (__vector __pixel a1, int a2, __vector __pixel *a3) 5470{ 5471 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5472} 5473 5474inline void 5475vec_st (__vector __pixel a1, int a2, unsigned short *a3) 5476{ 5477 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5478} 5479 5480inline void 5481vec_st (__vector __pixel a1, int a2, short *a3) 5482{ 5483 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5484} 5485 5486inline void 5487vec_st (__vector __bool short a1, int a2, short *a3) 5488{ 5489 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5490} 5491 5492inline void 5493vec_st (__vector signed char a1, int a2, __vector signed char *a3) 5494{ 5495 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5496} 5497 5498inline void 5499vec_st (__vector signed char a1, int a2, signed char *a3) 5500{ 5501 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5502} 5503 5504inline void 5505vec_st (__vector unsigned char a1, int a2, __vector unsigned char *a3) 5506{ 5507 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5508} 5509 5510inline void 5511vec_st (__vector unsigned char a1, int a2, unsigned char *a3) 5512{ 5513 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5514} 5515 5516inline void 5517vec_st (__vector __bool char a1, int a2, __vector __bool char *a3) 5518{ 5519 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5520} 5521 5522inline void 5523vec_st (__vector __bool char a1, int a2, unsigned char *a3) 5524{ 5525 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5526} 5527 5528inline void 5529vec_st (__vector __bool char a1, int a2, signed char *a3) 5530{ 5531 __builtin_altivec_stvx ((__vector signed int) a1, a2, (void *) a3); 5532} 5533 5534/* vec_ste */ 5535 5536inline void 5537vec_ste (__vector signed char a1, int a2, signed char *a3) 5538{ 5539 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3); 5540} 5541 5542inline void 5543vec_ste (__vector unsigned char a1, int a2, unsigned char *a3) 5544{ 5545 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3); 5546} 5547 5548inline void 5549vec_ste (__vector __bool char a1, int a2, signed char *a3) 5550{ 5551 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3); 5552} 5553 5554inline void 5555vec_ste (__vector __bool char a1, int a2, unsigned char *a3) 5556{ 5557 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3); 5558} 5559 5560inline void 5561vec_ste (__vector signed short a1, int a2, short *a3) 5562{ 5563 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5564} 5565 5566inline void 5567vec_ste (__vector unsigned short a1, int a2, unsigned short *a3) 5568{ 5569 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5570} 5571 5572inline void 5573vec_ste (__vector __bool short a1, int a2, short *a3) 5574{ 5575 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5576} 5577 5578inline void 5579vec_ste (__vector __bool short a1, int a2, unsigned short *a3) 5580{ 5581 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5582} 5583 5584inline void 5585vec_ste (__vector __pixel a1, int a2, short *a3) 5586{ 5587 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5588} 5589 5590inline void 5591vec_ste (__vector __pixel a1, int a2, unsigned short *a3) 5592{ 5593 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5594} 5595 5596inline void 5597vec_ste (__vector float a1, int a2, float *a3) 5598{ 5599 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3); 5600} 5601 5602inline void 5603vec_ste (__vector signed int a1, int a2, int *a3) 5604{ 5605 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3); 5606} 5607 5608inline void 5609vec_ste (__vector unsigned int a1, int a2, unsigned int *a3) 5610{ 5611 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3); 5612} 5613 5614inline void 5615vec_ste (__vector __bool int a1, int a2, int *a3) 5616{ 5617 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3); 5618} 5619 5620inline void 5621vec_ste (__vector __bool int a1, int a2, unsigned int *a3) 5622{ 5623 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3); 5624} 5625 5626/* vec_stvewx */ 5627 5628inline void 5629vec_stvewx (__vector float a1, int a2, float *a3) 5630{ 5631 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3); 5632} 5633 5634inline void 5635vec_stvewx (__vector signed int a1, int a2, int *a3) 5636{ 5637 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3); 5638} 5639 5640inline void 5641vec_stvewx (__vector unsigned int a1, int a2, unsigned int *a3) 5642{ 5643 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3); 5644} 5645 5646inline void 5647vec_stvewx (__vector __bool int a1, int a2, int *a3) 5648{ 5649 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3); 5650} 5651 5652inline void 5653vec_stvewx (__vector __bool int a1, int a2, unsigned int *a3) 5654{ 5655 __builtin_altivec_stvewx ((__vector signed int) a1, a2, (void *) a3); 5656} 5657 5658/* vec_stvehx */ 5659 5660inline void 5661vec_stvehx (__vector signed short a1, int a2, short *a3) 5662{ 5663 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5664} 5665 5666inline void 5667vec_stvehx (__vector unsigned short a1, int a2, unsigned short *a3) 5668{ 5669 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5670} 5671 5672inline void 5673vec_stvehx (__vector __bool short a1, int a2, short *a3) 5674{ 5675 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5676} 5677 5678inline void 5679vec_stvehx (__vector __bool short a1, int a2, unsigned short *a3) 5680{ 5681 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5682} 5683 5684inline void 5685vec_stvehx (__vector __pixel a1, int a2, short *a3) 5686{ 5687 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5688} 5689 5690inline void 5691vec_stvehx (__vector __pixel a1, int a2, unsigned short *a3) 5692{ 5693 __builtin_altivec_stvehx ((__vector signed short) a1, a2, (void *) a3); 5694} 5695 5696/* vec_stvebx */ 5697 5698inline void 5699vec_stvebx (__vector signed char a1, int a2, signed char *a3) 5700{ 5701 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3); 5702} 5703 5704inline void 5705vec_stvebx (__vector unsigned char a1, int a2, unsigned char *a3) 5706{ 5707 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3); 5708} 5709 5710inline void 5711vec_stvebx (__vector __bool char a1, int a2, signed char *a3) 5712{ 5713 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3); 5714} 5715 5716inline void 5717vec_stvebx (__vector __bool char a1, int a2, unsigned char *a3) 5718{ 5719 __builtin_altivec_stvebx ((__vector signed char) a1, a2, (void *) a3); 5720} 5721 5722/* vec_stl */ 5723 5724inline void 5725vec_stl (__vector float a1, int a2, __vector float *a3) 5726{ 5727 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5728} 5729 5730inline void 5731vec_stl (__vector float a1, int a2, float *a3) 5732{ 5733 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5734} 5735 5736inline void 5737vec_stl (__vector signed int a1, int a2, __vector signed int *a3) 5738{ 5739 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5740} 5741 5742inline void 5743vec_stl (__vector signed int a1, int a2, int *a3) 5744{ 5745 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5746} 5747 5748inline void 5749vec_stl (__vector unsigned int a1, int a2, __vector unsigned int *a3) 5750{ 5751 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5752} 5753 5754inline void 5755vec_stl (__vector unsigned int a1, int a2, unsigned int *a3) 5756{ 5757 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5758} 5759 5760inline void 5761vec_stl (__vector __bool int a1, int a2, __vector __bool int *a3) 5762{ 5763 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5764} 5765 5766inline void 5767vec_stl (__vector __bool int a1, int a2, unsigned int *a3) 5768{ 5769 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5770} 5771 5772inline void 5773vec_stl (__vector __bool int a1, int a2, int *a3) 5774{ 5775 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5776} 5777 5778inline void 5779vec_stl (__vector signed short a1, int a2, __vector signed short *a3) 5780{ 5781 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5782} 5783 5784inline void 5785vec_stl (__vector signed short a1, int a2, short *a3) 5786{ 5787 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5788} 5789 5790inline void 5791vec_stl (__vector unsigned short a1, int a2, __vector unsigned short *a3) 5792{ 5793 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5794} 5795 5796inline void 5797vec_stl (__vector unsigned short a1, int a2, unsigned short *a3) 5798{ 5799 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5800} 5801 5802inline void 5803vec_stl (__vector __bool short a1, int a2, __vector __bool short *a3) 5804{ 5805 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5806} 5807 5808inline void 5809vec_stl (__vector __bool short a1, int a2, unsigned short *a3) 5810{ 5811 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5812} 5813 5814inline void 5815vec_stl (__vector __bool short a1, int a2, short *a3) 5816{ 5817 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5818} 5819 5820inline void 5821vec_stl (__vector __pixel a1, int a2, __vector __pixel *a3) 5822{ 5823 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5824} 5825 5826inline void 5827vec_stl (__vector __pixel a1, int a2, unsigned short *a3) 5828{ 5829 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5830} 5831 5832inline void 5833vec_stl (__vector __pixel a1, int a2, short *a3) 5834{ 5835 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5836} 5837 5838inline void 5839vec_stl (__vector signed char a1, int a2, __vector signed char *a3) 5840{ 5841 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5842} 5843 5844inline void 5845vec_stl (__vector signed char a1, int a2, signed char *a3) 5846{ 5847 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5848} 5849 5850inline void 5851vec_stl (__vector unsigned char a1, int a2, __vector unsigned char *a3) 5852{ 5853 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5854} 5855 5856inline void 5857vec_stl (__vector unsigned char a1, int a2, unsigned char *a3) 5858{ 5859 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5860} 5861 5862inline void 5863vec_stl (__vector __bool char a1, int a2, __vector __bool char *a3) 5864{ 5865 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5866} 5867 5868inline void 5869vec_stl (__vector __bool char a1, int a2, unsigned char *a3) 5870{ 5871 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5872} 5873 5874inline void 5875vec_stl (__vector __bool char a1, int a2, signed char *a3) 5876{ 5877 __builtin_altivec_stvxl ((__vector signed int) a1, a2, (void *) a3); 5878} 5879 5880/* vec_sub */ 5881 5882inline __vector signed char 5883vec_sub (__vector __bool char a1, __vector signed char a2) 5884{ 5885 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 5886} 5887 5888inline __vector signed char 5889vec_sub (__vector signed char a1, __vector __bool char a2) 5890{ 5891 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 5892} 5893 5894inline __vector signed char 5895vec_sub (__vector signed char a1, __vector signed char a2) 5896{ 5897 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 5898} 5899 5900inline __vector unsigned char 5901vec_sub (__vector __bool char a1, __vector unsigned char a2) 5902{ 5903 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 5904} 5905 5906inline __vector unsigned char 5907vec_sub (__vector unsigned char a1, __vector __bool char a2) 5908{ 5909 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 5910} 5911 5912inline __vector unsigned char 5913vec_sub (__vector unsigned char a1, __vector unsigned char a2) 5914{ 5915 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 5916} 5917 5918inline __vector signed short 5919vec_sub (__vector __bool short a1, __vector signed short a2) 5920{ 5921 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 5922} 5923 5924inline __vector signed short 5925vec_sub (__vector signed short a1, __vector __bool short a2) 5926{ 5927 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 5928} 5929 5930inline __vector signed short 5931vec_sub (__vector signed short a1, __vector signed short a2) 5932{ 5933 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 5934} 5935 5936inline __vector unsigned short 5937vec_sub (__vector __bool short a1, __vector unsigned short a2) 5938{ 5939 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 5940} 5941 5942inline __vector unsigned short 5943vec_sub (__vector unsigned short a1, __vector __bool short a2) 5944{ 5945 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 5946} 5947 5948inline __vector unsigned short 5949vec_sub (__vector unsigned short a1, __vector unsigned short a2) 5950{ 5951 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 5952} 5953 5954inline __vector signed int 5955vec_sub (__vector __bool int a1, __vector signed int a2) 5956{ 5957 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 5958} 5959 5960inline __vector signed int 5961vec_sub (__vector signed int a1, __vector __bool int a2) 5962{ 5963 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 5964} 5965 5966inline __vector signed int 5967vec_sub (__vector signed int a1, __vector signed int a2) 5968{ 5969 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 5970} 5971 5972inline __vector unsigned int 5973vec_sub (__vector __bool int a1, __vector unsigned int a2) 5974{ 5975 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 5976} 5977 5978inline __vector unsigned int 5979vec_sub (__vector unsigned int a1, __vector __bool int a2) 5980{ 5981 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 5982} 5983 5984inline __vector unsigned int 5985vec_sub (__vector unsigned int a1, __vector unsigned int a2) 5986{ 5987 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 5988} 5989 5990inline __vector float 5991vec_sub (__vector float a1, __vector float a2) 5992{ 5993 return (__vector float) __builtin_altivec_vsubfp ((__vector float) a1, (__vector float) a2); 5994} 5995 5996/* vec_vsubfp */ 5997 5998inline __vector float 5999vec_vsubfp (__vector float a1, __vector float a2) 6000{ 6001 return (__vector float) __builtin_altivec_vsubfp ((__vector float) a1, (__vector float) a2); 6002} 6003 6004/* vec_vsubuwm */ 6005 6006inline __vector signed int 6007vec_vsubuwm (__vector __bool int a1, __vector signed int a2) 6008{ 6009 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 6010} 6011 6012inline __vector signed int 6013vec_vsubuwm (__vector signed int a1, __vector __bool int a2) 6014{ 6015 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 6016} 6017 6018inline __vector signed int 6019vec_vsubuwm (__vector signed int a1, __vector signed int a2) 6020{ 6021 return (__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 6022} 6023 6024inline __vector unsigned int 6025vec_vsubuwm (__vector __bool int a1, __vector unsigned int a2) 6026{ 6027 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 6028} 6029 6030inline __vector unsigned int 6031vec_vsubuwm (__vector unsigned int a1, __vector __bool int a2) 6032{ 6033 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 6034} 6035 6036inline __vector unsigned int 6037vec_vsubuwm (__vector unsigned int a1, __vector unsigned int a2) 6038{ 6039 return (__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) a1, (__vector signed int) a2); 6040} 6041 6042/* vec_vsubuhm */ 6043 6044inline __vector signed short 6045vec_vsubuhm (__vector __bool short a1, __vector signed short a2) 6046{ 6047 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 6048} 6049 6050inline __vector signed short 6051vec_vsubuhm (__vector signed short a1, __vector __bool short a2) 6052{ 6053 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 6054} 6055 6056inline __vector signed short 6057vec_vsubuhm (__vector signed short a1, __vector signed short a2) 6058{ 6059 return (__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 6060} 6061 6062inline __vector unsigned short 6063vec_vsubuhm (__vector __bool short a1, __vector unsigned short a2) 6064{ 6065 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 6066} 6067 6068inline __vector unsigned short 6069vec_vsubuhm (__vector unsigned short a1, __vector __bool short a2) 6070{ 6071 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 6072} 6073 6074inline __vector unsigned short 6075vec_vsubuhm (__vector unsigned short a1, __vector unsigned short a2) 6076{ 6077 return (__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) a1, (__vector signed short) a2); 6078} 6079 6080/* vec_vsububm */ 6081 6082inline __vector signed char 6083vec_vsububm (__vector __bool char a1, __vector signed char a2) 6084{ 6085 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 6086} 6087 6088inline __vector signed char 6089vec_vsububm (__vector signed char a1, __vector __bool char a2) 6090{ 6091 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 6092} 6093 6094inline __vector signed char 6095vec_vsububm (__vector signed char a1, __vector signed char a2) 6096{ 6097 return (__vector signed char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 6098} 6099 6100inline __vector unsigned char 6101vec_vsububm (__vector __bool char a1, __vector unsigned char a2) 6102{ 6103 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 6104} 6105 6106inline __vector unsigned char 6107vec_vsububm (__vector unsigned char a1, __vector __bool char a2) 6108{ 6109 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 6110} 6111 6112inline __vector unsigned char 6113vec_vsububm (__vector unsigned char a1, __vector unsigned char a2) 6114{ 6115 return (__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) a1, (__vector signed char) a2); 6116} 6117 6118/* vec_subc */ 6119 6120inline __vector unsigned int 6121vec_subc (__vector unsigned int a1, __vector unsigned int a2) 6122{ 6123 return (__vector unsigned int) __builtin_altivec_vsubcuw ((__vector signed int) a1, (__vector signed int) a2); 6124} 6125 6126/* vec_subs */ 6127 6128inline __vector unsigned char 6129vec_subs (__vector __bool char a1, __vector unsigned char a2) 6130{ 6131 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2); 6132} 6133 6134inline __vector unsigned char 6135vec_subs (__vector unsigned char a1, __vector __bool char a2) 6136{ 6137 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2); 6138} 6139 6140inline __vector unsigned char 6141vec_subs (__vector unsigned char a1, __vector unsigned char a2) 6142{ 6143 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2); 6144} 6145 6146inline __vector signed char 6147vec_subs (__vector __bool char a1, __vector signed char a2) 6148{ 6149 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2); 6150} 6151 6152inline __vector signed char 6153vec_subs (__vector signed char a1, __vector __bool char a2) 6154{ 6155 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2); 6156} 6157 6158inline __vector signed char 6159vec_subs (__vector signed char a1, __vector signed char a2) 6160{ 6161 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2); 6162} 6163 6164inline __vector unsigned short 6165vec_subs (__vector __bool short a1, __vector unsigned short a2) 6166{ 6167 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2); 6168} 6169 6170inline __vector unsigned short 6171vec_subs (__vector unsigned short a1, __vector __bool short a2) 6172{ 6173 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2); 6174} 6175 6176inline __vector unsigned short 6177vec_subs (__vector unsigned short a1, __vector unsigned short a2) 6178{ 6179 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2); 6180} 6181 6182inline __vector signed short 6183vec_subs (__vector __bool short a1, __vector signed short a2) 6184{ 6185 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2); 6186} 6187 6188inline __vector signed short 6189vec_subs (__vector signed short a1, __vector __bool short a2) 6190{ 6191 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2); 6192} 6193 6194inline __vector signed short 6195vec_subs (__vector signed short a1, __vector signed short a2) 6196{ 6197 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2); 6198} 6199 6200inline __vector unsigned int 6201vec_subs (__vector __bool int a1, __vector unsigned int a2) 6202{ 6203 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2); 6204} 6205 6206inline __vector unsigned int 6207vec_subs (__vector unsigned int a1, __vector __bool int a2) 6208{ 6209 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2); 6210} 6211 6212inline __vector unsigned int 6213vec_subs (__vector unsigned int a1, __vector unsigned int a2) 6214{ 6215 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2); 6216} 6217 6218inline __vector signed int 6219vec_subs (__vector __bool int a1, __vector signed int a2) 6220{ 6221 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2); 6222} 6223 6224inline __vector signed int 6225vec_subs (__vector signed int a1, __vector __bool int a2) 6226{ 6227 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2); 6228} 6229 6230inline __vector signed int 6231vec_subs (__vector signed int a1, __vector signed int a2) 6232{ 6233 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2); 6234} 6235 6236/* vec_vsubsws */ 6237 6238inline __vector signed int 6239vec_vsubsws (__vector __bool int a1, __vector signed int a2) 6240{ 6241 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2); 6242} 6243 6244inline __vector signed int 6245vec_vsubsws (__vector signed int a1, __vector __bool int a2) 6246{ 6247 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2); 6248} 6249 6250inline __vector signed int 6251vec_vsubsws (__vector signed int a1, __vector signed int a2) 6252{ 6253 return (__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) a1, (__vector signed int) a2); 6254} 6255 6256/* vec_vsubuws */ 6257 6258inline __vector unsigned int 6259vec_vsubuws (__vector __bool int a1, __vector unsigned int a2) 6260{ 6261 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2); 6262} 6263 6264inline __vector unsigned int 6265vec_vsubuws (__vector unsigned int a1, __vector __bool int a2) 6266{ 6267 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2); 6268} 6269 6270inline __vector unsigned int 6271vec_vsubuws (__vector unsigned int a1, __vector unsigned int a2) 6272{ 6273 return (__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) a1, (__vector signed int) a2); 6274} 6275 6276/* vec_vsubshs */ 6277 6278inline __vector signed short 6279vec_vsubshs (__vector __bool short a1, __vector signed short a2) 6280{ 6281 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2); 6282} 6283 6284inline __vector signed short 6285vec_vsubshs (__vector signed short a1, __vector __bool short a2) 6286{ 6287 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2); 6288} 6289 6290inline __vector signed short 6291vec_vsubshs (__vector signed short a1, __vector signed short a2) 6292{ 6293 return (__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) a1, (__vector signed short) a2); 6294} 6295 6296/* vec_vsubuhs */ 6297 6298inline __vector unsigned short 6299vec_vsubuhs (__vector __bool short a1, __vector unsigned short a2) 6300{ 6301 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2); 6302} 6303 6304inline __vector unsigned short 6305vec_vsubuhs (__vector unsigned short a1, __vector __bool short a2) 6306{ 6307 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2); 6308} 6309 6310inline __vector unsigned short 6311vec_vsubuhs (__vector unsigned short a1, __vector unsigned short a2) 6312{ 6313 return (__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) a1, (__vector signed short) a2); 6314} 6315 6316/* vec_vsubsbs */ 6317 6318inline __vector signed char 6319vec_vsubsbs (__vector __bool char a1, __vector signed char a2) 6320{ 6321 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2); 6322} 6323 6324inline __vector signed char 6325vec_vsubsbs (__vector signed char a1, __vector __bool char a2) 6326{ 6327 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2); 6328} 6329 6330inline __vector signed char 6331vec_vsubsbs (__vector signed char a1, __vector signed char a2) 6332{ 6333 return (__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) a1, (__vector signed char) a2); 6334} 6335 6336/* vec_vsububs */ 6337 6338inline __vector unsigned char 6339vec_vsububs (__vector __bool char a1, __vector unsigned char a2) 6340{ 6341 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2); 6342} 6343 6344inline __vector unsigned char 6345vec_vsububs (__vector unsigned char a1, __vector __bool char a2) 6346{ 6347 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2); 6348} 6349 6350inline __vector unsigned char 6351vec_vsububs (__vector unsigned char a1, __vector unsigned char a2) 6352{ 6353 return (__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) a1, (__vector signed char) a2); 6354} 6355 6356/* vec_sum4s */ 6357 6358inline __vector unsigned int 6359vec_sum4s (__vector unsigned char a1, __vector unsigned int a2) 6360{ 6361 return (__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) a1, (__vector signed int) a2); 6362} 6363 6364inline __vector signed int 6365vec_sum4s (__vector signed char a1, __vector signed int a2) 6366{ 6367 return (__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) a1, (__vector signed int) a2); 6368} 6369 6370inline __vector signed int 6371vec_sum4s (__vector signed short a1, __vector signed int a2) 6372{ 6373 return (__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) a1, (__vector signed int) a2); 6374} 6375 6376/* vec_vsum4shs */ 6377 6378inline __vector signed int 6379vec_vsum4shs (__vector signed short a1, __vector signed int a2) 6380{ 6381 return (__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) a1, (__vector signed int) a2); 6382} 6383 6384/* vec_vsum4sbs */ 6385 6386inline __vector signed int 6387vec_vsum4sbs (__vector signed char a1, __vector signed int a2) 6388{ 6389 return (__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) a1, (__vector signed int) a2); 6390} 6391 6392/* vec_vsum4ubs */ 6393 6394inline __vector unsigned int 6395vec_vsum4ubs (__vector unsigned char a1, __vector unsigned int a2) 6396{ 6397 return (__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) a1, (__vector signed int) a2); 6398} 6399 6400/* vec_sum2s */ 6401 6402inline __vector signed int 6403vec_sum2s (__vector signed int a1, __vector signed int a2) 6404{ 6405 return (__vector signed int) __builtin_altivec_vsum2sws ((__vector signed int) a1, (__vector signed int) a2); 6406} 6407 6408/* vec_sums */ 6409 6410inline __vector signed int 6411vec_sums (__vector signed int a1, __vector signed int a2) 6412{ 6413 return (__vector signed int) __builtin_altivec_vsumsws ((__vector signed int) a1, (__vector signed int) a2); 6414} 6415 6416/* vec_trunc */ 6417 6418inline __vector float 6419vec_trunc (__vector float a1) 6420{ 6421 return (__vector float) __builtin_altivec_vrfiz ((__vector float) a1); 6422} 6423 6424/* vec_unpackh */ 6425 6426inline __vector signed short 6427vec_unpackh (__vector signed char a1) 6428{ 6429 return (__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) a1); 6430} 6431 6432inline __vector __bool short 6433vec_unpackh (__vector __bool char a1) 6434{ 6435 return (__vector __bool short) __builtin_altivec_vupkhsb ((__vector signed char) a1); 6436} 6437 6438inline __vector signed int 6439vec_unpackh (__vector signed short a1) 6440{ 6441 return (__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) a1); 6442} 6443 6444inline __vector __bool int 6445vec_unpackh (__vector __bool short a1) 6446{ 6447 return (__vector __bool int) __builtin_altivec_vupkhsh ((__vector signed short) a1); 6448} 6449 6450inline __vector unsigned int 6451vec_unpackh (__vector __pixel a1) 6452{ 6453 return (__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) a1); 6454} 6455 6456/* vec_vupkhsh */ 6457 6458inline __vector __bool int 6459vec_vupkhsh (__vector __bool short a1) 6460{ 6461 return (__vector __bool int) __builtin_altivec_vupkhsh ((__vector signed short) a1); 6462} 6463 6464inline __vector signed int 6465vec_vupkhsh (__vector signed short a1) 6466{ 6467 return (__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) a1); 6468} 6469 6470/* vec_vupkhpx */ 6471 6472inline __vector unsigned int 6473vec_vupkhpx (__vector __pixel a1) 6474{ 6475 return (__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) a1); 6476} 6477 6478/* vec_vupkhsb */ 6479 6480inline __vector __bool short 6481vec_vupkhsb (__vector __bool char a1) 6482{ 6483 return (__vector __bool short) __builtin_altivec_vupkhsb ((__vector signed char) a1); 6484} 6485 6486inline __vector signed short 6487vec_vupkhsb (__vector signed char a1) 6488{ 6489 return (__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) a1); 6490} 6491 6492/* vec_unpackl */ 6493 6494inline __vector signed short 6495vec_unpackl (__vector signed char a1) 6496{ 6497 return (__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) a1); 6498} 6499 6500inline __vector __bool short 6501vec_unpackl (__vector __bool char a1) 6502{ 6503 return (__vector __bool short) __builtin_altivec_vupklsb ((__vector signed char) a1); 6504} 6505 6506inline __vector unsigned int 6507vec_unpackl (__vector __pixel a1) 6508{ 6509 return (__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) a1); 6510} 6511 6512inline __vector signed int 6513vec_unpackl (__vector signed short a1) 6514{ 6515 return (__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) a1); 6516} 6517 6518inline __vector __bool int 6519vec_unpackl (__vector __bool short a1) 6520{ 6521 return (__vector __bool int) __builtin_altivec_vupklsh ((__vector signed short) a1); 6522} 6523 6524/* vec_vupklpx */ 6525 6526inline __vector unsigned int 6527vec_vupklpx (__vector __pixel a1) 6528{ 6529 return (__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) a1); 6530} 6531 6532/* vec_upklsh */ 6533 6534inline __vector __bool int 6535vec_vupklsh (__vector __bool short a1) 6536{ 6537 return (__vector __bool int) __builtin_altivec_vupklsh ((__vector signed short) a1); 6538} 6539 6540inline __vector signed int 6541vec_vupklsh (__vector signed short a1) 6542{ 6543 return (__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) a1); 6544} 6545 6546/* vec_vupklsb */ 6547 6548inline __vector __bool short 6549vec_vupklsb (__vector __bool char a1) 6550{ 6551 return (__vector __bool short) __builtin_altivec_vupklsb ((__vector signed char) a1); 6552} 6553 6554inline __vector signed short 6555vec_vupklsb (__vector signed char a1) 6556{ 6557 return (__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) a1); 6558} 6559 6560/* vec_xor */ 6561 6562inline __vector float 6563vec_xor (__vector float a1, __vector float a2) 6564{ 6565 return (__vector float) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6566} 6567 6568inline __vector float 6569vec_xor (__vector float a1, __vector __bool int a2) 6570{ 6571 return (__vector float) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6572} 6573 6574inline __vector float 6575vec_xor (__vector __bool int a1, __vector float a2) 6576{ 6577 return (__vector float) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6578} 6579 6580inline __vector __bool int 6581vec_xor (__vector __bool int a1, __vector __bool int a2) 6582{ 6583 return (__vector __bool int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6584} 6585 6586inline __vector signed int 6587vec_xor (__vector __bool int a1, __vector signed int a2) 6588{ 6589 return (__vector signed int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6590} 6591 6592inline __vector signed int 6593vec_xor (__vector signed int a1, __vector __bool int a2) 6594{ 6595 return (__vector signed int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6596} 6597 6598inline __vector signed int 6599vec_xor (__vector signed int a1, __vector signed int a2) 6600{ 6601 return (__vector signed int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6602} 6603 6604inline __vector unsigned int 6605vec_xor (__vector __bool int a1, __vector unsigned int a2) 6606{ 6607 return (__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6608} 6609 6610inline __vector unsigned int 6611vec_xor (__vector unsigned int a1, __vector __bool int a2) 6612{ 6613 return (__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6614} 6615 6616inline __vector unsigned int 6617vec_xor (__vector unsigned int a1, __vector unsigned int a2) 6618{ 6619 return (__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6620} 6621 6622inline __vector __bool short 6623vec_xor (__vector __bool short a1, __vector __bool short a2) 6624{ 6625 return (__vector __bool short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6626} 6627 6628inline __vector signed short 6629vec_xor (__vector __bool short a1, __vector signed short a2) 6630{ 6631 return (__vector signed short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6632} 6633 6634inline __vector signed short 6635vec_xor (__vector signed short a1, __vector __bool short a2) 6636{ 6637 return (__vector signed short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6638} 6639 6640inline __vector signed short 6641vec_xor (__vector signed short a1, __vector signed short a2) 6642{ 6643 return (__vector signed short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6644} 6645 6646inline __vector unsigned short 6647vec_xor (__vector __bool short a1, __vector unsigned short a2) 6648{ 6649 return (__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6650} 6651 6652inline __vector unsigned short 6653vec_xor (__vector unsigned short a1, __vector __bool short a2) 6654{ 6655 return (__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6656} 6657 6658inline __vector unsigned short 6659vec_xor (__vector unsigned short a1, __vector unsigned short a2) 6660{ 6661 return (__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6662} 6663 6664inline __vector signed char 6665vec_xor (__vector __bool char a1, __vector signed char a2) 6666{ 6667 return (__vector signed char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6668} 6669 6670inline __vector __bool char 6671vec_xor (__vector __bool char a1, __vector __bool char a2) 6672{ 6673 return (__vector __bool char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6674} 6675 6676inline __vector signed char 6677vec_xor (__vector signed char a1, __vector __bool char a2) 6678{ 6679 return (__vector signed char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6680} 6681 6682inline __vector signed char 6683vec_xor (__vector signed char a1, __vector signed char a2) 6684{ 6685 return (__vector signed char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6686} 6687 6688inline __vector unsigned char 6689vec_xor (__vector __bool char a1, __vector unsigned char a2) 6690{ 6691 return (__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6692} 6693 6694inline __vector unsigned char 6695vec_xor (__vector unsigned char a1, __vector __bool char a2) 6696{ 6697 return (__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6698} 6699 6700inline __vector unsigned char 6701vec_xor (__vector unsigned char a1, __vector unsigned char a2) 6702{ 6703 return (__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) a1, (__vector signed int) a2); 6704} 6705 6706/* vec_all_eq */ 6707 6708inline int 6709vec_all_eq (__vector signed char a1, __vector __bool char a2) 6710{ 6711 return __builtin_altivec_vcmpequb_p (__CR6_LT, a1, (__vector signed char) a2); 6712} 6713 6714inline int 6715vec_all_eq (__vector signed char a1, __vector signed char a2) 6716{ 6717 return __builtin_altivec_vcmpequb_p (__CR6_LT, a1, a2); 6718} 6719 6720inline int 6721vec_all_eq (__vector unsigned char a1, __vector __bool char a2) 6722{ 6723 return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6724} 6725 6726inline int 6727vec_all_eq (__vector unsigned char a1, __vector unsigned char a2) 6728{ 6729 return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6730} 6731 6732inline int 6733vec_all_eq (__vector __bool char a1, __vector __bool char a2) 6734{ 6735 return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6736} 6737 6738inline int 6739vec_all_eq (__vector __bool char a1, __vector unsigned char a2) 6740{ 6741 return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6742} 6743 6744inline int 6745vec_all_eq (__vector __bool char a1, __vector signed char a2) 6746{ 6747 return __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6748} 6749 6750inline int 6751vec_all_eq (__vector signed short a1, __vector __bool short a2) 6752{ 6753 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 6754} 6755 6756inline int 6757vec_all_eq (__vector signed short a1, __vector signed short a2) 6758{ 6759 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 6760} 6761 6762inline int 6763vec_all_eq (__vector unsigned short a1, __vector __bool short a2) 6764{ 6765 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 6766} 6767 6768inline int 6769vec_all_eq (__vector unsigned short a1, __vector unsigned short a2) 6770{ 6771 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 6772} 6773 6774inline int 6775vec_all_eq (__vector __bool short a1, __vector __bool short a2) 6776{ 6777 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 6778} 6779 6780inline int 6781vec_all_eq (__vector __bool short a1, __vector unsigned short a2) 6782{ 6783 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 6784} 6785 6786inline int 6787vec_all_eq (__vector __bool short a1, __vector signed short a2) 6788{ 6789 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 6790} 6791 6792inline int 6793vec_all_eq (__vector __pixel a1, __vector __pixel a2) 6794{ 6795 return __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 6796} 6797 6798inline int 6799vec_all_eq (__vector signed int a1, __vector __bool int a2) 6800{ 6801 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 6802} 6803 6804inline int 6805vec_all_eq (__vector signed int a1, __vector signed int a2) 6806{ 6807 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 6808} 6809 6810inline int 6811vec_all_eq (__vector unsigned int a1, __vector __bool int a2) 6812{ 6813 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 6814} 6815 6816inline int 6817vec_all_eq (__vector unsigned int a1, __vector unsigned int a2) 6818{ 6819 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 6820} 6821 6822inline int 6823vec_all_eq (__vector __bool int a1, __vector __bool int a2) 6824{ 6825 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 6826} 6827 6828inline int 6829vec_all_eq (__vector __bool int a1, __vector unsigned int a2) 6830{ 6831 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 6832} 6833 6834inline int 6835vec_all_eq (__vector __bool int a1, __vector signed int a2) 6836{ 6837 return __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 6838} 6839 6840inline int 6841vec_all_eq (__vector float a1, __vector float a2) 6842{ 6843 return __builtin_altivec_vcmpeqfp_p (__CR6_LT, a1, a2); 6844} 6845 6846/* vec_all_ge */ 6847 6848inline int 6849vec_all_ge (__vector __bool char a1, __vector unsigned char a2) 6850{ 6851 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1); 6852} 6853 6854inline int 6855vec_all_ge (__vector unsigned char a1, __vector __bool char a2) 6856{ 6857 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1); 6858} 6859 6860inline int 6861vec_all_ge (__vector unsigned char a1, __vector unsigned char a2) 6862{ 6863 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1); 6864} 6865 6866inline int 6867vec_all_ge (__vector __bool char a1, __vector signed char a2) 6868{ 6869 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1); 6870} 6871 6872inline int 6873vec_all_ge (__vector signed char a1, __vector __bool char a2) 6874{ 6875 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1); 6876} 6877 6878inline int 6879vec_all_ge (__vector signed char a1, __vector signed char a2) 6880{ 6881 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a2, (__vector signed char) a1); 6882} 6883 6884inline int 6885vec_all_ge (__vector __bool short a1, __vector unsigned short a2) 6886{ 6887 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1); 6888} 6889 6890inline int 6891vec_all_ge (__vector unsigned short a1, __vector __bool short a2) 6892{ 6893 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1); 6894} 6895 6896inline int 6897vec_all_ge (__vector unsigned short a1, __vector unsigned short a2) 6898{ 6899 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1); 6900} 6901 6902inline int 6903vec_all_ge (__vector signed short a1, __vector signed short a2) 6904{ 6905 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1); 6906} 6907 6908inline int 6909vec_all_ge (__vector __bool short a1, __vector signed short a2) 6910{ 6911 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1); 6912} 6913 6914inline int 6915vec_all_ge (__vector signed short a1, __vector __bool short a2) 6916{ 6917 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a2, (__vector signed short) a1); 6918} 6919 6920inline int 6921vec_all_ge (__vector __bool int a1, __vector unsigned int a2) 6922{ 6923 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1); 6924} 6925 6926inline int 6927vec_all_ge (__vector unsigned int a1, __vector __bool int a2) 6928{ 6929 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1); 6930} 6931 6932inline int 6933vec_all_ge (__vector unsigned int a1, __vector unsigned int a2) 6934{ 6935 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1); 6936} 6937 6938inline int 6939vec_all_ge (__vector __bool int a1, __vector signed int a2) 6940{ 6941 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1); 6942} 6943 6944inline int 6945vec_all_ge (__vector signed int a1, __vector __bool int a2) 6946{ 6947 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1); 6948} 6949 6950inline int 6951vec_all_ge (__vector signed int a1, __vector signed int a2) 6952{ 6953 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a2, (__vector signed int) a1); 6954} 6955 6956inline int 6957vec_all_ge (__vector float a1, __vector float a2) 6958{ 6959 return __builtin_altivec_vcmpgefp_p (__CR6_LT, a1, a2); 6960} 6961 6962/* vec_all_gt */ 6963 6964inline int 6965vec_all_gt (__vector __bool char a1, __vector unsigned char a2) 6966{ 6967 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6968} 6969 6970inline int 6971vec_all_gt (__vector unsigned char a1, __vector __bool char a2) 6972{ 6973 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6974} 6975 6976inline int 6977vec_all_gt (__vector unsigned char a1, __vector unsigned char a2) 6978{ 6979 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6980} 6981 6982inline int 6983vec_all_gt (__vector __bool char a1, __vector signed char a2) 6984{ 6985 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6986} 6987 6988inline int 6989vec_all_gt (__vector signed char a1, __vector __bool char a2) 6990{ 6991 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6992} 6993 6994inline int 6995vec_all_gt (__vector signed char a1, __vector signed char a2) 6996{ 6997 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a1, (__vector signed char) a2); 6998} 6999 7000inline int 7001vec_all_gt (__vector __bool short a1, __vector unsigned short a2) 7002{ 7003 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 7004} 7005 7006inline int 7007vec_all_gt (__vector unsigned short a1, __vector __bool short a2) 7008{ 7009 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 7010} 7011 7012inline int 7013vec_all_gt (__vector unsigned short a1, __vector unsigned short a2) 7014{ 7015 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 7016} 7017 7018inline int 7019vec_all_gt (__vector __bool short a1, __vector signed short a2) 7020{ 7021 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 7022} 7023 7024inline int 7025vec_all_gt (__vector signed short a1, __vector __bool short a2) 7026{ 7027 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 7028} 7029 7030inline int 7031vec_all_gt (__vector signed short a1, __vector signed short a2) 7032{ 7033 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a1, (__vector signed short) a2); 7034} 7035 7036inline int 7037vec_all_gt (__vector __bool int a1, __vector unsigned int a2) 7038{ 7039 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 7040} 7041 7042inline int 7043vec_all_gt (__vector unsigned int a1, __vector __bool int a2) 7044{ 7045 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 7046} 7047 7048inline int 7049vec_all_gt (__vector unsigned int a1, __vector unsigned int a2) 7050{ 7051 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 7052} 7053 7054inline int 7055vec_all_gt (__vector __bool int a1, __vector signed int a2) 7056{ 7057 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 7058} 7059 7060inline int 7061vec_all_gt (__vector signed int a1, __vector __bool int a2) 7062{ 7063 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 7064} 7065 7066inline int 7067vec_all_gt (__vector signed int a1, __vector signed int a2) 7068{ 7069 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a1, (__vector signed int) a2); 7070} 7071 7072inline int 7073vec_all_gt (__vector float a1, __vector float a2) 7074{ 7075 return __builtin_altivec_vcmpgtfp_p (__CR6_LT, a1, a2); 7076} 7077 7078/* vec_all_in */ 7079 7080inline int 7081vec_all_in (__vector float a1, __vector float a2) 7082{ 7083 return __builtin_altivec_vcmpbfp_p (__CR6_EQ, a1, a2); 7084} 7085 7086/* vec_all_le */ 7087 7088inline int 7089vec_all_le (__vector __bool char a1, __vector unsigned char a2) 7090{ 7091 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7092} 7093 7094inline int 7095vec_all_le (__vector unsigned char a1, __vector __bool char a2) 7096{ 7097 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7098} 7099 7100inline int 7101vec_all_le (__vector unsigned char a1, __vector unsigned char a2) 7102{ 7103 return __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7104} 7105 7106inline int 7107vec_all_le (__vector __bool char a1, __vector signed char a2) 7108{ 7109 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7110} 7111 7112inline int 7113vec_all_le (__vector signed char a1, __vector __bool char a2) 7114{ 7115 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7116} 7117 7118inline int 7119vec_all_le (__vector signed char a1, __vector signed char a2) 7120{ 7121 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7122} 7123 7124inline int 7125vec_all_le (__vector __bool short a1, __vector unsigned short a2) 7126{ 7127 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7128} 7129 7130inline int 7131vec_all_le (__vector unsigned short a1, __vector __bool short a2) 7132{ 7133 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7134} 7135 7136inline int 7137vec_all_le (__vector unsigned short a1, __vector unsigned short a2) 7138{ 7139 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7140} 7141 7142inline int 7143vec_all_le (__vector __bool short a1, __vector signed short a2) 7144{ 7145 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7146} 7147 7148inline int 7149vec_all_le (__vector signed short a1, __vector __bool short a2) 7150{ 7151 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7152} 7153 7154inline int 7155vec_all_le (__vector signed short a1, __vector signed short a2) 7156{ 7157 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7158} 7159 7160inline int 7161vec_all_le (__vector __bool int a1, __vector unsigned int a2) 7162{ 7163 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7164} 7165 7166inline int 7167vec_all_le (__vector unsigned int a1, __vector __bool int a2) 7168{ 7169 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7170} 7171 7172inline int 7173vec_all_le (__vector unsigned int a1, __vector unsigned int a2) 7174{ 7175 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7176} 7177 7178inline int 7179vec_all_le (__vector __bool int a1, __vector signed int a2) 7180{ 7181 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7182} 7183 7184inline int 7185vec_all_le (__vector signed int a1, __vector __bool int a2) 7186{ 7187 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7188} 7189 7190inline int 7191vec_all_le (__vector signed int a1, __vector signed int a2) 7192{ 7193 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7194} 7195 7196inline int 7197vec_all_le (__vector float a1, __vector float a2) 7198{ 7199 return __builtin_altivec_vcmpgefp_p (__CR6_LT, a2, a1); 7200} 7201 7202/* vec_all_lt */ 7203 7204inline int 7205vec_all_lt (__vector __bool char a1, __vector unsigned char a2) 7206{ 7207 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1); 7208} 7209 7210inline int 7211vec_all_lt (__vector unsigned char a1, __vector __bool char a2) 7212{ 7213 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1); 7214} 7215 7216inline int 7217vec_all_lt (__vector unsigned char a1, __vector unsigned char a2) 7218{ 7219 return __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1); 7220} 7221 7222inline int 7223vec_all_lt (__vector __bool char a1, __vector signed char a2) 7224{ 7225 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1); 7226} 7227 7228inline int 7229vec_all_lt (__vector signed char a1, __vector __bool char a2) 7230{ 7231 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1); 7232} 7233 7234inline int 7235vec_all_lt (__vector signed char a1, __vector signed char a2) 7236{ 7237 return __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) a2, (__vector signed char) a1); 7238} 7239 7240inline int 7241vec_all_lt (__vector __bool short a1, __vector unsigned short a2) 7242{ 7243 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1); 7244} 7245 7246inline int 7247vec_all_lt (__vector unsigned short a1, __vector __bool short a2) 7248{ 7249 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1); 7250} 7251 7252inline int 7253vec_all_lt (__vector unsigned short a1, __vector unsigned short a2) 7254{ 7255 return __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1); 7256} 7257 7258inline int 7259vec_all_lt (__vector __bool short a1, __vector signed short a2) 7260{ 7261 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1); 7262} 7263 7264inline int 7265vec_all_lt (__vector signed short a1, __vector __bool short a2) 7266{ 7267 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1); 7268} 7269 7270inline int 7271vec_all_lt (__vector signed short a1, __vector signed short a2) 7272{ 7273 return __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) a2, (__vector signed short) a1); 7274} 7275 7276inline int 7277vec_all_lt (__vector __bool int a1, __vector unsigned int a2) 7278{ 7279 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1); 7280} 7281 7282inline int 7283vec_all_lt (__vector unsigned int a1, __vector __bool int a2) 7284{ 7285 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1); 7286} 7287 7288inline int 7289vec_all_lt (__vector unsigned int a1, __vector unsigned int a2) 7290{ 7291 return __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1); 7292} 7293 7294inline int 7295vec_all_lt (__vector __bool int a1, __vector signed int a2) 7296{ 7297 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1); 7298} 7299 7300inline int 7301vec_all_lt (__vector signed int a1, __vector __bool int a2) 7302{ 7303 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1); 7304} 7305 7306inline int 7307vec_all_lt (__vector signed int a1, __vector signed int a2) 7308{ 7309 return __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) a2, (__vector signed int) a1); 7310} 7311 7312inline int 7313vec_all_lt (__vector float a1, __vector float a2) 7314{ 7315 return __builtin_altivec_vcmpgtfp_p (__CR6_LT, a2, a1); 7316} 7317 7318/* vec_all_nan */ 7319 7320inline int 7321vec_all_nan (__vector float a1) 7322{ 7323 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a1); 7324} 7325 7326/* vec_all_ne */ 7327 7328inline int 7329vec_all_ne (__vector signed char a1, __vector __bool char a2) 7330{ 7331 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7332} 7333 7334inline int 7335vec_all_ne (__vector signed char a1, __vector signed char a2) 7336{ 7337 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7338} 7339 7340inline int 7341vec_all_ne (__vector unsigned char a1, __vector __bool char a2) 7342{ 7343 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7344} 7345 7346inline int 7347vec_all_ne (__vector unsigned char a1, __vector unsigned char a2) 7348{ 7349 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7350} 7351 7352inline int 7353vec_all_ne (__vector __bool char a1, __vector __bool char a2) 7354{ 7355 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7356} 7357 7358inline int 7359vec_all_ne (__vector __bool char a1, __vector unsigned char a2) 7360{ 7361 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7362} 7363 7364inline int 7365vec_all_ne (__vector __bool char a1, __vector signed char a2) 7366{ 7367 return __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) a1, (__vector signed char) a2); 7368} 7369 7370inline int 7371vec_all_ne (__vector signed short a1, __vector __bool short a2) 7372{ 7373 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7374} 7375 7376inline int 7377vec_all_ne (__vector signed short a1, __vector signed short a2) 7378{ 7379 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7380} 7381 7382inline int 7383vec_all_ne (__vector unsigned short a1, __vector __bool short a2) 7384{ 7385 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7386} 7387 7388inline int 7389vec_all_ne (__vector unsigned short a1, __vector unsigned short a2) 7390{ 7391 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7392} 7393 7394inline int 7395vec_all_ne (__vector __bool short a1, __vector __bool short a2) 7396{ 7397 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7398} 7399 7400inline int 7401vec_all_ne (__vector __bool short a1, __vector unsigned short a2) 7402{ 7403 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7404} 7405 7406inline int 7407vec_all_ne (__vector __bool short a1, __vector signed short a2) 7408{ 7409 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7410} 7411 7412inline int 7413vec_all_ne (__vector __pixel a1, __vector __pixel a2) 7414{ 7415 return __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) a1, (__vector signed short) a2); 7416} 7417 7418inline int 7419vec_all_ne (__vector signed int a1, __vector __bool int a2) 7420{ 7421 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7422} 7423 7424inline int 7425vec_all_ne (__vector signed int a1, __vector signed int a2) 7426{ 7427 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7428} 7429 7430inline int 7431vec_all_ne (__vector unsigned int a1, __vector __bool int a2) 7432{ 7433 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7434} 7435 7436inline int 7437vec_all_ne (__vector unsigned int a1, __vector unsigned int a2) 7438{ 7439 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7440} 7441 7442inline int 7443vec_all_ne (__vector __bool int a1, __vector __bool int a2) 7444{ 7445 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7446} 7447 7448inline int 7449vec_all_ne (__vector __bool int a1, __vector unsigned int a2) 7450{ 7451 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7452} 7453 7454inline int 7455vec_all_ne (__vector __bool int a1, __vector signed int a2) 7456{ 7457 return __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) a1, (__vector signed int) a2); 7458} 7459 7460inline int 7461vec_all_ne (__vector float a1, __vector float a2) 7462{ 7463 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ, a1, a2); 7464} 7465 7466/* vec_all_nge */ 7467 7468inline int 7469vec_all_nge (__vector float a1, __vector float a2) 7470{ 7471 return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a1, a2); 7472} 7473 7474/* vec_all_ngt */ 7475 7476inline int 7477vec_all_ngt (__vector float a1, __vector float a2) 7478{ 7479 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a1, a2); 7480} 7481 7482/* vec_all_nle */ 7483 7484inline int 7485vec_all_nle (__vector float a1, __vector float a2) 7486{ 7487 return __builtin_altivec_vcmpgefp_p (__CR6_EQ, a2, a1); 7488} 7489 7490/* vec_all_nlt */ 7491 7492inline int 7493vec_all_nlt (__vector float a1, __vector float a2) 7494{ 7495 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ, a2, a1); 7496} 7497 7498/* vec_all_numeric */ 7499 7500inline int 7501vec_all_numeric (__vector float a1) 7502{ 7503 return __builtin_altivec_vcmpeqfp_p (__CR6_LT, a1, a1); 7504} 7505 7506/* vec_any_eq */ 7507 7508inline int 7509vec_any_eq (__vector signed char a1, __vector __bool char a2) 7510{ 7511 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7512} 7513 7514inline int 7515vec_any_eq (__vector signed char a1, __vector signed char a2) 7516{ 7517 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7518} 7519 7520inline int 7521vec_any_eq (__vector unsigned char a1, __vector __bool char a2) 7522{ 7523 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7524} 7525 7526inline int 7527vec_any_eq (__vector unsigned char a1, __vector unsigned char a2) 7528{ 7529 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7530} 7531 7532inline int 7533vec_any_eq (__vector __bool char a1, __vector __bool char a2) 7534{ 7535 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7536} 7537 7538inline int 7539vec_any_eq (__vector __bool char a1, __vector unsigned char a2) 7540{ 7541 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7542} 7543 7544inline int 7545vec_any_eq (__vector __bool char a1, __vector signed char a2) 7546{ 7547 return __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7548} 7549 7550inline int 7551vec_any_eq (__vector signed short a1, __vector __bool short a2) 7552{ 7553 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7554} 7555 7556inline int 7557vec_any_eq (__vector signed short a1, __vector signed short a2) 7558{ 7559 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7560} 7561 7562inline int 7563vec_any_eq (__vector unsigned short a1, __vector __bool short a2) 7564{ 7565 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7566} 7567 7568inline int 7569vec_any_eq (__vector unsigned short a1, __vector unsigned short a2) 7570{ 7571 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7572} 7573 7574inline int 7575vec_any_eq (__vector __bool short a1, __vector __bool short a2) 7576{ 7577 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7578} 7579 7580inline int 7581vec_any_eq (__vector __bool short a1, __vector unsigned short a2) 7582{ 7583 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7584} 7585 7586inline int 7587vec_any_eq (__vector __bool short a1, __vector signed short a2) 7588{ 7589 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7590} 7591 7592inline int 7593vec_any_eq (__vector __pixel a1, __vector __pixel a2) 7594{ 7595 return __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7596} 7597 7598inline int 7599vec_any_eq (__vector signed int a1, __vector __bool int a2) 7600{ 7601 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7602} 7603 7604inline int 7605vec_any_eq (__vector signed int a1, __vector signed int a2) 7606{ 7607 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7608} 7609 7610inline int 7611vec_any_eq (__vector unsigned int a1, __vector __bool int a2) 7612{ 7613 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7614} 7615 7616inline int 7617vec_any_eq (__vector unsigned int a1, __vector unsigned int a2) 7618{ 7619 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7620} 7621 7622inline int 7623vec_any_eq (__vector __bool int a1, __vector __bool int a2) 7624{ 7625 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7626} 7627 7628inline int 7629vec_any_eq (__vector __bool int a1, __vector unsigned int a2) 7630{ 7631 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7632} 7633 7634inline int 7635vec_any_eq (__vector __bool int a1, __vector signed int a2) 7636{ 7637 return __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7638} 7639 7640inline int 7641vec_any_eq (__vector float a1, __vector float a2) 7642{ 7643 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a2); 7644} 7645 7646/* vec_any_ge */ 7647 7648inline int 7649vec_any_ge (__vector signed char a1, __vector __bool char a2) 7650{ 7651 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1); 7652} 7653 7654inline int 7655vec_any_ge (__vector unsigned char a1, __vector __bool char a2) 7656{ 7657 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1); 7658} 7659 7660inline int 7661vec_any_ge (__vector unsigned char a1, __vector unsigned char a2) 7662{ 7663 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1); 7664} 7665 7666inline int 7667vec_any_ge (__vector signed char a1, __vector signed char a2) 7668{ 7669 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1); 7670} 7671 7672inline int 7673vec_any_ge (__vector __bool char a1, __vector unsigned char a2) 7674{ 7675 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1); 7676} 7677 7678inline int 7679vec_any_ge (__vector __bool char a1, __vector signed char a2) 7680{ 7681 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a2, (__vector signed char) a1); 7682} 7683 7684inline int 7685vec_any_ge (__vector unsigned short a1, __vector __bool short a2) 7686{ 7687 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1); 7688} 7689 7690inline int 7691vec_any_ge (__vector unsigned short a1, __vector unsigned short a2) 7692{ 7693 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1); 7694} 7695 7696inline int 7697vec_any_ge (__vector signed short a1, __vector signed short a2) 7698{ 7699 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1); 7700} 7701 7702inline int 7703vec_any_ge (__vector signed short a1, __vector __bool short a2) 7704{ 7705 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1); 7706} 7707 7708inline int 7709vec_any_ge (__vector __bool short a1, __vector unsigned short a2) 7710{ 7711 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1); 7712} 7713 7714inline int 7715vec_any_ge (__vector __bool short a1, __vector signed short a2) 7716{ 7717 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a2, (__vector signed short) a1); 7718} 7719 7720inline int 7721vec_any_ge (__vector signed int a1, __vector __bool int a2) 7722{ 7723 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1); 7724} 7725 7726inline int 7727vec_any_ge (__vector unsigned int a1, __vector __bool int a2) 7728{ 7729 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1); 7730} 7731 7732inline int 7733vec_any_ge (__vector unsigned int a1, __vector unsigned int a2) 7734{ 7735 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1); 7736} 7737 7738inline int 7739vec_any_ge (__vector signed int a1, __vector signed int a2) 7740{ 7741 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1); 7742} 7743 7744inline int 7745vec_any_ge (__vector __bool int a1, __vector unsigned int a2) 7746{ 7747 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1); 7748} 7749 7750inline int 7751vec_any_ge (__vector __bool int a1, __vector signed int a2) 7752{ 7753 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a2, (__vector signed int) a1); 7754} 7755 7756inline int 7757vec_any_ge (__vector float a1, __vector float a2) 7758{ 7759 return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a1, a2); 7760} 7761 7762/* vec_any_gt */ 7763 7764inline int 7765vec_any_gt (__vector __bool char a1, __vector unsigned char a2) 7766{ 7767 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7768} 7769 7770inline int 7771vec_any_gt (__vector unsigned char a1, __vector __bool char a2) 7772{ 7773 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7774} 7775 7776inline int 7777vec_any_gt (__vector unsigned char a1, __vector unsigned char a2) 7778{ 7779 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7780} 7781 7782inline int 7783vec_any_gt (__vector __bool char a1, __vector signed char a2) 7784{ 7785 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7786} 7787 7788inline int 7789vec_any_gt (__vector signed char a1, __vector __bool char a2) 7790{ 7791 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7792} 7793 7794inline int 7795vec_any_gt (__vector signed char a1, __vector signed char a2) 7796{ 7797 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a1, (__vector signed char) a2); 7798} 7799 7800inline int 7801vec_any_gt (__vector __bool short a1, __vector unsigned short a2) 7802{ 7803 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7804} 7805 7806inline int 7807vec_any_gt (__vector unsigned short a1, __vector __bool short a2) 7808{ 7809 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7810} 7811 7812inline int 7813vec_any_gt (__vector unsigned short a1, __vector unsigned short a2) 7814{ 7815 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7816} 7817 7818inline int 7819vec_any_gt (__vector __bool short a1, __vector signed short a2) 7820{ 7821 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7822} 7823 7824inline int 7825vec_any_gt (__vector signed short a1, __vector __bool short a2) 7826{ 7827 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7828} 7829 7830inline int 7831vec_any_gt (__vector signed short a1, __vector signed short a2) 7832{ 7833 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a1, (__vector signed short) a2); 7834} 7835 7836inline int 7837vec_any_gt (__vector __bool int a1, __vector unsigned int a2) 7838{ 7839 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7840} 7841 7842inline int 7843vec_any_gt (__vector unsigned int a1, __vector __bool int a2) 7844{ 7845 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7846} 7847 7848inline int 7849vec_any_gt (__vector unsigned int a1, __vector unsigned int a2) 7850{ 7851 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7852} 7853 7854inline int 7855vec_any_gt (__vector __bool int a1, __vector signed int a2) 7856{ 7857 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7858} 7859 7860inline int 7861vec_any_gt (__vector signed int a1, __vector __bool int a2) 7862{ 7863 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7864} 7865 7866inline int 7867vec_any_gt (__vector signed int a1, __vector signed int a2) 7868{ 7869 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a1, (__vector signed int) a2); 7870} 7871 7872inline int 7873vec_any_gt (__vector float a1, __vector float a2) 7874{ 7875 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, a1, a2); 7876} 7877 7878/* vec_any_le */ 7879 7880inline int 7881vec_any_le (__vector __bool char a1, __vector unsigned char a2) 7882{ 7883 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 7884} 7885 7886inline int 7887vec_any_le (__vector unsigned char a1, __vector __bool char a2) 7888{ 7889 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 7890} 7891 7892inline int 7893vec_any_le (__vector unsigned char a1, __vector unsigned char a2) 7894{ 7895 return __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 7896} 7897 7898inline int 7899vec_any_le (__vector __bool char a1, __vector signed char a2) 7900{ 7901 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 7902} 7903 7904inline int 7905vec_any_le (__vector signed char a1, __vector __bool char a2) 7906{ 7907 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 7908} 7909 7910inline int 7911vec_any_le (__vector signed char a1, __vector signed char a2) 7912{ 7913 return __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 7914} 7915 7916inline int 7917vec_any_le (__vector __bool short a1, __vector unsigned short a2) 7918{ 7919 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 7920} 7921 7922inline int 7923vec_any_le (__vector unsigned short a1, __vector __bool short a2) 7924{ 7925 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 7926} 7927 7928inline int 7929vec_any_le (__vector unsigned short a1, __vector unsigned short a2) 7930{ 7931 return __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 7932} 7933 7934inline int 7935vec_any_le (__vector __bool short a1, __vector signed short a2) 7936{ 7937 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 7938} 7939 7940inline int 7941vec_any_le (__vector signed short a1, __vector __bool short a2) 7942{ 7943 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 7944} 7945 7946inline int 7947vec_any_le (__vector signed short a1, __vector signed short a2) 7948{ 7949 return __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 7950} 7951 7952inline int 7953vec_any_le (__vector __bool int a1, __vector unsigned int a2) 7954{ 7955 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 7956} 7957 7958inline int 7959vec_any_le (__vector unsigned int a1, __vector __bool int a2) 7960{ 7961 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 7962} 7963 7964inline int 7965vec_any_le (__vector unsigned int a1, __vector unsigned int a2) 7966{ 7967 return __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 7968} 7969 7970inline int 7971vec_any_le (__vector __bool int a1, __vector signed int a2) 7972{ 7973 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 7974} 7975 7976inline int 7977vec_any_le (__vector signed int a1, __vector __bool int a2) 7978{ 7979 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 7980} 7981 7982inline int 7983vec_any_le (__vector signed int a1, __vector signed int a2) 7984{ 7985 return __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 7986} 7987 7988inline int 7989vec_any_le (__vector float a1, __vector float a2) 7990{ 7991 return __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, a2, a1); 7992} 7993 7994/* vec_any_lt */ 7995 7996inline int 7997vec_any_lt (__vector __bool char a1, __vector unsigned char a2) 7998{ 7999 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1); 8000} 8001 8002inline int 8003vec_any_lt (__vector unsigned char a1, __vector __bool char a2) 8004{ 8005 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1); 8006} 8007 8008inline int 8009vec_any_lt (__vector unsigned char a1, __vector unsigned char a2) 8010{ 8011 return __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1); 8012} 8013 8014inline int 8015vec_any_lt (__vector __bool char a1, __vector signed char a2) 8016{ 8017 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1); 8018} 8019 8020inline int 8021vec_any_lt (__vector signed char a1, __vector __bool char a2) 8022{ 8023 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1); 8024} 8025 8026inline int 8027vec_any_lt (__vector signed char a1, __vector signed char a2) 8028{ 8029 return __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) a2, (__vector signed char) a1); 8030} 8031 8032inline int 8033vec_any_lt (__vector __bool short a1, __vector unsigned short a2) 8034{ 8035 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1); 8036} 8037 8038inline int 8039vec_any_lt (__vector unsigned short a1, __vector __bool short a2) 8040{ 8041 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1); 8042} 8043 8044inline int 8045vec_any_lt (__vector unsigned short a1, __vector unsigned short a2) 8046{ 8047 return __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1); 8048} 8049 8050inline int 8051vec_any_lt (__vector __bool short a1, __vector signed short a2) 8052{ 8053 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1); 8054} 8055 8056inline int 8057vec_any_lt (__vector signed short a1, __vector __bool short a2) 8058{ 8059 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1); 8060} 8061 8062inline int 8063vec_any_lt (__vector signed short a1, __vector signed short a2) 8064{ 8065 return __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) a2, (__vector signed short) a1); 8066} 8067 8068inline int 8069vec_any_lt (__vector __bool int a1, __vector unsigned int a2) 8070{ 8071 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1); 8072} 8073 8074inline int 8075vec_any_lt (__vector unsigned int a1, __vector __bool int a2) 8076{ 8077 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1); 8078} 8079 8080inline int 8081vec_any_lt (__vector unsigned int a1, __vector unsigned int a2) 8082{ 8083 return __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1); 8084} 8085 8086inline int 8087vec_any_lt (__vector __bool int a1, __vector signed int a2) 8088{ 8089 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1); 8090} 8091 8092inline int 8093vec_any_lt (__vector signed int a1, __vector __bool int a2) 8094{ 8095 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1); 8096} 8097 8098inline int 8099vec_any_lt (__vector signed int a1, __vector signed int a2) 8100{ 8101 return __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) a2, (__vector signed int) a1); 8102} 8103 8104inline int 8105vec_any_lt (__vector float a1, __vector float a2) 8106{ 8107 return __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, a2, a1); 8108} 8109 8110/* vec_any_nan */ 8111 8112inline int 8113vec_any_nan (__vector float a1) 8114{ 8115 return __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a1); 8116} 8117 8118/* vec_any_ne */ 8119 8120inline int 8121vec_any_ne (__vector signed char a1, __vector __bool char a2) 8122{ 8123 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 8124} 8125 8126inline int 8127vec_any_ne (__vector signed char a1, __vector signed char a2) 8128{ 8129 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 8130} 8131 8132inline int 8133vec_any_ne (__vector unsigned char a1, __vector __bool char a2) 8134{ 8135 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 8136} 8137 8138inline int 8139vec_any_ne (__vector unsigned char a1, __vector unsigned char a2) 8140{ 8141 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 8142} 8143 8144inline int 8145vec_any_ne (__vector __bool char a1, __vector __bool char a2) 8146{ 8147 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 8148} 8149 8150inline int 8151vec_any_ne (__vector __bool char a1, __vector unsigned char a2) 8152{ 8153 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 8154} 8155 8156inline int 8157vec_any_ne (__vector __bool char a1, __vector signed char a2) 8158{ 8159 return __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) a1, (__vector signed char) a2); 8160} 8161 8162inline int 8163vec_any_ne (__vector signed short a1, __vector __bool short a2) 8164{ 8165 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 8166} 8167 8168inline int 8169vec_any_ne (__vector signed short a1, __vector signed short a2) 8170{ 8171 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 8172} 8173 8174inline int 8175vec_any_ne (__vector unsigned short a1, __vector __bool short a2) 8176{ 8177 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 8178} 8179 8180inline int 8181vec_any_ne (__vector unsigned short a1, __vector unsigned short a2) 8182{ 8183 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 8184} 8185 8186inline int 8187vec_any_ne (__vector __bool short a1, __vector __bool short a2) 8188{ 8189 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 8190} 8191 8192inline int 8193vec_any_ne (__vector __bool short a1, __vector unsigned short a2) 8194{ 8195 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 8196} 8197 8198inline int 8199vec_any_ne (__vector __bool short a1, __vector signed short a2) 8200{ 8201 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 8202} 8203 8204inline int 8205vec_any_ne (__vector __pixel a1, __vector __pixel a2) 8206{ 8207 return __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) a1, (__vector signed short) a2); 8208} 8209 8210inline int 8211vec_any_ne (__vector signed int a1, __vector __bool int a2) 8212{ 8213 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 8214} 8215 8216inline int 8217vec_any_ne (__vector signed int a1, __vector signed int a2) 8218{ 8219 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 8220} 8221 8222inline int 8223vec_any_ne (__vector unsigned int a1, __vector __bool int a2) 8224{ 8225 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 8226} 8227 8228inline int 8229vec_any_ne (__vector unsigned int a1, __vector unsigned int a2) 8230{ 8231 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 8232} 8233 8234inline int 8235vec_any_ne (__vector __bool int a1, __vector __bool int a2) 8236{ 8237 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 8238} 8239 8240inline int 8241vec_any_ne (__vector __bool int a1, __vector unsigned int a2) 8242{ 8243 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 8244} 8245 8246inline int 8247vec_any_ne (__vector __bool int a1, __vector signed int a2) 8248{ 8249 return __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) a1, (__vector signed int) a2); 8250} 8251 8252inline int 8253vec_any_ne (__vector float a1, __vector float a2) 8254{ 8255 return __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, a1, a2); 8256} 8257 8258/* vec_any_nge */ 8259 8260inline int 8261vec_any_nge (__vector float a1, __vector float a2) 8262{ 8263 return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a1, a2); 8264} 8265 8266/* vec_any_ngt */ 8267 8268inline int 8269vec_any_ngt (__vector float a1, __vector float a2) 8270{ 8271 return __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a1, a2); 8272} 8273 8274/* vec_any_nle */ 8275 8276inline int 8277vec_any_nle (__vector float a1, __vector float a2) 8278{ 8279 return __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, a2, a1); 8280} 8281 8282/* vec_any_nlt */ 8283 8284inline int 8285vec_any_nlt (__vector float a1, __vector float a2) 8286{ 8287 return __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, a2, a1); 8288} 8289 8290/* vec_any_numeric */ 8291 8292inline int 8293vec_any_numeric (__vector float a1) 8294{ 8295 return __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, a1, a1); 8296} 8297 8298/* vec_any_out */ 8299 8300inline int 8301vec_any_out (__vector float a1, __vector float a2) 8302{ 8303 return __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, a1, a2); 8304} 8305 8306} /* extern "C++" */ 8307 8308#else /* not C++ */ 8309 8310/* "... and so I think no man in a century will suffer as greatly as 8311 you will." */ 8312 8313/* Helper macros. */ 8314 8315#define __un_args_eq(xtype, x) \ 8316 __builtin_types_compatible_p (xtype, typeof (x)) 8317 8318#define __bin_args_eq(xtype, x, ytype, y) \ 8319 (__builtin_types_compatible_p (xtype, typeof (x)) \ 8320 && __builtin_types_compatible_p (ytype, typeof (y))) 8321 8322#define __tern_args_eq(xtype, x, ytype, y, ztype, z) \ 8323 (__builtin_types_compatible_p (xtype, typeof (x)) \ 8324 && __builtin_types_compatible_p (ytype, typeof (y)) \ 8325 && __builtin_types_compatible_p (ztype, typeof (z))) 8326 8327#define __ch(x, y, z) __builtin_choose_expr (x, y, z) 8328 8329#define vec_step(t) \ 8330 __ch (__builtin_types_compatible_p (typeof (t), __vector signed int), 4, \ 8331 __ch (__builtin_types_compatible_p (typeof (t), __vector unsigned int), 4, \ 8332 __ch (__builtin_types_compatible_p (typeof (t), __vector __bool int), 4, \ 8333 __ch (__builtin_types_compatible_p (typeof (t), __vector signed short), 8, \ 8334 __ch (__builtin_types_compatible_p (typeof (t), __vector unsigned short), 8, \ 8335 __ch (__builtin_types_compatible_p (typeof (t), __vector __bool short), 8, \ 8336 __ch (__builtin_types_compatible_p (typeof (t), __vector __pixel), 8, \ 8337 __ch (__builtin_types_compatible_p (typeof (t), __vector signed char), 16, \ 8338 __ch (__builtin_types_compatible_p (typeof (t), __vector unsigned char), 16, \ 8339 __ch (__builtin_types_compatible_p (typeof (t), __vector __bool char), 16, \ 8340 __ch (__builtin_types_compatible_p (typeof (t), __vector float), 4, \ 8341 __builtin_altivec_compiletime_error ("vec_step")))))))))))) 8342 8343#define vec_abs(a) \ 8344 __ch (__un_args_eq (__vector signed char, (a)), \ 8345 ((__vector signed char) __builtin_altivec_abs_v16qi ((__vector signed char) (a))), \ 8346 __ch (__un_args_eq (__vector signed short, (a)), \ 8347 ((__vector signed short) __builtin_altivec_abs_v8hi ((__vector signed short) (a))), \ 8348 __ch (__un_args_eq (__vector signed int, (a)), \ 8349 ((__vector signed int) __builtin_altivec_abs_v4si ((__vector signed int) (a))), \ 8350 __ch (__un_args_eq (__vector float, (a)), \ 8351 ((__vector float) __builtin_altivec_abs_v4sf ((__vector float) (a))), \ 8352 __builtin_altivec_compiletime_error ("vec_abs"))))) 8353 8354#define vec_abss(a) \ 8355 __ch (__un_args_eq (__vector signed char, (a)), \ 8356 ((__vector signed char) __builtin_altivec_abss_v16qi ((__vector signed char) (a))), \ 8357 __ch (__un_args_eq (__vector signed short, (a)), \ 8358 ((__vector signed short) __builtin_altivec_abss_v8hi ((__vector signed short) (a))), \ 8359 __ch (__un_args_eq (__vector signed int, (a)), \ 8360 ((__vector signed int) __builtin_altivec_abss_v4si ((__vector signed int) (a))), \ 8361 __builtin_altivec_compiletime_error ("vec_abss")))) 8362 8363#define vec_vaddubm(a1, a2) \ 8364__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 8365 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8366__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 8367 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8368__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8369 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8370__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 8371 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8372__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 8373 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8374__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8375 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8376 __builtin_altivec_compiletime_error ("vec_vaddubm"))))))) 8377 8378#define vec_vadduhm(a1, a2) \ 8379__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 8380 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8381__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 8382 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8383__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8384 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8385__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 8386 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8387__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 8388 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8389__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8390 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8391 __builtin_altivec_compiletime_error ("vec_vadduhm"))))))) 8392 8393#define vec_vadduwm(a1, a2) \ 8394__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 8395 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8396__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 8397 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8398__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8399 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8400__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 8401 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8402__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 8403 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8404__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8405 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8406 __builtin_altivec_compiletime_error ("vec_vadduwm"))))))) 8407 8408#define vec_vaddfp(a1, a2) \ 8409__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8410 ((__vector float) __builtin_altivec_vaddfp ((__vector float) (a1), (__vector float) (a2))), \ 8411 __builtin_altivec_compiletime_error ("vec_vaddfp")) 8412 8413#define vec_add(a1, a2) \ 8414__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 8415 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8416__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 8417 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8418__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8419 ((__vector signed char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8420__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 8421 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8422__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 8423 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8424__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8425 ((__vector unsigned char) __builtin_altivec_vaddubm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8426__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 8427 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8428__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 8429 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8430__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8431 ((__vector signed short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8432__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 8433 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8434__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 8435 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8436__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8437 ((__vector unsigned short) __builtin_altivec_vadduhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8438__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 8439 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8440__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 8441 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8442__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8443 ((__vector signed int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8444__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 8445 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8446__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 8447 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8448__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8449 ((__vector unsigned int) __builtin_altivec_vadduwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8450__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8451 ((__vector float) __builtin_altivec_vaddfp ((__vector float) (a1), (__vector float) (a2))), \ 8452 __builtin_altivec_compiletime_error ("vec_add")))))))))))))))))))) 8453 8454#define vec_addc(a1, a2) \ 8455__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8456 ((__vector unsigned int) __builtin_altivec_vaddcuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8457 __builtin_altivec_compiletime_error ("vec_addc")) 8458 8459#define vec_adds(a1, a2) \ 8460__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 8461 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8462__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 8463 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8464__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8465 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8466__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 8467 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8468__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 8469 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8470__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8471 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8472__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 8473 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8474__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 8475 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8476__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8477 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8478__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 8479 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8480__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 8481 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8482__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8483 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8484__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 8485 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8486__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 8487 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8488__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8489 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8490__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 8491 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8492__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 8493 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8494__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8495 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8496 __builtin_altivec_compiletime_error ("vec_adds"))))))))))))))))))) 8497 8498#define vec_vaddsws(a1, a2) \ 8499__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 8500 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8501__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 8502 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8503__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8504 ((__vector signed int) __builtin_altivec_vaddsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8505 __builtin_altivec_compiletime_error ("vec_vaddsws")))) 8506 8507#define vec_vadduws(a1, a2) \ 8508__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 8509 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8510__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 8511 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8512__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8513 ((__vector unsigned int) __builtin_altivec_vadduws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8514 __builtin_altivec_compiletime_error ("vec_vadduws")))) 8515 8516#define vec_vaddshs(a1, a2) \ 8517__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 8518 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8519__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8520 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8521__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 8522 ((__vector signed short) __builtin_altivec_vaddshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8523 __builtin_altivec_compiletime_error ("vec_vaddshs")))) 8524 8525#define vec_vadduhs(a1, a2) \ 8526__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 8527 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8528__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 8529 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8530__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8531 ((__vector unsigned short) __builtin_altivec_vadduhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8532 __builtin_altivec_compiletime_error ("vec_vadduhs")))) 8533 8534#define vec_vaddsbs(a1, a2) \ 8535__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 8536 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8537__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 8538 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8539__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8540 ((__vector signed char) __builtin_altivec_vaddsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8541 __builtin_altivec_compiletime_error ("vec_vaddsbs")))) 8542 8543#define vec_vaddubs(a1, a2) \ 8544__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 8545 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8546__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 8547 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8548__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8549 ((__vector unsigned char) __builtin_altivec_vaddubs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8550 __builtin_altivec_compiletime_error ("vec_vaddubs")))) 8551 8552#define vec_and(a1, a2) \ 8553__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8554 ((__vector float) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8555__ch (__bin_args_eq (__vector float, (a1), __vector __bool int, (a2)), \ 8556 ((__vector float) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8557__ch (__bin_args_eq (__vector __bool int, (a1), __vector float, (a2)), \ 8558 ((__vector float) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8559__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 8560 ((__vector __bool int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8561__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 8562 ((__vector signed int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8563__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 8564 ((__vector signed int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8565__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8566 ((__vector signed int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8567__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 8568 ((__vector unsigned int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8569__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 8570 ((__vector unsigned int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8571__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8572 ((__vector unsigned int) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8573__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 8574 ((__vector __bool short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8575__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 8576 ((__vector signed short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8577__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 8578 ((__vector signed short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8579__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8580 ((__vector signed short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8581__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 8582 ((__vector unsigned short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8583__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 8584 ((__vector unsigned short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8585__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8586 ((__vector unsigned short) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8587__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 8588 ((__vector __bool char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8589__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 8590 ((__vector signed char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8591__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 8592 ((__vector signed char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8593__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8594 ((__vector signed char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8595__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 8596 ((__vector unsigned char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8597__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 8598 ((__vector unsigned char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8599__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8600 ((__vector unsigned char) __builtin_altivec_vand ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8601 __builtin_altivec_compiletime_error ("vec_and"))))))))))))))))))))))))) 8602 8603#define vec_andc(a1, a2) \ 8604__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8605 ((__vector float) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8606__ch (__bin_args_eq (__vector float, (a1), __vector __bool int, (a2)), \ 8607 ((__vector float) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8608__ch (__bin_args_eq (__vector __bool int, (a1), __vector float, (a2)), \ 8609 ((__vector float) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8610__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 8611 ((__vector __bool int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8612__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 8613 ((__vector signed int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8614__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 8615 ((__vector signed int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8616__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8617 ((__vector signed int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8618__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 8619 ((__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8620__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 8621 ((__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8622__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8623 ((__vector unsigned int) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8624__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 8625 ((__vector __bool short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8626__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 8627 ((__vector signed short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8628__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 8629 ((__vector signed short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8630__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8631 ((__vector signed short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8632__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 8633 ((__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8634__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 8635 ((__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8636__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8637 ((__vector unsigned short) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8638__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 8639 ((__vector __bool char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8640__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 8641 ((__vector signed char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8642__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 8643 ((__vector signed char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8644__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8645 ((__vector signed char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8646__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 8647 ((__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8648__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 8649 ((__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8650__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8651 ((__vector unsigned char) __builtin_altivec_vandc ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8652 __builtin_altivec_compiletime_error ("vec_andc"))))))))))))))))))))))))) 8653 8654#define vec_avg(a1, a2) \ 8655__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8656 ((__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8657__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8658 ((__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8659__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8660 ((__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8661__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8662 ((__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8663__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8664 ((__vector unsigned int) __builtin_altivec_vavguw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8665__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8666 ((__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8667 __builtin_altivec_compiletime_error ("vec_avg"))))))) 8668 8669#define vec_vavgsw(a1, a2) \ 8670__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8671 ((__vector signed int) __builtin_altivec_vavgsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8672 __builtin_altivec_compiletime_error ("vec_vavgsw")) 8673 8674#define vec_vavguw(a1, a2) \ 8675__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8676 ((__vector unsigned int) __builtin_altivec_vavguw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8677 __builtin_altivec_compiletime_error ("vec_vavguw")) 8678 8679#define vec_vavgsh(a1, a2) \ 8680__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8681 ((__vector signed short) __builtin_altivec_vavgsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8682 __builtin_altivec_compiletime_error ("vec_vavgsh")) 8683 8684#define vec_vavguh(a1, a2) \ 8685__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8686 ((__vector unsigned short) __builtin_altivec_vavguh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8687 __builtin_altivec_compiletime_error ("vec_vavguh")) 8688 8689#define vec_vavgsb(a1, a2) \ 8690__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8691 ((__vector signed char) __builtin_altivec_vavgsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8692 __builtin_altivec_compiletime_error ("vec_vavgsb")) 8693 8694#define vec_vavgub(a1, a2) \ 8695__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8696 ((__vector unsigned char) __builtin_altivec_vavgub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8697 __builtin_altivec_compiletime_error ("vec_vavgub")) 8698 8699#define vec_ceil(a1) \ 8700__ch (__un_args_eq (__vector float, (a1)), \ 8701 ((__vector float) __builtin_altivec_vrfip ((__vector float) (a1))), \ 8702 __builtin_altivec_compiletime_error ("vec_ceil")) 8703 8704#define vec_cmpb(a1, a2) \ 8705__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8706 ((__vector signed int) __builtin_altivec_vcmpbfp ((__vector float) (a1), (__vector float) (a2))), \ 8707 __builtin_altivec_compiletime_error ("vec_cmpb")) 8708 8709#define vec_cmpeq(a1, a2) \ 8710__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8711 ((__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8712__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8713 ((__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8714__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8715 ((__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8716__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8717 ((__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8718__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8719 ((__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8720__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8721 ((__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8722__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8723 ((__vector __bool int) __builtin_altivec_vcmpeqfp ((__vector float) (a1), (__vector float) (a2))), \ 8724 __builtin_altivec_compiletime_error ("vec_cmpeq")))))))) 8725 8726#define vec_vcmpeqfp(a1, a2) \ 8727__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8728 ((__vector __bool int) __builtin_altivec_vcmpeqfp ((__vector float) (a1), (__vector float) (a2))), \ 8729 __builtin_altivec_compiletime_error ("vec_vcmpeqfp")) 8730 8731#define vec_vcmpequw(a1, a2) \ 8732__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8733 ((__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8734__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8735 ((__vector __bool int) __builtin_altivec_vcmpequw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8736 __builtin_altivec_compiletime_error ("vec_vcmpequw"))) 8737 8738#define vec_vcmpequh(a1, a2) \ 8739__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8740 ((__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8741__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8742 ((__vector __bool short) __builtin_altivec_vcmpequh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8743 __builtin_altivec_compiletime_error ("vec_vcmpequh"))) 8744 8745#define vec_vcmpequb(a1, a2) \ 8746__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8747 ((__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8748__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8749 ((__vector __bool char) __builtin_altivec_vcmpequb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8750 __builtin_altivec_compiletime_error ("vec_vcmpequb"))) 8751 8752#define vec_cmpge(a1, a2) \ 8753__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8754 ((__vector __bool int) __builtin_altivec_vcmpgefp ((__vector float) (a1), (__vector float) (a2))), \ 8755 __builtin_altivec_compiletime_error ("vec_cmpge")) 8756 8757#define vec_cmpgt(a1, a2) \ 8758__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8759 ((__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8760__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8761 ((__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8762__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8763 ((__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8764__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8765 ((__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8766__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8767 ((__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8768__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8769 ((__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8770__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8771 ((__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) (a1), (__vector float) (a2))), \ 8772 __builtin_altivec_compiletime_error ("vec_cmpgt")))))))) 8773 8774#define vec_vcmpgtfp(a1, a2) \ 8775__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8776 ((__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) (a1), (__vector float) (a2))), \ 8777 __builtin_altivec_compiletime_error ("vec_vcmpgtfp")) 8778 8779#define vec_vcmpgtsw(a1, a2) \ 8780__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8781 ((__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8782 __builtin_altivec_compiletime_error ("vec_vcmpgtsw")) 8783 8784#define vec_vcmpgtuw(a1, a2) \ 8785__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8786 ((__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8787 __builtin_altivec_compiletime_error ("vec_vcmpgtuw")) 8788 8789#define vec_vcmpgtsh(a1, a2) \ 8790__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8791 ((__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8792 __builtin_altivec_compiletime_error ("vec_vcmpgtsh")) 8793 8794#define vec_vcmpgtuh(a1, a2) \ 8795__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8796 ((__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8797 __builtin_altivec_compiletime_error ("vec_vcmpgtuh")) 8798 8799#define vec_vcmpgtsb(a1, a2) \ 8800__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8801 ((__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8802 __builtin_altivec_compiletime_error ("vec_vcmpgtsb")) 8803 8804#define vec_vcmpgtub(a1, a2) \ 8805__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8806 ((__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8807 __builtin_altivec_compiletime_error ("vec_vcmpgtub")) 8808 8809#define vec_cmple(a1, a2) \ 8810__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8811 ((__vector __bool int) __builtin_altivec_vcmpgefp ((__vector float) (a2), (__vector float) (a1))), \ 8812 __builtin_altivec_compiletime_error ("vec_cmple")) 8813 8814#define vec_cmplt(a2, a1) \ 8815__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 8816 ((__vector __bool char) __builtin_altivec_vcmpgtub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8817__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 8818 ((__vector __bool char) __builtin_altivec_vcmpgtsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 8819__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 8820 ((__vector __bool short) __builtin_altivec_vcmpgtuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8821__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 8822 ((__vector __bool short) __builtin_altivec_vcmpgtsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 8823__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 8824 ((__vector __bool int) __builtin_altivec_vcmpgtuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8825__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 8826 ((__vector __bool int) __builtin_altivec_vcmpgtsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 8827__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 8828 ((__vector __bool int) __builtin_altivec_vcmpgtfp ((__vector float) (a1), (__vector float) (a2))), \ 8829 __builtin_altivec_compiletime_error ("vec_cmplt")))))))) 8830 8831#define vec_ctf(a1, a2) \ 8832__ch (__un_args_eq (__vector unsigned int, (a1)), \ 8833 ((__vector float) __builtin_altivec_vcfux ((__vector signed int) (a1), (const int) (a2))), \ 8834__ch (__un_args_eq (__vector signed int, (a1)), \ 8835 ((__vector float) __builtin_altivec_vcfsx ((__vector signed int) (a1), (const int) (a2))), \ 8836 __builtin_altivec_compiletime_error ("vec_ctf"))) 8837 8838#define vec_vcfsx(a1, a2) \ 8839__ch (__un_args_eq (__vector signed int, (a1)), \ 8840 ((__vector float) __builtin_altivec_vcfsx ((__vector signed int) (a1), (const int) (a2))), \ 8841 __builtin_altivec_compiletime_error ("vec_vcfsx")) 8842 8843#define vec_vcfux(a1, a2) \ 8844__ch (__un_args_eq (__vector unsigned int, (a1)), \ 8845 ((__vector float) __builtin_altivec_vcfux ((__vector signed int) (a1), (const int) (a2))), \ 8846 __builtin_altivec_compiletime_error ("vec_vcfux")) 8847 8848#define vec_cts(a1, a2) \ 8849__ch (__un_args_eq (__vector float, (a1)), \ 8850 ((__vector signed int) __builtin_altivec_vctsxs ((__vector float) (a1), (const int) (a2))), \ 8851 __builtin_altivec_compiletime_error ("vec_cts")) 8852 8853#define vec_ctu(a1, a2) \ 8854__ch (__un_args_eq (__vector float, (a1)), \ 8855 ((__vector unsigned int) __builtin_altivec_vctuxs ((__vector float) (a1), (const int) (a2))), \ 8856 __builtin_altivec_compiletime_error ("vec_ctu")) 8857 8858#define vec_dss(a1) __builtin_altivec_dss ((const int) (a1)); 8859 8860#define vec_dssall() __builtin_altivec_dssall () 8861 8862#define vec_dst(a1, a2, a3) \ 8863__ch (__un_args_eq (const __vector unsigned char, *(a1)), \ 8864 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8865__ch (__un_args_eq (const __vector signed char, *(a1)), \ 8866 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8867__ch (__un_args_eq (const __vector __bool char, *(a1)), \ 8868 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8869__ch (__un_args_eq (const __vector unsigned short, *(a1)), \ 8870 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8871__ch (__un_args_eq (const __vector signed short, *(a1)), \ 8872 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8873__ch (__un_args_eq (const __vector __bool short, *(a1)), \ 8874 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8875__ch (__un_args_eq (const __vector __pixel, *(a1)), \ 8876 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8877__ch (__un_args_eq (const __vector unsigned int, *(a1)), \ 8878 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8879__ch (__un_args_eq (const __vector signed int, *(a1)), \ 8880 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8881__ch (__un_args_eq (const __vector __bool int, *(a1)), \ 8882 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8883__ch (__un_args_eq (const __vector float, *(a1)), \ 8884 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8885__ch (__un_args_eq (const unsigned char, *(a1)), \ 8886 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8887__ch (__un_args_eq (const signed char, *(a1)), \ 8888 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8889__ch (__un_args_eq (const unsigned short, *(a1)), \ 8890 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8891__ch (__un_args_eq (const short, *(a1)), \ 8892 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8893__ch (__un_args_eq (const unsigned int, *(a1)), \ 8894 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8895__ch (__un_args_eq (const int, *(a1)), \ 8896 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8897__ch (__un_args_eq (const unsigned long, *(a1)), \ 8898 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8899__ch (__un_args_eq (const long, *(a1)), \ 8900 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8901__ch (__un_args_eq (const float, *(a1)), \ 8902 __builtin_altivec_dst ((void *) (a1), (a2), (a3)), \ 8903 __builtin_altivec_compiletime_error ("vec_dst"))))))))))))))))))))) 8904 8905#define vec_dstst(a1, a2, a3) \ 8906__ch (__un_args_eq (const __vector unsigned char, *(a1)), \ 8907 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8908__ch (__un_args_eq (const __vector signed char, *(a1)), \ 8909 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8910__ch (__un_args_eq (const __vector __bool char, *(a1)), \ 8911 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8912__ch (__un_args_eq (const __vector unsigned short, *(a1)), \ 8913 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8914__ch (__un_args_eq (const __vector signed short, *(a1)), \ 8915 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8916__ch (__un_args_eq (const __vector __bool short, *(a1)), \ 8917 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8918__ch (__un_args_eq (const __vector __pixel, *(a1)), \ 8919 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8920__ch (__un_args_eq (const __vector unsigned int, *(a1)), \ 8921 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8922__ch (__un_args_eq (const __vector signed int, *(a1)), \ 8923 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8924__ch (__un_args_eq (const __vector __bool int, *(a1)), \ 8925 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8926__ch (__un_args_eq (const __vector float, *(a1)), \ 8927 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8928__ch (__un_args_eq (const unsigned char, *(a1)), \ 8929 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8930__ch (__un_args_eq (const signed char, *(a1)), \ 8931 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8932__ch (__un_args_eq (const unsigned short, *(a1)), \ 8933 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8934__ch (__un_args_eq (const short, *(a1)), \ 8935 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8936__ch (__un_args_eq (const unsigned int, *(a1)), \ 8937 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8938__ch (__un_args_eq (const int, *(a1)), \ 8939 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8940__ch (__un_args_eq (const unsigned long, *(a1)), \ 8941 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8942__ch (__un_args_eq (const long, *(a1)), \ 8943 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8944__ch (__un_args_eq (const float, *(a1)), \ 8945 __builtin_altivec_dstst ((void *) (a1), (a2), (a3)), \ 8946 __builtin_altivec_compiletime_error ("vec_dstst"))))))))))))))))))))) 8947 8948#define vec_dststt(a1, a2, a3) \ 8949__ch (__un_args_eq (const __vector unsigned char, *(a1)), \ 8950 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8951__ch (__un_args_eq (const __vector signed char, *(a1)), \ 8952 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8953__ch (__un_args_eq (const __vector __bool char, *(a1)), \ 8954 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8955__ch (__un_args_eq (const __vector unsigned short, *(a1)), \ 8956 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8957__ch (__un_args_eq (const __vector signed short, *(a1)), \ 8958 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8959__ch (__un_args_eq (const __vector __bool short, *(a1)), \ 8960 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8961__ch (__un_args_eq (const __vector __pixel, *(a1)), \ 8962 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8963__ch (__un_args_eq (const __vector unsigned int, *(a1)), \ 8964 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8965__ch (__un_args_eq (const __vector signed int, *(a1)), \ 8966 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8967__ch (__un_args_eq (const __vector __bool int, *(a1)), \ 8968 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8969__ch (__un_args_eq (const __vector float, *(a1)), \ 8970 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8971__ch (__un_args_eq (const unsigned char, *(a1)), \ 8972 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8973__ch (__un_args_eq (const signed char, *(a1)), \ 8974 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8975__ch (__un_args_eq (const unsigned short, *(a1)), \ 8976 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8977__ch (__un_args_eq (const short, *(a1)), \ 8978 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8979__ch (__un_args_eq (const unsigned int, *(a1)), \ 8980 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8981__ch (__un_args_eq (const int, *(a1)), \ 8982 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8983__ch (__un_args_eq (const unsigned long, *(a1)), \ 8984 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8985__ch (__un_args_eq (const long, *(a1)), \ 8986 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8987__ch (__un_args_eq (const float, *(a1)), \ 8988 __builtin_altivec_dststt ((void *) (a1), (a2), (a3)), \ 8989 __builtin_altivec_compiletime_error ("vec_dststt"))))))))))))))))))))) 8990 8991#define vec_dstt(a1, a2, a3) \ 8992__ch (__un_args_eq (const __vector unsigned char, *(a1)), \ 8993 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 8994__ch (__un_args_eq (const __vector signed char, *(a1)), \ 8995 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 8996__ch (__un_args_eq (const __vector __bool char, *(a1)), \ 8997 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 8998__ch (__un_args_eq (const __vector unsigned short, *(a1)), \ 8999 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9000__ch (__un_args_eq (const __vector signed short, *(a1)), \ 9001 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9002__ch (__un_args_eq (const __vector __bool short, *(a1)), \ 9003 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9004__ch (__un_args_eq (const __vector __pixel, *(a1)), \ 9005 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9006__ch (__un_args_eq (const __vector unsigned int, *(a1)), \ 9007 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9008__ch (__un_args_eq (const __vector signed int, *(a1)), \ 9009 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9010__ch (__un_args_eq (const __vector __bool int, *(a1)), \ 9011 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9012__ch (__un_args_eq (const __vector float, *(a1)), \ 9013 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9014__ch (__un_args_eq (const unsigned char, *(a1)), \ 9015 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9016__ch (__un_args_eq (const signed char, *(a1)), \ 9017 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9018__ch (__un_args_eq (const unsigned short, *(a1)), \ 9019 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9020__ch (__un_args_eq (const short, *(a1)), \ 9021 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9022__ch (__un_args_eq (const unsigned int, *(a1)), \ 9023 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9024__ch (__un_args_eq (const int, *(a1)), \ 9025 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9026__ch (__un_args_eq (const unsigned long, *(a1)), \ 9027 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9028__ch (__un_args_eq (const long, *(a1)), \ 9029 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9030__ch (__un_args_eq (const float, *(a1)), \ 9031 __builtin_altivec_dstt ((void *) (a1), (a2), (a3)), \ 9032 __builtin_altivec_compiletime_error ("vec_dstt"))))))))))))))))))))) 9033 9034#define vec_expte(a1) \ 9035__ch (__un_args_eq (__vector float, (a1)), \ 9036 ((__vector float) __builtin_altivec_vexptefp ((__vector float) (a1))), \ 9037 __builtin_altivec_compiletime_error ("vec_expte")) 9038 9039#define vec_floor(a1) \ 9040__ch (__un_args_eq (__vector float, (a1)), \ 9041 ((__vector float) __builtin_altivec_vrfim ((__vector float) (a1))), \ 9042 __builtin_altivec_compiletime_error ("vec_floor")) 9043 9044#define vec_ld(a, b) \ 9045__ch (__un_args_eq (const __vector unsigned char, *(b)), \ 9046 ((__vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ 9047__ch (__un_args_eq (const unsigned char, *(b)), \ 9048 ((__vector unsigned char) __builtin_altivec_lvx ((a), (b))), \ 9049__ch (__un_args_eq (const __vector signed char, *(b)), \ 9050 ((__vector signed char) __builtin_altivec_lvx ((a), (b))), \ 9051__ch (__un_args_eq (const signed char, *(b)), \ 9052 ((__vector signed char) __builtin_altivec_lvx ((a), (b))), \ 9053__ch (__un_args_eq (const __vector __bool char, *(b)), \ 9054 ((__vector __bool char) __builtin_altivec_lvx ((a), (b))), \ 9055__ch (__un_args_eq (const __vector unsigned short, *(b)), \ 9056 ((__vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ 9057__ch (__un_args_eq (const unsigned short, *(b)), \ 9058 ((__vector unsigned short) __builtin_altivec_lvx ((a), (b))), \ 9059__ch (__un_args_eq (const __vector signed short, *(b)), \ 9060 ((__vector signed short) __builtin_altivec_lvx ((a), (b))), \ 9061__ch (__un_args_eq (const short, *(b)), \ 9062 ((__vector signed short) __builtin_altivec_lvx ((a), (b))), \ 9063__ch (__un_args_eq (const __vector __bool short, *(b)), \ 9064 ((__vector __bool short) __builtin_altivec_lvx ((a), (b))), \ 9065__ch (__un_args_eq (const __vector __pixel, *(b)), \ 9066 ((__vector __pixel) __builtin_altivec_lvx ((a), (b))), \ 9067__ch (__un_args_eq (const __vector unsigned int, *(b)), \ 9068 ((__vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ 9069__ch (__un_args_eq (const unsigned int, *(b)), \ 9070 ((__vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ 9071__ch (__un_args_eq (const unsigned long, *(b)), \ 9072 ((__vector unsigned int) __builtin_altivec_lvx ((a), (b))), \ 9073__ch (__un_args_eq (const __vector signed int, *(b)), \ 9074 ((__vector signed int) __builtin_altivec_lvx ((a), (b))), \ 9075__ch (__un_args_eq (const int, *(b)), \ 9076 ((__vector signed int) __builtin_altivec_lvx ((a), (b))), \ 9077__ch (__un_args_eq (const long, *(b)), \ 9078 ((__vector signed int) __builtin_altivec_lvx ((a), (b))), \ 9079__ch (__un_args_eq (const __vector __bool int, *(b)), \ 9080 ((__vector __bool int) __builtin_altivec_lvx ((a), (b))), \ 9081__ch (__un_args_eq (const __vector float, *(b)), \ 9082 ((__vector float) __builtin_altivec_lvx ((a), (b))), \ 9083__ch (__un_args_eq (const float, *(b)), \ 9084 ((__vector float) __builtin_altivec_lvx ((a), (b))), \ 9085__builtin_altivec_compiletime_error ("vec_ld"))))))))))))))))))))) 9086 9087#define vec_lde(a, b) \ 9088__ch (__un_args_eq (const unsigned char, *(b)), \ 9089 ((__vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ 9090__ch (__un_args_eq (const signed char, *(b)), \ 9091 ((__vector signed char) __builtin_altivec_lvebx ((a), (b))), \ 9092__ch (__un_args_eq (const unsigned short, *(b)), \ 9093 ((__vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ 9094__ch (__un_args_eq (const short, *(b)), \ 9095 ((__vector signed short) __builtin_altivec_lvehx ((a), (b))), \ 9096__ch (__un_args_eq (const unsigned long, *(b)), \ 9097 ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ 9098__ch (__un_args_eq (const long, *(b)), \ 9099 ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \ 9100__ch (__un_args_eq (const unsigned int, *(b)), \ 9101 ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ 9102__ch (__un_args_eq (const int, *(b)), \ 9103 ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \ 9104__ch (__un_args_eq (const float, *(b)), \ 9105 ((__vector float) __builtin_altivec_lvewx ((a), (b))), \ 9106__builtin_altivec_compiletime_error ("vec_lde")))))))))) 9107 9108#define vec_lvewx(a, b) \ 9109__ch (__un_args_eq (unsigned int, *(b)), \ 9110 ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ 9111__ch (__un_args_eq (signed int, *(b)), \ 9112 ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \ 9113__ch (__un_args_eq (unsigned long, *(b)), \ 9114 ((__vector unsigned int) __builtin_altivec_lvewx ((a), (b))), \ 9115__ch (__un_args_eq (signed long, *(b)), \ 9116 ((__vector signed int) __builtin_altivec_lvewx ((a), (b))), \ 9117__ch (__un_args_eq (float, *(b)), \ 9118 ((__vector float) __builtin_altivec_lvewx ((a), (b))), \ 9119__builtin_altivec_compiletime_error ("vec_lvewx")))))) 9120 9121#define vec_lvehx(a, b) \ 9122__ch (__un_args_eq (unsigned short, *(b)), \ 9123 ((__vector unsigned short) __builtin_altivec_lvehx ((a), (b))), \ 9124__ch (__un_args_eq (signed short, *(b)), \ 9125 ((__vector signed short) __builtin_altivec_lvehx ((a), (b))), \ 9126__builtin_altivec_compiletime_error ("vec_lvehx"))) 9127 9128#define vec_lvebx(a, b) \ 9129__ch (__un_args_eq (unsigned char, *(b)), \ 9130 ((__vector unsigned char) __builtin_altivec_lvebx ((a), (b))), \ 9131__ch (__un_args_eq (signed char, *(b)), \ 9132 ((__vector signed char) __builtin_altivec_lvebx ((a), (b))), \ 9133__builtin_altivec_compiletime_error ("vec_lvebx"))) 9134 9135#define vec_ldl(a, b) \ 9136__ch (__un_args_eq (const __vector unsigned char, *(b)), \ 9137 ((__vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ 9138__ch (__un_args_eq (const unsigned char, *(b)), \ 9139 ((__vector unsigned char) __builtin_altivec_lvxl ((a), (b))), \ 9140__ch (__un_args_eq (const __vector signed char, *(b)), \ 9141 ((__vector signed char) __builtin_altivec_lvxl ((a), (b))), \ 9142__ch (__un_args_eq (const signed char, *(b)), \ 9143 ((__vector signed char) __builtin_altivec_lvxl ((a), (b))), \ 9144__ch (__un_args_eq (const __vector __bool char, *(b)), \ 9145 ((__vector __bool char) __builtin_altivec_lvxl ((a), (b))), \ 9146__ch (__un_args_eq (const __vector unsigned short, *(b)), \ 9147 ((__vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ 9148__ch (__un_args_eq (const unsigned short, *(b)), \ 9149 ((__vector unsigned short) __builtin_altivec_lvxl ((a), (b))), \ 9150__ch (__un_args_eq (const __vector signed short, *(b)), \ 9151 ((__vector signed short) __builtin_altivec_lvxl ((a), (b))), \ 9152__ch (__un_args_eq (const short, *(b)), \ 9153 ((__vector signed short) __builtin_altivec_lvxl ((a), (b))), \ 9154__ch (__un_args_eq (const __vector __bool short, *(b)), \ 9155 ((__vector __bool short) __builtin_altivec_lvxl ((a), (b))), \ 9156__ch (__un_args_eq (const __vector __pixel, *(b)), \ 9157 ((__vector __pixel) __builtin_altivec_lvxl ((a), (b))), \ 9158__ch (__un_args_eq (const __vector unsigned int, *(b)), \ 9159 ((__vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ 9160__ch (__un_args_eq (const unsigned int, *(b)), \ 9161 ((__vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ 9162__ch (__un_args_eq (const unsigned long, *(b)), \ 9163 ((__vector unsigned int) __builtin_altivec_lvxl ((a), (b))), \ 9164__ch (__un_args_eq (const __vector signed int, *(b)), \ 9165 ((__vector signed int) __builtin_altivec_lvxl ((a), (b))), \ 9166__ch (__un_args_eq (const int, *(b)), \ 9167 ((__vector signed int) __builtin_altivec_lvxl ((a), (b))), \ 9168__ch (__un_args_eq (const long, *(b)), \ 9169 ((__vector signed int) __builtin_altivec_lvxl ((a), (b))), \ 9170__ch (__un_args_eq (const __vector __bool int, *(b)), \ 9171 ((__vector __bool int) __builtin_altivec_lvxl ((a), (b))), \ 9172__ch (__un_args_eq (const __vector float, *(b)), \ 9173 ((__vector float) __builtin_altivec_lvxl ((a), (b))), \ 9174__ch (__un_args_eq (const float, *(b)), \ 9175 ((__vector float) __builtin_altivec_lvxl ((a), (b))), \ 9176__builtin_altivec_compiletime_error ("vec_ldl"))))))))))))))))))))) 9177 9178#define vec_loge(a1) \ 9179__ch (__un_args_eq (__vector float, (a1)), \ 9180 ((__vector float) __builtin_altivec_vlogefp ((__vector float) (a1))), \ 9181 __builtin_altivec_compiletime_error ("vec_loge")) 9182 9183#define vec_lvsl(a1, a2) \ 9184__ch (__un_args_eq (const volatile unsigned char, *(a2)), \ 9185 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ 9186__ch (__un_args_eq (const volatile signed char, *(a2)), \ 9187 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ 9188__ch (__un_args_eq (const volatile unsigned short, *(a2)), \ 9189 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ 9190__ch (__un_args_eq (const volatile signed short, *(a2)), \ 9191 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ 9192__ch (__un_args_eq (const volatile unsigned int, *(a2)), \ 9193 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ 9194__ch (__un_args_eq (const volatile signed int, *(a2)), \ 9195 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ 9196__ch (__un_args_eq (const volatile unsigned long, *(a2)), \ 9197 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ 9198__ch (__un_args_eq (const volatile signed long, *(a2)), \ 9199 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ 9200__ch (__un_args_eq (const volatile float, *(a2)), \ 9201 ((__vector unsigned char) __builtin_altivec_lvsl ((a1), (void *) (a2))), \ 9202__builtin_altivec_compiletime_error ("vec_lvsl")))))))))) 9203 9204#define vec_lvsr(a1, a2) \ 9205__ch (__un_args_eq (const volatile unsigned char, *(a2)), \ 9206 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ 9207__ch (__un_args_eq (const volatile signed char, *(a2)), \ 9208 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ 9209__ch (__un_args_eq (const volatile unsigned short, *(a2)), \ 9210 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ 9211__ch (__un_args_eq (const volatile signed short, *(a2)), \ 9212 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ 9213__ch (__un_args_eq (const volatile unsigned int, *(a2)), \ 9214 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ 9215__ch (__un_args_eq (const volatile signed int, *(a2)), \ 9216 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ 9217__ch (__un_args_eq (const volatile unsigned long, *(a2)), \ 9218 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ 9219__ch (__un_args_eq (const volatile signed long, *(a2)), \ 9220 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ 9221__ch (__un_args_eq (const volatile float, *(a2)), \ 9222 ((__vector unsigned char) __builtin_altivec_lvsr ((a1), (void *) (a2))), \ 9223__builtin_altivec_compiletime_error ("vec_lvsr")))))))))) 9224 9225#define vec_madd(a1, a2, a3) \ 9226__ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector float, (a3)), \ 9227 ((__vector float) __builtin_altivec_vmaddfp ((a1), (a2), (a3))), \ 9228__builtin_altivec_compiletime_error ("vec_madd")) 9229 9230#define vec_madds(a1, a2, a3) \ 9231__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \ 9232 ((__vector signed short) __builtin_altivec_vmhaddshs ((a1), (a2), (a3))), \ 9233__builtin_altivec_compiletime_error ("vec_madds")) 9234 9235#define vec_max(a1, a2) \ 9236__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 9237 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9238__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 9239 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9240__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9241 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9242__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 9243 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9244__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 9245 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9246__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9247 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9248__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 9249 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9250__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 9251 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9252__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9253 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9254__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 9255 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9256__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 9257 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9258__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9259 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9260__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 9261 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9262__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 9263 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9264__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9265 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9266__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 9267 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9268__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 9269 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9270__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9271 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9272__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 9273 ((__vector float) __builtin_altivec_vmaxfp ((__vector float) (a1), (__vector float) (a2))), \ 9274 __builtin_altivec_compiletime_error ("vec_max")))))))))))))))))))) 9275 9276#define vec_vmaxfp(a1, a2) \ 9277__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 9278 ((__vector float) __builtin_altivec_vmaxfp ((__vector float) (a1), (__vector float) (a2))), \ 9279__builtin_altivec_compiletime_error ("vec_vmaxfp")) 9280 9281#define vec_vmaxsw(a1, a2) \ 9282__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 9283 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9284__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 9285 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9286__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9287 ((__vector signed int) __builtin_altivec_vmaxsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9288__builtin_altivec_compiletime_error ("vec_vmaxsw")))) 9289 9290#define vec_vmaxuw(a1, a2) \ 9291__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 9292 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9293__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 9294 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9295__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9296 ((__vector unsigned int) __builtin_altivec_vmaxuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9297__builtin_altivec_compiletime_error ("vec_vmaxuw")))) 9298 9299#define vec_vmaxsh(a1, a2) \ 9300__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 9301 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9302__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 9303 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9304__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9305 ((__vector signed short) __builtin_altivec_vmaxsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9306__builtin_altivec_compiletime_error ("vec_vmaxsh")))) 9307 9308#define vec_vmaxuh(a1, a2) \ 9309__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 9310 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9311__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 9312 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9313__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9314 ((__vector unsigned short) __builtin_altivec_vmaxuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9315__builtin_altivec_compiletime_error ("vec_vmaxuh")))) 9316 9317#define vec_vmaxsb(a1, a2) \ 9318__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 9319 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9320__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 9321 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9322__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9323 ((__vector signed char) __builtin_altivec_vmaxsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9324__builtin_altivec_compiletime_error ("vec_vmaxsb")))) 9325 9326#define vec_vmaxub(a1, a2) \ 9327__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 9328 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9329__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 9330 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9331__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9332 ((__vector unsigned char) __builtin_altivec_vmaxub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9333__builtin_altivec_compiletime_error ("vec_vmaxub")))) 9334 9335#define vec_mergeh(a1, a2) \ 9336__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9337 ((__vector signed char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9338__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9339 ((__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9340__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 9341 ((__vector __bool char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9342__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9343 ((__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9344__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9345 ((__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9346__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 9347 ((__vector __bool short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9348__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \ 9349 ((__vector __pixel) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9350__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 9351 ((__vector float) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9352__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9353 ((__vector signed int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9354__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9355 ((__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9356__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 9357 ((__vector __bool int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9358 __builtin_altivec_compiletime_error ("vec_mergeh")))))))))))) 9359 9360#define vec_vmrghw(a1, a2) \ 9361__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 9362 ((__vector float) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9363__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 9364 ((__vector __bool int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9365__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9366 ((__vector signed int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9367__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9368 ((__vector unsigned int) __builtin_altivec_vmrghw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9369__builtin_altivec_compiletime_error ("vec_vmrghw"))))) 9370 9371#define vec_vmrghh(a1, a2) \ 9372__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 9373 ((__vector __bool short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9374__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9375 ((__vector signed short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9376__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9377 ((__vector unsigned short) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9378__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \ 9379 ((__vector __pixel) __builtin_altivec_vmrghh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9380__builtin_altivec_compiletime_error ("vec_vmrghh"))))) 9381 9382#define vec_vmrghb(a1, a2) \ 9383__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 9384 ((__vector __bool char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9385__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9386 ((__vector signed char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9387__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9388 ((__vector unsigned char) __builtin_altivec_vmrghb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9389__builtin_altivec_compiletime_error ("vec_vmrghb")))) 9390 9391#define vec_mergel(a1, a2) \ 9392__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9393 ((__vector signed char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9394__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9395 ((__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9396__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 9397 ((__vector __bool char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9398__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9399 ((__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9400__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9401 ((__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9402__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 9403 ((__vector __bool short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9404__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \ 9405 ((__vector __pixel) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9406__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 9407 ((__vector float) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9408__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9409 ((__vector signed int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9410__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9411 ((__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9412__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 9413 ((__vector __bool int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9414 __builtin_altivec_compiletime_error ("vec_mergel")))))))))))) 9415 9416#define vec_vmrglw(a1, a2) \ 9417__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 9418 ((__vector float) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9419__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9420 ((__vector signed int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9421__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9422 ((__vector unsigned int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9423__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 9424 ((__vector __bool int) __builtin_altivec_vmrglw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9425__builtin_altivec_compiletime_error ("vec_vmrglw"))))) 9426 9427#define vec_vmrglh(a1, a2) \ 9428__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 9429 ((__vector __bool short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9430__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9431 ((__vector signed short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9432__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9433 ((__vector unsigned short) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9434__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \ 9435 ((__vector __pixel) __builtin_altivec_vmrglh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9436__builtin_altivec_compiletime_error ("vec_vmrglh"))))) 9437 9438#define vec_vmrglb(a1, a2) \ 9439__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 9440 ((__vector __bool char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9441__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9442 ((__vector signed char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9443__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9444 ((__vector unsigned char) __builtin_altivec_vmrglb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9445__builtin_altivec_compiletime_error ("vec_vmrglb")))) 9446 9447#define vec_mfvscr() (((__vector unsigned short) __builtin_altivec_mfvscr ())) 9448 9449#define vec_min(a1, a2) \ 9450__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 9451 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9452__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 9453 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9454__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9455 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9456__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 9457 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9458__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 9459 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9460__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9461 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9462__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 9463 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9464__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 9465 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9466__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9467 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9468__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 9469 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9470__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 9471 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9472__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9473 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9474__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 9475 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9476__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 9477 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9478__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9479 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9480__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 9481 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9482__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 9483 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9484__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9485 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9486__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 9487 ((__vector float) __builtin_altivec_vminfp ((__vector float) (a1), (__vector float) (a2))), \ 9488 __builtin_altivec_compiletime_error ("vec_min")))))))))))))))))))) 9489 9490#define vec_vminfp(a1, a2) \ 9491__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 9492 ((__vector float) __builtin_altivec_vminfp ((__vector float) (a1), (__vector float) (a2))), \ 9493__builtin_altivec_compiletime_error ("vec_vminfp")) 9494 9495#define vec_vminsw(a1, a2) \ 9496__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 9497 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9498__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 9499 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9500__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9501 ((__vector signed int) __builtin_altivec_vminsw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9502__builtin_altivec_compiletime_error ("vec_vminsw")))) 9503 9504#define vec_vminuw(a1, a2) \ 9505__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 9506 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9507__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 9508 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9509__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9510 ((__vector unsigned int) __builtin_altivec_vminuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9511__builtin_altivec_compiletime_error ("vec_vminuw")))) 9512 9513#define vec_vminsh(a1, a2) \ 9514__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 9515 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9516__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 9517 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9518__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9519 ((__vector signed short) __builtin_altivec_vminsh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9520__builtin_altivec_compiletime_error ("vec_vminsh")))) 9521 9522#define vec_vminuh(a1, a2) \ 9523__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 9524 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9525__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 9526 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9527__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9528 ((__vector unsigned short) __builtin_altivec_vminuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9529__builtin_altivec_compiletime_error ("vec_vminuh")))) 9530 9531#define vec_vminsb(a1, a2) \ 9532__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 9533 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9534__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 9535 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9536__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9537 ((__vector signed char) __builtin_altivec_vminsb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9538__builtin_altivec_compiletime_error ("vec_minsb")))) 9539 9540#define vec_vminub(a1, a2) \ 9541__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 9542 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9543__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 9544 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9545__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9546 ((__vector unsigned char) __builtin_altivec_vminub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9547__builtin_altivec_compiletime_error ("vec_vminub")))) 9548 9549#define vec_mladd(a1, a2, a3) \ 9550__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \ 9551 ((__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \ 9552__ch (__tern_args_eq (__vector signed short, (a1), __vector unsigned short, (a2), __vector unsigned short, (a3)), \ 9553 ((__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \ 9554__ch (__tern_args_eq (__vector unsigned short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \ 9555 ((__vector signed short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \ 9556__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned short, (a3)), \ 9557 ((__vector unsigned short) __builtin_altivec_vmladduhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed short) (a3))), \ 9558 __builtin_altivec_compiletime_error ("vec_mladd"))))) 9559 9560#define vec_mradds(a1, a2, a3) \ 9561__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed short, (a3)), \ 9562 ((__vector signed short) __builtin_altivec_vmhraddshs ((a1), (a2), (a3))), \ 9563__builtin_altivec_compiletime_error ("vec_mradds")) 9564 9565#define vec_msum(a1, a2, a3) \ 9566__ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned int, (a3)), \ 9567 ((__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \ 9568__ch (__tern_args_eq (__vector signed char, (a1), __vector unsigned char, (a2), __vector signed int, (a3)), \ 9569 ((__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \ 9570__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \ 9571 ((__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \ 9572__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \ 9573 ((__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \ 9574 __builtin_altivec_compiletime_error ("vec_msum"))))) 9575 9576#define vec_vmsumshm(a1, a2, a3) \ 9577__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \ 9578 ((__vector signed int) __builtin_altivec_vmsumshm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \ 9579__builtin_altivec_compiletime_error ("vec_vmsumshm")) 9580 9581#define vec_vmsumuhm(a1, a2, a3) \ 9582__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \ 9583 ((__vector unsigned int) __builtin_altivec_vmsumuhm ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \ 9584__builtin_altivec_compiletime_error ("vec_vmsumuhm")) 9585 9586#define vec_vmsummbm(a1, a2, a3) \ 9587__ch (__tern_args_eq (__vector signed char, (a1), __vector unsigned char, (a2), __vector signed int, (a3)), \ 9588 ((__vector signed int) __builtin_altivec_vmsummbm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \ 9589__builtin_altivec_compiletime_error ("vec_vmsummbm")) 9590 9591#define vec_vmsumubm(a1, a2, a3) \ 9592__ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned int, (a3)), \ 9593 ((__vector unsigned int) __builtin_altivec_vmsumubm ((__vector signed char) (a1), (__vector signed char) (a2), (__vector signed int) (a3))), \ 9594__builtin_altivec_compiletime_error ("vec_vmsummbm")) 9595 9596#define vec_msums(a1, a2, a3) \ 9597__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \ 9598 ((__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \ 9599__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \ 9600 ((__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \ 9601 __builtin_altivec_compiletime_error ("vec_msums"))) 9602 9603#define vec_vmsumshs(a1, a2, a3) \ 9604__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector signed int, (a3)), \ 9605 ((__vector signed int) __builtin_altivec_vmsumshs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \ 9606__builtin_altivec_compiletime_error ("vec_vmsumshs")) 9607 9608#define vec_vmsumuhs(a1, a2, a3) \ 9609__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned int, (a3)), \ 9610 ((__vector unsigned int) __builtin_altivec_vmsumuhs ((__vector signed short) (a1), (__vector signed short) (a2), (__vector signed int) (a3))), \ 9611__builtin_altivec_compiletime_error ("vec_vmsumuhs")) 9612 9613#define vec_mtvscr(a1) \ 9614__ch (__un_args_eq (__vector signed int, (a1)), \ 9615 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \ 9616__ch (__un_args_eq (__vector unsigned int, (a1)), \ 9617 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \ 9618__ch (__un_args_eq (__vector __bool int, (a1)), \ 9619 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \ 9620__ch (__un_args_eq (__vector signed short, (a1)), \ 9621 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \ 9622__ch (__un_args_eq (__vector unsigned short, (a1)), \ 9623 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \ 9624__ch (__un_args_eq (__vector __bool short, (a1)), \ 9625 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \ 9626__ch (__un_args_eq (__vector __pixel, (a1)), \ 9627 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \ 9628__ch (__un_args_eq (__vector signed char, (a1)), \ 9629 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \ 9630__ch (__un_args_eq (__vector unsigned char, (a1)), \ 9631 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \ 9632__ch (__un_args_eq (__vector __bool char, (a1)), \ 9633 __builtin_altivec_mtvscr ((__vector signed int) (a1)), \ 9634 __builtin_altivec_compiletime_error ("vec_mtvscr"))))))))))) 9635 9636#define vec_mule(a1, a2) \ 9637__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9638 ((__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9639__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9640 ((__vector signed short) __builtin_altivec_vmulesb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9641__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9642 ((__vector unsigned int) __builtin_altivec_vmuleuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9643__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9644 ((__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9645 __builtin_altivec_compiletime_error ("vec_mule"))))) 9646 9647#define vec_vmulesh(a1, a2) \ 9648__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9649 ((__vector signed int) __builtin_altivec_vmulesh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9650__builtin_altivec_compiletime_error ("vec_vmulesh")) 9651 9652#define vec_vmuleuh(a1, a2) \ 9653__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9654 ((__vector unsigned int) __builtin_altivec_vmuleuh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9655__builtin_altivec_compiletime_error ("vec_vmuleuh")) 9656 9657#define vec_vmulesb(a1, a2) \ 9658__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9659 ((__vector signed short) __builtin_altivec_vmulesb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9660__builtin_altivec_compiletime_error ("vec_vmulesb")) 9661 9662#define vec_vmuleub(a1, a2) \ 9663__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9664 ((__vector unsigned short) __builtin_altivec_vmuleub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9665__builtin_altivec_compiletime_error ("vec_vmuleub")) 9666 9667#define vec_mulo(a1, a2) \ 9668__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9669 ((__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9670__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9671 ((__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9672__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9673 ((__vector unsigned int) __builtin_altivec_vmulouh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9674__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9675 ((__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9676 __builtin_altivec_compiletime_error ("vec_mulo"))))) 9677 9678#define vec_vmulosh(a1, a2) \ 9679__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9680 ((__vector signed int) __builtin_altivec_vmulosh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9681__builtin_altivec_compiletime_error ("vec_vmulosh")) 9682 9683#define vec_vmulouh(a1, a2) \ 9684__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9685 ((__vector unsigned int) __builtin_altivec_vmulouh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9686__builtin_altivec_compiletime_error ("vec_vmulouh")) 9687 9688#define vec_vmulosb(a1, a2) \ 9689__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9690 ((__vector signed short) __builtin_altivec_vmulosb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9691__builtin_altivec_compiletime_error ("vec_vmulosb")) 9692 9693#define vec_vmuloub(a1, a2) \ 9694__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9695 ((__vector unsigned short) __builtin_altivec_vmuloub ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9696__builtin_altivec_compiletime_error ("vec_vmuloub")) 9697 9698#define vec_nmsub(a1, a2, a3) \ 9699__ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector float, (a3)), \ 9700 ((__vector float) __builtin_altivec_vnmsubfp ((__vector float) (a1), (__vector float) (a2), (__vector float) (a3))), \ 9701 __builtin_altivec_compiletime_error ("vec_nmsub")) 9702 9703#define vec_nor(a1, a2) \ 9704__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 9705 ((__vector float) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9706__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9707 ((__vector signed int) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9708__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9709 ((__vector unsigned int) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9710__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 9711 ((__vector __bool int) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9712__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9713 ((__vector signed short) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9714__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9715 ((__vector unsigned short) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9716__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 9717 ((__vector __bool short) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9718__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9719 ((__vector signed char) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9720__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9721 ((__vector unsigned char) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9722__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 9723 ((__vector __bool char) __builtin_altivec_vnor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9724 __builtin_altivec_compiletime_error ("vec_nor"))))))))))) 9725 9726#define vec_or(a1, a2) \ 9727__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 9728 ((__vector float) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9729__ch (__bin_args_eq (__vector float, (a1), __vector __bool int, (a2)), \ 9730 ((__vector float) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9731__ch (__bin_args_eq (__vector __bool int, (a1), __vector float, (a2)), \ 9732 ((__vector float) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9733__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 9734 ((__vector __bool int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9735__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 9736 ((__vector signed int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9737__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 9738 ((__vector signed int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9739__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9740 ((__vector signed int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9741__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 9742 ((__vector unsigned int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9743__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 9744 ((__vector unsigned int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9745__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9746 ((__vector unsigned int) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9747__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 9748 ((__vector __bool short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9749__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 9750 ((__vector signed short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9751__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 9752 ((__vector signed short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9753__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9754 ((__vector signed short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9755__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 9756 ((__vector unsigned short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9757__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 9758 ((__vector unsigned short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9759__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9760 ((__vector unsigned short) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9761__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 9762 ((__vector __bool char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9763__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 9764 ((__vector signed char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9765__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 9766 ((__vector signed char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9767__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 9768 ((__vector signed char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9769__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 9770 ((__vector unsigned char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9771__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 9772 ((__vector unsigned char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9773__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9774 ((__vector unsigned char) __builtin_altivec_vor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9775 __builtin_altivec_compiletime_error ("vec_or"))))))))))))))))))))))))) 9776 9777#define vec_pack(a1, a2) \ 9778__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9779 ((__vector signed char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9780__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9781 ((__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9782__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 9783 ((__vector __bool char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9784__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9785 ((__vector signed short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9786__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9787 ((__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9788__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 9789 ((__vector __bool short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9790 __builtin_altivec_compiletime_error ("vec_pack"))))))) 9791 9792#define vec_vpkuwum(a1, a2) \ 9793__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 9794 ((__vector __bool short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9795__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9796 ((__vector signed short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9797__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9798 ((__vector unsigned short) __builtin_altivec_vpkuwum ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9799__builtin_altivec_compiletime_error ("vec_vpkuwum")))) 9800 9801#define vec_vpkuhum(a1, a2) \ 9802__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 9803 ((__vector __bool char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9804__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9805 ((__vector signed char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9806__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9807 ((__vector unsigned char) __builtin_altivec_vpkuhum ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9808__builtin_altivec_compiletime_error ("vec_vpkuhum")))) 9809 9810#define vec_packpx(a1, a2) \ 9811__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9812 ((__vector __pixel) __builtin_altivec_vpkpx ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9813__builtin_altivec_compiletime_error ("vec_packpx")) 9814 9815#define vec_packs(a1, a2) \ 9816__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9817 ((__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9818__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9819 ((__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9820__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9821 ((__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9822__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9823 ((__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9824 __builtin_altivec_compiletime_error ("vec_packs"))))) 9825 9826#define vec_vpkswss(a1, a2) \ 9827__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9828 ((__vector signed short) __builtin_altivec_vpkswss ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9829__builtin_altivec_compiletime_error ("vec_vpkswss")) 9830 9831#define vec_vpkuwus(a1, a2) \ 9832__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9833 ((__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9834__builtin_altivec_compiletime_error ("vec_vpkuwus")) 9835 9836#define vec_vpkshss(a1, a2) \ 9837__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9838 ((__vector signed char) __builtin_altivec_vpkshss ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9839__builtin_altivec_compiletime_error ("vec_vpkshss")) 9840 9841#define vec_vpkuhus(a1, a2) \ 9842__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9843 ((__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9844__builtin_altivec_compiletime_error ("vec_vpkuhus")) 9845 9846#define vec_packsu(a1, a2) \ 9847__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9848 ((__vector unsigned char) __builtin_altivec_vpkuhus ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9849__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9850 ((__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9851__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9852 ((__vector unsigned short) __builtin_altivec_vpkuwus ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9853__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9854 ((__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9855 __builtin_altivec_compiletime_error ("vec_packsu"))))) 9856 9857#define vec_vpkswus(a1, a2) \ 9858__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 9859 ((__vector unsigned short) __builtin_altivec_vpkswus ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9860__builtin_altivec_compiletime_error ("vec_vpkswus")) 9861 9862#define vec_vpkshus(a1, a2) \ 9863__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 9864 ((__vector unsigned char) __builtin_altivec_vpkshus ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9865__builtin_altivec_compiletime_error ("vec_vpkshus")) 9866 9867#define vec_perm(a1, a2, a3) \ 9868__ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector unsigned char, (a3)), \ 9869 ((__vector float) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9870__ch (__tern_args_eq (__vector signed int, (a1), __vector signed int, (a2), __vector unsigned char, (a3)), \ 9871 ((__vector signed int) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9872__ch (__tern_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2), __vector unsigned char, (a3)), \ 9873 ((__vector unsigned int) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9874__ch (__tern_args_eq (__vector __bool int, (a1), __vector __bool int, (a2), __vector unsigned char, (a3)), \ 9875 ((__vector __bool int) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9876__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector unsigned char, (a3)), \ 9877 ((__vector signed short) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9878__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned char, (a3)), \ 9879 ((__vector unsigned short) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9880__ch (__tern_args_eq (__vector __bool short, (a1), __vector __bool short, (a2), __vector unsigned char, (a3)), \ 9881 ((__vector __bool short) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9882__ch (__tern_args_eq (__vector __pixel, (a1), __vector __pixel, (a2), __vector unsigned char, (a3)), \ 9883 ((__vector __pixel) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9884__ch (__tern_args_eq (__vector signed char, (a1), __vector signed char, (a2), __vector unsigned char, (a3)), \ 9885 ((__vector signed char) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9886__ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned char, (a3)), \ 9887 ((__vector unsigned char) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9888__ch (__tern_args_eq (__vector __bool char, (a1), __vector __bool char, (a2), __vector unsigned char, (a3)), \ 9889 ((__vector __bool char) __builtin_altivec_vperm_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed char) (a3))), \ 9890 __builtin_altivec_compiletime_error ("vec_perm")))))))))))) 9891 9892#define vec_re(a1) \ 9893__ch (__un_args_eq (__vector float, (a1)), \ 9894 ((__vector float) __builtin_altivec_vrefp ((__vector float) (a1))), \ 9895__builtin_altivec_compiletime_error ("vec_re")) 9896 9897#define vec_rl(a1, a2) \ 9898__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 9899 ((__vector signed char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9900__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9901 ((__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9902__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \ 9903 ((__vector signed short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9904__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9905 ((__vector unsigned short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9906__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \ 9907 ((__vector signed int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9908__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9909 ((__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9910 __builtin_altivec_compiletime_error ("vec_rl"))))))) 9911 9912#define vec_vrlw(a1, a2) \ 9913__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \ 9914 ((__vector signed int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9915__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9916 ((__vector unsigned int) __builtin_altivec_vrlw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9917__builtin_altivec_compiletime_error ("vec_vrlw"))) 9918 9919#define vec_vrlh(a1, a2) \ 9920__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \ 9921 ((__vector signed short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9922__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9923 ((__vector unsigned short) __builtin_altivec_vrlh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9924__builtin_altivec_compiletime_error ("vec_vrlh"))) 9925 9926#define vec_vrlb(a1, a2) \ 9927__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 9928 ((__vector signed char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9929__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9930 ((__vector unsigned char) __builtin_altivec_vrlb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9931__builtin_altivec_compiletime_error ("vec_vrlb"))) 9932 9933#define vec_round(a1) \ 9934__ch (__un_args_eq (__vector float, (a1)), \ 9935 ((__vector float) __builtin_altivec_vrfin ((__vector float) (a1))), \ 9936__builtin_altivec_compiletime_error ("vec_round")) 9937 9938#define vec_rsqrte(a1) \ 9939__ch (__un_args_eq (__vector float, (a1)), \ 9940 ((__vector float) __builtin_altivec_vrsqrtefp ((__vector float) (a1))), \ 9941__builtin_altivec_compiletime_error ("vec_rsqrte")) 9942 9943#define vec_sel(a1, a2, a3) \ 9944__ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector __bool int, (a3)), \ 9945 ((__vector float) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9946__ch (__tern_args_eq (__vector float, (a1), __vector float, (a2), __vector unsigned int, (a3)), \ 9947 ((__vector float) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9948__ch (__tern_args_eq (__vector __bool int, (a1), __vector __bool int, (a2), __vector __bool int, (a3)), \ 9949 ((__vector __bool int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9950__ch (__tern_args_eq (__vector __bool int, (a1), __vector __bool int, (a2), __vector unsigned int, (a3)), \ 9951 ((__vector __bool int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9952__ch (__tern_args_eq (__vector signed int, (a1), __vector signed int, (a2), __vector __bool int, (a3)), \ 9953 ((__vector signed int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9954__ch (__tern_args_eq (__vector signed int, (a1), __vector signed int, (a2), __vector unsigned int, (a3)), \ 9955 ((__vector signed int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9956__ch (__tern_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2), __vector __bool int, (a3)), \ 9957 ((__vector unsigned int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9958__ch (__tern_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2), __vector unsigned int, (a3)), \ 9959 ((__vector unsigned int) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9960__ch (__tern_args_eq (__vector __bool short, (a1), __vector __bool short, (a2), __vector __bool short, (a3)), \ 9961 ((__vector __bool short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9962__ch (__tern_args_eq (__vector __bool short, (a1), __vector __bool short, (a2), __vector unsigned short, (a3)), \ 9963 ((__vector __bool short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9964__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector __bool short, (a3)), \ 9965 ((__vector signed short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9966__ch (__tern_args_eq (__vector signed short, (a1), __vector signed short, (a2), __vector unsigned short, (a3)), \ 9967 ((__vector signed short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9968__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector __bool short, (a3)), \ 9969 ((__vector unsigned short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9970__ch (__tern_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2), __vector unsigned short, (a3)), \ 9971 ((__vector unsigned short) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9972__ch (__tern_args_eq (__vector __bool char, (a1), __vector __bool char, (a2), __vector __bool char, (a3)), \ 9973 ((__vector __bool char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9974__ch (__tern_args_eq (__vector __bool char, (a1), __vector __bool char, (a2), __vector unsigned char, (a3)), \ 9975 ((__vector __bool char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9976__ch (__tern_args_eq (__vector signed char, (a1), __vector signed char, (a2), __vector __bool char, (a3)), \ 9977 ((__vector signed char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9978__ch (__tern_args_eq (__vector signed char, (a1), __vector signed char, (a2), __vector unsigned char, (a3)), \ 9979 ((__vector signed char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9980__ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector __bool char, (a3)), \ 9981 ((__vector unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9982__ch (__tern_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2), __vector unsigned char, (a3)), \ 9983 ((__vector unsigned char) __builtin_altivec_vsel_4si ((__vector signed int) (a1), (__vector signed int) (a2), (__vector signed int) (a3))), \ 9984 __builtin_altivec_compiletime_error ("vec_sel"))))))))))))))))))))) 9985 9986#define vec_sl(a1, a2) \ 9987__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 9988 ((__vector signed char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9989__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 9990 ((__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 9991__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \ 9992 ((__vector signed short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9993__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 9994 ((__vector unsigned short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 9995__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \ 9996 ((__vector signed int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9997__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 9998 ((__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 9999 __builtin_altivec_compiletime_error ("vec_sl"))))))) 10000 10001#define vec_vslw(a1, a2) \ 10002__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \ 10003 ((__vector signed int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10004__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10005 ((__vector unsigned int) __builtin_altivec_vslw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10006__builtin_altivec_compiletime_error ("vec_vslw"))) 10007 10008#define vec_vslh(a1, a2) \ 10009__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \ 10010 ((__vector signed short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10011__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10012 ((__vector unsigned short) __builtin_altivec_vslh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10013__builtin_altivec_compiletime_error ("vec_vslh"))) 10014 10015#define vec_vslb(a1, a2) \ 10016__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 10017 ((__vector signed char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10018__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10019 ((__vector unsigned char) __builtin_altivec_vslb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10020__builtin_altivec_compiletime_error ("vec_vslb"))) 10021 10022#define vec_sld(a1, a2, a3) \ 10023__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 10024 ((__vector float) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10025__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 10026 ((__vector signed int) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10027__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10028 ((__vector unsigned int) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10029__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 10030 ((__vector __bool int) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10031__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 10032 ((__vector signed short) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10033__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10034 ((__vector unsigned short) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10035__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 10036 ((__vector __bool short) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10037__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \ 10038 ((__vector __pixel) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10039__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 10040 ((__vector signed char) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10041__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10042 ((__vector unsigned char) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10043__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 10044 ((__vector __bool char) __builtin_altivec_vsldoi_4si ((__vector signed int) (a1), (__vector signed int) (a2), (const int) (a3))), \ 10045 __builtin_altivec_compiletime_error ("vec_sld")))))))))))) 10046 10047#define vec_sll(a1, a2) \ 10048__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \ 10049 ((__vector signed int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10050__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned short, (a2)), \ 10051 ((__vector signed int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10052__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \ 10053 ((__vector signed int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10054__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10055 ((__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10056__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned short, (a2)), \ 10057 ((__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10058__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \ 10059 ((__vector unsigned int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10060__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 10061 ((__vector __bool int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10062__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned short, (a2)), \ 10063 ((__vector __bool int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10064__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned char, (a2)), \ 10065 ((__vector __bool int) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10066__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned int, (a2)), \ 10067 ((__vector signed short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10068__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \ 10069 ((__vector signed short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10070__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \ 10071 ((__vector signed short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10072__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned int, (a2)), \ 10073 ((__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10074__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10075 ((__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10076__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \ 10077 ((__vector unsigned short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10078__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned int, (a2)), \ 10079 ((__vector __bool short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10080__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 10081 ((__vector __bool short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10082__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned char, (a2)), \ 10083 ((__vector __bool short) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10084__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned int, (a2)), \ 10085 ((__vector __pixel) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10086__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned short, (a2)), \ 10087 ((__vector __pixel) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10088__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned char, (a2)), \ 10089 ((__vector __pixel) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10090__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned int, (a2)), \ 10091 ((__vector signed char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10092__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned short, (a2)), \ 10093 ((__vector signed char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10094__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 10095 ((__vector signed char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10096__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \ 10097 ((__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10098__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned short, (a2)), \ 10099 ((__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10100__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10101 ((__vector unsigned char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10102__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned int, (a2)), \ 10103 ((__vector __bool char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10104__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned short, (a2)), \ 10105 ((__vector __bool char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10106__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 10107 ((__vector __bool char) __builtin_altivec_vsl ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10108 __builtin_altivec_compiletime_error ("vec_sll"))))))))))))))))))))))))))))))) 10109 10110#define vec_slo(a1, a2) \ 10111__ch (__bin_args_eq (__vector float, (a1), __vector signed char, (a2)), \ 10112 ((__vector float) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10113__ch (__bin_args_eq (__vector float, (a1), __vector unsigned char, (a2)), \ 10114 ((__vector float) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10115__ch (__bin_args_eq (__vector signed int, (a1), __vector signed char, (a2)), \ 10116 ((__vector signed int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10117__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \ 10118 ((__vector signed int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10119__ch (__bin_args_eq (__vector unsigned int, (a1), __vector signed char, (a2)), \ 10120 ((__vector unsigned int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10121__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \ 10122 ((__vector unsigned int) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10123__ch (__bin_args_eq (__vector signed short, (a1), __vector signed char, (a2)), \ 10124 ((__vector signed short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10125__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \ 10126 ((__vector signed short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10127__ch (__bin_args_eq (__vector unsigned short, (a1), __vector signed char, (a2)), \ 10128 ((__vector unsigned short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10129__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \ 10130 ((__vector unsigned short) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10131__ch (__bin_args_eq (__vector __pixel, (a1), __vector signed char, (a2)), \ 10132 ((__vector __pixel) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10133__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned char, (a2)), \ 10134 ((__vector __pixel) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10135__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 10136 ((__vector signed char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10137__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 10138 ((__vector signed char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10139__ch (__bin_args_eq (__vector unsigned char, (a1), __vector signed char, (a2)), \ 10140 ((__vector unsigned char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10141__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10142 ((__vector unsigned char) __builtin_altivec_vslo ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10143 __builtin_altivec_compiletime_error ("vec_slo"))))))))))))))))) 10144 10145#define vec_splat(a1, a2) \ 10146__ch (__un_args_eq (__vector signed char, (a1)), \ 10147 ((__vector signed char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \ 10148__ch (__un_args_eq (__vector unsigned char, (a1)), \ 10149 ((__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \ 10150__ch (__un_args_eq (__vector __bool char, (a1)), \ 10151 ((__vector __bool char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \ 10152__ch (__un_args_eq (__vector signed short, (a1)), \ 10153 ((__vector signed short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \ 10154__ch (__un_args_eq (__vector unsigned short, (a1)), \ 10155 ((__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \ 10156__ch (__un_args_eq (__vector __bool short, (a1)), \ 10157 ((__vector __bool short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \ 10158__ch (__un_args_eq (__vector __pixel, (a1)), \ 10159 ((__vector __pixel) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \ 10160__ch (__un_args_eq (__vector float, (a1)), \ 10161 ((__vector float) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \ 10162__ch (__un_args_eq (__vector signed int, (a1)), \ 10163 ((__vector signed int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \ 10164__ch (__un_args_eq (__vector unsigned int, (a1)), \ 10165 ((__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \ 10166__ch (__un_args_eq (__vector __bool int, (a1)), \ 10167 ((__vector __bool int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \ 10168 __builtin_altivec_compiletime_error ("vec_splat")))))))))))) 10169 10170#define vec_vspltw(a1, a2) \ 10171__ch (__un_args_eq (__vector float, (a1)), \ 10172 ((__vector float) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \ 10173__ch (__un_args_eq (__vector __bool int, (a1)), \ 10174 ((__vector __bool int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \ 10175__ch (__un_args_eq (__vector signed int, (a1)), \ 10176 ((__vector signed int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \ 10177__ch (__un_args_eq (__vector unsigned int, (a1)), \ 10178 ((__vector unsigned int) __builtin_altivec_vspltw ((__vector signed int) (a1), (const int) (a2))), \ 10179__builtin_altivec_compiletime_error ("vec_vspltw"))))) 10180 10181#define vec_vsplth(a1, a2) \ 10182__ch (__un_args_eq (__vector __bool short, (a1)), \ 10183 ((__vector __bool short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \ 10184__ch (__un_args_eq (__vector signed short, (a1)), \ 10185 ((__vector signed short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \ 10186__ch (__un_args_eq (__vector unsigned short, (a1)), \ 10187 ((__vector unsigned short) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \ 10188__ch (__un_args_eq (__vector __pixel, (a1)), \ 10189 ((__vector __pixel) __builtin_altivec_vsplth ((__vector signed short) (a1), (const int) (a2))), \ 10190__builtin_altivec_compiletime_error ("vec_vsplth"))))) 10191 10192#define vec_vspltb(a1, a2) \ 10193__ch (__un_args_eq (__vector __bool char, (a1)), \ 10194 ((__vector __bool char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \ 10195__ch (__un_args_eq (__vector signed char, (a1)), \ 10196 ((__vector signed char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \ 10197__ch (__un_args_eq (__vector unsigned char, (a1)), \ 10198 ((__vector unsigned char) __builtin_altivec_vspltb ((__vector signed char) (a1), (const int) (a2))), \ 10199__builtin_altivec_compiletime_error ("vec_vspltb")))) 10200 10201#define vec_splat_s8(a1) ((__vector signed char) __builtin_altivec_vspltisb (a1)) 10202 10203#define vec_splat_s16(a1) ((__vector signed short) __builtin_altivec_vspltish (a1)) 10204 10205#define vec_splat_s32(a1) ((__vector signed int) __builtin_altivec_vspltisw (a1)) 10206 10207#define vec_splat_u8(a1) ((__vector unsigned char) __builtin_altivec_vspltisb (a1)) 10208 10209#define vec_splat_u16(a1) ((__vector unsigned short) __builtin_altivec_vspltish (a1)) 10210 10211#define vec_splat_u32(a1) ((__vector unsigned int) __builtin_altivec_vspltisw (a1)) 10212 10213#define vec_sr(a1, a2) \ 10214__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 10215 ((__vector signed char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10216__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10217 ((__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10218__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \ 10219 ((__vector signed short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10220__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10221 ((__vector unsigned short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10222__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \ 10223 ((__vector signed int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10224__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10225 ((__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10226 __builtin_altivec_compiletime_error ("vec_sr"))))))) 10227 10228#define vec_vsrw(a1, a2) \ 10229__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \ 10230 ((__vector signed int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10231__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10232 ((__vector unsigned int) __builtin_altivec_vsrw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10233__builtin_altivec_compiletime_error ("vec_vsrw"))) 10234 10235#define vec_vsrh(a1, a2) \ 10236__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \ 10237 ((__vector signed short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10238__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10239 ((__vector unsigned short) __builtin_altivec_vsrh ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10240__builtin_altivec_compiletime_error ("vec_vsrh"))) 10241 10242#define vec_vsrb(a1, a2) \ 10243__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 10244 ((__vector signed char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10245__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10246 ((__vector unsigned char) __builtin_altivec_vsrb ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10247__builtin_altivec_compiletime_error ("vec_vsrb"))) 10248 10249#define vec_sra(a1, a2) \ 10250__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 10251 ((__vector signed char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10252__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10253 ((__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10254__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \ 10255 ((__vector signed short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10256__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10257 ((__vector unsigned short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10258__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \ 10259 ((__vector signed int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10260__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10261 ((__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10262 __builtin_altivec_compiletime_error ("vec_sra"))))))) 10263 10264#define vec_vsraw(a1, a2) \ 10265__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \ 10266 ((__vector signed int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10267__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10268 ((__vector unsigned int) __builtin_altivec_vsraw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10269__builtin_altivec_compiletime_error ("vec_vsraw"))) 10270 10271#define vec_vsrah(a1, a2) \ 10272__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \ 10273 ((__vector signed short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10274__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10275 ((__vector unsigned short) __builtin_altivec_vsrah ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10276__builtin_altivec_compiletime_error ("vec_vsrah"))) 10277 10278#define vec_vsrab(a1, a2) \ 10279__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 10280 ((__vector signed char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10281__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10282 ((__vector unsigned char) __builtin_altivec_vsrab ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10283__builtin_altivec_compiletime_error ("vec_vsrab"))) 10284 10285#define vec_srl(a1, a2) \ 10286__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned int, (a2)), \ 10287 ((__vector signed int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10288__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned short, (a2)), \ 10289 ((__vector signed int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10290__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \ 10291 ((__vector signed int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10292__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10293 ((__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10294__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned short, (a2)), \ 10295 ((__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10296__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \ 10297 ((__vector unsigned int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10298__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 10299 ((__vector __bool int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10300__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned short, (a2)), \ 10301 ((__vector __bool int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10302__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned char, (a2)), \ 10303 ((__vector __bool int) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10304__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned int, (a2)), \ 10305 ((__vector signed short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10306__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned short, (a2)), \ 10307 ((__vector signed short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10308__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \ 10309 ((__vector signed short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10310__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned int, (a2)), \ 10311 ((__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10312__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10313 ((__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10314__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \ 10315 ((__vector unsigned short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10316__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned int, (a2)), \ 10317 ((__vector __bool short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10318__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 10319 ((__vector __bool short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10320__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned char, (a2)), \ 10321 ((__vector __bool short) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10322__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned int, (a2)), \ 10323 ((__vector __pixel) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10324__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned short, (a2)), \ 10325 ((__vector __pixel) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10326__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned char, (a2)), \ 10327 ((__vector __pixel) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10328__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned int, (a2)), \ 10329 ((__vector signed char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10330__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned short, (a2)), \ 10331 ((__vector signed char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10332__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 10333 ((__vector signed char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10334__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \ 10335 ((__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10336__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned short, (a2)), \ 10337 ((__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10338__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10339 ((__vector unsigned char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10340__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned int, (a2)), \ 10341 ((__vector __bool char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10342__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned short, (a2)), \ 10343 ((__vector __bool char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10344__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 10345 ((__vector __bool char) __builtin_altivec_vsr ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10346 __builtin_altivec_compiletime_error ("vec_srl"))))))))))))))))))))))))))))))) 10347 10348#define vec_sro(a1, a2) \ 10349__ch (__bin_args_eq (__vector float, (a1), __vector signed char, (a2)), \ 10350 ((__vector float) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10351__ch (__bin_args_eq (__vector float, (a1), __vector unsigned char, (a2)), \ 10352 ((__vector float) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10353__ch (__bin_args_eq (__vector signed int, (a1), __vector signed char, (a2)), \ 10354 ((__vector signed int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10355__ch (__bin_args_eq (__vector signed int, (a1), __vector unsigned char, (a2)), \ 10356 ((__vector signed int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10357__ch (__bin_args_eq (__vector unsigned int, (a1), __vector signed char, (a2)), \ 10358 ((__vector unsigned int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10359__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned char, (a2)), \ 10360 ((__vector unsigned int) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10361__ch (__bin_args_eq (__vector signed short, (a1), __vector signed char, (a2)), \ 10362 ((__vector signed short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10363__ch (__bin_args_eq (__vector signed short, (a1), __vector unsigned char, (a2)), \ 10364 ((__vector signed short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10365__ch (__bin_args_eq (__vector __pixel, (a1), __vector signed char, (a2)), \ 10366 ((__vector __pixel) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10367__ch (__bin_args_eq (__vector __pixel, (a1), __vector unsigned char, (a2)), \ 10368 ((__vector __pixel) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10369__ch (__bin_args_eq (__vector unsigned short, (a1), __vector signed char, (a2)), \ 10370 ((__vector unsigned short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10371__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned char, (a2)), \ 10372 ((__vector unsigned short) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10373__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 10374 ((__vector signed char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10375__ch (__bin_args_eq (__vector signed char, (a1), __vector unsigned char, (a2)), \ 10376 ((__vector signed char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10377__ch (__bin_args_eq (__vector unsigned char, (a1), __vector signed char, (a2)), \ 10378 ((__vector unsigned char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10379__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10380 ((__vector unsigned char) __builtin_altivec_vsro ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10381 __builtin_altivec_compiletime_error ("vec_sro"))))))))))))))))) 10382 10383#define vec_st(a1, a2, a3) \ 10384__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, *(a3)), \ 10385 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10386__ch (__bin_args_eq (__vector unsigned char, (a1), unsigned char, *(a3)), \ 10387 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10388__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, *(a3)), \ 10389 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10390__ch (__bin_args_eq (__vector signed char, (a1), signed char, *(a3)), \ 10391 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10392__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, *(a3)), \ 10393 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10394__ch (__bin_args_eq (__vector __bool char, (a1), unsigned char, *(a3)), \ 10395 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10396__ch (__bin_args_eq (__vector __bool char, (a1), signed char, *(a3)), \ 10397 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10398__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, *(a3)), \ 10399 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10400__ch (__bin_args_eq (__vector unsigned short, (a1), unsigned short, *(a3)), \ 10401 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10402__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, *(a3)), \ 10403 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10404__ch (__bin_args_eq (__vector signed short, (a1), short, *(a3)), \ 10405 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10406__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, *(a3)), \ 10407 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10408__ch (__bin_args_eq (__vector __bool short, (a1), unsigned short, *(a3)), \ 10409 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10410__ch (__bin_args_eq (__vector __bool short, (a1), short, *(a3)), \ 10411 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10412__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, *(a3)), \ 10413 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10414__ch (__bin_args_eq (__vector __pixel, (a1), unsigned short, *(a3)), \ 10415 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10416__ch (__bin_args_eq (__vector __pixel, (a1), short, *(a3)), \ 10417 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10418__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, *(a3)), \ 10419 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10420__ch (__bin_args_eq (__vector unsigned int, (a1), unsigned int, *(a3)), \ 10421 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10422__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, *(a3)), \ 10423 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10424__ch (__bin_args_eq (__vector signed int, (a1), int, *(a3)), \ 10425 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10426__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, *(a3)), \ 10427 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10428__ch (__bin_args_eq (__vector __bool int, (a1), unsigned int, *(a3)), \ 10429 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10430__ch (__bin_args_eq (__vector __bool int, (a1), int, *(a3)), \ 10431 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10432__ch (__bin_args_eq (__vector float, (a1), __vector float, *(a3)), \ 10433 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10434__ch (__bin_args_eq (__vector float, (a1), float, *(a3)), \ 10435 __builtin_altivec_stvx ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10436__builtin_altivec_compiletime_error ("vec_st"))))))))))))))))))))))))))) 10437 10438#define vec_stl(a1, a2, a3) \ 10439__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, *(a3)), \ 10440 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10441__ch (__bin_args_eq (__vector unsigned char, (a1), unsigned char, *(a3)), \ 10442 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10443__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, *(a3)), \ 10444 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10445__ch (__bin_args_eq (__vector signed char, (a1), signed char, *(a3)), \ 10446 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10447__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, *(a3)), \ 10448 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10449__ch (__bin_args_eq (__vector __bool char, (a1), unsigned char, *(a3)), \ 10450 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10451__ch (__bin_args_eq (__vector __bool char, (a1), signed char, *(a3)), \ 10452 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10453__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, *(a3)), \ 10454 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10455__ch (__bin_args_eq (__vector unsigned short, (a1), unsigned short, *(a3)), \ 10456 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10457__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, *(a3)), \ 10458 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10459__ch (__bin_args_eq (__vector signed short, (a1), short, *(a3)), \ 10460 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10461__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, *(a3)), \ 10462 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10463__ch (__bin_args_eq (__vector __bool short, (a1), unsigned short, *(a3)), \ 10464 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10465__ch (__bin_args_eq (__vector __bool short, (a1), short, *(a3)), \ 10466 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10467__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, *(a3)), \ 10468 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10469__ch (__bin_args_eq (__vector __pixel, (a1), unsigned short, *(a3)), \ 10470 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10471__ch (__bin_args_eq (__vector __pixel, (a1), short, *(a3)), \ 10472 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10473__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, *(a3)), \ 10474 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10475__ch (__bin_args_eq (__vector unsigned int, (a1), unsigned int, *(a3)), \ 10476 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10477__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, *(a3)), \ 10478 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10479__ch (__bin_args_eq (__vector signed int, (a1), int, *(a3)), \ 10480 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10481__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, *(a3)), \ 10482 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10483__ch (__bin_args_eq (__vector __bool int, (a1), unsigned int, *(a3)), \ 10484 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10485__ch (__bin_args_eq (__vector __bool int, (a1), int, *(a3)), \ 10486 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10487__ch (__bin_args_eq (__vector float, (a1), __vector float, *(a3)), \ 10488 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10489__ch (__bin_args_eq (__vector float, (a1), float, *(a3)), \ 10490 __builtin_altivec_stvxl ((__vector signed int) (a1), (a2), (void *) (a3)), \ 10491__builtin_altivec_compiletime_error ("vec_stl"))))))))))))))))))))))))))) 10492 10493#define vec_ste(a, b, c) \ 10494__ch (__bin_args_eq (__vector unsigned char, (a), unsigned char, *(c)), \ 10495 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \ 10496__ch (__bin_args_eq (__vector signed char, (a), signed char, *(c)), \ 10497 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \ 10498__ch (__bin_args_eq (__vector __bool char, (a), unsigned char, *(c)), \ 10499 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \ 10500__ch (__bin_args_eq (__vector __bool char, (a), signed char, *(c)), \ 10501 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (void *) (c)), \ 10502__ch (__bin_args_eq (__vector unsigned short, (a), unsigned short, *(c)), \ 10503 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \ 10504__ch (__bin_args_eq (__vector signed short, (a), short, *(c)), \ 10505 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \ 10506__ch (__bin_args_eq (__vector __bool short, (a), unsigned short, *(c)), \ 10507 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \ 10508__ch (__bin_args_eq (__vector __bool short, (a), short, *(c)), \ 10509 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \ 10510__ch (__bin_args_eq (__vector __pixel, (a), unsigned short, *(c)), \ 10511 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \ 10512__ch (__bin_args_eq (__vector __pixel, (a), short, *(c)), \ 10513 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (void *) (c)), \ 10514__ch (__bin_args_eq (__vector unsigned int, (a), unsigned int, *(c)), \ 10515 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \ 10516__ch (__bin_args_eq (__vector signed int, (a), int, *(c)), \ 10517 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \ 10518__ch (__bin_args_eq (__vector __bool int, (a), unsigned int, *(c)), \ 10519 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \ 10520__ch (__bin_args_eq (__vector __bool int, (a), int, *(c)), \ 10521 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \ 10522__ch (__bin_args_eq (__vector float, (a), float, *(c)), \ 10523 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (void *) (c)), \ 10524 __builtin_altivec_compiletime_error ("vec_ste")))))))))))))))) 10525 10526#define vec_stvewx(a, b, c) \ 10527__ch (__bin_args_eq (__vector unsigned int, (a), unsigned int, *(c)), \ 10528 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \ 10529__ch (__bin_args_eq (__vector signed int, (a), int, *(c)), \ 10530 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \ 10531__ch (__bin_args_eq (__vector __bool int, (a), unsigned int, *(c)), \ 10532 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \ 10533__ch (__bin_args_eq (__vector __bool int, (a), int, *(c)), \ 10534 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \ 10535__ch (__bin_args_eq (__vector float, (a), float, *(c)), \ 10536 __builtin_altivec_stvewx ((__vector signed int) (a), (b), (c)), \ 10537__builtin_altivec_compiletime_error ("vec_stvewx")))))) 10538 10539#define vec_stvehx(a, b, c) \ 10540__ch (__bin_args_eq (__vector unsigned short, (a), unsigned short, *(c)), \ 10541 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \ 10542__ch (__bin_args_eq (__vector signed short, (a), short, *(c)), \ 10543 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \ 10544__ch (__bin_args_eq (__vector __bool short, (a), unsigned short, *(c)), \ 10545 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \ 10546__ch (__bin_args_eq (__vector __bool short, (a), short, *(c)), \ 10547 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \ 10548__ch (__bin_args_eq (__vector __pixel, (a), unsigned short, *(c)), \ 10549 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \ 10550__ch (__bin_args_eq (__vector __pixel, (a), short, *(c)), \ 10551 __builtin_altivec_stvehx ((__vector signed short) (a), (b), (c)), \ 10552__builtin_altivec_compiletime_error ("vec_stvehx"))))))) 10553 10554#define vec_stvebx(a, b, c) \ 10555__ch (__bin_args_eq (__vector unsigned char, (a), unsigned char, *(c)), \ 10556 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \ 10557__ch (__bin_args_eq (__vector signed char, (a), signed char, *(c)), \ 10558 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \ 10559__ch (__bin_args_eq (__vector __bool char, (a), unsigned char, *(c)), \ 10560 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \ 10561__ch (__bin_args_eq (__vector __bool char, (a), signed char, *(c)), \ 10562 __builtin_altivec_stvebx ((__vector signed char) (a), (b), (c)), \ 10563__builtin_altivec_compiletime_error ("vec_stvebx"))))) 10564 10565#define vec_sub(a1, a2) \ 10566__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 10567 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10568__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 10569 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10570__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 10571 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10572__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 10573 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10574__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 10575 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10576__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10577 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10578__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 10579 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10580__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 10581 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10582__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 10583 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10584__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 10585 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10586__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 10587 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10588__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10589 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10590__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 10591 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10592__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 10593 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10594__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 10595 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10596__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 10597 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10598__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 10599 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10600__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10601 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10602__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 10603 ((__vector float) __builtin_altivec_vsubfp ((__vector float) (a1), (__vector float) (a2))), \ 10604 __builtin_altivec_compiletime_error ("vec_sub")))))))))))))))))))) 10605 10606#define vec_vsubfp(a1, a2) \ 10607__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 10608 ((__vector float) __builtin_altivec_vsubfp ((__vector float) (a1), (__vector float) (a2))), \ 10609__builtin_altivec_compiletime_error ("vec_vsubfp")) 10610 10611#define vec_vsubuwm(a1, a2) \ 10612__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 10613 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10614__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 10615 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10616__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 10617 ((__vector signed int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10618__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 10619 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10620__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 10621 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10622__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10623 ((__vector unsigned int) __builtin_altivec_vsubuwm ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10624__builtin_altivec_compiletime_error ("vec_vsubuwm"))))))) 10625 10626#define vec_vsubuhm(a1, a2) \ 10627__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 10628 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10629__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 10630 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10631__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 10632 ((__vector signed short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10633__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 10634 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10635__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 10636 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10637__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10638 ((__vector unsigned short) __builtin_altivec_vsubuhm ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10639__builtin_altivec_compiletime_error ("vec_vsubuhm"))))))) 10640 10641#define vec_vsububm(a1, a2) \ 10642__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 10643 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10644__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 10645 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10646__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 10647 ((__vector signed char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10648__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 10649 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10650__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 10651 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10652__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10653 ((__vector unsigned char) __builtin_altivec_vsububm ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10654__builtin_altivec_compiletime_error ("vec_vsububm"))))))) 10655 10656#define vec_subc(a1, a2) \ 10657__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10658 ((__vector unsigned int) __builtin_altivec_vsubcuw ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10659__builtin_altivec_compiletime_error ("vec_subc")) 10660 10661#define vec_subs(a1, a2) \ 10662__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 10663 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10664__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 10665 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10666__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10667 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10668__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 10669 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10670__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 10671 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10672__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 10673 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10674__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 10675 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10676__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 10677 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10678__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10679 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10680__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 10681 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10682__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 10683 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10684__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 10685 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10686__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 10687 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10688__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 10689 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10690__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10691 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10692__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 10693 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10694__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 10695 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10696__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 10697 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10698 __builtin_altivec_compiletime_error ("vec_subs"))))))))))))))))))) 10699 10700#define vec_vsubsws(a1, a2) \ 10701__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 10702 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10703__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 10704 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10705__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 10706 ((__vector signed int) __builtin_altivec_vsubsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10707__builtin_altivec_compiletime_error ("vec_vsubsws")))) 10708 10709#define vec_vsubuws(a1, a2) \ 10710__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 10711 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10712__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 10713 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10714__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10715 ((__vector unsigned int) __builtin_altivec_vsubuws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10716__builtin_altivec_compiletime_error ("vec_vsubuws")))) 10717 10718#define vec_vsubshs(a1, a2) \ 10719__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 10720 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10721__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 10722 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10723__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 10724 ((__vector signed short) __builtin_altivec_vsubshs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10725__builtin_altivec_compiletime_error ("vec_vsubshs")))) 10726 10727#define vec_vsubuhs(a1, a2) \ 10728__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 10729 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10730__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 10731 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10732__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10733 ((__vector unsigned short) __builtin_altivec_vsubuhs ((__vector signed short) (a1), (__vector signed short) (a2))), \ 10734__builtin_altivec_compiletime_error ("vec_vsubuhs")))) 10735 10736#define vec_vsubsbs(a1, a2) \ 10737__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 10738 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10739__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 10740 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10741__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 10742 ((__vector signed char) __builtin_altivec_vsubsbs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10743__builtin_altivec_compiletime_error ("vec_vsubsbs")))) 10744 10745#define vec_vsububs(a1, a2) \ 10746__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 10747 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10748__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 10749 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10750__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10751 ((__vector unsigned char) __builtin_altivec_vsububs ((__vector signed char) (a1), (__vector signed char) (a2))), \ 10752__builtin_altivec_compiletime_error ("vec_vsububs")))) 10753 10754#define vec_sum4s(a1, a2) \ 10755__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \ 10756 ((__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) (a1), (__vector signed int) (a2))), \ 10757__ch (__bin_args_eq (__vector signed char, (a1), __vector signed int, (a2)), \ 10758 ((__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) (a1), (__vector signed int) (a2))), \ 10759__ch (__bin_args_eq (__vector signed short, (a1), __vector signed int, (a2)), \ 10760 ((__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) (a1), (__vector signed int) (a2))), \ 10761 __builtin_altivec_compiletime_error ("vec_sum4s")))) 10762 10763#define vec_vsum4shs(a1, a2) \ 10764__ch (__bin_args_eq (__vector signed short, (a1), __vector signed int, (a2)), \ 10765 ((__vector signed int) __builtin_altivec_vsum4shs ((__vector signed short) (a1), (__vector signed int) (a2))), \ 10766__builtin_altivec_compiletime_error ("vec_vsum4shs")) 10767 10768#define vec_vsum4sbs(a1, a2) \ 10769__ch (__bin_args_eq (__vector signed char, (a1), __vector signed int, (a2)), \ 10770 ((__vector signed int) __builtin_altivec_vsum4sbs ((__vector signed char) (a1), (__vector signed int) (a2))), \ 10771__builtin_altivec_compiletime_error ("vec_vsum4sbs")) 10772 10773#define vec_vsum4ubs(a1, a2) \ 10774__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned int, (a2)), \ 10775 ((__vector unsigned int) __builtin_altivec_vsum4ubs ((__vector signed char) (a1), (__vector signed int) (a2))), \ 10776__builtin_altivec_compiletime_error ("vec_vsum4ubs")) 10777 10778#define vec_sum2s(a1, a2) \ 10779__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 10780 ((__vector signed int) __builtin_altivec_vsum2sws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10781__builtin_altivec_compiletime_error ("vec_sum2s")) 10782 10783#define vec_sums(a1, a2) \ 10784__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 10785 ((__vector signed int) __builtin_altivec_vsumsws ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10786__builtin_altivec_compiletime_error ("vec_sums")) 10787 10788#define vec_trunc(a1) \ 10789__ch (__un_args_eq (__vector float, (a1)), \ 10790 ((__vector float) __builtin_altivec_vrfiz ((__vector float) (a1))), \ 10791__builtin_altivec_compiletime_error ("vec_trunc")) 10792 10793#define vec_unpackh(a1) \ 10794__ch (__un_args_eq (__vector signed char, (a1)), \ 10795 ((__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \ 10796__ch (__un_args_eq (__vector __bool char, (a1)), \ 10797 ((__vector __bool short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \ 10798__ch (__un_args_eq (__vector __pixel, (a1)), \ 10799 ((__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) (a1))), \ 10800__ch (__un_args_eq (__vector signed short, (a1)), \ 10801 ((__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \ 10802__ch (__un_args_eq (__vector __bool short, (a1)), \ 10803 ((__vector __bool int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \ 10804 __builtin_altivec_compiletime_error ("vec_unpackh")))))) 10805 10806#define vec_vupkhsh(a1) \ 10807__ch (__un_args_eq (__vector __bool short, (a1)), \ 10808 ((__vector __bool int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \ 10809__ch (__un_args_eq (__vector signed short, (a1)), \ 10810 ((__vector signed int) __builtin_altivec_vupkhsh ((__vector signed short) (a1))), \ 10811__builtin_altivec_compiletime_error ("vec_vupkhsh"))) 10812 10813#define vec_vupkhpx(a1) \ 10814__ch (__un_args_eq (__vector __pixel, (a1)), \ 10815 ((__vector unsigned int) __builtin_altivec_vupkhpx ((__vector signed short) (a1))), \ 10816__builtin_altivec_compiletime_error ("vec_vupkhpx")) 10817 10818#define vec_vupkhsb(a1) \ 10819__ch (__un_args_eq (__vector __bool char, (a1)), \ 10820 ((__vector __bool short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \ 10821__ch (__un_args_eq (__vector signed char, (a1)), \ 10822 ((__vector signed short) __builtin_altivec_vupkhsb ((__vector signed char) (a1))), \ 10823__builtin_altivec_compiletime_error ("vec_vupkhsb"))) 10824 10825#define vec_unpackl(a1) \ 10826__ch (__un_args_eq (__vector signed char, (a1)), \ 10827 ((__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \ 10828__ch (__un_args_eq (__vector __bool char, (a1)), \ 10829 ((__vector __bool short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \ 10830__ch (__un_args_eq (__vector __pixel, (a1)), \ 10831 ((__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) (a1))), \ 10832__ch (__un_args_eq (__vector signed short, (a1)), \ 10833 ((__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \ 10834__ch (__un_args_eq (__vector __bool short, (a1)), \ 10835 ((__vector __bool int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \ 10836 __builtin_altivec_compiletime_error ("vec_unpackl")))))) 10837 10838#define vec_vupklsh(a1) \ 10839__ch (__un_args_eq (__vector __bool short, (a1)), \ 10840 ((__vector __bool int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \ 10841__ch (__un_args_eq (__vector signed short, (a1)), \ 10842 ((__vector signed int) __builtin_altivec_vupklsh ((__vector signed short) (a1))), \ 10843__builtin_altivec_compiletime_error ("vec_vupklsh"))) 10844 10845#define vec_vupklpx(a1) \ 10846__ch (__un_args_eq (__vector __pixel, (a1)), \ 10847 ((__vector unsigned int) __builtin_altivec_vupklpx ((__vector signed short) (a1))), \ 10848__builtin_altivec_compiletime_error ("vec_vupklpx")) 10849 10850#define vec_vupklsb(a1) \ 10851__ch (__un_args_eq (__vector __bool char, (a1)), \ 10852 ((__vector __bool short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \ 10853__ch (__un_args_eq (__vector signed char, (a1)), \ 10854 ((__vector signed short) __builtin_altivec_vupklsb ((__vector signed char) (a1))), \ 10855__builtin_altivec_compiletime_error ("vec_vupklsb"))) 10856 10857#define vec_xor(a1, a2) \ 10858__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 10859 ((__vector float) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10860__ch (__bin_args_eq (__vector float, (a1), __vector __bool int, (a2)), \ 10861 ((__vector float) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10862__ch (__bin_args_eq (__vector __bool int, (a1), __vector float, (a2)), \ 10863 ((__vector float) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10864__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 10865 ((__vector __bool int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10866__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 10867 ((__vector signed int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10868__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 10869 ((__vector signed int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10870__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 10871 ((__vector signed int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10872__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 10873 ((__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10874__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 10875 ((__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10876__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10877 ((__vector unsigned int) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10878__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 10879 ((__vector __bool short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10880__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 10881 ((__vector signed short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10882__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 10883 ((__vector signed short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10884__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 10885 ((__vector signed short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10886__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 10887 ((__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10888__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 10889 ((__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10890__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10891 ((__vector unsigned short) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10892__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 10893 ((__vector __bool char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10894__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 10895 ((__vector signed char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10896__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 10897 ((__vector signed char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10898__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 10899 ((__vector signed char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10900__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 10901 ((__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10902__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 10903 ((__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10904__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10905 ((__vector unsigned char) __builtin_altivec_vxor ((__vector signed int) (a1), (__vector signed int) (a2))), \ 10906 __builtin_altivec_compiletime_error ("vec_xor"))))))))))))))))))))))))) 10907 10908/* Predicates. */ 10909 10910#define vec_all_eq(a1, a2) \ 10911__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 10912 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 10913__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 10914 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 10915__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 10916 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 10917__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 10918 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 10919__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 10920 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 10921__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10922 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 10923__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 10924 __builtin_altivec_vcmpequb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 10925__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 10926 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 10927__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 10928 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 10929__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 10930 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 10931__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 10932 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 10933__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 10934 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 10935__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10936 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 10937__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 10938 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 10939__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \ 10940 __builtin_altivec_vcmpequh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 10941__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 10942 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 10943__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 10944 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 10945__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 10946 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 10947__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 10948 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 10949__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 10950 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 10951__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10952 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 10953__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 10954 __builtin_altivec_vcmpequw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 10955__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 10956 __builtin_altivec_vcmpeqfp_p (__CR6_LT, (__vector float) (a1), (__vector float) (a2)), \ 10957 __builtin_altivec_compiletime_error ("vec_all_eq")))))))))))))))))))))))) 10958 10959#define vec_all_ge(a1, a2) \ 10960__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 10961 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \ 10962__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 10963 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \ 10964__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 10965 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \ 10966__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 10967 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \ 10968__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 10969 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \ 10970__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 10971 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a2), (__vector signed char) (a1)), \ 10972__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 10973 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \ 10974__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 10975 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \ 10976__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 10977 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \ 10978__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 10979 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \ 10980__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 10981 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \ 10982__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 10983 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a2), (__vector signed short) (a1)), \ 10984__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 10985 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \ 10986__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 10987 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \ 10988__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 10989 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \ 10990__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 10991 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \ 10992__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 10993 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \ 10994__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 10995 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a2), (__vector signed int) (a1)), \ 10996__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 10997 __builtin_altivec_vcmpgefp_p (__CR6_LT, (__vector float) (a1), (__vector float) (a2)), \ 10998 __builtin_altivec_compiletime_error ("vec_all_ge")))))))))))))))))))) 10999 11000#define vec_all_gt(a1, a2) \ 11001__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 11002 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11003__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 11004 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11005__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 11006 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11007__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 11008 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11009__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 11010 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11011__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 11012 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11013__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 11014 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11015__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 11016 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11017__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 11018 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11019__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 11020 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11021__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 11022 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11023__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 11024 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11025__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 11026 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11027__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 11028 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11029__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 11030 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11031__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 11032 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11033__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 11034 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11035__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 11036 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11037__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11038 __builtin_altivec_vcmpgtfp_p (__CR6_LT, (__vector float) (a1), (__vector float) (a2)), \ 11039 __builtin_altivec_compiletime_error ("vec_all_gt")))))))))))))))))))) 11040 11041#define vec_all_in(a1, a2) \ 11042__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11043 __builtin_altivec_vcmpbfp_p (__CR6_EQ, (a1), (a2)), \ 11044 __builtin_altivec_compiletime_error ("vec_all_in")) 11045 11046#define vec_all_le(a1, a2) \ 11047__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 11048 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11049__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 11050 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11051__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 11052 __builtin_altivec_vcmpgtub_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11053__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 11054 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11055__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 11056 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11057__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 11058 __builtin_altivec_vcmpgtsb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11059__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 11060 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11061__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 11062 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11063__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 11064 __builtin_altivec_vcmpgtuh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11065__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 11066 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11067__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 11068 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11069__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 11070 __builtin_altivec_vcmpgtsh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11071__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 11072 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11073__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 11074 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11075__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 11076 __builtin_altivec_vcmpgtuw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11077__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 11078 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11079__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 11080 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11081__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 11082 __builtin_altivec_vcmpgtsw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11083__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11084 __builtin_altivec_vcmpgefp_p (__CR6_LT, (__vector float) (a2), (__vector float) (a1)), \ 11085 __builtin_altivec_compiletime_error ("vec_all_le")))))))))))))))))))) 11086 11087#define vec_all_lt(a1, a2) \ 11088__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 11089 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11090__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 11091 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11092__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 11093 __builtin_altivec_vcmpgtub_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11094__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 11095 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11096__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 11097 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11098__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 11099 __builtin_altivec_vcmpgtsb_p (__CR6_LT, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11100__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 11101 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11102__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 11103 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11104__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 11105 __builtin_altivec_vcmpgtuh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11106__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 11107 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11108__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 11109 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11110__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 11111 __builtin_altivec_vcmpgtsh_p (__CR6_LT, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11112__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 11113 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11114__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 11115 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11116__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 11117 __builtin_altivec_vcmpgtuw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11118__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 11119 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11120__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 11121 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11122__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 11123 __builtin_altivec_vcmpgtsw_p (__CR6_LT, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11124__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11125 __builtin_altivec_vcmpgtfp_p (__CR6_LT, (__vector float) (a2), (__vector float) (a1)), \ 11126 __builtin_altivec_compiletime_error ("vec_all_lt")))))))))))))))))))) 11127 11128#define vec_all_nan(a1) \ 11129__ch (__un_args_eq (__vector float, (a1)), \ 11130 __builtin_altivec_vcmpeqfp_p (__CR6_EQ, (a1), (a1)), \ 11131 __builtin_altivec_compiletime_error ("vec_all_nan")) 11132 11133#define vec_all_ne(a1, a2) \ 11134__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 11135 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11136__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 11137 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11138__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 11139 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11140__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 11141 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11142__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 11143 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11144__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 11145 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11146__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 11147 __builtin_altivec_vcmpequb_p (__CR6_EQ, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11148__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 11149 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11150__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 11151 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11152__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 11153 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11154__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 11155 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11156__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 11157 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11158__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 11159 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11160__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 11161 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11162__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \ 11163 __builtin_altivec_vcmpequh_p (__CR6_EQ, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11164__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 11165 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11166__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 11167 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11168__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 11169 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11170__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 11171 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11172__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 11173 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11174__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 11175 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11176__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 11177 __builtin_altivec_vcmpequw_p (__CR6_EQ, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11178__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11179 __builtin_altivec_vcmpeqfp_p (__CR6_EQ, (__vector float) (a1), (__vector float) (a2)), \ 11180 __builtin_altivec_compiletime_error ("vec_all_ne")))))))))))))))))))))))) 11181 11182#define vec_all_nge(a1, a2) \ 11183__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11184 __builtin_altivec_vcmpgefp_p (__CR6_EQ, (a1), (a2)), \ 11185 __builtin_altivec_compiletime_error ("vec_all_nge")) 11186 11187#define vec_all_ngt(a1, a2) \ 11188__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11189 __builtin_altivec_vcmpgtfp_p (__CR6_EQ, (a1), (a2)), \ 11190 __builtin_altivec_compiletime_error ("vec_all_ngt")) 11191 11192#define vec_all_nle(a1, a2) \ 11193__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11194 __builtin_altivec_vcmpgefp_p (__CR6_EQ, (a2), (a1)), \ 11195 __builtin_altivec_compiletime_error ("vec_all_nle")) 11196 11197#define vec_all_nlt(a1, a2) \ 11198__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11199 __builtin_altivec_vcmpgtfp_p (__CR6_EQ, (a2), (a1)), \ 11200 __builtin_altivec_compiletime_error ("vec_all_nlt")) 11201 11202#define vec_all_numeric(a1) \ 11203__ch (__un_args_eq (__vector float, (a1)), \ 11204 __builtin_altivec_vcmpeqfp_p (__CR6_LT, (a1), (a1)), \ 11205 __builtin_altivec_compiletime_error ("vec_all_numeric")) 11206 11207#define vec_any_eq(a1, a2) \ 11208__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 11209 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11210__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 11211 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11212__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 11213 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11214__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 11215 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11216__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 11217 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11218__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 11219 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11220__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 11221 __builtin_altivec_vcmpequb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11222__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 11223 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11224__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 11225 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11226__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 11227 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11228__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 11229 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11230__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 11231 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11232__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 11233 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11234__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 11235 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11236__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \ 11237 __builtin_altivec_vcmpequh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11238__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 11239 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11240__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 11241 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11242__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 11243 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11244__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 11245 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11246__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 11247 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11248__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 11249 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11250__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 11251 __builtin_altivec_vcmpequw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11252__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11253 __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, (__vector float) (a1), (__vector float) (a2)), \ 11254 __builtin_altivec_compiletime_error ("vec_any_eq")))))))))))))))))))))))) 11255 11256#define vec_any_ge(a1, a2) \ 11257__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 11258 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11259__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 11260 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11261__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 11262 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11263__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 11264 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11265__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 11266 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11267__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 11268 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11269__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 11270 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11271__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 11272 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11273__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 11274 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11275__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 11276 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11277__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 11278 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11279__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 11280 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11281__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 11282 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11283__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 11284 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11285__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 11286 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11287__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 11288 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11289__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 11290 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11291__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 11292 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11293__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11294 __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (__vector float) (a1), (__vector float) (a2)), \ 11295 __builtin_altivec_compiletime_error ("vec_any_ge")))))))))))))))))))) 11296 11297#define vec_any_gt(a1, a2) \ 11298__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 11299 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11300__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 11301 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11302__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 11303 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11304__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 11305 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11306__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 11307 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11308__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 11309 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11310__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 11311 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11312__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 11313 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11314__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 11315 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11316__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 11317 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11318__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 11319 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11320__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 11321 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11322__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 11323 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11324__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 11325 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11326__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 11327 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11328__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 11329 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11330__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 11331 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11332__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 11333 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11334__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11335 __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (__vector float) (a1), (__vector float) (a2)), \ 11336 __builtin_altivec_compiletime_error ("vec_any_gt")))))))))))))))))))) 11337 11338#define vec_any_le(a1, a2) \ 11339__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 11340 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11341__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 11342 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11343__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 11344 __builtin_altivec_vcmpgtub_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11345__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 11346 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11347__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 11348 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11349__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 11350 __builtin_altivec_vcmpgtsb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11351__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 11352 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11353__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 11354 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11355__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 11356 __builtin_altivec_vcmpgtuh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11357__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 11358 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11359__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 11360 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11361__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 11362 __builtin_altivec_vcmpgtsh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11363__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 11364 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11365__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 11366 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11367__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 11368 __builtin_altivec_vcmpgtuw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11369__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 11370 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11371__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 11372 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11373__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 11374 __builtin_altivec_vcmpgtsw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11375__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11376 __builtin_altivec_vcmpgefp_p (__CR6_EQ_REV, (__vector float) (a2), (__vector float) (a1)), \ 11377 __builtin_altivec_compiletime_error ("vec_any_le")))))))))))))))))))) 11378 11379#define vec_any_lt(a1, a2) \ 11380__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 11381 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11382__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 11383 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11384__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 11385 __builtin_altivec_vcmpgtub_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11386__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 11387 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11388__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 11389 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11390__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 11391 __builtin_altivec_vcmpgtsb_p (__CR6_EQ_REV, (__vector signed char) (a2), (__vector signed char) (a1)), \ 11392__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 11393 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11394__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 11395 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11396__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 11397 __builtin_altivec_vcmpgtuh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11398__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 11399 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11400__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 11401 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11402__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 11403 __builtin_altivec_vcmpgtsh_p (__CR6_EQ_REV, (__vector signed short) (a2), (__vector signed short) (a1)), \ 11404__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 11405 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11406__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 11407 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11408__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 11409 __builtin_altivec_vcmpgtuw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11410__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 11411 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11412__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 11413 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11414__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 11415 __builtin_altivec_vcmpgtsw_p (__CR6_EQ_REV, (__vector signed int) (a2), (__vector signed int) (a1)), \ 11416__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11417 __builtin_altivec_vcmpgtfp_p (__CR6_EQ_REV, (__vector float) (a2), (__vector float) (a1)), \ 11418 __builtin_altivec_compiletime_error ("vec_any_lt")))))))))))))))))))) 11419 11420#define vec_any_nan(a1) \ 11421__ch (__un_args_eq (__vector float, (a1)), \ 11422 __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, (a1), (a1)), \ 11423 __builtin_altivec_compiletime_error ("vec_any_nan")) 11424 11425#define vec_any_ne(a1, a2) \ 11426__ch (__bin_args_eq (__vector __bool char, (a1), __vector unsigned char, (a2)), \ 11427 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11428__ch (__bin_args_eq (__vector __bool char, (a1), __vector signed char, (a2)), \ 11429 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11430__ch (__bin_args_eq (__vector signed char, (a1), __vector __bool char, (a2)), \ 11431 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11432__ch (__bin_args_eq (__vector signed char, (a1), __vector signed char, (a2)), \ 11433 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11434__ch (__bin_args_eq (__vector unsigned char, (a1), __vector __bool char, (a2)), \ 11435 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11436__ch (__bin_args_eq (__vector unsigned char, (a1), __vector unsigned char, (a2)), \ 11437 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11438__ch (__bin_args_eq (__vector __bool char, (a1), __vector __bool char, (a2)), \ 11439 __builtin_altivec_vcmpequb_p (__CR6_LT_REV, (__vector signed char) (a1), (__vector signed char) (a2)), \ 11440__ch (__bin_args_eq (__vector __bool short, (a1), __vector unsigned short, (a2)), \ 11441 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11442__ch (__bin_args_eq (__vector __bool short, (a1), __vector signed short, (a2)), \ 11443 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11444__ch (__bin_args_eq (__vector signed short, (a1), __vector __bool short, (a2)), \ 11445 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11446__ch (__bin_args_eq (__vector signed short, (a1), __vector signed short, (a2)), \ 11447 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11448__ch (__bin_args_eq (__vector unsigned short, (a1), __vector __bool short, (a2)), \ 11449 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11450__ch (__bin_args_eq (__vector unsigned short, (a1), __vector unsigned short, (a2)), \ 11451 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11452__ch (__bin_args_eq (__vector __bool short, (a1), __vector __bool short, (a2)), \ 11453 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11454__ch (__bin_args_eq (__vector __pixel, (a1), __vector __pixel, (a2)), \ 11455 __builtin_altivec_vcmpequh_p (__CR6_LT_REV, (__vector signed short) (a1), (__vector signed short) (a2)), \ 11456__ch (__bin_args_eq (__vector __bool int, (a1), __vector unsigned int, (a2)), \ 11457 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11458__ch (__bin_args_eq (__vector __bool int, (a1), __vector signed int, (a2)), \ 11459 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11460__ch (__bin_args_eq (__vector signed int, (a1), __vector __bool int, (a2)), \ 11461 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11462__ch (__bin_args_eq (__vector signed int, (a1), __vector signed int, (a2)), \ 11463 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11464__ch (__bin_args_eq (__vector unsigned int, (a1), __vector __bool int, (a2)), \ 11465 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11466__ch (__bin_args_eq (__vector unsigned int, (a1), __vector unsigned int, (a2)), \ 11467 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11468__ch (__bin_args_eq (__vector __bool int, (a1), __vector __bool int, (a2)), \ 11469 __builtin_altivec_vcmpequw_p (__CR6_LT_REV, (__vector signed int) (a1), (__vector signed int) (a2)), \ 11470__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11471 __builtin_altivec_vcmpeqfp_p (__CR6_LT_REV, (__vector float) (a1), (__vector float) (a2)), \ 11472 __builtin_altivec_compiletime_error ("vec_any_ne")))))))))))))))))))))))) 11473 11474#define vec_any_nge(a1, a2) \ 11475__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11476 __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, (a1), (a2)), \ 11477 __builtin_altivec_compiletime_error ("vec_any_nge")) 11478 11479#define vec_any_ngt(a1, a2) \ 11480__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11481 __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, (a1), (a2)), \ 11482 __builtin_altivec_compiletime_error ("vec_any_ngt")) 11483 11484#define vec_any_nle(a1, a2) \ 11485__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11486 __builtin_altivec_vcmpgefp_p (__CR6_LT_REV, (a2), (a1)), \ 11487 __builtin_altivec_compiletime_error ("vec_any_nle")) 11488 11489#define vec_any_nlt(a1, a2) \ 11490__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11491 __builtin_altivec_vcmpgtfp_p (__CR6_LT_REV, (a2), (a1)), \ 11492 __builtin_altivec_compiletime_error ("vec_any_nlt")) 11493 11494#define vec_any_numeric(a1) \ 11495__ch (__un_args_eq (__vector float, (a1)), \ 11496 __builtin_altivec_vcmpeqfp_p (__CR6_EQ_REV, (a1), (a1)), \ 11497 __builtin_altivec_compiletime_error ("vec_any_numeric")) 11498 11499#define vec_any_out(a1, a2) \ 11500__ch (__bin_args_eq (__vector float, (a1), __vector float, (a2)), \ 11501 __builtin_altivec_vcmpbfp_p (__CR6_EQ_REV, (a1), (a2)), \ 11502 __builtin_altivec_compiletime_error ("vec_any_out")) 11503 11504 11505#endif /* __cplusplus */ 11506 11507#endif /* _ALTIVEC_H */ 11508