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