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 29 extern __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 45 static inline __ATTRS_o_ai signed char 46 vec_extract(vector signed char __vec, int __index) { 47 return __vec[__index & 15]; 48 } 49 50 static inline __ATTRS_o_ai unsigned char 51 vec_extract(vector bool char __vec, int __index) { 52 return __vec[__index & 15]; 53 } 54 55 static inline __ATTRS_o_ai unsigned char 56 vec_extract(vector unsigned char __vec, int __index) { 57 return __vec[__index & 15]; 58 } 59 60 static inline __ATTRS_o_ai signed short 61 vec_extract(vector signed short __vec, int __index) { 62 return __vec[__index & 7]; 63 } 64 65 static inline __ATTRS_o_ai unsigned short 66 vec_extract(vector bool short __vec, int __index) { 67 return __vec[__index & 7]; 68 } 69 70 static inline __ATTRS_o_ai unsigned short 71 vec_extract(vector unsigned short __vec, int __index) { 72 return __vec[__index & 7]; 73 } 74 75 static inline __ATTRS_o_ai signed int 76 vec_extract(vector signed int __vec, int __index) { 77 return __vec[__index & 3]; 78 } 79 80 static inline __ATTRS_o_ai unsigned int 81 vec_extract(vector bool int __vec, int __index) { 82 return __vec[__index & 3]; 83 } 84 85 static inline __ATTRS_o_ai unsigned int 86 vec_extract(vector unsigned int __vec, int __index) { 87 return __vec[__index & 3]; 88 } 89 90 static inline __ATTRS_o_ai signed long long 91 vec_extract(vector signed long long __vec, int __index) { 92 return __vec[__index & 1]; 93 } 94 95 static inline __ATTRS_o_ai unsigned long long 96 vec_extract(vector bool long long __vec, int __index) { 97 return __vec[__index & 1]; 98 } 99 100 static inline __ATTRS_o_ai unsigned long long 101 vec_extract(vector unsigned long long __vec, int __index) { 102 return __vec[__index & 1]; 103 } 104 105 #if __ARCH__ >= 12 106 static inline __ATTRS_o_ai float 107 vec_extract(vector float __vec, int __index) { 108 return __vec[__index & 3]; 109 } 110 #endif 111 112 static inline __ATTRS_o_ai double 113 vec_extract(vector double __vec, int __index) { 114 return __vec[__index & 1]; 115 } 116 117 /*-- vec_insert -------------------------------------------------------------*/ 118 119 static inline __ATTRS_o_ai vector signed char 120 vec_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. 126 static inline __ATTRS_o_ai vector unsigned char 127 vec_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 133 static inline __ATTRS_o_ai vector unsigned char 134 vec_insert(unsigned char __scalar, vector unsigned char __vec, int __index) { 135 __vec[__index & 15] = __scalar; 136 return __vec; 137 } 138 139 static inline __ATTRS_o_ai vector signed short 140 vec_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. 146 static inline __ATTRS_o_ai vector unsigned short 147 vec_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 153 static inline __ATTRS_o_ai vector unsigned short 154 vec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) { 155 __vec[__index & 7] = __scalar; 156 return __vec; 157 } 158 159 static inline __ATTRS_o_ai vector signed int 160 vec_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. 166 static inline __ATTRS_o_ai vector unsigned int 167 vec_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 173 static inline __ATTRS_o_ai vector unsigned int 174 vec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) { 175 __vec[__index & 3] = __scalar; 176 return __vec; 177 } 178 179 static inline __ATTRS_o_ai vector signed long long 180 vec_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. 187 static inline __ATTRS_o_ai vector unsigned long long 188 vec_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 195 static inline __ATTRS_o_ai vector unsigned long long 196 vec_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 203 static inline __ATTRS_o_ai vector float 204 vec_insert(float __scalar, vector float __vec, int __index) { 205 __vec[__index & 1] = __scalar; 206 return __vec; 207 } 208 #endif 209 210 static inline __ATTRS_o_ai vector double 211 vec_insert(double __scalar, vector double __vec, int __index) { 212 __vec[__index & 1] = __scalar; 213 return __vec; 214 } 215 216 /*-- vec_promote ------------------------------------------------------------*/ 217 218 static inline __ATTRS_o_ai vector signed char 219 vec_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 227 static inline __ATTRS_o_ai vector unsigned char 228 vec_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 236 static inline __ATTRS_o_ai vector signed short 237 vec_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 245 static inline __ATTRS_o_ai vector unsigned short 246 vec_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 254 static inline __ATTRS_o_ai vector signed int 255 vec_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 263 static inline __ATTRS_o_ai vector unsigned int 264 vec_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 272 static inline __ATTRS_o_ai vector signed long long 273 vec_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 281 static inline __ATTRS_o_ai vector unsigned long long 282 vec_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 291 static inline __ATTRS_o_ai vector float 292 vec_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 300 static inline __ATTRS_o_ai vector double 301 vec_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 310 static inline __ATTRS_o_ai vector signed char 311 vec_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 317 static inline __ATTRS_o_ai vector unsigned char 318 vec_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 324 static inline __ATTRS_o_ai vector signed short 325 vec_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 331 static inline __ATTRS_o_ai vector unsigned short 332 vec_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 338 static inline __ATTRS_o_ai vector signed int 339 vec_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 345 static inline __ATTRS_o_ai vector unsigned int 346 vec_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 352 static inline __ATTRS_o_ai vector signed long long 353 vec_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 359 static inline __ATTRS_o_ai vector unsigned long long 360 vec_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 367 static inline __ATTRS_o_ai vector float 368 vec_insert_and_zero(const float *__ptr) { 369 vector float __vec = (vector float)0; 370 __vec[1] = *__ptr; 371 return __vec; 372 } 373 #endif 374 375 static inline __ATTRS_o_ai vector double 376 vec_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 384 static inline __ATTRS_o_ai vector signed char 385 vec_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 391 static inline __ATTRS_o_ai vector unsigned char 392 vec_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 398 static inline __ATTRS_o_ai vector bool char 399 vec_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 405 static inline __ATTRS_o_ai vector signed short 406 vec_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 412 static inline __ATTRS_o_ai vector unsigned short 413 vec_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 419 static inline __ATTRS_o_ai vector bool short 420 vec_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 426 static inline __ATTRS_o_ai vector signed int 427 vec_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 433 static inline __ATTRS_o_ai vector unsigned int 434 vec_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 440 static inline __ATTRS_o_ai vector bool int 441 vec_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 447 static inline __ATTRS_o_ai vector signed long long 448 vec_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 454 static inline __ATTRS_o_ai vector unsigned long long 455 vec_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 461 static inline __ATTRS_o_ai vector bool long long 462 vec_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 469 static inline __ATTRS_o_ai vector float 470 vec_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 477 static inline __ATTRS_o_ai vector double 478 vec_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. 487 extern __ATTRS_o vector signed long long 488 vec_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. 492 extern __ATTRS_o vector unsigned long long 493 vec_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. 497 extern __ATTRS_o vector bool long long 498 vec_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. 502 extern __ATTRS_o vector double 503 vec_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 514 static inline __ATTRS_ai vector unsigned long long 515 vec_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 522 static inline __ATTRS_o_ai vector signed short 523 vec_revb(vector signed short __vec) { 524 return (vector signed short) 525 __builtin_s390_vlbrh((vector unsigned short)__vec); 526 } 527 528 static inline __ATTRS_o_ai vector unsigned short 529 vec_revb(vector unsigned short __vec) { 530 return __builtin_s390_vlbrh(__vec); 531 } 532 533 static inline __ATTRS_o_ai vector signed int 534 vec_revb(vector signed int __vec) { 535 return (vector signed int) 536 __builtin_s390_vlbrf((vector unsigned int)__vec); 537 } 538 539 static inline __ATTRS_o_ai vector unsigned int 540 vec_revb(vector unsigned int __vec) { 541 return __builtin_s390_vlbrf(__vec); 542 } 543 544 static inline __ATTRS_o_ai vector signed long long 545 vec_revb(vector signed long long __vec) { 546 return (vector signed long long) 547 __builtin_s390_vlbrg((vector unsigned long long)__vec); 548 } 549 550 static inline __ATTRS_o_ai vector unsigned long long 551 vec_revb(vector unsigned long long __vec) { 552 return __builtin_s390_vlbrg(__vec); 553 } 554 555 #if __ARCH__ >= 12 556 static inline __ATTRS_o_ai vector float 557 vec_revb(vector float __vec) { 558 return (vector float) 559 __builtin_s390_vlbrf((vector unsigned int)__vec); 560 } 561 #endif 562 563 static inline __ATTRS_o_ai vector double 564 vec_revb(vector double __vec) { 565 return (vector double) 566 __builtin_s390_vlbrg((vector unsigned long long)__vec); 567 } 568 569 /*-- vec_reve ---------------------------------------------------------------*/ 570 571 static inline __ATTRS_o_ai vector signed char 572 vec_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 579 static inline __ATTRS_o_ai vector unsigned char 580 vec_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 587 static inline __ATTRS_o_ai vector bool char 588 vec_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 595 static inline __ATTRS_o_ai vector signed short 596 vec_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 601 static inline __ATTRS_o_ai vector unsigned short 602 vec_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 607 static inline __ATTRS_o_ai vector bool short 608 vec_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 613 static inline __ATTRS_o_ai vector signed int 614 vec_reve(vector signed int __vec) { 615 return (vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] }; 616 } 617 618 static inline __ATTRS_o_ai vector unsigned int 619 vec_reve(vector unsigned int __vec) { 620 return (vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] }; 621 } 622 623 static inline __ATTRS_o_ai vector bool int 624 vec_reve(vector bool int __vec) { 625 return (vector bool int) { __vec[3], __vec[2], __vec[1], __vec[0] }; 626 } 627 628 static inline __ATTRS_o_ai vector signed long long 629 vec_reve(vector signed long long __vec) { 630 return (vector signed long long) { __vec[1], __vec[0] }; 631 } 632 633 static inline __ATTRS_o_ai vector unsigned long long 634 vec_reve(vector unsigned long long __vec) { 635 return (vector unsigned long long) { __vec[1], __vec[0] }; 636 } 637 638 static inline __ATTRS_o_ai vector bool long long 639 vec_reve(vector bool long long __vec) { 640 return (vector bool long long) { __vec[1], __vec[0] }; 641 } 642 643 #if __ARCH__ >= 12 644 static inline __ATTRS_o_ai vector float 645 vec_reve(vector float __vec) { 646 return (vector float) { __vec[3], __vec[2], __vec[1], __vec[0] }; 647 } 648 #endif 649 650 static inline __ATTRS_o_ai vector double 651 vec_reve(vector double __vec) { 652 return (vector double) { __vec[1], __vec[0] }; 653 } 654 655 /*-- vec_sel ----------------------------------------------------------------*/ 656 657 static inline __ATTRS_o_ai vector signed char 658 vec_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 663 static inline __ATTRS_o_ai vector signed char 664 vec_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 668 static inline __ATTRS_o_ai vector bool char 669 vec_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 673 static inline __ATTRS_o_ai vector bool char 674 vec_sel(vector bool char __a, vector bool char __b, vector bool char __c) { 675 return (__c & __b) | (~__c & __a); 676 } 677 678 static inline __ATTRS_o_ai vector unsigned char 679 vec_sel(vector unsigned char __a, vector unsigned char __b, 680 vector unsigned char __c) { 681 return (__c & __b) | (~__c & __a); 682 } 683 684 static inline __ATTRS_o_ai vector unsigned char 685 vec_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 690 static inline __ATTRS_o_ai vector signed short 691 vec_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 696 static inline __ATTRS_o_ai vector signed short 697 vec_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 702 static inline __ATTRS_o_ai vector bool short 703 vec_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 708 static inline __ATTRS_o_ai vector bool short 709 vec_sel(vector bool short __a, vector bool short __b, vector bool short __c) { 710 return (__c & __b) | (~__c & __a); 711 } 712 713 static inline __ATTRS_o_ai vector unsigned short 714 vec_sel(vector unsigned short __a, vector unsigned short __b, 715 vector unsigned short __c) { 716 return (__c & __b) | (~__c & __a); 717 } 718 719 static inline __ATTRS_o_ai vector unsigned short 720 vec_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 726 static inline __ATTRS_o_ai vector signed int 727 vec_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 732 static inline __ATTRS_o_ai vector signed int 733 vec_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 737 static inline __ATTRS_o_ai vector bool int 738 vec_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 742 static inline __ATTRS_o_ai vector bool int 743 vec_sel(vector bool int __a, vector bool int __b, vector bool int __c) { 744 return (__c & __b) | (~__c & __a); 745 } 746 747 static inline __ATTRS_o_ai vector unsigned int 748 vec_sel(vector unsigned int __a, vector unsigned int __b, 749 vector unsigned int __c) { 750 return (__c & __b) | (~__c & __a); 751 } 752 753 static inline __ATTRS_o_ai vector unsigned int 754 vec_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 758 static inline __ATTRS_o_ai vector signed long long 759 vec_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 765 static inline __ATTRS_o_ai vector signed long long 766 vec_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 772 static inline __ATTRS_o_ai vector bool long long 773 vec_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 779 static inline __ATTRS_o_ai vector bool long long 780 vec_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 785 static inline __ATTRS_o_ai vector unsigned long long 786 vec_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 791 static inline __ATTRS_o_ai vector unsigned long long 792 vec_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 799 static inline __ATTRS_o_ai vector float 800 vec_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 805 static inline __ATTRS_o_ai vector float 806 vec_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 814 static inline __ATTRS_o_ai vector double 815 vec_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 820 static inline __ATTRS_o_ai vector double 821 vec_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 830 static inline __ATTRS_o_ai vector signed int 831 vec_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 839 static inline __ATTRS_o_ai vector bool int 840 vec_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 848 static inline __ATTRS_o_ai vector unsigned int 849 vec_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 857 static inline __ATTRS_o_ai vector signed long long 858 vec_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 867 static inline __ATTRS_o_ai vector bool long long 868 vec_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 877 static inline __ATTRS_o_ai vector unsigned long long 878 vec_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 888 static inline __ATTRS_o_ai vector float 889 vec_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 898 static inline __ATTRS_o_ai vector double 899 vec_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 909 static inline __ATTRS_o_ai void 910 vec_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 917 static inline __ATTRS_o_ai void 918 vec_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 925 static inline __ATTRS_o_ai void 926 vec_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 933 static inline __ATTRS_o_ai void 934 vec_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 942 static inline __ATTRS_o_ai void 943 vec_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 951 static inline __ATTRS_o_ai void 952 vec_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 961 static inline __ATTRS_o_ai void 962 vec_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 970 static inline __ATTRS_o_ai void 971 vec_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 980 static inline __ATTRS_o_ai vector signed char 981 vec_xl(long __offset, const signed char *__ptr) { 982 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset); 983 } 984 985 static inline __ATTRS_o_ai vector unsigned char 986 vec_xl(long __offset, const unsigned char *__ptr) { 987 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset); 988 } 989 990 static inline __ATTRS_o_ai vector signed short 991 vec_xl(long __offset, const signed short *__ptr) { 992 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset); 993 } 994 995 static inline __ATTRS_o_ai vector unsigned short 996 vec_xl(long __offset, const unsigned short *__ptr) { 997 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset); 998 } 999 1000 static inline __ATTRS_o_ai vector signed int 1001 vec_xl(long __offset, const signed int *__ptr) { 1002 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset); 1003 } 1004 1005 static inline __ATTRS_o_ai vector unsigned int 1006 vec_xl(long __offset, const unsigned int *__ptr) { 1007 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset); 1008 } 1009 1010 static inline __ATTRS_o_ai vector signed long long 1011 vec_xl(long __offset, const signed long long *__ptr) { 1012 return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset); 1013 } 1014 1015 static inline __ATTRS_o_ai vector unsigned long long 1016 vec_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 1021 static inline __ATTRS_o_ai vector float 1022 vec_xl(long __offset, const float *__ptr) { 1023 return *(const vector float *)((__INTPTR_TYPE__)__ptr + __offset); 1024 } 1025 #endif 1026 1027 static inline __ATTRS_o_ai vector double 1028 vec_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. 1035 static inline __ATTRS_o_ai vector signed char 1036 vec_xld2(long __offset, const signed char *__ptr) { 1037 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset); 1038 } 1039 1040 // This prototype is deprecated. 1041 static inline __ATTRS_o_ai vector unsigned char 1042 vec_xld2(long __offset, const unsigned char *__ptr) { 1043 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset); 1044 } 1045 1046 // This prototype is deprecated. 1047 static inline __ATTRS_o_ai vector signed short 1048 vec_xld2(long __offset, const signed short *__ptr) { 1049 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset); 1050 } 1051 1052 // This prototype is deprecated. 1053 static inline __ATTRS_o_ai vector unsigned short 1054 vec_xld2(long __offset, const unsigned short *__ptr) { 1055 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset); 1056 } 1057 1058 // This prototype is deprecated. 1059 static inline __ATTRS_o_ai vector signed int 1060 vec_xld2(long __offset, const signed int *__ptr) { 1061 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset); 1062 } 1063 1064 // This prototype is deprecated. 1065 static inline __ATTRS_o_ai vector unsigned int 1066 vec_xld2(long __offset, const unsigned int *__ptr) { 1067 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset); 1068 } 1069 1070 // This prototype is deprecated. 1071 static inline __ATTRS_o_ai vector signed long long 1072 vec_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. 1077 static inline __ATTRS_o_ai vector unsigned long long 1078 vec_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. 1083 static inline __ATTRS_o_ai vector double 1084 vec_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. 1091 static inline __ATTRS_o_ai vector signed char 1092 vec_xlw4(long __offset, const signed char *__ptr) { 1093 return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset); 1094 } 1095 1096 // This prototype is deprecated. 1097 static inline __ATTRS_o_ai vector unsigned char 1098 vec_xlw4(long __offset, const unsigned char *__ptr) { 1099 return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset); 1100 } 1101 1102 // This prototype is deprecated. 1103 static inline __ATTRS_o_ai vector signed short 1104 vec_xlw4(long __offset, const signed short *__ptr) { 1105 return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset); 1106 } 1107 1108 // This prototype is deprecated. 1109 static inline __ATTRS_o_ai vector unsigned short 1110 vec_xlw4(long __offset, const unsigned short *__ptr) { 1111 return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset); 1112 } 1113 1114 // This prototype is deprecated. 1115 static inline __ATTRS_o_ai vector signed int 1116 vec_xlw4(long __offset, const signed int *__ptr) { 1117 return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset); 1118 } 1119 1120 // This prototype is deprecated. 1121 static inline __ATTRS_o_ai vector unsigned int 1122 vec_xlw4(long __offset, const unsigned int *__ptr) { 1123 return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset); 1124 } 1125 1126 /*-- vec_xst ----------------------------------------------------------------*/ 1127 1128 static inline __ATTRS_o_ai void 1129 vec_xst(vector signed char __vec, long __offset, signed char *__ptr) { 1130 *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1131 } 1132 1133 static inline __ATTRS_o_ai void 1134 vec_xst(vector unsigned char __vec, long __offset, unsigned char *__ptr) { 1135 *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1136 } 1137 1138 static inline __ATTRS_o_ai void 1139 vec_xst(vector signed short __vec, long __offset, signed short *__ptr) { 1140 *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1141 } 1142 1143 static inline __ATTRS_o_ai void 1144 vec_xst(vector unsigned short __vec, long __offset, unsigned short *__ptr) { 1145 *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1146 } 1147 1148 static inline __ATTRS_o_ai void 1149 vec_xst(vector signed int __vec, long __offset, signed int *__ptr) { 1150 *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1151 } 1152 1153 static inline __ATTRS_o_ai void 1154 vec_xst(vector unsigned int __vec, long __offset, unsigned int *__ptr) { 1155 *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1156 } 1157 1158 static inline __ATTRS_o_ai void 1159 vec_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 1164 static inline __ATTRS_o_ai void 1165 vec_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 1172 static inline __ATTRS_o_ai void 1173 vec_xst(vector float __vec, long __offset, float *__ptr) { 1174 *(vector float *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1175 } 1176 #endif 1177 1178 static inline __ATTRS_o_ai void 1179 vec_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. 1186 static inline __ATTRS_o_ai void 1187 vec_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. 1192 static inline __ATTRS_o_ai void 1193 vec_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. 1198 static inline __ATTRS_o_ai void 1199 vec_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. 1204 static inline __ATTRS_o_ai void 1205 vec_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. 1210 static inline __ATTRS_o_ai void 1211 vec_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. 1216 static inline __ATTRS_o_ai void 1217 vec_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. 1222 static inline __ATTRS_o_ai void 1223 vec_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. 1229 static inline __ATTRS_o_ai void 1230 vec_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. 1237 static inline __ATTRS_o_ai void 1238 vec_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. 1245 static inline __ATTRS_o_ai void 1246 vec_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. 1251 static inline __ATTRS_o_ai void 1252 vec_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. 1257 static inline __ATTRS_o_ai void 1258 vec_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. 1263 static inline __ATTRS_o_ai void 1264 vec_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. 1269 static inline __ATTRS_o_ai void 1270 vec_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. 1275 static inline __ATTRS_o_ai void 1276 vec_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 1282 extern __ATTRS_o vector signed char 1283 vec_load_bndry(const signed char *__ptr, unsigned short __len) 1284 __constant_pow2_range(__len, 64, 4096); 1285 1286 extern __ATTRS_o vector unsigned char 1287 vec_load_bndry(const unsigned char *__ptr, unsigned short __len) 1288 __constant_pow2_range(__len, 64, 4096); 1289 1290 extern __ATTRS_o vector signed short 1291 vec_load_bndry(const signed short *__ptr, unsigned short __len) 1292 __constant_pow2_range(__len, 64, 4096); 1293 1294 extern __ATTRS_o vector unsigned short 1295 vec_load_bndry(const unsigned short *__ptr, unsigned short __len) 1296 __constant_pow2_range(__len, 64, 4096); 1297 1298 extern __ATTRS_o vector signed int 1299 vec_load_bndry(const signed int *__ptr, unsigned short __len) 1300 __constant_pow2_range(__len, 64, 4096); 1301 1302 extern __ATTRS_o vector unsigned int 1303 vec_load_bndry(const unsigned int *__ptr, unsigned short __len) 1304 __constant_pow2_range(__len, 64, 4096); 1305 1306 extern __ATTRS_o vector signed long long 1307 vec_load_bndry(const signed long long *__ptr, unsigned short __len) 1308 __constant_pow2_range(__len, 64, 4096); 1309 1310 extern __ATTRS_o vector unsigned long long 1311 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len) 1312 __constant_pow2_range(__len, 64, 4096); 1313 1314 #if __ARCH__ >= 12 1315 extern __ATTRS_o vector float 1316 vec_load_bndry(const float *__ptr, unsigned short __len) 1317 __constant_pow2_range(__len, 64, 4096); 1318 #endif 1319 1320 extern __ATTRS_o vector double 1321 vec_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 1335 static inline __ATTRS_o_ai vector signed char 1336 vec_load_len(const signed char *__ptr, unsigned int __len) { 1337 return (vector signed char)__builtin_s390_vll(__len, __ptr); 1338 } 1339 1340 static inline __ATTRS_o_ai vector unsigned char 1341 vec_load_len(const unsigned char *__ptr, unsigned int __len) { 1342 return (vector unsigned char)__builtin_s390_vll(__len, __ptr); 1343 } 1344 1345 static inline __ATTRS_o_ai vector signed short 1346 vec_load_len(const signed short *__ptr, unsigned int __len) { 1347 return (vector signed short)__builtin_s390_vll(__len, __ptr); 1348 } 1349 1350 static inline __ATTRS_o_ai vector unsigned short 1351 vec_load_len(const unsigned short *__ptr, unsigned int __len) { 1352 return (vector unsigned short)__builtin_s390_vll(__len, __ptr); 1353 } 1354 1355 static inline __ATTRS_o_ai vector signed int 1356 vec_load_len(const signed int *__ptr, unsigned int __len) { 1357 return (vector signed int)__builtin_s390_vll(__len, __ptr); 1358 } 1359 1360 static inline __ATTRS_o_ai vector unsigned int 1361 vec_load_len(const unsigned int *__ptr, unsigned int __len) { 1362 return (vector unsigned int)__builtin_s390_vll(__len, __ptr); 1363 } 1364 1365 static inline __ATTRS_o_ai vector signed long long 1366 vec_load_len(const signed long long *__ptr, unsigned int __len) { 1367 return (vector signed long long)__builtin_s390_vll(__len, __ptr); 1368 } 1369 1370 static inline __ATTRS_o_ai vector unsigned long long 1371 vec_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 1376 static inline __ATTRS_o_ai vector float 1377 vec_load_len(const float *__ptr, unsigned int __len) { 1378 return (vector float)__builtin_s390_vll(__len, __ptr); 1379 } 1380 #endif 1381 1382 static inline __ATTRS_o_ai vector double 1383 vec_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 1390 static inline __ATTRS_ai vector unsigned char 1391 vec_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 1398 static inline __ATTRS_o_ai void 1399 vec_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 1404 static inline __ATTRS_o_ai void 1405 vec_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 1410 static inline __ATTRS_o_ai void 1411 vec_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 1416 static inline __ATTRS_o_ai void 1417 vec_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 1422 static inline __ATTRS_o_ai void 1423 vec_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 1428 static inline __ATTRS_o_ai void 1429 vec_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 1434 static inline __ATTRS_o_ai void 1435 vec_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 1440 static inline __ATTRS_o_ai void 1441 vec_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 1447 static inline __ATTRS_o_ai void 1448 vec_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 1454 static inline __ATTRS_o_ai void 1455 vec_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 1463 static inline __ATTRS_ai void 1464 vec_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 1472 static inline __ATTRS_o_ai vector signed long long 1473 vec_load_pair(signed long long __a, signed long long __b) { 1474 return (vector signed long long)(__a, __b); 1475 } 1476 1477 static inline __ATTRS_o_ai vector unsigned long long 1478 vec_load_pair(unsigned long long __a, unsigned long long __b) { 1479 return (vector unsigned long long)(__a, __b); 1480 } 1481 1482 /*-- vec_genmask ------------------------------------------------------------*/ 1483 1484 static inline __ATTRS_o_ai vector unsigned char 1485 vec_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 1508 static inline __ATTRS_o_ai vector unsigned char 1509 vec_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 1521 static inline __ATTRS_o_ai vector unsigned short 1522 vec_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 1534 static inline __ATTRS_o_ai vector unsigned int 1535 vec_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 1547 static inline __ATTRS_o_ai vector unsigned long long 1548 vec_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 1562 static inline __ATTRS_o_ai vector signed char 1563 vec_splat(vector signed char __vec, int __index) 1564 __constant_range(__index, 0, 15) { 1565 return (vector signed char)__vec[__index]; 1566 } 1567 1568 static inline __ATTRS_o_ai vector bool char 1569 vec_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 1574 static inline __ATTRS_o_ai vector unsigned char 1575 vec_splat(vector unsigned char __vec, int __index) 1576 __constant_range(__index, 0, 15) { 1577 return (vector unsigned char)__vec[__index]; 1578 } 1579 1580 static inline __ATTRS_o_ai vector signed short 1581 vec_splat(vector signed short __vec, int __index) 1582 __constant_range(__index, 0, 7) { 1583 return (vector signed short)__vec[__index]; 1584 } 1585 1586 static inline __ATTRS_o_ai vector bool short 1587 vec_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 1592 static inline __ATTRS_o_ai vector unsigned short 1593 vec_splat(vector unsigned short __vec, int __index) 1594 __constant_range(__index, 0, 7) { 1595 return (vector unsigned short)__vec[__index]; 1596 } 1597 1598 static inline __ATTRS_o_ai vector signed int 1599 vec_splat(vector signed int __vec, int __index) 1600 __constant_range(__index, 0, 3) { 1601 return (vector signed int)__vec[__index]; 1602 } 1603 1604 static inline __ATTRS_o_ai vector bool int 1605 vec_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 1610 static inline __ATTRS_o_ai vector unsigned int 1611 vec_splat(vector unsigned int __vec, int __index) 1612 __constant_range(__index, 0, 3) { 1613 return (vector unsigned int)__vec[__index]; 1614 } 1615 1616 static inline __ATTRS_o_ai vector signed long long 1617 vec_splat(vector signed long long __vec, int __index) 1618 __constant_range(__index, 0, 1) { 1619 return (vector signed long long)__vec[__index]; 1620 } 1621 1622 static inline __ATTRS_o_ai vector bool long long 1623 vec_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 1628 static inline __ATTRS_o_ai vector unsigned long long 1629 vec_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 1635 static inline __ATTRS_o_ai vector float 1636 vec_splat(vector float __vec, int __index) 1637 __constant_range(__index, 0, 3) { 1638 return (vector float)__vec[__index]; 1639 } 1640 #endif 1641 1642 static inline __ATTRS_o_ai vector double 1643 vec_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 1650 static inline __ATTRS_ai vector signed char 1651 vec_splat_s8(signed char __scalar) 1652 __constant(__scalar) { 1653 return (vector signed char)__scalar; 1654 } 1655 1656 static inline __ATTRS_ai vector signed short 1657 vec_splat_s16(signed short __scalar) 1658 __constant(__scalar) { 1659 return (vector signed short)__scalar; 1660 } 1661 1662 static inline __ATTRS_ai vector signed int 1663 vec_splat_s32(signed short __scalar) 1664 __constant(__scalar) { 1665 return (vector signed int)(signed int)__scalar; 1666 } 1667 1668 static inline __ATTRS_ai vector signed long long 1669 vec_splat_s64(signed short __scalar) 1670 __constant(__scalar) { 1671 return (vector signed long long)(signed long)__scalar; 1672 } 1673 1674 /*-- vec_splat_u* -----------------------------------------------------------*/ 1675 1676 static inline __ATTRS_ai vector unsigned char 1677 vec_splat_u8(unsigned char __scalar) 1678 __constant(__scalar) { 1679 return (vector unsigned char)__scalar; 1680 } 1681 1682 static inline __ATTRS_ai vector unsigned short 1683 vec_splat_u16(unsigned short __scalar) 1684 __constant(__scalar) { 1685 return (vector unsigned short)__scalar; 1686 } 1687 1688 static inline __ATTRS_ai vector unsigned int 1689 vec_splat_u32(signed short __scalar) 1690 __constant(__scalar) { 1691 return (vector unsigned int)(signed int)__scalar; 1692 } 1693 1694 static inline __ATTRS_ai vector unsigned long long 1695 vec_splat_u64(signed short __scalar) 1696 __constant(__scalar) { 1697 return (vector unsigned long long)(signed long long)__scalar; 1698 } 1699 1700 /*-- vec_splats -------------------------------------------------------------*/ 1701 1702 static inline __ATTRS_o_ai vector signed char 1703 vec_splats(signed char __scalar) { 1704 return (vector signed char)__scalar; 1705 } 1706 1707 static inline __ATTRS_o_ai vector unsigned char 1708 vec_splats(unsigned char __scalar) { 1709 return (vector unsigned char)__scalar; 1710 } 1711 1712 static inline __ATTRS_o_ai vector signed short 1713 vec_splats(signed short __scalar) { 1714 return (vector signed short)__scalar; 1715 } 1716 1717 static inline __ATTRS_o_ai vector unsigned short 1718 vec_splats(unsigned short __scalar) { 1719 return (vector unsigned short)__scalar; 1720 } 1721 1722 static inline __ATTRS_o_ai vector signed int 1723 vec_splats(signed int __scalar) { 1724 return (vector signed int)__scalar; 1725 } 1726 1727 static inline __ATTRS_o_ai vector unsigned int 1728 vec_splats(unsigned int __scalar) { 1729 return (vector unsigned int)__scalar; 1730 } 1731 1732 static inline __ATTRS_o_ai vector signed long long 1733 vec_splats(signed long long __scalar) { 1734 return (vector signed long long)__scalar; 1735 } 1736 1737 static inline __ATTRS_o_ai vector unsigned long long 1738 vec_splats(unsigned long long __scalar) { 1739 return (vector unsigned long long)__scalar; 1740 } 1741 1742 #if __ARCH__ >= 12 1743 static inline __ATTRS_o_ai vector float 1744 vec_splats(float __scalar) { 1745 return (vector float)__scalar; 1746 } 1747 #endif 1748 1749 static inline __ATTRS_o_ai vector double 1750 vec_splats(double __scalar) { 1751 return (vector double)__scalar; 1752 } 1753 1754 /*-- vec_extend_s64 ---------------------------------------------------------*/ 1755 1756 static inline __ATTRS_o_ai vector signed long long 1757 vec_extend_s64(vector signed char __a) { 1758 return (vector signed long long)(__a[7], __a[15]); 1759 } 1760 1761 static inline __ATTRS_o_ai vector signed long long 1762 vec_extend_s64(vector signed short __a) { 1763 return (vector signed long long)(__a[3], __a[7]); 1764 } 1765 1766 static inline __ATTRS_o_ai vector signed long long 1767 vec_extend_s64(vector signed int __a) { 1768 return (vector signed long long)(__a[1], __a[3]); 1769 } 1770 1771 /*-- vec_mergeh -------------------------------------------------------------*/ 1772 1773 static inline __ATTRS_o_ai vector signed char 1774 vec_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 1780 static inline __ATTRS_o_ai vector bool char 1781 vec_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 1787 static inline __ATTRS_o_ai vector unsigned char 1788 vec_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 1794 static inline __ATTRS_o_ai vector signed short 1795 vec_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 1800 static inline __ATTRS_o_ai vector bool short 1801 vec_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 1806 static inline __ATTRS_o_ai vector unsigned short 1807 vec_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 1812 static inline __ATTRS_o_ai vector signed int 1813 vec_mergeh(vector signed int __a, vector signed int __b) { 1814 return (vector signed int)(__a[0], __b[0], __a[1], __b[1]); 1815 } 1816 1817 static inline __ATTRS_o_ai vector bool int 1818 vec_mergeh(vector bool int __a, vector bool int __b) { 1819 return (vector bool int)(__a[0], __b[0], __a[1], __b[1]); 1820 } 1821 1822 static inline __ATTRS_o_ai vector unsigned int 1823 vec_mergeh(vector unsigned int __a, vector unsigned int __b) { 1824 return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]); 1825 } 1826 1827 static inline __ATTRS_o_ai vector signed long long 1828 vec_mergeh(vector signed long long __a, vector signed long long __b) { 1829 return (vector signed long long)(__a[0], __b[0]); 1830 } 1831 1832 static inline __ATTRS_o_ai vector bool long long 1833 vec_mergeh(vector bool long long __a, vector bool long long __b) { 1834 return (vector bool long long)(__a[0], __b[0]); 1835 } 1836 1837 static inline __ATTRS_o_ai vector unsigned long long 1838 vec_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 1843 static inline __ATTRS_o_ai vector float 1844 vec_mergeh(vector float __a, vector float __b) { 1845 return (vector float)(__a[0], __b[0], __a[1], __b[1]); 1846 } 1847 #endif 1848 1849 static inline __ATTRS_o_ai vector double 1850 vec_mergeh(vector double __a, vector double __b) { 1851 return (vector double)(__a[0], __b[0]); 1852 } 1853 1854 /*-- vec_mergel -------------------------------------------------------------*/ 1855 1856 static inline __ATTRS_o_ai vector signed char 1857 vec_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 1863 static inline __ATTRS_o_ai vector bool char 1864 vec_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 1870 static inline __ATTRS_o_ai vector unsigned char 1871 vec_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 1877 static inline __ATTRS_o_ai vector signed short 1878 vec_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 1883 static inline __ATTRS_o_ai vector bool short 1884 vec_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 1889 static inline __ATTRS_o_ai vector unsigned short 1890 vec_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 1895 static inline __ATTRS_o_ai vector signed int 1896 vec_mergel(vector signed int __a, vector signed int __b) { 1897 return (vector signed int)(__a[2], __b[2], __a[3], __b[3]); 1898 } 1899 1900 static inline __ATTRS_o_ai vector bool int 1901 vec_mergel(vector bool int __a, vector bool int __b) { 1902 return (vector bool int)(__a[2], __b[2], __a[3], __b[3]); 1903 } 1904 1905 static inline __ATTRS_o_ai vector unsigned int 1906 vec_mergel(vector unsigned int __a, vector unsigned int __b) { 1907 return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]); 1908 } 1909 1910 static inline __ATTRS_o_ai vector signed long long 1911 vec_mergel(vector signed long long __a, vector signed long long __b) { 1912 return (vector signed long long)(__a[1], __b[1]); 1913 } 1914 1915 static inline __ATTRS_o_ai vector bool long long 1916 vec_mergel(vector bool long long __a, vector bool long long __b) { 1917 return (vector bool long long)(__a[1], __b[1]); 1918 } 1919 1920 static inline __ATTRS_o_ai vector unsigned long long 1921 vec_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 1926 static inline __ATTRS_o_ai vector float 1927 vec_mergel(vector float __a, vector float __b) { 1928 return (vector float)(__a[2], __b[2], __a[3], __b[3]); 1929 } 1930 #endif 1931 1932 static inline __ATTRS_o_ai vector double 1933 vec_mergel(vector double __a, vector double __b) { 1934 return (vector double)(__a[1], __b[1]); 1935 } 1936 1937 /*-- vec_pack ---------------------------------------------------------------*/ 1938 1939 static inline __ATTRS_o_ai vector signed char 1940 vec_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 1948 static inline __ATTRS_o_ai vector bool char 1949 vec_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 1957 static inline __ATTRS_o_ai vector unsigned char 1958 vec_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 1966 static inline __ATTRS_o_ai vector signed short 1967 vec_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 1975 static inline __ATTRS_o_ai vector bool short 1976 vec_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 1984 static inline __ATTRS_o_ai vector unsigned short 1985 vec_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 1993 static inline __ATTRS_o_ai vector signed int 1994 vec_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 2000 static inline __ATTRS_o_ai vector bool int 2001 vec_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 2007 static inline __ATTRS_o_ai vector unsigned int 2008 vec_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 2016 static inline __ATTRS_o_ai vector signed char 2017 vec_packs(vector signed short __a, vector signed short __b) { 2018 return __builtin_s390_vpksh(__a, __b); 2019 } 2020 2021 static inline __ATTRS_o_ai vector unsigned char 2022 vec_packs(vector unsigned short __a, vector unsigned short __b) { 2023 return __builtin_s390_vpklsh(__a, __b); 2024 } 2025 2026 static inline __ATTRS_o_ai vector signed short 2027 vec_packs(vector signed int __a, vector signed int __b) { 2028 return __builtin_s390_vpksf(__a, __b); 2029 } 2030 2031 static inline __ATTRS_o_ai vector unsigned short 2032 vec_packs(vector unsigned int __a, vector unsigned int __b) { 2033 return __builtin_s390_vpklsf(__a, __b); 2034 } 2035 2036 static inline __ATTRS_o_ai vector signed int 2037 vec_packs(vector signed long long __a, vector signed long long __b) { 2038 return __builtin_s390_vpksg(__a, __b); 2039 } 2040 2041 static inline __ATTRS_o_ai vector unsigned int 2042 vec_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 2048 static inline __ATTRS_o_ai vector signed char 2049 vec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) { 2050 return __builtin_s390_vpkshs(__a, __b, __cc); 2051 } 2052 2053 static inline __ATTRS_o_ai vector unsigned char 2054 vec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) { 2055 return __builtin_s390_vpklshs(__a, __b, __cc); 2056 } 2057 2058 static inline __ATTRS_o_ai vector signed short 2059 vec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) { 2060 return __builtin_s390_vpksfs(__a, __b, __cc); 2061 } 2062 2063 static inline __ATTRS_o_ai vector unsigned short 2064 vec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) { 2065 return __builtin_s390_vpklsfs(__a, __b, __cc); 2066 } 2067 2068 static inline __ATTRS_o_ai vector signed int 2069 vec_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 2074 static inline __ATTRS_o_ai vector unsigned int 2075 vec_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 2082 static inline __ATTRS_o_ai vector unsigned char 2083 vec_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 2090 static inline __ATTRS_o_ai vector unsigned char 2091 vec_packsu(vector unsigned short __a, vector unsigned short __b) { 2092 return __builtin_s390_vpklsh(__a, __b); 2093 } 2094 2095 static inline __ATTRS_o_ai vector unsigned short 2096 vec_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 2103 static inline __ATTRS_o_ai vector unsigned short 2104 vec_packsu(vector unsigned int __a, vector unsigned int __b) { 2105 return __builtin_s390_vpklsf(__a, __b); 2106 } 2107 2108 static inline __ATTRS_o_ai vector unsigned int 2109 vec_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 2118 static inline __ATTRS_o_ai vector unsigned int 2119 vec_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 2125 static inline __ATTRS_o_ai vector unsigned char 2126 vec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) { 2127 return __builtin_s390_vpklshs(__a, __b, __cc); 2128 } 2129 2130 static inline __ATTRS_o_ai vector unsigned short 2131 vec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) { 2132 return __builtin_s390_vpklsfs(__a, __b, __cc); 2133 } 2134 2135 static inline __ATTRS_o_ai vector unsigned int 2136 vec_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 2143 static inline __ATTRS_o_ai vector signed short 2144 vec_unpackh(vector signed char __a) { 2145 return __builtin_s390_vuphb(__a); 2146 } 2147 2148 static inline __ATTRS_o_ai vector bool short 2149 vec_unpackh(vector bool char __a) { 2150 return (vector bool short)__builtin_s390_vuphb((vector signed char)__a); 2151 } 2152 2153 static inline __ATTRS_o_ai vector unsigned short 2154 vec_unpackh(vector unsigned char __a) { 2155 return __builtin_s390_vuplhb(__a); 2156 } 2157 2158 static inline __ATTRS_o_ai vector signed int 2159 vec_unpackh(vector signed short __a) { 2160 return __builtin_s390_vuphh(__a); 2161 } 2162 2163 static inline __ATTRS_o_ai vector bool int 2164 vec_unpackh(vector bool short __a) { 2165 return (vector bool int)__builtin_s390_vuphh((vector signed short)__a); 2166 } 2167 2168 static inline __ATTRS_o_ai vector unsigned int 2169 vec_unpackh(vector unsigned short __a) { 2170 return __builtin_s390_vuplhh(__a); 2171 } 2172 2173 static inline __ATTRS_o_ai vector signed long long 2174 vec_unpackh(vector signed int __a) { 2175 return __builtin_s390_vuphf(__a); 2176 } 2177 2178 static inline __ATTRS_o_ai vector bool long long 2179 vec_unpackh(vector bool int __a) { 2180 return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a); 2181 } 2182 2183 static inline __ATTRS_o_ai vector unsigned long long 2184 vec_unpackh(vector unsigned int __a) { 2185 return __builtin_s390_vuplhf(__a); 2186 } 2187 2188 /*-- vec_unpackl ------------------------------------------------------------*/ 2189 2190 static inline __ATTRS_o_ai vector signed short 2191 vec_unpackl(vector signed char __a) { 2192 return __builtin_s390_vuplb(__a); 2193 } 2194 2195 static inline __ATTRS_o_ai vector bool short 2196 vec_unpackl(vector bool char __a) { 2197 return (vector bool short)__builtin_s390_vuplb((vector signed char)__a); 2198 } 2199 2200 static inline __ATTRS_o_ai vector unsigned short 2201 vec_unpackl(vector unsigned char __a) { 2202 return __builtin_s390_vupllb(__a); 2203 } 2204 2205 static inline __ATTRS_o_ai vector signed int 2206 vec_unpackl(vector signed short __a) { 2207 return __builtin_s390_vuplhw(__a); 2208 } 2209 2210 static inline __ATTRS_o_ai vector bool int 2211 vec_unpackl(vector bool short __a) { 2212 return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a); 2213 } 2214 2215 static inline __ATTRS_o_ai vector unsigned int 2216 vec_unpackl(vector unsigned short __a) { 2217 return __builtin_s390_vupllh(__a); 2218 } 2219 2220 static inline __ATTRS_o_ai vector signed long long 2221 vec_unpackl(vector signed int __a) { 2222 return __builtin_s390_vuplf(__a); 2223 } 2224 2225 static inline __ATTRS_o_ai vector bool long long 2226 vec_unpackl(vector bool int __a) { 2227 return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a); 2228 } 2229 2230 static inline __ATTRS_o_ai vector unsigned long long 2231 vec_unpackl(vector unsigned int __a) { 2232 return __builtin_s390_vupllf(__a); 2233 } 2234 2235 /*-- vec_cmpeq --------------------------------------------------------------*/ 2236 2237 static inline __ATTRS_o_ai vector bool char 2238 vec_cmpeq(vector bool char __a, vector bool char __b) { 2239 return (vector bool char)(__a == __b); 2240 } 2241 2242 static inline __ATTRS_o_ai vector bool char 2243 vec_cmpeq(vector signed char __a, vector signed char __b) { 2244 return (vector bool char)(__a == __b); 2245 } 2246 2247 static inline __ATTRS_o_ai vector bool char 2248 vec_cmpeq(vector unsigned char __a, vector unsigned char __b) { 2249 return (vector bool char)(__a == __b); 2250 } 2251 2252 static inline __ATTRS_o_ai vector bool short 2253 vec_cmpeq(vector bool short __a, vector bool short __b) { 2254 return (vector bool short)(__a == __b); 2255 } 2256 2257 static inline __ATTRS_o_ai vector bool short 2258 vec_cmpeq(vector signed short __a, vector signed short __b) { 2259 return (vector bool short)(__a == __b); 2260 } 2261 2262 static inline __ATTRS_o_ai vector bool short 2263 vec_cmpeq(vector unsigned short __a, vector unsigned short __b) { 2264 return (vector bool short)(__a == __b); 2265 } 2266 2267 static inline __ATTRS_o_ai vector bool int 2268 vec_cmpeq(vector bool int __a, vector bool int __b) { 2269 return (vector bool int)(__a == __b); 2270 } 2271 2272 static inline __ATTRS_o_ai vector bool int 2273 vec_cmpeq(vector signed int __a, vector signed int __b) { 2274 return (vector bool int)(__a == __b); 2275 } 2276 2277 static inline __ATTRS_o_ai vector bool int 2278 vec_cmpeq(vector unsigned int __a, vector unsigned int __b) { 2279 return (vector bool int)(__a == __b); 2280 } 2281 2282 static inline __ATTRS_o_ai vector bool long long 2283 vec_cmpeq(vector bool long long __a, vector bool long long __b) { 2284 return (vector bool long long)(__a == __b); 2285 } 2286 2287 static inline __ATTRS_o_ai vector bool long long 2288 vec_cmpeq(vector signed long long __a, vector signed long long __b) { 2289 return (vector bool long long)(__a == __b); 2290 } 2291 2292 static inline __ATTRS_o_ai vector bool long long 2293 vec_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 2298 static inline __ATTRS_o_ai vector bool int 2299 vec_cmpeq(vector float __a, vector float __b) { 2300 return (vector bool int)(__a == __b); 2301 } 2302 #endif 2303 2304 static inline __ATTRS_o_ai vector bool long long 2305 vec_cmpeq(vector double __a, vector double __b) { 2306 return (vector bool long long)(__a == __b); 2307 } 2308 2309 /*-- vec_cmpge --------------------------------------------------------------*/ 2310 2311 static inline __ATTRS_o_ai vector bool char 2312 vec_cmpge(vector signed char __a, vector signed char __b) { 2313 return (vector bool char)(__a >= __b); 2314 } 2315 2316 static inline __ATTRS_o_ai vector bool char 2317 vec_cmpge(vector unsigned char __a, vector unsigned char __b) { 2318 return (vector bool char)(__a >= __b); 2319 } 2320 2321 static inline __ATTRS_o_ai vector bool short 2322 vec_cmpge(vector signed short __a, vector signed short __b) { 2323 return (vector bool short)(__a >= __b); 2324 } 2325 2326 static inline __ATTRS_o_ai vector bool short 2327 vec_cmpge(vector unsigned short __a, vector unsigned short __b) { 2328 return (vector bool short)(__a >= __b); 2329 } 2330 2331 static inline __ATTRS_o_ai vector bool int 2332 vec_cmpge(vector signed int __a, vector signed int __b) { 2333 return (vector bool int)(__a >= __b); 2334 } 2335 2336 static inline __ATTRS_o_ai vector bool int 2337 vec_cmpge(vector unsigned int __a, vector unsigned int __b) { 2338 return (vector bool int)(__a >= __b); 2339 } 2340 2341 static inline __ATTRS_o_ai vector bool long long 2342 vec_cmpge(vector signed long long __a, vector signed long long __b) { 2343 return (vector bool long long)(__a >= __b); 2344 } 2345 2346 static inline __ATTRS_o_ai vector bool long long 2347 vec_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 2352 static inline __ATTRS_o_ai vector bool int 2353 vec_cmpge(vector float __a, vector float __b) { 2354 return (vector bool int)(__a >= __b); 2355 } 2356 #endif 2357 2358 static inline __ATTRS_o_ai vector bool long long 2359 vec_cmpge(vector double __a, vector double __b) { 2360 return (vector bool long long)(__a >= __b); 2361 } 2362 2363 /*-- vec_cmpgt --------------------------------------------------------------*/ 2364 2365 static inline __ATTRS_o_ai vector bool char 2366 vec_cmpgt(vector signed char __a, vector signed char __b) { 2367 return (vector bool char)(__a > __b); 2368 } 2369 2370 static inline __ATTRS_o_ai vector bool char 2371 vec_cmpgt(vector unsigned char __a, vector unsigned char __b) { 2372 return (vector bool char)(__a > __b); 2373 } 2374 2375 static inline __ATTRS_o_ai vector bool short 2376 vec_cmpgt(vector signed short __a, vector signed short __b) { 2377 return (vector bool short)(__a > __b); 2378 } 2379 2380 static inline __ATTRS_o_ai vector bool short 2381 vec_cmpgt(vector unsigned short __a, vector unsigned short __b) { 2382 return (vector bool short)(__a > __b); 2383 } 2384 2385 static inline __ATTRS_o_ai vector bool int 2386 vec_cmpgt(vector signed int __a, vector signed int __b) { 2387 return (vector bool int)(__a > __b); 2388 } 2389 2390 static inline __ATTRS_o_ai vector bool int 2391 vec_cmpgt(vector unsigned int __a, vector unsigned int __b) { 2392 return (vector bool int)(__a > __b); 2393 } 2394 2395 static inline __ATTRS_o_ai vector bool long long 2396 vec_cmpgt(vector signed long long __a, vector signed long long __b) { 2397 return (vector bool long long)(__a > __b); 2398 } 2399 2400 static inline __ATTRS_o_ai vector bool long long 2401 vec_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 2406 static inline __ATTRS_o_ai vector bool int 2407 vec_cmpgt(vector float __a, vector float __b) { 2408 return (vector bool int)(__a > __b); 2409 } 2410 #endif 2411 2412 static inline __ATTRS_o_ai vector bool long long 2413 vec_cmpgt(vector double __a, vector double __b) { 2414 return (vector bool long long)(__a > __b); 2415 } 2416 2417 /*-- vec_cmple --------------------------------------------------------------*/ 2418 2419 static inline __ATTRS_o_ai vector bool char 2420 vec_cmple(vector signed char __a, vector signed char __b) { 2421 return (vector bool char)(__a <= __b); 2422 } 2423 2424 static inline __ATTRS_o_ai vector bool char 2425 vec_cmple(vector unsigned char __a, vector unsigned char __b) { 2426 return (vector bool char)(__a <= __b); 2427 } 2428 2429 static inline __ATTRS_o_ai vector bool short 2430 vec_cmple(vector signed short __a, vector signed short __b) { 2431 return (vector bool short)(__a <= __b); 2432 } 2433 2434 static inline __ATTRS_o_ai vector bool short 2435 vec_cmple(vector unsigned short __a, vector unsigned short __b) { 2436 return (vector bool short)(__a <= __b); 2437 } 2438 2439 static inline __ATTRS_o_ai vector bool int 2440 vec_cmple(vector signed int __a, vector signed int __b) { 2441 return (vector bool int)(__a <= __b); 2442 } 2443 2444 static inline __ATTRS_o_ai vector bool int 2445 vec_cmple(vector unsigned int __a, vector unsigned int __b) { 2446 return (vector bool int)(__a <= __b); 2447 } 2448 2449 static inline __ATTRS_o_ai vector bool long long 2450 vec_cmple(vector signed long long __a, vector signed long long __b) { 2451 return (vector bool long long)(__a <= __b); 2452 } 2453 2454 static inline __ATTRS_o_ai vector bool long long 2455 vec_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 2460 static inline __ATTRS_o_ai vector bool int 2461 vec_cmple(vector float __a, vector float __b) { 2462 return (vector bool int)(__a <= __b); 2463 } 2464 #endif 2465 2466 static inline __ATTRS_o_ai vector bool long long 2467 vec_cmple(vector double __a, vector double __b) { 2468 return (vector bool long long)(__a <= __b); 2469 } 2470 2471 /*-- vec_cmplt --------------------------------------------------------------*/ 2472 2473 static inline __ATTRS_o_ai vector bool char 2474 vec_cmplt(vector signed char __a, vector signed char __b) { 2475 return (vector bool char)(__a < __b); 2476 } 2477 2478 static inline __ATTRS_o_ai vector bool char 2479 vec_cmplt(vector unsigned char __a, vector unsigned char __b) { 2480 return (vector bool char)(__a < __b); 2481 } 2482 2483 static inline __ATTRS_o_ai vector bool short 2484 vec_cmplt(vector signed short __a, vector signed short __b) { 2485 return (vector bool short)(__a < __b); 2486 } 2487 2488 static inline __ATTRS_o_ai vector bool short 2489 vec_cmplt(vector unsigned short __a, vector unsigned short __b) { 2490 return (vector bool short)(__a < __b); 2491 } 2492 2493 static inline __ATTRS_o_ai vector bool int 2494 vec_cmplt(vector signed int __a, vector signed int __b) { 2495 return (vector bool int)(__a < __b); 2496 } 2497 2498 static inline __ATTRS_o_ai vector bool int 2499 vec_cmplt(vector unsigned int __a, vector unsigned int __b) { 2500 return (vector bool int)(__a < __b); 2501 } 2502 2503 static inline __ATTRS_o_ai vector bool long long 2504 vec_cmplt(vector signed long long __a, vector signed long long __b) { 2505 return (vector bool long long)(__a < __b); 2506 } 2507 2508 static inline __ATTRS_o_ai vector bool long long 2509 vec_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 2514 static inline __ATTRS_o_ai vector bool int 2515 vec_cmplt(vector float __a, vector float __b) { 2516 return (vector bool int)(__a < __b); 2517 } 2518 #endif 2519 2520 static inline __ATTRS_o_ai vector bool long long 2521 vec_cmplt(vector double __a, vector double __b) { 2522 return (vector bool long long)(__a < __b); 2523 } 2524 2525 /*-- vec_all_eq -------------------------------------------------------------*/ 2526 2527 static inline __ATTRS_o_ai int 2528 vec_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. 2535 static inline __ATTRS_o_ai int 2536 vec_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. 2543 static inline __ATTRS_o_ai int 2544 vec_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 2550 static inline __ATTRS_o_ai int 2551 vec_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. 2559 static inline __ATTRS_o_ai int 2560 vec_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. 2568 static inline __ATTRS_o_ai int 2569 vec_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 2576 static inline __ATTRS_o_ai int 2577 vec_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 2584 static inline __ATTRS_o_ai int 2585 vec_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. 2592 static inline __ATTRS_o_ai int 2593 vec_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. 2600 static inline __ATTRS_o_ai int 2601 vec_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 2607 static inline __ATTRS_o_ai int 2608 vec_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. 2616 static inline __ATTRS_o_ai int 2617 vec_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. 2625 static inline __ATTRS_o_ai int 2626 vec_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 2633 static inline __ATTRS_o_ai int 2634 vec_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 2641 static inline __ATTRS_o_ai int 2642 vec_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. 2649 static inline __ATTRS_o_ai int 2650 vec_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. 2657 static inline __ATTRS_o_ai int 2658 vec_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 2664 static inline __ATTRS_o_ai int 2665 vec_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. 2673 static inline __ATTRS_o_ai int 2674 vec_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. 2682 static inline __ATTRS_o_ai int 2683 vec_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 2690 static inline __ATTRS_o_ai int 2691 vec_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 2698 static inline __ATTRS_o_ai int 2699 vec_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. 2706 static inline __ATTRS_o_ai int 2707 vec_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. 2714 static inline __ATTRS_o_ai int 2715 vec_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 2721 static inline __ATTRS_o_ai int 2722 vec_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. 2730 static inline __ATTRS_o_ai int 2731 vec_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. 2739 static inline __ATTRS_o_ai int 2740 vec_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 2747 static inline __ATTRS_o_ai int 2748 vec_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 2756 static inline __ATTRS_o_ai int 2757 vec_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 2764 static inline __ATTRS_o_ai int 2765 vec_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 2773 static inline __ATTRS_o_ai int 2774 vec_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. 2781 static inline __ATTRS_o_ai int 2782 vec_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. 2789 static inline __ATTRS_o_ai int 2790 vec_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 2796 static inline __ATTRS_o_ai int 2797 vec_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. 2805 static inline __ATTRS_o_ai int 2806 vec_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. 2814 static inline __ATTRS_o_ai int 2815 vec_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 2822 static inline __ATTRS_o_ai int 2823 vec_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 2830 static inline __ATTRS_o_ai int 2831 vec_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. 2838 static inline __ATTRS_o_ai int 2839 vec_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. 2846 static inline __ATTRS_o_ai int 2847 vec_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 2853 static inline __ATTRS_o_ai int 2854 vec_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. 2862 static inline __ATTRS_o_ai int 2863 vec_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. 2871 static inline __ATTRS_o_ai int 2872 vec_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 2879 static inline __ATTRS_o_ai int 2880 vec_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 2887 static inline __ATTRS_o_ai int 2888 vec_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. 2895 static inline __ATTRS_o_ai int 2896 vec_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. 2903 static inline __ATTRS_o_ai int 2904 vec_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 2910 static inline __ATTRS_o_ai int 2911 vec_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. 2919 static inline __ATTRS_o_ai int 2920 vec_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. 2928 static inline __ATTRS_o_ai int 2929 vec_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 2936 static inline __ATTRS_o_ai int 2937 vec_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 2944 static inline __ATTRS_o_ai int 2945 vec_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. 2952 static inline __ATTRS_o_ai int 2953 vec_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. 2960 static inline __ATTRS_o_ai int 2961 vec_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 2967 static inline __ATTRS_o_ai int 2968 vec_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. 2976 static inline __ATTRS_o_ai int 2977 vec_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. 2985 static inline __ATTRS_o_ai int 2986 vec_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 2993 static inline __ATTRS_o_ai int 2994 vec_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 3002 static inline __ATTRS_o_ai int 3003 vec_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 3010 static inline __ATTRS_o_ai int 3011 vec_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 3019 static inline __ATTRS_o_ai int 3020 vec_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. 3027 static inline __ATTRS_o_ai int 3028 vec_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. 3035 static inline __ATTRS_o_ai int 3036 vec_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 3042 static inline __ATTRS_o_ai int 3043 vec_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. 3050 static inline __ATTRS_o_ai int 3051 vec_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. 3058 static inline __ATTRS_o_ai int 3059 vec_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. 3066 static inline __ATTRS_o_ai int 3067 vec_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 3074 static inline __ATTRS_o_ai int 3075 vec_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. 3082 static inline __ATTRS_o_ai int 3083 vec_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. 3090 static inline __ATTRS_o_ai int 3091 vec_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 3097 static inline __ATTRS_o_ai int 3098 vec_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. 3105 static inline __ATTRS_o_ai int 3106 vec_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. 3113 static inline __ATTRS_o_ai int 3114 vec_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. 3121 static inline __ATTRS_o_ai int 3122 vec_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 3129 static inline __ATTRS_o_ai int 3130 vec_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. 3137 static inline __ATTRS_o_ai int 3138 vec_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. 3145 static inline __ATTRS_o_ai int 3146 vec_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 3152 static inline __ATTRS_o_ai int 3153 vec_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. 3160 static inline __ATTRS_o_ai int 3161 vec_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. 3168 static inline __ATTRS_o_ai int 3169 vec_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. 3176 static inline __ATTRS_o_ai int 3177 vec_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 3184 static inline __ATTRS_o_ai int 3185 vec_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. 3192 static inline __ATTRS_o_ai int 3193 vec_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. 3200 static inline __ATTRS_o_ai int 3201 vec_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 3207 static inline __ATTRS_o_ai int 3208 vec_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. 3215 static inline __ATTRS_o_ai int 3216 vec_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. 3223 static inline __ATTRS_o_ai int 3224 vec_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. 3231 static inline __ATTRS_o_ai int 3232 vec_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 3240 static inline __ATTRS_o_ai int 3241 vec_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 3248 static inline __ATTRS_o_ai int 3249 vec_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 3257 static inline __ATTRS_o_ai int 3258 vec_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. 3265 static inline __ATTRS_o_ai int 3266 vec_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. 3273 static inline __ATTRS_o_ai int 3274 vec_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 3280 static inline __ATTRS_o_ai int 3281 vec_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. 3288 static inline __ATTRS_o_ai int 3289 vec_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. 3296 static inline __ATTRS_o_ai int 3297 vec_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. 3304 static inline __ATTRS_o_ai int 3305 vec_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 3312 static inline __ATTRS_o_ai int 3313 vec_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. 3320 static inline __ATTRS_o_ai int 3321 vec_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. 3328 static inline __ATTRS_o_ai int 3329 vec_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 3335 static inline __ATTRS_o_ai int 3336 vec_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. 3343 static inline __ATTRS_o_ai int 3344 vec_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. 3351 static inline __ATTRS_o_ai int 3352 vec_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. 3359 static inline __ATTRS_o_ai int 3360 vec_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 3367 static inline __ATTRS_o_ai int 3368 vec_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. 3375 static inline __ATTRS_o_ai int 3376 vec_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. 3383 static inline __ATTRS_o_ai int 3384 vec_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 3390 static inline __ATTRS_o_ai int 3391 vec_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. 3398 static inline __ATTRS_o_ai int 3399 vec_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. 3406 static inline __ATTRS_o_ai int 3407 vec_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. 3414 static inline __ATTRS_o_ai int 3415 vec_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 3422 static inline __ATTRS_o_ai int 3423 vec_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. 3430 static inline __ATTRS_o_ai int 3431 vec_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. 3438 static inline __ATTRS_o_ai int 3439 vec_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 3445 static inline __ATTRS_o_ai int 3446 vec_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. 3453 static inline __ATTRS_o_ai int 3454 vec_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. 3461 static inline __ATTRS_o_ai int 3462 vec_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. 3469 static inline __ATTRS_o_ai int 3470 vec_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 3478 static inline __ATTRS_o_ai int 3479 vec_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 3486 static inline __ATTRS_o_ai int 3487 vec_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 3495 static inline __ATTRS_o_ai int 3496 vec_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. 3503 static inline __ATTRS_o_ai int 3504 vec_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. 3511 static inline __ATTRS_o_ai int 3512 vec_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 3518 static inline __ATTRS_o_ai int 3519 vec_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. 3526 static inline __ATTRS_o_ai int 3527 vec_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. 3534 static inline __ATTRS_o_ai int 3535 vec_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. 3542 static inline __ATTRS_o_ai int 3543 vec_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 3550 static inline __ATTRS_o_ai int 3551 vec_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. 3558 static inline __ATTRS_o_ai int 3559 vec_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. 3566 static inline __ATTRS_o_ai int 3567 vec_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 3573 static inline __ATTRS_o_ai int 3574 vec_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. 3581 static inline __ATTRS_o_ai int 3582 vec_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. 3589 static inline __ATTRS_o_ai int 3590 vec_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. 3597 static inline __ATTRS_o_ai int 3598 vec_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 3605 static inline __ATTRS_o_ai int 3606 vec_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. 3613 static inline __ATTRS_o_ai int 3614 vec_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. 3621 static inline __ATTRS_o_ai int 3622 vec_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 3628 static inline __ATTRS_o_ai int 3629 vec_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. 3636 static inline __ATTRS_o_ai int 3637 vec_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. 3644 static inline __ATTRS_o_ai int 3645 vec_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. 3652 static inline __ATTRS_o_ai int 3653 vec_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 3660 static inline __ATTRS_o_ai int 3661 vec_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. 3668 static inline __ATTRS_o_ai int 3669 vec_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. 3676 static inline __ATTRS_o_ai int 3677 vec_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 3683 static inline __ATTRS_o_ai int 3684 vec_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. 3691 static inline __ATTRS_o_ai int 3692 vec_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. 3699 static inline __ATTRS_o_ai int 3700 vec_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. 3707 static inline __ATTRS_o_ai int 3708 vec_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 3716 static inline __ATTRS_o_ai int 3717 vec_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 3724 static inline __ATTRS_o_ai int 3725 vec_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 3733 static inline __ATTRS_o_ai int 3734 vec_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. 3741 static inline __ATTRS_o_ai int 3742 vec_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. 3749 static inline __ATTRS_o_ai int 3750 vec_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 3756 static inline __ATTRS_o_ai int 3757 vec_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. 3764 static inline __ATTRS_o_ai int 3765 vec_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. 3772 static inline __ATTRS_o_ai int 3773 vec_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. 3780 static inline __ATTRS_o_ai int 3781 vec_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 3788 static inline __ATTRS_o_ai int 3789 vec_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. 3796 static inline __ATTRS_o_ai int 3797 vec_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. 3804 static inline __ATTRS_o_ai int 3805 vec_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 3811 static inline __ATTRS_o_ai int 3812 vec_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. 3819 static inline __ATTRS_o_ai int 3820 vec_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. 3827 static inline __ATTRS_o_ai int 3828 vec_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. 3835 static inline __ATTRS_o_ai int 3836 vec_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 3843 static inline __ATTRS_o_ai int 3844 vec_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. 3851 static inline __ATTRS_o_ai int 3852 vec_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. 3859 static inline __ATTRS_o_ai int 3860 vec_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 3866 static inline __ATTRS_o_ai int 3867 vec_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. 3874 static inline __ATTRS_o_ai int 3875 vec_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. 3882 static inline __ATTRS_o_ai int 3883 vec_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. 3890 static inline __ATTRS_o_ai int 3891 vec_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 3898 static inline __ATTRS_o_ai int 3899 vec_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. 3906 static inline __ATTRS_o_ai int 3907 vec_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. 3914 static inline __ATTRS_o_ai int 3915 vec_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 3921 static inline __ATTRS_o_ai int 3922 vec_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. 3929 static inline __ATTRS_o_ai int 3930 vec_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. 3937 static inline __ATTRS_o_ai int 3938 vec_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. 3945 static inline __ATTRS_o_ai int 3946 vec_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 3954 static inline __ATTRS_o_ai int 3955 vec_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 3962 static inline __ATTRS_o_ai int 3963 vec_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 3972 static inline __ATTRS_o_ai int 3973 vec_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 3980 static inline __ATTRS_o_ai int 3981 vec_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 3990 static inline __ATTRS_o_ai int 3991 vec_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 3998 static inline __ATTRS_o_ai int 3999 vec_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 4008 static inline __ATTRS_o_ai int 4009 vec_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 4016 static inline __ATTRS_o_ai int 4017 vec_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 4026 static inline __ATTRS_o_ai int 4027 vec_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 4034 static inline __ATTRS_o_ai int 4035 vec_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 4044 static inline __ATTRS_o_ai int 4045 vec_all_nan(vector float __a) { 4046 int __cc; 4047 __builtin_s390_vftcisb(__a, 15, &__cc); 4048 return __cc == 0; 4049 } 4050 #endif 4051 4052 static inline __ATTRS_o_ai int 4053 vec_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 4062 static inline __ATTRS_o_ai int 4063 vec_all_numeric(vector float __a) { 4064 int __cc; 4065 __builtin_s390_vftcisb(__a, 15, &__cc); 4066 return __cc == 3; 4067 } 4068 #endif 4069 4070 static inline __ATTRS_o_ai int 4071 vec_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 4079 static inline __ATTRS_o_ai int 4080 vec_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. 4087 static inline __ATTRS_o_ai int 4088 vec_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. 4095 static inline __ATTRS_o_ai int 4096 vec_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 4102 static inline __ATTRS_o_ai int 4103 vec_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. 4111 static inline __ATTRS_o_ai int 4112 vec_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. 4120 static inline __ATTRS_o_ai int 4121 vec_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 4128 static inline __ATTRS_o_ai int 4129 vec_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 4136 static inline __ATTRS_o_ai int 4137 vec_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. 4144 static inline __ATTRS_o_ai int 4145 vec_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. 4152 static inline __ATTRS_o_ai int 4153 vec_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 4159 static inline __ATTRS_o_ai int 4160 vec_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. 4168 static inline __ATTRS_o_ai int 4169 vec_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. 4177 static inline __ATTRS_o_ai int 4178 vec_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 4185 static inline __ATTRS_o_ai int 4186 vec_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 4193 static inline __ATTRS_o_ai int 4194 vec_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. 4201 static inline __ATTRS_o_ai int 4202 vec_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. 4209 static inline __ATTRS_o_ai int 4210 vec_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 4216 static inline __ATTRS_o_ai int 4217 vec_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. 4225 static inline __ATTRS_o_ai int 4226 vec_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. 4234 static inline __ATTRS_o_ai int 4235 vec_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 4242 static inline __ATTRS_o_ai int 4243 vec_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 4250 static inline __ATTRS_o_ai int 4251 vec_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. 4258 static inline __ATTRS_o_ai int 4259 vec_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. 4266 static inline __ATTRS_o_ai int 4267 vec_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 4273 static inline __ATTRS_o_ai int 4274 vec_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. 4282 static inline __ATTRS_o_ai int 4283 vec_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. 4291 static inline __ATTRS_o_ai int 4292 vec_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 4299 static inline __ATTRS_o_ai int 4300 vec_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 4308 static inline __ATTRS_o_ai int 4309 vec_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 4316 static inline __ATTRS_o_ai int 4317 vec_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 4325 static inline __ATTRS_o_ai int 4326 vec_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. 4333 static inline __ATTRS_o_ai int 4334 vec_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. 4341 static inline __ATTRS_o_ai int 4342 vec_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 4348 static inline __ATTRS_o_ai int 4349 vec_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. 4357 static inline __ATTRS_o_ai int 4358 vec_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. 4366 static inline __ATTRS_o_ai int 4367 vec_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 4374 static inline __ATTRS_o_ai int 4375 vec_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 4382 static inline __ATTRS_o_ai int 4383 vec_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. 4390 static inline __ATTRS_o_ai int 4391 vec_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. 4398 static inline __ATTRS_o_ai int 4399 vec_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 4405 static inline __ATTRS_o_ai int 4406 vec_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. 4414 static inline __ATTRS_o_ai int 4415 vec_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. 4423 static inline __ATTRS_o_ai int 4424 vec_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 4431 static inline __ATTRS_o_ai int 4432 vec_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 4439 static inline __ATTRS_o_ai int 4440 vec_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. 4447 static inline __ATTRS_o_ai int 4448 vec_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. 4455 static inline __ATTRS_o_ai int 4456 vec_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 4462 static inline __ATTRS_o_ai int 4463 vec_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. 4471 static inline __ATTRS_o_ai int 4472 vec_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. 4480 static inline __ATTRS_o_ai int 4481 vec_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 4488 static inline __ATTRS_o_ai int 4489 vec_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 4496 static inline __ATTRS_o_ai int 4497 vec_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. 4504 static inline __ATTRS_o_ai int 4505 vec_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. 4512 static inline __ATTRS_o_ai int 4513 vec_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 4519 static inline __ATTRS_o_ai int 4520 vec_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. 4528 static inline __ATTRS_o_ai int 4529 vec_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. 4537 static inline __ATTRS_o_ai int 4538 vec_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 4545 static inline __ATTRS_o_ai int 4546 vec_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 4554 static inline __ATTRS_o_ai int 4555 vec_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 4562 static inline __ATTRS_o_ai int 4563 vec_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 4571 static inline __ATTRS_o_ai int 4572 vec_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. 4579 static inline __ATTRS_o_ai int 4580 vec_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. 4587 static inline __ATTRS_o_ai int 4588 vec_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 4594 static inline __ATTRS_o_ai int 4595 vec_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. 4602 static inline __ATTRS_o_ai int 4603 vec_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. 4610 static inline __ATTRS_o_ai int 4611 vec_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. 4618 static inline __ATTRS_o_ai int 4619 vec_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 4626 static inline __ATTRS_o_ai int 4627 vec_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. 4634 static inline __ATTRS_o_ai int 4635 vec_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. 4642 static inline __ATTRS_o_ai int 4643 vec_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 4649 static inline __ATTRS_o_ai int 4650 vec_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. 4657 static inline __ATTRS_o_ai int 4658 vec_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. 4665 static inline __ATTRS_o_ai int 4666 vec_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. 4673 static inline __ATTRS_o_ai int 4674 vec_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 4681 static inline __ATTRS_o_ai int 4682 vec_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. 4689 static inline __ATTRS_o_ai int 4690 vec_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. 4697 static inline __ATTRS_o_ai int 4698 vec_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 4704 static inline __ATTRS_o_ai int 4705 vec_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. 4712 static inline __ATTRS_o_ai int 4713 vec_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. 4720 static inline __ATTRS_o_ai int 4721 vec_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. 4728 static inline __ATTRS_o_ai int 4729 vec_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 4736 static inline __ATTRS_o_ai int 4737 vec_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. 4744 static inline __ATTRS_o_ai int 4745 vec_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. 4752 static inline __ATTRS_o_ai int 4753 vec_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 4759 static inline __ATTRS_o_ai int 4760 vec_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. 4767 static inline __ATTRS_o_ai int 4768 vec_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. 4775 static inline __ATTRS_o_ai int 4776 vec_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. 4783 static inline __ATTRS_o_ai int 4784 vec_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 4792 static inline __ATTRS_o_ai int 4793 vec_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 4800 static inline __ATTRS_o_ai int 4801 vec_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 4809 static inline __ATTRS_o_ai int 4810 vec_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. 4817 static inline __ATTRS_o_ai int 4818 vec_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. 4825 static inline __ATTRS_o_ai int 4826 vec_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 4832 static inline __ATTRS_o_ai int 4833 vec_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. 4840 static inline __ATTRS_o_ai int 4841 vec_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. 4848 static inline __ATTRS_o_ai int 4849 vec_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. 4856 static inline __ATTRS_o_ai int 4857 vec_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 4864 static inline __ATTRS_o_ai int 4865 vec_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. 4872 static inline __ATTRS_o_ai int 4873 vec_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. 4880 static inline __ATTRS_o_ai int 4881 vec_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 4887 static inline __ATTRS_o_ai int 4888 vec_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. 4895 static inline __ATTRS_o_ai int 4896 vec_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. 4903 static inline __ATTRS_o_ai int 4904 vec_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. 4911 static inline __ATTRS_o_ai int 4912 vec_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 4919 static inline __ATTRS_o_ai int 4920 vec_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. 4927 static inline __ATTRS_o_ai int 4928 vec_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. 4935 static inline __ATTRS_o_ai int 4936 vec_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 4942 static inline __ATTRS_o_ai int 4943 vec_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. 4950 static inline __ATTRS_o_ai int 4951 vec_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. 4958 static inline __ATTRS_o_ai int 4959 vec_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. 4966 static inline __ATTRS_o_ai int 4967 vec_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 4974 static inline __ATTRS_o_ai int 4975 vec_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. 4982 static inline __ATTRS_o_ai int 4983 vec_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. 4990 static inline __ATTRS_o_ai int 4991 vec_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 4997 static inline __ATTRS_o_ai int 4998 vec_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. 5005 static inline __ATTRS_o_ai int 5006 vec_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. 5013 static inline __ATTRS_o_ai int 5014 vec_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. 5021 static inline __ATTRS_o_ai int 5022 vec_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 5030 static inline __ATTRS_o_ai int 5031 vec_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 5038 static inline __ATTRS_o_ai int 5039 vec_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 5047 static inline __ATTRS_o_ai int 5048 vec_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. 5055 static inline __ATTRS_o_ai int 5056 vec_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. 5063 static inline __ATTRS_o_ai int 5064 vec_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 5070 static inline __ATTRS_o_ai int 5071 vec_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. 5078 static inline __ATTRS_o_ai int 5079 vec_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. 5086 static inline __ATTRS_o_ai int 5087 vec_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. 5094 static inline __ATTRS_o_ai int 5095 vec_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 5102 static inline __ATTRS_o_ai int 5103 vec_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. 5110 static inline __ATTRS_o_ai int 5111 vec_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. 5118 static inline __ATTRS_o_ai int 5119 vec_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 5125 static inline __ATTRS_o_ai int 5126 vec_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. 5133 static inline __ATTRS_o_ai int 5134 vec_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. 5141 static inline __ATTRS_o_ai int 5142 vec_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. 5149 static inline __ATTRS_o_ai int 5150 vec_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 5157 static inline __ATTRS_o_ai int 5158 vec_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. 5165 static inline __ATTRS_o_ai int 5166 vec_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. 5173 static inline __ATTRS_o_ai int 5174 vec_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 5180 static inline __ATTRS_o_ai int 5181 vec_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. 5188 static inline __ATTRS_o_ai int 5189 vec_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. 5196 static inline __ATTRS_o_ai int 5197 vec_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. 5204 static inline __ATTRS_o_ai int 5205 vec_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 5212 static inline __ATTRS_o_ai int 5213 vec_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. 5220 static inline __ATTRS_o_ai int 5221 vec_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. 5228 static inline __ATTRS_o_ai int 5229 vec_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 5235 static inline __ATTRS_o_ai int 5236 vec_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. 5243 static inline __ATTRS_o_ai int 5244 vec_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. 5251 static inline __ATTRS_o_ai int 5252 vec_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. 5259 static inline __ATTRS_o_ai int 5260 vec_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 5268 static inline __ATTRS_o_ai int 5269 vec_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 5276 static inline __ATTRS_o_ai int 5277 vec_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 5285 static inline __ATTRS_o_ai int 5286 vec_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. 5293 static inline __ATTRS_o_ai int 5294 vec_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. 5301 static inline __ATTRS_o_ai int 5302 vec_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 5308 static inline __ATTRS_o_ai int 5309 vec_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. 5316 static inline __ATTRS_o_ai int 5317 vec_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. 5324 static inline __ATTRS_o_ai int 5325 vec_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. 5332 static inline __ATTRS_o_ai int 5333 vec_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 5340 static inline __ATTRS_o_ai int 5341 vec_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. 5348 static inline __ATTRS_o_ai int 5349 vec_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. 5356 static inline __ATTRS_o_ai int 5357 vec_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 5363 static inline __ATTRS_o_ai int 5364 vec_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. 5371 static inline __ATTRS_o_ai int 5372 vec_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. 5379 static inline __ATTRS_o_ai int 5380 vec_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. 5387 static inline __ATTRS_o_ai int 5388 vec_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 5395 static inline __ATTRS_o_ai int 5396 vec_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. 5403 static inline __ATTRS_o_ai int 5404 vec_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. 5411 static inline __ATTRS_o_ai int 5412 vec_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 5418 static inline __ATTRS_o_ai int 5419 vec_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. 5426 static inline __ATTRS_o_ai int 5427 vec_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. 5434 static inline __ATTRS_o_ai int 5435 vec_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. 5442 static inline __ATTRS_o_ai int 5443 vec_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 5450 static inline __ATTRS_o_ai int 5451 vec_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. 5458 static inline __ATTRS_o_ai int 5459 vec_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. 5466 static inline __ATTRS_o_ai int 5467 vec_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 5473 static inline __ATTRS_o_ai int 5474 vec_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. 5481 static inline __ATTRS_o_ai int 5482 vec_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. 5489 static inline __ATTRS_o_ai int 5490 vec_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. 5497 static inline __ATTRS_o_ai int 5498 vec_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 5506 static inline __ATTRS_o_ai int 5507 vec_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 5514 static inline __ATTRS_o_ai int 5515 vec_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 5524 static inline __ATTRS_o_ai int 5525 vec_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 5532 static inline __ATTRS_o_ai int 5533 vec_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 5542 static inline __ATTRS_o_ai int 5543 vec_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 5550 static inline __ATTRS_o_ai int 5551 vec_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 5560 static inline __ATTRS_o_ai int 5561 vec_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 5568 static inline __ATTRS_o_ai int 5569 vec_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 5578 static inline __ATTRS_o_ai int 5579 vec_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 5586 static inline __ATTRS_o_ai int 5587 vec_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 5596 static inline __ATTRS_o_ai int 5597 vec_any_nan(vector float __a) { 5598 int __cc; 5599 __builtin_s390_vftcisb(__a, 15, &__cc); 5600 return __cc != 3; 5601 } 5602 #endif 5603 5604 static inline __ATTRS_o_ai int 5605 vec_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 5614 static inline __ATTRS_o_ai int 5615 vec_any_numeric(vector float __a) { 5616 int __cc; 5617 __builtin_s390_vftcisb(__a, 15, &__cc); 5618 return __cc != 0; 5619 } 5620 #endif 5621 5622 static inline __ATTRS_o_ai int 5623 vec_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 5631 static inline __ATTRS_o_ai vector bool char 5632 vec_andc(vector bool char __a, vector bool char __b) { 5633 return __a & ~__b; 5634 } 5635 5636 static inline __ATTRS_o_ai vector signed char 5637 vec_andc(vector signed char __a, vector signed char __b) { 5638 return __a & ~__b; 5639 } 5640 5641 // This prototype is deprecated. 5642 static inline __ATTRS_o_ai vector signed char 5643 vec_andc(vector bool char __a, vector signed char __b) { 5644 return __a & ~__b; 5645 } 5646 5647 // This prototype is deprecated. 5648 static inline __ATTRS_o_ai vector signed char 5649 vec_andc(vector signed char __a, vector bool char __b) { 5650 return __a & ~__b; 5651 } 5652 5653 static inline __ATTRS_o_ai vector unsigned char 5654 vec_andc(vector unsigned char __a, vector unsigned char __b) { 5655 return __a & ~__b; 5656 } 5657 5658 // This prototype is deprecated. 5659 static inline __ATTRS_o_ai vector unsigned char 5660 vec_andc(vector bool char __a, vector unsigned char __b) { 5661 return __a & ~__b; 5662 } 5663 5664 // This prototype is deprecated. 5665 static inline __ATTRS_o_ai vector unsigned char 5666 vec_andc(vector unsigned char __a, vector bool char __b) { 5667 return __a & ~__b; 5668 } 5669 5670 static inline __ATTRS_o_ai vector bool short 5671 vec_andc(vector bool short __a, vector bool short __b) { 5672 return __a & ~__b; 5673 } 5674 5675 static inline __ATTRS_o_ai vector signed short 5676 vec_andc(vector signed short __a, vector signed short __b) { 5677 return __a & ~__b; 5678 } 5679 5680 // This prototype is deprecated. 5681 static inline __ATTRS_o_ai vector signed short 5682 vec_andc(vector bool short __a, vector signed short __b) { 5683 return __a & ~__b; 5684 } 5685 5686 // This prototype is deprecated. 5687 static inline __ATTRS_o_ai vector signed short 5688 vec_andc(vector signed short __a, vector bool short __b) { 5689 return __a & ~__b; 5690 } 5691 5692 static inline __ATTRS_o_ai vector unsigned short 5693 vec_andc(vector unsigned short __a, vector unsigned short __b) { 5694 return __a & ~__b; 5695 } 5696 5697 // This prototype is deprecated. 5698 static inline __ATTRS_o_ai vector unsigned short 5699 vec_andc(vector bool short __a, vector unsigned short __b) { 5700 return __a & ~__b; 5701 } 5702 5703 // This prototype is deprecated. 5704 static inline __ATTRS_o_ai vector unsigned short 5705 vec_andc(vector unsigned short __a, vector bool short __b) { 5706 return __a & ~__b; 5707 } 5708 5709 static inline __ATTRS_o_ai vector bool int 5710 vec_andc(vector bool int __a, vector bool int __b) { 5711 return __a & ~__b; 5712 } 5713 5714 static inline __ATTRS_o_ai vector signed int 5715 vec_andc(vector signed int __a, vector signed int __b) { 5716 return __a & ~__b; 5717 } 5718 5719 // This prototype is deprecated. 5720 static inline __ATTRS_o_ai vector signed int 5721 vec_andc(vector bool int __a, vector signed int __b) { 5722 return __a & ~__b; 5723 } 5724 5725 // This prototype is deprecated. 5726 static inline __ATTRS_o_ai vector signed int 5727 vec_andc(vector signed int __a, vector bool int __b) { 5728 return __a & ~__b; 5729 } 5730 5731 static inline __ATTRS_o_ai vector unsigned int 5732 vec_andc(vector unsigned int __a, vector unsigned int __b) { 5733 return __a & ~__b; 5734 } 5735 5736 // This prototype is deprecated. 5737 static inline __ATTRS_o_ai vector unsigned int 5738 vec_andc(vector bool int __a, vector unsigned int __b) { 5739 return __a & ~__b; 5740 } 5741 5742 // This prototype is deprecated. 5743 static inline __ATTRS_o_ai vector unsigned int 5744 vec_andc(vector unsigned int __a, vector bool int __b) { 5745 return __a & ~__b; 5746 } 5747 5748 static inline __ATTRS_o_ai vector bool long long 5749 vec_andc(vector bool long long __a, vector bool long long __b) { 5750 return __a & ~__b; 5751 } 5752 5753 static inline __ATTRS_o_ai vector signed long long 5754 vec_andc(vector signed long long __a, vector signed long long __b) { 5755 return __a & ~__b; 5756 } 5757 5758 // This prototype is deprecated. 5759 static inline __ATTRS_o_ai vector signed long long 5760 vec_andc(vector bool long long __a, vector signed long long __b) { 5761 return __a & ~__b; 5762 } 5763 5764 // This prototype is deprecated. 5765 static inline __ATTRS_o_ai vector signed long long 5766 vec_andc(vector signed long long __a, vector bool long long __b) { 5767 return __a & ~__b; 5768 } 5769 5770 static inline __ATTRS_o_ai vector unsigned long long 5771 vec_andc(vector unsigned long long __a, vector unsigned long long __b) { 5772 return __a & ~__b; 5773 } 5774 5775 // This prototype is deprecated. 5776 static inline __ATTRS_o_ai vector unsigned long long 5777 vec_andc(vector bool long long __a, vector unsigned long long __b) { 5778 return __a & ~__b; 5779 } 5780 5781 // This prototype is deprecated. 5782 static inline __ATTRS_o_ai vector unsigned long long 5783 vec_andc(vector unsigned long long __a, vector bool long long __b) { 5784 return __a & ~__b; 5785 } 5786 5787 #if __ARCH__ >= 12 5788 static inline __ATTRS_o_ai vector float 5789 vec_andc(vector float __a, vector float __b) { 5790 return (vector float)((vector unsigned int)__a & 5791 ~(vector unsigned int)__b); 5792 } 5793 #endif 5794 5795 static inline __ATTRS_o_ai vector double 5796 vec_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. 5802 static inline __ATTRS_o_ai vector double 5803 vec_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. 5809 static inline __ATTRS_o_ai vector double 5810 vec_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 5817 static inline __ATTRS_o_ai vector bool char 5818 vec_nor(vector bool char __a, vector bool char __b) { 5819 return ~(__a | __b); 5820 } 5821 5822 static inline __ATTRS_o_ai vector signed char 5823 vec_nor(vector signed char __a, vector signed char __b) { 5824 return ~(__a | __b); 5825 } 5826 5827 // This prototype is deprecated. 5828 static inline __ATTRS_o_ai vector signed char 5829 vec_nor(vector bool char __a, vector signed char __b) { 5830 return ~(__a | __b); 5831 } 5832 5833 // This prototype is deprecated. 5834 static inline __ATTRS_o_ai vector signed char 5835 vec_nor(vector signed char __a, vector bool char __b) { 5836 return ~(__a | __b); 5837 } 5838 5839 static inline __ATTRS_o_ai vector unsigned char 5840 vec_nor(vector unsigned char __a, vector unsigned char __b) { 5841 return ~(__a | __b); 5842 } 5843 5844 // This prototype is deprecated. 5845 static inline __ATTRS_o_ai vector unsigned char 5846 vec_nor(vector bool char __a, vector unsigned char __b) { 5847 return ~(__a | __b); 5848 } 5849 5850 // This prototype is deprecated. 5851 static inline __ATTRS_o_ai vector unsigned char 5852 vec_nor(vector unsigned char __a, vector bool char __b) { 5853 return ~(__a | __b); 5854 } 5855 5856 static inline __ATTRS_o_ai vector bool short 5857 vec_nor(vector bool short __a, vector bool short __b) { 5858 return ~(__a | __b); 5859 } 5860 5861 static inline __ATTRS_o_ai vector signed short 5862 vec_nor(vector signed short __a, vector signed short __b) { 5863 return ~(__a | __b); 5864 } 5865 5866 // This prototype is deprecated. 5867 static inline __ATTRS_o_ai vector signed short 5868 vec_nor(vector bool short __a, vector signed short __b) { 5869 return ~(__a | __b); 5870 } 5871 5872 // This prototype is deprecated. 5873 static inline __ATTRS_o_ai vector signed short 5874 vec_nor(vector signed short __a, vector bool short __b) { 5875 return ~(__a | __b); 5876 } 5877 5878 static inline __ATTRS_o_ai vector unsigned short 5879 vec_nor(vector unsigned short __a, vector unsigned short __b) { 5880 return ~(__a | __b); 5881 } 5882 5883 // This prototype is deprecated. 5884 static inline __ATTRS_o_ai vector unsigned short 5885 vec_nor(vector bool short __a, vector unsigned short __b) { 5886 return ~(__a | __b); 5887 } 5888 5889 // This prototype is deprecated. 5890 static inline __ATTRS_o_ai vector unsigned short 5891 vec_nor(vector unsigned short __a, vector bool short __b) { 5892 return ~(__a | __b); 5893 } 5894 5895 static inline __ATTRS_o_ai vector bool int 5896 vec_nor(vector bool int __a, vector bool int __b) { 5897 return ~(__a | __b); 5898 } 5899 5900 static inline __ATTRS_o_ai vector signed int 5901 vec_nor(vector signed int __a, vector signed int __b) { 5902 return ~(__a | __b); 5903 } 5904 5905 // This prototype is deprecated. 5906 static inline __ATTRS_o_ai vector signed int 5907 vec_nor(vector bool int __a, vector signed int __b) { 5908 return ~(__a | __b); 5909 } 5910 5911 // This prototype is deprecated. 5912 static inline __ATTRS_o_ai vector signed int 5913 vec_nor(vector signed int __a, vector bool int __b) { 5914 return ~(__a | __b); 5915 } 5916 5917 static inline __ATTRS_o_ai vector unsigned int 5918 vec_nor(vector unsigned int __a, vector unsigned int __b) { 5919 return ~(__a | __b); 5920 } 5921 5922 // This prototype is deprecated. 5923 static inline __ATTRS_o_ai vector unsigned int 5924 vec_nor(vector bool int __a, vector unsigned int __b) { 5925 return ~(__a | __b); 5926 } 5927 5928 // This prototype is deprecated. 5929 static inline __ATTRS_o_ai vector unsigned int 5930 vec_nor(vector unsigned int __a, vector bool int __b) { 5931 return ~(__a | __b); 5932 } 5933 5934 static inline __ATTRS_o_ai vector bool long long 5935 vec_nor(vector bool long long __a, vector bool long long __b) { 5936 return ~(__a | __b); 5937 } 5938 5939 static inline __ATTRS_o_ai vector signed long long 5940 vec_nor(vector signed long long __a, vector signed long long __b) { 5941 return ~(__a | __b); 5942 } 5943 5944 // This prototype is deprecated. 5945 static inline __ATTRS_o_ai vector signed long long 5946 vec_nor(vector bool long long __a, vector signed long long __b) { 5947 return ~(__a | __b); 5948 } 5949 5950 // This prototype is deprecated. 5951 static inline __ATTRS_o_ai vector signed long long 5952 vec_nor(vector signed long long __a, vector bool long long __b) { 5953 return ~(__a | __b); 5954 } 5955 5956 static inline __ATTRS_o_ai vector unsigned long long 5957 vec_nor(vector unsigned long long __a, vector unsigned long long __b) { 5958 return ~(__a | __b); 5959 } 5960 5961 // This prototype is deprecated. 5962 static inline __ATTRS_o_ai vector unsigned long long 5963 vec_nor(vector bool long long __a, vector unsigned long long __b) { 5964 return ~(__a | __b); 5965 } 5966 5967 // This prototype is deprecated. 5968 static inline __ATTRS_o_ai vector unsigned long long 5969 vec_nor(vector unsigned long long __a, vector bool long long __b) { 5970 return ~(__a | __b); 5971 } 5972 5973 #if __ARCH__ >= 12 5974 static inline __ATTRS_o_ai vector float 5975 vec_nor(vector float __a, vector float __b) { 5976 return (vector float)~((vector unsigned int)__a | 5977 (vector unsigned int)__b); 5978 } 5979 #endif 5980 5981 static inline __ATTRS_o_ai vector double 5982 vec_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. 5988 static inline __ATTRS_o_ai vector double 5989 vec_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. 5995 static inline __ATTRS_o_ai vector double 5996 vec_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 6004 static inline __ATTRS_o_ai vector bool char 6005 vec_orc(vector bool char __a, vector bool char __b) { 6006 return __a | ~__b; 6007 } 6008 6009 static inline __ATTRS_o_ai vector signed char 6010 vec_orc(vector signed char __a, vector signed char __b) { 6011 return __a | ~__b; 6012 } 6013 6014 static inline __ATTRS_o_ai vector unsigned char 6015 vec_orc(vector unsigned char __a, vector unsigned char __b) { 6016 return __a | ~__b; 6017 } 6018 6019 static inline __ATTRS_o_ai vector bool short 6020 vec_orc(vector bool short __a, vector bool short __b) { 6021 return __a | ~__b; 6022 } 6023 6024 static inline __ATTRS_o_ai vector signed short 6025 vec_orc(vector signed short __a, vector signed short __b) { 6026 return __a | ~__b; 6027 } 6028 6029 static inline __ATTRS_o_ai vector unsigned short 6030 vec_orc(vector unsigned short __a, vector unsigned short __b) { 6031 return __a | ~__b; 6032 } 6033 6034 static inline __ATTRS_o_ai vector bool int 6035 vec_orc(vector bool int __a, vector bool int __b) { 6036 return __a | ~__b; 6037 } 6038 6039 static inline __ATTRS_o_ai vector signed int 6040 vec_orc(vector signed int __a, vector signed int __b) { 6041 return __a | ~__b; 6042 } 6043 6044 static inline __ATTRS_o_ai vector unsigned int 6045 vec_orc(vector unsigned int __a, vector unsigned int __b) { 6046 return __a | ~__b; 6047 } 6048 6049 static inline __ATTRS_o_ai vector bool long long 6050 vec_orc(vector bool long long __a, vector bool long long __b) { 6051 return __a | ~__b; 6052 } 6053 6054 static inline __ATTRS_o_ai vector signed long long 6055 vec_orc(vector signed long long __a, vector signed long long __b) { 6056 return __a | ~__b; 6057 } 6058 6059 static inline __ATTRS_o_ai vector unsigned long long 6060 vec_orc(vector unsigned long long __a, vector unsigned long long __b) { 6061 return __a | ~__b; 6062 } 6063 6064 static inline __ATTRS_o_ai vector float 6065 vec_orc(vector float __a, vector float __b) { 6066 return (vector float)((vector unsigned int)__a | 6067 ~(vector unsigned int)__b); 6068 } 6069 6070 static inline __ATTRS_o_ai vector double 6071 vec_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 6080 static inline __ATTRS_o_ai vector bool char 6081 vec_nand(vector bool char __a, vector bool char __b) { 6082 return ~(__a & __b); 6083 } 6084 6085 static inline __ATTRS_o_ai vector signed char 6086 vec_nand(vector signed char __a, vector signed char __b) { 6087 return ~(__a & __b); 6088 } 6089 6090 static inline __ATTRS_o_ai vector unsigned char 6091 vec_nand(vector unsigned char __a, vector unsigned char __b) { 6092 return ~(__a & __b); 6093 } 6094 6095 static inline __ATTRS_o_ai vector bool short 6096 vec_nand(vector bool short __a, vector bool short __b) { 6097 return ~(__a & __b); 6098 } 6099 6100 static inline __ATTRS_o_ai vector signed short 6101 vec_nand(vector signed short __a, vector signed short __b) { 6102 return ~(__a & __b); 6103 } 6104 6105 static inline __ATTRS_o_ai vector unsigned short 6106 vec_nand(vector unsigned short __a, vector unsigned short __b) { 6107 return ~(__a & __b); 6108 } 6109 6110 static inline __ATTRS_o_ai vector bool int 6111 vec_nand(vector bool int __a, vector bool int __b) { 6112 return ~(__a & __b); 6113 } 6114 6115 static inline __ATTRS_o_ai vector signed int 6116 vec_nand(vector signed int __a, vector signed int __b) { 6117 return ~(__a & __b); 6118 } 6119 6120 static inline __ATTRS_o_ai vector unsigned int 6121 vec_nand(vector unsigned int __a, vector unsigned int __b) { 6122 return ~(__a & __b); 6123 } 6124 6125 static inline __ATTRS_o_ai vector bool long long 6126 vec_nand(vector bool long long __a, vector bool long long __b) { 6127 return ~(__a & __b); 6128 } 6129 6130 static inline __ATTRS_o_ai vector signed long long 6131 vec_nand(vector signed long long __a, vector signed long long __b) { 6132 return ~(__a & __b); 6133 } 6134 6135 static inline __ATTRS_o_ai vector unsigned long long 6136 vec_nand(vector unsigned long long __a, vector unsigned long long __b) { 6137 return ~(__a & __b); 6138 } 6139 6140 static inline __ATTRS_o_ai vector float 6141 vec_nand(vector float __a, vector float __b) { 6142 return (vector float)~((vector unsigned int)__a & 6143 (vector unsigned int)__b); 6144 } 6145 6146 static inline __ATTRS_o_ai vector double 6147 vec_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 6156 static inline __ATTRS_o_ai vector bool char 6157 vec_eqv(vector bool char __a, vector bool char __b) { 6158 return ~(__a ^ __b); 6159 } 6160 6161 static inline __ATTRS_o_ai vector signed char 6162 vec_eqv(vector signed char __a, vector signed char __b) { 6163 return ~(__a ^ __b); 6164 } 6165 6166 static inline __ATTRS_o_ai vector unsigned char 6167 vec_eqv(vector unsigned char __a, vector unsigned char __b) { 6168 return ~(__a ^ __b); 6169 } 6170 6171 static inline __ATTRS_o_ai vector bool short 6172 vec_eqv(vector bool short __a, vector bool short __b) { 6173 return ~(__a ^ __b); 6174 } 6175 6176 static inline __ATTRS_o_ai vector signed short 6177 vec_eqv(vector signed short __a, vector signed short __b) { 6178 return ~(__a ^ __b); 6179 } 6180 6181 static inline __ATTRS_o_ai vector unsigned short 6182 vec_eqv(vector unsigned short __a, vector unsigned short __b) { 6183 return ~(__a ^ __b); 6184 } 6185 6186 static inline __ATTRS_o_ai vector bool int 6187 vec_eqv(vector bool int __a, vector bool int __b) { 6188 return ~(__a ^ __b); 6189 } 6190 6191 static inline __ATTRS_o_ai vector signed int 6192 vec_eqv(vector signed int __a, vector signed int __b) { 6193 return ~(__a ^ __b); 6194 } 6195 6196 static inline __ATTRS_o_ai vector unsigned int 6197 vec_eqv(vector unsigned int __a, vector unsigned int __b) { 6198 return ~(__a ^ __b); 6199 } 6200 6201 static inline __ATTRS_o_ai vector bool long long 6202 vec_eqv(vector bool long long __a, vector bool long long __b) { 6203 return ~(__a ^ __b); 6204 } 6205 6206 static inline __ATTRS_o_ai vector signed long long 6207 vec_eqv(vector signed long long __a, vector signed long long __b) { 6208 return ~(__a ^ __b); 6209 } 6210 6211 static inline __ATTRS_o_ai vector unsigned long long 6212 vec_eqv(vector unsigned long long __a, vector unsigned long long __b) { 6213 return ~(__a ^ __b); 6214 } 6215 6216 static inline __ATTRS_o_ai vector float 6217 vec_eqv(vector float __a, vector float __b) { 6218 return (vector float)~((vector unsigned int)__a ^ 6219 (vector unsigned int)__b); 6220 } 6221 6222 static inline __ATTRS_o_ai vector double 6223 vec_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 6231 static inline __ATTRS_o_ai vector unsigned char 6232 vec_cntlz(vector signed char __a) { 6233 return __builtin_s390_vclzb((vector unsigned char)__a); 6234 } 6235 6236 static inline __ATTRS_o_ai vector unsigned char 6237 vec_cntlz(vector unsigned char __a) { 6238 return __builtin_s390_vclzb(__a); 6239 } 6240 6241 static inline __ATTRS_o_ai vector unsigned short 6242 vec_cntlz(vector signed short __a) { 6243 return __builtin_s390_vclzh((vector unsigned short)__a); 6244 } 6245 6246 static inline __ATTRS_o_ai vector unsigned short 6247 vec_cntlz(vector unsigned short __a) { 6248 return __builtin_s390_vclzh(__a); 6249 } 6250 6251 static inline __ATTRS_o_ai vector unsigned int 6252 vec_cntlz(vector signed int __a) { 6253 return __builtin_s390_vclzf((vector unsigned int)__a); 6254 } 6255 6256 static inline __ATTRS_o_ai vector unsigned int 6257 vec_cntlz(vector unsigned int __a) { 6258 return __builtin_s390_vclzf(__a); 6259 } 6260 6261 static inline __ATTRS_o_ai vector unsigned long long 6262 vec_cntlz(vector signed long long __a) { 6263 return __builtin_s390_vclzg((vector unsigned long long)__a); 6264 } 6265 6266 static inline __ATTRS_o_ai vector unsigned long long 6267 vec_cntlz(vector unsigned long long __a) { 6268 return __builtin_s390_vclzg(__a); 6269 } 6270 6271 /*-- vec_cnttz --------------------------------------------------------------*/ 6272 6273 static inline __ATTRS_o_ai vector unsigned char 6274 vec_cnttz(vector signed char __a) { 6275 return __builtin_s390_vctzb((vector unsigned char)__a); 6276 } 6277 6278 static inline __ATTRS_o_ai vector unsigned char 6279 vec_cnttz(vector unsigned char __a) { 6280 return __builtin_s390_vctzb(__a); 6281 } 6282 6283 static inline __ATTRS_o_ai vector unsigned short 6284 vec_cnttz(vector signed short __a) { 6285 return __builtin_s390_vctzh((vector unsigned short)__a); 6286 } 6287 6288 static inline __ATTRS_o_ai vector unsigned short 6289 vec_cnttz(vector unsigned short __a) { 6290 return __builtin_s390_vctzh(__a); 6291 } 6292 6293 static inline __ATTRS_o_ai vector unsigned int 6294 vec_cnttz(vector signed int __a) { 6295 return __builtin_s390_vctzf((vector unsigned int)__a); 6296 } 6297 6298 static inline __ATTRS_o_ai vector unsigned int 6299 vec_cnttz(vector unsigned int __a) { 6300 return __builtin_s390_vctzf(__a); 6301 } 6302 6303 static inline __ATTRS_o_ai vector unsigned long long 6304 vec_cnttz(vector signed long long __a) { 6305 return __builtin_s390_vctzg((vector unsigned long long)__a); 6306 } 6307 6308 static inline __ATTRS_o_ai vector unsigned long long 6309 vec_cnttz(vector unsigned long long __a) { 6310 return __builtin_s390_vctzg(__a); 6311 } 6312 6313 /*-- vec_popcnt -------------------------------------------------------------*/ 6314 6315 static inline __ATTRS_o_ai vector unsigned char 6316 vec_popcnt(vector signed char __a) { 6317 return __builtin_s390_vpopctb((vector unsigned char)__a); 6318 } 6319 6320 static inline __ATTRS_o_ai vector unsigned char 6321 vec_popcnt(vector unsigned char __a) { 6322 return __builtin_s390_vpopctb(__a); 6323 } 6324 6325 static inline __ATTRS_o_ai vector unsigned short 6326 vec_popcnt(vector signed short __a) { 6327 return __builtin_s390_vpopcth((vector unsigned short)__a); 6328 } 6329 6330 static inline __ATTRS_o_ai vector unsigned short 6331 vec_popcnt(vector unsigned short __a) { 6332 return __builtin_s390_vpopcth(__a); 6333 } 6334 6335 static inline __ATTRS_o_ai vector unsigned int 6336 vec_popcnt(vector signed int __a) { 6337 return __builtin_s390_vpopctf((vector unsigned int)__a); 6338 } 6339 6340 static inline __ATTRS_o_ai vector unsigned int 6341 vec_popcnt(vector unsigned int __a) { 6342 return __builtin_s390_vpopctf(__a); 6343 } 6344 6345 static inline __ATTRS_o_ai vector unsigned long long 6346 vec_popcnt(vector signed long long __a) { 6347 return __builtin_s390_vpopctg((vector unsigned long long)__a); 6348 } 6349 6350 static inline __ATTRS_o_ai vector unsigned long long 6351 vec_popcnt(vector unsigned long long __a) { 6352 return __builtin_s390_vpopctg(__a); 6353 } 6354 6355 /*-- vec_rl -----------------------------------------------------------------*/ 6356 6357 static inline __ATTRS_o_ai vector signed char 6358 vec_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 6363 static inline __ATTRS_o_ai vector unsigned char 6364 vec_rl(vector unsigned char __a, vector unsigned char __b) { 6365 return __builtin_s390_verllvb(__a, __b); 6366 } 6367 6368 static inline __ATTRS_o_ai vector signed short 6369 vec_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 6374 static inline __ATTRS_o_ai vector unsigned short 6375 vec_rl(vector unsigned short __a, vector unsigned short __b) { 6376 return __builtin_s390_verllvh(__a, __b); 6377 } 6378 6379 static inline __ATTRS_o_ai vector signed int 6380 vec_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 6385 static inline __ATTRS_o_ai vector unsigned int 6386 vec_rl(vector unsigned int __a, vector unsigned int __b) { 6387 return __builtin_s390_verllvf(__a, __b); 6388 } 6389 6390 static inline __ATTRS_o_ai vector signed long long 6391 vec_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 6396 static inline __ATTRS_o_ai vector unsigned long long 6397 vec_rl(vector unsigned long long __a, vector unsigned long long __b) { 6398 return __builtin_s390_verllvg(__a, __b); 6399 } 6400 6401 /*-- vec_rli ----------------------------------------------------------------*/ 6402 6403 static inline __ATTRS_o_ai vector signed char 6404 vec_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 6409 static inline __ATTRS_o_ai vector unsigned char 6410 vec_rli(vector unsigned char __a, unsigned long __b) { 6411 return __builtin_s390_verllb(__a, (int)__b); 6412 } 6413 6414 static inline __ATTRS_o_ai vector signed short 6415 vec_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 6420 static inline __ATTRS_o_ai vector unsigned short 6421 vec_rli(vector unsigned short __a, unsigned long __b) { 6422 return __builtin_s390_verllh(__a, (int)__b); 6423 } 6424 6425 static inline __ATTRS_o_ai vector signed int 6426 vec_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 6431 static inline __ATTRS_o_ai vector unsigned int 6432 vec_rli(vector unsigned int __a, unsigned long __b) { 6433 return __builtin_s390_verllf(__a, (int)__b); 6434 } 6435 6436 static inline __ATTRS_o_ai vector signed long long 6437 vec_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 6442 static inline __ATTRS_o_ai vector unsigned long long 6443 vec_rli(vector unsigned long long __a, unsigned long __b) { 6444 return __builtin_s390_verllg(__a, (int)__b); 6445 } 6446 6447 /*-- vec_rl_mask ------------------------------------------------------------*/ 6448 6449 extern __ATTRS_o vector signed char 6450 vec_rl_mask(vector signed char __a, vector unsigned char __b, 6451 unsigned char __c) __constant(__c); 6452 6453 extern __ATTRS_o vector unsigned char 6454 vec_rl_mask(vector unsigned char __a, vector unsigned char __b, 6455 unsigned char __c) __constant(__c); 6456 6457 extern __ATTRS_o vector signed short 6458 vec_rl_mask(vector signed short __a, vector unsigned short __b, 6459 unsigned char __c) __constant(__c); 6460 6461 extern __ATTRS_o vector unsigned short 6462 vec_rl_mask(vector unsigned short __a, vector unsigned short __b, 6463 unsigned char __c) __constant(__c); 6464 6465 extern __ATTRS_o vector signed int 6466 vec_rl_mask(vector signed int __a, vector unsigned int __b, 6467 unsigned char __c) __constant(__c); 6468 6469 extern __ATTRS_o vector unsigned int 6470 vec_rl_mask(vector unsigned int __a, vector unsigned int __b, 6471 unsigned char __c) __constant(__c); 6472 6473 extern __ATTRS_o vector signed long long 6474 vec_rl_mask(vector signed long long __a, vector unsigned long long __b, 6475 unsigned char __c) __constant(__c); 6476 6477 extern __ATTRS_o vector unsigned long long 6478 vec_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 6503 static inline __ATTRS_o_ai vector signed char 6504 vec_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. 6510 static inline __ATTRS_o_ai vector signed char 6511 vec_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. 6517 static inline __ATTRS_o_ai vector signed char 6518 vec_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. 6524 static inline __ATTRS_o_ai vector bool char 6525 vec_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. 6531 static inline __ATTRS_o_ai vector bool char 6532 vec_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. 6538 static inline __ATTRS_o_ai vector bool char 6539 vec_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 6544 static inline __ATTRS_o_ai vector unsigned char 6545 vec_sll(vector unsigned char __a, vector unsigned char __b) { 6546 return __builtin_s390_vsl(__a, __b); 6547 } 6548 6549 // This prototype is deprecated. 6550 static inline __ATTRS_o_ai vector unsigned char 6551 vec_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. 6556 static inline __ATTRS_o_ai vector unsigned char 6557 vec_sll(vector unsigned char __a, vector unsigned int __b) { 6558 return __builtin_s390_vsl(__a, (vector unsigned char)__b); 6559 } 6560 6561 static inline __ATTRS_o_ai vector signed short 6562 vec_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. 6568 static inline __ATTRS_o_ai vector signed short 6569 vec_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. 6575 static inline __ATTRS_o_ai vector signed short 6576 vec_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. 6582 static inline __ATTRS_o_ai vector bool short 6583 vec_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. 6589 static inline __ATTRS_o_ai vector bool short 6590 vec_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. 6596 static inline __ATTRS_o_ai vector bool short 6597 vec_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 6602 static inline __ATTRS_o_ai vector unsigned short 6603 vec_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. 6609 static inline __ATTRS_o_ai vector unsigned short 6610 vec_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. 6616 static inline __ATTRS_o_ai vector unsigned short 6617 vec_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 6622 static inline __ATTRS_o_ai vector signed int 6623 vec_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. 6629 static inline __ATTRS_o_ai vector signed int 6630 vec_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. 6636 static inline __ATTRS_o_ai vector signed int 6637 vec_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. 6643 static inline __ATTRS_o_ai vector bool int 6644 vec_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. 6650 static inline __ATTRS_o_ai vector bool int 6651 vec_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. 6657 static inline __ATTRS_o_ai vector bool int 6658 vec_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 6663 static inline __ATTRS_o_ai vector unsigned int 6664 vec_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. 6670 static inline __ATTRS_o_ai vector unsigned int 6671 vec_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. 6677 static inline __ATTRS_o_ai vector unsigned int 6678 vec_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 6683 static inline __ATTRS_o_ai vector signed long long 6684 vec_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. 6690 static inline __ATTRS_o_ai vector signed long long 6691 vec_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. 6697 static inline __ATTRS_o_ai vector signed long long 6698 vec_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. 6704 static inline __ATTRS_o_ai vector bool long long 6705 vec_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. 6711 static inline __ATTRS_o_ai vector bool long long 6712 vec_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. 6718 static inline __ATTRS_o_ai vector bool long long 6719 vec_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 6724 static inline __ATTRS_o_ai vector unsigned long long 6725 vec_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. 6731 static inline __ATTRS_o_ai vector unsigned long long 6732 vec_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. 6738 static inline __ATTRS_o_ai vector unsigned long long 6739 vec_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 6746 static inline __ATTRS_o_ai vector signed char 6747 vec_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 6752 static inline __ATTRS_o_ai vector signed char 6753 vec_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 6758 static inline __ATTRS_o_ai vector unsigned char 6759 vec_slb(vector unsigned char __a, vector signed char __b) { 6760 return __builtin_s390_vslb(__a, (vector unsigned char)__b); 6761 } 6762 6763 static inline __ATTRS_o_ai vector unsigned char 6764 vec_slb(vector unsigned char __a, vector unsigned char __b) { 6765 return __builtin_s390_vslb(__a, __b); 6766 } 6767 6768 static inline __ATTRS_o_ai vector signed short 6769 vec_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 6774 static inline __ATTRS_o_ai vector signed short 6775 vec_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 6780 static inline __ATTRS_o_ai vector unsigned short 6781 vec_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 6786 static inline __ATTRS_o_ai vector unsigned short 6787 vec_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 6792 static inline __ATTRS_o_ai vector signed int 6793 vec_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 6798 static inline __ATTRS_o_ai vector signed int 6799 vec_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 6804 static inline __ATTRS_o_ai vector unsigned int 6805 vec_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 6810 static inline __ATTRS_o_ai vector unsigned int 6811 vec_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 6816 static inline __ATTRS_o_ai vector signed long long 6817 vec_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 6822 static inline __ATTRS_o_ai vector signed long long 6823 vec_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 6828 static inline __ATTRS_o_ai vector unsigned long long 6829 vec_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 6834 static inline __ATTRS_o_ai vector unsigned long long 6835 vec_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 6841 static inline __ATTRS_o_ai vector float 6842 vec_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 6847 static inline __ATTRS_o_ai vector float 6848 vec_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 6854 static inline __ATTRS_o_ai vector double 6855 vec_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 6860 static inline __ATTRS_o_ai vector double 6861 vec_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 6868 extern __ATTRS_o vector signed char 6869 vec_sld(vector signed char __a, vector signed char __b, int __c) 6870 __constant_range(__c, 0, 15); 6871 6872 extern __ATTRS_o vector bool char 6873 vec_sld(vector bool char __a, vector bool char __b, int __c) 6874 __constant_range(__c, 0, 15); 6875 6876 extern __ATTRS_o vector unsigned char 6877 vec_sld(vector unsigned char __a, vector unsigned char __b, int __c) 6878 __constant_range(__c, 0, 15); 6879 6880 extern __ATTRS_o vector signed short 6881 vec_sld(vector signed short __a, vector signed short __b, int __c) 6882 __constant_range(__c, 0, 15); 6883 6884 extern __ATTRS_o vector bool short 6885 vec_sld(vector bool short __a, vector bool short __b, int __c) 6886 __constant_range(__c, 0, 15); 6887 6888 extern __ATTRS_o vector unsigned short 6889 vec_sld(vector unsigned short __a, vector unsigned short __b, int __c) 6890 __constant_range(__c, 0, 15); 6891 6892 extern __ATTRS_o vector signed int 6893 vec_sld(vector signed int __a, vector signed int __b, int __c) 6894 __constant_range(__c, 0, 15); 6895 6896 extern __ATTRS_o vector bool int 6897 vec_sld(vector bool int __a, vector bool int __b, int __c) 6898 __constant_range(__c, 0, 15); 6899 6900 extern __ATTRS_o vector unsigned int 6901 vec_sld(vector unsigned int __a, vector unsigned int __b, int __c) 6902 __constant_range(__c, 0, 15); 6903 6904 extern __ATTRS_o vector signed long long 6905 vec_sld(vector signed long long __a, vector signed long long __b, int __c) 6906 __constant_range(__c, 0, 15); 6907 6908 extern __ATTRS_o vector bool long long 6909 vec_sld(vector bool long long __a, vector bool long long __b, int __c) 6910 __constant_range(__c, 0, 15); 6911 6912 extern __ATTRS_o vector unsigned long long 6913 vec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c) 6914 __constant_range(__c, 0, 15); 6915 6916 #if __ARCH__ >= 12 6917 extern __ATTRS_o vector float 6918 vec_sld(vector float __a, vector float __b, int __c) 6919 __constant_range(__c, 0, 15); 6920 #endif 6921 6922 extern __ATTRS_o vector double 6923 vec_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 6932 extern __ATTRS_o vector signed char 6933 vec_sldw(vector signed char __a, vector signed char __b, int __c) 6934 __constant_range(__c, 0, 3); 6935 6936 extern __ATTRS_o vector unsigned char 6937 vec_sldw(vector unsigned char __a, vector unsigned char __b, int __c) 6938 __constant_range(__c, 0, 3); 6939 6940 extern __ATTRS_o vector signed short 6941 vec_sldw(vector signed short __a, vector signed short __b, int __c) 6942 __constant_range(__c, 0, 3); 6943 6944 extern __ATTRS_o vector unsigned short 6945 vec_sldw(vector unsigned short __a, vector unsigned short __b, int __c) 6946 __constant_range(__c, 0, 3); 6947 6948 extern __ATTRS_o vector signed int 6949 vec_sldw(vector signed int __a, vector signed int __b, int __c) 6950 __constant_range(__c, 0, 3); 6951 6952 extern __ATTRS_o vector unsigned int 6953 vec_sldw(vector unsigned int __a, vector unsigned int __b, int __c) 6954 __constant_range(__c, 0, 3); 6955 6956 extern __ATTRS_o vector signed long long 6957 vec_sldw(vector signed long long __a, vector signed long long __b, int __c) 6958 __constant_range(__c, 0, 3); 6959 6960 extern __ATTRS_o vector unsigned long long 6961 vec_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. 6965 extern __ATTRS_o vector double 6966 vec_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 6977 extern __ATTRS_o vector signed char 6978 vec_sldb(vector signed char __a, vector signed char __b, int __c) 6979 __constant_range(__c, 0, 7); 6980 6981 extern __ATTRS_o vector unsigned char 6982 vec_sldb(vector unsigned char __a, vector unsigned char __b, int __c) 6983 __constant_range(__c, 0, 7); 6984 6985 extern __ATTRS_o vector signed short 6986 vec_sldb(vector signed short __a, vector signed short __b, int __c) 6987 __constant_range(__c, 0, 7); 6988 6989 extern __ATTRS_o vector unsigned short 6990 vec_sldb(vector unsigned short __a, vector unsigned short __b, int __c) 6991 __constant_range(__c, 0, 7); 6992 6993 extern __ATTRS_o vector signed int 6994 vec_sldb(vector signed int __a, vector signed int __b, int __c) 6995 __constant_range(__c, 0, 7); 6996 6997 extern __ATTRS_o vector unsigned int 6998 vec_sldb(vector unsigned int __a, vector unsigned int __b, int __c) 6999 __constant_range(__c, 0, 7); 7000 7001 extern __ATTRS_o vector signed long long 7002 vec_sldb(vector signed long long __a, vector signed long long __b, int __c) 7003 __constant_range(__c, 0, 7); 7004 7005 extern __ATTRS_o vector unsigned long long 7006 vec_sldb(vector unsigned long long __a, vector unsigned long long __b, int __c) 7007 __constant_range(__c, 0, 7); 7008 7009 extern __ATTRS_o vector float 7010 vec_sldb(vector float __a, vector float __b, int __c) 7011 __constant_range(__c, 0, 7); 7012 7013 extern __ATTRS_o vector double 7014 vec_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 7025 static inline __ATTRS_o_ai vector signed char 7026 vec_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. 7032 static inline __ATTRS_o_ai vector signed char 7033 vec_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. 7039 static inline __ATTRS_o_ai vector signed char 7040 vec_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. 7046 static inline __ATTRS_o_ai vector bool char 7047 vec_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. 7053 static inline __ATTRS_o_ai vector bool char 7054 vec_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. 7060 static inline __ATTRS_o_ai vector bool char 7061 vec_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 7066 static inline __ATTRS_o_ai vector unsigned char 7067 vec_sral(vector unsigned char __a, vector unsigned char __b) { 7068 return __builtin_s390_vsra(__a, __b); 7069 } 7070 7071 // This prototype is deprecated. 7072 static inline __ATTRS_o_ai vector unsigned char 7073 vec_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. 7078 static inline __ATTRS_o_ai vector unsigned char 7079 vec_sral(vector unsigned char __a, vector unsigned int __b) { 7080 return __builtin_s390_vsra(__a, (vector unsigned char)__b); 7081 } 7082 7083 static inline __ATTRS_o_ai vector signed short 7084 vec_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. 7090 static inline __ATTRS_o_ai vector signed short 7091 vec_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. 7097 static inline __ATTRS_o_ai vector signed short 7098 vec_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. 7104 static inline __ATTRS_o_ai vector bool short 7105 vec_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. 7111 static inline __ATTRS_o_ai vector bool short 7112 vec_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. 7118 static inline __ATTRS_o_ai vector bool short 7119 vec_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 7124 static inline __ATTRS_o_ai vector unsigned short 7125 vec_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. 7131 static inline __ATTRS_o_ai vector unsigned short 7132 vec_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. 7138 static inline __ATTRS_o_ai vector unsigned short 7139 vec_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 7144 static inline __ATTRS_o_ai vector signed int 7145 vec_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. 7151 static inline __ATTRS_o_ai vector signed int 7152 vec_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. 7158 static inline __ATTRS_o_ai vector signed int 7159 vec_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. 7165 static inline __ATTRS_o_ai vector bool int 7166 vec_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. 7172 static inline __ATTRS_o_ai vector bool int 7173 vec_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. 7179 static inline __ATTRS_o_ai vector bool int 7180 vec_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 7185 static inline __ATTRS_o_ai vector unsigned int 7186 vec_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. 7192 static inline __ATTRS_o_ai vector unsigned int 7193 vec_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. 7199 static inline __ATTRS_o_ai vector unsigned int 7200 vec_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 7205 static inline __ATTRS_o_ai vector signed long long 7206 vec_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. 7212 static inline __ATTRS_o_ai vector signed long long 7213 vec_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. 7219 static inline __ATTRS_o_ai vector signed long long 7220 vec_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. 7226 static inline __ATTRS_o_ai vector bool long long 7227 vec_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. 7233 static inline __ATTRS_o_ai vector bool long long 7234 vec_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. 7240 static inline __ATTRS_o_ai vector bool long long 7241 vec_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 7246 static inline __ATTRS_o_ai vector unsigned long long 7247 vec_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. 7253 static inline __ATTRS_o_ai vector unsigned long long 7254 vec_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. 7260 static inline __ATTRS_o_ai vector unsigned long long 7261 vec_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 7268 static inline __ATTRS_o_ai vector signed char 7269 vec_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 7274 static inline __ATTRS_o_ai vector signed char 7275 vec_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 7280 static inline __ATTRS_o_ai vector unsigned char 7281 vec_srab(vector unsigned char __a, vector signed char __b) { 7282 return __builtin_s390_vsrab(__a, (vector unsigned char)__b); 7283 } 7284 7285 static inline __ATTRS_o_ai vector unsigned char 7286 vec_srab(vector unsigned char __a, vector unsigned char __b) { 7287 return __builtin_s390_vsrab(__a, __b); 7288 } 7289 7290 static inline __ATTRS_o_ai vector signed short 7291 vec_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 7296 static inline __ATTRS_o_ai vector signed short 7297 vec_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 7302 static inline __ATTRS_o_ai vector unsigned short 7303 vec_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 7308 static inline __ATTRS_o_ai vector unsigned short 7309 vec_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 7314 static inline __ATTRS_o_ai vector signed int 7315 vec_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 7320 static inline __ATTRS_o_ai vector signed int 7321 vec_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 7326 static inline __ATTRS_o_ai vector unsigned int 7327 vec_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 7332 static inline __ATTRS_o_ai vector unsigned int 7333 vec_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 7338 static inline __ATTRS_o_ai vector signed long long 7339 vec_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 7344 static inline __ATTRS_o_ai vector signed long long 7345 vec_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 7350 static inline __ATTRS_o_ai vector unsigned long long 7351 vec_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 7356 static inline __ATTRS_o_ai vector unsigned long long 7357 vec_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 7363 static inline __ATTRS_o_ai vector float 7364 vec_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 7369 static inline __ATTRS_o_ai vector float 7370 vec_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 7376 static inline __ATTRS_o_ai vector double 7377 vec_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 7382 static inline __ATTRS_o_ai vector double 7383 vec_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 7390 static inline __ATTRS_o_ai vector signed char 7391 vec_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. 7397 static inline __ATTRS_o_ai vector signed char 7398 vec_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. 7404 static inline __ATTRS_o_ai vector signed char 7405 vec_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. 7411 static inline __ATTRS_o_ai vector bool char 7412 vec_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. 7418 static inline __ATTRS_o_ai vector bool char 7419 vec_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. 7425 static inline __ATTRS_o_ai vector bool char 7426 vec_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 7431 static inline __ATTRS_o_ai vector unsigned char 7432 vec_srl(vector unsigned char __a, vector unsigned char __b) { 7433 return __builtin_s390_vsrl(__a, __b); 7434 } 7435 7436 // This prototype is deprecated. 7437 static inline __ATTRS_o_ai vector unsigned char 7438 vec_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. 7443 static inline __ATTRS_o_ai vector unsigned char 7444 vec_srl(vector unsigned char __a, vector unsigned int __b) { 7445 return __builtin_s390_vsrl(__a, (vector unsigned char)__b); 7446 } 7447 7448 static inline __ATTRS_o_ai vector signed short 7449 vec_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. 7455 static inline __ATTRS_o_ai vector signed short 7456 vec_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. 7462 static inline __ATTRS_o_ai vector signed short 7463 vec_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. 7469 static inline __ATTRS_o_ai vector bool short 7470 vec_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. 7476 static inline __ATTRS_o_ai vector bool short 7477 vec_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. 7483 static inline __ATTRS_o_ai vector bool short 7484 vec_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 7489 static inline __ATTRS_o_ai vector unsigned short 7490 vec_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. 7496 static inline __ATTRS_o_ai vector unsigned short 7497 vec_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. 7503 static inline __ATTRS_o_ai vector unsigned short 7504 vec_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 7509 static inline __ATTRS_o_ai vector signed int 7510 vec_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. 7516 static inline __ATTRS_o_ai vector signed int 7517 vec_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. 7523 static inline __ATTRS_o_ai vector signed int 7524 vec_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. 7530 static inline __ATTRS_o_ai vector bool int 7531 vec_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. 7537 static inline __ATTRS_o_ai vector bool int 7538 vec_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. 7544 static inline __ATTRS_o_ai vector bool int 7545 vec_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 7550 static inline __ATTRS_o_ai vector unsigned int 7551 vec_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. 7557 static inline __ATTRS_o_ai vector unsigned int 7558 vec_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. 7564 static inline __ATTRS_o_ai vector unsigned int 7565 vec_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 7570 static inline __ATTRS_o_ai vector signed long long 7571 vec_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. 7577 static inline __ATTRS_o_ai vector signed long long 7578 vec_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. 7584 static inline __ATTRS_o_ai vector signed long long 7585 vec_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. 7591 static inline __ATTRS_o_ai vector bool long long 7592 vec_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. 7598 static inline __ATTRS_o_ai vector bool long long 7599 vec_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. 7605 static inline __ATTRS_o_ai vector bool long long 7606 vec_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 7611 static inline __ATTRS_o_ai vector unsigned long long 7612 vec_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. 7618 static inline __ATTRS_o_ai vector unsigned long long 7619 vec_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. 7625 static inline __ATTRS_o_ai vector unsigned long long 7626 vec_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 7633 static inline __ATTRS_o_ai vector signed char 7634 vec_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 7639 static inline __ATTRS_o_ai vector signed char 7640 vec_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 7645 static inline __ATTRS_o_ai vector unsigned char 7646 vec_srb(vector unsigned char __a, vector signed char __b) { 7647 return __builtin_s390_vsrlb(__a, (vector unsigned char)__b); 7648 } 7649 7650 static inline __ATTRS_o_ai vector unsigned char 7651 vec_srb(vector unsigned char __a, vector unsigned char __b) { 7652 return __builtin_s390_vsrlb(__a, __b); 7653 } 7654 7655 static inline __ATTRS_o_ai vector signed short 7656 vec_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 7661 static inline __ATTRS_o_ai vector signed short 7662 vec_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 7667 static inline __ATTRS_o_ai vector unsigned short 7668 vec_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 7673 static inline __ATTRS_o_ai vector unsigned short 7674 vec_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 7679 static inline __ATTRS_o_ai vector signed int 7680 vec_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 7685 static inline __ATTRS_o_ai vector signed int 7686 vec_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 7691 static inline __ATTRS_o_ai vector unsigned int 7692 vec_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 7697 static inline __ATTRS_o_ai vector unsigned int 7698 vec_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 7703 static inline __ATTRS_o_ai vector signed long long 7704 vec_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 7709 static inline __ATTRS_o_ai vector signed long long 7710 vec_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 7715 static inline __ATTRS_o_ai vector unsigned long long 7716 vec_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 7721 static inline __ATTRS_o_ai vector unsigned long long 7722 vec_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 7728 static inline __ATTRS_o_ai vector float 7729 vec_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 7734 static inline __ATTRS_o_ai vector float 7735 vec_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 7741 static inline __ATTRS_o_ai vector double 7742 vec_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 7747 static inline __ATTRS_o_ai vector double 7748 vec_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 7757 extern __ATTRS_o vector signed char 7758 vec_srdb(vector signed char __a, vector signed char __b, int __c) 7759 __constant_range(__c, 0, 7); 7760 7761 extern __ATTRS_o vector unsigned char 7762 vec_srdb(vector unsigned char __a, vector unsigned char __b, int __c) 7763 __constant_range(__c, 0, 7); 7764 7765 extern __ATTRS_o vector signed short 7766 vec_srdb(vector signed short __a, vector signed short __b, int __c) 7767 __constant_range(__c, 0, 7); 7768 7769 extern __ATTRS_o vector unsigned short 7770 vec_srdb(vector unsigned short __a, vector unsigned short __b, int __c) 7771 __constant_range(__c, 0, 7); 7772 7773 extern __ATTRS_o vector signed int 7774 vec_srdb(vector signed int __a, vector signed int __b, int __c) 7775 __constant_range(__c, 0, 7); 7776 7777 extern __ATTRS_o vector unsigned int 7778 vec_srdb(vector unsigned int __a, vector unsigned int __b, int __c) 7779 __constant_range(__c, 0, 7); 7780 7781 extern __ATTRS_o vector signed long long 7782 vec_srdb(vector signed long long __a, vector signed long long __b, int __c) 7783 __constant_range(__c, 0, 7); 7784 7785 extern __ATTRS_o vector unsigned long long 7786 vec_srdb(vector unsigned long long __a, vector unsigned long long __b, int __c) 7787 __constant_range(__c, 0, 7); 7788 7789 extern __ATTRS_o vector float 7790 vec_srdb(vector float __a, vector float __b, int __c) 7791 __constant_range(__c, 0, 7); 7792 7793 extern __ATTRS_o vector double 7794 vec_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 7805 static inline __ATTRS_o_ai vector signed char 7806 vec_abs(vector signed char __a) { 7807 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0)); 7808 } 7809 7810 static inline __ATTRS_o_ai vector signed short 7811 vec_abs(vector signed short __a) { 7812 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0)); 7813 } 7814 7815 static inline __ATTRS_o_ai vector signed int 7816 vec_abs(vector signed int __a) { 7817 return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0)); 7818 } 7819 7820 static inline __ATTRS_o_ai vector signed long long 7821 vec_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 7826 static inline __ATTRS_o_ai vector float 7827 vec_abs(vector float __a) { 7828 return __builtin_s390_vflpsb(__a); 7829 } 7830 #endif 7831 7832 static inline __ATTRS_o_ai vector double 7833 vec_abs(vector double __a) { 7834 return __builtin_s390_vflpdb(__a); 7835 } 7836 7837 /*-- vec_nabs ---------------------------------------------------------------*/ 7838 7839 #if __ARCH__ >= 12 7840 static inline __ATTRS_o_ai vector float 7841 vec_nabs(vector float __a) { 7842 return __builtin_s390_vflnsb(__a); 7843 } 7844 #endif 7845 7846 static inline __ATTRS_o_ai vector double 7847 vec_nabs(vector double __a) { 7848 return __builtin_s390_vflndb(__a); 7849 } 7850 7851 /*-- vec_max ----------------------------------------------------------------*/ 7852 7853 static inline __ATTRS_o_ai vector signed char 7854 vec_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. 7859 static inline __ATTRS_o_ai vector signed char 7860 vec_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. 7866 static inline __ATTRS_o_ai vector signed char 7867 vec_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 7872 static inline __ATTRS_o_ai vector unsigned char 7873 vec_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. 7878 static inline __ATTRS_o_ai vector unsigned char 7879 vec_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. 7885 static inline __ATTRS_o_ai vector unsigned char 7886 vec_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 7891 static inline __ATTRS_o_ai vector signed short 7892 vec_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. 7897 static inline __ATTRS_o_ai vector signed short 7898 vec_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. 7904 static inline __ATTRS_o_ai vector signed short 7905 vec_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 7910 static inline __ATTRS_o_ai vector unsigned short 7911 vec_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. 7916 static inline __ATTRS_o_ai vector unsigned short 7917 vec_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. 7923 static inline __ATTRS_o_ai vector unsigned short 7924 vec_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 7929 static inline __ATTRS_o_ai vector signed int 7930 vec_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. 7935 static inline __ATTRS_o_ai vector signed int 7936 vec_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. 7942 static inline __ATTRS_o_ai vector signed int 7943 vec_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 7948 static inline __ATTRS_o_ai vector unsigned int 7949 vec_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. 7954 static inline __ATTRS_o_ai vector unsigned int 7955 vec_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. 7961 static inline __ATTRS_o_ai vector unsigned int 7962 vec_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 7967 static inline __ATTRS_o_ai vector signed long long 7968 vec_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. 7973 static inline __ATTRS_o_ai vector signed long long 7974 vec_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. 7980 static inline __ATTRS_o_ai vector signed long long 7981 vec_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 7986 static inline __ATTRS_o_ai vector unsigned long long 7987 vec_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. 7992 static inline __ATTRS_o_ai vector unsigned long long 7993 vec_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. 7999 static inline __ATTRS_o_ai vector unsigned long long 8000 vec_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 8006 static inline __ATTRS_o_ai vector float 8007 vec_max(vector float __a, vector float __b) { 8008 return __builtin_s390_vfmaxsb(__a, __b, 0); 8009 } 8010 #endif 8011 8012 static inline __ATTRS_o_ai vector double 8013 vec_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 8023 static inline __ATTRS_o_ai vector signed char 8024 vec_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. 8029 static inline __ATTRS_o_ai vector signed char 8030 vec_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. 8036 static inline __ATTRS_o_ai vector signed char 8037 vec_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 8042 static inline __ATTRS_o_ai vector unsigned char 8043 vec_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. 8048 static inline __ATTRS_o_ai vector unsigned char 8049 vec_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. 8055 static inline __ATTRS_o_ai vector unsigned char 8056 vec_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 8061 static inline __ATTRS_o_ai vector signed short 8062 vec_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. 8067 static inline __ATTRS_o_ai vector signed short 8068 vec_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. 8074 static inline __ATTRS_o_ai vector signed short 8075 vec_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 8080 static inline __ATTRS_o_ai vector unsigned short 8081 vec_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. 8086 static inline __ATTRS_o_ai vector unsigned short 8087 vec_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. 8093 static inline __ATTRS_o_ai vector unsigned short 8094 vec_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 8099 static inline __ATTRS_o_ai vector signed int 8100 vec_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. 8105 static inline __ATTRS_o_ai vector signed int 8106 vec_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. 8112 static inline __ATTRS_o_ai vector signed int 8113 vec_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 8118 static inline __ATTRS_o_ai vector unsigned int 8119 vec_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. 8124 static inline __ATTRS_o_ai vector unsigned int 8125 vec_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. 8131 static inline __ATTRS_o_ai vector unsigned int 8132 vec_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 8137 static inline __ATTRS_o_ai vector signed long long 8138 vec_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. 8143 static inline __ATTRS_o_ai vector signed long long 8144 vec_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. 8150 static inline __ATTRS_o_ai vector signed long long 8151 vec_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 8156 static inline __ATTRS_o_ai vector unsigned long long 8157 vec_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. 8162 static inline __ATTRS_o_ai vector unsigned long long 8163 vec_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. 8169 static inline __ATTRS_o_ai vector unsigned long long 8170 vec_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 8176 static inline __ATTRS_o_ai vector float 8177 vec_min(vector float __a, vector float __b) { 8178 return __builtin_s390_vfminsb(__a, __b, 0); 8179 } 8180 #endif 8181 8182 static inline __ATTRS_o_ai vector double 8183 vec_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 8193 static inline __ATTRS_ai vector unsigned char 8194 vec_add_u128(vector unsigned char __a, vector unsigned char __b) { 8195 return __builtin_s390_vaq(__a, __b); 8196 } 8197 8198 /*-- vec_addc ---------------------------------------------------------------*/ 8199 8200 static inline __ATTRS_o_ai vector unsigned char 8201 vec_addc(vector unsigned char __a, vector unsigned char __b) { 8202 return __builtin_s390_vaccb(__a, __b); 8203 } 8204 8205 static inline __ATTRS_o_ai vector unsigned short 8206 vec_addc(vector unsigned short __a, vector unsigned short __b) { 8207 return __builtin_s390_vacch(__a, __b); 8208 } 8209 8210 static inline __ATTRS_o_ai vector unsigned int 8211 vec_addc(vector unsigned int __a, vector unsigned int __b) { 8212 return __builtin_s390_vaccf(__a, __b); 8213 } 8214 8215 static inline __ATTRS_o_ai vector unsigned long long 8216 vec_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 8222 static inline __ATTRS_ai vector unsigned char 8223 vec_addc_u128(vector unsigned char __a, vector unsigned char __b) { 8224 return __builtin_s390_vaccq(__a, __b); 8225 } 8226 8227 /*-- vec_adde_u128 ----------------------------------------------------------*/ 8228 8229 static inline __ATTRS_ai vector unsigned char 8230 vec_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 8237 static inline __ATTRS_ai vector unsigned char 8238 vec_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 8245 static inline __ATTRS_o_ai vector signed char 8246 vec_avg(vector signed char __a, vector signed char __b) { 8247 return __builtin_s390_vavgb(__a, __b); 8248 } 8249 8250 static inline __ATTRS_o_ai vector signed short 8251 vec_avg(vector signed short __a, vector signed short __b) { 8252 return __builtin_s390_vavgh(__a, __b); 8253 } 8254 8255 static inline __ATTRS_o_ai vector signed int 8256 vec_avg(vector signed int __a, vector signed int __b) { 8257 return __builtin_s390_vavgf(__a, __b); 8258 } 8259 8260 static inline __ATTRS_o_ai vector signed long long 8261 vec_avg(vector signed long long __a, vector signed long long __b) { 8262 return __builtin_s390_vavgg(__a, __b); 8263 } 8264 8265 static inline __ATTRS_o_ai vector unsigned char 8266 vec_avg(vector unsigned char __a, vector unsigned char __b) { 8267 return __builtin_s390_vavglb(__a, __b); 8268 } 8269 8270 static inline __ATTRS_o_ai vector unsigned short 8271 vec_avg(vector unsigned short __a, vector unsigned short __b) { 8272 return __builtin_s390_vavglh(__a, __b); 8273 } 8274 8275 static inline __ATTRS_o_ai vector unsigned int 8276 vec_avg(vector unsigned int __a, vector unsigned int __b) { 8277 return __builtin_s390_vavglf(__a, __b); 8278 } 8279 8280 static inline __ATTRS_o_ai vector unsigned long long 8281 vec_avg(vector unsigned long long __a, vector unsigned long long __b) { 8282 return __builtin_s390_vavglg(__a, __b); 8283 } 8284 8285 /*-- vec_checksum -----------------------------------------------------------*/ 8286 8287 static inline __ATTRS_ai vector unsigned int 8288 vec_checksum(vector unsigned int __a, vector unsigned int __b) { 8289 return __builtin_s390_vcksm(__a, __b); 8290 } 8291 8292 /*-- vec_gfmsum -------------------------------------------------------------*/ 8293 8294 static inline __ATTRS_o_ai vector unsigned short 8295 vec_gfmsum(vector unsigned char __a, vector unsigned char __b) { 8296 return __builtin_s390_vgfmb(__a, __b); 8297 } 8298 8299 static inline __ATTRS_o_ai vector unsigned int 8300 vec_gfmsum(vector unsigned short __a, vector unsigned short __b) { 8301 return __builtin_s390_vgfmh(__a, __b); 8302 } 8303 8304 static inline __ATTRS_o_ai vector unsigned long long 8305 vec_gfmsum(vector unsigned int __a, vector unsigned int __b) { 8306 return __builtin_s390_vgfmf(__a, __b); 8307 } 8308 8309 /*-- vec_gfmsum_128 ---------------------------------------------------------*/ 8310 8311 static inline __ATTRS_o_ai vector unsigned char 8312 vec_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 8318 static inline __ATTRS_o_ai vector unsigned short 8319 vec_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 8324 static inline __ATTRS_o_ai vector unsigned int 8325 vec_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 8330 static inline __ATTRS_o_ai vector unsigned long long 8331 vec_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 8338 static inline __ATTRS_o_ai vector unsigned char 8339 vec_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 8347 static inline __ATTRS_o_ai vector signed char 8348 vec_mladd(vector signed char __a, vector signed char __b, 8349 vector signed char __c) { 8350 return __a * __b + __c; 8351 } 8352 8353 static inline __ATTRS_o_ai vector signed char 8354 vec_mladd(vector unsigned char __a, vector signed char __b, 8355 vector signed char __c) { 8356 return (vector signed char)__a * __b + __c; 8357 } 8358 8359 static inline __ATTRS_o_ai vector signed char 8360 vec_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 8365 static inline __ATTRS_o_ai vector unsigned char 8366 vec_mladd(vector unsigned char __a, vector unsigned char __b, 8367 vector unsigned char __c) { 8368 return __a * __b + __c; 8369 } 8370 8371 static inline __ATTRS_o_ai vector signed short 8372 vec_mladd(vector signed short __a, vector signed short __b, 8373 vector signed short __c) { 8374 return __a * __b + __c; 8375 } 8376 8377 static inline __ATTRS_o_ai vector signed short 8378 vec_mladd(vector unsigned short __a, vector signed short __b, 8379 vector signed short __c) { 8380 return (vector signed short)__a * __b + __c; 8381 } 8382 8383 static inline __ATTRS_o_ai vector signed short 8384 vec_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 8389 static inline __ATTRS_o_ai vector unsigned short 8390 vec_mladd(vector unsigned short __a, vector unsigned short __b, 8391 vector unsigned short __c) { 8392 return __a * __b + __c; 8393 } 8394 8395 static inline __ATTRS_o_ai vector signed int 8396 vec_mladd(vector signed int __a, vector signed int __b, 8397 vector signed int __c) { 8398 return __a * __b + __c; 8399 } 8400 8401 static inline __ATTRS_o_ai vector signed int 8402 vec_mladd(vector unsigned int __a, vector signed int __b, 8403 vector signed int __c) { 8404 return (vector signed int)__a * __b + __c; 8405 } 8406 8407 static inline __ATTRS_o_ai vector signed int 8408 vec_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 8413 static inline __ATTRS_o_ai vector unsigned int 8414 vec_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 8421 static inline __ATTRS_o_ai vector signed char 8422 vec_mhadd(vector signed char __a, vector signed char __b, 8423 vector signed char __c) { 8424 return __builtin_s390_vmahb(__a, __b, __c); 8425 } 8426 8427 static inline __ATTRS_o_ai vector unsigned char 8428 vec_mhadd(vector unsigned char __a, vector unsigned char __b, 8429 vector unsigned char __c) { 8430 return __builtin_s390_vmalhb(__a, __b, __c); 8431 } 8432 8433 static inline __ATTRS_o_ai vector signed short 8434 vec_mhadd(vector signed short __a, vector signed short __b, 8435 vector signed short __c) { 8436 return __builtin_s390_vmahh(__a, __b, __c); 8437 } 8438 8439 static inline __ATTRS_o_ai vector unsigned short 8440 vec_mhadd(vector unsigned short __a, vector unsigned short __b, 8441 vector unsigned short __c) { 8442 return __builtin_s390_vmalhh(__a, __b, __c); 8443 } 8444 8445 static inline __ATTRS_o_ai vector signed int 8446 vec_mhadd(vector signed int __a, vector signed int __b, 8447 vector signed int __c) { 8448 return __builtin_s390_vmahf(__a, __b, __c); 8449 } 8450 8451 static inline __ATTRS_o_ai vector unsigned int 8452 vec_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 8459 static inline __ATTRS_o_ai vector signed short 8460 vec_meadd(vector signed char __a, vector signed char __b, 8461 vector signed short __c) { 8462 return __builtin_s390_vmaeb(__a, __b, __c); 8463 } 8464 8465 static inline __ATTRS_o_ai vector unsigned short 8466 vec_meadd(vector unsigned char __a, vector unsigned char __b, 8467 vector unsigned short __c) { 8468 return __builtin_s390_vmaleb(__a, __b, __c); 8469 } 8470 8471 static inline __ATTRS_o_ai vector signed int 8472 vec_meadd(vector signed short __a, vector signed short __b, 8473 vector signed int __c) { 8474 return __builtin_s390_vmaeh(__a, __b, __c); 8475 } 8476 8477 static inline __ATTRS_o_ai vector unsigned int 8478 vec_meadd(vector unsigned short __a, vector unsigned short __b, 8479 vector unsigned int __c) { 8480 return __builtin_s390_vmaleh(__a, __b, __c); 8481 } 8482 8483 static inline __ATTRS_o_ai vector signed long long 8484 vec_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 8489 static inline __ATTRS_o_ai vector unsigned long long 8490 vec_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 8497 static inline __ATTRS_o_ai vector signed short 8498 vec_moadd(vector signed char __a, vector signed char __b, 8499 vector signed short __c) { 8500 return __builtin_s390_vmaob(__a, __b, __c); 8501 } 8502 8503 static inline __ATTRS_o_ai vector unsigned short 8504 vec_moadd(vector unsigned char __a, vector unsigned char __b, 8505 vector unsigned short __c) { 8506 return __builtin_s390_vmalob(__a, __b, __c); 8507 } 8508 8509 static inline __ATTRS_o_ai vector signed int 8510 vec_moadd(vector signed short __a, vector signed short __b, 8511 vector signed int __c) { 8512 return __builtin_s390_vmaoh(__a, __b, __c); 8513 } 8514 8515 static inline __ATTRS_o_ai vector unsigned int 8516 vec_moadd(vector unsigned short __a, vector unsigned short __b, 8517 vector unsigned int __c) { 8518 return __builtin_s390_vmaloh(__a, __b, __c); 8519 } 8520 8521 static inline __ATTRS_o_ai vector signed long long 8522 vec_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 8527 static inline __ATTRS_o_ai vector unsigned long long 8528 vec_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 8535 static inline __ATTRS_o_ai vector signed char 8536 vec_mulh(vector signed char __a, vector signed char __b) { 8537 return __builtin_s390_vmhb(__a, __b); 8538 } 8539 8540 static inline __ATTRS_o_ai vector unsigned char 8541 vec_mulh(vector unsigned char __a, vector unsigned char __b) { 8542 return __builtin_s390_vmlhb(__a, __b); 8543 } 8544 8545 static inline __ATTRS_o_ai vector signed short 8546 vec_mulh(vector signed short __a, vector signed short __b) { 8547 return __builtin_s390_vmhh(__a, __b); 8548 } 8549 8550 static inline __ATTRS_o_ai vector unsigned short 8551 vec_mulh(vector unsigned short __a, vector unsigned short __b) { 8552 return __builtin_s390_vmlhh(__a, __b); 8553 } 8554 8555 static inline __ATTRS_o_ai vector signed int 8556 vec_mulh(vector signed int __a, vector signed int __b) { 8557 return __builtin_s390_vmhf(__a, __b); 8558 } 8559 8560 static inline __ATTRS_o_ai vector unsigned int 8561 vec_mulh(vector unsigned int __a, vector unsigned int __b) { 8562 return __builtin_s390_vmlhf(__a, __b); 8563 } 8564 8565 /*-- vec_mule ---------------------------------------------------------------*/ 8566 8567 static inline __ATTRS_o_ai vector signed short 8568 vec_mule(vector signed char __a, vector signed char __b) { 8569 return __builtin_s390_vmeb(__a, __b); 8570 } 8571 8572 static inline __ATTRS_o_ai vector unsigned short 8573 vec_mule(vector unsigned char __a, vector unsigned char __b) { 8574 return __builtin_s390_vmleb(__a, __b); 8575 } 8576 8577 static inline __ATTRS_o_ai vector signed int 8578 vec_mule(vector signed short __a, vector signed short __b) { 8579 return __builtin_s390_vmeh(__a, __b); 8580 } 8581 8582 static inline __ATTRS_o_ai vector unsigned int 8583 vec_mule(vector unsigned short __a, vector unsigned short __b) { 8584 return __builtin_s390_vmleh(__a, __b); 8585 } 8586 8587 static inline __ATTRS_o_ai vector signed long long 8588 vec_mule(vector signed int __a, vector signed int __b) { 8589 return __builtin_s390_vmef(__a, __b); 8590 } 8591 8592 static inline __ATTRS_o_ai vector unsigned long long 8593 vec_mule(vector unsigned int __a, vector unsigned int __b) { 8594 return __builtin_s390_vmlef(__a, __b); 8595 } 8596 8597 /*-- vec_mulo ---------------------------------------------------------------*/ 8598 8599 static inline __ATTRS_o_ai vector signed short 8600 vec_mulo(vector signed char __a, vector signed char __b) { 8601 return __builtin_s390_vmob(__a, __b); 8602 } 8603 8604 static inline __ATTRS_o_ai vector unsigned short 8605 vec_mulo(vector unsigned char __a, vector unsigned char __b) { 8606 return __builtin_s390_vmlob(__a, __b); 8607 } 8608 8609 static inline __ATTRS_o_ai vector signed int 8610 vec_mulo(vector signed short __a, vector signed short __b) { 8611 return __builtin_s390_vmoh(__a, __b); 8612 } 8613 8614 static inline __ATTRS_o_ai vector unsigned int 8615 vec_mulo(vector unsigned short __a, vector unsigned short __b) { 8616 return __builtin_s390_vmloh(__a, __b); 8617 } 8618 8619 static inline __ATTRS_o_ai vector signed long long 8620 vec_mulo(vector signed int __a, vector signed int __b) { 8621 return __builtin_s390_vmof(__a, __b); 8622 } 8623 8624 static inline __ATTRS_o_ai vector unsigned long long 8625 vec_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 8638 static inline __ATTRS_ai vector unsigned char 8639 vec_sub_u128(vector unsigned char __a, vector unsigned char __b) { 8640 return __builtin_s390_vsq(__a, __b); 8641 } 8642 8643 /*-- vec_subc ---------------------------------------------------------------*/ 8644 8645 static inline __ATTRS_o_ai vector unsigned char 8646 vec_subc(vector unsigned char __a, vector unsigned char __b) { 8647 return __builtin_s390_vscbib(__a, __b); 8648 } 8649 8650 static inline __ATTRS_o_ai vector unsigned short 8651 vec_subc(vector unsigned short __a, vector unsigned short __b) { 8652 return __builtin_s390_vscbih(__a, __b); 8653 } 8654 8655 static inline __ATTRS_o_ai vector unsigned int 8656 vec_subc(vector unsigned int __a, vector unsigned int __b) { 8657 return __builtin_s390_vscbif(__a, __b); 8658 } 8659 8660 static inline __ATTRS_o_ai vector unsigned long long 8661 vec_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 8667 static inline __ATTRS_ai vector unsigned char 8668 vec_subc_u128(vector unsigned char __a, vector unsigned char __b) { 8669 return __builtin_s390_vscbiq(__a, __b); 8670 } 8671 8672 /*-- vec_sube_u128 ----------------------------------------------------------*/ 8673 8674 static inline __ATTRS_ai vector unsigned char 8675 vec_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 8682 static inline __ATTRS_ai vector unsigned char 8683 vec_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 8690 static inline __ATTRS_o_ai vector unsigned long long 8691 vec_sum2(vector unsigned short __a, vector unsigned short __b) { 8692 return __builtin_s390_vsumgh(__a, __b); 8693 } 8694 8695 static inline __ATTRS_o_ai vector unsigned long long 8696 vec_sum2(vector unsigned int __a, vector unsigned int __b) { 8697 return __builtin_s390_vsumgf(__a, __b); 8698 } 8699 8700 /*-- vec_sum_u128 -----------------------------------------------------------*/ 8701 8702 static inline __ATTRS_o_ai vector unsigned char 8703 vec_sum_u128(vector unsigned int __a, vector unsigned int __b) { 8704 return __builtin_s390_vsumqf(__a, __b); 8705 } 8706 8707 static inline __ATTRS_o_ai vector unsigned char 8708 vec_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 8714 static inline __ATTRS_o_ai vector unsigned int 8715 vec_sum4(vector unsigned char __a, vector unsigned char __b) { 8716 return __builtin_s390_vsumb(__a, __b); 8717 } 8718 8719 static inline __ATTRS_o_ai vector unsigned int 8720 vec_sum4(vector unsigned short __a, vector unsigned short __b) { 8721 return __builtin_s390_vsumh(__a, __b); 8722 } 8723 8724 /*-- vec_test_mask ----------------------------------------------------------*/ 8725 8726 static inline __ATTRS_o_ai int 8727 vec_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 8732 static inline __ATTRS_o_ai int 8733 vec_test_mask(vector unsigned char __a, vector unsigned char __b) { 8734 return __builtin_s390_vtm(__a, __b); 8735 } 8736 8737 static inline __ATTRS_o_ai int 8738 vec_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 8743 static inline __ATTRS_o_ai int 8744 vec_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 8749 static inline __ATTRS_o_ai int 8750 vec_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 8755 static inline __ATTRS_o_ai int 8756 vec_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 8761 static inline __ATTRS_o_ai int 8762 vec_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 8767 static inline __ATTRS_o_ai int 8768 vec_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 8774 static inline __ATTRS_o_ai int 8775 vec_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 8781 static inline __ATTRS_o_ai int 8782 vec_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 8790 static inline __ATTRS_o_ai vector float 8791 vec_madd(vector float __a, vector float __b, vector float __c) { 8792 return __builtin_s390_vfmasb(__a, __b, __c); 8793 } 8794 #endif 8795 8796 static inline __ATTRS_o_ai vector double 8797 vec_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 8804 static inline __ATTRS_o_ai vector float 8805 vec_msub(vector float __a, vector float __b, vector float __c) { 8806 return __builtin_s390_vfmssb(__a, __b, __c); 8807 } 8808 #endif 8809 8810 static inline __ATTRS_o_ai vector double 8811 vec_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 8818 static inline __ATTRS_o_ai vector float 8819 vec_nmadd(vector float __a, vector float __b, vector float __c) { 8820 return __builtin_s390_vfnmasb(__a, __b, __c); 8821 } 8822 8823 static inline __ATTRS_o_ai vector double 8824 vec_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 8832 static inline __ATTRS_o_ai vector float 8833 vec_nmsub(vector float __a, vector float __b, vector float __c) { 8834 return __builtin_s390_vfnmssb(__a, __b, __c); 8835 } 8836 8837 static inline __ATTRS_o_ai vector double 8838 vec_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 8846 static inline __ATTRS_o_ai vector float 8847 vec_sqrt(vector float __a) { 8848 return __builtin_s390_vfsqsb(__a); 8849 } 8850 #endif 8851 8852 static inline __ATTRS_o_ai vector double 8853 vec_sqrt(vector double __a) { 8854 return __builtin_s390_vfsqdb(__a); 8855 } 8856 8857 /*-- vec_ld2f ---------------------------------------------------------------*/ 8858 8859 // This prototype is deprecated. 8860 static inline __ATTRS_ai vector double 8861 vec_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. 8869 static inline __ATTRS_ai void 8870 vec_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. 8878 static inline __ATTRS_o_ai vector double 8879 vec_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. 8887 static inline __ATTRS_o_ai vector double 8888 vec_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. 8898 static inline __ATTRS_o_ai vector signed long long 8899 vec_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. 8908 static inline __ATTRS_o_ai vector unsigned long long 8909 vec_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 8918 static inline __ATTRS_ai vector double 8919 vec_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 8929 static inline __ATTRS_ai vector float 8930 vec_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 8939 static inline __ATTRS_o_ai vector double 8940 vec_double(vector signed long long __a) { 8941 return __builtin_convertvector(__a, vector double); 8942 } 8943 8944 static inline __ATTRS_o_ai vector double 8945 vec_double(vector unsigned long long __a) { 8946 return __builtin_convertvector(__a, vector double); 8947 } 8948 8949 /*-- vec_float --------------------------------------------------------------*/ 8950 8951 #if __ARCH__ >= 13 8952 8953 static inline __ATTRS_o_ai vector float 8954 vec_float(vector signed int __a) { 8955 return __builtin_convertvector(__a, vector float); 8956 } 8957 8958 static inline __ATTRS_o_ai vector float 8959 vec_float(vector unsigned int __a) { 8960 return __builtin_convertvector(__a, vector float); 8961 } 8962 8963 #endif 8964 8965 /*-- vec_signed -------------------------------------------------------------*/ 8966 8967 static inline __ATTRS_o_ai vector signed long long 8968 vec_signed(vector double __a) { 8969 return __builtin_convertvector(__a, vector signed long long); 8970 } 8971 8972 #if __ARCH__ >= 13 8973 static inline __ATTRS_o_ai vector signed int 8974 vec_signed(vector float __a) { 8975 return __builtin_convertvector(__a, vector signed int); 8976 } 8977 #endif 8978 8979 /*-- vec_unsigned -----------------------------------------------------------*/ 8980 8981 static inline __ATTRS_o_ai vector unsigned long long 8982 vec_unsigned(vector double __a) { 8983 return __builtin_convertvector(__a, vector unsigned long long); 8984 } 8985 8986 #if __ARCH__ >= 13 8987 static inline __ATTRS_o_ai vector unsigned int 8988 vec_unsigned(vector float __a) { 8989 return __builtin_convertvector(__a, vector unsigned int); 8990 } 8991 #endif 8992 8993 /*-- vec_roundp -------------------------------------------------------------*/ 8994 8995 #if __ARCH__ >= 12 8996 static inline __ATTRS_o_ai vector float 8997 vec_roundp(vector float __a) { 8998 return __builtin_s390_vfisb(__a, 4, 6); 8999 } 9000 #endif 9001 9002 static inline __ATTRS_o_ai vector double 9003 vec_roundp(vector double __a) { 9004 return __builtin_s390_vfidb(__a, 4, 6); 9005 } 9006 9007 /*-- vec_ceil ---------------------------------------------------------------*/ 9008 9009 #if __ARCH__ >= 12 9010 static inline __ATTRS_o_ai vector float 9011 vec_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 9017 static inline __ATTRS_o_ai vector double 9018 vec_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 9026 static inline __ATTRS_o_ai vector float 9027 vec_roundm(vector float __a) { 9028 return __builtin_s390_vfisb(__a, 4, 7); 9029 } 9030 #endif 9031 9032 static inline __ATTRS_o_ai vector double 9033 vec_roundm(vector double __a) { 9034 return __builtin_s390_vfidb(__a, 4, 7); 9035 } 9036 9037 /*-- vec_floor --------------------------------------------------------------*/ 9038 9039 #if __ARCH__ >= 12 9040 static inline __ATTRS_o_ai vector float 9041 vec_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 9047 static inline __ATTRS_o_ai vector double 9048 vec_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 9056 static inline __ATTRS_o_ai vector float 9057 vec_roundz(vector float __a) { 9058 return __builtin_s390_vfisb(__a, 4, 5); 9059 } 9060 #endif 9061 9062 static inline __ATTRS_o_ai vector double 9063 vec_roundz(vector double __a) { 9064 return __builtin_s390_vfidb(__a, 4, 5); 9065 } 9066 9067 /*-- vec_trunc --------------------------------------------------------------*/ 9068 9069 #if __ARCH__ >= 12 9070 static inline __ATTRS_o_ai vector float 9071 vec_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 9077 static inline __ATTRS_o_ai vector double 9078 vec_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 9086 static inline __ATTRS_o_ai vector float 9087 vec_roundc(vector float __a) { 9088 return __builtin_s390_vfisb(__a, 4, 0); 9089 } 9090 #endif 9091 9092 static inline __ATTRS_o_ai vector double 9093 vec_roundc(vector double __a) { 9094 return __builtin_s390_vfidb(__a, 4, 0); 9095 } 9096 9097 /*-- vec_rint ---------------------------------------------------------------*/ 9098 9099 #if __ARCH__ >= 12 9100 static inline __ATTRS_o_ai vector float 9101 vec_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 9107 static inline __ATTRS_o_ai vector double 9108 vec_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 9116 static inline __ATTRS_o_ai vector float 9117 vec_round(vector float __a) { 9118 return __builtin_s390_vfisb(__a, 4, 4); 9119 } 9120 #endif 9121 9122 static inline __ATTRS_o_ai vector double 9123 vec_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 9130 extern __ATTRS_o vector bool int 9131 vec_fp_test_data_class(vector float __a, int __b, int *__c) 9132 __constant_range(__b, 0, 4095); 9133 9134 extern __ATTRS_o vector bool long long 9135 vec_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 9186 static inline __ATTRS_o_ai vector signed char 9187 vec_cp_until_zero(vector signed char __a) { 9188 return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a); 9189 } 9190 9191 static inline __ATTRS_o_ai vector bool char 9192 vec_cp_until_zero(vector bool char __a) { 9193 return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a); 9194 } 9195 9196 static inline __ATTRS_o_ai vector unsigned char 9197 vec_cp_until_zero(vector unsigned char __a) { 9198 return __builtin_s390_vistrb(__a); 9199 } 9200 9201 static inline __ATTRS_o_ai vector signed short 9202 vec_cp_until_zero(vector signed short __a) { 9203 return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a); 9204 } 9205 9206 static inline __ATTRS_o_ai vector bool short 9207 vec_cp_until_zero(vector bool short __a) { 9208 return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a); 9209 } 9210 9211 static inline __ATTRS_o_ai vector unsigned short 9212 vec_cp_until_zero(vector unsigned short __a) { 9213 return __builtin_s390_vistrh(__a); 9214 } 9215 9216 static inline __ATTRS_o_ai vector signed int 9217 vec_cp_until_zero(vector signed int __a) { 9218 return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a); 9219 } 9220 9221 static inline __ATTRS_o_ai vector bool int 9222 vec_cp_until_zero(vector bool int __a) { 9223 return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a); 9224 } 9225 9226 static inline __ATTRS_o_ai vector unsigned int 9227 vec_cp_until_zero(vector unsigned int __a) { 9228 return __builtin_s390_vistrf(__a); 9229 } 9230 9231 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/ 9232 9233 static inline __ATTRS_o_ai vector signed char 9234 vec_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 9239 static inline __ATTRS_o_ai vector bool char 9240 vec_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 9245 static inline __ATTRS_o_ai vector unsigned char 9246 vec_cp_until_zero_cc(vector unsigned char __a, int *__cc) { 9247 return __builtin_s390_vistrbs(__a, __cc); 9248 } 9249 9250 static inline __ATTRS_o_ai vector signed short 9251 vec_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 9256 static inline __ATTRS_o_ai vector bool short 9257 vec_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 9262 static inline __ATTRS_o_ai vector unsigned short 9263 vec_cp_until_zero_cc(vector unsigned short __a, int *__cc) { 9264 return __builtin_s390_vistrhs(__a, __cc); 9265 } 9266 9267 static inline __ATTRS_o_ai vector signed int 9268 vec_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 9273 static inline __ATTRS_o_ai vector bool int 9274 vec_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 9279 static inline __ATTRS_o_ai vector unsigned int 9280 vec_cp_until_zero_cc(vector unsigned int __a, int *__cc) { 9281 return __builtin_s390_vistrfs(__a, __cc); 9282 } 9283 9284 /*-- vec_cmpeq_idx ----------------------------------------------------------*/ 9285 9286 static inline __ATTRS_o_ai vector signed char 9287 vec_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 9293 static inline __ATTRS_o_ai vector unsigned char 9294 vec_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 9299 static inline __ATTRS_o_ai vector unsigned char 9300 vec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) { 9301 return __builtin_s390_vfeeb(__a, __b); 9302 } 9303 9304 static inline __ATTRS_o_ai vector signed short 9305 vec_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 9311 static inline __ATTRS_o_ai vector unsigned short 9312 vec_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 9317 static inline __ATTRS_o_ai vector unsigned short 9318 vec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) { 9319 return __builtin_s390_vfeeh(__a, __b); 9320 } 9321 9322 static inline __ATTRS_o_ai vector signed int 9323 vec_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 9329 static inline __ATTRS_o_ai vector unsigned int 9330 vec_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 9335 static inline __ATTRS_o_ai vector unsigned int 9336 vec_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 9342 static inline __ATTRS_o_ai vector signed char 9343 vec_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 9349 static inline __ATTRS_o_ai vector unsigned char 9350 vec_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 9355 static inline __ATTRS_o_ai vector unsigned char 9356 vec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b, 9357 int *__cc) { 9358 return __builtin_s390_vfeebs(__a, __b, __cc); 9359 } 9360 9361 static inline __ATTRS_o_ai vector signed short 9362 vec_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 9368 static inline __ATTRS_o_ai vector unsigned short 9369 vec_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 9374 static inline __ATTRS_o_ai vector unsigned short 9375 vec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b, 9376 int *__cc) { 9377 return __builtin_s390_vfeehs(__a, __b, __cc); 9378 } 9379 9380 static inline __ATTRS_o_ai vector signed int 9381 vec_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 9387 static inline __ATTRS_o_ai vector unsigned int 9388 vec_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 9393 static inline __ATTRS_o_ai vector unsigned int 9394 vec_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 9400 static inline __ATTRS_o_ai vector signed char 9401 vec_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 9407 static inline __ATTRS_o_ai vector unsigned char 9408 vec_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 9413 static inline __ATTRS_o_ai vector unsigned char 9414 vec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) { 9415 return __builtin_s390_vfeezb(__a, __b); 9416 } 9417 9418 static inline __ATTRS_o_ai vector signed short 9419 vec_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 9425 static inline __ATTRS_o_ai vector unsigned short 9426 vec_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 9431 static inline __ATTRS_o_ai vector unsigned short 9432 vec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) { 9433 return __builtin_s390_vfeezh(__a, __b); 9434 } 9435 9436 static inline __ATTRS_o_ai vector signed int 9437 vec_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 9443 static inline __ATTRS_o_ai vector unsigned int 9444 vec_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 9449 static inline __ATTRS_o_ai vector unsigned int 9450 vec_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 9456 static inline __ATTRS_o_ai vector signed char 9457 vec_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 9464 static inline __ATTRS_o_ai vector unsigned char 9465 vec_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 9470 static inline __ATTRS_o_ai vector unsigned char 9471 vec_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 9476 static inline __ATTRS_o_ai vector signed short 9477 vec_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 9484 static inline __ATTRS_o_ai vector unsigned short 9485 vec_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 9490 static inline __ATTRS_o_ai vector unsigned short 9491 vec_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 9496 static inline __ATTRS_o_ai vector signed int 9497 vec_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 9503 static inline __ATTRS_o_ai vector unsigned int 9504 vec_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 9509 static inline __ATTRS_o_ai vector unsigned int 9510 vec_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 9517 static inline __ATTRS_o_ai vector signed char 9518 vec_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 9524 static inline __ATTRS_o_ai vector unsigned char 9525 vec_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 9530 static inline __ATTRS_o_ai vector unsigned char 9531 vec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) { 9532 return __builtin_s390_vfeneb(__a, __b); 9533 } 9534 9535 static inline __ATTRS_o_ai vector signed short 9536 vec_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 9542 static inline __ATTRS_o_ai vector unsigned short 9543 vec_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 9548 static inline __ATTRS_o_ai vector unsigned short 9549 vec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) { 9550 return __builtin_s390_vfeneh(__a, __b); 9551 } 9552 9553 static inline __ATTRS_o_ai vector signed int 9554 vec_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 9560 static inline __ATTRS_o_ai vector unsigned int 9561 vec_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 9566 static inline __ATTRS_o_ai vector unsigned int 9567 vec_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 9573 static inline __ATTRS_o_ai vector signed char 9574 vec_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 9580 static inline __ATTRS_o_ai vector unsigned char 9581 vec_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 9586 static inline __ATTRS_o_ai vector unsigned char 9587 vec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b, 9588 int *__cc) { 9589 return __builtin_s390_vfenebs(__a, __b, __cc); 9590 } 9591 9592 static inline __ATTRS_o_ai vector signed short 9593 vec_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 9599 static inline __ATTRS_o_ai vector unsigned short 9600 vec_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 9605 static inline __ATTRS_o_ai vector unsigned short 9606 vec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b, 9607 int *__cc) { 9608 return __builtin_s390_vfenehs(__a, __b, __cc); 9609 } 9610 9611 static inline __ATTRS_o_ai vector signed int 9612 vec_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 9618 static inline __ATTRS_o_ai vector unsigned int 9619 vec_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 9624 static inline __ATTRS_o_ai vector unsigned int 9625 vec_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 9631 static inline __ATTRS_o_ai vector signed char 9632 vec_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 9638 static inline __ATTRS_o_ai vector unsigned char 9639 vec_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 9644 static inline __ATTRS_o_ai vector unsigned char 9645 vec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) { 9646 return __builtin_s390_vfenezb(__a, __b); 9647 } 9648 9649 static inline __ATTRS_o_ai vector signed short 9650 vec_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 9656 static inline __ATTRS_o_ai vector unsigned short 9657 vec_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 9662 static inline __ATTRS_o_ai vector unsigned short 9663 vec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) { 9664 return __builtin_s390_vfenezh(__a, __b); 9665 } 9666 9667 static inline __ATTRS_o_ai vector signed int 9668 vec_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 9674 static inline __ATTRS_o_ai vector unsigned int 9675 vec_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 9680 static inline __ATTRS_o_ai vector unsigned int 9681 vec_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 9687 static inline __ATTRS_o_ai vector signed char 9688 vec_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 9695 static inline __ATTRS_o_ai vector unsigned char 9696 vec_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 9701 static inline __ATTRS_o_ai vector unsigned char 9702 vec_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 9707 static inline __ATTRS_o_ai vector signed short 9708 vec_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 9715 static inline __ATTRS_o_ai vector unsigned short 9716 vec_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 9721 static inline __ATTRS_o_ai vector unsigned short 9722 vec_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 9727 static inline __ATTRS_o_ai vector signed int 9728 vec_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 9734 static inline __ATTRS_o_ai vector unsigned int 9735 vec_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 9740 static inline __ATTRS_o_ai vector unsigned int 9741 vec_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 9748 static inline __ATTRS_o_ai vector bool char 9749 vec_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 9754 static inline __ATTRS_o_ai vector bool short 9755 vec_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 9760 static inline __ATTRS_o_ai vector bool int 9761 vec_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 9768 static inline __ATTRS_o_ai vector bool char 9769 vec_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 9774 static inline __ATTRS_o_ai vector bool short 9775 vec_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 9780 static inline __ATTRS_o_ai vector bool int 9781 vec_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 9788 static inline __ATTRS_o_ai vector unsigned char 9789 vec_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 9794 static inline __ATTRS_o_ai vector unsigned short 9795 vec_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 9800 static inline __ATTRS_o_ai vector unsigned int 9801 vec_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 9808 static inline __ATTRS_o_ai vector unsigned char 9809 vec_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 9814 static inline __ATTRS_o_ai vector unsigned short 9815 vec_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 9820 static inline __ATTRS_o_ai vector unsigned int 9821 vec_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 9828 static inline __ATTRS_o_ai vector unsigned char 9829 vec_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 9834 static inline __ATTRS_o_ai vector unsigned short 9835 vec_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 9840 static inline __ATTRS_o_ai vector unsigned int 9841 vec_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 9848 static inline __ATTRS_o_ai vector unsigned char 9849 vec_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 9854 static inline __ATTRS_o_ai vector unsigned short 9855 vec_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 9860 static inline __ATTRS_o_ai vector unsigned int 9861 vec_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 9868 static inline __ATTRS_o_ai vector bool char 9869 vec_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 9874 static inline __ATTRS_o_ai vector bool short 9875 vec_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 9880 static inline __ATTRS_o_ai vector bool int 9881 vec_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 9888 static inline __ATTRS_o_ai vector bool char 9889 vec_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 9894 static inline __ATTRS_o_ai vector bool short 9895 vec_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 9900 static inline __ATTRS_o_ai vector bool int 9901 vec_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 9908 static inline __ATTRS_o_ai vector unsigned char 9909 vec_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 9914 static inline __ATTRS_o_ai vector unsigned short 9915 vec_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 9920 static inline __ATTRS_o_ai vector unsigned int 9921 vec_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 9928 static inline __ATTRS_o_ai vector unsigned char 9929 vec_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 9934 static inline __ATTRS_o_ai vector unsigned short 9935 vec_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 9940 static inline __ATTRS_o_ai vector unsigned int 9941 vec_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 9948 static inline __ATTRS_o_ai vector unsigned char 9949 vec_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 9954 static inline __ATTRS_o_ai vector unsigned short 9955 vec_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 9960 static inline __ATTRS_o_ai vector unsigned int 9961 vec_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 9968 static inline __ATTRS_o_ai vector unsigned char 9969 vec_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 9974 static inline __ATTRS_o_ai vector unsigned short 9975 vec_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 9980 static inline __ATTRS_o_ai vector unsigned int 9981 vec_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 9988 static inline __ATTRS_o_ai vector bool char 9989 vec_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 9995 static inline __ATTRS_o_ai vector bool char 9996 vec_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 10002 static inline __ATTRS_o_ai vector bool char 10003 vec_find_any_eq(vector unsigned char __a, vector unsigned char __b) { 10004 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4); 10005 } 10006 10007 static inline __ATTRS_o_ai vector bool short 10008 vec_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 10014 static inline __ATTRS_o_ai vector bool short 10015 vec_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 10021 static inline __ATTRS_o_ai vector bool short 10022 vec_find_any_eq(vector unsigned short __a, vector unsigned short __b) { 10023 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4); 10024 } 10025 10026 static inline __ATTRS_o_ai vector bool int 10027 vec_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 10033 static inline __ATTRS_o_ai vector bool int 10034 vec_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 10040 static inline __ATTRS_o_ai vector bool int 10041 vec_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 10047 static inline __ATTRS_o_ai vector bool char 10048 vec_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 10054 static inline __ATTRS_o_ai vector bool char 10055 vec_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 10061 static inline __ATTRS_o_ai vector bool char 10062 vec_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 10067 static inline __ATTRS_o_ai vector bool short 10068 vec_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 10075 static inline __ATTRS_o_ai vector bool short 10076 vec_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 10082 static inline __ATTRS_o_ai vector bool short 10083 vec_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 10088 static inline __ATTRS_o_ai vector bool int 10089 vec_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 10095 static inline __ATTRS_o_ai vector bool int 10096 vec_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 10102 static inline __ATTRS_o_ai vector bool int 10103 vec_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 10110 static inline __ATTRS_o_ai vector signed char 10111 vec_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 10117 static inline __ATTRS_o_ai vector unsigned char 10118 vec_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 10123 static inline __ATTRS_o_ai vector unsigned char 10124 vec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) { 10125 return __builtin_s390_vfaeb(__a, __b, 0); 10126 } 10127 10128 static inline __ATTRS_o_ai vector signed short 10129 vec_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 10135 static inline __ATTRS_o_ai vector unsigned short 10136 vec_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 10141 static inline __ATTRS_o_ai vector unsigned short 10142 vec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) { 10143 return __builtin_s390_vfaeh(__a, __b, 0); 10144 } 10145 10146 static inline __ATTRS_o_ai vector signed int 10147 vec_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 10153 static inline __ATTRS_o_ai vector unsigned int 10154 vec_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 10159 static inline __ATTRS_o_ai vector unsigned int 10160 vec_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 10166 static inline __ATTRS_o_ai vector signed char 10167 vec_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 10174 static inline __ATTRS_o_ai vector unsigned char 10175 vec_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 10180 static inline __ATTRS_o_ai vector unsigned char 10181 vec_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 10186 static inline __ATTRS_o_ai vector signed short 10187 vec_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 10194 static inline __ATTRS_o_ai vector unsigned short 10195 vec_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 10201 static inline __ATTRS_o_ai vector unsigned short 10202 vec_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 10207 static inline __ATTRS_o_ai vector signed int 10208 vec_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 10215 static inline __ATTRS_o_ai vector unsigned int 10216 vec_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 10221 static inline __ATTRS_o_ai vector unsigned int 10222 vec_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 10229 static inline __ATTRS_o_ai vector signed char 10230 vec_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 10236 static inline __ATTRS_o_ai vector unsigned char 10237 vec_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 10242 static inline __ATTRS_o_ai vector unsigned char 10243 vec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) { 10244 return __builtin_s390_vfaezb(__a, __b, 0); 10245 } 10246 10247 static inline __ATTRS_o_ai vector signed short 10248 vec_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 10254 static inline __ATTRS_o_ai vector unsigned short 10255 vec_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 10260 static inline __ATTRS_o_ai vector unsigned short 10261 vec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) { 10262 return __builtin_s390_vfaezh(__a, __b, 0); 10263 } 10264 10265 static inline __ATTRS_o_ai vector signed int 10266 vec_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 10272 static inline __ATTRS_o_ai vector unsigned int 10273 vec_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 10278 static inline __ATTRS_o_ai vector unsigned int 10279 vec_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 10285 static inline __ATTRS_o_ai vector signed char 10286 vec_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 10293 static inline __ATTRS_o_ai vector unsigned char 10294 vec_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 10300 static inline __ATTRS_o_ai vector unsigned char 10301 vec_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 10306 static inline __ATTRS_o_ai vector signed short 10307 vec_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 10314 static inline __ATTRS_o_ai vector unsigned short 10315 vec_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 10321 static inline __ATTRS_o_ai vector unsigned short 10322 vec_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 10327 static inline __ATTRS_o_ai vector signed int 10328 vec_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 10335 static inline __ATTRS_o_ai vector unsigned int 10336 vec_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 10342 static inline __ATTRS_o_ai vector unsigned int 10343 vec_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 10350 static inline __ATTRS_o_ai vector bool char 10351 vec_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 10357 static inline __ATTRS_o_ai vector bool char 10358 vec_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 10364 static inline __ATTRS_o_ai vector bool char 10365 vec_find_any_ne(vector unsigned char __a, vector unsigned char __b) { 10366 return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12); 10367 } 10368 10369 static inline __ATTRS_o_ai vector bool short 10370 vec_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 10376 static inline __ATTRS_o_ai vector bool short 10377 vec_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 10383 static inline __ATTRS_o_ai vector bool short 10384 vec_find_any_ne(vector unsigned short __a, vector unsigned short __b) { 10385 return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12); 10386 } 10387 10388 static inline __ATTRS_o_ai vector bool int 10389 vec_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 10395 static inline __ATTRS_o_ai vector bool int 10396 vec_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 10402 static inline __ATTRS_o_ai vector bool int 10403 vec_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 10409 static inline __ATTRS_o_ai vector bool char 10410 vec_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 10416 static inline __ATTRS_o_ai vector bool char 10417 vec_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 10423 static inline __ATTRS_o_ai vector bool char 10424 vec_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 10429 static inline __ATTRS_o_ai vector bool short 10430 vec_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 10437 static inline __ATTRS_o_ai vector bool short 10438 vec_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 10444 static inline __ATTRS_o_ai vector bool short 10445 vec_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 10450 static inline __ATTRS_o_ai vector bool int 10451 vec_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 10457 static inline __ATTRS_o_ai vector bool int 10458 vec_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 10464 static inline __ATTRS_o_ai vector bool int 10465 vec_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 10472 static inline __ATTRS_o_ai vector signed char 10473 vec_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 10479 static inline __ATTRS_o_ai vector unsigned char 10480 vec_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 10485 static inline __ATTRS_o_ai vector unsigned char 10486 vec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) { 10487 return __builtin_s390_vfaeb(__a, __b, 8); 10488 } 10489 10490 static inline __ATTRS_o_ai vector signed short 10491 vec_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 10497 static inline __ATTRS_o_ai vector unsigned short 10498 vec_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 10503 static inline __ATTRS_o_ai vector unsigned short 10504 vec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) { 10505 return __builtin_s390_vfaeh(__a, __b, 8); 10506 } 10507 10508 static inline __ATTRS_o_ai vector signed int 10509 vec_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 10515 static inline __ATTRS_o_ai vector unsigned int 10516 vec_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 10521 static inline __ATTRS_o_ai vector unsigned int 10522 vec_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 10528 static inline __ATTRS_o_ai vector signed char 10529 vec_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 10536 static inline __ATTRS_o_ai vector unsigned char 10537 vec_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 10542 static inline __ATTRS_o_ai vector unsigned char 10543 vec_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 10548 static inline __ATTRS_o_ai vector signed short 10549 vec_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 10556 static inline __ATTRS_o_ai vector unsigned short 10557 vec_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 10563 static inline __ATTRS_o_ai vector unsigned short 10564 vec_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 10569 static inline __ATTRS_o_ai vector signed int 10570 vec_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 10577 static inline __ATTRS_o_ai vector unsigned int 10578 vec_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 10583 static inline __ATTRS_o_ai vector unsigned int 10584 vec_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 10591 static inline __ATTRS_o_ai vector signed char 10592 vec_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 10598 static inline __ATTRS_o_ai vector unsigned char 10599 vec_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 10604 static inline __ATTRS_o_ai vector unsigned char 10605 vec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) { 10606 return __builtin_s390_vfaezb(__a, __b, 8); 10607 } 10608 10609 static inline __ATTRS_o_ai vector signed short 10610 vec_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 10616 static inline __ATTRS_o_ai vector unsigned short 10617 vec_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 10622 static inline __ATTRS_o_ai vector unsigned short 10623 vec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) { 10624 return __builtin_s390_vfaezh(__a, __b, 8); 10625 } 10626 10627 static inline __ATTRS_o_ai vector signed int 10628 vec_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 10634 static inline __ATTRS_o_ai vector unsigned int 10635 vec_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 10640 static inline __ATTRS_o_ai vector unsigned int 10641 vec_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 10647 static inline __ATTRS_o_ai vector signed char 10648 vec_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 10655 static inline __ATTRS_o_ai vector unsigned char 10656 vec_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 10662 static inline __ATTRS_o_ai vector unsigned char 10663 vec_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 10668 static inline __ATTRS_o_ai vector signed short 10669 vec_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 10676 static inline __ATTRS_o_ai vector unsigned short 10677 vec_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 10683 static inline __ATTRS_o_ai vector unsigned short 10684 vec_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 10689 static inline __ATTRS_o_ai vector signed int 10690 vec_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 10697 static inline __ATTRS_o_ai vector unsigned int 10698 vec_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 10704 static inline __ATTRS_o_ai vector unsigned int 10705 vec_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 10714 static inline __ATTRS_o_ai vector unsigned char 10715 vec_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 10721 static inline __ATTRS_o_ai vector unsigned char 10722 vec_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 10728 static inline __ATTRS_o_ai vector unsigned char 10729 vec_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 10734 static inline __ATTRS_o_ai vector unsigned char 10735 vec_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 10741 static inline __ATTRS_o_ai vector unsigned char 10742 vec_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 10748 static inline __ATTRS_o_ai vector unsigned char 10749 vec_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 10754 static inline __ATTRS_o_ai vector unsigned char 10755 vec_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 10761 static inline __ATTRS_o_ai vector unsigned char 10762 vec_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 10768 static inline __ATTRS_o_ai vector unsigned char 10769 vec_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 10780 static inline __ATTRS_o_ai vector unsigned char 10781 vec_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 10788 static inline __ATTRS_o_ai vector unsigned char 10789 vec_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 10796 static inline __ATTRS_o_ai vector unsigned char 10797 vec_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 10803 static inline __ATTRS_o_ai vector unsigned char 10804 vec_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 10811 static inline __ATTRS_o_ai vector unsigned char 10812 vec_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 10819 static inline __ATTRS_o_ai vector unsigned char 10820 vec_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 10826 static inline __ATTRS_o_ai vector unsigned char 10827 vec_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 10834 static inline __ATTRS_o_ai vector unsigned char 10835 vec_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 10842 static inline __ATTRS_o_ai vector unsigned char 10843 vec_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