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