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