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, 148 int __index) { 149 __vector unsigned short __newvec = (__vector unsigned short)__vec; 150 __newvec[__index & 7] = (unsigned short)__scalar; 151 return __newvec; 152 } 153 154 static inline __ATTRS_o_ai __vector unsigned short 155 vec_insert(unsigned short __scalar, __vector unsigned short __vec, 156 int __index) { 157 __vec[__index & 7] = __scalar; 158 return __vec; 159 } 160 161 static inline __ATTRS_o_ai __vector signed int 162 vec_insert(signed int __scalar, __vector signed int __vec, int __index) { 163 __vec[__index & 3] = __scalar; 164 return __vec; 165 } 166 167 // This prototype is deprecated. 168 static inline __ATTRS_o_ai __vector unsigned int 169 vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) { 170 __vector unsigned int __newvec = (__vector unsigned int)__vec; 171 __newvec[__index & 3] = __scalar; 172 return __newvec; 173 } 174 175 static inline __ATTRS_o_ai __vector unsigned int 176 vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) { 177 __vec[__index & 3] = __scalar; 178 return __vec; 179 } 180 181 static inline __ATTRS_o_ai __vector signed long long 182 vec_insert(signed long long __scalar, __vector signed long long __vec, 183 int __index) { 184 __vec[__index & 1] = __scalar; 185 return __vec; 186 } 187 188 // This prototype is deprecated. 189 static inline __ATTRS_o_ai __vector unsigned long long 190 vec_insert(unsigned long long __scalar, __vector __bool long long __vec, 191 int __index) { 192 __vector unsigned long long __newvec = (__vector unsigned long long)__vec; 193 __newvec[__index & 1] = __scalar; 194 return __newvec; 195 } 196 197 static inline __ATTRS_o_ai __vector unsigned long long 198 vec_insert(unsigned long long __scalar, __vector unsigned long long __vec, 199 int __index) { 200 __vec[__index & 1] = __scalar; 201 return __vec; 202 } 203 204 #if __ARCH__ >= 12 205 static inline __ATTRS_o_ai __vector float 206 vec_insert(float __scalar, __vector float __vec, int __index) { 207 __vec[__index & 1] = __scalar; 208 return __vec; 209 } 210 #endif 211 212 static inline __ATTRS_o_ai __vector double 213 vec_insert(double __scalar, __vector double __vec, int __index) { 214 __vec[__index & 1] = __scalar; 215 return __vec; 216 } 217 218 /*-- vec_promote ------------------------------------------------------------*/ 219 220 static inline __ATTRS_o_ai __vector signed char 221 vec_promote(signed char __scalar, int __index) { 222 const __vector signed char __zero = (__vector signed char)0; 223 __vector signed char __vec = __builtin_shufflevector(__zero, __zero, 224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); 225 __vec[__index & 15] = __scalar; 226 return __vec; 227 } 228 229 static inline __ATTRS_o_ai __vector unsigned char 230 vec_promote(unsigned char __scalar, int __index) { 231 const __vector unsigned char __zero = (__vector unsigned char)0; 232 __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero, 233 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); 234 __vec[__index & 15] = __scalar; 235 return __vec; 236 } 237 238 static inline __ATTRS_o_ai __vector signed short 239 vec_promote(signed short __scalar, int __index) { 240 const __vector signed short __zero = (__vector signed short)0; 241 __vector signed short __vec = __builtin_shufflevector(__zero, __zero, 242 -1, -1, -1, -1, -1, -1, -1, -1); 243 __vec[__index & 7] = __scalar; 244 return __vec; 245 } 246 247 static inline __ATTRS_o_ai __vector unsigned short 248 vec_promote(unsigned short __scalar, int __index) { 249 const __vector unsigned short __zero = (__vector unsigned short)0; 250 __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero, 251 -1, -1, -1, -1, -1, -1, -1, -1); 252 __vec[__index & 7] = __scalar; 253 return __vec; 254 } 255 256 static inline __ATTRS_o_ai __vector signed int 257 vec_promote(signed int __scalar, int __index) { 258 const __vector signed int __zero = (__vector signed int)0; 259 __vector signed int __vec = __builtin_shufflevector(__zero, __zero, 260 -1, -1, -1, -1); 261 __vec[__index & 3] = __scalar; 262 return __vec; 263 } 264 265 static inline __ATTRS_o_ai __vector unsigned int 266 vec_promote(unsigned int __scalar, int __index) { 267 const __vector unsigned int __zero = (__vector unsigned int)0; 268 __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero, 269 -1, -1, -1, -1); 270 __vec[__index & 3] = __scalar; 271 return __vec; 272 } 273 274 static inline __ATTRS_o_ai __vector signed long long 275 vec_promote(signed long long __scalar, int __index) { 276 const __vector signed long long __zero = (__vector signed long long)0; 277 __vector signed long long __vec = __builtin_shufflevector(__zero, __zero, 278 -1, -1); 279 __vec[__index & 1] = __scalar; 280 return __vec; 281 } 282 283 static inline __ATTRS_o_ai __vector unsigned long long 284 vec_promote(unsigned long long __scalar, int __index) { 285 const __vector unsigned long long __zero = (__vector unsigned long long)0; 286 __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero, 287 -1, -1); 288 __vec[__index & 1] = __scalar; 289 return __vec; 290 } 291 292 #if __ARCH__ >= 12 293 static inline __ATTRS_o_ai __vector float 294 vec_promote(float __scalar, int __index) { 295 const __vector float __zero = (__vector float)0.0f; 296 __vector float __vec = __builtin_shufflevector(__zero, __zero, 297 -1, -1, -1, -1); 298 __vec[__index & 3] = __scalar; 299 return __vec; 300 } 301 #endif 302 303 static inline __ATTRS_o_ai __vector double 304 vec_promote(double __scalar, int __index) { 305 const __vector double __zero = (__vector double)0.0; 306 __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1); 307 __vec[__index & 1] = __scalar; 308 return __vec; 309 } 310 311 /*-- vec_insert_and_zero ----------------------------------------------------*/ 312 313 static inline __ATTRS_o_ai __vector signed char 314 vec_insert_and_zero(const signed char *__ptr) { 315 __vector signed char __vec = (__vector signed char)0; 316 __vec[7] = *__ptr; 317 return __vec; 318 } 319 320 static inline __ATTRS_o_ai __vector unsigned char 321 vec_insert_and_zero(const unsigned char *__ptr) { 322 __vector unsigned char __vec = (__vector unsigned char)0; 323 __vec[7] = *__ptr; 324 return __vec; 325 } 326 327 static inline __ATTRS_o_ai __vector signed short 328 vec_insert_and_zero(const signed short *__ptr) { 329 __vector signed short __vec = (__vector signed short)0; 330 __vec[3] = *__ptr; 331 return __vec; 332 } 333 334 static inline __ATTRS_o_ai __vector unsigned short 335 vec_insert_and_zero(const unsigned short *__ptr) { 336 __vector unsigned short __vec = (__vector unsigned short)0; 337 __vec[3] = *__ptr; 338 return __vec; 339 } 340 341 static inline __ATTRS_o_ai __vector signed int 342 vec_insert_and_zero(const signed int *__ptr) { 343 __vector signed int __vec = (__vector signed int)0; 344 __vec[1] = *__ptr; 345 return __vec; 346 } 347 348 static inline __ATTRS_o_ai __vector unsigned int 349 vec_insert_and_zero(const unsigned int *__ptr) { 350 __vector unsigned int __vec = (__vector unsigned int)0; 351 __vec[1] = *__ptr; 352 return __vec; 353 } 354 355 static inline __ATTRS_o_ai __vector signed long long 356 vec_insert_and_zero(const signed long long *__ptr) { 357 __vector signed long long __vec = (__vector signed long long)0; 358 __vec[0] = *__ptr; 359 return __vec; 360 } 361 362 static inline __ATTRS_o_ai __vector unsigned long long 363 vec_insert_and_zero(const unsigned long long *__ptr) { 364 __vector unsigned long long __vec = (__vector unsigned long long)0; 365 __vec[0] = *__ptr; 366 return __vec; 367 } 368 369 #if __ARCH__ >= 12 370 static inline __ATTRS_o_ai __vector float 371 vec_insert_and_zero(const float *__ptr) { 372 __vector float __vec = (__vector float)0.0f; 373 __vec[1] = *__ptr; 374 return __vec; 375 } 376 #endif 377 378 static inline __ATTRS_o_ai __vector double 379 vec_insert_and_zero(const double *__ptr) { 380 __vector double __vec = (__vector double)0.0; 381 __vec[0] = *__ptr; 382 return __vec; 383 } 384 385 /*-- vec_perm ---------------------------------------------------------------*/ 386 387 static inline __ATTRS_o_ai __vector signed char 388 vec_perm(__vector signed char __a, __vector signed char __b, 389 __vector unsigned char __c) { 390 return (__vector signed char)__builtin_s390_vperm( 391 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 392 } 393 394 static inline __ATTRS_o_ai __vector unsigned char 395 vec_perm(__vector unsigned char __a, __vector unsigned char __b, 396 __vector unsigned char __c) { 397 return (__vector unsigned char)__builtin_s390_vperm( 398 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 399 } 400 401 static inline __ATTRS_o_ai __vector __bool char 402 vec_perm(__vector __bool char __a, __vector __bool char __b, 403 __vector unsigned char __c) { 404 return (__vector __bool char)__builtin_s390_vperm( 405 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 406 } 407 408 static inline __ATTRS_o_ai __vector signed short 409 vec_perm(__vector signed short __a, __vector signed short __b, 410 __vector unsigned char __c) { 411 return (__vector signed short)__builtin_s390_vperm( 412 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 413 } 414 415 static inline __ATTRS_o_ai __vector unsigned short 416 vec_perm(__vector unsigned short __a, __vector unsigned short __b, 417 __vector unsigned char __c) { 418 return (__vector unsigned short)__builtin_s390_vperm( 419 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 420 } 421 422 static inline __ATTRS_o_ai __vector __bool short 423 vec_perm(__vector __bool short __a, __vector __bool short __b, 424 __vector unsigned char __c) { 425 return (__vector __bool short)__builtin_s390_vperm( 426 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 427 } 428 429 static inline __ATTRS_o_ai __vector signed int 430 vec_perm(__vector signed int __a, __vector signed int __b, 431 __vector unsigned char __c) { 432 return (__vector signed int)__builtin_s390_vperm( 433 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 434 } 435 436 static inline __ATTRS_o_ai __vector unsigned int 437 vec_perm(__vector unsigned int __a, __vector unsigned int __b, 438 __vector unsigned char __c) { 439 return (__vector unsigned int)__builtin_s390_vperm( 440 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 441 } 442 443 static inline __ATTRS_o_ai __vector __bool int 444 vec_perm(__vector __bool int __a, __vector __bool int __b, 445 __vector unsigned char __c) { 446 return (__vector __bool int)__builtin_s390_vperm( 447 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 448 } 449 450 static inline __ATTRS_o_ai __vector signed long long 451 vec_perm(__vector signed long long __a, __vector signed long long __b, 452 __vector unsigned char __c) { 453 return (__vector signed long long)__builtin_s390_vperm( 454 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 455 } 456 457 static inline __ATTRS_o_ai __vector unsigned long long 458 vec_perm(__vector unsigned long long __a, __vector unsigned long long __b, 459 __vector unsigned char __c) { 460 return (__vector unsigned long long)__builtin_s390_vperm( 461 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 462 } 463 464 static inline __ATTRS_o_ai __vector __bool long long 465 vec_perm(__vector __bool long long __a, __vector __bool long long __b, 466 __vector unsigned char __c) { 467 return (__vector __bool long long)__builtin_s390_vperm( 468 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 469 } 470 471 static inline __ATTRS_o_ai __vector signed __int128 472 vec_perm(__vector signed __int128 __a, __vector signed __int128 __b, 473 __vector unsigned char __c) { 474 return (__vector signed __int128)__builtin_s390_vperm( 475 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 476 } 477 478 static inline __ATTRS_o_ai __vector unsigned __int128 479 vec_perm(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 480 __vector unsigned char __c) { 481 return (__vector unsigned __int128)__builtin_s390_vperm( 482 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 483 } 484 485 static inline __ATTRS_o_ai __vector __bool __int128 486 vec_perm(__vector __bool __int128 __a, __vector __bool __int128 __b, 487 __vector unsigned char __c) { 488 return (__vector __bool __int128)__builtin_s390_vperm( 489 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 490 } 491 492 #if __ARCH__ >= 12 493 static inline __ATTRS_o_ai __vector float 494 vec_perm(__vector float __a, __vector float __b, 495 __vector unsigned char __c) { 496 return (__vector float)__builtin_s390_vperm( 497 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 498 } 499 #endif 500 501 static inline __ATTRS_o_ai __vector double 502 vec_perm(__vector double __a, __vector double __b, 503 __vector unsigned char __c) { 504 return (__vector double)__builtin_s390_vperm( 505 (__vector unsigned char)__a, (__vector unsigned char)__b, __c); 506 } 507 508 /*-- vec_permi --------------------------------------------------------------*/ 509 510 // This prototype is deprecated. 511 extern __ATTRS_o __vector signed long long 512 vec_permi(__vector signed long long __a, __vector signed long long __b, 513 int __c) 514 __constant_range(__c, 0, 3); 515 516 // This prototype is deprecated. 517 extern __ATTRS_o __vector unsigned long long 518 vec_permi(__vector unsigned long long __a, __vector unsigned long long __b, 519 int __c) 520 __constant_range(__c, 0, 3); 521 522 // This prototype is deprecated. 523 extern __ATTRS_o __vector __bool long long 524 vec_permi(__vector __bool long long __a, __vector __bool long long __b, 525 int __c) 526 __constant_range(__c, 0, 3); 527 528 // This prototype is deprecated. 529 extern __ATTRS_o __vector double 530 vec_permi(__vector double __a, __vector double __b, int __c) 531 __constant_range(__c, 0, 3); 532 533 #define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \ 534 __builtin_s390_vpdi((__vector unsigned long long)(X), \ 535 (__vector unsigned long long)(Y), \ 536 (((Z) & 2) << 1) | ((Z) & 1))) 537 538 /*-- vec_bperm --------------------------------------------------------------*/ 539 540 #if __ARCH__ >= 12 541 static inline __ATTRS_ai __vector unsigned long long 542 vec_bperm(__vector unsigned __int128 __a, __vector unsigned char __b) { 543 return __builtin_s390_vbperm((__vector unsigned char)__a, __b); 544 } 545 #endif 546 547 /*-- vec_bperm_u128 ---------------------------------------------------------*/ 548 549 #if __ARCH__ >= 12 550 // This prototype is deprecated. 551 static inline __ATTRS_ai __vector unsigned long long 552 vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) { 553 return __builtin_s390_vbperm(__a, __b); 554 } 555 #endif 556 557 /*-- vec_revb ---------------------------------------------------------------*/ 558 559 static inline __ATTRS_o_ai __vector signed short 560 vec_revb(__vector signed short __vec) { 561 return (__vector signed short) 562 __builtin_s390_vlbrh((__vector unsigned short)__vec); 563 } 564 565 static inline __ATTRS_o_ai __vector unsigned short 566 vec_revb(__vector unsigned short __vec) { 567 return __builtin_s390_vlbrh(__vec); 568 } 569 570 static inline __ATTRS_o_ai __vector signed int 571 vec_revb(__vector signed int __vec) { 572 return (__vector signed int) 573 __builtin_s390_vlbrf((__vector unsigned int)__vec); 574 } 575 576 static inline __ATTRS_o_ai __vector unsigned int 577 vec_revb(__vector unsigned int __vec) { 578 return __builtin_s390_vlbrf(__vec); 579 } 580 581 static inline __ATTRS_o_ai __vector signed long long 582 vec_revb(__vector signed long long __vec) { 583 return (__vector signed long long) 584 __builtin_s390_vlbrg((__vector unsigned long long)__vec); 585 } 586 587 static inline __ATTRS_o_ai __vector unsigned long long 588 vec_revb(__vector unsigned long long __vec) { 589 return __builtin_s390_vlbrg(__vec); 590 } 591 592 static inline __ATTRS_o_ai __vector signed __int128 593 vec_revb(__vector signed __int128 __vec) { 594 return (__vector signed __int128) 595 __builtin_s390_vlbrq((unsigned __int128)__vec); 596 } 597 598 static inline __ATTRS_o_ai __vector unsigned __int128 599 vec_revb(__vector unsigned __int128 __vec) { 600 return (__vector unsigned __int128) 601 __builtin_s390_vlbrq((unsigned __int128)__vec); 602 } 603 604 #if __ARCH__ >= 12 605 static inline __ATTRS_o_ai __vector float 606 vec_revb(__vector float __vec) { 607 return (__vector float) 608 __builtin_s390_vlbrf((__vector unsigned int)__vec); 609 } 610 #endif 611 612 static inline __ATTRS_o_ai __vector double 613 vec_revb(__vector double __vec) { 614 return (__vector double) 615 __builtin_s390_vlbrg((__vector unsigned long long)__vec); 616 } 617 618 /*-- vec_reve ---------------------------------------------------------------*/ 619 620 static inline __ATTRS_o_ai __vector signed char 621 vec_reve(__vector signed char __vec) { 622 return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12], 623 __vec[11], __vec[10], __vec[9], __vec[8], 624 __vec[7], __vec[6], __vec[5], __vec[4], 625 __vec[3], __vec[2], __vec[1], __vec[0] }; 626 } 627 628 static inline __ATTRS_o_ai __vector unsigned char 629 vec_reve(__vector unsigned char __vec) { 630 return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12], 631 __vec[11], __vec[10], __vec[9], __vec[8], 632 __vec[7], __vec[6], __vec[5], __vec[4], 633 __vec[3], __vec[2], __vec[1], __vec[0] }; 634 } 635 636 static inline __ATTRS_o_ai __vector __bool char 637 vec_reve(__vector __bool char __vec) { 638 return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12], 639 __vec[11], __vec[10], __vec[9], __vec[8], 640 __vec[7], __vec[6], __vec[5], __vec[4], 641 __vec[3], __vec[2], __vec[1], __vec[0] }; 642 } 643 644 static inline __ATTRS_o_ai __vector signed short 645 vec_reve(__vector signed short __vec) { 646 return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4], 647 __vec[3], __vec[2], __vec[1], __vec[0] }; 648 } 649 650 static inline __ATTRS_o_ai __vector unsigned short 651 vec_reve(__vector unsigned short __vec) { 652 return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4], 653 __vec[3], __vec[2], __vec[1], __vec[0] }; 654 } 655 656 static inline __ATTRS_o_ai __vector __bool short 657 vec_reve(__vector __bool short __vec) { 658 return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4], 659 __vec[3], __vec[2], __vec[1], __vec[0] }; 660 } 661 662 static inline __ATTRS_o_ai __vector signed int 663 vec_reve(__vector signed int __vec) { 664 return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] }; 665 } 666 667 static inline __ATTRS_o_ai __vector unsigned int 668 vec_reve(__vector unsigned int __vec) { 669 return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] }; 670 } 671 672 static inline __ATTRS_o_ai __vector __bool int 673 vec_reve(__vector __bool int __vec) { 674 return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] }; 675 } 676 677 static inline __ATTRS_o_ai __vector signed long long 678 vec_reve(__vector signed long long __vec) { 679 return (__vector signed long long) { __vec[1], __vec[0] }; 680 } 681 682 static inline __ATTRS_o_ai __vector unsigned long long 683 vec_reve(__vector unsigned long long __vec) { 684 return (__vector unsigned long long) { __vec[1], __vec[0] }; 685 } 686 687 static inline __ATTRS_o_ai __vector __bool long long 688 vec_reve(__vector __bool long long __vec) { 689 return (__vector __bool long long) { __vec[1], __vec[0] }; 690 } 691 692 #if __ARCH__ >= 12 693 static inline __ATTRS_o_ai __vector float 694 vec_reve(__vector float __vec) { 695 return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] }; 696 } 697 #endif 698 699 static inline __ATTRS_o_ai __vector double 700 vec_reve(__vector double __vec) { 701 return (__vector double) { __vec[1], __vec[0] }; 702 } 703 704 /*-- vec_sel ----------------------------------------------------------------*/ 705 706 static inline __ATTRS_o_ai __vector signed char 707 vec_sel(__vector signed char __a, __vector signed char __b, 708 __vector unsigned char __c) { 709 return (((__vector signed char)__c & __b) | 710 (~(__vector signed char)__c & __a)); 711 } 712 713 static inline __ATTRS_o_ai __vector signed char 714 vec_sel(__vector signed char __a, __vector signed char __b, 715 __vector __bool char __c) { 716 return (((__vector signed char)__c & __b) | 717 (~(__vector signed char)__c & __a)); 718 } 719 720 static inline __ATTRS_o_ai __vector __bool char 721 vec_sel(__vector __bool char __a, __vector __bool char __b, 722 __vector unsigned char __c) { 723 return (((__vector __bool char)__c & __b) | 724 (~(__vector __bool char)__c & __a)); 725 } 726 727 static inline __ATTRS_o_ai __vector __bool char 728 vec_sel(__vector __bool char __a, __vector __bool char __b, 729 __vector __bool char __c) { 730 return (__c & __b) | (~__c & __a); 731 } 732 733 static inline __ATTRS_o_ai __vector unsigned char 734 vec_sel(__vector unsigned char __a, __vector unsigned char __b, 735 __vector unsigned char __c) { 736 return (__c & __b) | (~__c & __a); 737 } 738 739 static inline __ATTRS_o_ai __vector unsigned char 740 vec_sel(__vector unsigned char __a, __vector unsigned char __b, 741 __vector __bool char __c) { 742 return (((__vector unsigned char)__c & __b) | 743 (~(__vector unsigned char)__c & __a)); 744 } 745 746 static inline __ATTRS_o_ai __vector signed short 747 vec_sel(__vector signed short __a, __vector signed short __b, 748 __vector unsigned short __c) { 749 return (((__vector signed short)__c & __b) | 750 (~(__vector signed short)__c & __a)); 751 } 752 753 static inline __ATTRS_o_ai __vector signed short 754 vec_sel(__vector signed short __a, __vector signed short __b, 755 __vector __bool short __c) { 756 return (((__vector signed short)__c & __b) | 757 (~(__vector signed short)__c & __a)); 758 } 759 760 static inline __ATTRS_o_ai __vector __bool short 761 vec_sel(__vector __bool short __a, __vector __bool short __b, 762 __vector unsigned short __c) { 763 return (((__vector __bool short)__c & __b) | 764 (~(__vector __bool short)__c & __a)); 765 } 766 767 static inline __ATTRS_o_ai __vector __bool short 768 vec_sel(__vector __bool short __a, __vector __bool short __b, 769 __vector __bool short __c) { 770 return (__c & __b) | (~__c & __a); 771 } 772 773 static inline __ATTRS_o_ai __vector unsigned short 774 vec_sel(__vector unsigned short __a, __vector unsigned short __b, 775 __vector unsigned short __c) { 776 return (__c & __b) | (~__c & __a); 777 } 778 779 static inline __ATTRS_o_ai __vector unsigned short 780 vec_sel(__vector unsigned short __a, __vector unsigned short __b, 781 __vector __bool short __c) { 782 return (((__vector unsigned short)__c & __b) | 783 (~(__vector unsigned short)__c & __a)); 784 } 785 786 static inline __ATTRS_o_ai __vector signed int 787 vec_sel(__vector signed int __a, __vector signed int __b, 788 __vector unsigned int __c) { 789 return (((__vector signed int)__c & __b) | 790 (~(__vector signed int)__c & __a)); 791 } 792 793 static inline __ATTRS_o_ai __vector signed int 794 vec_sel(__vector signed int __a, __vector signed int __b, 795 __vector __bool int __c) { 796 return (((__vector signed int)__c & __b) | 797 (~(__vector signed int)__c & __a)); 798 } 799 800 static inline __ATTRS_o_ai __vector __bool int 801 vec_sel(__vector __bool int __a, __vector __bool int __b, 802 __vector unsigned int __c) { 803 return (((__vector __bool int)__c & __b) | 804 (~(__vector __bool int)__c & __a)); 805 } 806 807 static inline __ATTRS_o_ai __vector __bool int 808 vec_sel(__vector __bool int __a, __vector __bool int __b, 809 __vector __bool int __c) { 810 return (__c & __b) | (~__c & __a); 811 } 812 813 static inline __ATTRS_o_ai __vector unsigned int 814 vec_sel(__vector unsigned int __a, __vector unsigned int __b, 815 __vector unsigned int __c) { 816 return (__c & __b) | (~__c & __a); 817 } 818 819 static inline __ATTRS_o_ai __vector unsigned int 820 vec_sel(__vector unsigned int __a, __vector unsigned int __b, 821 __vector __bool int __c) { 822 return (((__vector unsigned int)__c & __b) | 823 (~(__vector unsigned int)__c & __a)); 824 } 825 826 static inline __ATTRS_o_ai __vector signed long long 827 vec_sel(__vector signed long long __a, __vector signed long long __b, 828 __vector unsigned long long __c) { 829 return (((__vector signed long long)__c & __b) | 830 (~(__vector signed long long)__c & __a)); 831 } 832 833 static inline __ATTRS_o_ai __vector signed long long 834 vec_sel(__vector signed long long __a, __vector signed long long __b, 835 __vector __bool long long __c) { 836 return (((__vector signed long long)__c & __b) | 837 (~(__vector signed long long)__c & __a)); 838 } 839 840 static inline __ATTRS_o_ai __vector __bool long long 841 vec_sel(__vector __bool long long __a, __vector __bool long long __b, 842 __vector unsigned long long __c) { 843 return (((__vector __bool long long)__c & __b) | 844 (~(__vector __bool long long)__c & __a)); 845 } 846 847 static inline __ATTRS_o_ai __vector __bool long long 848 vec_sel(__vector __bool long long __a, __vector __bool long long __b, 849 __vector __bool long long __c) { 850 return (__c & __b) | (~__c & __a); 851 } 852 853 static inline __ATTRS_o_ai __vector unsigned long long 854 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b, 855 __vector unsigned long long __c) { 856 return (__c & __b) | (~__c & __a); 857 } 858 859 static inline __ATTRS_o_ai __vector unsigned long long 860 vec_sel(__vector unsigned long long __a, __vector unsigned long long __b, 861 __vector __bool long long __c) { 862 return (((__vector unsigned long long)__c & __b) | 863 (~(__vector unsigned long long)__c & __a)); 864 } 865 866 static inline __ATTRS_o_ai __vector signed __int128 867 vec_sel(__vector signed __int128 __a, __vector signed __int128 __b, 868 __vector unsigned __int128 __c) { 869 return (((__vector signed __int128)__c & __b) | 870 (~(__vector signed __int128)__c & __a)); 871 } 872 873 static inline __ATTRS_o_ai __vector signed __int128 874 vec_sel(__vector signed __int128 __a, __vector signed __int128 __b, 875 __vector __bool __int128 __c) { 876 return (((__vector signed __int128)__c & __b) | 877 (~(__vector signed __int128)__c & __a)); 878 } 879 880 static inline __ATTRS_o_ai __vector __bool __int128 881 vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b, 882 __vector unsigned __int128 __c) { 883 return (((__vector __bool __int128)__c & __b) | 884 (~(__vector __bool __int128)__c & __a)); 885 } 886 887 static inline __ATTRS_o_ai __vector __bool __int128 888 vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b, 889 __vector __bool __int128 __c) { 890 return (__c & __b) | (~__c & __a); 891 } 892 893 static inline __ATTRS_o_ai __vector unsigned __int128 894 vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 895 __vector unsigned __int128 __c) { 896 return (__c & __b) | (~__c & __a); 897 } 898 899 static inline __ATTRS_o_ai __vector unsigned __int128 900 vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 901 __vector __bool __int128 __c) { 902 return (((__vector unsigned __int128)__c & __b) | 903 (~(__vector unsigned __int128)__c & __a)); 904 } 905 906 #if __ARCH__ >= 12 907 static inline __ATTRS_o_ai __vector float 908 vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) { 909 return (__vector float)((__c & (__vector unsigned int)__b) | 910 (~__c & (__vector unsigned int)__a)); 911 } 912 913 static inline __ATTRS_o_ai __vector float 914 vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) { 915 __vector unsigned int __ac = (__vector unsigned int)__a; 916 __vector unsigned int __bc = (__vector unsigned int)__b; 917 __vector unsigned int __cc = (__vector unsigned int)__c; 918 return (__vector float)((__cc & __bc) | (~__cc & __ac)); 919 } 920 #endif 921 922 static inline __ATTRS_o_ai __vector double 923 vec_sel(__vector double __a, __vector double __b, 924 __vector unsigned long long __c) { 925 return (__vector double)((__c & (__vector unsigned long long)__b) | 926 (~__c & (__vector unsigned long long)__a)); 927 } 928 929 static inline __ATTRS_o_ai __vector double 930 vec_sel(__vector double __a, __vector double __b, 931 __vector __bool long long __c) { 932 __vector unsigned long long __ac = (__vector unsigned long long)__a; 933 __vector unsigned long long __bc = (__vector unsigned long long)__b; 934 __vector unsigned long long __cc = (__vector unsigned long long)__c; 935 return (__vector double)((__cc & __bc) | (~__cc & __ac)); 936 } 937 938 /*-- vec_gather_element -----------------------------------------------------*/ 939 940 static inline __ATTRS_o_ai __vector signed int 941 vec_gather_element(__vector signed int __vec, 942 __vector unsigned int __offset, 943 const signed int *__ptr, int __index) 944 __constant_range(__index, 0, 3) { 945 __vec[__index] = *(const signed int *)( 946 (const char *)__ptr + __offset[__index]); 947 return __vec; 948 } 949 950 static inline __ATTRS_o_ai __vector __bool int 951 vec_gather_element(__vector __bool int __vec, 952 __vector unsigned int __offset, 953 const unsigned int *__ptr, int __index) 954 __constant_range(__index, 0, 3) { 955 __vec[__index] = *(const unsigned int *)( 956 (const char *)__ptr + __offset[__index]); 957 return __vec; 958 } 959 960 static inline __ATTRS_o_ai __vector unsigned int 961 vec_gather_element(__vector unsigned int __vec, 962 __vector unsigned int __offset, 963 const unsigned int *__ptr, int __index) 964 __constant_range(__index, 0, 3) { 965 __vec[__index] = *(const unsigned int *)( 966 (const char *)__ptr + __offset[__index]); 967 return __vec; 968 } 969 970 static inline __ATTRS_o_ai __vector signed long long 971 vec_gather_element(__vector signed long long __vec, 972 __vector unsigned long long __offset, 973 const signed long long *__ptr, int __index) 974 __constant_range(__index, 0, 1) { 975 __vec[__index] = *(const signed long long *)( 976 (const char *)__ptr + __offset[__index]); 977 return __vec; 978 } 979 980 static inline __ATTRS_o_ai __vector __bool long long 981 vec_gather_element(__vector __bool long long __vec, 982 __vector unsigned long long __offset, 983 const unsigned long long *__ptr, int __index) 984 __constant_range(__index, 0, 1) { 985 __vec[__index] = *(const unsigned long long *)( 986 (const char *)__ptr + __offset[__index]); 987 return __vec; 988 } 989 990 static inline __ATTRS_o_ai __vector unsigned long long 991 vec_gather_element(__vector unsigned long long __vec, 992 __vector unsigned long long __offset, 993 const unsigned long long *__ptr, int __index) 994 __constant_range(__index, 0, 1) { 995 __vec[__index] = *(const unsigned long long *)( 996 (const char *)__ptr + __offset[__index]); 997 return __vec; 998 } 999 1000 #if __ARCH__ >= 12 1001 static inline __ATTRS_o_ai __vector float 1002 vec_gather_element(__vector float __vec, 1003 __vector unsigned int __offset, 1004 const float *__ptr, int __index) 1005 __constant_range(__index, 0, 3) { 1006 __vec[__index] = *(const float *)( 1007 (const char *)__ptr + __offset[__index]); 1008 return __vec; 1009 } 1010 #endif 1011 1012 static inline __ATTRS_o_ai __vector double 1013 vec_gather_element(__vector double __vec, 1014 __vector unsigned long long __offset, 1015 const double *__ptr, int __index) 1016 __constant_range(__index, 0, 1) { 1017 __vec[__index] = *(const double *)( 1018 (const char *)__ptr + __offset[__index]); 1019 return __vec; 1020 } 1021 1022 /*-- vec_scatter_element ----------------------------------------------------*/ 1023 1024 static inline __ATTRS_o_ai void 1025 vec_scatter_element(__vector signed int __vec, 1026 __vector unsigned int __offset, 1027 signed int *__ptr, int __index) 1028 __constant_range(__index, 0, 3) { 1029 *(signed int *)((char *)__ptr + __offset[__index]) = 1030 __vec[__index]; 1031 } 1032 1033 static inline __ATTRS_o_ai void 1034 vec_scatter_element(__vector __bool int __vec, 1035 __vector unsigned int __offset, 1036 unsigned int *__ptr, int __index) 1037 __constant_range(__index, 0, 3) { 1038 *(unsigned int *)((char *)__ptr + __offset[__index]) = 1039 __vec[__index]; 1040 } 1041 1042 static inline __ATTRS_o_ai void 1043 vec_scatter_element(__vector unsigned int __vec, 1044 __vector unsigned int __offset, 1045 unsigned int *__ptr, int __index) 1046 __constant_range(__index, 0, 3) { 1047 *(unsigned int *)((char *)__ptr + __offset[__index]) = 1048 __vec[__index]; 1049 } 1050 1051 static inline __ATTRS_o_ai void 1052 vec_scatter_element(__vector signed long long __vec, 1053 __vector unsigned long long __offset, 1054 signed long long *__ptr, int __index) 1055 __constant_range(__index, 0, 1) { 1056 *(signed long long *)((char *)__ptr + __offset[__index]) = 1057 __vec[__index]; 1058 } 1059 1060 static inline __ATTRS_o_ai void 1061 vec_scatter_element(__vector __bool long long __vec, 1062 __vector unsigned long long __offset, 1063 unsigned long long *__ptr, int __index) 1064 __constant_range(__index, 0, 1) { 1065 *(unsigned long long *)((char *)__ptr + __offset[__index]) = 1066 __vec[__index]; 1067 } 1068 1069 static inline __ATTRS_o_ai void 1070 vec_scatter_element(__vector unsigned long long __vec, 1071 __vector unsigned long long __offset, 1072 unsigned long long *__ptr, int __index) 1073 __constant_range(__index, 0, 1) { 1074 *(unsigned long long *)((char *)__ptr + __offset[__index]) = 1075 __vec[__index]; 1076 } 1077 1078 #if __ARCH__ >= 12 1079 static inline __ATTRS_o_ai void 1080 vec_scatter_element(__vector float __vec, 1081 __vector unsigned int __offset, 1082 float *__ptr, int __index) 1083 __constant_range(__index, 0, 3) { 1084 *(float *)((char *)__ptr + __offset[__index]) = 1085 __vec[__index]; 1086 } 1087 #endif 1088 1089 static inline __ATTRS_o_ai void 1090 vec_scatter_element(__vector double __vec, 1091 __vector unsigned long long __offset, 1092 double *__ptr, int __index) 1093 __constant_range(__index, 0, 1) { 1094 *(double *)((char *)__ptr + __offset[__index]) = 1095 __vec[__index]; 1096 } 1097 1098 /*-- vec_xl -----------------------------------------------------------------*/ 1099 1100 static inline __ATTRS_o_ai __vector signed char 1101 vec_xl(long __offset, const signed char *__ptr) { 1102 __vector signed char V; 1103 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1104 sizeof(__vector signed char)); 1105 return V; 1106 } 1107 1108 static inline __ATTRS_o_ai __vector unsigned char 1109 vec_xl(long __offset, const unsigned char *__ptr) { 1110 __vector unsigned char V; 1111 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1112 sizeof(__vector unsigned char)); 1113 return V; 1114 } 1115 1116 static inline __ATTRS_o_ai __vector signed short 1117 vec_xl(long __offset, const signed short *__ptr) { 1118 __vector signed short V; 1119 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1120 sizeof(__vector signed short)); 1121 return V; 1122 } 1123 1124 static inline __ATTRS_o_ai __vector unsigned short 1125 vec_xl(long __offset, const unsigned short *__ptr) { 1126 __vector unsigned short V; 1127 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1128 sizeof(__vector unsigned short)); 1129 return V; 1130 } 1131 1132 static inline __ATTRS_o_ai __vector signed int 1133 vec_xl(long __offset, const signed int *__ptr) { 1134 __vector signed int V; 1135 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1136 sizeof(__vector signed int)); 1137 return V; 1138 } 1139 1140 static inline __ATTRS_o_ai __vector unsigned int 1141 vec_xl(long __offset, const unsigned int *__ptr) { 1142 __vector unsigned int V; 1143 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1144 sizeof(__vector unsigned int)); 1145 return V; 1146 } 1147 1148 static inline __ATTRS_o_ai __vector signed long long 1149 vec_xl(long __offset, const signed long long *__ptr) { 1150 __vector signed long long V; 1151 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1152 sizeof(__vector signed long long)); 1153 return V; 1154 } 1155 1156 static inline __ATTRS_o_ai __vector unsigned long long 1157 vec_xl(long __offset, const unsigned long long *__ptr) { 1158 __vector unsigned long long V; 1159 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1160 sizeof(__vector unsigned long long)); 1161 return V; 1162 } 1163 1164 static inline __ATTRS_o_ai __vector signed __int128 1165 vec_xl(long __offset, const signed __int128 *__ptr) { 1166 __vector signed __int128 V; 1167 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1168 sizeof(__vector signed __int128)); 1169 return V; 1170 } 1171 1172 static inline __ATTRS_o_ai __vector unsigned __int128 1173 vec_xl(long __offset, const unsigned __int128 *__ptr) { 1174 __vector unsigned __int128 V; 1175 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1176 sizeof(__vector unsigned __int128)); 1177 return V; 1178 } 1179 1180 #if __ARCH__ >= 12 1181 static inline __ATTRS_o_ai __vector float 1182 vec_xl(long __offset, const float *__ptr) { 1183 __vector float V; 1184 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1185 sizeof(__vector float)); 1186 return V; 1187 } 1188 #endif 1189 1190 static inline __ATTRS_o_ai __vector double 1191 vec_xl(long __offset, const double *__ptr) { 1192 __vector double V; 1193 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1194 sizeof(__vector double)); 1195 return V; 1196 } 1197 1198 /*-- vec_xld2 ---------------------------------------------------------------*/ 1199 1200 // This prototype is deprecated. 1201 static inline __ATTRS_o_ai __vector signed char 1202 vec_xld2(long __offset, const signed char *__ptr) { 1203 __vector signed char V; 1204 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1205 sizeof(__vector signed char)); 1206 return V; 1207 } 1208 1209 // This prototype is deprecated. 1210 static inline __ATTRS_o_ai __vector unsigned char 1211 vec_xld2(long __offset, const unsigned char *__ptr) { 1212 __vector unsigned char V; 1213 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1214 sizeof(__vector unsigned char)); 1215 return V; 1216 } 1217 1218 // This prototype is deprecated. 1219 static inline __ATTRS_o_ai __vector signed short 1220 vec_xld2(long __offset, const signed short *__ptr) { 1221 __vector signed short V; 1222 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1223 sizeof(__vector signed short)); 1224 return V; 1225 } 1226 1227 // This prototype is deprecated. 1228 static inline __ATTRS_o_ai __vector unsigned short 1229 vec_xld2(long __offset, const unsigned short *__ptr) { 1230 __vector unsigned short V; 1231 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1232 sizeof(__vector unsigned short)); 1233 return V; 1234 } 1235 1236 // This prototype is deprecated. 1237 static inline __ATTRS_o_ai __vector signed int 1238 vec_xld2(long __offset, const signed int *__ptr) { 1239 __vector signed int V; 1240 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1241 sizeof(__vector signed int)); 1242 return V; 1243 } 1244 1245 // This prototype is deprecated. 1246 static inline __ATTRS_o_ai __vector unsigned int 1247 vec_xld2(long __offset, const unsigned int *__ptr) { 1248 __vector unsigned int V; 1249 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1250 sizeof(__vector unsigned int)); 1251 return V; 1252 } 1253 1254 // This prototype is deprecated. 1255 static inline __ATTRS_o_ai __vector signed long long 1256 vec_xld2(long __offset, const signed long long *__ptr) { 1257 __vector signed long long V; 1258 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1259 sizeof(__vector signed long long)); 1260 return V; 1261 } 1262 1263 // This prototype is deprecated. 1264 static inline __ATTRS_o_ai __vector unsigned long long 1265 vec_xld2(long __offset, const unsigned long long *__ptr) { 1266 __vector unsigned long long V; 1267 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1268 sizeof(__vector unsigned long long)); 1269 return V; 1270 } 1271 1272 // This prototype is deprecated. 1273 static inline __ATTRS_o_ai __vector double 1274 vec_xld2(long __offset, const double *__ptr) { 1275 __vector double V; 1276 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1277 sizeof(__vector double)); 1278 return V; 1279 } 1280 1281 /*-- vec_xlw4 ---------------------------------------------------------------*/ 1282 1283 // This prototype is deprecated. 1284 static inline __ATTRS_o_ai __vector signed char 1285 vec_xlw4(long __offset, const signed char *__ptr) { 1286 __vector signed char V; 1287 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1288 sizeof(__vector signed char)); 1289 return V; 1290 } 1291 1292 // This prototype is deprecated. 1293 static inline __ATTRS_o_ai __vector unsigned char 1294 vec_xlw4(long __offset, const unsigned char *__ptr) { 1295 __vector unsigned char V; 1296 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1297 sizeof(__vector unsigned char)); 1298 return V; 1299 } 1300 1301 // This prototype is deprecated. 1302 static inline __ATTRS_o_ai __vector signed short 1303 vec_xlw4(long __offset, const signed short *__ptr) { 1304 __vector signed short V; 1305 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1306 sizeof(__vector signed short)); 1307 return V; 1308 } 1309 1310 // This prototype is deprecated. 1311 static inline __ATTRS_o_ai __vector unsigned short 1312 vec_xlw4(long __offset, const unsigned short *__ptr) { 1313 __vector unsigned short V; 1314 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1315 sizeof(__vector unsigned short)); 1316 return V; 1317 } 1318 1319 // This prototype is deprecated. 1320 static inline __ATTRS_o_ai __vector signed int 1321 vec_xlw4(long __offset, const signed int *__ptr) { 1322 __vector signed int V; 1323 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1324 sizeof(__vector signed int)); 1325 return V; 1326 } 1327 1328 // This prototype is deprecated. 1329 static inline __ATTRS_o_ai __vector unsigned int 1330 vec_xlw4(long __offset, const unsigned int *__ptr) { 1331 __vector unsigned int V; 1332 __builtin_memcpy(&V, ((const char *)__ptr + __offset), 1333 sizeof(__vector unsigned int)); 1334 return V; 1335 } 1336 1337 /*-- vec_xst ----------------------------------------------------------------*/ 1338 1339 static inline __ATTRS_o_ai void 1340 vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) { 1341 __vector signed char V = __vec; 1342 __builtin_memcpy(((char *)__ptr + __offset), &V, 1343 sizeof(__vector signed char)); 1344 } 1345 1346 static inline __ATTRS_o_ai void 1347 vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) { 1348 __vector unsigned char V = __vec; 1349 __builtin_memcpy(((char *)__ptr + __offset), &V, 1350 sizeof(__vector unsigned char)); 1351 } 1352 1353 static inline __ATTRS_o_ai void 1354 vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) { 1355 __vector signed short V = __vec; 1356 __builtin_memcpy(((char *)__ptr + __offset), &V, 1357 sizeof(__vector signed short)); 1358 } 1359 1360 static inline __ATTRS_o_ai void 1361 vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) { 1362 __vector unsigned short V = __vec; 1363 __builtin_memcpy(((char *)__ptr + __offset), &V, 1364 sizeof(__vector unsigned short)); 1365 } 1366 1367 static inline __ATTRS_o_ai void 1368 vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) { 1369 __vector signed int V = __vec; 1370 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int)); 1371 } 1372 1373 static inline __ATTRS_o_ai void 1374 vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) { 1375 __vector unsigned int V = __vec; 1376 __builtin_memcpy(((char *)__ptr + __offset), &V, 1377 sizeof(__vector unsigned int)); 1378 } 1379 1380 static inline __ATTRS_o_ai void 1381 vec_xst(__vector signed long long __vec, long __offset, 1382 signed long long *__ptr) { 1383 __vector signed long long V = __vec; 1384 __builtin_memcpy(((char *)__ptr + __offset), &V, 1385 sizeof(__vector signed long long)); 1386 } 1387 1388 static inline __ATTRS_o_ai void 1389 vec_xst(__vector unsigned long long __vec, long __offset, 1390 unsigned long long *__ptr) { 1391 __vector unsigned long long V = __vec; 1392 __builtin_memcpy(((char *)__ptr + __offset), &V, 1393 sizeof(__vector unsigned long long)); 1394 } 1395 1396 static inline __ATTRS_o_ai void 1397 vec_xst(__vector signed __int128 __vec, long __offset, 1398 signed __int128 *__ptr) { 1399 __vector signed __int128 V = __vec; 1400 __builtin_memcpy(((char *)__ptr + __offset), &V, 1401 sizeof(__vector signed __int128)); 1402 } 1403 1404 static inline __ATTRS_o_ai void 1405 vec_xst(__vector unsigned __int128 __vec, long __offset, 1406 unsigned __int128 *__ptr) { 1407 __vector unsigned __int128 V = __vec; 1408 __builtin_memcpy(((char *)__ptr + __offset), &V, 1409 sizeof(__vector unsigned __int128)); 1410 } 1411 1412 #if __ARCH__ >= 12 1413 static inline __ATTRS_o_ai void 1414 vec_xst(__vector float __vec, long __offset, float *__ptr) { 1415 __vector float V = __vec; 1416 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float)); 1417 } 1418 #endif 1419 1420 static inline __ATTRS_o_ai void 1421 vec_xst(__vector double __vec, long __offset, double *__ptr) { 1422 __vector double V = __vec; 1423 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double)); 1424 } 1425 1426 /*-- vec_xstd2 --------------------------------------------------------------*/ 1427 1428 // This prototype is deprecated. 1429 static inline __ATTRS_o_ai void 1430 vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) { 1431 __vector signed char V = __vec; 1432 __builtin_memcpy(((char *)__ptr + __offset), &V, 1433 sizeof(__vector signed char)); 1434 } 1435 1436 // This prototype is deprecated. 1437 static inline __ATTRS_o_ai void 1438 vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) { 1439 __vector unsigned char V = __vec; 1440 __builtin_memcpy(((char *)__ptr + __offset), &V, 1441 sizeof(__vector unsigned char)); 1442 } 1443 1444 // This prototype is deprecated. 1445 static inline __ATTRS_o_ai void 1446 vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) { 1447 __vector signed short V = __vec; 1448 __builtin_memcpy(((char *)__ptr + __offset), &V, 1449 sizeof(__vector signed short)); 1450 } 1451 1452 // This prototype is deprecated. 1453 static inline __ATTRS_o_ai void 1454 vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) { 1455 __vector unsigned short V = __vec; 1456 __builtin_memcpy(((char *)__ptr + __offset), &V, 1457 sizeof(__vector unsigned short)); 1458 } 1459 1460 // This prototype is deprecated. 1461 static inline __ATTRS_o_ai void 1462 vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) { 1463 __vector signed int V = __vec; 1464 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int)); 1465 } 1466 1467 // This prototype is deprecated. 1468 static inline __ATTRS_o_ai void 1469 vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) { 1470 __vector unsigned int V = __vec; 1471 __builtin_memcpy(((char *)__ptr + __offset), &V, 1472 sizeof(__vector unsigned int)); 1473 } 1474 1475 // This prototype is deprecated. 1476 static inline __ATTRS_o_ai void 1477 vec_xstd2(__vector signed long long __vec, long __offset, 1478 signed long long *__ptr) { 1479 __vector signed long long V = __vec; 1480 __builtin_memcpy(((char *)__ptr + __offset), &V, 1481 sizeof(__vector signed long long)); 1482 } 1483 1484 // This prototype is deprecated. 1485 static inline __ATTRS_o_ai void 1486 vec_xstd2(__vector unsigned long long __vec, long __offset, 1487 unsigned long long *__ptr) { 1488 __vector unsigned long long V = __vec; 1489 __builtin_memcpy(((char *)__ptr + __offset), &V, 1490 sizeof(__vector unsigned long long)); 1491 } 1492 1493 // This prototype is deprecated. 1494 static inline __ATTRS_o_ai void 1495 vec_xstd2(__vector double __vec, long __offset, double *__ptr) { 1496 __vector double V = __vec; 1497 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double)); 1498 } 1499 1500 /*-- vec_xstw4 --------------------------------------------------------------*/ 1501 1502 // This prototype is deprecated. 1503 static inline __ATTRS_o_ai void 1504 vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) { 1505 __vector signed char V = __vec; 1506 __builtin_memcpy(((char *)__ptr + __offset), &V, 1507 sizeof(__vector signed char)); 1508 } 1509 1510 // This prototype is deprecated. 1511 static inline __ATTRS_o_ai void 1512 vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) { 1513 __vector unsigned char V = __vec; 1514 __builtin_memcpy(((char *)__ptr + __offset), &V, 1515 sizeof(__vector unsigned char)); 1516 } 1517 1518 // This prototype is deprecated. 1519 static inline __ATTRS_o_ai void 1520 vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) { 1521 __vector signed short V = __vec; 1522 __builtin_memcpy(((char *)__ptr + __offset), &V, 1523 sizeof(__vector signed short)); 1524 } 1525 1526 // This prototype is deprecated. 1527 static inline __ATTRS_o_ai void 1528 vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) { 1529 __vector unsigned short V = __vec; 1530 __builtin_memcpy(((char *)__ptr + __offset), &V, 1531 sizeof(__vector unsigned short)); 1532 } 1533 1534 // This prototype is deprecated. 1535 static inline __ATTRS_o_ai void 1536 vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) { 1537 __vector signed int V = __vec; 1538 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int)); 1539 } 1540 1541 // This prototype is deprecated. 1542 static inline __ATTRS_o_ai void 1543 vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) { 1544 __vector unsigned int V = __vec; 1545 __builtin_memcpy(((char *)__ptr + __offset), &V, 1546 sizeof(__vector unsigned int)); 1547 } 1548 1549 /*-- vec_load_bndry ---------------------------------------------------------*/ 1550 1551 extern __ATTRS_o __vector signed char 1552 vec_load_bndry(const signed char *__ptr, unsigned short __len) 1553 __constant_pow2_range(__len, 64, 4096); 1554 1555 extern __ATTRS_o __vector unsigned char 1556 vec_load_bndry(const unsigned char *__ptr, unsigned short __len) 1557 __constant_pow2_range(__len, 64, 4096); 1558 1559 extern __ATTRS_o __vector signed short 1560 vec_load_bndry(const signed short *__ptr, unsigned short __len) 1561 __constant_pow2_range(__len, 64, 4096); 1562 1563 extern __ATTRS_o __vector unsigned short 1564 vec_load_bndry(const unsigned short *__ptr, unsigned short __len) 1565 __constant_pow2_range(__len, 64, 4096); 1566 1567 extern __ATTRS_o __vector signed int 1568 vec_load_bndry(const signed int *__ptr, unsigned short __len) 1569 __constant_pow2_range(__len, 64, 4096); 1570 1571 extern __ATTRS_o __vector unsigned int 1572 vec_load_bndry(const unsigned int *__ptr, unsigned short __len) 1573 __constant_pow2_range(__len, 64, 4096); 1574 1575 extern __ATTRS_o __vector signed long long 1576 vec_load_bndry(const signed long long *__ptr, unsigned short __len) 1577 __constant_pow2_range(__len, 64, 4096); 1578 1579 extern __ATTRS_o __vector unsigned long long 1580 vec_load_bndry(const unsigned long long *__ptr, unsigned short __len) 1581 __constant_pow2_range(__len, 64, 4096); 1582 1583 extern __ATTRS_o __vector signed __int128 1584 vec_load_bndry(const signed __int128 *__ptr, unsigned short __len) 1585 __constant_pow2_range(__len, 64, 4096); 1586 1587 extern __ATTRS_o __vector unsigned __int128 1588 vec_load_bndry(const unsigned __int128 *__ptr, unsigned short __len) 1589 __constant_pow2_range(__len, 64, 4096); 1590 1591 #if __ARCH__ >= 12 1592 extern __ATTRS_o __vector float 1593 vec_load_bndry(const float *__ptr, unsigned short __len) 1594 __constant_pow2_range(__len, 64, 4096); 1595 #endif 1596 1597 extern __ATTRS_o __vector double 1598 vec_load_bndry(const double *__ptr, unsigned short __len) 1599 __constant_pow2_range(__len, 64, 4096); 1600 1601 #define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \ 1602 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \ 1603 (Y) == 128 ? 1 : \ 1604 (Y) == 256 ? 2 : \ 1605 (Y) == 512 ? 3 : \ 1606 (Y) == 1024 ? 4 : \ 1607 (Y) == 2048 ? 5 : \ 1608 (Y) == 4096 ? 6 : -1))) 1609 1610 /*-- vec_load_len -----------------------------------------------------------*/ 1611 1612 static inline __ATTRS_o_ai __vector signed char 1613 vec_load_len(const signed char *__ptr, unsigned int __len) { 1614 return (__vector signed char)__builtin_s390_vll(__len, __ptr); 1615 } 1616 1617 static inline __ATTRS_o_ai __vector unsigned char 1618 vec_load_len(const unsigned char *__ptr, unsigned int __len) { 1619 return (__vector unsigned char)__builtin_s390_vll(__len, __ptr); 1620 } 1621 1622 // This prototype is deprecated. 1623 static inline __ATTRS_o_ai __vector signed short 1624 vec_load_len(const signed short *__ptr, unsigned int __len) { 1625 return (__vector signed short)__builtin_s390_vll(__len, __ptr); 1626 } 1627 1628 // This prototype is deprecated. 1629 static inline __ATTRS_o_ai __vector unsigned short 1630 vec_load_len(const unsigned short *__ptr, unsigned int __len) { 1631 return (__vector unsigned short)__builtin_s390_vll(__len, __ptr); 1632 } 1633 1634 // This prototype is deprecated. 1635 static inline __ATTRS_o_ai __vector signed int 1636 vec_load_len(const signed int *__ptr, unsigned int __len) { 1637 return (__vector signed int)__builtin_s390_vll(__len, __ptr); 1638 } 1639 1640 // This prototype is deprecated. 1641 static inline __ATTRS_o_ai __vector unsigned int 1642 vec_load_len(const unsigned int *__ptr, unsigned int __len) { 1643 return (__vector unsigned int)__builtin_s390_vll(__len, __ptr); 1644 } 1645 1646 // This prototype is deprecated. 1647 static inline __ATTRS_o_ai __vector signed long long 1648 vec_load_len(const signed long long *__ptr, unsigned int __len) { 1649 return (__vector signed long long)__builtin_s390_vll(__len, __ptr); 1650 } 1651 1652 // This prototype is deprecated. 1653 static inline __ATTRS_o_ai __vector unsigned long long 1654 vec_load_len(const unsigned long long *__ptr, unsigned int __len) { 1655 return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr); 1656 } 1657 1658 #if __ARCH__ >= 12 1659 // This prototype is deprecated. 1660 static inline __ATTRS_o_ai __vector float 1661 vec_load_len(const float *__ptr, unsigned int __len) { 1662 return (__vector float)__builtin_s390_vll(__len, __ptr); 1663 } 1664 #endif 1665 1666 // This prototype is deprecated. 1667 static inline __ATTRS_o_ai __vector double 1668 vec_load_len(const double *__ptr, unsigned int __len) { 1669 return (__vector double)__builtin_s390_vll(__len, __ptr); 1670 } 1671 1672 /*-- vec_load_len_r ---------------------------------------------------------*/ 1673 1674 #if __ARCH__ >= 12 1675 static inline __ATTRS_o_ai __vector signed char 1676 vec_load_len_r(const signed char *__ptr, unsigned int __len) { 1677 return (__vector signed char)__builtin_s390_vlrlr(__len, __ptr); 1678 } 1679 1680 static inline __ATTRS_o_ai __vector unsigned char 1681 vec_load_len_r(const unsigned char *__ptr, unsigned int __len) { 1682 return (__vector unsigned char)__builtin_s390_vlrlr(__len, __ptr); 1683 } 1684 #endif 1685 1686 /*-- vec_store_len ----------------------------------------------------------*/ 1687 1688 static inline __ATTRS_o_ai void 1689 vec_store_len(__vector signed char __vec, signed char *__ptr, 1690 unsigned int __len) { 1691 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr); 1692 } 1693 1694 static inline __ATTRS_o_ai void 1695 vec_store_len(__vector unsigned char __vec, unsigned char *__ptr, 1696 unsigned int __len) { 1697 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr); 1698 } 1699 1700 // This prototype is deprecated. 1701 static inline __ATTRS_o_ai void 1702 vec_store_len(__vector signed short __vec, signed short *__ptr, 1703 unsigned int __len) { 1704 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr); 1705 } 1706 1707 // This prototype is deprecated. 1708 static inline __ATTRS_o_ai void 1709 vec_store_len(__vector unsigned short __vec, unsigned short *__ptr, 1710 unsigned int __len) { 1711 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr); 1712 } 1713 1714 // This prototype is deprecated. 1715 static inline __ATTRS_o_ai void 1716 vec_store_len(__vector signed int __vec, signed int *__ptr, 1717 unsigned int __len) { 1718 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr); 1719 } 1720 1721 // This prototype is deprecated. 1722 static inline __ATTRS_o_ai void 1723 vec_store_len(__vector unsigned int __vec, unsigned int *__ptr, 1724 unsigned int __len) { 1725 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr); 1726 } 1727 1728 // This prototype is deprecated. 1729 static inline __ATTRS_o_ai void 1730 vec_store_len(__vector signed long long __vec, signed long long *__ptr, 1731 unsigned int __len) { 1732 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr); 1733 } 1734 1735 // This prototype is deprecated. 1736 static inline __ATTRS_o_ai void 1737 vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr, 1738 unsigned int __len) { 1739 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr); 1740 } 1741 1742 #if __ARCH__ >= 12 1743 // This prototype is deprecated. 1744 static inline __ATTRS_o_ai void 1745 vec_store_len(__vector float __vec, float *__ptr, 1746 unsigned int __len) { 1747 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr); 1748 } 1749 #endif 1750 1751 // This prototype is deprecated. 1752 static inline __ATTRS_o_ai void 1753 vec_store_len(__vector double __vec, double *__ptr, 1754 unsigned int __len) { 1755 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr); 1756 } 1757 1758 /*-- vec_store_len_r --------------------------------------------------------*/ 1759 1760 #if __ARCH__ >= 12 1761 static inline __ATTRS_o_ai void 1762 vec_store_len_r(__vector signed char __vec, signed char *__ptr, 1763 unsigned int __len) { 1764 __builtin_s390_vstrlr(__vec, __len, __ptr); 1765 } 1766 1767 static inline __ATTRS_o_ai void 1768 vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr, 1769 unsigned int __len) { 1770 __builtin_s390_vstrlr((__vector signed char)__vec, __len, __ptr); 1771 } 1772 #endif 1773 1774 /*-- vec_load_pair ----------------------------------------------------------*/ 1775 1776 static inline __ATTRS_o_ai __vector signed long long 1777 vec_load_pair(signed long long __a, signed long long __b) { 1778 return (__vector signed long long)(__a, __b); 1779 } 1780 1781 static inline __ATTRS_o_ai __vector unsigned long long 1782 vec_load_pair(unsigned long long __a, unsigned long long __b) { 1783 return (__vector unsigned long long)(__a, __b); 1784 } 1785 1786 /*-- vec_genmask ------------------------------------------------------------*/ 1787 1788 static inline __ATTRS_o_ai __vector unsigned char 1789 vec_genmask(unsigned short __mask) 1790 __constant(__mask) { 1791 return (__vector unsigned char)( 1792 __mask & 0x8000 ? 0xff : 0, 1793 __mask & 0x4000 ? 0xff : 0, 1794 __mask & 0x2000 ? 0xff : 0, 1795 __mask & 0x1000 ? 0xff : 0, 1796 __mask & 0x0800 ? 0xff : 0, 1797 __mask & 0x0400 ? 0xff : 0, 1798 __mask & 0x0200 ? 0xff : 0, 1799 __mask & 0x0100 ? 0xff : 0, 1800 __mask & 0x0080 ? 0xff : 0, 1801 __mask & 0x0040 ? 0xff : 0, 1802 __mask & 0x0020 ? 0xff : 0, 1803 __mask & 0x0010 ? 0xff : 0, 1804 __mask & 0x0008 ? 0xff : 0, 1805 __mask & 0x0004 ? 0xff : 0, 1806 __mask & 0x0002 ? 0xff : 0, 1807 __mask & 0x0001 ? 0xff : 0); 1808 } 1809 1810 /*-- vec_genmasks_* ---------------------------------------------------------*/ 1811 1812 static inline __ATTRS_o_ai __vector unsigned char 1813 vec_genmasks_8(unsigned char __first, unsigned char __last) 1814 __constant(__first) __constant(__last) { 1815 unsigned char __bit1 = __first & 7; 1816 unsigned char __bit2 = __last & 7; 1817 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1; 1818 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1; 1819 unsigned char __value = (__bit1 <= __bit2 ? 1820 __mask1 & ~__mask2 : 1821 __mask1 | ~__mask2); 1822 return (__vector unsigned char)__value; 1823 } 1824 1825 static inline __ATTRS_o_ai __vector unsigned short 1826 vec_genmasks_16(unsigned char __first, unsigned char __last) 1827 __constant(__first) __constant(__last) { 1828 unsigned char __bit1 = __first & 15; 1829 unsigned char __bit2 = __last & 15; 1830 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1; 1831 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1; 1832 unsigned short __value = (__bit1 <= __bit2 ? 1833 __mask1 & ~__mask2 : 1834 __mask1 | ~__mask2); 1835 return (__vector unsigned short)__value; 1836 } 1837 1838 static inline __ATTRS_o_ai __vector unsigned int 1839 vec_genmasks_32(unsigned char __first, unsigned char __last) 1840 __constant(__first) __constant(__last) { 1841 unsigned char __bit1 = __first & 31; 1842 unsigned char __bit2 = __last & 31; 1843 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1; 1844 unsigned int __mask2 = (1U << (31 - __bit2)) - 1; 1845 unsigned int __value = (__bit1 <= __bit2 ? 1846 __mask1 & ~__mask2 : 1847 __mask1 | ~__mask2); 1848 return (__vector unsigned int)__value; 1849 } 1850 1851 static inline __ATTRS_o_ai __vector unsigned long long 1852 vec_genmasks_64(unsigned char __first, unsigned char __last) 1853 __constant(__first) __constant(__last) { 1854 unsigned char __bit1 = __first & 63; 1855 unsigned char __bit2 = __last & 63; 1856 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1; 1857 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1; 1858 unsigned long long __value = (__bit1 <= __bit2 ? 1859 __mask1 & ~__mask2 : 1860 __mask1 | ~__mask2); 1861 return (__vector unsigned long long)__value; 1862 } 1863 1864 /*-- vec_gen_element_masks_* ------------------------------------------------*/ 1865 1866 #if __ARCH__ >= 15 1867 static inline __ATTRS_ai __vector unsigned char 1868 vec_gen_element_masks_8(__vector unsigned short __mask) { 1869 return __builtin_s390_vgemb(__mask); 1870 } 1871 1872 static inline __ATTRS_ai __vector unsigned short 1873 vec_gen_element_masks_16(__vector unsigned char __mask) { 1874 return __builtin_s390_vgemh(__mask); 1875 } 1876 1877 static inline __ATTRS_ai __vector unsigned int 1878 vec_gen_element_masks_32(__vector unsigned char __mask) { 1879 return __builtin_s390_vgemf(__mask); 1880 } 1881 1882 static inline __ATTRS_ai __vector unsigned long long 1883 vec_gen_element_masks_64(__vector unsigned char __mask) { 1884 return __builtin_s390_vgemg(__mask); 1885 } 1886 1887 static inline __ATTRS_ai __vector unsigned __int128 1888 vec_gen_element_masks_128(__vector unsigned char __mask) { 1889 return (__vector unsigned __int128)__builtin_s390_vgemq(__mask); 1890 } 1891 #endif 1892 1893 /*-- vec_splat --------------------------------------------------------------*/ 1894 1895 static inline __ATTRS_o_ai __vector signed char 1896 vec_splat(__vector signed char __vec, int __index) 1897 __constant_range(__index, 0, 15) { 1898 return (__vector signed char)__vec[__index]; 1899 } 1900 1901 static inline __ATTRS_o_ai __vector __bool char 1902 vec_splat(__vector __bool char __vec, int __index) 1903 __constant_range(__index, 0, 15) { 1904 return (__vector __bool char)(__vector unsigned char)__vec[__index]; 1905 } 1906 1907 static inline __ATTRS_o_ai __vector unsigned char 1908 vec_splat(__vector unsigned char __vec, int __index) 1909 __constant_range(__index, 0, 15) { 1910 return (__vector unsigned char)__vec[__index]; 1911 } 1912 1913 static inline __ATTRS_o_ai __vector signed short 1914 vec_splat(__vector signed short __vec, int __index) 1915 __constant_range(__index, 0, 7) { 1916 return (__vector signed short)__vec[__index]; 1917 } 1918 1919 static inline __ATTRS_o_ai __vector __bool short 1920 vec_splat(__vector __bool short __vec, int __index) 1921 __constant_range(__index, 0, 7) { 1922 return (__vector __bool short)(__vector unsigned short)__vec[__index]; 1923 } 1924 1925 static inline __ATTRS_o_ai __vector unsigned short 1926 vec_splat(__vector unsigned short __vec, int __index) 1927 __constant_range(__index, 0, 7) { 1928 return (__vector unsigned short)__vec[__index]; 1929 } 1930 1931 static inline __ATTRS_o_ai __vector signed int 1932 vec_splat(__vector signed int __vec, int __index) 1933 __constant_range(__index, 0, 3) { 1934 return (__vector signed int)__vec[__index]; 1935 } 1936 1937 static inline __ATTRS_o_ai __vector __bool int 1938 vec_splat(__vector __bool int __vec, int __index) 1939 __constant_range(__index, 0, 3) { 1940 return (__vector __bool int)(__vector unsigned int)__vec[__index]; 1941 } 1942 1943 static inline __ATTRS_o_ai __vector unsigned int 1944 vec_splat(__vector unsigned int __vec, int __index) 1945 __constant_range(__index, 0, 3) { 1946 return (__vector unsigned int)__vec[__index]; 1947 } 1948 1949 static inline __ATTRS_o_ai __vector signed long long 1950 vec_splat(__vector signed long long __vec, int __index) 1951 __constant_range(__index, 0, 1) { 1952 return (__vector signed long long)__vec[__index]; 1953 } 1954 1955 static inline __ATTRS_o_ai __vector __bool long long 1956 vec_splat(__vector __bool long long __vec, int __index) 1957 __constant_range(__index, 0, 1) { 1958 return ((__vector __bool long long) 1959 (__vector unsigned long long)__vec[__index]); 1960 } 1961 1962 static inline __ATTRS_o_ai __vector unsigned long long 1963 vec_splat(__vector unsigned long long __vec, int __index) 1964 __constant_range(__index, 0, 1) { 1965 return (__vector unsigned long long)__vec[__index]; 1966 } 1967 1968 #if __ARCH__ >= 12 1969 static inline __ATTRS_o_ai __vector float 1970 vec_splat(__vector float __vec, int __index) 1971 __constant_range(__index, 0, 3) { 1972 return (__vector float)__vec[__index]; 1973 } 1974 #endif 1975 1976 static inline __ATTRS_o_ai __vector double 1977 vec_splat(__vector double __vec, int __index) 1978 __constant_range(__index, 0, 1) { 1979 return (__vector double)__vec[__index]; 1980 } 1981 1982 /*-- vec_splat_s* -----------------------------------------------------------*/ 1983 1984 static inline __ATTRS_ai __vector signed char 1985 vec_splat_s8(signed char __scalar) 1986 __constant(__scalar) { 1987 return (__vector signed char)__scalar; 1988 } 1989 1990 static inline __ATTRS_ai __vector signed short 1991 vec_splat_s16(signed short __scalar) 1992 __constant(__scalar) { 1993 return (__vector signed short)__scalar; 1994 } 1995 1996 static inline __ATTRS_ai __vector signed int 1997 vec_splat_s32(signed short __scalar) 1998 __constant(__scalar) { 1999 return (__vector signed int)(signed int)__scalar; 2000 } 2001 2002 static inline __ATTRS_ai __vector signed long long 2003 vec_splat_s64(signed short __scalar) 2004 __constant(__scalar) { 2005 return (__vector signed long long)(signed long)__scalar; 2006 } 2007 2008 /*-- vec_splat_u* -----------------------------------------------------------*/ 2009 2010 static inline __ATTRS_ai __vector unsigned char 2011 vec_splat_u8(unsigned char __scalar) 2012 __constant(__scalar) { 2013 return (__vector unsigned char)__scalar; 2014 } 2015 2016 static inline __ATTRS_ai __vector unsigned short 2017 vec_splat_u16(unsigned short __scalar) 2018 __constant(__scalar) { 2019 return (__vector unsigned short)__scalar; 2020 } 2021 2022 static inline __ATTRS_ai __vector unsigned int 2023 vec_splat_u32(signed short __scalar) 2024 __constant(__scalar) { 2025 return (__vector unsigned int)(signed int)__scalar; 2026 } 2027 2028 static inline __ATTRS_ai __vector unsigned long long 2029 vec_splat_u64(signed short __scalar) 2030 __constant(__scalar) { 2031 return (__vector unsigned long long)(signed long long)__scalar; 2032 } 2033 2034 /*-- vec_splats -------------------------------------------------------------*/ 2035 2036 static inline __ATTRS_o_ai __vector signed char 2037 vec_splats(signed char __scalar) { 2038 return (__vector signed char)__scalar; 2039 } 2040 2041 static inline __ATTRS_o_ai __vector unsigned char 2042 vec_splats(unsigned char __scalar) { 2043 return (__vector unsigned char)__scalar; 2044 } 2045 2046 static inline __ATTRS_o_ai __vector signed short 2047 vec_splats(signed short __scalar) { 2048 return (__vector signed short)__scalar; 2049 } 2050 2051 static inline __ATTRS_o_ai __vector unsigned short 2052 vec_splats(unsigned short __scalar) { 2053 return (__vector unsigned short)__scalar; 2054 } 2055 2056 static inline __ATTRS_o_ai __vector signed int 2057 vec_splats(signed int __scalar) { 2058 return (__vector signed int)__scalar; 2059 } 2060 2061 static inline __ATTRS_o_ai __vector unsigned int 2062 vec_splats(unsigned int __scalar) { 2063 return (__vector unsigned int)__scalar; 2064 } 2065 2066 static inline __ATTRS_o_ai __vector signed long long 2067 vec_splats(signed long long __scalar) { 2068 return (__vector signed long long)__scalar; 2069 } 2070 2071 static inline __ATTRS_o_ai __vector unsigned long long 2072 vec_splats(unsigned long long __scalar) { 2073 return (__vector unsigned long long)__scalar; 2074 } 2075 2076 static inline __ATTRS_o_ai __vector signed __int128 2077 vec_splats(signed __int128 __scalar) { 2078 return (__vector signed __int128)__scalar; 2079 } 2080 2081 static inline __ATTRS_o_ai __vector unsigned __int128 2082 vec_splats(unsigned __int128 __scalar) { 2083 return (__vector unsigned __int128)__scalar; 2084 } 2085 2086 #if __ARCH__ >= 12 2087 static inline __ATTRS_o_ai __vector float 2088 vec_splats(float __scalar) { 2089 return (__vector float)__scalar; 2090 } 2091 #endif 2092 2093 static inline __ATTRS_o_ai __vector double 2094 vec_splats(double __scalar) { 2095 return (__vector double)__scalar; 2096 } 2097 2098 /*-- vec_extend_s64 ---------------------------------------------------------*/ 2099 2100 static inline __ATTRS_o_ai __vector signed long long 2101 vec_extend_s64(__vector signed char __a) { 2102 return (__vector signed long long)(__a[7], __a[15]); 2103 } 2104 2105 static inline __ATTRS_o_ai __vector signed long long 2106 vec_extend_s64(__vector signed short __a) { 2107 return (__vector signed long long)(__a[3], __a[7]); 2108 } 2109 2110 static inline __ATTRS_o_ai __vector signed long long 2111 vec_extend_s64(__vector signed int __a) { 2112 return (__vector signed long long)(__a[1], __a[3]); 2113 } 2114 2115 /*-- vec_mergeh -------------------------------------------------------------*/ 2116 2117 static inline __ATTRS_o_ai __vector signed char 2118 vec_mergeh(__vector signed char __a, __vector signed char __b) { 2119 return (__vector signed char)( 2120 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3], 2121 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 2122 } 2123 2124 static inline __ATTRS_o_ai __vector __bool char 2125 vec_mergeh(__vector __bool char __a, __vector __bool char __b) { 2126 return (__vector __bool char)( 2127 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3], 2128 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 2129 } 2130 2131 static inline __ATTRS_o_ai __vector unsigned char 2132 vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) { 2133 return (__vector unsigned char)( 2134 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3], 2135 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 2136 } 2137 2138 static inline __ATTRS_o_ai __vector signed short 2139 vec_mergeh(__vector signed short __a, __vector signed short __b) { 2140 return (__vector signed short)( 2141 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]); 2142 } 2143 2144 static inline __ATTRS_o_ai __vector __bool short 2145 vec_mergeh(__vector __bool short __a, __vector __bool short __b) { 2146 return (__vector __bool short)( 2147 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]); 2148 } 2149 2150 static inline __ATTRS_o_ai __vector unsigned short 2151 vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) { 2152 return (__vector unsigned short)( 2153 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]); 2154 } 2155 2156 static inline __ATTRS_o_ai __vector signed int 2157 vec_mergeh(__vector signed int __a, __vector signed int __b) { 2158 return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]); 2159 } 2160 2161 static inline __ATTRS_o_ai __vector __bool int 2162 vec_mergeh(__vector __bool int __a, __vector __bool int __b) { 2163 return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]); 2164 } 2165 2166 static inline __ATTRS_o_ai __vector unsigned int 2167 vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) { 2168 return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]); 2169 } 2170 2171 static inline __ATTRS_o_ai __vector signed long long 2172 vec_mergeh(__vector signed long long __a, __vector signed long long __b) { 2173 return (__vector signed long long)(__a[0], __b[0]); 2174 } 2175 2176 static inline __ATTRS_o_ai __vector __bool long long 2177 vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) { 2178 return (__vector __bool long long)(__a[0], __b[0]); 2179 } 2180 2181 static inline __ATTRS_o_ai __vector unsigned long long 2182 vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) { 2183 return (__vector unsigned long long)(__a[0], __b[0]); 2184 } 2185 2186 #if __ARCH__ >= 12 2187 static inline __ATTRS_o_ai __vector float 2188 vec_mergeh(__vector float __a, __vector float __b) { 2189 return (__vector float)(__a[0], __b[0], __a[1], __b[1]); 2190 } 2191 #endif 2192 2193 static inline __ATTRS_o_ai __vector double 2194 vec_mergeh(__vector double __a, __vector double __b) { 2195 return (__vector double)(__a[0], __b[0]); 2196 } 2197 2198 /*-- vec_mergel -------------------------------------------------------------*/ 2199 2200 static inline __ATTRS_o_ai __vector signed char 2201 vec_mergel(__vector signed char __a, __vector signed char __b) { 2202 return (__vector signed char)( 2203 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11], 2204 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]); 2205 } 2206 2207 static inline __ATTRS_o_ai __vector __bool char 2208 vec_mergel(__vector __bool char __a, __vector __bool char __b) { 2209 return (__vector __bool char)( 2210 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11], 2211 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]); 2212 } 2213 2214 static inline __ATTRS_o_ai __vector unsigned char 2215 vec_mergel(__vector unsigned char __a, __vector unsigned char __b) { 2216 return (__vector unsigned char)( 2217 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11], 2218 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]); 2219 } 2220 2221 static inline __ATTRS_o_ai __vector signed short 2222 vec_mergel(__vector signed short __a, __vector signed short __b) { 2223 return (__vector signed short)( 2224 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 2225 } 2226 2227 static inline __ATTRS_o_ai __vector __bool short 2228 vec_mergel(__vector __bool short __a, __vector __bool short __b) { 2229 return (__vector __bool short)( 2230 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 2231 } 2232 2233 static inline __ATTRS_o_ai __vector unsigned short 2234 vec_mergel(__vector unsigned short __a, __vector unsigned short __b) { 2235 return (__vector unsigned short)( 2236 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 2237 } 2238 2239 static inline __ATTRS_o_ai __vector signed int 2240 vec_mergel(__vector signed int __a, __vector signed int __b) { 2241 return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]); 2242 } 2243 2244 static inline __ATTRS_o_ai __vector __bool int 2245 vec_mergel(__vector __bool int __a, __vector __bool int __b) { 2246 return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]); 2247 } 2248 2249 static inline __ATTRS_o_ai __vector unsigned int 2250 vec_mergel(__vector unsigned int __a, __vector unsigned int __b) { 2251 return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]); 2252 } 2253 2254 static inline __ATTRS_o_ai __vector signed long long 2255 vec_mergel(__vector signed long long __a, __vector signed long long __b) { 2256 return (__vector signed long long)(__a[1], __b[1]); 2257 } 2258 2259 static inline __ATTRS_o_ai __vector __bool long long 2260 vec_mergel(__vector __bool long long __a, __vector __bool long long __b) { 2261 return (__vector __bool long long)(__a[1], __b[1]); 2262 } 2263 2264 static inline __ATTRS_o_ai __vector unsigned long long 2265 vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) { 2266 return (__vector unsigned long long)(__a[1], __b[1]); 2267 } 2268 2269 #if __ARCH__ >= 12 2270 static inline __ATTRS_o_ai __vector float 2271 vec_mergel(__vector float __a, __vector float __b) { 2272 return (__vector float)(__a[2], __b[2], __a[3], __b[3]); 2273 } 2274 #endif 2275 2276 static inline __ATTRS_o_ai __vector double 2277 vec_mergel(__vector double __a, __vector double __b) { 2278 return (__vector double)(__a[1], __b[1]); 2279 } 2280 2281 /*-- vec_pack ---------------------------------------------------------------*/ 2282 2283 static inline __ATTRS_o_ai __vector signed char 2284 vec_pack(__vector signed short __a, __vector signed short __b) { 2285 __vector signed char __ac = (__vector signed char)__a; 2286 __vector signed char __bc = (__vector signed char)__b; 2287 return (__vector signed char)( 2288 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15], 2289 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]); 2290 } 2291 2292 static inline __ATTRS_o_ai __vector __bool char 2293 vec_pack(__vector __bool short __a, __vector __bool short __b) { 2294 __vector __bool char __ac = (__vector __bool char)__a; 2295 __vector __bool char __bc = (__vector __bool char)__b; 2296 return (__vector __bool char)( 2297 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15], 2298 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]); 2299 } 2300 2301 static inline __ATTRS_o_ai __vector unsigned char 2302 vec_pack(__vector unsigned short __a, __vector unsigned short __b) { 2303 __vector unsigned char __ac = (__vector unsigned char)__a; 2304 __vector unsigned char __bc = (__vector unsigned char)__b; 2305 return (__vector unsigned char)( 2306 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15], 2307 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]); 2308 } 2309 2310 static inline __ATTRS_o_ai __vector signed short 2311 vec_pack(__vector signed int __a, __vector signed int __b) { 2312 __vector signed short __ac = (__vector signed short)__a; 2313 __vector signed short __bc = (__vector signed short)__b; 2314 return (__vector signed short)( 2315 __ac[1], __ac[3], __ac[5], __ac[7], 2316 __bc[1], __bc[3], __bc[5], __bc[7]); 2317 } 2318 2319 static inline __ATTRS_o_ai __vector __bool short 2320 vec_pack(__vector __bool int __a, __vector __bool int __b) { 2321 __vector __bool short __ac = (__vector __bool short)__a; 2322 __vector __bool short __bc = (__vector __bool short)__b; 2323 return (__vector __bool short)( 2324 __ac[1], __ac[3], __ac[5], __ac[7], 2325 __bc[1], __bc[3], __bc[5], __bc[7]); 2326 } 2327 2328 static inline __ATTRS_o_ai __vector unsigned short 2329 vec_pack(__vector unsigned int __a, __vector unsigned int __b) { 2330 __vector unsigned short __ac = (__vector unsigned short)__a; 2331 __vector unsigned short __bc = (__vector unsigned short)__b; 2332 return (__vector unsigned short)( 2333 __ac[1], __ac[3], __ac[5], __ac[7], 2334 __bc[1], __bc[3], __bc[5], __bc[7]); 2335 } 2336 2337 static inline __ATTRS_o_ai __vector signed int 2338 vec_pack(__vector signed long long __a, __vector signed long long __b) { 2339 __vector signed int __ac = (__vector signed int)__a; 2340 __vector signed int __bc = (__vector signed int)__b; 2341 return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]); 2342 } 2343 2344 static inline __ATTRS_o_ai __vector __bool int 2345 vec_pack(__vector __bool long long __a, __vector __bool long long __b) { 2346 __vector __bool int __ac = (__vector __bool int)__a; 2347 __vector __bool int __bc = (__vector __bool int)__b; 2348 return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]); 2349 } 2350 2351 static inline __ATTRS_o_ai __vector unsigned int 2352 vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) { 2353 __vector unsigned int __ac = (__vector unsigned int)__a; 2354 __vector unsigned int __bc = (__vector unsigned int)__b; 2355 return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]); 2356 } 2357 2358 static inline __ATTRS_o_ai __vector signed long long 2359 vec_pack(__vector signed __int128 __a, __vector signed __int128 __b) { 2360 __vector signed long long __ac = (__vector signed long long)__a; 2361 __vector signed long long __bc = (__vector signed long long)__b; 2362 return (__vector signed long long)(__ac[1], __bc[1]); 2363 } 2364 2365 static inline __ATTRS_o_ai __vector __bool long long 2366 vec_pack(__vector __bool __int128 __a, __vector __bool __int128 __b) { 2367 __vector __bool long long __ac = (__vector __bool long long)__a; 2368 __vector __bool long long __bc = (__vector __bool long long)__b; 2369 return (__vector __bool long long)(__ac[1], __bc[1]); 2370 } 2371 2372 static inline __ATTRS_o_ai __vector unsigned long long 2373 vec_pack(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 2374 __vector unsigned long long __ac = (__vector unsigned long long)__a; 2375 __vector unsigned long long __bc = (__vector unsigned long long)__b; 2376 return (__vector unsigned long long)(__ac[1], __bc[1]); 2377 } 2378 2379 /*-- vec_packs --------------------------------------------------------------*/ 2380 2381 static inline __ATTRS_o_ai __vector signed char 2382 vec_packs(__vector signed short __a, __vector signed short __b) { 2383 return __builtin_s390_vpksh(__a, __b); 2384 } 2385 2386 static inline __ATTRS_o_ai __vector unsigned char 2387 vec_packs(__vector unsigned short __a, __vector unsigned short __b) { 2388 return __builtin_s390_vpklsh(__a, __b); 2389 } 2390 2391 static inline __ATTRS_o_ai __vector signed short 2392 vec_packs(__vector signed int __a, __vector signed int __b) { 2393 return __builtin_s390_vpksf(__a, __b); 2394 } 2395 2396 static inline __ATTRS_o_ai __vector unsigned short 2397 vec_packs(__vector unsigned int __a, __vector unsigned int __b) { 2398 return __builtin_s390_vpklsf(__a, __b); 2399 } 2400 2401 static inline __ATTRS_o_ai __vector signed int 2402 vec_packs(__vector signed long long __a, __vector signed long long __b) { 2403 return __builtin_s390_vpksg(__a, __b); 2404 } 2405 2406 static inline __ATTRS_o_ai __vector unsigned int 2407 vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) { 2408 return __builtin_s390_vpklsg(__a, __b); 2409 } 2410 2411 /*-- vec_packs_cc -----------------------------------------------------------*/ 2412 2413 static inline __ATTRS_o_ai __vector signed char 2414 vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) { 2415 return __builtin_s390_vpkshs(__a, __b, __cc); 2416 } 2417 2418 static inline __ATTRS_o_ai __vector unsigned char 2419 vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b, 2420 int *__cc) { 2421 return __builtin_s390_vpklshs(__a, __b, __cc); 2422 } 2423 2424 static inline __ATTRS_o_ai __vector signed short 2425 vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) { 2426 return __builtin_s390_vpksfs(__a, __b, __cc); 2427 } 2428 2429 static inline __ATTRS_o_ai __vector unsigned short 2430 vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) { 2431 return __builtin_s390_vpklsfs(__a, __b, __cc); 2432 } 2433 2434 static inline __ATTRS_o_ai __vector signed int 2435 vec_packs_cc(__vector signed long long __a, __vector signed long long __b, 2436 int *__cc) { 2437 return __builtin_s390_vpksgs(__a, __b, __cc); 2438 } 2439 2440 static inline __ATTRS_o_ai __vector unsigned int 2441 vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b, 2442 int *__cc) { 2443 return __builtin_s390_vpklsgs(__a, __b, __cc); 2444 } 2445 2446 /*-- vec_packsu -------------------------------------------------------------*/ 2447 2448 static inline __ATTRS_o_ai __vector unsigned char 2449 vec_packsu(__vector signed short __a, __vector signed short __b) { 2450 const __vector signed short __zero = (__vector signed short)0; 2451 return __builtin_s390_vpklsh( 2452 (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a, 2453 (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b); 2454 } 2455 2456 static inline __ATTRS_o_ai __vector unsigned char 2457 vec_packsu(__vector unsigned short __a, __vector unsigned short __b) { 2458 return __builtin_s390_vpklsh(__a, __b); 2459 } 2460 2461 static inline __ATTRS_o_ai __vector unsigned short 2462 vec_packsu(__vector signed int __a, __vector signed int __b) { 2463 const __vector signed int __zero = (__vector signed int)0; 2464 return __builtin_s390_vpklsf( 2465 (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a, 2466 (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b); 2467 } 2468 2469 static inline __ATTRS_o_ai __vector unsigned short 2470 vec_packsu(__vector unsigned int __a, __vector unsigned int __b) { 2471 return __builtin_s390_vpklsf(__a, __b); 2472 } 2473 2474 static inline __ATTRS_o_ai __vector unsigned int 2475 vec_packsu(__vector signed long long __a, __vector signed long long __b) { 2476 const __vector signed long long __zero = (__vector signed long long)0; 2477 return __builtin_s390_vpklsg( 2478 (__vector unsigned long long)(__a >= __zero) & 2479 (__vector unsigned long long)__a, 2480 (__vector unsigned long long)(__b >= __zero) & 2481 (__vector unsigned long long)__b); 2482 } 2483 2484 static inline __ATTRS_o_ai __vector unsigned int 2485 vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) { 2486 return __builtin_s390_vpklsg(__a, __b); 2487 } 2488 2489 /*-- vec_packsu_cc ----------------------------------------------------------*/ 2490 2491 static inline __ATTRS_o_ai __vector unsigned char 2492 vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b, 2493 int *__cc) { 2494 return __builtin_s390_vpklshs(__a, __b, __cc); 2495 } 2496 2497 static inline __ATTRS_o_ai __vector unsigned short 2498 vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) { 2499 return __builtin_s390_vpklsfs(__a, __b, __cc); 2500 } 2501 2502 static inline __ATTRS_o_ai __vector unsigned int 2503 vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b, 2504 int *__cc) { 2505 return __builtin_s390_vpklsgs(__a, __b, __cc); 2506 } 2507 2508 /*-- vec_unpackh ------------------------------------------------------------*/ 2509 2510 static inline __ATTRS_o_ai __vector signed short 2511 vec_unpackh(__vector signed char __a) { 2512 return __builtin_s390_vuphb(__a); 2513 } 2514 2515 static inline __ATTRS_o_ai __vector __bool short 2516 vec_unpackh(__vector __bool char __a) { 2517 return ((__vector __bool short) 2518 __builtin_s390_vuphb((__vector signed char)__a)); 2519 } 2520 2521 static inline __ATTRS_o_ai __vector unsigned short 2522 vec_unpackh(__vector unsigned char __a) { 2523 return __builtin_s390_vuplhb(__a); 2524 } 2525 2526 static inline __ATTRS_o_ai __vector signed int 2527 vec_unpackh(__vector signed short __a) { 2528 return __builtin_s390_vuphh(__a); 2529 } 2530 2531 static inline __ATTRS_o_ai __vector __bool int 2532 vec_unpackh(__vector __bool short __a) { 2533 return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a); 2534 } 2535 2536 static inline __ATTRS_o_ai __vector unsigned int 2537 vec_unpackh(__vector unsigned short __a) { 2538 return __builtin_s390_vuplhh(__a); 2539 } 2540 2541 static inline __ATTRS_o_ai __vector signed long long 2542 vec_unpackh(__vector signed int __a) { 2543 return __builtin_s390_vuphf(__a); 2544 } 2545 2546 static inline __ATTRS_o_ai __vector __bool long long 2547 vec_unpackh(__vector __bool int __a) { 2548 return ((__vector __bool long long) 2549 __builtin_s390_vuphf((__vector signed int)__a)); 2550 } 2551 2552 static inline __ATTRS_o_ai __vector unsigned long long 2553 vec_unpackh(__vector unsigned int __a) { 2554 return __builtin_s390_vuplhf(__a); 2555 } 2556 2557 #if __ARCH__ >= 15 2558 static inline __ATTRS_o_ai __vector signed __int128 2559 vec_unpackh(__vector signed long long __a) { 2560 return (__vector signed __int128)__builtin_s390_vuphg(__a); 2561 } 2562 2563 static inline __ATTRS_o_ai __vector __bool __int128 2564 vec_unpackh(__vector __bool long long __a) { 2565 return ((__vector __bool __int128) 2566 __builtin_s390_vuphg((__vector signed long long)__a)); 2567 } 2568 2569 static inline __ATTRS_o_ai __vector unsigned __int128 2570 vec_unpackh(__vector unsigned long long __a) { 2571 return (__vector unsigned __int128)__builtin_s390_vuplhg(__a); 2572 } 2573 #endif 2574 2575 /*-- vec_unpackl ------------------------------------------------------------*/ 2576 2577 static inline __ATTRS_o_ai __vector signed short 2578 vec_unpackl(__vector signed char __a) { 2579 return __builtin_s390_vuplb(__a); 2580 } 2581 2582 static inline __ATTRS_o_ai __vector __bool short 2583 vec_unpackl(__vector __bool char __a) { 2584 return ((__vector __bool short) 2585 __builtin_s390_vuplb((__vector signed char)__a)); 2586 } 2587 2588 static inline __ATTRS_o_ai __vector unsigned short 2589 vec_unpackl(__vector unsigned char __a) { 2590 return __builtin_s390_vupllb(__a); 2591 } 2592 2593 static inline __ATTRS_o_ai __vector signed int 2594 vec_unpackl(__vector signed short __a) { 2595 return __builtin_s390_vuplhw(__a); 2596 } 2597 2598 static inline __ATTRS_o_ai __vector __bool int 2599 vec_unpackl(__vector __bool short __a) { 2600 return ((__vector __bool int) 2601 __builtin_s390_vuplhw((__vector signed short)__a)); 2602 } 2603 2604 static inline __ATTRS_o_ai __vector unsigned int 2605 vec_unpackl(__vector unsigned short __a) { 2606 return __builtin_s390_vupllh(__a); 2607 } 2608 2609 static inline __ATTRS_o_ai __vector signed long long 2610 vec_unpackl(__vector signed int __a) { 2611 return __builtin_s390_vuplf(__a); 2612 } 2613 2614 static inline __ATTRS_o_ai __vector __bool long long 2615 vec_unpackl(__vector __bool int __a) { 2616 return ((__vector __bool long long) 2617 __builtin_s390_vuplf((__vector signed int)__a)); 2618 } 2619 2620 static inline __ATTRS_o_ai __vector unsigned long long 2621 vec_unpackl(__vector unsigned int __a) { 2622 return __builtin_s390_vupllf(__a); 2623 } 2624 2625 #if __ARCH__ >= 15 2626 static inline __ATTRS_o_ai __vector signed __int128 2627 vec_unpackl(__vector signed long long __a) { 2628 return (__vector signed __int128)__builtin_s390_vuplg(__a); 2629 } 2630 2631 static inline __ATTRS_o_ai __vector __bool __int128 2632 vec_unpackl(__vector __bool long long __a) { 2633 return ((__vector __bool __int128) 2634 __builtin_s390_vuplg((__vector signed long long)__a)); 2635 } 2636 2637 static inline __ATTRS_o_ai __vector unsigned __int128 2638 vec_unpackl(__vector unsigned long long __a) { 2639 return (__vector unsigned __int128)__builtin_s390_vupllg(__a); 2640 } 2641 #endif 2642 2643 /*-- vec_cmpeq --------------------------------------------------------------*/ 2644 2645 static inline __ATTRS_o_ai __vector __bool char 2646 vec_cmpeq(__vector __bool char __a, __vector __bool char __b) { 2647 return (__vector __bool char)(__a == __b); 2648 } 2649 2650 static inline __ATTRS_o_ai __vector __bool char 2651 vec_cmpeq(__vector signed char __a, __vector signed char __b) { 2652 return (__vector __bool char)(__a == __b); 2653 } 2654 2655 static inline __ATTRS_o_ai __vector __bool char 2656 vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) { 2657 return (__vector __bool char)(__a == __b); 2658 } 2659 2660 static inline __ATTRS_o_ai __vector __bool short 2661 vec_cmpeq(__vector __bool short __a, __vector __bool short __b) { 2662 return (__vector __bool short)(__a == __b); 2663 } 2664 2665 static inline __ATTRS_o_ai __vector __bool short 2666 vec_cmpeq(__vector signed short __a, __vector signed short __b) { 2667 return (__vector __bool short)(__a == __b); 2668 } 2669 2670 static inline __ATTRS_o_ai __vector __bool short 2671 vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) { 2672 return (__vector __bool short)(__a == __b); 2673 } 2674 2675 static inline __ATTRS_o_ai __vector __bool int 2676 vec_cmpeq(__vector __bool int __a, __vector __bool int __b) { 2677 return (__vector __bool int)(__a == __b); 2678 } 2679 2680 static inline __ATTRS_o_ai __vector __bool int 2681 vec_cmpeq(__vector signed int __a, __vector signed int __b) { 2682 return (__vector __bool int)(__a == __b); 2683 } 2684 2685 static inline __ATTRS_o_ai __vector __bool int 2686 vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) { 2687 return (__vector __bool int)(__a == __b); 2688 } 2689 2690 static inline __ATTRS_o_ai __vector __bool long long 2691 vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) { 2692 return (__vector __bool long long)(__a == __b); 2693 } 2694 2695 static inline __ATTRS_o_ai __vector __bool long long 2696 vec_cmpeq(__vector signed long long __a, __vector signed long long __b) { 2697 return (__vector __bool long long)(__a == __b); 2698 } 2699 2700 static inline __ATTRS_o_ai __vector __bool long long 2701 vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) { 2702 return (__vector __bool long long)(__a == __b); 2703 } 2704 2705 static inline __ATTRS_o_ai __vector __bool __int128 2706 vec_cmpeq(__vector __bool __int128 __a, __vector __bool __int128 __b) { 2707 return (__vector __bool __int128)(__a == __b); 2708 } 2709 2710 static inline __ATTRS_o_ai __vector __bool __int128 2711 vec_cmpeq(__vector signed __int128 __a, __vector signed __int128 __b) { 2712 return (__vector __bool __int128)(__a == __b); 2713 } 2714 2715 static inline __ATTRS_o_ai __vector __bool __int128 2716 vec_cmpeq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 2717 return (__vector __bool __int128)(__a == __b); 2718 } 2719 2720 #if __ARCH__ >= 12 2721 static inline __ATTRS_o_ai __vector __bool int 2722 vec_cmpeq(__vector float __a, __vector float __b) { 2723 return (__vector __bool int)(__a == __b); 2724 } 2725 #endif 2726 2727 static inline __ATTRS_o_ai __vector __bool long long 2728 vec_cmpeq(__vector double __a, __vector double __b) { 2729 return (__vector __bool long long)(__a == __b); 2730 } 2731 2732 /*-- vec_cmpge --------------------------------------------------------------*/ 2733 2734 static inline __ATTRS_o_ai __vector __bool char 2735 vec_cmpge(__vector signed char __a, __vector signed char __b) { 2736 return (__vector __bool char)(__a >= __b); 2737 } 2738 2739 static inline __ATTRS_o_ai __vector __bool char 2740 vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) { 2741 return (__vector __bool char)(__a >= __b); 2742 } 2743 2744 static inline __ATTRS_o_ai __vector __bool short 2745 vec_cmpge(__vector signed short __a, __vector signed short __b) { 2746 return (__vector __bool short)(__a >= __b); 2747 } 2748 2749 static inline __ATTRS_o_ai __vector __bool short 2750 vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) { 2751 return (__vector __bool short)(__a >= __b); 2752 } 2753 2754 static inline __ATTRS_o_ai __vector __bool int 2755 vec_cmpge(__vector signed int __a, __vector signed int __b) { 2756 return (__vector __bool int)(__a >= __b); 2757 } 2758 2759 static inline __ATTRS_o_ai __vector __bool int 2760 vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) { 2761 return (__vector __bool int)(__a >= __b); 2762 } 2763 2764 static inline __ATTRS_o_ai __vector __bool long long 2765 vec_cmpge(__vector signed long long __a, __vector signed long long __b) { 2766 return (__vector __bool long long)(__a >= __b); 2767 } 2768 2769 static inline __ATTRS_o_ai __vector __bool long long 2770 vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) { 2771 return (__vector __bool long long)(__a >= __b); 2772 } 2773 2774 static inline __ATTRS_o_ai __vector __bool __int128 2775 vec_cmpge(__vector signed __int128 __a, __vector signed __int128 __b) { 2776 return (__vector __bool __int128)(__a >= __b); 2777 } 2778 2779 static inline __ATTRS_o_ai __vector __bool __int128 2780 vec_cmpge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 2781 return (__vector __bool __int128)(__a >= __b); 2782 } 2783 2784 #if __ARCH__ >= 12 2785 static inline __ATTRS_o_ai __vector __bool int 2786 vec_cmpge(__vector float __a, __vector float __b) { 2787 return (__vector __bool int)(__a >= __b); 2788 } 2789 #endif 2790 2791 static inline __ATTRS_o_ai __vector __bool long long 2792 vec_cmpge(__vector double __a, __vector double __b) { 2793 return (__vector __bool long long)(__a >= __b); 2794 } 2795 2796 /*-- vec_cmpgt --------------------------------------------------------------*/ 2797 2798 static inline __ATTRS_o_ai __vector __bool char 2799 vec_cmpgt(__vector signed char __a, __vector signed char __b) { 2800 return (__vector __bool char)(__a > __b); 2801 } 2802 2803 static inline __ATTRS_o_ai __vector __bool char 2804 vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) { 2805 return (__vector __bool char)(__a > __b); 2806 } 2807 2808 static inline __ATTRS_o_ai __vector __bool short 2809 vec_cmpgt(__vector signed short __a, __vector signed short __b) { 2810 return (__vector __bool short)(__a > __b); 2811 } 2812 2813 static inline __ATTRS_o_ai __vector __bool short 2814 vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) { 2815 return (__vector __bool short)(__a > __b); 2816 } 2817 2818 static inline __ATTRS_o_ai __vector __bool int 2819 vec_cmpgt(__vector signed int __a, __vector signed int __b) { 2820 return (__vector __bool int)(__a > __b); 2821 } 2822 2823 static inline __ATTRS_o_ai __vector __bool int 2824 vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) { 2825 return (__vector __bool int)(__a > __b); 2826 } 2827 2828 static inline __ATTRS_o_ai __vector __bool long long 2829 vec_cmpgt(__vector signed long long __a, __vector signed long long __b) { 2830 return (__vector __bool long long)(__a > __b); 2831 } 2832 2833 static inline __ATTRS_o_ai __vector __bool long long 2834 vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) { 2835 return (__vector __bool long long)(__a > __b); 2836 } 2837 2838 static inline __ATTRS_o_ai __vector __bool __int128 2839 vec_cmpgt(__vector signed __int128 __a, __vector signed __int128 __b) { 2840 return (__vector __bool __int128)(__a > __b); 2841 } 2842 2843 static inline __ATTRS_o_ai __vector __bool __int128 2844 vec_cmpgt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 2845 return (__vector __bool __int128)(__a > __b); 2846 } 2847 2848 #if __ARCH__ >= 12 2849 static inline __ATTRS_o_ai __vector __bool int 2850 vec_cmpgt(__vector float __a, __vector float __b) { 2851 return (__vector __bool int)(__a > __b); 2852 } 2853 #endif 2854 2855 static inline __ATTRS_o_ai __vector __bool long long 2856 vec_cmpgt(__vector double __a, __vector double __b) { 2857 return (__vector __bool long long)(__a > __b); 2858 } 2859 2860 /*-- vec_cmple --------------------------------------------------------------*/ 2861 2862 static inline __ATTRS_o_ai __vector __bool char 2863 vec_cmple(__vector signed char __a, __vector signed char __b) { 2864 return (__vector __bool char)(__a <= __b); 2865 } 2866 2867 static inline __ATTRS_o_ai __vector __bool char 2868 vec_cmple(__vector unsigned char __a, __vector unsigned char __b) { 2869 return (__vector __bool char)(__a <= __b); 2870 } 2871 2872 static inline __ATTRS_o_ai __vector __bool short 2873 vec_cmple(__vector signed short __a, __vector signed short __b) { 2874 return (__vector __bool short)(__a <= __b); 2875 } 2876 2877 static inline __ATTRS_o_ai __vector __bool short 2878 vec_cmple(__vector unsigned short __a, __vector unsigned short __b) { 2879 return (__vector __bool short)(__a <= __b); 2880 } 2881 2882 static inline __ATTRS_o_ai __vector __bool int 2883 vec_cmple(__vector signed int __a, __vector signed int __b) { 2884 return (__vector __bool int)(__a <= __b); 2885 } 2886 2887 static inline __ATTRS_o_ai __vector __bool int 2888 vec_cmple(__vector unsigned int __a, __vector unsigned int __b) { 2889 return (__vector __bool int)(__a <= __b); 2890 } 2891 2892 static inline __ATTRS_o_ai __vector __bool long long 2893 vec_cmple(__vector signed long long __a, __vector signed long long __b) { 2894 return (__vector __bool long long)(__a <= __b); 2895 } 2896 2897 static inline __ATTRS_o_ai __vector __bool long long 2898 vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) { 2899 return (__vector __bool long long)(__a <= __b); 2900 } 2901 2902 static inline __ATTRS_o_ai __vector __bool __int128 2903 vec_cmple(__vector signed __int128 __a, __vector signed __int128 __b) { 2904 return (__vector __bool __int128)(__a <= __b); 2905 } 2906 2907 static inline __ATTRS_o_ai __vector __bool __int128 2908 vec_cmple(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 2909 return (__vector __bool __int128)(__a <= __b); 2910 } 2911 2912 #if __ARCH__ >= 12 2913 static inline __ATTRS_o_ai __vector __bool int 2914 vec_cmple(__vector float __a, __vector float __b) { 2915 return (__vector __bool int)(__a <= __b); 2916 } 2917 #endif 2918 2919 static inline __ATTRS_o_ai __vector __bool long long 2920 vec_cmple(__vector double __a, __vector double __b) { 2921 return (__vector __bool long long)(__a <= __b); 2922 } 2923 2924 /*-- vec_cmplt --------------------------------------------------------------*/ 2925 2926 static inline __ATTRS_o_ai __vector __bool char 2927 vec_cmplt(__vector signed char __a, __vector signed char __b) { 2928 return (__vector __bool char)(__a < __b); 2929 } 2930 2931 static inline __ATTRS_o_ai __vector __bool char 2932 vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) { 2933 return (__vector __bool char)(__a < __b); 2934 } 2935 2936 static inline __ATTRS_o_ai __vector __bool short 2937 vec_cmplt(__vector signed short __a, __vector signed short __b) { 2938 return (__vector __bool short)(__a < __b); 2939 } 2940 2941 static inline __ATTRS_o_ai __vector __bool short 2942 vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) { 2943 return (__vector __bool short)(__a < __b); 2944 } 2945 2946 static inline __ATTRS_o_ai __vector __bool int 2947 vec_cmplt(__vector signed int __a, __vector signed int __b) { 2948 return (__vector __bool int)(__a < __b); 2949 } 2950 2951 static inline __ATTRS_o_ai __vector __bool int 2952 vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) { 2953 return (__vector __bool int)(__a < __b); 2954 } 2955 2956 static inline __ATTRS_o_ai __vector __bool long long 2957 vec_cmplt(__vector signed long long __a, __vector signed long long __b) { 2958 return (__vector __bool long long)(__a < __b); 2959 } 2960 2961 static inline __ATTRS_o_ai __vector __bool long long 2962 vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) { 2963 return (__vector __bool long long)(__a < __b); 2964 } 2965 2966 static inline __ATTRS_o_ai __vector __bool __int128 2967 vec_cmplt(__vector signed __int128 __a, __vector signed __int128 __b) { 2968 return (__vector __bool __int128)(__a < __b); 2969 } 2970 2971 static inline __ATTRS_o_ai __vector __bool __int128 2972 vec_cmplt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 2973 return (__vector __bool __int128)(__a < __b); 2974 } 2975 2976 #if __ARCH__ >= 12 2977 static inline __ATTRS_o_ai __vector __bool int 2978 vec_cmplt(__vector float __a, __vector float __b) { 2979 return (__vector __bool int)(__a < __b); 2980 } 2981 #endif 2982 2983 static inline __ATTRS_o_ai __vector __bool long long 2984 vec_cmplt(__vector double __a, __vector double __b) { 2985 return (__vector __bool long long)(__a < __b); 2986 } 2987 2988 /*-- vec_all_eq -------------------------------------------------------------*/ 2989 2990 static inline __ATTRS_o_ai int 2991 vec_all_eq(__vector signed char __a, __vector signed char __b) { 2992 int __cc; 2993 __builtin_s390_vceqbs((__vector unsigned char)__a, 2994 (__vector unsigned char)__b, &__cc); 2995 return __cc == 0; 2996 } 2997 2998 // This prototype is deprecated. 2999 static inline __ATTRS_o_ai int 3000 vec_all_eq(__vector signed char __a, __vector __bool char __b) { 3001 int __cc; 3002 __builtin_s390_vceqbs((__vector unsigned char)__a, 3003 (__vector unsigned char)__b, &__cc); 3004 return __cc == 0; 3005 } 3006 3007 // This prototype is deprecated. 3008 static inline __ATTRS_o_ai int 3009 vec_all_eq(__vector __bool char __a, __vector signed char __b) { 3010 int __cc; 3011 __builtin_s390_vceqbs((__vector unsigned char)__a, 3012 (__vector unsigned char)__b, &__cc); 3013 return __cc == 0; 3014 } 3015 3016 static inline __ATTRS_o_ai int 3017 vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) { 3018 int __cc; 3019 __builtin_s390_vceqbs(__a, __b, &__cc); 3020 return __cc == 0; 3021 } 3022 3023 // This prototype is deprecated. 3024 static inline __ATTRS_o_ai int 3025 vec_all_eq(__vector unsigned char __a, __vector __bool char __b) { 3026 int __cc; 3027 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc); 3028 return __cc == 0; 3029 } 3030 3031 // This prototype is deprecated. 3032 static inline __ATTRS_o_ai int 3033 vec_all_eq(__vector __bool char __a, __vector unsigned char __b) { 3034 int __cc; 3035 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc); 3036 return __cc == 0; 3037 } 3038 3039 static inline __ATTRS_o_ai int 3040 vec_all_eq(__vector __bool char __a, __vector __bool char __b) { 3041 int __cc; 3042 __builtin_s390_vceqbs((__vector unsigned char)__a, 3043 (__vector unsigned char)__b, &__cc); 3044 return __cc == 0; 3045 } 3046 3047 static inline __ATTRS_o_ai int 3048 vec_all_eq(__vector signed short __a, __vector signed short __b) { 3049 int __cc; 3050 __builtin_s390_vceqhs((__vector unsigned short)__a, 3051 (__vector unsigned short)__b, &__cc); 3052 return __cc == 0; 3053 } 3054 3055 // This prototype is deprecated. 3056 static inline __ATTRS_o_ai int 3057 vec_all_eq(__vector signed short __a, __vector __bool short __b) { 3058 int __cc; 3059 __builtin_s390_vceqhs((__vector unsigned short)__a, 3060 (__vector unsigned short)__b, &__cc); 3061 return __cc == 0; 3062 } 3063 3064 // This prototype is deprecated. 3065 static inline __ATTRS_o_ai int 3066 vec_all_eq(__vector __bool short __a, __vector signed short __b) { 3067 int __cc; 3068 __builtin_s390_vceqhs((__vector unsigned short)__a, 3069 (__vector unsigned short)__b, &__cc); 3070 return __cc == 0; 3071 } 3072 3073 static inline __ATTRS_o_ai int 3074 vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) { 3075 int __cc; 3076 __builtin_s390_vceqhs(__a, __b, &__cc); 3077 return __cc == 0; 3078 } 3079 3080 // This prototype is deprecated. 3081 static inline __ATTRS_o_ai int 3082 vec_all_eq(__vector unsigned short __a, __vector __bool short __b) { 3083 int __cc; 3084 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc); 3085 return __cc == 0; 3086 } 3087 3088 // This prototype is deprecated. 3089 static inline __ATTRS_o_ai int 3090 vec_all_eq(__vector __bool short __a, __vector unsigned short __b) { 3091 int __cc; 3092 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc); 3093 return __cc == 0; 3094 } 3095 3096 static inline __ATTRS_o_ai int 3097 vec_all_eq(__vector __bool short __a, __vector __bool short __b) { 3098 int __cc; 3099 __builtin_s390_vceqhs((__vector unsigned short)__a, 3100 (__vector unsigned short)__b, &__cc); 3101 return __cc == 0; 3102 } 3103 3104 static inline __ATTRS_o_ai int 3105 vec_all_eq(__vector signed int __a, __vector signed int __b) { 3106 int __cc; 3107 __builtin_s390_vceqfs((__vector unsigned int)__a, 3108 (__vector unsigned int)__b, &__cc); 3109 return __cc == 0; 3110 } 3111 3112 // This prototype is deprecated. 3113 static inline __ATTRS_o_ai int 3114 vec_all_eq(__vector signed int __a, __vector __bool int __b) { 3115 int __cc; 3116 __builtin_s390_vceqfs((__vector unsigned int)__a, 3117 (__vector unsigned int)__b, &__cc); 3118 return __cc == 0; 3119 } 3120 3121 // This prototype is deprecated. 3122 static inline __ATTRS_o_ai int 3123 vec_all_eq(__vector __bool int __a, __vector signed int __b) { 3124 int __cc; 3125 __builtin_s390_vceqfs((__vector unsigned int)__a, 3126 (__vector unsigned int)__b, &__cc); 3127 return __cc == 0; 3128 } 3129 3130 static inline __ATTRS_o_ai int 3131 vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) { 3132 int __cc; 3133 __builtin_s390_vceqfs(__a, __b, &__cc); 3134 return __cc == 0; 3135 } 3136 3137 // This prototype is deprecated. 3138 static inline __ATTRS_o_ai int 3139 vec_all_eq(__vector unsigned int __a, __vector __bool int __b) { 3140 int __cc; 3141 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc); 3142 return __cc == 0; 3143 } 3144 3145 // This prototype is deprecated. 3146 static inline __ATTRS_o_ai int 3147 vec_all_eq(__vector __bool int __a, __vector unsigned int __b) { 3148 int __cc; 3149 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc); 3150 return __cc == 0; 3151 } 3152 3153 static inline __ATTRS_o_ai int 3154 vec_all_eq(__vector __bool int __a, __vector __bool int __b) { 3155 int __cc; 3156 __builtin_s390_vceqfs((__vector unsigned int)__a, 3157 (__vector unsigned int)__b, &__cc); 3158 return __cc == 0; 3159 } 3160 3161 static inline __ATTRS_o_ai int 3162 vec_all_eq(__vector signed long long __a, __vector signed long long __b) { 3163 int __cc; 3164 __builtin_s390_vceqgs((__vector unsigned long long)__a, 3165 (__vector unsigned long long)__b, &__cc); 3166 return __cc == 0; 3167 } 3168 3169 // This prototype is deprecated. 3170 static inline __ATTRS_o_ai int 3171 vec_all_eq(__vector signed long long __a, __vector __bool long long __b) { 3172 int __cc; 3173 __builtin_s390_vceqgs((__vector unsigned long long)__a, 3174 (__vector unsigned long long)__b, &__cc); 3175 return __cc == 0; 3176 } 3177 3178 // This prototype is deprecated. 3179 static inline __ATTRS_o_ai int 3180 vec_all_eq(__vector __bool long long __a, __vector signed long long __b) { 3181 int __cc; 3182 __builtin_s390_vceqgs((__vector unsigned long long)__a, 3183 (__vector unsigned long long)__b, &__cc); 3184 return __cc == 0; 3185 } 3186 3187 static inline __ATTRS_o_ai int 3188 vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) { 3189 int __cc; 3190 __builtin_s390_vceqgs(__a, __b, &__cc); 3191 return __cc == 0; 3192 } 3193 3194 // This prototype is deprecated. 3195 static inline __ATTRS_o_ai int 3196 vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) { 3197 int __cc; 3198 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc); 3199 return __cc == 0; 3200 } 3201 3202 // This prototype is deprecated. 3203 static inline __ATTRS_o_ai int 3204 vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) { 3205 int __cc; 3206 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc); 3207 return __cc == 0; 3208 } 3209 3210 static inline __ATTRS_o_ai int 3211 vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) { 3212 int __cc; 3213 __builtin_s390_vceqgs((__vector unsigned long long)__a, 3214 (__vector unsigned long long)__b, &__cc); 3215 return __cc == 0; 3216 } 3217 3218 #if __ARCH__ >= 15 3219 static inline __ATTRS_o_ai int 3220 vec_all_eq(__vector signed __int128 __a, __vector signed __int128 __b) { 3221 int __cc; 3222 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 3223 return __cc == 0; 3224 } 3225 3226 static inline __ATTRS_o_ai int 3227 vec_all_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 3228 int __cc; 3229 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 3230 return __cc == 0; 3231 } 3232 3233 static inline __ATTRS_o_ai int 3234 vec_all_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) { 3235 int __cc; 3236 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 3237 return __cc == 0; 3238 } 3239 #endif 3240 3241 #if __ARCH__ >= 12 3242 static inline __ATTRS_o_ai int 3243 vec_all_eq(__vector float __a, __vector float __b) { 3244 int __cc; 3245 __builtin_s390_vfcesbs(__a, __b, &__cc); 3246 return __cc == 0; 3247 } 3248 #endif 3249 3250 static inline __ATTRS_o_ai int 3251 vec_all_eq(__vector double __a, __vector double __b) { 3252 int __cc; 3253 __builtin_s390_vfcedbs(__a, __b, &__cc); 3254 return __cc == 0; 3255 } 3256 3257 /*-- vec_all_ne -------------------------------------------------------------*/ 3258 3259 static inline __ATTRS_o_ai int 3260 vec_all_ne(__vector signed char __a, __vector signed char __b) { 3261 int __cc; 3262 __builtin_s390_vceqbs((__vector unsigned char)__a, 3263 (__vector unsigned char)__b, &__cc); 3264 return __cc == 3; 3265 } 3266 3267 // This prototype is deprecated. 3268 static inline __ATTRS_o_ai int 3269 vec_all_ne(__vector signed char __a, __vector __bool char __b) { 3270 int __cc; 3271 __builtin_s390_vceqbs((__vector unsigned char)__a, 3272 (__vector unsigned char)__b, &__cc); 3273 return __cc == 3; 3274 } 3275 3276 // This prototype is deprecated. 3277 static inline __ATTRS_o_ai int 3278 vec_all_ne(__vector __bool char __a, __vector signed char __b) { 3279 int __cc; 3280 __builtin_s390_vceqbs((__vector unsigned char)__a, 3281 (__vector unsigned char)__b, &__cc); 3282 return __cc == 3; 3283 } 3284 3285 static inline __ATTRS_o_ai int 3286 vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) { 3287 int __cc; 3288 __builtin_s390_vceqbs((__vector unsigned char)__a, 3289 (__vector unsigned char)__b, &__cc); 3290 return __cc == 3; 3291 } 3292 3293 // This prototype is deprecated. 3294 static inline __ATTRS_o_ai int 3295 vec_all_ne(__vector unsigned char __a, __vector __bool char __b) { 3296 int __cc; 3297 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc); 3298 return __cc == 3; 3299 } 3300 3301 // This prototype is deprecated. 3302 static inline __ATTRS_o_ai int 3303 vec_all_ne(__vector __bool char __a, __vector unsigned char __b) { 3304 int __cc; 3305 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc); 3306 return __cc == 3; 3307 } 3308 3309 static inline __ATTRS_o_ai int 3310 vec_all_ne(__vector __bool char __a, __vector __bool char __b) { 3311 int __cc; 3312 __builtin_s390_vceqbs((__vector unsigned char)__a, 3313 (__vector unsigned char)__b, &__cc); 3314 return __cc == 3; 3315 } 3316 3317 static inline __ATTRS_o_ai int 3318 vec_all_ne(__vector signed short __a, __vector signed short __b) { 3319 int __cc; 3320 __builtin_s390_vceqhs((__vector unsigned short)__a, 3321 (__vector unsigned short)__b, &__cc); 3322 return __cc == 3; 3323 } 3324 3325 // This prototype is deprecated. 3326 static inline __ATTRS_o_ai int 3327 vec_all_ne(__vector signed short __a, __vector __bool short __b) { 3328 int __cc; 3329 __builtin_s390_vceqhs((__vector unsigned short)__a, 3330 (__vector unsigned short)__b, &__cc); 3331 return __cc == 3; 3332 } 3333 3334 // This prototype is deprecated. 3335 static inline __ATTRS_o_ai int 3336 vec_all_ne(__vector __bool short __a, __vector signed short __b) { 3337 int __cc; 3338 __builtin_s390_vceqhs((__vector unsigned short)__a, 3339 (__vector unsigned short)__b, &__cc); 3340 return __cc == 3; 3341 } 3342 3343 static inline __ATTRS_o_ai int 3344 vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) { 3345 int __cc; 3346 __builtin_s390_vceqhs(__a, __b, &__cc); 3347 return __cc == 3; 3348 } 3349 3350 // This prototype is deprecated. 3351 static inline __ATTRS_o_ai int 3352 vec_all_ne(__vector unsigned short __a, __vector __bool short __b) { 3353 int __cc; 3354 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc); 3355 return __cc == 3; 3356 } 3357 3358 // This prototype is deprecated. 3359 static inline __ATTRS_o_ai int 3360 vec_all_ne(__vector __bool short __a, __vector unsigned short __b) { 3361 int __cc; 3362 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc); 3363 return __cc == 3; 3364 } 3365 3366 static inline __ATTRS_o_ai int 3367 vec_all_ne(__vector __bool short __a, __vector __bool short __b) { 3368 int __cc; 3369 __builtin_s390_vceqhs((__vector unsigned short)__a, 3370 (__vector unsigned short)__b, &__cc); 3371 return __cc == 3; 3372 } 3373 3374 static inline __ATTRS_o_ai int 3375 vec_all_ne(__vector signed int __a, __vector signed int __b) { 3376 int __cc; 3377 __builtin_s390_vceqfs((__vector unsigned int)__a, 3378 (__vector unsigned int)__b, &__cc); 3379 return __cc == 3; 3380 } 3381 3382 // This prototype is deprecated. 3383 static inline __ATTRS_o_ai int 3384 vec_all_ne(__vector signed int __a, __vector __bool int __b) { 3385 int __cc; 3386 __builtin_s390_vceqfs((__vector unsigned int)__a, 3387 (__vector unsigned int)__b, &__cc); 3388 return __cc == 3; 3389 } 3390 3391 // This prototype is deprecated. 3392 static inline __ATTRS_o_ai int 3393 vec_all_ne(__vector __bool int __a, __vector signed int __b) { 3394 int __cc; 3395 __builtin_s390_vceqfs((__vector unsigned int)__a, 3396 (__vector unsigned int)__b, &__cc); 3397 return __cc == 3; 3398 } 3399 3400 static inline __ATTRS_o_ai int 3401 vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) { 3402 int __cc; 3403 __builtin_s390_vceqfs(__a, __b, &__cc); 3404 return __cc == 3; 3405 } 3406 3407 // This prototype is deprecated. 3408 static inline __ATTRS_o_ai int 3409 vec_all_ne(__vector unsigned int __a, __vector __bool int __b) { 3410 int __cc; 3411 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc); 3412 return __cc == 3; 3413 } 3414 3415 // This prototype is deprecated. 3416 static inline __ATTRS_o_ai int 3417 vec_all_ne(__vector __bool int __a, __vector unsigned int __b) { 3418 int __cc; 3419 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc); 3420 return __cc == 3; 3421 } 3422 3423 static inline __ATTRS_o_ai int 3424 vec_all_ne(__vector __bool int __a, __vector __bool int __b) { 3425 int __cc; 3426 __builtin_s390_vceqfs((__vector unsigned int)__a, 3427 (__vector unsigned int)__b, &__cc); 3428 return __cc == 3; 3429 } 3430 3431 static inline __ATTRS_o_ai int 3432 vec_all_ne(__vector signed long long __a, __vector signed long long __b) { 3433 int __cc; 3434 __builtin_s390_vceqgs((__vector unsigned long long)__a, 3435 (__vector unsigned long long)__b, &__cc); 3436 return __cc == 3; 3437 } 3438 3439 // This prototype is deprecated. 3440 static inline __ATTRS_o_ai int 3441 vec_all_ne(__vector signed long long __a, __vector __bool long long __b) { 3442 int __cc; 3443 __builtin_s390_vceqgs((__vector unsigned long long)__a, 3444 (__vector unsigned long long)__b, &__cc); 3445 return __cc == 3; 3446 } 3447 3448 // This prototype is deprecated. 3449 static inline __ATTRS_o_ai int 3450 vec_all_ne(__vector __bool long long __a, __vector signed long long __b) { 3451 int __cc; 3452 __builtin_s390_vceqgs((__vector unsigned long long)__a, 3453 (__vector unsigned long long)__b, &__cc); 3454 return __cc == 3; 3455 } 3456 3457 static inline __ATTRS_o_ai int 3458 vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) { 3459 int __cc; 3460 __builtin_s390_vceqgs(__a, __b, &__cc); 3461 return __cc == 3; 3462 } 3463 3464 // This prototype is deprecated. 3465 static inline __ATTRS_o_ai int 3466 vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) { 3467 int __cc; 3468 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc); 3469 return __cc == 3; 3470 } 3471 3472 // This prototype is deprecated. 3473 static inline __ATTRS_o_ai int 3474 vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) { 3475 int __cc; 3476 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc); 3477 return __cc == 3; 3478 } 3479 3480 static inline __ATTRS_o_ai int 3481 vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) { 3482 int __cc; 3483 __builtin_s390_vceqgs((__vector unsigned long long)__a, 3484 (__vector unsigned long long)__b, &__cc); 3485 return __cc == 3; 3486 } 3487 3488 #if __ARCH__ >= 15 3489 static inline __ATTRS_o_ai int 3490 vec_all_ne(__vector signed __int128 __a, __vector signed __int128 __b) { 3491 int __cc; 3492 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 3493 return __cc == 3; 3494 } 3495 3496 static inline __ATTRS_o_ai int 3497 vec_all_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 3498 int __cc; 3499 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 3500 return __cc == 3; 3501 } 3502 3503 static inline __ATTRS_o_ai int 3504 vec_all_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) { 3505 int __cc; 3506 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 3507 return __cc == 3; 3508 } 3509 #endif 3510 3511 #if __ARCH__ >= 12 3512 static inline __ATTRS_o_ai int 3513 vec_all_ne(__vector float __a, __vector float __b) { 3514 int __cc; 3515 __builtin_s390_vfcesbs(__a, __b, &__cc); 3516 return __cc == 3; 3517 } 3518 #endif 3519 3520 static inline __ATTRS_o_ai int 3521 vec_all_ne(__vector double __a, __vector double __b) { 3522 int __cc; 3523 __builtin_s390_vfcedbs(__a, __b, &__cc); 3524 return __cc == 3; 3525 } 3526 3527 /*-- vec_all_ge -------------------------------------------------------------*/ 3528 3529 static inline __ATTRS_o_ai int 3530 vec_all_ge(__vector signed char __a, __vector signed char __b) { 3531 int __cc; 3532 __builtin_s390_vchbs(__b, __a, &__cc); 3533 return __cc == 3; 3534 } 3535 3536 // This prototype is deprecated. 3537 static inline __ATTRS_o_ai int 3538 vec_all_ge(__vector signed char __a, __vector __bool char __b) { 3539 int __cc; 3540 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc); 3541 return __cc == 3; 3542 } 3543 3544 // This prototype is deprecated. 3545 static inline __ATTRS_o_ai int 3546 vec_all_ge(__vector __bool char __a, __vector signed char __b) { 3547 int __cc; 3548 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc); 3549 return __cc == 3; 3550 } 3551 3552 static inline __ATTRS_o_ai int 3553 vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) { 3554 int __cc; 3555 __builtin_s390_vchlbs(__b, __a, &__cc); 3556 return __cc == 3; 3557 } 3558 3559 // This prototype is deprecated. 3560 static inline __ATTRS_o_ai int 3561 vec_all_ge(__vector unsigned char __a, __vector __bool char __b) { 3562 int __cc; 3563 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc); 3564 return __cc == 3; 3565 } 3566 3567 // This prototype is deprecated. 3568 static inline __ATTRS_o_ai int 3569 vec_all_ge(__vector __bool char __a, __vector unsigned char __b) { 3570 int __cc; 3571 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc); 3572 return __cc == 3; 3573 } 3574 3575 // This prototype is deprecated. 3576 static inline __ATTRS_o_ai int 3577 vec_all_ge(__vector __bool char __a, __vector __bool char __b) { 3578 int __cc; 3579 __builtin_s390_vchlbs((__vector unsigned char)__b, 3580 (__vector unsigned char)__a, &__cc); 3581 return __cc == 3; 3582 } 3583 3584 static inline __ATTRS_o_ai int 3585 vec_all_ge(__vector signed short __a, __vector signed short __b) { 3586 int __cc; 3587 __builtin_s390_vchhs(__b, __a, &__cc); 3588 return __cc == 3; 3589 } 3590 3591 // This prototype is deprecated. 3592 static inline __ATTRS_o_ai int 3593 vec_all_ge(__vector signed short __a, __vector __bool short __b) { 3594 int __cc; 3595 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc); 3596 return __cc == 3; 3597 } 3598 3599 // This prototype is deprecated. 3600 static inline __ATTRS_o_ai int 3601 vec_all_ge(__vector __bool short __a, __vector signed short __b) { 3602 int __cc; 3603 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc); 3604 return __cc == 3; 3605 } 3606 3607 static inline __ATTRS_o_ai int 3608 vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) { 3609 int __cc; 3610 __builtin_s390_vchlhs(__b, __a, &__cc); 3611 return __cc == 3; 3612 } 3613 3614 // This prototype is deprecated. 3615 static inline __ATTRS_o_ai int 3616 vec_all_ge(__vector unsigned short __a, __vector __bool short __b) { 3617 int __cc; 3618 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc); 3619 return __cc == 3; 3620 } 3621 3622 // This prototype is deprecated. 3623 static inline __ATTRS_o_ai int 3624 vec_all_ge(__vector __bool short __a, __vector unsigned short __b) { 3625 int __cc; 3626 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc); 3627 return __cc == 3; 3628 } 3629 3630 // This prototype is deprecated. 3631 static inline __ATTRS_o_ai int 3632 vec_all_ge(__vector __bool short __a, __vector __bool short __b) { 3633 int __cc; 3634 __builtin_s390_vchlhs((__vector unsigned short)__b, 3635 (__vector unsigned short)__a, &__cc); 3636 return __cc == 3; 3637 } 3638 3639 static inline __ATTRS_o_ai int 3640 vec_all_ge(__vector signed int __a, __vector signed int __b) { 3641 int __cc; 3642 __builtin_s390_vchfs(__b, __a, &__cc); 3643 return __cc == 3; 3644 } 3645 3646 // This prototype is deprecated. 3647 static inline __ATTRS_o_ai int 3648 vec_all_ge(__vector signed int __a, __vector __bool int __b) { 3649 int __cc; 3650 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc); 3651 return __cc == 3; 3652 } 3653 3654 // This prototype is deprecated. 3655 static inline __ATTRS_o_ai int 3656 vec_all_ge(__vector __bool int __a, __vector signed int __b) { 3657 int __cc; 3658 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc); 3659 return __cc == 3; 3660 } 3661 3662 static inline __ATTRS_o_ai int 3663 vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) { 3664 int __cc; 3665 __builtin_s390_vchlfs(__b, __a, &__cc); 3666 return __cc == 3; 3667 } 3668 3669 // This prototype is deprecated. 3670 static inline __ATTRS_o_ai int 3671 vec_all_ge(__vector unsigned int __a, __vector __bool int __b) { 3672 int __cc; 3673 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc); 3674 return __cc == 3; 3675 } 3676 3677 // This prototype is deprecated. 3678 static inline __ATTRS_o_ai int 3679 vec_all_ge(__vector __bool int __a, __vector unsigned int __b) { 3680 int __cc; 3681 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc); 3682 return __cc == 3; 3683 } 3684 3685 // This prototype is deprecated. 3686 static inline __ATTRS_o_ai int 3687 vec_all_ge(__vector __bool int __a, __vector __bool int __b) { 3688 int __cc; 3689 __builtin_s390_vchlfs((__vector unsigned int)__b, 3690 (__vector unsigned int)__a, &__cc); 3691 return __cc == 3; 3692 } 3693 3694 static inline __ATTRS_o_ai int 3695 vec_all_ge(__vector signed long long __a, __vector signed long long __b) { 3696 int __cc; 3697 __builtin_s390_vchgs(__b, __a, &__cc); 3698 return __cc == 3; 3699 } 3700 3701 // This prototype is deprecated. 3702 static inline __ATTRS_o_ai int 3703 vec_all_ge(__vector signed long long __a, __vector __bool long long __b) { 3704 int __cc; 3705 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc); 3706 return __cc == 3; 3707 } 3708 3709 // This prototype is deprecated. 3710 static inline __ATTRS_o_ai int 3711 vec_all_ge(__vector __bool long long __a, __vector signed long long __b) { 3712 int __cc; 3713 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc); 3714 return __cc == 3; 3715 } 3716 3717 static inline __ATTRS_o_ai int 3718 vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) { 3719 int __cc; 3720 __builtin_s390_vchlgs(__b, __a, &__cc); 3721 return __cc == 3; 3722 } 3723 3724 // This prototype is deprecated. 3725 static inline __ATTRS_o_ai int 3726 vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) { 3727 int __cc; 3728 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc); 3729 return __cc == 3; 3730 } 3731 3732 // This prototype is deprecated. 3733 static inline __ATTRS_o_ai int 3734 vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) { 3735 int __cc; 3736 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc); 3737 return __cc == 3; 3738 } 3739 3740 // This prototype is deprecated. 3741 static inline __ATTRS_o_ai int 3742 vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) { 3743 int __cc; 3744 __builtin_s390_vchlgs((__vector unsigned long long)__b, 3745 (__vector unsigned long long)__a, &__cc); 3746 return __cc == 3; 3747 } 3748 3749 #if __ARCH__ >= 15 3750 static inline __ATTRS_o_ai int 3751 vec_all_ge(__vector signed __int128 __a, __vector signed __int128 __b) { 3752 int __cc; 3753 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc); 3754 return __cc == 3; 3755 } 3756 3757 static inline __ATTRS_o_ai int 3758 vec_all_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 3759 int __cc; 3760 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc); 3761 return __cc == 3; 3762 } 3763 #endif 3764 3765 #if __ARCH__ >= 12 3766 static inline __ATTRS_o_ai int 3767 vec_all_ge(__vector float __a, __vector float __b) { 3768 int __cc; 3769 __builtin_s390_vfchesbs(__a, __b, &__cc); 3770 return __cc == 0; 3771 } 3772 #endif 3773 3774 static inline __ATTRS_o_ai int 3775 vec_all_ge(__vector double __a, __vector double __b) { 3776 int __cc; 3777 __builtin_s390_vfchedbs(__a, __b, &__cc); 3778 return __cc == 0; 3779 } 3780 3781 /*-- vec_all_gt -------------------------------------------------------------*/ 3782 3783 static inline __ATTRS_o_ai int 3784 vec_all_gt(__vector signed char __a, __vector signed char __b) { 3785 int __cc; 3786 __builtin_s390_vchbs(__a, __b, &__cc); 3787 return __cc == 0; 3788 } 3789 3790 // This prototype is deprecated. 3791 static inline __ATTRS_o_ai int 3792 vec_all_gt(__vector signed char __a, __vector __bool char __b) { 3793 int __cc; 3794 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc); 3795 return __cc == 0; 3796 } 3797 3798 // This prototype is deprecated. 3799 static inline __ATTRS_o_ai int 3800 vec_all_gt(__vector __bool char __a, __vector signed char __b) { 3801 int __cc; 3802 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc); 3803 return __cc == 0; 3804 } 3805 3806 static inline __ATTRS_o_ai int 3807 vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) { 3808 int __cc; 3809 __builtin_s390_vchlbs(__a, __b, &__cc); 3810 return __cc == 0; 3811 } 3812 3813 // This prototype is deprecated. 3814 static inline __ATTRS_o_ai int 3815 vec_all_gt(__vector unsigned char __a, __vector __bool char __b) { 3816 int __cc; 3817 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc); 3818 return __cc == 0; 3819 } 3820 3821 // This prototype is deprecated. 3822 static inline __ATTRS_o_ai int 3823 vec_all_gt(__vector __bool char __a, __vector unsigned char __b) { 3824 int __cc; 3825 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc); 3826 return __cc == 0; 3827 } 3828 3829 // This prototype is deprecated. 3830 static inline __ATTRS_o_ai int 3831 vec_all_gt(__vector __bool char __a, __vector __bool char __b) { 3832 int __cc; 3833 __builtin_s390_vchlbs((__vector unsigned char)__a, 3834 (__vector unsigned char)__b, &__cc); 3835 return __cc == 0; 3836 } 3837 3838 static inline __ATTRS_o_ai int 3839 vec_all_gt(__vector signed short __a, __vector signed short __b) { 3840 int __cc; 3841 __builtin_s390_vchhs(__a, __b, &__cc); 3842 return __cc == 0; 3843 } 3844 3845 // This prototype is deprecated. 3846 static inline __ATTRS_o_ai int 3847 vec_all_gt(__vector signed short __a, __vector __bool short __b) { 3848 int __cc; 3849 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc); 3850 return __cc == 0; 3851 } 3852 3853 // This prototype is deprecated. 3854 static inline __ATTRS_o_ai int 3855 vec_all_gt(__vector __bool short __a, __vector signed short __b) { 3856 int __cc; 3857 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc); 3858 return __cc == 0; 3859 } 3860 3861 static inline __ATTRS_o_ai int 3862 vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) { 3863 int __cc; 3864 __builtin_s390_vchlhs(__a, __b, &__cc); 3865 return __cc == 0; 3866 } 3867 3868 // This prototype is deprecated. 3869 static inline __ATTRS_o_ai int 3870 vec_all_gt(__vector unsigned short __a, __vector __bool short __b) { 3871 int __cc; 3872 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc); 3873 return __cc == 0; 3874 } 3875 3876 // This prototype is deprecated. 3877 static inline __ATTRS_o_ai int 3878 vec_all_gt(__vector __bool short __a, __vector unsigned short __b) { 3879 int __cc; 3880 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc); 3881 return __cc == 0; 3882 } 3883 3884 // This prototype is deprecated. 3885 static inline __ATTRS_o_ai int 3886 vec_all_gt(__vector __bool short __a, __vector __bool short __b) { 3887 int __cc; 3888 __builtin_s390_vchlhs((__vector unsigned short)__a, 3889 (__vector unsigned short)__b, &__cc); 3890 return __cc == 0; 3891 } 3892 3893 static inline __ATTRS_o_ai int 3894 vec_all_gt(__vector signed int __a, __vector signed int __b) { 3895 int __cc; 3896 __builtin_s390_vchfs(__a, __b, &__cc); 3897 return __cc == 0; 3898 } 3899 3900 // This prototype is deprecated. 3901 static inline __ATTRS_o_ai int 3902 vec_all_gt(__vector signed int __a, __vector __bool int __b) { 3903 int __cc; 3904 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc); 3905 return __cc == 0; 3906 } 3907 3908 // This prototype is deprecated. 3909 static inline __ATTRS_o_ai int 3910 vec_all_gt(__vector __bool int __a, __vector signed int __b) { 3911 int __cc; 3912 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc); 3913 return __cc == 0; 3914 } 3915 3916 static inline __ATTRS_o_ai int 3917 vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) { 3918 int __cc; 3919 __builtin_s390_vchlfs(__a, __b, &__cc); 3920 return __cc == 0; 3921 } 3922 3923 // This prototype is deprecated. 3924 static inline __ATTRS_o_ai int 3925 vec_all_gt(__vector unsigned int __a, __vector __bool int __b) { 3926 int __cc; 3927 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc); 3928 return __cc == 0; 3929 } 3930 3931 // This prototype is deprecated. 3932 static inline __ATTRS_o_ai int 3933 vec_all_gt(__vector __bool int __a, __vector unsigned int __b) { 3934 int __cc; 3935 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc); 3936 return __cc == 0; 3937 } 3938 3939 // This prototype is deprecated. 3940 static inline __ATTRS_o_ai int 3941 vec_all_gt(__vector __bool int __a, __vector __bool int __b) { 3942 int __cc; 3943 __builtin_s390_vchlfs((__vector unsigned int)__a, 3944 (__vector unsigned int)__b, &__cc); 3945 return __cc == 0; 3946 } 3947 3948 static inline __ATTRS_o_ai int 3949 vec_all_gt(__vector signed long long __a, __vector signed long long __b) { 3950 int __cc; 3951 __builtin_s390_vchgs(__a, __b, &__cc); 3952 return __cc == 0; 3953 } 3954 3955 // This prototype is deprecated. 3956 static inline __ATTRS_o_ai int 3957 vec_all_gt(__vector signed long long __a, __vector __bool long long __b) { 3958 int __cc; 3959 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc); 3960 return __cc == 0; 3961 } 3962 3963 // This prototype is deprecated. 3964 static inline __ATTRS_o_ai int 3965 vec_all_gt(__vector __bool long long __a, __vector signed long long __b) { 3966 int __cc; 3967 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc); 3968 return __cc == 0; 3969 } 3970 3971 static inline __ATTRS_o_ai int 3972 vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) { 3973 int __cc; 3974 __builtin_s390_vchlgs(__a, __b, &__cc); 3975 return __cc == 0; 3976 } 3977 3978 // This prototype is deprecated. 3979 static inline __ATTRS_o_ai int 3980 vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) { 3981 int __cc; 3982 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc); 3983 return __cc == 0; 3984 } 3985 3986 // This prototype is deprecated. 3987 static inline __ATTRS_o_ai int 3988 vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) { 3989 int __cc; 3990 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc); 3991 return __cc == 0; 3992 } 3993 3994 // This prototype is deprecated. 3995 static inline __ATTRS_o_ai int 3996 vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) { 3997 int __cc; 3998 __builtin_s390_vchlgs((__vector unsigned long long)__a, 3999 (__vector unsigned long long)__b, &__cc); 4000 return __cc == 0; 4001 } 4002 4003 #if __ARCH__ >= 15 4004 static inline __ATTRS_o_ai int 4005 vec_all_gt(__vector signed __int128 __a, __vector signed __int128 __b) { 4006 int __cc; 4007 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc); 4008 return __cc == 0; 4009 } 4010 4011 static inline __ATTRS_o_ai int 4012 vec_all_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 4013 int __cc; 4014 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 4015 return __cc == 0; 4016 } 4017 #endif 4018 4019 #if __ARCH__ >= 12 4020 static inline __ATTRS_o_ai int 4021 vec_all_gt(__vector float __a, __vector float __b) { 4022 int __cc; 4023 __builtin_s390_vfchsbs(__a, __b, &__cc); 4024 return __cc == 0; 4025 } 4026 #endif 4027 4028 static inline __ATTRS_o_ai int 4029 vec_all_gt(__vector double __a, __vector double __b) { 4030 int __cc; 4031 __builtin_s390_vfchdbs(__a, __b, &__cc); 4032 return __cc == 0; 4033 } 4034 4035 /*-- vec_all_le -------------------------------------------------------------*/ 4036 4037 static inline __ATTRS_o_ai int 4038 vec_all_le(__vector signed char __a, __vector signed char __b) { 4039 int __cc; 4040 __builtin_s390_vchbs(__a, __b, &__cc); 4041 return __cc == 3; 4042 } 4043 4044 // This prototype is deprecated. 4045 static inline __ATTRS_o_ai int 4046 vec_all_le(__vector signed char __a, __vector __bool char __b) { 4047 int __cc; 4048 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc); 4049 return __cc == 3; 4050 } 4051 4052 // This prototype is deprecated. 4053 static inline __ATTRS_o_ai int 4054 vec_all_le(__vector __bool char __a, __vector signed char __b) { 4055 int __cc; 4056 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc); 4057 return __cc == 3; 4058 } 4059 4060 static inline __ATTRS_o_ai int 4061 vec_all_le(__vector unsigned char __a, __vector unsigned char __b) { 4062 int __cc; 4063 __builtin_s390_vchlbs(__a, __b, &__cc); 4064 return __cc == 3; 4065 } 4066 4067 // This prototype is deprecated. 4068 static inline __ATTRS_o_ai int 4069 vec_all_le(__vector unsigned char __a, __vector __bool char __b) { 4070 int __cc; 4071 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc); 4072 return __cc == 3; 4073 } 4074 4075 // This prototype is deprecated. 4076 static inline __ATTRS_o_ai int 4077 vec_all_le(__vector __bool char __a, __vector unsigned char __b) { 4078 int __cc; 4079 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc); 4080 return __cc == 3; 4081 } 4082 4083 // This prototype is deprecated. 4084 static inline __ATTRS_o_ai int 4085 vec_all_le(__vector __bool char __a, __vector __bool char __b) { 4086 int __cc; 4087 __builtin_s390_vchlbs((__vector unsigned char)__a, 4088 (__vector unsigned char)__b, &__cc); 4089 return __cc == 3; 4090 } 4091 4092 static inline __ATTRS_o_ai int 4093 vec_all_le(__vector signed short __a, __vector signed short __b) { 4094 int __cc; 4095 __builtin_s390_vchhs(__a, __b, &__cc); 4096 return __cc == 3; 4097 } 4098 4099 // This prototype is deprecated. 4100 static inline __ATTRS_o_ai int 4101 vec_all_le(__vector signed short __a, __vector __bool short __b) { 4102 int __cc; 4103 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc); 4104 return __cc == 3; 4105 } 4106 4107 // This prototype is deprecated. 4108 static inline __ATTRS_o_ai int 4109 vec_all_le(__vector __bool short __a, __vector signed short __b) { 4110 int __cc; 4111 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc); 4112 return __cc == 3; 4113 } 4114 4115 static inline __ATTRS_o_ai int 4116 vec_all_le(__vector unsigned short __a, __vector unsigned short __b) { 4117 int __cc; 4118 __builtin_s390_vchlhs(__a, __b, &__cc); 4119 return __cc == 3; 4120 } 4121 4122 // This prototype is deprecated. 4123 static inline __ATTRS_o_ai int 4124 vec_all_le(__vector unsigned short __a, __vector __bool short __b) { 4125 int __cc; 4126 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc); 4127 return __cc == 3; 4128 } 4129 4130 // This prototype is deprecated. 4131 static inline __ATTRS_o_ai int 4132 vec_all_le(__vector __bool short __a, __vector unsigned short __b) { 4133 int __cc; 4134 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc); 4135 return __cc == 3; 4136 } 4137 4138 // This prototype is deprecated. 4139 static inline __ATTRS_o_ai int 4140 vec_all_le(__vector __bool short __a, __vector __bool short __b) { 4141 int __cc; 4142 __builtin_s390_vchlhs((__vector unsigned short)__a, 4143 (__vector unsigned short)__b, &__cc); 4144 return __cc == 3; 4145 } 4146 4147 static inline __ATTRS_o_ai int 4148 vec_all_le(__vector signed int __a, __vector signed int __b) { 4149 int __cc; 4150 __builtin_s390_vchfs(__a, __b, &__cc); 4151 return __cc == 3; 4152 } 4153 4154 // This prototype is deprecated. 4155 static inline __ATTRS_o_ai int 4156 vec_all_le(__vector signed int __a, __vector __bool int __b) { 4157 int __cc; 4158 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc); 4159 return __cc == 3; 4160 } 4161 4162 // This prototype is deprecated. 4163 static inline __ATTRS_o_ai int 4164 vec_all_le(__vector __bool int __a, __vector signed int __b) { 4165 int __cc; 4166 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc); 4167 return __cc == 3; 4168 } 4169 4170 static inline __ATTRS_o_ai int 4171 vec_all_le(__vector unsigned int __a, __vector unsigned int __b) { 4172 int __cc; 4173 __builtin_s390_vchlfs(__a, __b, &__cc); 4174 return __cc == 3; 4175 } 4176 4177 // This prototype is deprecated. 4178 static inline __ATTRS_o_ai int 4179 vec_all_le(__vector unsigned int __a, __vector __bool int __b) { 4180 int __cc; 4181 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc); 4182 return __cc == 3; 4183 } 4184 4185 // This prototype is deprecated. 4186 static inline __ATTRS_o_ai int 4187 vec_all_le(__vector __bool int __a, __vector unsigned int __b) { 4188 int __cc; 4189 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc); 4190 return __cc == 3; 4191 } 4192 4193 // This prototype is deprecated. 4194 static inline __ATTRS_o_ai int 4195 vec_all_le(__vector __bool int __a, __vector __bool int __b) { 4196 int __cc; 4197 __builtin_s390_vchlfs((__vector unsigned int)__a, 4198 (__vector unsigned int)__b, &__cc); 4199 return __cc == 3; 4200 } 4201 4202 static inline __ATTRS_o_ai int 4203 vec_all_le(__vector signed long long __a, __vector signed long long __b) { 4204 int __cc; 4205 __builtin_s390_vchgs(__a, __b, &__cc); 4206 return __cc == 3; 4207 } 4208 4209 // This prototype is deprecated. 4210 static inline __ATTRS_o_ai int 4211 vec_all_le(__vector signed long long __a, __vector __bool long long __b) { 4212 int __cc; 4213 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc); 4214 return __cc == 3; 4215 } 4216 4217 // This prototype is deprecated. 4218 static inline __ATTRS_o_ai int 4219 vec_all_le(__vector __bool long long __a, __vector signed long long __b) { 4220 int __cc; 4221 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc); 4222 return __cc == 3; 4223 } 4224 4225 static inline __ATTRS_o_ai int 4226 vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) { 4227 int __cc; 4228 __builtin_s390_vchlgs(__a, __b, &__cc); 4229 return __cc == 3; 4230 } 4231 4232 // This prototype is deprecated. 4233 static inline __ATTRS_o_ai int 4234 vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) { 4235 int __cc; 4236 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc); 4237 return __cc == 3; 4238 } 4239 4240 // This prototype is deprecated. 4241 static inline __ATTRS_o_ai int 4242 vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) { 4243 int __cc; 4244 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc); 4245 return __cc == 3; 4246 } 4247 4248 // This prototype is deprecated. 4249 static inline __ATTRS_o_ai int 4250 vec_all_le(__vector __bool long long __a, __vector __bool long long __b) { 4251 int __cc; 4252 __builtin_s390_vchlgs((__vector unsigned long long)__a, 4253 (__vector unsigned long long)__b, &__cc); 4254 return __cc == 3; 4255 } 4256 4257 #if __ARCH__ >= 15 4258 static inline __ATTRS_o_ai int 4259 vec_all_le(__vector signed __int128 __a, __vector signed __int128 __b) { 4260 int __cc; 4261 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc); 4262 return __cc == 3; 4263 } 4264 4265 static inline __ATTRS_o_ai int 4266 vec_all_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 4267 int __cc; 4268 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 4269 return __cc == 3; 4270 } 4271 #endif 4272 4273 #if __ARCH__ >= 12 4274 static inline __ATTRS_o_ai int 4275 vec_all_le(__vector float __a, __vector float __b) { 4276 int __cc; 4277 __builtin_s390_vfchesbs(__b, __a, &__cc); 4278 return __cc == 0; 4279 } 4280 #endif 4281 4282 static inline __ATTRS_o_ai int 4283 vec_all_le(__vector double __a, __vector double __b) { 4284 int __cc; 4285 __builtin_s390_vfchedbs(__b, __a, &__cc); 4286 return __cc == 0; 4287 } 4288 4289 /*-- vec_all_lt -------------------------------------------------------------*/ 4290 4291 static inline __ATTRS_o_ai int 4292 vec_all_lt(__vector signed char __a, __vector signed char __b) { 4293 int __cc; 4294 __builtin_s390_vchbs(__b, __a, &__cc); 4295 return __cc == 0; 4296 } 4297 4298 // This prototype is deprecated. 4299 static inline __ATTRS_o_ai int 4300 vec_all_lt(__vector signed char __a, __vector __bool char __b) { 4301 int __cc; 4302 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc); 4303 return __cc == 0; 4304 } 4305 4306 // This prototype is deprecated. 4307 static inline __ATTRS_o_ai int 4308 vec_all_lt(__vector __bool char __a, __vector signed char __b) { 4309 int __cc; 4310 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc); 4311 return __cc == 0; 4312 } 4313 4314 static inline __ATTRS_o_ai int 4315 vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) { 4316 int __cc; 4317 __builtin_s390_vchlbs(__b, __a, &__cc); 4318 return __cc == 0; 4319 } 4320 4321 // This prototype is deprecated. 4322 static inline __ATTRS_o_ai int 4323 vec_all_lt(__vector unsigned char __a, __vector __bool char __b) { 4324 int __cc; 4325 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc); 4326 return __cc == 0; 4327 } 4328 4329 // This prototype is deprecated. 4330 static inline __ATTRS_o_ai int 4331 vec_all_lt(__vector __bool char __a, __vector unsigned char __b) { 4332 int __cc; 4333 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc); 4334 return __cc == 0; 4335 } 4336 4337 // This prototype is deprecated. 4338 static inline __ATTRS_o_ai int 4339 vec_all_lt(__vector __bool char __a, __vector __bool char __b) { 4340 int __cc; 4341 __builtin_s390_vchlbs((__vector unsigned char)__b, 4342 (__vector unsigned char)__a, &__cc); 4343 return __cc == 0; 4344 } 4345 4346 static inline __ATTRS_o_ai int 4347 vec_all_lt(__vector signed short __a, __vector signed short __b) { 4348 int __cc; 4349 __builtin_s390_vchhs(__b, __a, &__cc); 4350 return __cc == 0; 4351 } 4352 4353 // This prototype is deprecated. 4354 static inline __ATTRS_o_ai int 4355 vec_all_lt(__vector signed short __a, __vector __bool short __b) { 4356 int __cc; 4357 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc); 4358 return __cc == 0; 4359 } 4360 4361 // This prototype is deprecated. 4362 static inline __ATTRS_o_ai int 4363 vec_all_lt(__vector __bool short __a, __vector signed short __b) { 4364 int __cc; 4365 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc); 4366 return __cc == 0; 4367 } 4368 4369 static inline __ATTRS_o_ai int 4370 vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) { 4371 int __cc; 4372 __builtin_s390_vchlhs(__b, __a, &__cc); 4373 return __cc == 0; 4374 } 4375 4376 // This prototype is deprecated. 4377 static inline __ATTRS_o_ai int 4378 vec_all_lt(__vector unsigned short __a, __vector __bool short __b) { 4379 int __cc; 4380 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc); 4381 return __cc == 0; 4382 } 4383 4384 // This prototype is deprecated. 4385 static inline __ATTRS_o_ai int 4386 vec_all_lt(__vector __bool short __a, __vector unsigned short __b) { 4387 int __cc; 4388 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc); 4389 return __cc == 0; 4390 } 4391 4392 // This prototype is deprecated. 4393 static inline __ATTRS_o_ai int 4394 vec_all_lt(__vector __bool short __a, __vector __bool short __b) { 4395 int __cc; 4396 __builtin_s390_vchlhs((__vector unsigned short)__b, 4397 (__vector unsigned short)__a, &__cc); 4398 return __cc == 0; 4399 } 4400 4401 static inline __ATTRS_o_ai int 4402 vec_all_lt(__vector signed int __a, __vector signed int __b) { 4403 int __cc; 4404 __builtin_s390_vchfs(__b, __a, &__cc); 4405 return __cc == 0; 4406 } 4407 4408 // This prototype is deprecated. 4409 static inline __ATTRS_o_ai int 4410 vec_all_lt(__vector signed int __a, __vector __bool int __b) { 4411 int __cc; 4412 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc); 4413 return __cc == 0; 4414 } 4415 4416 // This prototype is deprecated. 4417 static inline __ATTRS_o_ai int 4418 vec_all_lt(__vector __bool int __a, __vector signed int __b) { 4419 int __cc; 4420 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc); 4421 return __cc == 0; 4422 } 4423 4424 static inline __ATTRS_o_ai int 4425 vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) { 4426 int __cc; 4427 __builtin_s390_vchlfs(__b, __a, &__cc); 4428 return __cc == 0; 4429 } 4430 4431 // This prototype is deprecated. 4432 static inline __ATTRS_o_ai int 4433 vec_all_lt(__vector unsigned int __a, __vector __bool int __b) { 4434 int __cc; 4435 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc); 4436 return __cc == 0; 4437 } 4438 4439 // This prototype is deprecated. 4440 static inline __ATTRS_o_ai int 4441 vec_all_lt(__vector __bool int __a, __vector unsigned int __b) { 4442 int __cc; 4443 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc); 4444 return __cc == 0; 4445 } 4446 4447 // This prototype is deprecated. 4448 static inline __ATTRS_o_ai int 4449 vec_all_lt(__vector __bool int __a, __vector __bool int __b) { 4450 int __cc; 4451 __builtin_s390_vchlfs((__vector unsigned int)__b, 4452 (__vector unsigned int)__a, &__cc); 4453 return __cc == 0; 4454 } 4455 4456 static inline __ATTRS_o_ai int 4457 vec_all_lt(__vector signed long long __a, __vector signed long long __b) { 4458 int __cc; 4459 __builtin_s390_vchgs(__b, __a, &__cc); 4460 return __cc == 0; 4461 } 4462 4463 // This prototype is deprecated. 4464 static inline __ATTRS_o_ai int 4465 vec_all_lt(__vector signed long long __a, __vector __bool long long __b) { 4466 int __cc; 4467 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc); 4468 return __cc == 0; 4469 } 4470 4471 // This prototype is deprecated. 4472 static inline __ATTRS_o_ai int 4473 vec_all_lt(__vector __bool long long __a, __vector signed long long __b) { 4474 int __cc; 4475 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc); 4476 return __cc == 0; 4477 } 4478 4479 static inline __ATTRS_o_ai int 4480 vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) { 4481 int __cc; 4482 __builtin_s390_vchlgs(__b, __a, &__cc); 4483 return __cc == 0; 4484 } 4485 4486 // This prototype is deprecated. 4487 static inline __ATTRS_o_ai int 4488 vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) { 4489 int __cc; 4490 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc); 4491 return __cc == 0; 4492 } 4493 4494 // This prototype is deprecated. 4495 static inline __ATTRS_o_ai int 4496 vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) { 4497 int __cc; 4498 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc); 4499 return __cc == 0; 4500 } 4501 4502 // This prototype is deprecated. 4503 static inline __ATTRS_o_ai int 4504 vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) { 4505 int __cc; 4506 __builtin_s390_vchlgs((__vector unsigned long long)__b, 4507 (__vector unsigned long long)__a, &__cc); 4508 return __cc == 0; 4509 } 4510 4511 #if __ARCH__ >= 15 4512 static inline __ATTRS_o_ai int 4513 vec_all_lt(__vector signed __int128 __a, __vector signed __int128 __b) { 4514 int __cc; 4515 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc); 4516 return __cc == 0; 4517 } 4518 4519 static inline __ATTRS_o_ai int 4520 vec_all_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 4521 int __cc; 4522 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc); 4523 return __cc == 0; 4524 } 4525 #endif 4526 4527 #if __ARCH__ >= 12 4528 static inline __ATTRS_o_ai int 4529 vec_all_lt(__vector float __a, __vector float __b) { 4530 int __cc; 4531 __builtin_s390_vfchsbs(__b, __a, &__cc); 4532 return __cc == 0; 4533 } 4534 #endif 4535 4536 static inline __ATTRS_o_ai int 4537 vec_all_lt(__vector double __a, __vector double __b) { 4538 int __cc; 4539 __builtin_s390_vfchdbs(__b, __a, &__cc); 4540 return __cc == 0; 4541 } 4542 4543 /*-- vec_all_nge ------------------------------------------------------------*/ 4544 4545 #if __ARCH__ >= 12 4546 static inline __ATTRS_o_ai int 4547 vec_all_nge(__vector float __a, __vector float __b) { 4548 int __cc; 4549 __builtin_s390_vfchesbs(__a, __b, &__cc); 4550 return __cc == 3; 4551 } 4552 #endif 4553 4554 static inline __ATTRS_o_ai int 4555 vec_all_nge(__vector double __a, __vector double __b) { 4556 int __cc; 4557 __builtin_s390_vfchedbs(__a, __b, &__cc); 4558 return __cc == 3; 4559 } 4560 4561 /*-- vec_all_ngt ------------------------------------------------------------*/ 4562 4563 #if __ARCH__ >= 12 4564 static inline __ATTRS_o_ai int 4565 vec_all_ngt(__vector float __a, __vector float __b) { 4566 int __cc; 4567 __builtin_s390_vfchsbs(__a, __b, &__cc); 4568 return __cc == 3; 4569 } 4570 #endif 4571 4572 static inline __ATTRS_o_ai int 4573 vec_all_ngt(__vector double __a, __vector double __b) { 4574 int __cc; 4575 __builtin_s390_vfchdbs(__a, __b, &__cc); 4576 return __cc == 3; 4577 } 4578 4579 /*-- vec_all_nle ------------------------------------------------------------*/ 4580 4581 #if __ARCH__ >= 12 4582 static inline __ATTRS_o_ai int 4583 vec_all_nle(__vector float __a, __vector float __b) { 4584 int __cc; 4585 __builtin_s390_vfchesbs(__b, __a, &__cc); 4586 return __cc == 3; 4587 } 4588 #endif 4589 4590 static inline __ATTRS_o_ai int 4591 vec_all_nle(__vector double __a, __vector double __b) { 4592 int __cc; 4593 __builtin_s390_vfchedbs(__b, __a, &__cc); 4594 return __cc == 3; 4595 } 4596 4597 /*-- vec_all_nlt ------------------------------------------------------------*/ 4598 4599 #if __ARCH__ >= 12 4600 static inline __ATTRS_o_ai int 4601 vec_all_nlt(__vector float __a, __vector float __b) { 4602 int __cc; 4603 __builtin_s390_vfchsbs(__b, __a, &__cc); 4604 return __cc == 3; 4605 } 4606 #endif 4607 4608 static inline __ATTRS_o_ai int 4609 vec_all_nlt(__vector double __a, __vector double __b) { 4610 int __cc; 4611 __builtin_s390_vfchdbs(__b, __a, &__cc); 4612 return __cc == 3; 4613 } 4614 4615 /*-- vec_all_nan ------------------------------------------------------------*/ 4616 4617 #if __ARCH__ >= 12 4618 static inline __ATTRS_o_ai int 4619 vec_all_nan(__vector float __a) { 4620 int __cc; 4621 __builtin_s390_vftcisb(__a, 15, &__cc); 4622 return __cc == 0; 4623 } 4624 #endif 4625 4626 static inline __ATTRS_o_ai int 4627 vec_all_nan(__vector double __a) { 4628 int __cc; 4629 __builtin_s390_vftcidb(__a, 15, &__cc); 4630 return __cc == 0; 4631 } 4632 4633 /*-- vec_all_numeric --------------------------------------------------------*/ 4634 4635 #if __ARCH__ >= 12 4636 static inline __ATTRS_o_ai int 4637 vec_all_numeric(__vector float __a) { 4638 int __cc; 4639 __builtin_s390_vftcisb(__a, 15, &__cc); 4640 return __cc == 3; 4641 } 4642 #endif 4643 4644 static inline __ATTRS_o_ai int 4645 vec_all_numeric(__vector double __a) { 4646 int __cc; 4647 __builtin_s390_vftcidb(__a, 15, &__cc); 4648 return __cc == 3; 4649 } 4650 4651 /*-- vec_any_eq -------------------------------------------------------------*/ 4652 4653 static inline __ATTRS_o_ai int 4654 vec_any_eq(__vector signed char __a, __vector signed char __b) { 4655 int __cc; 4656 __builtin_s390_vceqbs((__vector unsigned char)__a, 4657 (__vector unsigned char)__b, &__cc); 4658 return __cc <= 1; 4659 } 4660 4661 // This prototype is deprecated. 4662 static inline __ATTRS_o_ai int 4663 vec_any_eq(__vector signed char __a, __vector __bool char __b) { 4664 int __cc; 4665 __builtin_s390_vceqbs((__vector unsigned char)__a, 4666 (__vector unsigned char)__b, &__cc); 4667 return __cc <= 1; 4668 } 4669 4670 // This prototype is deprecated. 4671 static inline __ATTRS_o_ai int 4672 vec_any_eq(__vector __bool char __a, __vector signed char __b) { 4673 int __cc; 4674 __builtin_s390_vceqbs((__vector unsigned char)__a, 4675 (__vector unsigned char)__b, &__cc); 4676 return __cc <= 1; 4677 } 4678 4679 static inline __ATTRS_o_ai int 4680 vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) { 4681 int __cc; 4682 __builtin_s390_vceqbs(__a, __b, &__cc); 4683 return __cc <= 1; 4684 } 4685 4686 // This prototype is deprecated. 4687 static inline __ATTRS_o_ai int 4688 vec_any_eq(__vector unsigned char __a, __vector __bool char __b) { 4689 int __cc; 4690 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc); 4691 return __cc <= 1; 4692 } 4693 4694 // This prototype is deprecated. 4695 static inline __ATTRS_o_ai int 4696 vec_any_eq(__vector __bool char __a, __vector unsigned char __b) { 4697 int __cc; 4698 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc); 4699 return __cc <= 1; 4700 } 4701 4702 static inline __ATTRS_o_ai int 4703 vec_any_eq(__vector __bool char __a, __vector __bool char __b) { 4704 int __cc; 4705 __builtin_s390_vceqbs((__vector unsigned char)__a, 4706 (__vector unsigned char)__b, &__cc); 4707 return __cc <= 1; 4708 } 4709 4710 static inline __ATTRS_o_ai int 4711 vec_any_eq(__vector signed short __a, __vector signed short __b) { 4712 int __cc; 4713 __builtin_s390_vceqhs((__vector unsigned short)__a, 4714 (__vector unsigned short)__b, &__cc); 4715 return __cc <= 1; 4716 } 4717 4718 // This prototype is deprecated. 4719 static inline __ATTRS_o_ai int 4720 vec_any_eq(__vector signed short __a, __vector __bool short __b) { 4721 int __cc; 4722 __builtin_s390_vceqhs((__vector unsigned short)__a, 4723 (__vector unsigned short)__b, &__cc); 4724 return __cc <= 1; 4725 } 4726 4727 // This prototype is deprecated. 4728 static inline __ATTRS_o_ai int 4729 vec_any_eq(__vector __bool short __a, __vector signed short __b) { 4730 int __cc; 4731 __builtin_s390_vceqhs((__vector unsigned short)__a, 4732 (__vector unsigned short)__b, &__cc); 4733 return __cc <= 1; 4734 } 4735 4736 static inline __ATTRS_o_ai int 4737 vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) { 4738 int __cc; 4739 __builtin_s390_vceqhs(__a, __b, &__cc); 4740 return __cc <= 1; 4741 } 4742 4743 // This prototype is deprecated. 4744 static inline __ATTRS_o_ai int 4745 vec_any_eq(__vector unsigned short __a, __vector __bool short __b) { 4746 int __cc; 4747 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc); 4748 return __cc <= 1; 4749 } 4750 4751 // This prototype is deprecated. 4752 static inline __ATTRS_o_ai int 4753 vec_any_eq(__vector __bool short __a, __vector unsigned short __b) { 4754 int __cc; 4755 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc); 4756 return __cc <= 1; 4757 } 4758 4759 static inline __ATTRS_o_ai int 4760 vec_any_eq(__vector __bool short __a, __vector __bool short __b) { 4761 int __cc; 4762 __builtin_s390_vceqhs((__vector unsigned short)__a, 4763 (__vector unsigned short)__b, &__cc); 4764 return __cc <= 1; 4765 } 4766 4767 static inline __ATTRS_o_ai int 4768 vec_any_eq(__vector signed int __a, __vector signed int __b) { 4769 int __cc; 4770 __builtin_s390_vceqfs((__vector unsigned int)__a, 4771 (__vector unsigned int)__b, &__cc); 4772 return __cc <= 1; 4773 } 4774 4775 // This prototype is deprecated. 4776 static inline __ATTRS_o_ai int 4777 vec_any_eq(__vector signed int __a, __vector __bool int __b) { 4778 int __cc; 4779 __builtin_s390_vceqfs((__vector unsigned int)__a, 4780 (__vector unsigned int)__b, &__cc); 4781 return __cc <= 1; 4782 } 4783 4784 // This prototype is deprecated. 4785 static inline __ATTRS_o_ai int 4786 vec_any_eq(__vector __bool int __a, __vector signed int __b) { 4787 int __cc; 4788 __builtin_s390_vceqfs((__vector unsigned int)__a, 4789 (__vector unsigned int)__b, &__cc); 4790 return __cc <= 1; 4791 } 4792 4793 static inline __ATTRS_o_ai int 4794 vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) { 4795 int __cc; 4796 __builtin_s390_vceqfs(__a, __b, &__cc); 4797 return __cc <= 1; 4798 } 4799 4800 // This prototype is deprecated. 4801 static inline __ATTRS_o_ai int 4802 vec_any_eq(__vector unsigned int __a, __vector __bool int __b) { 4803 int __cc; 4804 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc); 4805 return __cc <= 1; 4806 } 4807 4808 // This prototype is deprecated. 4809 static inline __ATTRS_o_ai int 4810 vec_any_eq(__vector __bool int __a, __vector unsigned int __b) { 4811 int __cc; 4812 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc); 4813 return __cc <= 1; 4814 } 4815 4816 static inline __ATTRS_o_ai int 4817 vec_any_eq(__vector __bool int __a, __vector __bool int __b) { 4818 int __cc; 4819 __builtin_s390_vceqfs((__vector unsigned int)__a, 4820 (__vector unsigned int)__b, &__cc); 4821 return __cc <= 1; 4822 } 4823 4824 static inline __ATTRS_o_ai int 4825 vec_any_eq(__vector signed long long __a, __vector signed long long __b) { 4826 int __cc; 4827 __builtin_s390_vceqgs((__vector unsigned long long)__a, 4828 (__vector unsigned long long)__b, &__cc); 4829 return __cc <= 1; 4830 } 4831 4832 // This prototype is deprecated. 4833 static inline __ATTRS_o_ai int 4834 vec_any_eq(__vector signed long long __a, __vector __bool long long __b) { 4835 int __cc; 4836 __builtin_s390_vceqgs((__vector unsigned long long)__a, 4837 (__vector unsigned long long)__b, &__cc); 4838 return __cc <= 1; 4839 } 4840 4841 // This prototype is deprecated. 4842 static inline __ATTRS_o_ai int 4843 vec_any_eq(__vector __bool long long __a, __vector signed long long __b) { 4844 int __cc; 4845 __builtin_s390_vceqgs((__vector unsigned long long)__a, 4846 (__vector unsigned long long)__b, &__cc); 4847 return __cc <= 1; 4848 } 4849 4850 static inline __ATTRS_o_ai int 4851 vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) { 4852 int __cc; 4853 __builtin_s390_vceqgs(__a, __b, &__cc); 4854 return __cc <= 1; 4855 } 4856 4857 // This prototype is deprecated. 4858 static inline __ATTRS_o_ai int 4859 vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) { 4860 int __cc; 4861 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc); 4862 return __cc <= 1; 4863 } 4864 4865 // This prototype is deprecated. 4866 static inline __ATTRS_o_ai int 4867 vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) { 4868 int __cc; 4869 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc); 4870 return __cc <= 1; 4871 } 4872 4873 static inline __ATTRS_o_ai int 4874 vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) { 4875 int __cc; 4876 __builtin_s390_vceqgs((__vector unsigned long long)__a, 4877 (__vector unsigned long long)__b, &__cc); 4878 return __cc <= 1; 4879 } 4880 4881 #if __ARCH__ >= 15 4882 static inline __ATTRS_o_ai int 4883 vec_any_eq(__vector signed __int128 __a, __vector signed __int128 __b) { 4884 int __cc; 4885 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 4886 return __cc <= 1; 4887 } 4888 4889 static inline __ATTRS_o_ai int 4890 vec_any_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 4891 int __cc; 4892 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 4893 return __cc <= 1; 4894 } 4895 4896 static inline __ATTRS_o_ai int 4897 vec_any_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) { 4898 int __cc; 4899 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 4900 return __cc <= 1; 4901 } 4902 #endif 4903 4904 #if __ARCH__ >= 12 4905 static inline __ATTRS_o_ai int 4906 vec_any_eq(__vector float __a, __vector float __b) { 4907 int __cc; 4908 __builtin_s390_vfcesbs(__a, __b, &__cc); 4909 return __cc <= 1; 4910 } 4911 #endif 4912 4913 static inline __ATTRS_o_ai int 4914 vec_any_eq(__vector double __a, __vector double __b) { 4915 int __cc; 4916 __builtin_s390_vfcedbs(__a, __b, &__cc); 4917 return __cc <= 1; 4918 } 4919 4920 /*-- vec_any_ne -------------------------------------------------------------*/ 4921 4922 static inline __ATTRS_o_ai int 4923 vec_any_ne(__vector signed char __a, __vector signed char __b) { 4924 int __cc; 4925 __builtin_s390_vceqbs((__vector unsigned char)__a, 4926 (__vector unsigned char)__b, &__cc); 4927 return __cc != 0; 4928 } 4929 4930 // This prototype is deprecated. 4931 static inline __ATTRS_o_ai int 4932 vec_any_ne(__vector signed char __a, __vector __bool char __b) { 4933 int __cc; 4934 __builtin_s390_vceqbs((__vector unsigned char)__a, 4935 (__vector unsigned char)__b, &__cc); 4936 return __cc != 0; 4937 } 4938 4939 // This prototype is deprecated. 4940 static inline __ATTRS_o_ai int 4941 vec_any_ne(__vector __bool char __a, __vector signed char __b) { 4942 int __cc; 4943 __builtin_s390_vceqbs((__vector unsigned char)__a, 4944 (__vector unsigned char)__b, &__cc); 4945 return __cc != 0; 4946 } 4947 4948 static inline __ATTRS_o_ai int 4949 vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) { 4950 int __cc; 4951 __builtin_s390_vceqbs(__a, __b, &__cc); 4952 return __cc != 0; 4953 } 4954 4955 // This prototype is deprecated. 4956 static inline __ATTRS_o_ai int 4957 vec_any_ne(__vector unsigned char __a, __vector __bool char __b) { 4958 int __cc; 4959 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc); 4960 return __cc != 0; 4961 } 4962 4963 // This prototype is deprecated. 4964 static inline __ATTRS_o_ai int 4965 vec_any_ne(__vector __bool char __a, __vector unsigned char __b) { 4966 int __cc; 4967 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc); 4968 return __cc != 0; 4969 } 4970 4971 static inline __ATTRS_o_ai int 4972 vec_any_ne(__vector __bool char __a, __vector __bool char __b) { 4973 int __cc; 4974 __builtin_s390_vceqbs((__vector unsigned char)__a, 4975 (__vector unsigned char)__b, &__cc); 4976 return __cc != 0; 4977 } 4978 4979 static inline __ATTRS_o_ai int 4980 vec_any_ne(__vector signed short __a, __vector signed short __b) { 4981 int __cc; 4982 __builtin_s390_vceqhs((__vector unsigned short)__a, 4983 (__vector unsigned short)__b, &__cc); 4984 return __cc != 0; 4985 } 4986 4987 // This prototype is deprecated. 4988 static inline __ATTRS_o_ai int 4989 vec_any_ne(__vector signed short __a, __vector __bool short __b) { 4990 int __cc; 4991 __builtin_s390_vceqhs((__vector unsigned short)__a, 4992 (__vector unsigned short)__b, &__cc); 4993 return __cc != 0; 4994 } 4995 4996 // This prototype is deprecated. 4997 static inline __ATTRS_o_ai int 4998 vec_any_ne(__vector __bool short __a, __vector signed short __b) { 4999 int __cc; 5000 __builtin_s390_vceqhs((__vector unsigned short)__a, 5001 (__vector unsigned short)__b, &__cc); 5002 return __cc != 0; 5003 } 5004 5005 static inline __ATTRS_o_ai int 5006 vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) { 5007 int __cc; 5008 __builtin_s390_vceqhs(__a, __b, &__cc); 5009 return __cc != 0; 5010 } 5011 5012 // This prototype is deprecated. 5013 static inline __ATTRS_o_ai int 5014 vec_any_ne(__vector unsigned short __a, __vector __bool short __b) { 5015 int __cc; 5016 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc); 5017 return __cc != 0; 5018 } 5019 5020 // This prototype is deprecated. 5021 static inline __ATTRS_o_ai int 5022 vec_any_ne(__vector __bool short __a, __vector unsigned short __b) { 5023 int __cc; 5024 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc); 5025 return __cc != 0; 5026 } 5027 5028 static inline __ATTRS_o_ai int 5029 vec_any_ne(__vector __bool short __a, __vector __bool short __b) { 5030 int __cc; 5031 __builtin_s390_vceqhs((__vector unsigned short)__a, 5032 (__vector unsigned short)__b, &__cc); 5033 return __cc != 0; 5034 } 5035 5036 static inline __ATTRS_o_ai int 5037 vec_any_ne(__vector signed int __a, __vector signed int __b) { 5038 int __cc; 5039 __builtin_s390_vceqfs((__vector unsigned int)__a, 5040 (__vector unsigned int)__b, &__cc); 5041 return __cc != 0; 5042 } 5043 5044 // This prototype is deprecated. 5045 static inline __ATTRS_o_ai int 5046 vec_any_ne(__vector signed int __a, __vector __bool int __b) { 5047 int __cc; 5048 __builtin_s390_vceqfs((__vector unsigned int)__a, 5049 (__vector unsigned int)__b, &__cc); 5050 return __cc != 0; 5051 } 5052 5053 // This prototype is deprecated. 5054 static inline __ATTRS_o_ai int 5055 vec_any_ne(__vector __bool int __a, __vector signed int __b) { 5056 int __cc; 5057 __builtin_s390_vceqfs((__vector unsigned int)__a, 5058 (__vector unsigned int)__b, &__cc); 5059 return __cc != 0; 5060 } 5061 5062 static inline __ATTRS_o_ai int 5063 vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) { 5064 int __cc; 5065 __builtin_s390_vceqfs(__a, __b, &__cc); 5066 return __cc != 0; 5067 } 5068 5069 // This prototype is deprecated. 5070 static inline __ATTRS_o_ai int 5071 vec_any_ne(__vector unsigned int __a, __vector __bool int __b) { 5072 int __cc; 5073 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc); 5074 return __cc != 0; 5075 } 5076 5077 // This prototype is deprecated. 5078 static inline __ATTRS_o_ai int 5079 vec_any_ne(__vector __bool int __a, __vector unsigned int __b) { 5080 int __cc; 5081 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc); 5082 return __cc != 0; 5083 } 5084 5085 static inline __ATTRS_o_ai int 5086 vec_any_ne(__vector __bool int __a, __vector __bool int __b) { 5087 int __cc; 5088 __builtin_s390_vceqfs((__vector unsigned int)__a, 5089 (__vector unsigned int)__b, &__cc); 5090 return __cc != 0; 5091 } 5092 5093 static inline __ATTRS_o_ai int 5094 vec_any_ne(__vector signed long long __a, __vector signed long long __b) { 5095 int __cc; 5096 __builtin_s390_vceqgs((__vector unsigned long long)__a, 5097 (__vector unsigned long long)__b, &__cc); 5098 return __cc != 0; 5099 } 5100 5101 // This prototype is deprecated. 5102 static inline __ATTRS_o_ai int 5103 vec_any_ne(__vector signed long long __a, __vector __bool long long __b) { 5104 int __cc; 5105 __builtin_s390_vceqgs((__vector unsigned long long)__a, 5106 (__vector unsigned long long)__b, &__cc); 5107 return __cc != 0; 5108 } 5109 5110 // This prototype is deprecated. 5111 static inline __ATTRS_o_ai int 5112 vec_any_ne(__vector __bool long long __a, __vector signed long long __b) { 5113 int __cc; 5114 __builtin_s390_vceqgs((__vector unsigned long long)__a, 5115 (__vector unsigned long long)__b, &__cc); 5116 return __cc != 0; 5117 } 5118 5119 static inline __ATTRS_o_ai int 5120 vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) { 5121 int __cc; 5122 __builtin_s390_vceqgs(__a, __b, &__cc); 5123 return __cc != 0; 5124 } 5125 5126 // This prototype is deprecated. 5127 static inline __ATTRS_o_ai int 5128 vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) { 5129 int __cc; 5130 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc); 5131 return __cc != 0; 5132 } 5133 5134 // This prototype is deprecated. 5135 static inline __ATTRS_o_ai int 5136 vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) { 5137 int __cc; 5138 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc); 5139 return __cc != 0; 5140 } 5141 5142 static inline __ATTRS_o_ai int 5143 vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) { 5144 int __cc; 5145 __builtin_s390_vceqgs((__vector unsigned long long)__a, 5146 (__vector unsigned long long)__b, &__cc); 5147 return __cc != 0; 5148 } 5149 5150 #if __ARCH__ >= 15 5151 static inline __ATTRS_o_ai int 5152 vec_any_ne(__vector signed __int128 __a, __vector signed __int128 __b) { 5153 int __cc; 5154 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 5155 return __cc != 0; 5156 } 5157 5158 static inline __ATTRS_o_ai int 5159 vec_any_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 5160 int __cc; 5161 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 5162 return __cc != 0; 5163 } 5164 5165 static inline __ATTRS_o_ai int 5166 vec_any_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) { 5167 int __cc; 5168 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 5169 return __cc != 0; 5170 } 5171 #endif 5172 5173 #if __ARCH__ >= 12 5174 static inline __ATTRS_o_ai int 5175 vec_any_ne(__vector float __a, __vector float __b) { 5176 int __cc; 5177 __builtin_s390_vfcesbs(__a, __b, &__cc); 5178 return __cc != 0; 5179 } 5180 #endif 5181 5182 static inline __ATTRS_o_ai int 5183 vec_any_ne(__vector double __a, __vector double __b) { 5184 int __cc; 5185 __builtin_s390_vfcedbs(__a, __b, &__cc); 5186 return __cc != 0; 5187 } 5188 5189 /*-- vec_any_ge -------------------------------------------------------------*/ 5190 5191 static inline __ATTRS_o_ai int 5192 vec_any_ge(__vector signed char __a, __vector signed char __b) { 5193 int __cc; 5194 __builtin_s390_vchbs(__b, __a, &__cc); 5195 return __cc != 0; 5196 } 5197 5198 // This prototype is deprecated. 5199 static inline __ATTRS_o_ai int 5200 vec_any_ge(__vector signed char __a, __vector __bool char __b) { 5201 int __cc; 5202 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc); 5203 return __cc != 0; 5204 } 5205 5206 // This prototype is deprecated. 5207 static inline __ATTRS_o_ai int 5208 vec_any_ge(__vector __bool char __a, __vector signed char __b) { 5209 int __cc; 5210 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc); 5211 return __cc != 0; 5212 } 5213 5214 static inline __ATTRS_o_ai int 5215 vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) { 5216 int __cc; 5217 __builtin_s390_vchlbs(__b, __a, &__cc); 5218 return __cc != 0; 5219 } 5220 5221 // This prototype is deprecated. 5222 static inline __ATTRS_o_ai int 5223 vec_any_ge(__vector unsigned char __a, __vector __bool char __b) { 5224 int __cc; 5225 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc); 5226 return __cc != 0; 5227 } 5228 5229 // This prototype is deprecated. 5230 static inline __ATTRS_o_ai int 5231 vec_any_ge(__vector __bool char __a, __vector unsigned char __b) { 5232 int __cc; 5233 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc); 5234 return __cc != 0; 5235 } 5236 5237 // This prototype is deprecated. 5238 static inline __ATTRS_o_ai int 5239 vec_any_ge(__vector __bool char __a, __vector __bool char __b) { 5240 int __cc; 5241 __builtin_s390_vchlbs((__vector unsigned char)__b, 5242 (__vector unsigned char)__a, &__cc); 5243 return __cc != 0; 5244 } 5245 5246 static inline __ATTRS_o_ai int 5247 vec_any_ge(__vector signed short __a, __vector signed short __b) { 5248 int __cc; 5249 __builtin_s390_vchhs(__b, __a, &__cc); 5250 return __cc != 0; 5251 } 5252 5253 // This prototype is deprecated. 5254 static inline __ATTRS_o_ai int 5255 vec_any_ge(__vector signed short __a, __vector __bool short __b) { 5256 int __cc; 5257 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc); 5258 return __cc != 0; 5259 } 5260 5261 // This prototype is deprecated. 5262 static inline __ATTRS_o_ai int 5263 vec_any_ge(__vector __bool short __a, __vector signed short __b) { 5264 int __cc; 5265 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc); 5266 return __cc != 0; 5267 } 5268 5269 static inline __ATTRS_o_ai int 5270 vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) { 5271 int __cc; 5272 __builtin_s390_vchlhs(__b, __a, &__cc); 5273 return __cc != 0; 5274 } 5275 5276 // This prototype is deprecated. 5277 static inline __ATTRS_o_ai int 5278 vec_any_ge(__vector unsigned short __a, __vector __bool short __b) { 5279 int __cc; 5280 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc); 5281 return __cc != 0; 5282 } 5283 5284 // This prototype is deprecated. 5285 static inline __ATTRS_o_ai int 5286 vec_any_ge(__vector __bool short __a, __vector unsigned short __b) { 5287 int __cc; 5288 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc); 5289 return __cc != 0; 5290 } 5291 5292 // This prototype is deprecated. 5293 static inline __ATTRS_o_ai int 5294 vec_any_ge(__vector __bool short __a, __vector __bool short __b) { 5295 int __cc; 5296 __builtin_s390_vchlhs((__vector unsigned short)__b, 5297 (__vector unsigned short)__a, &__cc); 5298 return __cc != 0; 5299 } 5300 5301 static inline __ATTRS_o_ai int 5302 vec_any_ge(__vector signed int __a, __vector signed int __b) { 5303 int __cc; 5304 __builtin_s390_vchfs(__b, __a, &__cc); 5305 return __cc != 0; 5306 } 5307 5308 // This prototype is deprecated. 5309 static inline __ATTRS_o_ai int 5310 vec_any_ge(__vector signed int __a, __vector __bool int __b) { 5311 int __cc; 5312 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc); 5313 return __cc != 0; 5314 } 5315 5316 // This prototype is deprecated. 5317 static inline __ATTRS_o_ai int 5318 vec_any_ge(__vector __bool int __a, __vector signed int __b) { 5319 int __cc; 5320 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc); 5321 return __cc != 0; 5322 } 5323 5324 static inline __ATTRS_o_ai int 5325 vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) { 5326 int __cc; 5327 __builtin_s390_vchlfs(__b, __a, &__cc); 5328 return __cc != 0; 5329 } 5330 5331 // This prototype is deprecated. 5332 static inline __ATTRS_o_ai int 5333 vec_any_ge(__vector unsigned int __a, __vector __bool int __b) { 5334 int __cc; 5335 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc); 5336 return __cc != 0; 5337 } 5338 5339 // This prototype is deprecated. 5340 static inline __ATTRS_o_ai int 5341 vec_any_ge(__vector __bool int __a, __vector unsigned int __b) { 5342 int __cc; 5343 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc); 5344 return __cc != 0; 5345 } 5346 5347 // This prototype is deprecated. 5348 static inline __ATTRS_o_ai int 5349 vec_any_ge(__vector __bool int __a, __vector __bool int __b) { 5350 int __cc; 5351 __builtin_s390_vchlfs((__vector unsigned int)__b, 5352 (__vector unsigned int)__a, &__cc); 5353 return __cc != 0; 5354 } 5355 5356 static inline __ATTRS_o_ai int 5357 vec_any_ge(__vector signed long long __a, __vector signed long long __b) { 5358 int __cc; 5359 __builtin_s390_vchgs(__b, __a, &__cc); 5360 return __cc != 0; 5361 } 5362 5363 // This prototype is deprecated. 5364 static inline __ATTRS_o_ai int 5365 vec_any_ge(__vector signed long long __a, __vector __bool long long __b) { 5366 int __cc; 5367 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc); 5368 return __cc != 0; 5369 } 5370 5371 // This prototype is deprecated. 5372 static inline __ATTRS_o_ai int 5373 vec_any_ge(__vector __bool long long __a, __vector signed long long __b) { 5374 int __cc; 5375 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc); 5376 return __cc != 0; 5377 } 5378 5379 static inline __ATTRS_o_ai int 5380 vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) { 5381 int __cc; 5382 __builtin_s390_vchlgs(__b, __a, &__cc); 5383 return __cc != 0; 5384 } 5385 5386 // This prototype is deprecated. 5387 static inline __ATTRS_o_ai int 5388 vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) { 5389 int __cc; 5390 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc); 5391 return __cc != 0; 5392 } 5393 5394 // This prototype is deprecated. 5395 static inline __ATTRS_o_ai int 5396 vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) { 5397 int __cc; 5398 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc); 5399 return __cc != 0; 5400 } 5401 5402 // This prototype is deprecated. 5403 static inline __ATTRS_o_ai int 5404 vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) { 5405 int __cc; 5406 __builtin_s390_vchlgs((__vector unsigned long long)__b, 5407 (__vector unsigned long long)__a, &__cc); 5408 return __cc != 0; 5409 } 5410 5411 #if __ARCH__ >= 15 5412 static inline __ATTRS_o_ai int 5413 vec_any_ge(__vector signed __int128 __a, __vector signed __int128 __b) { 5414 int __cc; 5415 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc); 5416 return __cc != 0; 5417 } 5418 5419 static inline __ATTRS_o_ai int 5420 vec_any_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 5421 int __cc; 5422 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc); 5423 return __cc != 0; 5424 } 5425 #endif 5426 5427 #if __ARCH__ >= 12 5428 static inline __ATTRS_o_ai int 5429 vec_any_ge(__vector float __a, __vector float __b) { 5430 int __cc; 5431 __builtin_s390_vfchesbs(__a, __b, &__cc); 5432 return __cc <= 1; 5433 } 5434 #endif 5435 5436 static inline __ATTRS_o_ai int 5437 vec_any_ge(__vector double __a, __vector double __b) { 5438 int __cc; 5439 __builtin_s390_vfchedbs(__a, __b, &__cc); 5440 return __cc <= 1; 5441 } 5442 5443 /*-- vec_any_gt -------------------------------------------------------------*/ 5444 5445 static inline __ATTRS_o_ai int 5446 vec_any_gt(__vector signed char __a, __vector signed char __b) { 5447 int __cc; 5448 __builtin_s390_vchbs(__a, __b, &__cc); 5449 return __cc <= 1; 5450 } 5451 5452 // This prototype is deprecated. 5453 static inline __ATTRS_o_ai int 5454 vec_any_gt(__vector signed char __a, __vector __bool char __b) { 5455 int __cc; 5456 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc); 5457 return __cc <= 1; 5458 } 5459 5460 // This prototype is deprecated. 5461 static inline __ATTRS_o_ai int 5462 vec_any_gt(__vector __bool char __a, __vector signed char __b) { 5463 int __cc; 5464 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc); 5465 return __cc <= 1; 5466 } 5467 5468 static inline __ATTRS_o_ai int 5469 vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) { 5470 int __cc; 5471 __builtin_s390_vchlbs(__a, __b, &__cc); 5472 return __cc <= 1; 5473 } 5474 5475 // This prototype is deprecated. 5476 static inline __ATTRS_o_ai int 5477 vec_any_gt(__vector unsigned char __a, __vector __bool char __b) { 5478 int __cc; 5479 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc); 5480 return __cc <= 1; 5481 } 5482 5483 // This prototype is deprecated. 5484 static inline __ATTRS_o_ai int 5485 vec_any_gt(__vector __bool char __a, __vector unsigned char __b) { 5486 int __cc; 5487 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc); 5488 return __cc <= 1; 5489 } 5490 5491 // This prototype is deprecated. 5492 static inline __ATTRS_o_ai int 5493 vec_any_gt(__vector __bool char __a, __vector __bool char __b) { 5494 int __cc; 5495 __builtin_s390_vchlbs((__vector unsigned char)__a, 5496 (__vector unsigned char)__b, &__cc); 5497 return __cc <= 1; 5498 } 5499 5500 static inline __ATTRS_o_ai int 5501 vec_any_gt(__vector signed short __a, __vector signed short __b) { 5502 int __cc; 5503 __builtin_s390_vchhs(__a, __b, &__cc); 5504 return __cc <= 1; 5505 } 5506 5507 // This prototype is deprecated. 5508 static inline __ATTRS_o_ai int 5509 vec_any_gt(__vector signed short __a, __vector __bool short __b) { 5510 int __cc; 5511 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc); 5512 return __cc <= 1; 5513 } 5514 5515 // This prototype is deprecated. 5516 static inline __ATTRS_o_ai int 5517 vec_any_gt(__vector __bool short __a, __vector signed short __b) { 5518 int __cc; 5519 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc); 5520 return __cc <= 1; 5521 } 5522 5523 static inline __ATTRS_o_ai int 5524 vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) { 5525 int __cc; 5526 __builtin_s390_vchlhs(__a, __b, &__cc); 5527 return __cc <= 1; 5528 } 5529 5530 // This prototype is deprecated. 5531 static inline __ATTRS_o_ai int 5532 vec_any_gt(__vector unsigned short __a, __vector __bool short __b) { 5533 int __cc; 5534 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc); 5535 return __cc <= 1; 5536 } 5537 5538 // This prototype is deprecated. 5539 static inline __ATTRS_o_ai int 5540 vec_any_gt(__vector __bool short __a, __vector unsigned short __b) { 5541 int __cc; 5542 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc); 5543 return __cc <= 1; 5544 } 5545 5546 // This prototype is deprecated. 5547 static inline __ATTRS_o_ai int 5548 vec_any_gt(__vector __bool short __a, __vector __bool short __b) { 5549 int __cc; 5550 __builtin_s390_vchlhs((__vector unsigned short)__a, 5551 (__vector unsigned short)__b, &__cc); 5552 return __cc <= 1; 5553 } 5554 5555 static inline __ATTRS_o_ai int 5556 vec_any_gt(__vector signed int __a, __vector signed int __b) { 5557 int __cc; 5558 __builtin_s390_vchfs(__a, __b, &__cc); 5559 return __cc <= 1; 5560 } 5561 5562 // This prototype is deprecated. 5563 static inline __ATTRS_o_ai int 5564 vec_any_gt(__vector signed int __a, __vector __bool int __b) { 5565 int __cc; 5566 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc); 5567 return __cc <= 1; 5568 } 5569 5570 // This prototype is deprecated. 5571 static inline __ATTRS_o_ai int 5572 vec_any_gt(__vector __bool int __a, __vector signed int __b) { 5573 int __cc; 5574 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc); 5575 return __cc <= 1; 5576 } 5577 5578 static inline __ATTRS_o_ai int 5579 vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) { 5580 int __cc; 5581 __builtin_s390_vchlfs(__a, __b, &__cc); 5582 return __cc <= 1; 5583 } 5584 5585 // This prototype is deprecated. 5586 static inline __ATTRS_o_ai int 5587 vec_any_gt(__vector unsigned int __a, __vector __bool int __b) { 5588 int __cc; 5589 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc); 5590 return __cc <= 1; 5591 } 5592 5593 // This prototype is deprecated. 5594 static inline __ATTRS_o_ai int 5595 vec_any_gt(__vector __bool int __a, __vector unsigned int __b) { 5596 int __cc; 5597 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc); 5598 return __cc <= 1; 5599 } 5600 5601 // This prototype is deprecated. 5602 static inline __ATTRS_o_ai int 5603 vec_any_gt(__vector __bool int __a, __vector __bool int __b) { 5604 int __cc; 5605 __builtin_s390_vchlfs((__vector unsigned int)__a, 5606 (__vector unsigned int)__b, &__cc); 5607 return __cc <= 1; 5608 } 5609 5610 static inline __ATTRS_o_ai int 5611 vec_any_gt(__vector signed long long __a, __vector signed long long __b) { 5612 int __cc; 5613 __builtin_s390_vchgs(__a, __b, &__cc); 5614 return __cc <= 1; 5615 } 5616 5617 // This prototype is deprecated. 5618 static inline __ATTRS_o_ai int 5619 vec_any_gt(__vector signed long long __a, __vector __bool long long __b) { 5620 int __cc; 5621 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc); 5622 return __cc <= 1; 5623 } 5624 5625 // This prototype is deprecated. 5626 static inline __ATTRS_o_ai int 5627 vec_any_gt(__vector __bool long long __a, __vector signed long long __b) { 5628 int __cc; 5629 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc); 5630 return __cc <= 1; 5631 } 5632 5633 static inline __ATTRS_o_ai int 5634 vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) { 5635 int __cc; 5636 __builtin_s390_vchlgs(__a, __b, &__cc); 5637 return __cc <= 1; 5638 } 5639 5640 // This prototype is deprecated. 5641 static inline __ATTRS_o_ai int 5642 vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) { 5643 int __cc; 5644 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc); 5645 return __cc <= 1; 5646 } 5647 5648 // This prototype is deprecated. 5649 static inline __ATTRS_o_ai int 5650 vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) { 5651 int __cc; 5652 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc); 5653 return __cc <= 1; 5654 } 5655 5656 // This prototype is deprecated. 5657 static inline __ATTRS_o_ai int 5658 vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) { 5659 int __cc; 5660 __builtin_s390_vchlgs((__vector unsigned long long)__a, 5661 (__vector unsigned long long)__b, &__cc); 5662 return __cc <= 1; 5663 } 5664 5665 #if __ARCH__ >= 15 5666 static inline __ATTRS_o_ai int 5667 vec_any_gt(__vector signed __int128 __a, __vector signed __int128 __b) { 5668 int __cc; 5669 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc); 5670 return __cc <= 1; 5671 } 5672 5673 static inline __ATTRS_o_ai int 5674 vec_any_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 5675 int __cc; 5676 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 5677 return __cc <= 1; 5678 } 5679 #endif 5680 5681 #if __ARCH__ >= 12 5682 static inline __ATTRS_o_ai int 5683 vec_any_gt(__vector float __a, __vector float __b) { 5684 int __cc; 5685 __builtin_s390_vfchsbs(__a, __b, &__cc); 5686 return __cc <= 1; 5687 } 5688 #endif 5689 5690 static inline __ATTRS_o_ai int 5691 vec_any_gt(__vector double __a, __vector double __b) { 5692 int __cc; 5693 __builtin_s390_vfchdbs(__a, __b, &__cc); 5694 return __cc <= 1; 5695 } 5696 5697 /*-- vec_any_le -------------------------------------------------------------*/ 5698 5699 static inline __ATTRS_o_ai int 5700 vec_any_le(__vector signed char __a, __vector signed char __b) { 5701 int __cc; 5702 __builtin_s390_vchbs(__a, __b, &__cc); 5703 return __cc != 0; 5704 } 5705 5706 // This prototype is deprecated. 5707 static inline __ATTRS_o_ai int 5708 vec_any_le(__vector signed char __a, __vector __bool char __b) { 5709 int __cc; 5710 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc); 5711 return __cc != 0; 5712 } 5713 5714 // This prototype is deprecated. 5715 static inline __ATTRS_o_ai int 5716 vec_any_le(__vector __bool char __a, __vector signed char __b) { 5717 int __cc; 5718 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc); 5719 return __cc != 0; 5720 } 5721 5722 static inline __ATTRS_o_ai int 5723 vec_any_le(__vector unsigned char __a, __vector unsigned char __b) { 5724 int __cc; 5725 __builtin_s390_vchlbs(__a, __b, &__cc); 5726 return __cc != 0; 5727 } 5728 5729 // This prototype is deprecated. 5730 static inline __ATTRS_o_ai int 5731 vec_any_le(__vector unsigned char __a, __vector __bool char __b) { 5732 int __cc; 5733 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc); 5734 return __cc != 0; 5735 } 5736 5737 // This prototype is deprecated. 5738 static inline __ATTRS_o_ai int 5739 vec_any_le(__vector __bool char __a, __vector unsigned char __b) { 5740 int __cc; 5741 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc); 5742 return __cc != 0; 5743 } 5744 5745 // This prototype is deprecated. 5746 static inline __ATTRS_o_ai int 5747 vec_any_le(__vector __bool char __a, __vector __bool char __b) { 5748 int __cc; 5749 __builtin_s390_vchlbs((__vector unsigned char)__a, 5750 (__vector unsigned char)__b, &__cc); 5751 return __cc != 0; 5752 } 5753 5754 static inline __ATTRS_o_ai int 5755 vec_any_le(__vector signed short __a, __vector signed short __b) { 5756 int __cc; 5757 __builtin_s390_vchhs(__a, __b, &__cc); 5758 return __cc != 0; 5759 } 5760 5761 // This prototype is deprecated. 5762 static inline __ATTRS_o_ai int 5763 vec_any_le(__vector signed short __a, __vector __bool short __b) { 5764 int __cc; 5765 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc); 5766 return __cc != 0; 5767 } 5768 5769 // This prototype is deprecated. 5770 static inline __ATTRS_o_ai int 5771 vec_any_le(__vector __bool short __a, __vector signed short __b) { 5772 int __cc; 5773 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc); 5774 return __cc != 0; 5775 } 5776 5777 static inline __ATTRS_o_ai int 5778 vec_any_le(__vector unsigned short __a, __vector unsigned short __b) { 5779 int __cc; 5780 __builtin_s390_vchlhs(__a, __b, &__cc); 5781 return __cc != 0; 5782 } 5783 5784 // This prototype is deprecated. 5785 static inline __ATTRS_o_ai int 5786 vec_any_le(__vector unsigned short __a, __vector __bool short __b) { 5787 int __cc; 5788 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc); 5789 return __cc != 0; 5790 } 5791 5792 // This prototype is deprecated. 5793 static inline __ATTRS_o_ai int 5794 vec_any_le(__vector __bool short __a, __vector unsigned short __b) { 5795 int __cc; 5796 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc); 5797 return __cc != 0; 5798 } 5799 5800 // This prototype is deprecated. 5801 static inline __ATTRS_o_ai int 5802 vec_any_le(__vector __bool short __a, __vector __bool short __b) { 5803 int __cc; 5804 __builtin_s390_vchlhs((__vector unsigned short)__a, 5805 (__vector unsigned short)__b, &__cc); 5806 return __cc != 0; 5807 } 5808 5809 static inline __ATTRS_o_ai int 5810 vec_any_le(__vector signed int __a, __vector signed int __b) { 5811 int __cc; 5812 __builtin_s390_vchfs(__a, __b, &__cc); 5813 return __cc != 0; 5814 } 5815 5816 // This prototype is deprecated. 5817 static inline __ATTRS_o_ai int 5818 vec_any_le(__vector signed int __a, __vector __bool int __b) { 5819 int __cc; 5820 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc); 5821 return __cc != 0; 5822 } 5823 5824 // This prototype is deprecated. 5825 static inline __ATTRS_o_ai int 5826 vec_any_le(__vector __bool int __a, __vector signed int __b) { 5827 int __cc; 5828 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc); 5829 return __cc != 0; 5830 } 5831 5832 static inline __ATTRS_o_ai int 5833 vec_any_le(__vector unsigned int __a, __vector unsigned int __b) { 5834 int __cc; 5835 __builtin_s390_vchlfs(__a, __b, &__cc); 5836 return __cc != 0; 5837 } 5838 5839 // This prototype is deprecated. 5840 static inline __ATTRS_o_ai int 5841 vec_any_le(__vector unsigned int __a, __vector __bool int __b) { 5842 int __cc; 5843 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc); 5844 return __cc != 0; 5845 } 5846 5847 // This prototype is deprecated. 5848 static inline __ATTRS_o_ai int 5849 vec_any_le(__vector __bool int __a, __vector unsigned int __b) { 5850 int __cc; 5851 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc); 5852 return __cc != 0; 5853 } 5854 5855 // This prototype is deprecated. 5856 static inline __ATTRS_o_ai int 5857 vec_any_le(__vector __bool int __a, __vector __bool int __b) { 5858 int __cc; 5859 __builtin_s390_vchlfs((__vector unsigned int)__a, 5860 (__vector unsigned int)__b, &__cc); 5861 return __cc != 0; 5862 } 5863 5864 static inline __ATTRS_o_ai int 5865 vec_any_le(__vector signed long long __a, __vector signed long long __b) { 5866 int __cc; 5867 __builtin_s390_vchgs(__a, __b, &__cc); 5868 return __cc != 0; 5869 } 5870 5871 // This prototype is deprecated. 5872 static inline __ATTRS_o_ai int 5873 vec_any_le(__vector signed long long __a, __vector __bool long long __b) { 5874 int __cc; 5875 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc); 5876 return __cc != 0; 5877 } 5878 5879 // This prototype is deprecated. 5880 static inline __ATTRS_o_ai int 5881 vec_any_le(__vector __bool long long __a, __vector signed long long __b) { 5882 int __cc; 5883 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc); 5884 return __cc != 0; 5885 } 5886 5887 static inline __ATTRS_o_ai int 5888 vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) { 5889 int __cc; 5890 __builtin_s390_vchlgs(__a, __b, &__cc); 5891 return __cc != 0; 5892 } 5893 5894 // This prototype is deprecated. 5895 static inline __ATTRS_o_ai int 5896 vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) { 5897 int __cc; 5898 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc); 5899 return __cc != 0; 5900 } 5901 5902 // This prototype is deprecated. 5903 static inline __ATTRS_o_ai int 5904 vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) { 5905 int __cc; 5906 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc); 5907 return __cc != 0; 5908 } 5909 5910 // This prototype is deprecated. 5911 static inline __ATTRS_o_ai int 5912 vec_any_le(__vector __bool long long __a, __vector __bool long long __b) { 5913 int __cc; 5914 __builtin_s390_vchlgs((__vector unsigned long long)__a, 5915 (__vector unsigned long long)__b, &__cc); 5916 return __cc != 0; 5917 } 5918 5919 #if __ARCH__ >= 15 5920 static inline __ATTRS_o_ai int 5921 vec_any_le(__vector signed __int128 __a, __vector signed __int128 __b) { 5922 int __cc; 5923 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc); 5924 return __cc != 0; 5925 } 5926 5927 static inline __ATTRS_o_ai int 5928 vec_any_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 5929 int __cc; 5930 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc); 5931 return __cc != 0; 5932 } 5933 #endif 5934 5935 #if __ARCH__ >= 12 5936 static inline __ATTRS_o_ai int 5937 vec_any_le(__vector float __a, __vector float __b) { 5938 int __cc; 5939 __builtin_s390_vfchesbs(__b, __a, &__cc); 5940 return __cc <= 1; 5941 } 5942 #endif 5943 5944 static inline __ATTRS_o_ai int 5945 vec_any_le(__vector double __a, __vector double __b) { 5946 int __cc; 5947 __builtin_s390_vfchedbs(__b, __a, &__cc); 5948 return __cc <= 1; 5949 } 5950 5951 /*-- vec_any_lt -------------------------------------------------------------*/ 5952 5953 static inline __ATTRS_o_ai int 5954 vec_any_lt(__vector signed char __a, __vector signed char __b) { 5955 int __cc; 5956 __builtin_s390_vchbs(__b, __a, &__cc); 5957 return __cc <= 1; 5958 } 5959 5960 // This prototype is deprecated. 5961 static inline __ATTRS_o_ai int 5962 vec_any_lt(__vector signed char __a, __vector __bool char __b) { 5963 int __cc; 5964 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc); 5965 return __cc <= 1; 5966 } 5967 5968 // This prototype is deprecated. 5969 static inline __ATTRS_o_ai int 5970 vec_any_lt(__vector __bool char __a, __vector signed char __b) { 5971 int __cc; 5972 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc); 5973 return __cc <= 1; 5974 } 5975 5976 static inline __ATTRS_o_ai int 5977 vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) { 5978 int __cc; 5979 __builtin_s390_vchlbs(__b, __a, &__cc); 5980 return __cc <= 1; 5981 } 5982 5983 // This prototype is deprecated. 5984 static inline __ATTRS_o_ai int 5985 vec_any_lt(__vector unsigned char __a, __vector __bool char __b) { 5986 int __cc; 5987 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc); 5988 return __cc <= 1; 5989 } 5990 5991 // This prototype is deprecated. 5992 static inline __ATTRS_o_ai int 5993 vec_any_lt(__vector __bool char __a, __vector unsigned char __b) { 5994 int __cc; 5995 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc); 5996 return __cc <= 1; 5997 } 5998 5999 // This prototype is deprecated. 6000 static inline __ATTRS_o_ai int 6001 vec_any_lt(__vector __bool char __a, __vector __bool char __b) { 6002 int __cc; 6003 __builtin_s390_vchlbs((__vector unsigned char)__b, 6004 (__vector unsigned char)__a, &__cc); 6005 return __cc <= 1; 6006 } 6007 6008 static inline __ATTRS_o_ai int 6009 vec_any_lt(__vector signed short __a, __vector signed short __b) { 6010 int __cc; 6011 __builtin_s390_vchhs(__b, __a, &__cc); 6012 return __cc <= 1; 6013 } 6014 6015 // This prototype is deprecated. 6016 static inline __ATTRS_o_ai int 6017 vec_any_lt(__vector signed short __a, __vector __bool short __b) { 6018 int __cc; 6019 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc); 6020 return __cc <= 1; 6021 } 6022 6023 // This prototype is deprecated. 6024 static inline __ATTRS_o_ai int 6025 vec_any_lt(__vector __bool short __a, __vector signed short __b) { 6026 int __cc; 6027 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc); 6028 return __cc <= 1; 6029 } 6030 6031 static inline __ATTRS_o_ai int 6032 vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) { 6033 int __cc; 6034 __builtin_s390_vchlhs(__b, __a, &__cc); 6035 return __cc <= 1; 6036 } 6037 6038 // This prototype is deprecated. 6039 static inline __ATTRS_o_ai int 6040 vec_any_lt(__vector unsigned short __a, __vector __bool short __b) { 6041 int __cc; 6042 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc); 6043 return __cc <= 1; 6044 } 6045 6046 // This prototype is deprecated. 6047 static inline __ATTRS_o_ai int 6048 vec_any_lt(__vector __bool short __a, __vector unsigned short __b) { 6049 int __cc; 6050 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc); 6051 return __cc <= 1; 6052 } 6053 6054 // This prototype is deprecated. 6055 static inline __ATTRS_o_ai int 6056 vec_any_lt(__vector __bool short __a, __vector __bool short __b) { 6057 int __cc; 6058 __builtin_s390_vchlhs((__vector unsigned short)__b, 6059 (__vector unsigned short)__a, &__cc); 6060 return __cc <= 1; 6061 } 6062 6063 static inline __ATTRS_o_ai int 6064 vec_any_lt(__vector signed int __a, __vector signed int __b) { 6065 int __cc; 6066 __builtin_s390_vchfs(__b, __a, &__cc); 6067 return __cc <= 1; 6068 } 6069 6070 // This prototype is deprecated. 6071 static inline __ATTRS_o_ai int 6072 vec_any_lt(__vector signed int __a, __vector __bool int __b) { 6073 int __cc; 6074 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc); 6075 return __cc <= 1; 6076 } 6077 6078 // This prototype is deprecated. 6079 static inline __ATTRS_o_ai int 6080 vec_any_lt(__vector __bool int __a, __vector signed int __b) { 6081 int __cc; 6082 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc); 6083 return __cc <= 1; 6084 } 6085 6086 static inline __ATTRS_o_ai int 6087 vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) { 6088 int __cc; 6089 __builtin_s390_vchlfs(__b, __a, &__cc); 6090 return __cc <= 1; 6091 } 6092 6093 // This prototype is deprecated. 6094 static inline __ATTRS_o_ai int 6095 vec_any_lt(__vector unsigned int __a, __vector __bool int __b) { 6096 int __cc; 6097 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc); 6098 return __cc <= 1; 6099 } 6100 6101 // This prototype is deprecated. 6102 static inline __ATTRS_o_ai int 6103 vec_any_lt(__vector __bool int __a, __vector unsigned int __b) { 6104 int __cc; 6105 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc); 6106 return __cc <= 1; 6107 } 6108 6109 // This prototype is deprecated. 6110 static inline __ATTRS_o_ai int 6111 vec_any_lt(__vector __bool int __a, __vector __bool int __b) { 6112 int __cc; 6113 __builtin_s390_vchlfs((__vector unsigned int)__b, 6114 (__vector unsigned int)__a, &__cc); 6115 return __cc <= 1; 6116 } 6117 6118 static inline __ATTRS_o_ai int 6119 vec_any_lt(__vector signed long long __a, __vector signed long long __b) { 6120 int __cc; 6121 __builtin_s390_vchgs(__b, __a, &__cc); 6122 return __cc <= 1; 6123 } 6124 6125 // This prototype is deprecated. 6126 static inline __ATTRS_o_ai int 6127 vec_any_lt(__vector signed long long __a, __vector __bool long long __b) { 6128 int __cc; 6129 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc); 6130 return __cc <= 1; 6131 } 6132 6133 // This prototype is deprecated. 6134 static inline __ATTRS_o_ai int 6135 vec_any_lt(__vector __bool long long __a, __vector signed long long __b) { 6136 int __cc; 6137 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc); 6138 return __cc <= 1; 6139 } 6140 6141 static inline __ATTRS_o_ai int 6142 vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) { 6143 int __cc; 6144 __builtin_s390_vchlgs(__b, __a, &__cc); 6145 return __cc <= 1; 6146 } 6147 6148 // This prototype is deprecated. 6149 static inline __ATTRS_o_ai int 6150 vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) { 6151 int __cc; 6152 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc); 6153 return __cc <= 1; 6154 } 6155 6156 // This prototype is deprecated. 6157 static inline __ATTRS_o_ai int 6158 vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) { 6159 int __cc; 6160 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc); 6161 return __cc <= 1; 6162 } 6163 6164 // This prototype is deprecated. 6165 static inline __ATTRS_o_ai int 6166 vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) { 6167 int __cc; 6168 __builtin_s390_vchlgs((__vector unsigned long long)__b, 6169 (__vector unsigned long long)__a, &__cc); 6170 return __cc <= 1; 6171 } 6172 6173 #if __ARCH__ >= 15 6174 static inline __ATTRS_o_ai int 6175 vec_any_lt(__vector signed __int128 __a, __vector signed __int128 __b) { 6176 int __cc; 6177 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc); 6178 return __cc <= 1; 6179 } 6180 6181 static inline __ATTRS_o_ai int 6182 vec_any_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 6183 int __cc; 6184 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc); 6185 return __cc <= 1; 6186 } 6187 #endif 6188 6189 #if __ARCH__ >= 12 6190 static inline __ATTRS_o_ai int 6191 vec_any_lt(__vector float __a, __vector float __b) { 6192 int __cc; 6193 __builtin_s390_vfchsbs(__b, __a, &__cc); 6194 return __cc <= 1; 6195 } 6196 #endif 6197 6198 static inline __ATTRS_o_ai int 6199 vec_any_lt(__vector double __a, __vector double __b) { 6200 int __cc; 6201 __builtin_s390_vfchdbs(__b, __a, &__cc); 6202 return __cc <= 1; 6203 } 6204 6205 /*-- vec_any_nge ------------------------------------------------------------*/ 6206 6207 #if __ARCH__ >= 12 6208 static inline __ATTRS_o_ai int 6209 vec_any_nge(__vector float __a, __vector float __b) { 6210 int __cc; 6211 __builtin_s390_vfchesbs(__a, __b, &__cc); 6212 return __cc != 0; 6213 } 6214 #endif 6215 6216 static inline __ATTRS_o_ai int 6217 vec_any_nge(__vector double __a, __vector double __b) { 6218 int __cc; 6219 __builtin_s390_vfchedbs(__a, __b, &__cc); 6220 return __cc != 0; 6221 } 6222 6223 /*-- vec_any_ngt ------------------------------------------------------------*/ 6224 6225 #if __ARCH__ >= 12 6226 static inline __ATTRS_o_ai int 6227 vec_any_ngt(__vector float __a, __vector float __b) { 6228 int __cc; 6229 __builtin_s390_vfchsbs(__a, __b, &__cc); 6230 return __cc != 0; 6231 } 6232 #endif 6233 6234 static inline __ATTRS_o_ai int 6235 vec_any_ngt(__vector double __a, __vector double __b) { 6236 int __cc; 6237 __builtin_s390_vfchdbs(__a, __b, &__cc); 6238 return __cc != 0; 6239 } 6240 6241 /*-- vec_any_nle ------------------------------------------------------------*/ 6242 6243 #if __ARCH__ >= 12 6244 static inline __ATTRS_o_ai int 6245 vec_any_nle(__vector float __a, __vector float __b) { 6246 int __cc; 6247 __builtin_s390_vfchesbs(__b, __a, &__cc); 6248 return __cc != 0; 6249 } 6250 #endif 6251 6252 static inline __ATTRS_o_ai int 6253 vec_any_nle(__vector double __a, __vector double __b) { 6254 int __cc; 6255 __builtin_s390_vfchedbs(__b, __a, &__cc); 6256 return __cc != 0; 6257 } 6258 6259 /*-- vec_any_nlt ------------------------------------------------------------*/ 6260 6261 #if __ARCH__ >= 12 6262 static inline __ATTRS_o_ai int 6263 vec_any_nlt(__vector float __a, __vector float __b) { 6264 int __cc; 6265 __builtin_s390_vfchsbs(__b, __a, &__cc); 6266 return __cc != 0; 6267 } 6268 #endif 6269 6270 static inline __ATTRS_o_ai int 6271 vec_any_nlt(__vector double __a, __vector double __b) { 6272 int __cc; 6273 __builtin_s390_vfchdbs(__b, __a, &__cc); 6274 return __cc != 0; 6275 } 6276 6277 /*-- vec_any_nan ------------------------------------------------------------*/ 6278 6279 #if __ARCH__ >= 12 6280 static inline __ATTRS_o_ai int 6281 vec_any_nan(__vector float __a) { 6282 int __cc; 6283 __builtin_s390_vftcisb(__a, 15, &__cc); 6284 return __cc != 3; 6285 } 6286 #endif 6287 6288 static inline __ATTRS_o_ai int 6289 vec_any_nan(__vector double __a) { 6290 int __cc; 6291 __builtin_s390_vftcidb(__a, 15, &__cc); 6292 return __cc != 3; 6293 } 6294 6295 /*-- vec_any_numeric --------------------------------------------------------*/ 6296 6297 #if __ARCH__ >= 12 6298 static inline __ATTRS_o_ai int 6299 vec_any_numeric(__vector float __a) { 6300 int __cc; 6301 __builtin_s390_vftcisb(__a, 15, &__cc); 6302 return __cc != 0; 6303 } 6304 #endif 6305 6306 static inline __ATTRS_o_ai int 6307 vec_any_numeric(__vector double __a) { 6308 int __cc; 6309 __builtin_s390_vftcidb(__a, 15, &__cc); 6310 return __cc != 0; 6311 } 6312 6313 /*-- vec_blend --------------------------------------------------------------*/ 6314 6315 #if __ARCH__ >= 15 6316 static inline __ATTRS_o_ai __vector signed char 6317 vec_blend(__vector signed char __a, __vector signed char __b, 6318 __vector signed char __c) { 6319 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0)); 6320 } 6321 6322 static inline __ATTRS_o_ai __vector __bool char 6323 vec_blend(__vector __bool char __a, __vector __bool char __b, 6324 __vector signed char __c) { 6325 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0)); 6326 } 6327 6328 static inline __ATTRS_o_ai __vector unsigned char 6329 vec_blend(__vector unsigned char __a, __vector unsigned char __b, 6330 __vector signed char __c) { 6331 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0)); 6332 } 6333 6334 static inline __ATTRS_o_ai __vector signed short 6335 vec_blend(__vector signed short __a, __vector signed short __b, 6336 __vector signed short __c) { 6337 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0)); 6338 } 6339 6340 static inline __ATTRS_o_ai __vector __bool short 6341 vec_blend(__vector __bool short __a, __vector __bool short __b, 6342 __vector signed short __c) { 6343 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0)); 6344 } 6345 6346 static inline __ATTRS_o_ai __vector unsigned short 6347 vec_blend(__vector unsigned short __a, __vector unsigned short __b, 6348 __vector signed short __c) { 6349 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0)); 6350 } 6351 6352 static inline __ATTRS_o_ai __vector signed int 6353 vec_blend(__vector signed int __a, __vector signed int __b, 6354 __vector signed int __c) { 6355 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0)); 6356 } 6357 6358 static inline __ATTRS_o_ai __vector __bool int 6359 vec_blend(__vector __bool int __a, __vector __bool int __b, 6360 __vector signed int __c) { 6361 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0)); 6362 } 6363 6364 static inline __ATTRS_o_ai __vector unsigned int 6365 vec_blend(__vector unsigned int __a, __vector unsigned int __b, 6366 __vector signed int __c) { 6367 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0)); 6368 } 6369 6370 static inline __ATTRS_o_ai __vector signed long long 6371 vec_blend(__vector signed long long __a, __vector signed long long __b, 6372 __vector signed long long __c) { 6373 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0)); 6374 } 6375 6376 static inline __ATTRS_o_ai __vector __bool long long 6377 vec_blend(__vector __bool long long __a, __vector __bool long long __b, 6378 __vector signed long long __c) { 6379 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0)); 6380 } 6381 6382 static inline __ATTRS_o_ai __vector unsigned long long 6383 vec_blend(__vector unsigned long long __a, __vector unsigned long long __b, 6384 __vector signed long long __c) { 6385 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0)); 6386 } 6387 6388 static inline __ATTRS_o_ai __vector signed __int128 6389 vec_blend(__vector signed __int128 __a, __vector signed __int128 __b, 6390 __vector signed __int128 __c) { 6391 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0)); 6392 } 6393 6394 static inline __ATTRS_o_ai __vector __bool __int128 6395 vec_blend(__vector __bool __int128 __a, __vector __bool __int128 __b, 6396 __vector signed __int128 __c) { 6397 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0)); 6398 } 6399 6400 static inline __ATTRS_o_ai __vector unsigned __int128 6401 vec_blend(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 6402 __vector signed __int128 __c) { 6403 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0)); 6404 } 6405 6406 static inline __ATTRS_o_ai __vector float 6407 vec_blend(__vector float __a, __vector float __b, 6408 __vector signed int __c) { 6409 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0)); 6410 } 6411 6412 static inline __ATTRS_o_ai __vector double 6413 vec_blend(__vector double __a, __vector double __b, 6414 __vector signed long long __c) { 6415 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0)); 6416 } 6417 #endif 6418 6419 /*-- vec_and ---------------------------------------------------------------*/ 6420 6421 static inline __ATTRS_o_ai __vector __bool char 6422 vec_and(__vector __bool char __a, __vector __bool char __b) { 6423 return __a & __b; 6424 } 6425 6426 static inline __ATTRS_o_ai __vector signed char 6427 vec_and(__vector signed char __a, __vector signed char __b) { 6428 return __a & __b; 6429 } 6430 6431 static inline __ATTRS_o_ai __vector unsigned char 6432 vec_and(__vector unsigned char __a, __vector unsigned char __b) { 6433 return __a & __b; 6434 } 6435 6436 static inline __ATTRS_o_ai __vector __bool short 6437 vec_and(__vector __bool short __a, __vector __bool short __b) { 6438 return __a & __b; 6439 } 6440 6441 static inline __ATTRS_o_ai __vector signed short 6442 vec_and(__vector signed short __a, __vector signed short __b) { 6443 return __a & __b; 6444 } 6445 6446 static inline __ATTRS_o_ai __vector unsigned short 6447 vec_and(__vector unsigned short __a, __vector unsigned short __b) { 6448 return __a & __b; 6449 } 6450 6451 static inline __ATTRS_o_ai __vector __bool int 6452 vec_and(__vector __bool int __a, __vector __bool int __b) { 6453 return __a & __b; 6454 } 6455 6456 static inline __ATTRS_o_ai __vector signed int 6457 vec_and(__vector signed int __a, __vector signed int __b) { 6458 return __a & __b; 6459 } 6460 6461 static inline __ATTRS_o_ai __vector unsigned int 6462 vec_and(__vector unsigned int __a, __vector unsigned int __b) { 6463 return __a & __b; 6464 } 6465 6466 static inline __ATTRS_o_ai __vector __bool long long 6467 vec_and(__vector __bool long long __a, __vector __bool long long __b) { 6468 return __a & __b; 6469 } 6470 6471 static inline __ATTRS_o_ai __vector signed long long 6472 vec_and(__vector signed long long __a, __vector signed long long __b) { 6473 return __a & __b; 6474 } 6475 6476 static inline __ATTRS_o_ai __vector unsigned long long 6477 vec_and(__vector unsigned long long __a, __vector unsigned long long __b) { 6478 return __a & __b; 6479 } 6480 6481 static inline __ATTRS_o_ai __vector __bool __int128 6482 vec_and(__vector __bool __int128 __a, __vector __bool __int128 __b) { 6483 return __a & __b; 6484 } 6485 6486 static inline __ATTRS_o_ai __vector signed __int128 6487 vec_and(__vector signed __int128 __a, __vector signed __int128 __b) { 6488 return __a & __b; 6489 } 6490 6491 static inline __ATTRS_o_ai __vector unsigned __int128 6492 vec_and(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 6493 return __a & __b; 6494 } 6495 6496 #if __ARCH__ >= 12 6497 static inline __ATTRS_o_ai __vector float 6498 vec_and(__vector float __a, __vector float __b) { 6499 return (__vector float)((__vector unsigned int)__a & 6500 (__vector unsigned int)__b); 6501 } 6502 #endif 6503 6504 static inline __ATTRS_o_ai __vector double 6505 vec_and(__vector double __a, __vector double __b) { 6506 return (__vector double)((__vector unsigned long long)__a & 6507 (__vector unsigned long long)__b); 6508 } 6509 6510 /*-- vec_or ----------------------------------------------------------------*/ 6511 6512 static inline __ATTRS_o_ai __vector __bool char 6513 vec_or(__vector __bool char __a, __vector __bool char __b) { 6514 return __a | __b; 6515 } 6516 6517 static inline __ATTRS_o_ai __vector signed char 6518 vec_or(__vector signed char __a, __vector signed char __b) { 6519 return __a | __b; 6520 } 6521 6522 static inline __ATTRS_o_ai __vector unsigned char 6523 vec_or(__vector unsigned char __a, __vector unsigned char __b) { 6524 return __a | __b; 6525 } 6526 6527 static inline __ATTRS_o_ai __vector __bool short 6528 vec_or(__vector __bool short __a, __vector __bool short __b) { 6529 return __a | __b; 6530 } 6531 6532 static inline __ATTRS_o_ai __vector signed short 6533 vec_or(__vector signed short __a, __vector signed short __b) { 6534 return __a | __b; 6535 } 6536 6537 static inline __ATTRS_o_ai __vector unsigned short 6538 vec_or(__vector unsigned short __a, __vector unsigned short __b) { 6539 return __a | __b; 6540 } 6541 6542 static inline __ATTRS_o_ai __vector __bool int 6543 vec_or(__vector __bool int __a, __vector __bool int __b) { 6544 return __a | __b; 6545 } 6546 6547 static inline __ATTRS_o_ai __vector signed int 6548 vec_or(__vector signed int __a, __vector signed int __b) { 6549 return __a | __b; 6550 } 6551 6552 static inline __ATTRS_o_ai __vector unsigned int 6553 vec_or(__vector unsigned int __a, __vector unsigned int __b) { 6554 return __a | __b; 6555 } 6556 6557 static inline __ATTRS_o_ai __vector __bool long long 6558 vec_or(__vector __bool long long __a, __vector __bool long long __b) { 6559 return __a | __b; 6560 } 6561 6562 static inline __ATTRS_o_ai __vector signed long long 6563 vec_or(__vector signed long long __a, __vector signed long long __b) { 6564 return __a | __b; 6565 } 6566 6567 static inline __ATTRS_o_ai __vector unsigned long long 6568 vec_or(__vector unsigned long long __a, __vector unsigned long long __b) { 6569 return __a | __b; 6570 } 6571 6572 static inline __ATTRS_o_ai __vector __bool __int128 6573 vec_or(__vector __bool __int128 __a, __vector __bool __int128 __b) { 6574 return __a | __b; 6575 } 6576 6577 static inline __ATTRS_o_ai __vector signed __int128 6578 vec_or(__vector signed __int128 __a, __vector signed __int128 __b) { 6579 return __a | __b; 6580 } 6581 6582 static inline __ATTRS_o_ai __vector unsigned __int128 6583 vec_or(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 6584 return __a | __b; 6585 } 6586 6587 #if __ARCH__ >= 12 6588 static inline __ATTRS_o_ai __vector float 6589 vec_or(__vector float __a, __vector float __b) { 6590 return (__vector float)((__vector unsigned int)__a | 6591 (__vector unsigned int)__b); 6592 } 6593 #endif 6594 6595 static inline __ATTRS_o_ai __vector double 6596 vec_or(__vector double __a, __vector double __b) { 6597 return (__vector double)((__vector unsigned long long)__a | 6598 (__vector unsigned long long)__b); 6599 } 6600 6601 /*-- vec_xor ----------------------------------------------------------------*/ 6602 6603 static inline __ATTRS_o_ai __vector __bool char 6604 vec_xor(__vector __bool char __a, __vector __bool char __b) { 6605 return __a ^ __b; 6606 } 6607 6608 static inline __ATTRS_o_ai __vector signed char 6609 vec_xor(__vector signed char __a, __vector signed char __b) { 6610 return __a ^ __b; 6611 } 6612 6613 static inline __ATTRS_o_ai __vector unsigned char 6614 vec_xor(__vector unsigned char __a, __vector unsigned char __b) { 6615 return __a ^ __b; 6616 } 6617 6618 static inline __ATTRS_o_ai __vector __bool short 6619 vec_xor(__vector __bool short __a, __vector __bool short __b) { 6620 return __a ^ __b; 6621 } 6622 6623 static inline __ATTRS_o_ai __vector signed short 6624 vec_xor(__vector signed short __a, __vector signed short __b) { 6625 return __a ^ __b; 6626 } 6627 6628 static inline __ATTRS_o_ai __vector unsigned short 6629 vec_xor(__vector unsigned short __a, __vector unsigned short __b) { 6630 return __a ^ __b; 6631 } 6632 6633 static inline __ATTRS_o_ai __vector __bool int 6634 vec_xor(__vector __bool int __a, __vector __bool int __b) { 6635 return __a ^ __b; 6636 } 6637 6638 static inline __ATTRS_o_ai __vector signed int 6639 vec_xor(__vector signed int __a, __vector signed int __b) { 6640 return __a ^ __b; 6641 } 6642 6643 static inline __ATTRS_o_ai __vector unsigned int 6644 vec_xor(__vector unsigned int __a, __vector unsigned int __b) { 6645 return __a ^ __b; 6646 } 6647 6648 static inline __ATTRS_o_ai __vector __bool long long 6649 vec_xor(__vector __bool long long __a, __vector __bool long long __b) { 6650 return __a ^ __b; 6651 } 6652 6653 static inline __ATTRS_o_ai __vector signed long long 6654 vec_xor(__vector signed long long __a, __vector signed long long __b) { 6655 return __a ^ __b; 6656 } 6657 6658 static inline __ATTRS_o_ai __vector unsigned long long 6659 vec_xor(__vector unsigned long long __a, __vector unsigned long long __b) { 6660 return __a ^ __b; 6661 } 6662 6663 static inline __ATTRS_o_ai __vector __bool __int128 6664 vec_xor(__vector __bool __int128 __a, __vector __bool __int128 __b) { 6665 return __a ^ __b; 6666 } 6667 6668 static inline __ATTRS_o_ai __vector signed __int128 6669 vec_xor(__vector signed __int128 __a, __vector signed __int128 __b) { 6670 return __a ^ __b; 6671 } 6672 6673 static inline __ATTRS_o_ai __vector unsigned __int128 6674 vec_xor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 6675 return __a ^ __b; 6676 } 6677 6678 #if __ARCH__ >= 12 6679 static inline __ATTRS_o_ai __vector float 6680 vec_xor(__vector float __a, __vector float __b) { 6681 return (__vector float)((__vector unsigned int)__a ^ 6682 (__vector unsigned int)__b); 6683 } 6684 #endif 6685 6686 static inline __ATTRS_o_ai __vector double 6687 vec_xor(__vector double __a, __vector double __b) { 6688 return (__vector double)((__vector unsigned long long)__a ^ 6689 (__vector unsigned long long)__b); 6690 } 6691 6692 /*-- vec_andc ---------------------------------------------------------------*/ 6693 6694 static inline __ATTRS_o_ai __vector __bool char 6695 vec_andc(__vector __bool char __a, __vector __bool char __b) { 6696 return __a & ~__b; 6697 } 6698 6699 static inline __ATTRS_o_ai __vector signed char 6700 vec_andc(__vector signed char __a, __vector signed char __b) { 6701 return __a & ~__b; 6702 } 6703 6704 // This prototype is deprecated. 6705 static inline __ATTRS_o_ai __vector signed char 6706 vec_andc(__vector __bool char __a, __vector signed char __b) { 6707 return __a & ~__b; 6708 } 6709 6710 // This prototype is deprecated. 6711 static inline __ATTRS_o_ai __vector signed char 6712 vec_andc(__vector signed char __a, __vector __bool char __b) { 6713 return __a & ~__b; 6714 } 6715 6716 static inline __ATTRS_o_ai __vector unsigned char 6717 vec_andc(__vector unsigned char __a, __vector unsigned char __b) { 6718 return __a & ~__b; 6719 } 6720 6721 // This prototype is deprecated. 6722 static inline __ATTRS_o_ai __vector unsigned char 6723 vec_andc(__vector __bool char __a, __vector unsigned char __b) { 6724 return __a & ~__b; 6725 } 6726 6727 // This prototype is deprecated. 6728 static inline __ATTRS_o_ai __vector unsigned char 6729 vec_andc(__vector unsigned char __a, __vector __bool char __b) { 6730 return __a & ~__b; 6731 } 6732 6733 static inline __ATTRS_o_ai __vector __bool short 6734 vec_andc(__vector __bool short __a, __vector __bool short __b) { 6735 return __a & ~__b; 6736 } 6737 6738 static inline __ATTRS_o_ai __vector signed short 6739 vec_andc(__vector signed short __a, __vector signed short __b) { 6740 return __a & ~__b; 6741 } 6742 6743 // This prototype is deprecated. 6744 static inline __ATTRS_o_ai __vector signed short 6745 vec_andc(__vector __bool short __a, __vector signed short __b) { 6746 return __a & ~__b; 6747 } 6748 6749 // This prototype is deprecated. 6750 static inline __ATTRS_o_ai __vector signed short 6751 vec_andc(__vector signed short __a, __vector __bool short __b) { 6752 return __a & ~__b; 6753 } 6754 6755 static inline __ATTRS_o_ai __vector unsigned short 6756 vec_andc(__vector unsigned short __a, __vector unsigned short __b) { 6757 return __a & ~__b; 6758 } 6759 6760 // This prototype is deprecated. 6761 static inline __ATTRS_o_ai __vector unsigned short 6762 vec_andc(__vector __bool short __a, __vector unsigned short __b) { 6763 return __a & ~__b; 6764 } 6765 6766 // This prototype is deprecated. 6767 static inline __ATTRS_o_ai __vector unsigned short 6768 vec_andc(__vector unsigned short __a, __vector __bool short __b) { 6769 return __a & ~__b; 6770 } 6771 6772 static inline __ATTRS_o_ai __vector __bool int 6773 vec_andc(__vector __bool int __a, __vector __bool int __b) { 6774 return __a & ~__b; 6775 } 6776 6777 static inline __ATTRS_o_ai __vector signed int 6778 vec_andc(__vector signed int __a, __vector signed int __b) { 6779 return __a & ~__b; 6780 } 6781 6782 // This prototype is deprecated. 6783 static inline __ATTRS_o_ai __vector signed int 6784 vec_andc(__vector __bool int __a, __vector signed int __b) { 6785 return __a & ~__b; 6786 } 6787 6788 // This prototype is deprecated. 6789 static inline __ATTRS_o_ai __vector signed int 6790 vec_andc(__vector signed int __a, __vector __bool int __b) { 6791 return __a & ~__b; 6792 } 6793 6794 static inline __ATTRS_o_ai __vector unsigned int 6795 vec_andc(__vector unsigned int __a, __vector unsigned int __b) { 6796 return __a & ~__b; 6797 } 6798 6799 // This prototype is deprecated. 6800 static inline __ATTRS_o_ai __vector unsigned int 6801 vec_andc(__vector __bool int __a, __vector unsigned int __b) { 6802 return __a & ~__b; 6803 } 6804 6805 // This prototype is deprecated. 6806 static inline __ATTRS_o_ai __vector unsigned int 6807 vec_andc(__vector unsigned int __a, __vector __bool int __b) { 6808 return __a & ~__b; 6809 } 6810 6811 static inline __ATTRS_o_ai __vector __bool long long 6812 vec_andc(__vector __bool long long __a, __vector __bool long long __b) { 6813 return __a & ~__b; 6814 } 6815 6816 static inline __ATTRS_o_ai __vector signed long long 6817 vec_andc(__vector signed long long __a, __vector signed long long __b) { 6818 return __a & ~__b; 6819 } 6820 6821 // This prototype is deprecated. 6822 static inline __ATTRS_o_ai __vector signed long long 6823 vec_andc(__vector __bool long long __a, __vector signed long long __b) { 6824 return __a & ~__b; 6825 } 6826 6827 // This prototype is deprecated. 6828 static inline __ATTRS_o_ai __vector signed long long 6829 vec_andc(__vector signed long long __a, __vector __bool long long __b) { 6830 return __a & ~__b; 6831 } 6832 6833 static inline __ATTRS_o_ai __vector unsigned long long 6834 vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) { 6835 return __a & ~__b; 6836 } 6837 6838 // This prototype is deprecated. 6839 static inline __ATTRS_o_ai __vector unsigned long long 6840 vec_andc(__vector __bool long long __a, __vector unsigned long long __b) { 6841 return __a & ~__b; 6842 } 6843 6844 // This prototype is deprecated. 6845 static inline __ATTRS_o_ai __vector unsigned long long 6846 vec_andc(__vector unsigned long long __a, __vector __bool long long __b) { 6847 return __a & ~__b; 6848 } 6849 6850 static inline __ATTRS_o_ai __vector __bool __int128 6851 vec_andc(__vector __bool __int128 __a, __vector __bool __int128 __b) { 6852 return __a & ~__b; 6853 } 6854 6855 static inline __ATTRS_o_ai __vector signed __int128 6856 vec_andc(__vector signed __int128 __a, __vector signed __int128 __b) { 6857 return __a & ~__b; 6858 } 6859 6860 static inline __ATTRS_o_ai __vector unsigned __int128 6861 vec_andc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 6862 return __a & ~__b; 6863 } 6864 6865 #if __ARCH__ >= 12 6866 static inline __ATTRS_o_ai __vector float 6867 vec_andc(__vector float __a, __vector float __b) { 6868 return (__vector float)((__vector unsigned int)__a & 6869 ~(__vector unsigned int)__b); 6870 } 6871 #endif 6872 6873 static inline __ATTRS_o_ai __vector double 6874 vec_andc(__vector double __a, __vector double __b) { 6875 return (__vector double)((__vector unsigned long long)__a & 6876 ~(__vector unsigned long long)__b); 6877 } 6878 6879 // This prototype is deprecated. 6880 static inline __ATTRS_o_ai __vector double 6881 vec_andc(__vector __bool long long __a, __vector double __b) { 6882 return (__vector double)((__vector unsigned long long)__a & 6883 ~(__vector unsigned long long)__b); 6884 } 6885 6886 // This prototype is deprecated. 6887 static inline __ATTRS_o_ai __vector double 6888 vec_andc(__vector double __a, __vector __bool long long __b) { 6889 return (__vector double)((__vector unsigned long long)__a & 6890 ~(__vector unsigned long long)__b); 6891 } 6892 6893 /*-- vec_nor ----------------------------------------------------------------*/ 6894 6895 static inline __ATTRS_o_ai __vector __bool char 6896 vec_nor(__vector __bool char __a, __vector __bool char __b) { 6897 return ~(__a | __b); 6898 } 6899 6900 static inline __ATTRS_o_ai __vector signed char 6901 vec_nor(__vector signed char __a, __vector signed char __b) { 6902 return ~(__a | __b); 6903 } 6904 6905 // This prototype is deprecated. 6906 static inline __ATTRS_o_ai __vector signed char 6907 vec_nor(__vector __bool char __a, __vector signed char __b) { 6908 return ~(__a | __b); 6909 } 6910 6911 // This prototype is deprecated. 6912 static inline __ATTRS_o_ai __vector signed char 6913 vec_nor(__vector signed char __a, __vector __bool char __b) { 6914 return ~(__a | __b); 6915 } 6916 6917 static inline __ATTRS_o_ai __vector unsigned char 6918 vec_nor(__vector unsigned char __a, __vector unsigned char __b) { 6919 return ~(__a | __b); 6920 } 6921 6922 // This prototype is deprecated. 6923 static inline __ATTRS_o_ai __vector unsigned char 6924 vec_nor(__vector __bool char __a, __vector unsigned char __b) { 6925 return ~(__a | __b); 6926 } 6927 6928 // This prototype is deprecated. 6929 static inline __ATTRS_o_ai __vector unsigned char 6930 vec_nor(__vector unsigned char __a, __vector __bool char __b) { 6931 return ~(__a | __b); 6932 } 6933 6934 static inline __ATTRS_o_ai __vector __bool short 6935 vec_nor(__vector __bool short __a, __vector __bool short __b) { 6936 return ~(__a | __b); 6937 } 6938 6939 static inline __ATTRS_o_ai __vector signed short 6940 vec_nor(__vector signed short __a, __vector signed short __b) { 6941 return ~(__a | __b); 6942 } 6943 6944 // This prototype is deprecated. 6945 static inline __ATTRS_o_ai __vector signed short 6946 vec_nor(__vector __bool short __a, __vector signed short __b) { 6947 return ~(__a | __b); 6948 } 6949 6950 // This prototype is deprecated. 6951 static inline __ATTRS_o_ai __vector signed short 6952 vec_nor(__vector signed short __a, __vector __bool short __b) { 6953 return ~(__a | __b); 6954 } 6955 6956 static inline __ATTRS_o_ai __vector unsigned short 6957 vec_nor(__vector unsigned short __a, __vector unsigned short __b) { 6958 return ~(__a | __b); 6959 } 6960 6961 // This prototype is deprecated. 6962 static inline __ATTRS_o_ai __vector unsigned short 6963 vec_nor(__vector __bool short __a, __vector unsigned short __b) { 6964 return ~(__a | __b); 6965 } 6966 6967 // This prototype is deprecated. 6968 static inline __ATTRS_o_ai __vector unsigned short 6969 vec_nor(__vector unsigned short __a, __vector __bool short __b) { 6970 return ~(__a | __b); 6971 } 6972 6973 static inline __ATTRS_o_ai __vector __bool int 6974 vec_nor(__vector __bool int __a, __vector __bool int __b) { 6975 return ~(__a | __b); 6976 } 6977 6978 static inline __ATTRS_o_ai __vector signed int 6979 vec_nor(__vector signed int __a, __vector signed int __b) { 6980 return ~(__a | __b); 6981 } 6982 6983 // This prototype is deprecated. 6984 static inline __ATTRS_o_ai __vector signed int 6985 vec_nor(__vector __bool int __a, __vector signed int __b) { 6986 return ~(__a | __b); 6987 } 6988 6989 // This prototype is deprecated. 6990 static inline __ATTRS_o_ai __vector signed int 6991 vec_nor(__vector signed int __a, __vector __bool int __b) { 6992 return ~(__a | __b); 6993 } 6994 6995 static inline __ATTRS_o_ai __vector unsigned int 6996 vec_nor(__vector unsigned int __a, __vector unsigned int __b) { 6997 return ~(__a | __b); 6998 } 6999 7000 // This prototype is deprecated. 7001 static inline __ATTRS_o_ai __vector unsigned int 7002 vec_nor(__vector __bool int __a, __vector unsigned int __b) { 7003 return ~(__a | __b); 7004 } 7005 7006 // This prototype is deprecated. 7007 static inline __ATTRS_o_ai __vector unsigned int 7008 vec_nor(__vector unsigned int __a, __vector __bool int __b) { 7009 return ~(__a | __b); 7010 } 7011 7012 static inline __ATTRS_o_ai __vector __bool long long 7013 vec_nor(__vector __bool long long __a, __vector __bool long long __b) { 7014 return ~(__a | __b); 7015 } 7016 7017 static inline __ATTRS_o_ai __vector signed long long 7018 vec_nor(__vector signed long long __a, __vector signed long long __b) { 7019 return ~(__a | __b); 7020 } 7021 7022 // This prototype is deprecated. 7023 static inline __ATTRS_o_ai __vector signed long long 7024 vec_nor(__vector __bool long long __a, __vector signed long long __b) { 7025 return ~(__a | __b); 7026 } 7027 7028 // This prototype is deprecated. 7029 static inline __ATTRS_o_ai __vector signed long long 7030 vec_nor(__vector signed long long __a, __vector __bool long long __b) { 7031 return ~(__a | __b); 7032 } 7033 7034 static inline __ATTRS_o_ai __vector unsigned long long 7035 vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) { 7036 return ~(__a | __b); 7037 } 7038 7039 // This prototype is deprecated. 7040 static inline __ATTRS_o_ai __vector unsigned long long 7041 vec_nor(__vector __bool long long __a, __vector unsigned long long __b) { 7042 return ~(__a | __b); 7043 } 7044 7045 // This prototype is deprecated. 7046 static inline __ATTRS_o_ai __vector unsigned long long 7047 vec_nor(__vector unsigned long long __a, __vector __bool long long __b) { 7048 return ~(__a | __b); 7049 } 7050 7051 static inline __ATTRS_o_ai __vector __bool __int128 7052 vec_nor(__vector __bool __int128 __a, __vector __bool __int128 __b) { 7053 return ~(__a | __b); 7054 } 7055 7056 static inline __ATTRS_o_ai __vector signed __int128 7057 vec_nor(__vector signed __int128 __a, __vector signed __int128 __b) { 7058 return ~(__a | __b); 7059 } 7060 7061 static inline __ATTRS_o_ai __vector unsigned __int128 7062 vec_nor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 7063 return ~(__a | __b); 7064 } 7065 7066 #if __ARCH__ >= 12 7067 static inline __ATTRS_o_ai __vector float 7068 vec_nor(__vector float __a, __vector float __b) { 7069 return (__vector float)~((__vector unsigned int)__a | 7070 (__vector unsigned int)__b); 7071 } 7072 #endif 7073 7074 static inline __ATTRS_o_ai __vector double 7075 vec_nor(__vector double __a, __vector double __b) { 7076 return (__vector double)~((__vector unsigned long long)__a | 7077 (__vector unsigned long long)__b); 7078 } 7079 7080 // This prototype is deprecated. 7081 static inline __ATTRS_o_ai __vector double 7082 vec_nor(__vector __bool long long __a, __vector double __b) { 7083 return (__vector double)~((__vector unsigned long long)__a | 7084 (__vector unsigned long long)__b); 7085 } 7086 7087 // This prototype is deprecated. 7088 static inline __ATTRS_o_ai __vector double 7089 vec_nor(__vector double __a, __vector __bool long long __b) { 7090 return (__vector double)~((__vector unsigned long long)__a | 7091 (__vector unsigned long long)__b); 7092 } 7093 7094 /*-- vec_orc ----------------------------------------------------------------*/ 7095 7096 #if __ARCH__ >= 12 7097 static inline __ATTRS_o_ai __vector __bool char 7098 vec_orc(__vector __bool char __a, __vector __bool char __b) { 7099 return __a | ~__b; 7100 } 7101 7102 static inline __ATTRS_o_ai __vector signed char 7103 vec_orc(__vector signed char __a, __vector signed char __b) { 7104 return __a | ~__b; 7105 } 7106 7107 static inline __ATTRS_o_ai __vector unsigned char 7108 vec_orc(__vector unsigned char __a, __vector unsigned char __b) { 7109 return __a | ~__b; 7110 } 7111 7112 static inline __ATTRS_o_ai __vector __bool short 7113 vec_orc(__vector __bool short __a, __vector __bool short __b) { 7114 return __a | ~__b; 7115 } 7116 7117 static inline __ATTRS_o_ai __vector signed short 7118 vec_orc(__vector signed short __a, __vector signed short __b) { 7119 return __a | ~__b; 7120 } 7121 7122 static inline __ATTRS_o_ai __vector unsigned short 7123 vec_orc(__vector unsigned short __a, __vector unsigned short __b) { 7124 return __a | ~__b; 7125 } 7126 7127 static inline __ATTRS_o_ai __vector __bool int 7128 vec_orc(__vector __bool int __a, __vector __bool int __b) { 7129 return __a | ~__b; 7130 } 7131 7132 static inline __ATTRS_o_ai __vector signed int 7133 vec_orc(__vector signed int __a, __vector signed int __b) { 7134 return __a | ~__b; 7135 } 7136 7137 static inline __ATTRS_o_ai __vector unsigned int 7138 vec_orc(__vector unsigned int __a, __vector unsigned int __b) { 7139 return __a | ~__b; 7140 } 7141 7142 static inline __ATTRS_o_ai __vector __bool long long 7143 vec_orc(__vector __bool long long __a, __vector __bool long long __b) { 7144 return __a | ~__b; 7145 } 7146 7147 static inline __ATTRS_o_ai __vector signed long long 7148 vec_orc(__vector signed long long __a, __vector signed long long __b) { 7149 return __a | ~__b; 7150 } 7151 7152 static inline __ATTRS_o_ai __vector unsigned long long 7153 vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) { 7154 return __a | ~__b; 7155 } 7156 7157 static inline __ATTRS_o_ai __vector __bool __int128 7158 vec_orc(__vector __bool __int128 __a, __vector __bool __int128 __b) { 7159 return __a | ~__b; 7160 } 7161 7162 static inline __ATTRS_o_ai __vector signed __int128 7163 vec_orc(__vector signed __int128 __a, __vector signed __int128 __b) { 7164 return __a | ~__b; 7165 } 7166 7167 static inline __ATTRS_o_ai __vector unsigned __int128 7168 vec_orc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 7169 return __a | ~__b; 7170 } 7171 7172 static inline __ATTRS_o_ai __vector float 7173 vec_orc(__vector float __a, __vector float __b) { 7174 return (__vector float)((__vector unsigned int)__a | 7175 ~(__vector unsigned int)__b); 7176 } 7177 7178 static inline __ATTRS_o_ai __vector double 7179 vec_orc(__vector double __a, __vector double __b) { 7180 return (__vector double)((__vector unsigned long long)__a | 7181 ~(__vector unsigned long long)__b); 7182 } 7183 #endif 7184 7185 /*-- vec_nand ---------------------------------------------------------------*/ 7186 7187 #if __ARCH__ >= 12 7188 static inline __ATTRS_o_ai __vector __bool char 7189 vec_nand(__vector __bool char __a, __vector __bool char __b) { 7190 return ~(__a & __b); 7191 } 7192 7193 static inline __ATTRS_o_ai __vector signed char 7194 vec_nand(__vector signed char __a, __vector signed char __b) { 7195 return ~(__a & __b); 7196 } 7197 7198 static inline __ATTRS_o_ai __vector unsigned char 7199 vec_nand(__vector unsigned char __a, __vector unsigned char __b) { 7200 return ~(__a & __b); 7201 } 7202 7203 static inline __ATTRS_o_ai __vector __bool short 7204 vec_nand(__vector __bool short __a, __vector __bool short __b) { 7205 return ~(__a & __b); 7206 } 7207 7208 static inline __ATTRS_o_ai __vector signed short 7209 vec_nand(__vector signed short __a, __vector signed short __b) { 7210 return ~(__a & __b); 7211 } 7212 7213 static inline __ATTRS_o_ai __vector unsigned short 7214 vec_nand(__vector unsigned short __a, __vector unsigned short __b) { 7215 return ~(__a & __b); 7216 } 7217 7218 static inline __ATTRS_o_ai __vector __bool int 7219 vec_nand(__vector __bool int __a, __vector __bool int __b) { 7220 return ~(__a & __b); 7221 } 7222 7223 static inline __ATTRS_o_ai __vector signed int 7224 vec_nand(__vector signed int __a, __vector signed int __b) { 7225 return ~(__a & __b); 7226 } 7227 7228 static inline __ATTRS_o_ai __vector unsigned int 7229 vec_nand(__vector unsigned int __a, __vector unsigned int __b) { 7230 return ~(__a & __b); 7231 } 7232 7233 static inline __ATTRS_o_ai __vector __bool long long 7234 vec_nand(__vector __bool long long __a, __vector __bool long long __b) { 7235 return ~(__a & __b); 7236 } 7237 7238 static inline __ATTRS_o_ai __vector signed long long 7239 vec_nand(__vector signed long long __a, __vector signed long long __b) { 7240 return ~(__a & __b); 7241 } 7242 7243 static inline __ATTRS_o_ai __vector unsigned long long 7244 vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) { 7245 return ~(__a & __b); 7246 } 7247 7248 static inline __ATTRS_o_ai __vector __bool __int128 7249 vec_nand(__vector __bool __int128 __a, __vector __bool __int128 __b) { 7250 return ~(__a & __b); 7251 } 7252 7253 static inline __ATTRS_o_ai __vector signed __int128 7254 vec_nand(__vector signed __int128 __a, __vector signed __int128 __b) { 7255 return ~(__a & __b); 7256 } 7257 7258 static inline __ATTRS_o_ai __vector unsigned __int128 7259 vec_nand(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 7260 return ~(__a & __b); 7261 } 7262 7263 static inline __ATTRS_o_ai __vector float 7264 vec_nand(__vector float __a, __vector float __b) { 7265 return (__vector float)~((__vector unsigned int)__a & 7266 (__vector unsigned int)__b); 7267 } 7268 7269 static inline __ATTRS_o_ai __vector double 7270 vec_nand(__vector double __a, __vector double __b) { 7271 return (__vector double)~((__vector unsigned long long)__a & 7272 (__vector unsigned long long)__b); 7273 } 7274 #endif 7275 7276 /*-- vec_eqv ----------------------------------------------------------------*/ 7277 7278 #if __ARCH__ >= 12 7279 static inline __ATTRS_o_ai __vector __bool char 7280 vec_eqv(__vector __bool char __a, __vector __bool char __b) { 7281 return ~(__a ^ __b); 7282 } 7283 7284 static inline __ATTRS_o_ai __vector signed char 7285 vec_eqv(__vector signed char __a, __vector signed char __b) { 7286 return ~(__a ^ __b); 7287 } 7288 7289 static inline __ATTRS_o_ai __vector unsigned char 7290 vec_eqv(__vector unsigned char __a, __vector unsigned char __b) { 7291 return ~(__a ^ __b); 7292 } 7293 7294 static inline __ATTRS_o_ai __vector __bool short 7295 vec_eqv(__vector __bool short __a, __vector __bool short __b) { 7296 return ~(__a ^ __b); 7297 } 7298 7299 static inline __ATTRS_o_ai __vector signed short 7300 vec_eqv(__vector signed short __a, __vector signed short __b) { 7301 return ~(__a ^ __b); 7302 } 7303 7304 static inline __ATTRS_o_ai __vector unsigned short 7305 vec_eqv(__vector unsigned short __a, __vector unsigned short __b) { 7306 return ~(__a ^ __b); 7307 } 7308 7309 static inline __ATTRS_o_ai __vector __bool int 7310 vec_eqv(__vector __bool int __a, __vector __bool int __b) { 7311 return ~(__a ^ __b); 7312 } 7313 7314 static inline __ATTRS_o_ai __vector signed int 7315 vec_eqv(__vector signed int __a, __vector signed int __b) { 7316 return ~(__a ^ __b); 7317 } 7318 7319 static inline __ATTRS_o_ai __vector unsigned int 7320 vec_eqv(__vector unsigned int __a, __vector unsigned int __b) { 7321 return ~(__a ^ __b); 7322 } 7323 7324 static inline __ATTRS_o_ai __vector __bool long long 7325 vec_eqv(__vector __bool long long __a, __vector __bool long long __b) { 7326 return ~(__a ^ __b); 7327 } 7328 7329 static inline __ATTRS_o_ai __vector signed long long 7330 vec_eqv(__vector signed long long __a, __vector signed long long __b) { 7331 return ~(__a ^ __b); 7332 } 7333 7334 static inline __ATTRS_o_ai __vector unsigned long long 7335 vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) { 7336 return ~(__a ^ __b); 7337 } 7338 7339 static inline __ATTRS_o_ai __vector __bool __int128 7340 vec_eqv(__vector __bool __int128 __a, __vector __bool __int128 __b) { 7341 return ~(__a ^ __b); 7342 } 7343 7344 static inline __ATTRS_o_ai __vector signed __int128 7345 vec_eqv(__vector signed __int128 __a, __vector signed __int128 __b) { 7346 return ~(__a ^ __b); 7347 } 7348 7349 static inline __ATTRS_o_ai __vector unsigned __int128 7350 vec_eqv(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 7351 return ~(__a ^ __b); 7352 } 7353 7354 static inline __ATTRS_o_ai __vector float 7355 vec_eqv(__vector float __a, __vector float __b) { 7356 return (__vector float)~((__vector unsigned int)__a ^ 7357 (__vector unsigned int)__b); 7358 } 7359 7360 static inline __ATTRS_o_ai __vector double 7361 vec_eqv(__vector double __a, __vector double __b) { 7362 return (__vector double)~((__vector unsigned long long)__a ^ 7363 (__vector unsigned long long)__b); 7364 } 7365 #endif 7366 7367 /*-- vec_evaluate -----------------------------------------------------------*/ 7368 7369 #if __ARCH__ >= 15 7370 extern __ATTRS_o __vector signed char 7371 vec_evaluate(__vector signed char __a, __vector signed char __b, 7372 __vector signed char __c, unsigned char __d) 7373 __constant(__d); 7374 7375 extern __ATTRS_o __vector unsigned char 7376 vec_evaluate(__vector unsigned char __a, __vector unsigned char __b, 7377 __vector unsigned char __c, unsigned char __d) 7378 __constant(__d); 7379 7380 extern __ATTRS_o __vector __bool char 7381 vec_evaluate(__vector __bool char __a, __vector __bool char __b, 7382 __vector __bool char __c, unsigned char __d) 7383 __constant(__d); 7384 7385 extern __ATTRS_o __vector signed short 7386 vec_evaluate(__vector signed short __a, __vector signed short __b, 7387 __vector signed short __c, unsigned char __d) 7388 __constant(__d); 7389 7390 extern __ATTRS_o __vector unsigned short 7391 vec_evaluate(__vector unsigned short __a, __vector unsigned short __b, 7392 __vector unsigned short __c, unsigned char __d) 7393 __constant(__d); 7394 7395 extern __ATTRS_o __vector __bool short 7396 vec_evaluate(__vector __bool short __a, __vector __bool short __b, 7397 __vector __bool short __c, unsigned char __d) 7398 __constant(__d); 7399 7400 extern __ATTRS_o __vector signed int 7401 vec_evaluate(__vector signed int __a, __vector signed int __b, 7402 __vector signed int __c, unsigned char __d) 7403 __constant(__d); 7404 7405 extern __ATTRS_o __vector unsigned int 7406 vec_evaluate(__vector unsigned int __a, __vector unsigned int __b, 7407 __vector unsigned int __c, unsigned char __d) 7408 __constant(__d); 7409 7410 extern __ATTRS_o __vector __bool int 7411 vec_evaluate(__vector __bool int __a, __vector __bool int __b, 7412 __vector __bool int __c, unsigned char __d) 7413 __constant(__d); 7414 7415 extern __ATTRS_o __vector signed long long 7416 vec_evaluate(__vector signed long long __a, __vector signed long long __b, 7417 __vector signed long long __c, unsigned char __d) 7418 __constant(__d); 7419 7420 extern __ATTRS_o __vector unsigned long long 7421 vec_evaluate(__vector unsigned long long __a, __vector unsigned long long __b, 7422 __vector unsigned long long __c, unsigned char __d) 7423 __constant(__d); 7424 7425 extern __ATTRS_o __vector __bool long long 7426 vec_evaluate(__vector __bool long long __a, __vector __bool long long __b, 7427 __vector __bool long long __c, unsigned char __d) 7428 __constant(__d); 7429 7430 extern __ATTRS_o __vector signed __int128 7431 vec_evaluate(__vector signed __int128 __a, __vector signed __int128 __b, 7432 __vector signed __int128 __c, unsigned char __d) 7433 __constant(__d); 7434 7435 extern __ATTRS_o __vector unsigned __int128 7436 vec_evaluate(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 7437 __vector unsigned __int128 __c, unsigned char __d) 7438 __constant(__d); 7439 7440 extern __ATTRS_o __vector __bool __int128 7441 vec_evaluate(__vector __bool __int128 __a, __vector __bool __int128 __b, 7442 __vector __bool __int128 __c, unsigned char __d) 7443 __constant(__d); 7444 7445 #define vec_evaluate(A, B, C, D) \ 7446 ((__typeof__((vec_evaluate)((A), (B), (C), (D)))) \ 7447 __builtin_s390_veval((__vector unsigned char)(A), \ 7448 (__vector unsigned char)(B), \ 7449 (__vector unsigned char)(C), (D))) 7450 #endif 7451 7452 /*-- vec_cntlz --------------------------------------------------------------*/ 7453 7454 static inline __ATTRS_o_ai __vector unsigned char 7455 vec_cntlz(__vector signed char __a) { 7456 return __builtin_s390_vclzb((__vector unsigned char)__a); 7457 } 7458 7459 static inline __ATTRS_o_ai __vector unsigned char 7460 vec_cntlz(__vector unsigned char __a) { 7461 return __builtin_s390_vclzb(__a); 7462 } 7463 7464 static inline __ATTRS_o_ai __vector unsigned short 7465 vec_cntlz(__vector signed short __a) { 7466 return __builtin_s390_vclzh((__vector unsigned short)__a); 7467 } 7468 7469 static inline __ATTRS_o_ai __vector unsigned short 7470 vec_cntlz(__vector unsigned short __a) { 7471 return __builtin_s390_vclzh(__a); 7472 } 7473 7474 static inline __ATTRS_o_ai __vector unsigned int 7475 vec_cntlz(__vector signed int __a) { 7476 return __builtin_s390_vclzf((__vector unsigned int)__a); 7477 } 7478 7479 static inline __ATTRS_o_ai __vector unsigned int 7480 vec_cntlz(__vector unsigned int __a) { 7481 return __builtin_s390_vclzf(__a); 7482 } 7483 7484 static inline __ATTRS_o_ai __vector unsigned long long 7485 vec_cntlz(__vector signed long long __a) { 7486 return __builtin_s390_vclzg((__vector unsigned long long)__a); 7487 } 7488 7489 static inline __ATTRS_o_ai __vector unsigned long long 7490 vec_cntlz(__vector unsigned long long __a) { 7491 return __builtin_s390_vclzg(__a); 7492 } 7493 7494 #if __ARCH__ >= 15 7495 static inline __ATTRS_o_ai __vector unsigned __int128 7496 vec_cntlz(__vector signed __int128 __a) { 7497 return (__vector unsigned __int128) 7498 __builtin_s390_vclzq((unsigned __int128)__a); 7499 } 7500 7501 static inline __ATTRS_o_ai __vector unsigned __int128 7502 vec_cntlz(__vector unsigned __int128 __a) { 7503 return (__vector unsigned __int128) 7504 __builtin_s390_vclzq((unsigned __int128)__a); 7505 } 7506 #endif 7507 7508 /*-- vec_cnttz --------------------------------------------------------------*/ 7509 7510 static inline __ATTRS_o_ai __vector unsigned char 7511 vec_cnttz(__vector signed char __a) { 7512 return __builtin_s390_vctzb((__vector unsigned char)__a); 7513 } 7514 7515 static inline __ATTRS_o_ai __vector unsigned char 7516 vec_cnttz(__vector unsigned char __a) { 7517 return __builtin_s390_vctzb(__a); 7518 } 7519 7520 static inline __ATTRS_o_ai __vector unsigned short 7521 vec_cnttz(__vector signed short __a) { 7522 return __builtin_s390_vctzh((__vector unsigned short)__a); 7523 } 7524 7525 static inline __ATTRS_o_ai __vector unsigned short 7526 vec_cnttz(__vector unsigned short __a) { 7527 return __builtin_s390_vctzh(__a); 7528 } 7529 7530 static inline __ATTRS_o_ai __vector unsigned int 7531 vec_cnttz(__vector signed int __a) { 7532 return __builtin_s390_vctzf((__vector unsigned int)__a); 7533 } 7534 7535 static inline __ATTRS_o_ai __vector unsigned int 7536 vec_cnttz(__vector unsigned int __a) { 7537 return __builtin_s390_vctzf(__a); 7538 } 7539 7540 static inline __ATTRS_o_ai __vector unsigned long long 7541 vec_cnttz(__vector signed long long __a) { 7542 return __builtin_s390_vctzg((__vector unsigned long long)__a); 7543 } 7544 7545 static inline __ATTRS_o_ai __vector unsigned long long 7546 vec_cnttz(__vector unsigned long long __a) { 7547 return __builtin_s390_vctzg(__a); 7548 } 7549 7550 #if __ARCH__ >= 15 7551 static inline __ATTRS_o_ai __vector unsigned __int128 7552 vec_cnttz(__vector signed __int128 __a) { 7553 return (__vector unsigned __int128) 7554 __builtin_s390_vctzq((unsigned __int128)__a); 7555 } 7556 7557 static inline __ATTRS_o_ai __vector unsigned __int128 7558 vec_cnttz(__vector unsigned __int128 __a) { 7559 return (__vector unsigned __int128) 7560 __builtin_s390_vctzq((unsigned __int128)__a); 7561 } 7562 #endif 7563 7564 /*-- vec_popcnt -------------------------------------------------------------*/ 7565 7566 static inline __ATTRS_o_ai __vector unsigned char 7567 vec_popcnt(__vector signed char __a) { 7568 return __builtin_elementwise_popcount((__vector unsigned char)__a); 7569 } 7570 7571 static inline __ATTRS_o_ai __vector unsigned char 7572 vec_popcnt(__vector unsigned char __a) { 7573 return __builtin_elementwise_popcount(__a); 7574 } 7575 7576 static inline __ATTRS_o_ai __vector unsigned short 7577 vec_popcnt(__vector signed short __a) { 7578 return __builtin_elementwise_popcount((__vector unsigned short)__a); 7579 } 7580 7581 static inline __ATTRS_o_ai __vector unsigned short 7582 vec_popcnt(__vector unsigned short __a) { 7583 return __builtin_elementwise_popcount(__a); 7584 } 7585 7586 static inline __ATTRS_o_ai __vector unsigned int 7587 vec_popcnt(__vector signed int __a) { 7588 return __builtin_elementwise_popcount((__vector unsigned int)__a); 7589 } 7590 7591 static inline __ATTRS_o_ai __vector unsigned int 7592 vec_popcnt(__vector unsigned int __a) { 7593 return __builtin_elementwise_popcount(__a); 7594 } 7595 7596 static inline __ATTRS_o_ai __vector unsigned long long 7597 vec_popcnt(__vector signed long long __a) { 7598 return __builtin_elementwise_popcount((__vector unsigned long long)__a); 7599 } 7600 7601 static inline __ATTRS_o_ai __vector unsigned long long 7602 vec_popcnt(__vector unsigned long long __a) { 7603 return __builtin_elementwise_popcount(__a); 7604 } 7605 7606 /*-- vec_rl -----------------------------------------------------------------*/ 7607 7608 static inline __ATTRS_o_ai __vector signed char 7609 vec_rl(__vector signed char __a, __vector unsigned char __b) { 7610 return (__vector signed char)__builtin_s390_verllvb( 7611 (__vector unsigned char)__a, __b); 7612 } 7613 7614 static inline __ATTRS_o_ai __vector unsigned char 7615 vec_rl(__vector unsigned char __a, __vector unsigned char __b) { 7616 return __builtin_s390_verllvb(__a, __b); 7617 } 7618 7619 static inline __ATTRS_o_ai __vector signed short 7620 vec_rl(__vector signed short __a, __vector unsigned short __b) { 7621 return (__vector signed short)__builtin_s390_verllvh( 7622 (__vector unsigned short)__a, __b); 7623 } 7624 7625 static inline __ATTRS_o_ai __vector unsigned short 7626 vec_rl(__vector unsigned short __a, __vector unsigned short __b) { 7627 return __builtin_s390_verllvh(__a, __b); 7628 } 7629 7630 static inline __ATTRS_o_ai __vector signed int 7631 vec_rl(__vector signed int __a, __vector unsigned int __b) { 7632 return (__vector signed int)__builtin_s390_verllvf( 7633 (__vector unsigned int)__a, __b); 7634 } 7635 7636 static inline __ATTRS_o_ai __vector unsigned int 7637 vec_rl(__vector unsigned int __a, __vector unsigned int __b) { 7638 return __builtin_s390_verllvf(__a, __b); 7639 } 7640 7641 static inline __ATTRS_o_ai __vector signed long long 7642 vec_rl(__vector signed long long __a, __vector unsigned long long __b) { 7643 return (__vector signed long long)__builtin_s390_verllvg( 7644 (__vector unsigned long long)__a, __b); 7645 } 7646 7647 static inline __ATTRS_o_ai __vector unsigned long long 7648 vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) { 7649 return __builtin_s390_verllvg(__a, __b); 7650 } 7651 7652 /*-- vec_rli ----------------------------------------------------------------*/ 7653 7654 static inline __ATTRS_o_ai __vector signed char 7655 vec_rli(__vector signed char __a, unsigned long __b) { 7656 return (__vector signed char)__builtin_s390_verllb( 7657 (__vector unsigned char)__a, (unsigned char)__b); 7658 } 7659 7660 static inline __ATTRS_o_ai __vector unsigned char 7661 vec_rli(__vector unsigned char __a, unsigned long __b) { 7662 return __builtin_s390_verllb(__a, (unsigned char)__b); 7663 } 7664 7665 static inline __ATTRS_o_ai __vector signed short 7666 vec_rli(__vector signed short __a, unsigned long __b) { 7667 return (__vector signed short)__builtin_s390_verllh( 7668 (__vector unsigned short)__a, (unsigned char)__b); 7669 } 7670 7671 static inline __ATTRS_o_ai __vector unsigned short 7672 vec_rli(__vector unsigned short __a, unsigned long __b) { 7673 return __builtin_s390_verllh(__a, (unsigned char)__b); 7674 } 7675 7676 static inline __ATTRS_o_ai __vector signed int 7677 vec_rli(__vector signed int __a, unsigned long __b) { 7678 return (__vector signed int)__builtin_s390_verllf( 7679 (__vector unsigned int)__a, (unsigned char)__b); 7680 } 7681 7682 static inline __ATTRS_o_ai __vector unsigned int 7683 vec_rli(__vector unsigned int __a, unsigned long __b) { 7684 return __builtin_s390_verllf(__a, (unsigned char)__b); 7685 } 7686 7687 static inline __ATTRS_o_ai __vector signed long long 7688 vec_rli(__vector signed long long __a, unsigned long __b) { 7689 return (__vector signed long long)__builtin_s390_verllg( 7690 (__vector unsigned long long)__a, (unsigned char)__b); 7691 } 7692 7693 static inline __ATTRS_o_ai __vector unsigned long long 7694 vec_rli(__vector unsigned long long __a, unsigned long __b) { 7695 return __builtin_s390_verllg(__a, (unsigned char)__b); 7696 } 7697 7698 /*-- vec_rl_mask ------------------------------------------------------------*/ 7699 7700 extern __ATTRS_o __vector signed char 7701 vec_rl_mask(__vector signed char __a, __vector unsigned char __b, 7702 unsigned char __c) __constant(__c); 7703 7704 extern __ATTRS_o __vector unsigned char 7705 vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b, 7706 unsigned char __c) __constant(__c); 7707 7708 extern __ATTRS_o __vector signed short 7709 vec_rl_mask(__vector signed short __a, __vector unsigned short __b, 7710 unsigned char __c) __constant(__c); 7711 7712 extern __ATTRS_o __vector unsigned short 7713 vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b, 7714 unsigned char __c) __constant(__c); 7715 7716 extern __ATTRS_o __vector signed int 7717 vec_rl_mask(__vector signed int __a, __vector unsigned int __b, 7718 unsigned char __c) __constant(__c); 7719 7720 extern __ATTRS_o __vector unsigned int 7721 vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b, 7722 unsigned char __c) __constant(__c); 7723 7724 extern __ATTRS_o __vector signed long long 7725 vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b, 7726 unsigned char __c) __constant(__c); 7727 7728 extern __ATTRS_o __vector unsigned long long 7729 vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b, 7730 unsigned char __c) __constant(__c); 7731 7732 #define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \ 7733 __extension__ ({ \ 7734 __vector unsigned char __res; \ 7735 __vector unsigned char __x = (__vector unsigned char)(X); \ 7736 __vector unsigned char __y = (__vector unsigned char)(Y); \ 7737 switch (sizeof ((X)[0])) { \ 7738 case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \ 7739 (__vector unsigned char)__x, (__vector unsigned char)__x, \ 7740 (__vector unsigned char)__y, (Z)); break; \ 7741 case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \ 7742 (__vector unsigned short)__x, (__vector unsigned short)__x, \ 7743 (__vector unsigned short)__y, (Z)); break; \ 7744 case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \ 7745 (__vector unsigned int)__x, (__vector unsigned int)__x, \ 7746 (__vector unsigned int)__y, (Z)); break; \ 7747 default: __res = (__vector unsigned char) __builtin_s390_verimg( \ 7748 (__vector unsigned long long)__x, (__vector unsigned long long)__x, \ 7749 (__vector unsigned long long)__y, (Z)); break; \ 7750 } __res; })) 7751 7752 /*-- vec_sll ----------------------------------------------------------------*/ 7753 7754 static inline __ATTRS_o_ai __vector signed char 7755 vec_sll(__vector signed char __a, __vector unsigned char __b) { 7756 return (__vector signed char)__builtin_s390_vsl( 7757 (__vector unsigned char)__a, __b); 7758 } 7759 7760 // This prototype is deprecated. 7761 static inline __ATTRS_o_ai __vector signed char 7762 vec_sll(__vector signed char __a, __vector unsigned short __b) { 7763 return (__vector signed char)__builtin_s390_vsl( 7764 (__vector unsigned char)__a, (__vector unsigned char)__b); 7765 } 7766 7767 // This prototype is deprecated. 7768 static inline __ATTRS_o_ai __vector signed char 7769 vec_sll(__vector signed char __a, __vector unsigned int __b) { 7770 return (__vector signed char)__builtin_s390_vsl( 7771 (__vector unsigned char)__a, (__vector unsigned char)__b); 7772 } 7773 7774 // This prototype is deprecated. 7775 static inline __ATTRS_o_ai __vector __bool char 7776 vec_sll(__vector __bool char __a, __vector unsigned char __b) { 7777 return (__vector __bool char)__builtin_s390_vsl( 7778 (__vector unsigned char)__a, __b); 7779 } 7780 7781 // This prototype is deprecated. 7782 static inline __ATTRS_o_ai __vector __bool char 7783 vec_sll(__vector __bool char __a, __vector unsigned short __b) { 7784 return (__vector __bool char)__builtin_s390_vsl( 7785 (__vector unsigned char)__a, (__vector unsigned char)__b); 7786 } 7787 7788 // This prototype is deprecated. 7789 static inline __ATTRS_o_ai __vector __bool char 7790 vec_sll(__vector __bool char __a, __vector unsigned int __b) { 7791 return (__vector __bool char)__builtin_s390_vsl( 7792 (__vector unsigned char)__a, (__vector unsigned char)__b); 7793 } 7794 7795 static inline __ATTRS_o_ai __vector unsigned char 7796 vec_sll(__vector unsigned char __a, __vector unsigned char __b) { 7797 return __builtin_s390_vsl(__a, __b); 7798 } 7799 7800 // This prototype is deprecated. 7801 static inline __ATTRS_o_ai __vector unsigned char 7802 vec_sll(__vector unsigned char __a, __vector unsigned short __b) { 7803 return __builtin_s390_vsl(__a, (__vector unsigned char)__b); 7804 } 7805 7806 // This prototype is deprecated. 7807 static inline __ATTRS_o_ai __vector unsigned char 7808 vec_sll(__vector unsigned char __a, __vector unsigned int __b) { 7809 return __builtin_s390_vsl(__a, (__vector unsigned char)__b); 7810 } 7811 7812 static inline __ATTRS_o_ai __vector signed short 7813 vec_sll(__vector signed short __a, __vector unsigned char __b) { 7814 return (__vector signed short)__builtin_s390_vsl( 7815 (__vector unsigned char)__a, __b); 7816 } 7817 7818 // This prototype is deprecated. 7819 static inline __ATTRS_o_ai __vector signed short 7820 vec_sll(__vector signed short __a, __vector unsigned short __b) { 7821 return (__vector signed short)__builtin_s390_vsl( 7822 (__vector unsigned char)__a, (__vector unsigned char)__b); 7823 } 7824 7825 // This prototype is deprecated. 7826 static inline __ATTRS_o_ai __vector signed short 7827 vec_sll(__vector signed short __a, __vector unsigned int __b) { 7828 return (__vector signed short)__builtin_s390_vsl( 7829 (__vector unsigned char)__a, (__vector unsigned char)__b); 7830 } 7831 7832 // This prototype is deprecated. 7833 static inline __ATTRS_o_ai __vector __bool short 7834 vec_sll(__vector __bool short __a, __vector unsigned char __b) { 7835 return (__vector __bool short)__builtin_s390_vsl( 7836 (__vector unsigned char)__a, __b); 7837 } 7838 7839 // This prototype is deprecated. 7840 static inline __ATTRS_o_ai __vector __bool short 7841 vec_sll(__vector __bool short __a, __vector unsigned short __b) { 7842 return (__vector __bool short)__builtin_s390_vsl( 7843 (__vector unsigned char)__a, (__vector unsigned char)__b); 7844 } 7845 7846 // This prototype is deprecated. 7847 static inline __ATTRS_o_ai __vector __bool short 7848 vec_sll(__vector __bool short __a, __vector unsigned int __b) { 7849 return (__vector __bool short)__builtin_s390_vsl( 7850 (__vector unsigned char)__a, (__vector unsigned char)__b); 7851 } 7852 7853 static inline __ATTRS_o_ai __vector unsigned short 7854 vec_sll(__vector unsigned short __a, __vector unsigned char __b) { 7855 return (__vector unsigned short)__builtin_s390_vsl( 7856 (__vector unsigned char)__a, __b); 7857 } 7858 7859 // This prototype is deprecated. 7860 static inline __ATTRS_o_ai __vector unsigned short 7861 vec_sll(__vector unsigned short __a, __vector unsigned short __b) { 7862 return (__vector unsigned short)__builtin_s390_vsl( 7863 (__vector unsigned char)__a, (__vector unsigned char)__b); 7864 } 7865 7866 // This prototype is deprecated. 7867 static inline __ATTRS_o_ai __vector unsigned short 7868 vec_sll(__vector unsigned short __a, __vector unsigned int __b) { 7869 return (__vector unsigned short)__builtin_s390_vsl( 7870 (__vector unsigned char)__a, (__vector unsigned char)__b); 7871 } 7872 7873 static inline __ATTRS_o_ai __vector signed int 7874 vec_sll(__vector signed int __a, __vector unsigned char __b) { 7875 return (__vector signed int)__builtin_s390_vsl( 7876 (__vector unsigned char)__a, __b); 7877 } 7878 7879 // This prototype is deprecated. 7880 static inline __ATTRS_o_ai __vector signed int 7881 vec_sll(__vector signed int __a, __vector unsigned short __b) { 7882 return (__vector signed int)__builtin_s390_vsl( 7883 (__vector unsigned char)__a, (__vector unsigned char)__b); 7884 } 7885 7886 // This prototype is deprecated. 7887 static inline __ATTRS_o_ai __vector signed int 7888 vec_sll(__vector signed int __a, __vector unsigned int __b) { 7889 return (__vector signed int)__builtin_s390_vsl( 7890 (__vector unsigned char)__a, (__vector unsigned char)__b); 7891 } 7892 7893 // This prototype is deprecated. 7894 static inline __ATTRS_o_ai __vector __bool int 7895 vec_sll(__vector __bool int __a, __vector unsigned char __b) { 7896 return (__vector __bool int)__builtin_s390_vsl( 7897 (__vector unsigned char)__a, __b); 7898 } 7899 7900 // This prototype is deprecated. 7901 static inline __ATTRS_o_ai __vector __bool int 7902 vec_sll(__vector __bool int __a, __vector unsigned short __b) { 7903 return (__vector __bool int)__builtin_s390_vsl( 7904 (__vector unsigned char)__a, (__vector unsigned char)__b); 7905 } 7906 7907 // This prototype is deprecated. 7908 static inline __ATTRS_o_ai __vector __bool int 7909 vec_sll(__vector __bool int __a, __vector unsigned int __b) { 7910 return (__vector __bool int)__builtin_s390_vsl( 7911 (__vector unsigned char)__a, (__vector unsigned char)__b); 7912 } 7913 7914 static inline __ATTRS_o_ai __vector unsigned int 7915 vec_sll(__vector unsigned int __a, __vector unsigned char __b) { 7916 return (__vector unsigned int)__builtin_s390_vsl( 7917 (__vector unsigned char)__a, __b); 7918 } 7919 7920 // This prototype is deprecated. 7921 static inline __ATTRS_o_ai __vector unsigned int 7922 vec_sll(__vector unsigned int __a, __vector unsigned short __b) { 7923 return (__vector unsigned int)__builtin_s390_vsl( 7924 (__vector unsigned char)__a, (__vector unsigned char)__b); 7925 } 7926 7927 // This prototype is deprecated. 7928 static inline __ATTRS_o_ai __vector unsigned int 7929 vec_sll(__vector unsigned int __a, __vector unsigned int __b) { 7930 return (__vector unsigned int)__builtin_s390_vsl( 7931 (__vector unsigned char)__a, (__vector unsigned char)__b); 7932 } 7933 7934 static inline __ATTRS_o_ai __vector signed long long 7935 vec_sll(__vector signed long long __a, __vector unsigned char __b) { 7936 return (__vector signed long long)__builtin_s390_vsl( 7937 (__vector unsigned char)__a, __b); 7938 } 7939 7940 // This prototype is deprecated. 7941 static inline __ATTRS_o_ai __vector signed long long 7942 vec_sll(__vector signed long long __a, __vector unsigned short __b) { 7943 return (__vector signed long long)__builtin_s390_vsl( 7944 (__vector unsigned char)__a, (__vector unsigned char)__b); 7945 } 7946 7947 // This prototype is deprecated. 7948 static inline __ATTRS_o_ai __vector signed long long 7949 vec_sll(__vector signed long long __a, __vector unsigned int __b) { 7950 return (__vector signed long long)__builtin_s390_vsl( 7951 (__vector unsigned char)__a, (__vector unsigned char)__b); 7952 } 7953 7954 // This prototype is deprecated. 7955 static inline __ATTRS_o_ai __vector __bool long long 7956 vec_sll(__vector __bool long long __a, __vector unsigned char __b) { 7957 return (__vector __bool long long)__builtin_s390_vsl( 7958 (__vector unsigned char)__a, __b); 7959 } 7960 7961 // This prototype is deprecated. 7962 static inline __ATTRS_o_ai __vector __bool long long 7963 vec_sll(__vector __bool long long __a, __vector unsigned short __b) { 7964 return (__vector __bool long long)__builtin_s390_vsl( 7965 (__vector unsigned char)__a, (__vector unsigned char)__b); 7966 } 7967 7968 // This prototype is deprecated. 7969 static inline __ATTRS_o_ai __vector __bool long long 7970 vec_sll(__vector __bool long long __a, __vector unsigned int __b) { 7971 return (__vector __bool long long)__builtin_s390_vsl( 7972 (__vector unsigned char)__a, (__vector unsigned char)__b); 7973 } 7974 7975 static inline __ATTRS_o_ai __vector unsigned long long 7976 vec_sll(__vector unsigned long long __a, __vector unsigned char __b) { 7977 return (__vector unsigned long long)__builtin_s390_vsl( 7978 (__vector unsigned char)__a, __b); 7979 } 7980 7981 // This prototype is deprecated. 7982 static inline __ATTRS_o_ai __vector unsigned long long 7983 vec_sll(__vector unsigned long long __a, __vector unsigned short __b) { 7984 return (__vector unsigned long long)__builtin_s390_vsl( 7985 (__vector unsigned char)__a, (__vector unsigned char)__b); 7986 } 7987 7988 // This prototype is deprecated. 7989 static inline __ATTRS_o_ai __vector unsigned long long 7990 vec_sll(__vector unsigned long long __a, __vector unsigned int __b) { 7991 return (__vector unsigned long long)__builtin_s390_vsl( 7992 (__vector unsigned char)__a, (__vector unsigned char)__b); 7993 } 7994 7995 static inline __ATTRS_o_ai __vector signed __int128 7996 vec_sll(__vector signed __int128 __a, __vector unsigned char __b) { 7997 return (__vector signed __int128)__builtin_s390_vsl( 7998 (__vector unsigned char)__a, __b); 7999 } 8000 8001 static inline __ATTRS_o_ai __vector unsigned __int128 8002 vec_sll(__vector unsigned __int128 __a, __vector unsigned char __b) { 8003 return (__vector unsigned __int128)__builtin_s390_vsl( 8004 (__vector unsigned char)__a, __b); 8005 } 8006 8007 /*-- vec_slb ----------------------------------------------------------------*/ 8008 8009 // This prototype is deprecated. 8010 static inline __ATTRS_o_ai __vector signed char 8011 vec_slb(__vector signed char __a, __vector signed char __b) { 8012 return (__vector signed char)__builtin_s390_vslb( 8013 (__vector unsigned char)__a, (__vector unsigned char)__b); 8014 } 8015 8016 static inline __ATTRS_o_ai __vector signed char 8017 vec_slb(__vector signed char __a, __vector unsigned char __b) { 8018 return (__vector signed char)__builtin_s390_vslb( 8019 (__vector unsigned char)__a, __b); 8020 } 8021 8022 // This prototype is deprecated. 8023 static inline __ATTRS_o_ai __vector unsigned char 8024 vec_slb(__vector unsigned char __a, __vector signed char __b) { 8025 return __builtin_s390_vslb(__a, (__vector unsigned char)__b); 8026 } 8027 8028 static inline __ATTRS_o_ai __vector unsigned char 8029 vec_slb(__vector unsigned char __a, __vector unsigned char __b) { 8030 return __builtin_s390_vslb(__a, __b); 8031 } 8032 8033 // This prototype is deprecated. 8034 static inline __ATTRS_o_ai __vector signed short 8035 vec_slb(__vector signed short __a, __vector signed short __b) { 8036 return (__vector signed short)__builtin_s390_vslb( 8037 (__vector unsigned char)__a, (__vector unsigned char)__b); 8038 } 8039 8040 // This prototype is deprecated. 8041 static inline __ATTRS_o_ai __vector signed short 8042 vec_slb(__vector signed short __a, __vector unsigned short __b) { 8043 return (__vector signed short)__builtin_s390_vslb( 8044 (__vector unsigned char)__a, (__vector unsigned char)__b); 8045 } 8046 8047 static inline __ATTRS_o_ai __vector signed short 8048 vec_slb(__vector signed short __a, __vector unsigned char __b) { 8049 return (__vector signed short)__builtin_s390_vslb( 8050 (__vector unsigned char)__a, __b); 8051 } 8052 8053 // This prototype is deprecated. 8054 static inline __ATTRS_o_ai __vector unsigned short 8055 vec_slb(__vector unsigned short __a, __vector signed short __b) { 8056 return (__vector unsigned short)__builtin_s390_vslb( 8057 (__vector unsigned char)__a, (__vector unsigned char)__b); 8058 } 8059 8060 // This prototype is deprecated. 8061 static inline __ATTRS_o_ai __vector unsigned short 8062 vec_slb(__vector unsigned short __a, __vector unsigned short __b) { 8063 return (__vector unsigned short)__builtin_s390_vslb( 8064 (__vector unsigned char)__a, (__vector unsigned char)__b); 8065 } 8066 8067 static inline __ATTRS_o_ai __vector unsigned short 8068 vec_slb(__vector unsigned short __a, __vector unsigned char __b) { 8069 return (__vector unsigned short)__builtin_s390_vslb( 8070 (__vector unsigned char)__a, __b); 8071 } 8072 8073 // This prototype is deprecated. 8074 static inline __ATTRS_o_ai __vector signed int 8075 vec_slb(__vector signed int __a, __vector signed int __b) { 8076 return (__vector signed int)__builtin_s390_vslb( 8077 (__vector unsigned char)__a, (__vector unsigned char)__b); 8078 } 8079 8080 // This prototype is deprecated. 8081 static inline __ATTRS_o_ai __vector signed int 8082 vec_slb(__vector signed int __a, __vector unsigned int __b) { 8083 return (__vector signed int)__builtin_s390_vslb( 8084 (__vector unsigned char)__a, (__vector unsigned char)__b); 8085 } 8086 8087 static inline __ATTRS_o_ai __vector signed int 8088 vec_slb(__vector signed int __a, __vector unsigned char __b) { 8089 return (__vector signed int)__builtin_s390_vslb( 8090 (__vector unsigned char)__a, __b); 8091 } 8092 8093 // This prototype is deprecated. 8094 static inline __ATTRS_o_ai __vector unsigned int 8095 vec_slb(__vector unsigned int __a, __vector signed int __b) { 8096 return (__vector unsigned int)__builtin_s390_vslb( 8097 (__vector unsigned char)__a, (__vector unsigned char)__b); 8098 } 8099 8100 // This prototype is deprecated. 8101 static inline __ATTRS_o_ai __vector unsigned int 8102 vec_slb(__vector unsigned int __a, __vector unsigned int __b) { 8103 return (__vector unsigned int)__builtin_s390_vslb( 8104 (__vector unsigned char)__a, (__vector unsigned char)__b); 8105 } 8106 8107 static inline __ATTRS_o_ai __vector unsigned int 8108 vec_slb(__vector unsigned int __a, __vector unsigned char __b) { 8109 return (__vector unsigned int)__builtin_s390_vslb( 8110 (__vector unsigned char)__a, __b); 8111 } 8112 8113 // This prototype is deprecated. 8114 static inline __ATTRS_o_ai __vector signed long long 8115 vec_slb(__vector signed long long __a, __vector signed long long __b) { 8116 return (__vector signed long long)__builtin_s390_vslb( 8117 (__vector unsigned char)__a, (__vector unsigned char)__b); 8118 } 8119 8120 // This prototype is deprecated. 8121 static inline __ATTRS_o_ai __vector signed long long 8122 vec_slb(__vector signed long long __a, __vector unsigned long long __b) { 8123 return (__vector signed long long)__builtin_s390_vslb( 8124 (__vector unsigned char)__a, (__vector unsigned char)__b); 8125 } 8126 8127 static inline __ATTRS_o_ai __vector signed long long 8128 vec_slb(__vector signed long long __a, __vector unsigned char __b) { 8129 return (__vector signed long long)__builtin_s390_vslb( 8130 (__vector unsigned char)__a, __b); 8131 } 8132 8133 // This prototype is deprecated. 8134 static inline __ATTRS_o_ai __vector unsigned long long 8135 vec_slb(__vector unsigned long long __a, __vector signed long long __b) { 8136 return (__vector unsigned long long)__builtin_s390_vslb( 8137 (__vector unsigned char)__a, (__vector unsigned char)__b); 8138 } 8139 8140 // This prototype is deprecated. 8141 static inline __ATTRS_o_ai __vector unsigned long long 8142 vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) { 8143 return (__vector unsigned long long)__builtin_s390_vslb( 8144 (__vector unsigned char)__a, (__vector unsigned char)__b); 8145 } 8146 8147 static inline __ATTRS_o_ai __vector unsigned long long 8148 vec_slb(__vector unsigned long long __a, __vector unsigned char __b) { 8149 return (__vector unsigned long long)__builtin_s390_vslb( 8150 (__vector unsigned char)__a, __b); 8151 } 8152 8153 static inline __ATTRS_o_ai __vector signed __int128 8154 vec_slb(__vector signed __int128 __a, __vector unsigned char __b) { 8155 return (__vector signed __int128)__builtin_s390_vslb( 8156 (__vector unsigned char)__a, __b); 8157 } 8158 8159 static inline __ATTRS_o_ai __vector unsigned __int128 8160 vec_slb(__vector unsigned __int128 __a, __vector unsigned char __b) { 8161 return (__vector unsigned __int128)__builtin_s390_vslb( 8162 (__vector unsigned char)__a, __b); 8163 } 8164 8165 #if __ARCH__ >= 12 8166 // This prototype is deprecated. 8167 static inline __ATTRS_o_ai __vector float 8168 vec_slb(__vector float __a, __vector signed int __b) { 8169 return (__vector float)__builtin_s390_vslb( 8170 (__vector unsigned char)__a, (__vector unsigned char)__b); 8171 } 8172 8173 // This prototype is deprecated. 8174 static inline __ATTRS_o_ai __vector float 8175 vec_slb(__vector float __a, __vector unsigned int __b) { 8176 return (__vector float)__builtin_s390_vslb( 8177 (__vector unsigned char)__a, (__vector unsigned char)__b); 8178 } 8179 8180 static inline __ATTRS_o_ai __vector float 8181 vec_slb(__vector float __a, __vector unsigned char __b) { 8182 return (__vector float)__builtin_s390_vslb( 8183 (__vector unsigned char)__a, __b); 8184 } 8185 #endif 8186 8187 // This prototype is deprecated. 8188 static inline __ATTRS_o_ai __vector double 8189 vec_slb(__vector double __a, __vector signed long long __b) { 8190 return (__vector double)__builtin_s390_vslb( 8191 (__vector unsigned char)__a, (__vector unsigned char)__b); 8192 } 8193 8194 // This prototype is deprecated. 8195 static inline __ATTRS_o_ai __vector double 8196 vec_slb(__vector double __a, __vector unsigned long long __b) { 8197 return (__vector double)__builtin_s390_vslb( 8198 (__vector unsigned char)__a, (__vector unsigned char)__b); 8199 } 8200 8201 static inline __ATTRS_o_ai __vector double 8202 vec_slb(__vector double __a, __vector unsigned char __b) { 8203 return (__vector double)__builtin_s390_vslb( 8204 (__vector unsigned char)__a, __b); 8205 } 8206 8207 /*-- vec_sld ----------------------------------------------------------------*/ 8208 8209 extern __ATTRS_o __vector signed char 8210 vec_sld(__vector signed char __a, __vector signed char __b, int __c) 8211 __constant_range(__c, 0, 15); 8212 8213 // This prototype is deprecated. 8214 extern __ATTRS_o __vector __bool char 8215 vec_sld(__vector __bool char __a, __vector __bool char __b, int __c) 8216 __constant_range(__c, 0, 15); 8217 8218 extern __ATTRS_o __vector unsigned char 8219 vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c) 8220 __constant_range(__c, 0, 15); 8221 8222 extern __ATTRS_o __vector signed short 8223 vec_sld(__vector signed short __a, __vector signed short __b, int __c) 8224 __constant_range(__c, 0, 15); 8225 8226 // This prototype is deprecated. 8227 extern __ATTRS_o __vector __bool short 8228 vec_sld(__vector __bool short __a, __vector __bool short __b, int __c) 8229 __constant_range(__c, 0, 15); 8230 8231 extern __ATTRS_o __vector unsigned short 8232 vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c) 8233 __constant_range(__c, 0, 15); 8234 8235 extern __ATTRS_o __vector signed int 8236 vec_sld(__vector signed int __a, __vector signed int __b, int __c) 8237 __constant_range(__c, 0, 15); 8238 8239 // This prototype is deprecated. 8240 extern __ATTRS_o __vector __bool int 8241 vec_sld(__vector __bool int __a, __vector __bool int __b, int __c) 8242 __constant_range(__c, 0, 15); 8243 8244 extern __ATTRS_o __vector unsigned int 8245 vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c) 8246 __constant_range(__c, 0, 15); 8247 8248 extern __ATTRS_o __vector signed long long 8249 vec_sld(__vector signed long long __a, __vector signed long long __b, int __c) 8250 __constant_range(__c, 0, 15); 8251 8252 // This prototype is deprecated. 8253 extern __ATTRS_o __vector __bool long long 8254 vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c) 8255 __constant_range(__c, 0, 15); 8256 8257 extern __ATTRS_o __vector unsigned long long 8258 vec_sld(__vector unsigned long long __a, __vector unsigned long long __b, 8259 int __c) 8260 __constant_range(__c, 0, 15); 8261 8262 extern __ATTRS_o __vector signed __int128 8263 vec_sld(__vector signed __int128 __a, __vector signed __int128 __b, int __c) 8264 __constant_range(__c, 0, 15); 8265 8266 extern __ATTRS_o __vector unsigned __int128 8267 vec_sld(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 8268 int __c) 8269 __constant_range(__c, 0, 15); 8270 8271 #if __ARCH__ >= 12 8272 extern __ATTRS_o __vector float 8273 vec_sld(__vector float __a, __vector float __b, int __c) 8274 __constant_range(__c, 0, 15); 8275 #endif 8276 8277 extern __ATTRS_o __vector double 8278 vec_sld(__vector double __a, __vector double __b, int __c) 8279 __constant_range(__c, 0, 15); 8280 8281 #define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \ 8282 __builtin_s390_vsldb((__vector unsigned char)(X), \ 8283 (__vector unsigned char)(Y), (Z))) 8284 8285 /*-- vec_sldw ---------------------------------------------------------------*/ 8286 8287 extern __ATTRS_o __vector signed char 8288 vec_sldw(__vector signed char __a, __vector signed char __b, int __c) 8289 __constant_range(__c, 0, 3); 8290 8291 extern __ATTRS_o __vector unsigned char 8292 vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c) 8293 __constant_range(__c, 0, 3); 8294 8295 extern __ATTRS_o __vector signed short 8296 vec_sldw(__vector signed short __a, __vector signed short __b, int __c) 8297 __constant_range(__c, 0, 3); 8298 8299 extern __ATTRS_o __vector unsigned short 8300 vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c) 8301 __constant_range(__c, 0, 3); 8302 8303 extern __ATTRS_o __vector signed int 8304 vec_sldw(__vector signed int __a, __vector signed int __b, int __c) 8305 __constant_range(__c, 0, 3); 8306 8307 extern __ATTRS_o __vector unsigned int 8308 vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c) 8309 __constant_range(__c, 0, 3); 8310 8311 extern __ATTRS_o __vector signed long long 8312 vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c) 8313 __constant_range(__c, 0, 3); 8314 8315 extern __ATTRS_o __vector unsigned long long 8316 vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b, 8317 int __c) 8318 __constant_range(__c, 0, 3); 8319 8320 extern __ATTRS_o __vector signed __int128 8321 vec_sldw(__vector signed __int128 __a, __vector signed __int128 __b, int __c) 8322 __constant_range(__c, 0, 3); 8323 8324 extern __ATTRS_o __vector unsigned __int128 8325 vec_sldw(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 8326 int __c) 8327 __constant_range(__c, 0, 3); 8328 8329 // This prototype is deprecated. 8330 extern __ATTRS_o __vector double 8331 vec_sldw(__vector double __a, __vector double __b, int __c) 8332 __constant_range(__c, 0, 3); 8333 8334 #define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \ 8335 __builtin_s390_vsldb((__vector unsigned char)(X), \ 8336 (__vector unsigned char)(Y), (Z) * 4)) 8337 8338 /*-- vec_sldb ---------------------------------------------------------------*/ 8339 8340 #if __ARCH__ >= 13 8341 8342 extern __ATTRS_o __vector signed char 8343 vec_sldb(__vector signed char __a, __vector signed char __b, int __c) 8344 __constant_range(__c, 0, 7); 8345 8346 extern __ATTRS_o __vector unsigned char 8347 vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c) 8348 __constant_range(__c, 0, 7); 8349 8350 extern __ATTRS_o __vector signed short 8351 vec_sldb(__vector signed short __a, __vector signed short __b, int __c) 8352 __constant_range(__c, 0, 7); 8353 8354 extern __ATTRS_o __vector unsigned short 8355 vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c) 8356 __constant_range(__c, 0, 7); 8357 8358 extern __ATTRS_o __vector signed int 8359 vec_sldb(__vector signed int __a, __vector signed int __b, int __c) 8360 __constant_range(__c, 0, 7); 8361 8362 extern __ATTRS_o __vector unsigned int 8363 vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c) 8364 __constant_range(__c, 0, 7); 8365 8366 extern __ATTRS_o __vector signed long long 8367 vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c) 8368 __constant_range(__c, 0, 7); 8369 8370 extern __ATTRS_o __vector unsigned long long 8371 vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b, 8372 int __c) 8373 __constant_range(__c, 0, 7); 8374 8375 extern __ATTRS_o __vector signed __int128 8376 vec_sldb(__vector signed __int128 __a, __vector signed __int128 __b, int __c) 8377 __constant_range(__c, 0, 7); 8378 8379 extern __ATTRS_o __vector unsigned __int128 8380 vec_sldb(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 8381 int __c) 8382 __constant_range(__c, 0, 7); 8383 8384 extern __ATTRS_o __vector float 8385 vec_sldb(__vector float __a, __vector float __b, int __c) 8386 __constant_range(__c, 0, 7); 8387 8388 extern __ATTRS_o __vector double 8389 vec_sldb(__vector double __a, __vector double __b, int __c) 8390 __constant_range(__c, 0, 7); 8391 8392 #define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \ 8393 __builtin_s390_vsld((__vector unsigned char)(X), \ 8394 (__vector unsigned char)(Y), (Z))) 8395 8396 #endif 8397 8398 /*-- vec_sral ---------------------------------------------------------------*/ 8399 8400 static inline __ATTRS_o_ai __vector signed char 8401 vec_sral(__vector signed char __a, __vector unsigned char __b) { 8402 return (__vector signed char)__builtin_s390_vsra( 8403 (__vector unsigned char)__a, __b); 8404 } 8405 8406 // This prototype is deprecated. 8407 static inline __ATTRS_o_ai __vector signed char 8408 vec_sral(__vector signed char __a, __vector unsigned short __b) { 8409 return (__vector signed char)__builtin_s390_vsra( 8410 (__vector unsigned char)__a, (__vector unsigned char)__b); 8411 } 8412 8413 // This prototype is deprecated. 8414 static inline __ATTRS_o_ai __vector signed char 8415 vec_sral(__vector signed char __a, __vector unsigned int __b) { 8416 return (__vector signed char)__builtin_s390_vsra( 8417 (__vector unsigned char)__a, (__vector unsigned char)__b); 8418 } 8419 8420 // This prototype is deprecated. 8421 static inline __ATTRS_o_ai __vector __bool char 8422 vec_sral(__vector __bool char __a, __vector unsigned char __b) { 8423 return (__vector __bool char)__builtin_s390_vsra( 8424 (__vector unsigned char)__a, __b); 8425 } 8426 8427 // This prototype is deprecated. 8428 static inline __ATTRS_o_ai __vector __bool char 8429 vec_sral(__vector __bool char __a, __vector unsigned short __b) { 8430 return (__vector __bool char)__builtin_s390_vsra( 8431 (__vector unsigned char)__a, (__vector unsigned char)__b); 8432 } 8433 8434 // This prototype is deprecated. 8435 static inline __ATTRS_o_ai __vector __bool char 8436 vec_sral(__vector __bool char __a, __vector unsigned int __b) { 8437 return (__vector __bool char)__builtin_s390_vsra( 8438 (__vector unsigned char)__a, (__vector unsigned char)__b); 8439 } 8440 8441 static inline __ATTRS_o_ai __vector unsigned char 8442 vec_sral(__vector unsigned char __a, __vector unsigned char __b) { 8443 return __builtin_s390_vsra(__a, __b); 8444 } 8445 8446 // This prototype is deprecated. 8447 static inline __ATTRS_o_ai __vector unsigned char 8448 vec_sral(__vector unsigned char __a, __vector unsigned short __b) { 8449 return __builtin_s390_vsra(__a, (__vector unsigned char)__b); 8450 } 8451 8452 // This prototype is deprecated. 8453 static inline __ATTRS_o_ai __vector unsigned char 8454 vec_sral(__vector unsigned char __a, __vector unsigned int __b) { 8455 return __builtin_s390_vsra(__a, (__vector unsigned char)__b); 8456 } 8457 8458 static inline __ATTRS_o_ai __vector signed short 8459 vec_sral(__vector signed short __a, __vector unsigned char __b) { 8460 return (__vector signed short)__builtin_s390_vsra( 8461 (__vector unsigned char)__a, __b); 8462 } 8463 8464 // This prototype is deprecated. 8465 static inline __ATTRS_o_ai __vector signed short 8466 vec_sral(__vector signed short __a, __vector unsigned short __b) { 8467 return (__vector signed short)__builtin_s390_vsra( 8468 (__vector unsigned char)__a, (__vector unsigned char)__b); 8469 } 8470 8471 // This prototype is deprecated. 8472 static inline __ATTRS_o_ai __vector signed short 8473 vec_sral(__vector signed short __a, __vector unsigned int __b) { 8474 return (__vector signed short)__builtin_s390_vsra( 8475 (__vector unsigned char)__a, (__vector unsigned char)__b); 8476 } 8477 8478 // This prototype is deprecated. 8479 static inline __ATTRS_o_ai __vector __bool short 8480 vec_sral(__vector __bool short __a, __vector unsigned char __b) { 8481 return (__vector __bool short)__builtin_s390_vsra( 8482 (__vector unsigned char)__a, __b); 8483 } 8484 8485 // This prototype is deprecated. 8486 static inline __ATTRS_o_ai __vector __bool short 8487 vec_sral(__vector __bool short __a, __vector unsigned short __b) { 8488 return (__vector __bool short)__builtin_s390_vsra( 8489 (__vector unsigned char)__a, (__vector unsigned char)__b); 8490 } 8491 8492 // This prototype is deprecated. 8493 static inline __ATTRS_o_ai __vector __bool short 8494 vec_sral(__vector __bool short __a, __vector unsigned int __b) { 8495 return (__vector __bool short)__builtin_s390_vsra( 8496 (__vector unsigned char)__a, (__vector unsigned char)__b); 8497 } 8498 8499 static inline __ATTRS_o_ai __vector unsigned short 8500 vec_sral(__vector unsigned short __a, __vector unsigned char __b) { 8501 return (__vector unsigned short)__builtin_s390_vsra( 8502 (__vector unsigned char)__a, __b); 8503 } 8504 8505 // This prototype is deprecated. 8506 static inline __ATTRS_o_ai __vector unsigned short 8507 vec_sral(__vector unsigned short __a, __vector unsigned short __b) { 8508 return (__vector unsigned short)__builtin_s390_vsra( 8509 (__vector unsigned char)__a, (__vector unsigned char)__b); 8510 } 8511 8512 // This prototype is deprecated. 8513 static inline __ATTRS_o_ai __vector unsigned short 8514 vec_sral(__vector unsigned short __a, __vector unsigned int __b) { 8515 return (__vector unsigned short)__builtin_s390_vsra( 8516 (__vector unsigned char)__a, (__vector unsigned char)__b); 8517 } 8518 8519 static inline __ATTRS_o_ai __vector signed int 8520 vec_sral(__vector signed int __a, __vector unsigned char __b) { 8521 return (__vector signed int)__builtin_s390_vsra( 8522 (__vector unsigned char)__a, __b); 8523 } 8524 8525 // This prototype is deprecated. 8526 static inline __ATTRS_o_ai __vector signed int 8527 vec_sral(__vector signed int __a, __vector unsigned short __b) { 8528 return (__vector signed int)__builtin_s390_vsra( 8529 (__vector unsigned char)__a, (__vector unsigned char)__b); 8530 } 8531 8532 // This prototype is deprecated. 8533 static inline __ATTRS_o_ai __vector signed int 8534 vec_sral(__vector signed int __a, __vector unsigned int __b) { 8535 return (__vector signed int)__builtin_s390_vsra( 8536 (__vector unsigned char)__a, (__vector unsigned char)__b); 8537 } 8538 8539 // This prototype is deprecated. 8540 static inline __ATTRS_o_ai __vector __bool int 8541 vec_sral(__vector __bool int __a, __vector unsigned char __b) { 8542 return (__vector __bool int)__builtin_s390_vsra( 8543 (__vector unsigned char)__a, __b); 8544 } 8545 8546 // This prototype is deprecated. 8547 static inline __ATTRS_o_ai __vector __bool int 8548 vec_sral(__vector __bool int __a, __vector unsigned short __b) { 8549 return (__vector __bool int)__builtin_s390_vsra( 8550 (__vector unsigned char)__a, (__vector unsigned char)__b); 8551 } 8552 8553 // This prototype is deprecated. 8554 static inline __ATTRS_o_ai __vector __bool int 8555 vec_sral(__vector __bool int __a, __vector unsigned int __b) { 8556 return (__vector __bool int)__builtin_s390_vsra( 8557 (__vector unsigned char)__a, (__vector unsigned char)__b); 8558 } 8559 8560 static inline __ATTRS_o_ai __vector unsigned int 8561 vec_sral(__vector unsigned int __a, __vector unsigned char __b) { 8562 return (__vector unsigned int)__builtin_s390_vsra( 8563 (__vector unsigned char)__a, __b); 8564 } 8565 8566 // This prototype is deprecated. 8567 static inline __ATTRS_o_ai __vector unsigned int 8568 vec_sral(__vector unsigned int __a, __vector unsigned short __b) { 8569 return (__vector unsigned int)__builtin_s390_vsra( 8570 (__vector unsigned char)__a, (__vector unsigned char)__b); 8571 } 8572 8573 // This prototype is deprecated. 8574 static inline __ATTRS_o_ai __vector unsigned int 8575 vec_sral(__vector unsigned int __a, __vector unsigned int __b) { 8576 return (__vector unsigned int)__builtin_s390_vsra( 8577 (__vector unsigned char)__a, (__vector unsigned char)__b); 8578 } 8579 8580 static inline __ATTRS_o_ai __vector signed long long 8581 vec_sral(__vector signed long long __a, __vector unsigned char __b) { 8582 return (__vector signed long long)__builtin_s390_vsra( 8583 (__vector unsigned char)__a, __b); 8584 } 8585 8586 // This prototype is deprecated. 8587 static inline __ATTRS_o_ai __vector signed long long 8588 vec_sral(__vector signed long long __a, __vector unsigned short __b) { 8589 return (__vector signed long long)__builtin_s390_vsra( 8590 (__vector unsigned char)__a, (__vector unsigned char)__b); 8591 } 8592 8593 // This prototype is deprecated. 8594 static inline __ATTRS_o_ai __vector signed long long 8595 vec_sral(__vector signed long long __a, __vector unsigned int __b) { 8596 return (__vector signed long long)__builtin_s390_vsra( 8597 (__vector unsigned char)__a, (__vector unsigned char)__b); 8598 } 8599 8600 // This prototype is deprecated. 8601 static inline __ATTRS_o_ai __vector __bool long long 8602 vec_sral(__vector __bool long long __a, __vector unsigned char __b) { 8603 return (__vector __bool long long)__builtin_s390_vsra( 8604 (__vector unsigned char)__a, __b); 8605 } 8606 8607 // This prototype is deprecated. 8608 static inline __ATTRS_o_ai __vector __bool long long 8609 vec_sral(__vector __bool long long __a, __vector unsigned short __b) { 8610 return (__vector __bool long long)__builtin_s390_vsra( 8611 (__vector unsigned char)__a, (__vector unsigned char)__b); 8612 } 8613 8614 // This prototype is deprecated. 8615 static inline __ATTRS_o_ai __vector __bool long long 8616 vec_sral(__vector __bool long long __a, __vector unsigned int __b) { 8617 return (__vector __bool long long)__builtin_s390_vsra( 8618 (__vector unsigned char)__a, (__vector unsigned char)__b); 8619 } 8620 8621 static inline __ATTRS_o_ai __vector unsigned long long 8622 vec_sral(__vector unsigned long long __a, __vector unsigned char __b) { 8623 return (__vector unsigned long long)__builtin_s390_vsra( 8624 (__vector unsigned char)__a, __b); 8625 } 8626 8627 // This prototype is deprecated. 8628 static inline __ATTRS_o_ai __vector unsigned long long 8629 vec_sral(__vector unsigned long long __a, __vector unsigned short __b) { 8630 return (__vector unsigned long long)__builtin_s390_vsra( 8631 (__vector unsigned char)__a, (__vector unsigned char)__b); 8632 } 8633 8634 // This prototype is deprecated. 8635 static inline __ATTRS_o_ai __vector unsigned long long 8636 vec_sral(__vector unsigned long long __a, __vector unsigned int __b) { 8637 return (__vector unsigned long long)__builtin_s390_vsra( 8638 (__vector unsigned char)__a, (__vector unsigned char)__b); 8639 } 8640 8641 static inline __ATTRS_o_ai __vector signed __int128 8642 vec_sral(__vector signed __int128 __a, __vector unsigned char __b) { 8643 return (__vector signed __int128)__builtin_s390_vsra( 8644 (__vector unsigned char)__a, __b); 8645 } 8646 8647 static inline __ATTRS_o_ai __vector unsigned __int128 8648 vec_sral(__vector unsigned __int128 __a, __vector unsigned char __b) { 8649 return (__vector unsigned __int128)__builtin_s390_vsra( 8650 (__vector unsigned char)__a, __b); 8651 } 8652 8653 /*-- vec_srab ---------------------------------------------------------------*/ 8654 8655 // This prototype is deprecated. 8656 static inline __ATTRS_o_ai __vector signed char 8657 vec_srab(__vector signed char __a, __vector signed char __b) { 8658 return (__vector signed char)__builtin_s390_vsrab( 8659 (__vector unsigned char)__a, (__vector unsigned char)__b); 8660 } 8661 8662 static inline __ATTRS_o_ai __vector signed char 8663 vec_srab(__vector signed char __a, __vector unsigned char __b) { 8664 return (__vector signed char)__builtin_s390_vsrab( 8665 (__vector unsigned char)__a, __b); 8666 } 8667 8668 // This prototype is deprecated. 8669 static inline __ATTRS_o_ai __vector unsigned char 8670 vec_srab(__vector unsigned char __a, __vector signed char __b) { 8671 return __builtin_s390_vsrab(__a, (__vector unsigned char)__b); 8672 } 8673 8674 static inline __ATTRS_o_ai __vector unsigned char 8675 vec_srab(__vector unsigned char __a, __vector unsigned char __b) { 8676 return __builtin_s390_vsrab(__a, __b); 8677 } 8678 8679 // This prototype is deprecated. 8680 static inline __ATTRS_o_ai __vector signed short 8681 vec_srab(__vector signed short __a, __vector signed short __b) { 8682 return (__vector signed short)__builtin_s390_vsrab( 8683 (__vector unsigned char)__a, (__vector unsigned char)__b); 8684 } 8685 8686 // This prototype is deprecated. 8687 static inline __ATTRS_o_ai __vector signed short 8688 vec_srab(__vector signed short __a, __vector unsigned short __b) { 8689 return (__vector signed short)__builtin_s390_vsrab( 8690 (__vector unsigned char)__a, (__vector unsigned char)__b); 8691 } 8692 8693 static inline __ATTRS_o_ai __vector signed short 8694 vec_srab(__vector signed short __a, __vector unsigned char __b) { 8695 return (__vector signed short)__builtin_s390_vsrab( 8696 (__vector unsigned char)__a, __b); 8697 } 8698 8699 // This prototype is deprecated. 8700 static inline __ATTRS_o_ai __vector unsigned short 8701 vec_srab(__vector unsigned short __a, __vector signed short __b) { 8702 return (__vector unsigned short)__builtin_s390_vsrab( 8703 (__vector unsigned char)__a, (__vector unsigned char)__b); 8704 } 8705 8706 // This prototype is deprecated. 8707 static inline __ATTRS_o_ai __vector unsigned short 8708 vec_srab(__vector unsigned short __a, __vector unsigned short __b) { 8709 return (__vector unsigned short)__builtin_s390_vsrab( 8710 (__vector unsigned char)__a, (__vector unsigned char)__b); 8711 } 8712 8713 static inline __ATTRS_o_ai __vector unsigned short 8714 vec_srab(__vector unsigned short __a, __vector unsigned char __b) { 8715 return (__vector unsigned short)__builtin_s390_vsrab( 8716 (__vector unsigned char)__a, __b); 8717 } 8718 8719 // This prototype is deprecated. 8720 static inline __ATTRS_o_ai __vector signed int 8721 vec_srab(__vector signed int __a, __vector signed int __b) { 8722 return (__vector signed int)__builtin_s390_vsrab( 8723 (__vector unsigned char)__a, (__vector unsigned char)__b); 8724 } 8725 8726 // This prototype is deprecated. 8727 static inline __ATTRS_o_ai __vector signed int 8728 vec_srab(__vector signed int __a, __vector unsigned int __b) { 8729 return (__vector signed int)__builtin_s390_vsrab( 8730 (__vector unsigned char)__a, (__vector unsigned char)__b); 8731 } 8732 8733 static inline __ATTRS_o_ai __vector signed int 8734 vec_srab(__vector signed int __a, __vector unsigned char __b) { 8735 return (__vector signed int)__builtin_s390_vsrab( 8736 (__vector unsigned char)__a, __b); 8737 } 8738 8739 // This prototype is deprecated. 8740 static inline __ATTRS_o_ai __vector unsigned int 8741 vec_srab(__vector unsigned int __a, __vector signed int __b) { 8742 return (__vector unsigned int)__builtin_s390_vsrab( 8743 (__vector unsigned char)__a, (__vector unsigned char)__b); 8744 } 8745 8746 // This prototype is deprecated. 8747 static inline __ATTRS_o_ai __vector unsigned int 8748 vec_srab(__vector unsigned int __a, __vector unsigned int __b) { 8749 return (__vector unsigned int)__builtin_s390_vsrab( 8750 (__vector unsigned char)__a, (__vector unsigned char)__b); 8751 } 8752 8753 static inline __ATTRS_o_ai __vector unsigned int 8754 vec_srab(__vector unsigned int __a, __vector unsigned char __b) { 8755 return (__vector unsigned int)__builtin_s390_vsrab( 8756 (__vector unsigned char)__a, __b); 8757 } 8758 8759 // This prototype is deprecated. 8760 static inline __ATTRS_o_ai __vector signed long long 8761 vec_srab(__vector signed long long __a, __vector signed long long __b) { 8762 return (__vector signed long long)__builtin_s390_vsrab( 8763 (__vector unsigned char)__a, (__vector unsigned char)__b); 8764 } 8765 8766 // This prototype is deprecated. 8767 static inline __ATTRS_o_ai __vector signed long long 8768 vec_srab(__vector signed long long __a, __vector unsigned long long __b) { 8769 return (__vector signed long long)__builtin_s390_vsrab( 8770 (__vector unsigned char)__a, (__vector unsigned char)__b); 8771 } 8772 8773 static inline __ATTRS_o_ai __vector signed long long 8774 vec_srab(__vector signed long long __a, __vector unsigned char __b) { 8775 return (__vector signed long long)__builtin_s390_vsrab( 8776 (__vector unsigned char)__a, __b); 8777 } 8778 8779 // This prototype is deprecated. 8780 static inline __ATTRS_o_ai __vector unsigned long long 8781 vec_srab(__vector unsigned long long __a, __vector signed long long __b) { 8782 return (__vector unsigned long long)__builtin_s390_vsrab( 8783 (__vector unsigned char)__a, (__vector unsigned char)__b); 8784 } 8785 8786 // This prototype is deprecated. 8787 static inline __ATTRS_o_ai __vector unsigned long long 8788 vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) { 8789 return (__vector unsigned long long)__builtin_s390_vsrab( 8790 (__vector unsigned char)__a, (__vector unsigned char)__b); 8791 } 8792 8793 static inline __ATTRS_o_ai __vector unsigned long long 8794 vec_srab(__vector unsigned long long __a, __vector unsigned char __b) { 8795 return (__vector unsigned long long)__builtin_s390_vsrab( 8796 (__vector unsigned char)__a, __b); 8797 } 8798 8799 static inline __ATTRS_o_ai __vector signed __int128 8800 vec_srab(__vector signed __int128 __a, __vector unsigned char __b) { 8801 return (__vector signed __int128)__builtin_s390_vsrab( 8802 (__vector unsigned char)__a, __b); 8803 } 8804 8805 static inline __ATTRS_o_ai __vector unsigned __int128 8806 vec_srab(__vector unsigned __int128 __a, __vector unsigned char __b) { 8807 return (__vector unsigned __int128)__builtin_s390_vsrab( 8808 (__vector unsigned char)__a, __b); 8809 } 8810 8811 #if __ARCH__ >= 12 8812 // This prototype is deprecated. 8813 static inline __ATTRS_o_ai __vector float 8814 vec_srab(__vector float __a, __vector signed int __b) { 8815 return (__vector float)__builtin_s390_vsrab( 8816 (__vector unsigned char)__a, (__vector unsigned char)__b); 8817 } 8818 8819 // This prototype is deprecated. 8820 static inline __ATTRS_o_ai __vector float 8821 vec_srab(__vector float __a, __vector unsigned int __b) { 8822 return (__vector float)__builtin_s390_vsrab( 8823 (__vector unsigned char)__a, (__vector unsigned char)__b); 8824 } 8825 8826 static inline __ATTRS_o_ai __vector float 8827 vec_srab(__vector float __a, __vector unsigned char __b) { 8828 return (__vector float)__builtin_s390_vsrab( 8829 (__vector unsigned char)__a, __b); 8830 } 8831 #endif 8832 8833 // This prototype is deprecated. 8834 static inline __ATTRS_o_ai __vector double 8835 vec_srab(__vector double __a, __vector signed long long __b) { 8836 return (__vector double)__builtin_s390_vsrab( 8837 (__vector unsigned char)__a, (__vector unsigned char)__b); 8838 } 8839 8840 // This prototype is deprecated. 8841 static inline __ATTRS_o_ai __vector double 8842 vec_srab(__vector double __a, __vector unsigned long long __b) { 8843 return (__vector double)__builtin_s390_vsrab( 8844 (__vector unsigned char)__a, (__vector unsigned char)__b); 8845 } 8846 8847 static inline __ATTRS_o_ai __vector double 8848 vec_srab(__vector double __a, __vector unsigned char __b) { 8849 return (__vector double)__builtin_s390_vsrab( 8850 (__vector unsigned char)__a, __b); 8851 } 8852 8853 /*-- vec_srl ----------------------------------------------------------------*/ 8854 8855 static inline __ATTRS_o_ai __vector signed char 8856 vec_srl(__vector signed char __a, __vector unsigned char __b) { 8857 return (__vector signed char)__builtin_s390_vsrl( 8858 (__vector unsigned char)__a, __b); 8859 } 8860 8861 // This prototype is deprecated. 8862 static inline __ATTRS_o_ai __vector signed char 8863 vec_srl(__vector signed char __a, __vector unsigned short __b) { 8864 return (__vector signed char)__builtin_s390_vsrl( 8865 (__vector unsigned char)__a, (__vector unsigned char)__b); 8866 } 8867 8868 // This prototype is deprecated. 8869 static inline __ATTRS_o_ai __vector signed char 8870 vec_srl(__vector signed char __a, __vector unsigned int __b) { 8871 return (__vector signed char)__builtin_s390_vsrl( 8872 (__vector unsigned char)__a, (__vector unsigned char)__b); 8873 } 8874 8875 // This prototype is deprecated. 8876 static inline __ATTRS_o_ai __vector __bool char 8877 vec_srl(__vector __bool char __a, __vector unsigned char __b) { 8878 return (__vector __bool char)__builtin_s390_vsrl( 8879 (__vector unsigned char)__a, __b); 8880 } 8881 8882 // This prototype is deprecated. 8883 static inline __ATTRS_o_ai __vector __bool char 8884 vec_srl(__vector __bool char __a, __vector unsigned short __b) { 8885 return (__vector __bool char)__builtin_s390_vsrl( 8886 (__vector unsigned char)__a, (__vector unsigned char)__b); 8887 } 8888 8889 // This prototype is deprecated. 8890 static inline __ATTRS_o_ai __vector __bool char 8891 vec_srl(__vector __bool char __a, __vector unsigned int __b) { 8892 return (__vector __bool char)__builtin_s390_vsrl( 8893 (__vector unsigned char)__a, (__vector unsigned char)__b); 8894 } 8895 8896 static inline __ATTRS_o_ai __vector unsigned char 8897 vec_srl(__vector unsigned char __a, __vector unsigned char __b) { 8898 return __builtin_s390_vsrl(__a, __b); 8899 } 8900 8901 // This prototype is deprecated. 8902 static inline __ATTRS_o_ai __vector unsigned char 8903 vec_srl(__vector unsigned char __a, __vector unsigned short __b) { 8904 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b); 8905 } 8906 8907 // This prototype is deprecated. 8908 static inline __ATTRS_o_ai __vector unsigned char 8909 vec_srl(__vector unsigned char __a, __vector unsigned int __b) { 8910 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b); 8911 } 8912 8913 static inline __ATTRS_o_ai __vector signed short 8914 vec_srl(__vector signed short __a, __vector unsigned char __b) { 8915 return (__vector signed short)__builtin_s390_vsrl( 8916 (__vector unsigned char)__a, __b); 8917 } 8918 8919 // This prototype is deprecated. 8920 static inline __ATTRS_o_ai __vector signed short 8921 vec_srl(__vector signed short __a, __vector unsigned short __b) { 8922 return (__vector signed short)__builtin_s390_vsrl( 8923 (__vector unsigned char)__a, (__vector unsigned char)__b); 8924 } 8925 8926 // This prototype is deprecated. 8927 static inline __ATTRS_o_ai __vector signed short 8928 vec_srl(__vector signed short __a, __vector unsigned int __b) { 8929 return (__vector signed short)__builtin_s390_vsrl( 8930 (__vector unsigned char)__a, (__vector unsigned char)__b); 8931 } 8932 8933 // This prototype is deprecated. 8934 static inline __ATTRS_o_ai __vector __bool short 8935 vec_srl(__vector __bool short __a, __vector unsigned char __b) { 8936 return (__vector __bool short)__builtin_s390_vsrl( 8937 (__vector unsigned char)__a, __b); 8938 } 8939 8940 // This prototype is deprecated. 8941 static inline __ATTRS_o_ai __vector __bool short 8942 vec_srl(__vector __bool short __a, __vector unsigned short __b) { 8943 return (__vector __bool short)__builtin_s390_vsrl( 8944 (__vector unsigned char)__a, (__vector unsigned char)__b); 8945 } 8946 8947 // This prototype is deprecated. 8948 static inline __ATTRS_o_ai __vector __bool short 8949 vec_srl(__vector __bool short __a, __vector unsigned int __b) { 8950 return (__vector __bool short)__builtin_s390_vsrl( 8951 (__vector unsigned char)__a, (__vector unsigned char)__b); 8952 } 8953 8954 static inline __ATTRS_o_ai __vector unsigned short 8955 vec_srl(__vector unsigned short __a, __vector unsigned char __b) { 8956 return (__vector unsigned short)__builtin_s390_vsrl( 8957 (__vector unsigned char)__a, __b); 8958 } 8959 8960 // This prototype is deprecated. 8961 static inline __ATTRS_o_ai __vector unsigned short 8962 vec_srl(__vector unsigned short __a, __vector unsigned short __b) { 8963 return (__vector unsigned short)__builtin_s390_vsrl( 8964 (__vector unsigned char)__a, (__vector unsigned char)__b); 8965 } 8966 8967 // This prototype is deprecated. 8968 static inline __ATTRS_o_ai __vector unsigned short 8969 vec_srl(__vector unsigned short __a, __vector unsigned int __b) { 8970 return (__vector unsigned short)__builtin_s390_vsrl( 8971 (__vector unsigned char)__a, (__vector unsigned char)__b); 8972 } 8973 8974 static inline __ATTRS_o_ai __vector signed int 8975 vec_srl(__vector signed int __a, __vector unsigned char __b) { 8976 return (__vector signed int)__builtin_s390_vsrl( 8977 (__vector unsigned char)__a, __b); 8978 } 8979 8980 // This prototype is deprecated. 8981 static inline __ATTRS_o_ai __vector signed int 8982 vec_srl(__vector signed int __a, __vector unsigned short __b) { 8983 return (__vector signed int)__builtin_s390_vsrl( 8984 (__vector unsigned char)__a, (__vector unsigned char)__b); 8985 } 8986 8987 // This prototype is deprecated. 8988 static inline __ATTRS_o_ai __vector signed int 8989 vec_srl(__vector signed int __a, __vector unsigned int __b) { 8990 return (__vector signed int)__builtin_s390_vsrl( 8991 (__vector unsigned char)__a, (__vector unsigned char)__b); 8992 } 8993 8994 // This prototype is deprecated. 8995 static inline __ATTRS_o_ai __vector __bool int 8996 vec_srl(__vector __bool int __a, __vector unsigned char __b) { 8997 return (__vector __bool int)__builtin_s390_vsrl( 8998 (__vector unsigned char)__a, __b); 8999 } 9000 9001 // This prototype is deprecated. 9002 static inline __ATTRS_o_ai __vector __bool int 9003 vec_srl(__vector __bool int __a, __vector unsigned short __b) { 9004 return (__vector __bool int)__builtin_s390_vsrl( 9005 (__vector unsigned char)__a, (__vector unsigned char)__b); 9006 } 9007 9008 // This prototype is deprecated. 9009 static inline __ATTRS_o_ai __vector __bool int 9010 vec_srl(__vector __bool int __a, __vector unsigned int __b) { 9011 return (__vector __bool int)__builtin_s390_vsrl( 9012 (__vector unsigned char)__a, (__vector unsigned char)__b); 9013 } 9014 9015 static inline __ATTRS_o_ai __vector unsigned int 9016 vec_srl(__vector unsigned int __a, __vector unsigned char __b) { 9017 return (__vector unsigned int)__builtin_s390_vsrl( 9018 (__vector unsigned char)__a, __b); 9019 } 9020 9021 // This prototype is deprecated. 9022 static inline __ATTRS_o_ai __vector unsigned int 9023 vec_srl(__vector unsigned int __a, __vector unsigned short __b) { 9024 return (__vector unsigned int)__builtin_s390_vsrl( 9025 (__vector unsigned char)__a, (__vector unsigned char)__b); 9026 } 9027 9028 // This prototype is deprecated. 9029 static inline __ATTRS_o_ai __vector unsigned int 9030 vec_srl(__vector unsigned int __a, __vector unsigned int __b) { 9031 return (__vector unsigned int)__builtin_s390_vsrl( 9032 (__vector unsigned char)__a, (__vector unsigned char)__b); 9033 } 9034 9035 static inline __ATTRS_o_ai __vector signed long long 9036 vec_srl(__vector signed long long __a, __vector unsigned char __b) { 9037 return (__vector signed long long)__builtin_s390_vsrl( 9038 (__vector unsigned char)__a, __b); 9039 } 9040 9041 // This prototype is deprecated. 9042 static inline __ATTRS_o_ai __vector signed long long 9043 vec_srl(__vector signed long long __a, __vector unsigned short __b) { 9044 return (__vector signed long long)__builtin_s390_vsrl( 9045 (__vector unsigned char)__a, (__vector unsigned char)__b); 9046 } 9047 9048 // This prototype is deprecated. 9049 static inline __ATTRS_o_ai __vector signed long long 9050 vec_srl(__vector signed long long __a, __vector unsigned int __b) { 9051 return (__vector signed long long)__builtin_s390_vsrl( 9052 (__vector unsigned char)__a, (__vector unsigned char)__b); 9053 } 9054 9055 // This prototype is deprecated. 9056 static inline __ATTRS_o_ai __vector __bool long long 9057 vec_srl(__vector __bool long long __a, __vector unsigned char __b) { 9058 return (__vector __bool long long)__builtin_s390_vsrl( 9059 (__vector unsigned char)__a, __b); 9060 } 9061 9062 // This prototype is deprecated. 9063 static inline __ATTRS_o_ai __vector __bool long long 9064 vec_srl(__vector __bool long long __a, __vector unsigned short __b) { 9065 return (__vector __bool long long)__builtin_s390_vsrl( 9066 (__vector unsigned char)__a, (__vector unsigned char)__b); 9067 } 9068 9069 // This prototype is deprecated. 9070 static inline __ATTRS_o_ai __vector __bool long long 9071 vec_srl(__vector __bool long long __a, __vector unsigned int __b) { 9072 return (__vector __bool long long)__builtin_s390_vsrl( 9073 (__vector unsigned char)__a, (__vector unsigned char)__b); 9074 } 9075 9076 static inline __ATTRS_o_ai __vector unsigned long long 9077 vec_srl(__vector unsigned long long __a, __vector unsigned char __b) { 9078 return (__vector unsigned long long)__builtin_s390_vsrl( 9079 (__vector unsigned char)__a, __b); 9080 } 9081 9082 // This prototype is deprecated. 9083 static inline __ATTRS_o_ai __vector unsigned long long 9084 vec_srl(__vector unsigned long long __a, __vector unsigned short __b) { 9085 return (__vector unsigned long long)__builtin_s390_vsrl( 9086 (__vector unsigned char)__a, (__vector unsigned char)__b); 9087 } 9088 9089 // This prototype is deprecated. 9090 static inline __ATTRS_o_ai __vector unsigned long long 9091 vec_srl(__vector unsigned long long __a, __vector unsigned int __b) { 9092 return (__vector unsigned long long)__builtin_s390_vsrl( 9093 (__vector unsigned char)__a, (__vector unsigned char)__b); 9094 } 9095 9096 static inline __ATTRS_o_ai __vector signed __int128 9097 vec_srl(__vector signed __int128 __a, __vector unsigned char __b) { 9098 return (__vector signed __int128)__builtin_s390_vsrl( 9099 (__vector unsigned char)__a, __b); 9100 } 9101 9102 static inline __ATTRS_o_ai __vector unsigned __int128 9103 vec_srl(__vector unsigned __int128 __a, __vector unsigned char __b) { 9104 return (__vector unsigned __int128)__builtin_s390_vsrl( 9105 (__vector unsigned char)__a, __b); 9106 } 9107 9108 /*-- vec_srb ----------------------------------------------------------------*/ 9109 9110 // This prototype is deprecated. 9111 static inline __ATTRS_o_ai __vector signed char 9112 vec_srb(__vector signed char __a, __vector signed char __b) { 9113 return (__vector signed char)__builtin_s390_vsrlb( 9114 (__vector unsigned char)__a, (__vector unsigned char)__b); 9115 } 9116 9117 static inline __ATTRS_o_ai __vector signed char 9118 vec_srb(__vector signed char __a, __vector unsigned char __b) { 9119 return (__vector signed char)__builtin_s390_vsrlb( 9120 (__vector unsigned char)__a, __b); 9121 } 9122 9123 // This prototype is deprecated. 9124 static inline __ATTRS_o_ai __vector unsigned char 9125 vec_srb(__vector unsigned char __a, __vector signed char __b) { 9126 return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b); 9127 } 9128 9129 static inline __ATTRS_o_ai __vector unsigned char 9130 vec_srb(__vector unsigned char __a, __vector unsigned char __b) { 9131 return __builtin_s390_vsrlb(__a, __b); 9132 } 9133 9134 // This prototype is deprecated. 9135 static inline __ATTRS_o_ai __vector signed short 9136 vec_srb(__vector signed short __a, __vector signed short __b) { 9137 return (__vector signed short)__builtin_s390_vsrlb( 9138 (__vector unsigned char)__a, (__vector unsigned char)__b); 9139 } 9140 9141 // This prototype is deprecated. 9142 static inline __ATTRS_o_ai __vector signed short 9143 vec_srb(__vector signed short __a, __vector unsigned short __b) { 9144 return (__vector signed short)__builtin_s390_vsrlb( 9145 (__vector unsigned char)__a, (__vector unsigned char)__b); 9146 } 9147 9148 static inline __ATTRS_o_ai __vector signed short 9149 vec_srb(__vector signed short __a, __vector unsigned char __b) { 9150 return (__vector signed short)__builtin_s390_vsrlb( 9151 (__vector unsigned char)__a, __b); 9152 } 9153 9154 // This prototype is deprecated. 9155 static inline __ATTRS_o_ai __vector unsigned short 9156 vec_srb(__vector unsigned short __a, __vector signed short __b) { 9157 return (__vector unsigned short)__builtin_s390_vsrlb( 9158 (__vector unsigned char)__a, (__vector unsigned char)__b); 9159 } 9160 9161 // This prototype is deprecated. 9162 static inline __ATTRS_o_ai __vector unsigned short 9163 vec_srb(__vector unsigned short __a, __vector unsigned short __b) { 9164 return (__vector unsigned short)__builtin_s390_vsrlb( 9165 (__vector unsigned char)__a, (__vector unsigned char)__b); 9166 } 9167 9168 static inline __ATTRS_o_ai __vector unsigned short 9169 vec_srb(__vector unsigned short __a, __vector unsigned char __b) { 9170 return (__vector unsigned short)__builtin_s390_vsrlb( 9171 (__vector unsigned char)__a, __b); 9172 } 9173 9174 // This prototype is deprecated. 9175 static inline __ATTRS_o_ai __vector signed int 9176 vec_srb(__vector signed int __a, __vector signed int __b) { 9177 return (__vector signed int)__builtin_s390_vsrlb( 9178 (__vector unsigned char)__a, (__vector unsigned char)__b); 9179 } 9180 9181 // This prototype is deprecated. 9182 static inline __ATTRS_o_ai __vector signed int 9183 vec_srb(__vector signed int __a, __vector unsigned int __b) { 9184 return (__vector signed int)__builtin_s390_vsrlb( 9185 (__vector unsigned char)__a, (__vector unsigned char)__b); 9186 } 9187 9188 static inline __ATTRS_o_ai __vector signed int 9189 vec_srb(__vector signed int __a, __vector unsigned char __b) { 9190 return (__vector signed int)__builtin_s390_vsrlb( 9191 (__vector unsigned char)__a, __b); 9192 } 9193 9194 // This prototype is deprecated. 9195 static inline __ATTRS_o_ai __vector unsigned int 9196 vec_srb(__vector unsigned int __a, __vector signed int __b) { 9197 return (__vector unsigned int)__builtin_s390_vsrlb( 9198 (__vector unsigned char)__a, (__vector unsigned char)__b); 9199 } 9200 9201 // This prototype is deprecated. 9202 static inline __ATTRS_o_ai __vector unsigned int 9203 vec_srb(__vector unsigned int __a, __vector unsigned int __b) { 9204 return (__vector unsigned int)__builtin_s390_vsrlb( 9205 (__vector unsigned char)__a, (__vector unsigned char)__b); 9206 } 9207 9208 static inline __ATTRS_o_ai __vector unsigned int 9209 vec_srb(__vector unsigned int __a, __vector unsigned char __b) { 9210 return (__vector unsigned int)__builtin_s390_vsrlb( 9211 (__vector unsigned char)__a, __b); 9212 } 9213 9214 // This prototype is deprecated. 9215 static inline __ATTRS_o_ai __vector signed long long 9216 vec_srb(__vector signed long long __a, __vector signed long long __b) { 9217 return (__vector signed long long)__builtin_s390_vsrlb( 9218 (__vector unsigned char)__a, (__vector unsigned char)__b); 9219 } 9220 9221 // This prototype is deprecated. 9222 static inline __ATTRS_o_ai __vector signed long long 9223 vec_srb(__vector signed long long __a, __vector unsigned long long __b) { 9224 return (__vector signed long long)__builtin_s390_vsrlb( 9225 (__vector unsigned char)__a, (__vector unsigned char)__b); 9226 } 9227 9228 static inline __ATTRS_o_ai __vector signed long long 9229 vec_srb(__vector signed long long __a, __vector unsigned char __b) { 9230 return (__vector signed long long)__builtin_s390_vsrlb( 9231 (__vector unsigned char)__a, __b); 9232 } 9233 9234 // This prototype is deprecated. 9235 static inline __ATTRS_o_ai __vector unsigned long long 9236 vec_srb(__vector unsigned long long __a, __vector signed long long __b) { 9237 return (__vector unsigned long long)__builtin_s390_vsrlb( 9238 (__vector unsigned char)__a, (__vector unsigned char)__b); 9239 } 9240 9241 // This prototype is deprecated. 9242 static inline __ATTRS_o_ai __vector unsigned long long 9243 vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) { 9244 return (__vector unsigned long long)__builtin_s390_vsrlb( 9245 (__vector unsigned char)__a, (__vector unsigned char)__b); 9246 } 9247 9248 static inline __ATTRS_o_ai __vector unsigned long long 9249 vec_srb(__vector unsigned long long __a, __vector unsigned char __b) { 9250 return (__vector unsigned long long)__builtin_s390_vsrlb( 9251 (__vector unsigned char)__a, __b); 9252 } 9253 9254 static inline __ATTRS_o_ai __vector signed __int128 9255 vec_srb(__vector signed __int128 __a, __vector unsigned char __b) { 9256 return (__vector signed __int128)__builtin_s390_vsrlb( 9257 (__vector unsigned char)__a, __b); 9258 } 9259 9260 static inline __ATTRS_o_ai __vector unsigned __int128 9261 vec_srb(__vector unsigned __int128 __a, __vector unsigned char __b) { 9262 return (__vector unsigned __int128)__builtin_s390_vsrlb( 9263 (__vector unsigned char)__a, __b); 9264 } 9265 9266 #if __ARCH__ >= 12 9267 // This prototype is deprecated. 9268 static inline __ATTRS_o_ai __vector float 9269 vec_srb(__vector float __a, __vector signed int __b) { 9270 return (__vector float)__builtin_s390_vsrlb( 9271 (__vector unsigned char)__a, (__vector unsigned char)__b); 9272 } 9273 9274 // This prototype is deprecated. 9275 static inline __ATTRS_o_ai __vector float 9276 vec_srb(__vector float __a, __vector unsigned int __b) { 9277 return (__vector float)__builtin_s390_vsrlb( 9278 (__vector unsigned char)__a, (__vector unsigned char)__b); 9279 } 9280 9281 static inline __ATTRS_o_ai __vector float 9282 vec_srb(__vector float __a, __vector unsigned char __b) { 9283 return (__vector float)__builtin_s390_vsrlb( 9284 (__vector unsigned char)__a, __b); 9285 } 9286 #endif 9287 9288 // This prototype is deprecated. 9289 static inline __ATTRS_o_ai __vector double 9290 vec_srb(__vector double __a, __vector signed long long __b) { 9291 return (__vector double)__builtin_s390_vsrlb( 9292 (__vector unsigned char)__a, (__vector unsigned char)__b); 9293 } 9294 9295 // This prototype is deprecated. 9296 static inline __ATTRS_o_ai __vector double 9297 vec_srb(__vector double __a, __vector unsigned long long __b) { 9298 return (__vector double)__builtin_s390_vsrlb( 9299 (__vector unsigned char)__a, (__vector unsigned char)__b); 9300 } 9301 9302 static inline __ATTRS_o_ai __vector double 9303 vec_srb(__vector double __a, __vector unsigned char __b) { 9304 return (__vector double)__builtin_s390_vsrlb( 9305 (__vector unsigned char)__a, __b); 9306 } 9307 9308 /*-- vec_srdb ---------------------------------------------------------------*/ 9309 9310 #if __ARCH__ >= 13 9311 9312 extern __ATTRS_o __vector signed char 9313 vec_srdb(__vector signed char __a, __vector signed char __b, int __c) 9314 __constant_range(__c, 0, 7); 9315 9316 extern __ATTRS_o __vector unsigned char 9317 vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c) 9318 __constant_range(__c, 0, 7); 9319 9320 extern __ATTRS_o __vector signed short 9321 vec_srdb(__vector signed short __a, __vector signed short __b, int __c) 9322 __constant_range(__c, 0, 7); 9323 9324 extern __ATTRS_o __vector unsigned short 9325 vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c) 9326 __constant_range(__c, 0, 7); 9327 9328 extern __ATTRS_o __vector signed int 9329 vec_srdb(__vector signed int __a, __vector signed int __b, int __c) 9330 __constant_range(__c, 0, 7); 9331 9332 extern __ATTRS_o __vector unsigned int 9333 vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c) 9334 __constant_range(__c, 0, 7); 9335 9336 extern __ATTRS_o __vector signed long long 9337 vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c) 9338 __constant_range(__c, 0, 7); 9339 9340 extern __ATTRS_o __vector unsigned long long 9341 vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b, 9342 int __c) 9343 __constant_range(__c, 0, 7); 9344 9345 extern __ATTRS_o __vector signed __int128 9346 vec_srdb(__vector signed __int128 __a, __vector signed __int128 __b, int __c) 9347 __constant_range(__c, 0, 7); 9348 9349 extern __ATTRS_o __vector unsigned __int128 9350 vec_srdb(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 9351 int __c) 9352 __constant_range(__c, 0, 7); 9353 9354 extern __ATTRS_o __vector float 9355 vec_srdb(__vector float __a, __vector float __b, int __c) 9356 __constant_range(__c, 0, 7); 9357 9358 extern __ATTRS_o __vector double 9359 vec_srdb(__vector double __a, __vector double __b, int __c) 9360 __constant_range(__c, 0, 7); 9361 9362 #define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \ 9363 __builtin_s390_vsrd((__vector unsigned char)(X), \ 9364 (__vector unsigned char)(Y), (Z))) 9365 9366 #endif 9367 9368 /*-- vec_abs ----------------------------------------------------------------*/ 9369 9370 static inline __ATTRS_o_ai __vector signed char 9371 vec_abs(__vector signed char __a) { 9372 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0)); 9373 } 9374 9375 static inline __ATTRS_o_ai __vector signed short 9376 vec_abs(__vector signed short __a) { 9377 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0)); 9378 } 9379 9380 static inline __ATTRS_o_ai __vector signed int 9381 vec_abs(__vector signed int __a) { 9382 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0)); 9383 } 9384 9385 static inline __ATTRS_o_ai __vector signed long long 9386 vec_abs(__vector signed long long __a) { 9387 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0)); 9388 } 9389 9390 static inline __ATTRS_o_ai __vector signed __int128 9391 vec_abs(__vector signed __int128 __a) { 9392 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed __int128)0)); 9393 } 9394 9395 #if __ARCH__ >= 12 9396 static inline __ATTRS_o_ai __vector float 9397 vec_abs(__vector float __a) { 9398 return __builtin_s390_vflpsb(__a); 9399 } 9400 #endif 9401 9402 static inline __ATTRS_o_ai __vector double 9403 vec_abs(__vector double __a) { 9404 return __builtin_s390_vflpdb(__a); 9405 } 9406 9407 /*-- vec_nabs ---------------------------------------------------------------*/ 9408 9409 #if __ARCH__ >= 12 9410 static inline __ATTRS_o_ai __vector float 9411 vec_nabs(__vector float __a) { 9412 return __builtin_s390_vflnsb(__a); 9413 } 9414 #endif 9415 9416 static inline __ATTRS_o_ai __vector double 9417 vec_nabs(__vector double __a) { 9418 return __builtin_s390_vflndb(__a); 9419 } 9420 9421 /*-- vec_max ----------------------------------------------------------------*/ 9422 9423 static inline __ATTRS_o_ai __vector signed char 9424 vec_max(__vector signed char __a, __vector signed char __b) { 9425 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9426 } 9427 9428 // This prototype is deprecated. 9429 static inline __ATTRS_o_ai __vector signed char 9430 vec_max(__vector signed char __a, __vector __bool char __b) { 9431 __vector signed char __bc = (__vector signed char)__b; 9432 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 9433 } 9434 9435 // This prototype is deprecated. 9436 static inline __ATTRS_o_ai __vector signed char 9437 vec_max(__vector __bool char __a, __vector signed char __b) { 9438 __vector signed char __ac = (__vector signed char)__a; 9439 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 9440 } 9441 9442 static inline __ATTRS_o_ai __vector unsigned char 9443 vec_max(__vector unsigned char __a, __vector unsigned char __b) { 9444 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9445 } 9446 9447 // This prototype is deprecated. 9448 static inline __ATTRS_o_ai __vector unsigned char 9449 vec_max(__vector unsigned char __a, __vector __bool char __b) { 9450 __vector unsigned char __bc = (__vector unsigned char)__b; 9451 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 9452 } 9453 9454 // This prototype is deprecated. 9455 static inline __ATTRS_o_ai __vector unsigned char 9456 vec_max(__vector __bool char __a, __vector unsigned char __b) { 9457 __vector unsigned char __ac = (__vector unsigned char)__a; 9458 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 9459 } 9460 9461 static inline __ATTRS_o_ai __vector signed short 9462 vec_max(__vector signed short __a, __vector signed short __b) { 9463 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9464 } 9465 9466 // This prototype is deprecated. 9467 static inline __ATTRS_o_ai __vector signed short 9468 vec_max(__vector signed short __a, __vector __bool short __b) { 9469 __vector signed short __bc = (__vector signed short)__b; 9470 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 9471 } 9472 9473 // This prototype is deprecated. 9474 static inline __ATTRS_o_ai __vector signed short 9475 vec_max(__vector __bool short __a, __vector signed short __b) { 9476 __vector signed short __ac = (__vector signed short)__a; 9477 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 9478 } 9479 9480 static inline __ATTRS_o_ai __vector unsigned short 9481 vec_max(__vector unsigned short __a, __vector unsigned short __b) { 9482 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9483 } 9484 9485 // This prototype is deprecated. 9486 static inline __ATTRS_o_ai __vector unsigned short 9487 vec_max(__vector unsigned short __a, __vector __bool short __b) { 9488 __vector unsigned short __bc = (__vector unsigned short)__b; 9489 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 9490 } 9491 9492 // This prototype is deprecated. 9493 static inline __ATTRS_o_ai __vector unsigned short 9494 vec_max(__vector __bool short __a, __vector unsigned short __b) { 9495 __vector unsigned short __ac = (__vector unsigned short)__a; 9496 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 9497 } 9498 9499 static inline __ATTRS_o_ai __vector signed int 9500 vec_max(__vector signed int __a, __vector signed int __b) { 9501 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9502 } 9503 9504 // This prototype is deprecated. 9505 static inline __ATTRS_o_ai __vector signed int 9506 vec_max(__vector signed int __a, __vector __bool int __b) { 9507 __vector signed int __bc = (__vector signed int)__b; 9508 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 9509 } 9510 9511 // This prototype is deprecated. 9512 static inline __ATTRS_o_ai __vector signed int 9513 vec_max(__vector __bool int __a, __vector signed int __b) { 9514 __vector signed int __ac = (__vector signed int)__a; 9515 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 9516 } 9517 9518 static inline __ATTRS_o_ai __vector unsigned int 9519 vec_max(__vector unsigned int __a, __vector unsigned int __b) { 9520 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9521 } 9522 9523 // This prototype is deprecated. 9524 static inline __ATTRS_o_ai __vector unsigned int 9525 vec_max(__vector unsigned int __a, __vector __bool int __b) { 9526 __vector unsigned int __bc = (__vector unsigned int)__b; 9527 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 9528 } 9529 9530 // This prototype is deprecated. 9531 static inline __ATTRS_o_ai __vector unsigned int 9532 vec_max(__vector __bool int __a, __vector unsigned int __b) { 9533 __vector unsigned int __ac = (__vector unsigned int)__a; 9534 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 9535 } 9536 9537 static inline __ATTRS_o_ai __vector signed long long 9538 vec_max(__vector signed long long __a, __vector signed long long __b) { 9539 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9540 } 9541 9542 // This prototype is deprecated. 9543 static inline __ATTRS_o_ai __vector signed long long 9544 vec_max(__vector signed long long __a, __vector __bool long long __b) { 9545 __vector signed long long __bc = (__vector signed long long)__b; 9546 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 9547 } 9548 9549 // This prototype is deprecated. 9550 static inline __ATTRS_o_ai __vector signed long long 9551 vec_max(__vector __bool long long __a, __vector signed long long __b) { 9552 __vector signed long long __ac = (__vector signed long long)__a; 9553 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 9554 } 9555 9556 static inline __ATTRS_o_ai __vector unsigned long long 9557 vec_max(__vector unsigned long long __a, __vector unsigned long long __b) { 9558 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9559 } 9560 9561 // This prototype is deprecated. 9562 static inline __ATTRS_o_ai __vector unsigned long long 9563 vec_max(__vector unsigned long long __a, __vector __bool long long __b) { 9564 __vector unsigned long long __bc = (__vector unsigned long long)__b; 9565 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 9566 } 9567 9568 // This prototype is deprecated. 9569 static inline __ATTRS_o_ai __vector unsigned long long 9570 vec_max(__vector __bool long long __a, __vector unsigned long long __b) { 9571 __vector unsigned long long __ac = (__vector unsigned long long)__a; 9572 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 9573 } 9574 9575 static inline __ATTRS_o_ai __vector signed __int128 9576 vec_max(__vector signed __int128 __a, __vector signed __int128 __b) { 9577 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9578 } 9579 9580 static inline __ATTRS_o_ai __vector unsigned __int128 9581 vec_max(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 9582 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9583 } 9584 9585 #if __ARCH__ >= 12 9586 static inline __ATTRS_o_ai __vector float 9587 vec_max(__vector float __a, __vector float __b) { 9588 return __builtin_s390_vfmaxsb(__a, __b, 0); 9589 } 9590 #endif 9591 9592 static inline __ATTRS_o_ai __vector double 9593 vec_max(__vector double __a, __vector double __b) { 9594 #if __ARCH__ >= 12 9595 return __builtin_s390_vfmaxdb(__a, __b, 0); 9596 #else 9597 return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 9598 #endif 9599 } 9600 9601 /*-- vec_min ----------------------------------------------------------------*/ 9602 9603 static inline __ATTRS_o_ai __vector signed char 9604 vec_min(__vector signed char __a, __vector signed char __b) { 9605 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9606 } 9607 9608 // This prototype is deprecated. 9609 static inline __ATTRS_o_ai __vector signed char 9610 vec_min(__vector signed char __a, __vector __bool char __b) { 9611 __vector signed char __bc = (__vector signed char)__b; 9612 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 9613 } 9614 9615 // This prototype is deprecated. 9616 static inline __ATTRS_o_ai __vector signed char 9617 vec_min(__vector __bool char __a, __vector signed char __b) { 9618 __vector signed char __ac = (__vector signed char)__a; 9619 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 9620 } 9621 9622 static inline __ATTRS_o_ai __vector unsigned char 9623 vec_min(__vector unsigned char __a, __vector unsigned char __b) { 9624 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9625 } 9626 9627 // This prototype is deprecated. 9628 static inline __ATTRS_o_ai __vector unsigned char 9629 vec_min(__vector unsigned char __a, __vector __bool char __b) { 9630 __vector unsigned char __bc = (__vector unsigned char)__b; 9631 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 9632 } 9633 9634 // This prototype is deprecated. 9635 static inline __ATTRS_o_ai __vector unsigned char 9636 vec_min(__vector __bool char __a, __vector unsigned char __b) { 9637 __vector unsigned char __ac = (__vector unsigned char)__a; 9638 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 9639 } 9640 9641 static inline __ATTRS_o_ai __vector signed short 9642 vec_min(__vector signed short __a, __vector signed short __b) { 9643 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9644 } 9645 9646 // This prototype is deprecated. 9647 static inline __ATTRS_o_ai __vector signed short 9648 vec_min(__vector signed short __a, __vector __bool short __b) { 9649 __vector signed short __bc = (__vector signed short)__b; 9650 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 9651 } 9652 9653 // This prototype is deprecated. 9654 static inline __ATTRS_o_ai __vector signed short 9655 vec_min(__vector __bool short __a, __vector signed short __b) { 9656 __vector signed short __ac = (__vector signed short)__a; 9657 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 9658 } 9659 9660 static inline __ATTRS_o_ai __vector unsigned short 9661 vec_min(__vector unsigned short __a, __vector unsigned short __b) { 9662 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9663 } 9664 9665 // This prototype is deprecated. 9666 static inline __ATTRS_o_ai __vector unsigned short 9667 vec_min(__vector unsigned short __a, __vector __bool short __b) { 9668 __vector unsigned short __bc = (__vector unsigned short)__b; 9669 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 9670 } 9671 9672 // This prototype is deprecated. 9673 static inline __ATTRS_o_ai __vector unsigned short 9674 vec_min(__vector __bool short __a, __vector unsigned short __b) { 9675 __vector unsigned short __ac = (__vector unsigned short)__a; 9676 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 9677 } 9678 9679 static inline __ATTRS_o_ai __vector signed int 9680 vec_min(__vector signed int __a, __vector signed int __b) { 9681 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9682 } 9683 9684 // This prototype is deprecated. 9685 static inline __ATTRS_o_ai __vector signed int 9686 vec_min(__vector signed int __a, __vector __bool int __b) { 9687 __vector signed int __bc = (__vector signed int)__b; 9688 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 9689 } 9690 9691 // This prototype is deprecated. 9692 static inline __ATTRS_o_ai __vector signed int 9693 vec_min(__vector __bool int __a, __vector signed int __b) { 9694 __vector signed int __ac = (__vector signed int)__a; 9695 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 9696 } 9697 9698 static inline __ATTRS_o_ai __vector unsigned int 9699 vec_min(__vector unsigned int __a, __vector unsigned int __b) { 9700 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9701 } 9702 9703 // This prototype is deprecated. 9704 static inline __ATTRS_o_ai __vector unsigned int 9705 vec_min(__vector unsigned int __a, __vector __bool int __b) { 9706 __vector unsigned int __bc = (__vector unsigned int)__b; 9707 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 9708 } 9709 9710 // This prototype is deprecated. 9711 static inline __ATTRS_o_ai __vector unsigned int 9712 vec_min(__vector __bool int __a, __vector unsigned int __b) { 9713 __vector unsigned int __ac = (__vector unsigned int)__a; 9714 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 9715 } 9716 9717 static inline __ATTRS_o_ai __vector signed long long 9718 vec_min(__vector signed long long __a, __vector signed long long __b) { 9719 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9720 } 9721 9722 // This prototype is deprecated. 9723 static inline __ATTRS_o_ai __vector signed long long 9724 vec_min(__vector signed long long __a, __vector __bool long long __b) { 9725 __vector signed long long __bc = (__vector signed long long)__b; 9726 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 9727 } 9728 9729 // This prototype is deprecated. 9730 static inline __ATTRS_o_ai __vector signed long long 9731 vec_min(__vector __bool long long __a, __vector signed long long __b) { 9732 __vector signed long long __ac = (__vector signed long long)__a; 9733 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 9734 } 9735 9736 static inline __ATTRS_o_ai __vector unsigned long long 9737 vec_min(__vector unsigned long long __a, __vector unsigned long long __b) { 9738 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9739 } 9740 9741 // This prototype is deprecated. 9742 static inline __ATTRS_o_ai __vector unsigned long long 9743 vec_min(__vector unsigned long long __a, __vector __bool long long __b) { 9744 __vector unsigned long long __bc = (__vector unsigned long long)__b; 9745 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 9746 } 9747 9748 // This prototype is deprecated. 9749 static inline __ATTRS_o_ai __vector unsigned long long 9750 vec_min(__vector __bool long long __a, __vector unsigned long long __b) { 9751 __vector unsigned long long __ac = (__vector unsigned long long)__a; 9752 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 9753 } 9754 9755 static inline __ATTRS_o_ai __vector signed __int128 9756 vec_min(__vector signed __int128 __a, __vector signed __int128 __b) { 9757 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9758 } 9759 9760 static inline __ATTRS_o_ai __vector unsigned __int128 9761 vec_min(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 9762 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9763 } 9764 9765 #if __ARCH__ >= 12 9766 static inline __ATTRS_o_ai __vector float 9767 vec_min(__vector float __a, __vector float __b) { 9768 return __builtin_s390_vfminsb(__a, __b, 0); 9769 } 9770 #endif 9771 9772 static inline __ATTRS_o_ai __vector double 9773 vec_min(__vector double __a, __vector double __b) { 9774 #if __ARCH__ >= 12 9775 return __builtin_s390_vfmindb(__a, __b, 0); 9776 #else 9777 return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 9778 #endif 9779 } 9780 9781 /*-- vec_add_u128 -----------------------------------------------------------*/ 9782 9783 // This prototype is deprecated. 9784 static inline __ATTRS_ai __vector unsigned char 9785 vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) { 9786 return (__vector unsigned char)(__vector unsigned __int128) 9787 ((__int128)__a + (__int128)__b); 9788 } 9789 9790 /*-- vec_addc ---------------------------------------------------------------*/ 9791 9792 static inline __ATTRS_o_ai __vector unsigned char 9793 vec_addc(__vector unsigned char __a, __vector unsigned char __b) { 9794 return __builtin_s390_vaccb(__a, __b); 9795 } 9796 9797 static inline __ATTRS_o_ai __vector unsigned short 9798 vec_addc(__vector unsigned short __a, __vector unsigned short __b) { 9799 return __builtin_s390_vacch(__a, __b); 9800 } 9801 9802 static inline __ATTRS_o_ai __vector unsigned int 9803 vec_addc(__vector unsigned int __a, __vector unsigned int __b) { 9804 return __builtin_s390_vaccf(__a, __b); 9805 } 9806 9807 static inline __ATTRS_o_ai __vector unsigned long long 9808 vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) { 9809 return __builtin_s390_vaccg(__a, __b); 9810 } 9811 9812 static inline __ATTRS_o_ai __vector unsigned __int128 9813 vec_addc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 9814 return (__vector unsigned __int128) 9815 __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b); 9816 } 9817 9818 /*-- vec_addc_u128 ----------------------------------------------------------*/ 9819 9820 // This prototype is deprecated. 9821 static inline __ATTRS_ai __vector unsigned char 9822 vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) { 9823 return (__vector unsigned char)(__vector unsigned __int128) 9824 __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b); 9825 } 9826 9827 /*-- vec_adde ---------------------------------------------------------------*/ 9828 9829 static inline __ATTRS_ai __vector unsigned __int128 9830 vec_adde(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 9831 __vector unsigned __int128 __c) { 9832 return (__vector unsigned __int128) 9833 __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b, 9834 (unsigned __int128)__c); 9835 } 9836 9837 /*-- vec_adde_u128 ----------------------------------------------------------*/ 9838 9839 // This prototype is deprecated. 9840 static inline __ATTRS_ai __vector unsigned char 9841 vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b, 9842 __vector unsigned char __c) { 9843 return (__vector unsigned char)(__vector unsigned __int128) 9844 __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b, 9845 (unsigned __int128)__c); 9846 } 9847 9848 /*-- vec_addec --------------------------------------------------------------*/ 9849 9850 static inline __ATTRS_ai __vector unsigned __int128 9851 vec_addec(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 9852 __vector unsigned __int128 __c) { 9853 return (__vector unsigned __int128) 9854 __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b, 9855 (unsigned __int128)__c); 9856 } 9857 9858 /*-- vec_addec_u128 ---------------------------------------------------------*/ 9859 9860 // This prototype is deprecated. 9861 static inline __ATTRS_ai __vector unsigned char 9862 vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b, 9863 __vector unsigned char __c) { 9864 return (__vector unsigned char)(__vector unsigned __int128) 9865 __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b, 9866 (unsigned __int128)__c); 9867 } 9868 9869 /*-- vec_avg ----------------------------------------------------------------*/ 9870 9871 static inline __ATTRS_o_ai __vector signed char 9872 vec_avg(__vector signed char __a, __vector signed char __b) { 9873 return __builtin_s390_vavgb(__a, __b); 9874 } 9875 9876 static inline __ATTRS_o_ai __vector signed short 9877 vec_avg(__vector signed short __a, __vector signed short __b) { 9878 return __builtin_s390_vavgh(__a, __b); 9879 } 9880 9881 static inline __ATTRS_o_ai __vector signed int 9882 vec_avg(__vector signed int __a, __vector signed int __b) { 9883 return __builtin_s390_vavgf(__a, __b); 9884 } 9885 9886 static inline __ATTRS_o_ai __vector signed long long 9887 vec_avg(__vector signed long long __a, __vector signed long long __b) { 9888 return __builtin_s390_vavgg(__a, __b); 9889 } 9890 9891 #if __ARCH__ >= 15 9892 static inline __ATTRS_o_ai __vector signed __int128 9893 vec_avg(__vector signed __int128 __a, __vector signed __int128 __b) { 9894 return (__vector signed __int128) 9895 __builtin_s390_vavgq((signed __int128)__a, (signed __int128)__b); 9896 } 9897 #endif 9898 9899 static inline __ATTRS_o_ai __vector unsigned char 9900 vec_avg(__vector unsigned char __a, __vector unsigned char __b) { 9901 return __builtin_s390_vavglb(__a, __b); 9902 } 9903 9904 static inline __ATTRS_o_ai __vector unsigned short 9905 vec_avg(__vector unsigned short __a, __vector unsigned short __b) { 9906 return __builtin_s390_vavglh(__a, __b); 9907 } 9908 9909 static inline __ATTRS_o_ai __vector unsigned int 9910 vec_avg(__vector unsigned int __a, __vector unsigned int __b) { 9911 return __builtin_s390_vavglf(__a, __b); 9912 } 9913 9914 static inline __ATTRS_o_ai __vector unsigned long long 9915 vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) { 9916 return __builtin_s390_vavglg(__a, __b); 9917 } 9918 9919 #if __ARCH__ >= 15 9920 static inline __ATTRS_o_ai __vector unsigned __int128 9921 vec_avg(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 9922 return (__vector unsigned __int128) 9923 __builtin_s390_vavglq((unsigned __int128)__a, (unsigned __int128)__b); 9924 } 9925 #endif 9926 9927 /*-- vec_checksum -----------------------------------------------------------*/ 9928 9929 static inline __ATTRS_ai __vector unsigned int 9930 vec_checksum(__vector unsigned int __a, __vector unsigned int __b) { 9931 return __builtin_s390_vcksm(__a, __b); 9932 } 9933 9934 /*-- vec_gfmsum -------------------------------------------------------------*/ 9935 9936 static inline __ATTRS_o_ai __vector unsigned short 9937 vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) { 9938 return __builtin_s390_vgfmb(__a, __b); 9939 } 9940 9941 static inline __ATTRS_o_ai __vector unsigned int 9942 vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) { 9943 return __builtin_s390_vgfmh(__a, __b); 9944 } 9945 9946 static inline __ATTRS_o_ai __vector unsigned long long 9947 vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) { 9948 return __builtin_s390_vgfmf(__a, __b); 9949 } 9950 9951 static inline __ATTRS_o_ai __vector unsigned __int128 9952 vec_gfmsum(__vector unsigned long long __a, __vector unsigned long long __b) { 9953 return (__vector unsigned __int128)__builtin_s390_vgfmg(__a, __b); 9954 } 9955 9956 /*-- vec_gfmsum_128 ---------------------------------------------------------*/ 9957 9958 // This prototype is deprecated. 9959 static inline __ATTRS_o_ai __vector unsigned char 9960 vec_gfmsum_128(__vector unsigned long long __a, 9961 __vector unsigned long long __b) { 9962 return (__vector unsigned char)(__vector unsigned __int128) 9963 __builtin_s390_vgfmg(__a, __b); 9964 } 9965 9966 /*-- vec_gfmsum_accum -------------------------------------------------------*/ 9967 9968 static inline __ATTRS_o_ai __vector unsigned short 9969 vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b, 9970 __vector unsigned short __c) { 9971 return __builtin_s390_vgfmab(__a, __b, __c); 9972 } 9973 9974 static inline __ATTRS_o_ai __vector unsigned int 9975 vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b, 9976 __vector unsigned int __c) { 9977 return __builtin_s390_vgfmah(__a, __b, __c); 9978 } 9979 9980 static inline __ATTRS_o_ai __vector unsigned long long 9981 vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b, 9982 __vector unsigned long long __c) { 9983 return __builtin_s390_vgfmaf(__a, __b, __c); 9984 } 9985 9986 static inline __ATTRS_o_ai __vector unsigned __int128 9987 vec_gfmsum_accum(__vector unsigned long long __a, __vector unsigned long long __b, 9988 __vector unsigned __int128 __c) { 9989 return (__vector unsigned __int128) 9990 __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c); 9991 } 9992 9993 /*-- vec_gfmsum_accum_128 ---------------------------------------------------*/ 9994 9995 // This prototype is deprecated. 9996 static inline __ATTRS_o_ai __vector unsigned char 9997 vec_gfmsum_accum_128(__vector unsigned long long __a, 9998 __vector unsigned long long __b, 9999 __vector unsigned char __c) { 10000 return (__vector unsigned char)(__vector unsigned __int128) 10001 __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c); 10002 } 10003 10004 /*-- vec_mladd --------------------------------------------------------------*/ 10005 10006 static inline __ATTRS_o_ai __vector signed char 10007 vec_mladd(__vector signed char __a, __vector signed char __b, 10008 __vector signed char __c) { 10009 return __a * __b + __c; 10010 } 10011 10012 static inline __ATTRS_o_ai __vector signed char 10013 vec_mladd(__vector unsigned char __a, __vector signed char __b, 10014 __vector signed char __c) { 10015 return (__vector signed char)__a * __b + __c; 10016 } 10017 10018 static inline __ATTRS_o_ai __vector signed char 10019 vec_mladd(__vector signed char __a, __vector unsigned char __b, 10020 __vector unsigned char __c) { 10021 return __a * (__vector signed char)__b + (__vector signed char)__c; 10022 } 10023 10024 static inline __ATTRS_o_ai __vector unsigned char 10025 vec_mladd(__vector unsigned char __a, __vector unsigned char __b, 10026 __vector unsigned char __c) { 10027 return __a * __b + __c; 10028 } 10029 10030 static inline __ATTRS_o_ai __vector signed short 10031 vec_mladd(__vector signed short __a, __vector signed short __b, 10032 __vector signed short __c) { 10033 return __a * __b + __c; 10034 } 10035 10036 static inline __ATTRS_o_ai __vector signed short 10037 vec_mladd(__vector unsigned short __a, __vector signed short __b, 10038 __vector signed short __c) { 10039 return (__vector signed short)__a * __b + __c; 10040 } 10041 10042 static inline __ATTRS_o_ai __vector signed short 10043 vec_mladd(__vector signed short __a, __vector unsigned short __b, 10044 __vector unsigned short __c) { 10045 return __a * (__vector signed short)__b + (__vector signed short)__c; 10046 } 10047 10048 static inline __ATTRS_o_ai __vector unsigned short 10049 vec_mladd(__vector unsigned short __a, __vector unsigned short __b, 10050 __vector unsigned short __c) { 10051 return __a * __b + __c; 10052 } 10053 10054 static inline __ATTRS_o_ai __vector signed int 10055 vec_mladd(__vector signed int __a, __vector signed int __b, 10056 __vector signed int __c) { 10057 return __a * __b + __c; 10058 } 10059 10060 static inline __ATTRS_o_ai __vector signed int 10061 vec_mladd(__vector unsigned int __a, __vector signed int __b, 10062 __vector signed int __c) { 10063 return (__vector signed int)__a * __b + __c; 10064 } 10065 10066 static inline __ATTRS_o_ai __vector signed int 10067 vec_mladd(__vector signed int __a, __vector unsigned int __b, 10068 __vector unsigned int __c) { 10069 return __a * (__vector signed int)__b + (__vector signed int)__c; 10070 } 10071 10072 static inline __ATTRS_o_ai __vector unsigned int 10073 vec_mladd(__vector unsigned int __a, __vector unsigned int __b, 10074 __vector unsigned int __c) { 10075 return __a * __b + __c; 10076 } 10077 10078 #if __ARCH__ >= 15 10079 static inline __ATTRS_o_ai __vector signed long long 10080 vec_mladd(__vector signed long long __a, __vector signed long long __b, 10081 __vector signed long long __c) { 10082 return __a * __b + __c; 10083 } 10084 10085 static inline __ATTRS_o_ai __vector signed long long 10086 vec_mladd(__vector unsigned long long __a, __vector signed long long __b, 10087 __vector signed long long __c) { 10088 return (__vector signed long long)__a * __b + __c; 10089 } 10090 10091 static inline __ATTRS_o_ai __vector signed long long 10092 vec_mladd(__vector signed long long __a, __vector unsigned long long __b, 10093 __vector unsigned long long __c) { 10094 return __a * (__vector signed long long)__b + (__vector signed long long)__c; 10095 } 10096 10097 static inline __ATTRS_o_ai __vector unsigned long long 10098 vec_mladd(__vector unsigned long long __a, __vector unsigned long long __b, 10099 __vector unsigned long long __c) { 10100 return __a * __b + __c; 10101 } 10102 10103 static inline __ATTRS_o_ai __vector signed __int128 10104 vec_mladd(__vector signed __int128 __a, __vector signed __int128 __b, 10105 __vector signed __int128 __c) { 10106 return __a * __b + __c; 10107 } 10108 10109 static inline __ATTRS_o_ai __vector signed __int128 10110 vec_mladd(__vector unsigned __int128 __a, __vector signed __int128 __b, 10111 __vector signed __int128 __c) { 10112 return (__vector signed __int128)__a * __b + __c; 10113 } 10114 10115 static inline __ATTRS_o_ai __vector signed __int128 10116 vec_mladd(__vector signed __int128 __a, __vector unsigned __int128 __b, 10117 __vector unsigned __int128 __c) { 10118 return __a * (__vector signed __int128)__b + (__vector signed __int128)__c; 10119 } 10120 10121 static inline __ATTRS_o_ai __vector unsigned __int128 10122 vec_mladd(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 10123 __vector unsigned __int128 __c) { 10124 return __a * __b + __c; 10125 } 10126 #endif 10127 10128 /*-- vec_mhadd --------------------------------------------------------------*/ 10129 10130 static inline __ATTRS_o_ai __vector signed char 10131 vec_mhadd(__vector signed char __a, __vector signed char __b, 10132 __vector signed char __c) { 10133 return __builtin_s390_vmahb(__a, __b, __c); 10134 } 10135 10136 static inline __ATTRS_o_ai __vector unsigned char 10137 vec_mhadd(__vector unsigned char __a, __vector unsigned char __b, 10138 __vector unsigned char __c) { 10139 return __builtin_s390_vmalhb(__a, __b, __c); 10140 } 10141 10142 static inline __ATTRS_o_ai __vector signed short 10143 vec_mhadd(__vector signed short __a, __vector signed short __b, 10144 __vector signed short __c) { 10145 return __builtin_s390_vmahh(__a, __b, __c); 10146 } 10147 10148 static inline __ATTRS_o_ai __vector unsigned short 10149 vec_mhadd(__vector unsigned short __a, __vector unsigned short __b, 10150 __vector unsigned short __c) { 10151 return __builtin_s390_vmalhh(__a, __b, __c); 10152 } 10153 10154 static inline __ATTRS_o_ai __vector signed int 10155 vec_mhadd(__vector signed int __a, __vector signed int __b, 10156 __vector signed int __c) { 10157 return __builtin_s390_vmahf(__a, __b, __c); 10158 } 10159 10160 static inline __ATTRS_o_ai __vector unsigned int 10161 vec_mhadd(__vector unsigned int __a, __vector unsigned int __b, 10162 __vector unsigned int __c) { 10163 return __builtin_s390_vmalhf(__a, __b, __c); 10164 } 10165 10166 #if __ARCH__ >= 15 10167 static inline __ATTRS_o_ai __vector signed long long 10168 vec_mhadd(__vector signed long long __a, __vector signed long long __b, 10169 __vector signed long long __c) { 10170 return __builtin_s390_vmahg(__a, __b, __c); 10171 } 10172 10173 static inline __ATTRS_o_ai __vector unsigned long long 10174 vec_mhadd(__vector unsigned long long __a, __vector unsigned long long __b, 10175 __vector unsigned long long __c) { 10176 return __builtin_s390_vmalhg(__a, __b, __c); 10177 } 10178 10179 static inline __ATTRS_o_ai __vector signed __int128 10180 vec_mhadd(__vector signed __int128 __a, __vector signed __int128 __b, 10181 __vector signed __int128 __c) { 10182 return (__vector signed __int128) 10183 __builtin_s390_vmahq((signed __int128)__a, (signed __int128)__b, (signed __int128)__c); 10184 } 10185 10186 static inline __ATTRS_o_ai __vector unsigned __int128 10187 vec_mhadd(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 10188 __vector unsigned __int128 __c) { 10189 return (__vector unsigned __int128) 10190 __builtin_s390_vmalhq((unsigned __int128)__a, (unsigned __int128)__b, (unsigned __int128)__c); 10191 } 10192 #endif 10193 10194 /*-- vec_meadd --------------------------------------------------------------*/ 10195 10196 static inline __ATTRS_o_ai __vector signed short 10197 vec_meadd(__vector signed char __a, __vector signed char __b, 10198 __vector signed short __c) { 10199 return __builtin_s390_vmaeb(__a, __b, __c); 10200 } 10201 10202 static inline __ATTRS_o_ai __vector unsigned short 10203 vec_meadd(__vector unsigned char __a, __vector unsigned char __b, 10204 __vector unsigned short __c) { 10205 return __builtin_s390_vmaleb(__a, __b, __c); 10206 } 10207 10208 static inline __ATTRS_o_ai __vector signed int 10209 vec_meadd(__vector signed short __a, __vector signed short __b, 10210 __vector signed int __c) { 10211 return __builtin_s390_vmaeh(__a, __b, __c); 10212 } 10213 10214 static inline __ATTRS_o_ai __vector unsigned int 10215 vec_meadd(__vector unsigned short __a, __vector unsigned short __b, 10216 __vector unsigned int __c) { 10217 return __builtin_s390_vmaleh(__a, __b, __c); 10218 } 10219 10220 static inline __ATTRS_o_ai __vector signed long long 10221 vec_meadd(__vector signed int __a, __vector signed int __b, 10222 __vector signed long long __c) { 10223 return __builtin_s390_vmaef(__a, __b, __c); 10224 } 10225 10226 static inline __ATTRS_o_ai __vector unsigned long long 10227 vec_meadd(__vector unsigned int __a, __vector unsigned int __b, 10228 __vector unsigned long long __c) { 10229 return __builtin_s390_vmalef(__a, __b, __c); 10230 } 10231 10232 #if __ARCH__ >= 15 10233 static inline __ATTRS_o_ai __vector signed __int128 10234 vec_meadd(__vector signed long long __a, __vector signed long long __b, 10235 __vector signed __int128 __c) { 10236 return (__vector signed __int128) 10237 __builtin_s390_vmaeg(__a, __b, (signed __int128)__c); 10238 } 10239 10240 static inline __ATTRS_o_ai __vector unsigned __int128 10241 vec_meadd(__vector unsigned long long __a, __vector unsigned long long __b, 10242 __vector unsigned __int128 __c) { 10243 return (__vector unsigned __int128) 10244 __builtin_s390_vmaleg(__a, __b, (unsigned __int128)__c); 10245 } 10246 #endif 10247 10248 /*-- vec_moadd --------------------------------------------------------------*/ 10249 10250 static inline __ATTRS_o_ai __vector signed short 10251 vec_moadd(__vector signed char __a, __vector signed char __b, 10252 __vector signed short __c) { 10253 return __builtin_s390_vmaob(__a, __b, __c); 10254 } 10255 10256 static inline __ATTRS_o_ai __vector unsigned short 10257 vec_moadd(__vector unsigned char __a, __vector unsigned char __b, 10258 __vector unsigned short __c) { 10259 return __builtin_s390_vmalob(__a, __b, __c); 10260 } 10261 10262 static inline __ATTRS_o_ai __vector signed int 10263 vec_moadd(__vector signed short __a, __vector signed short __b, 10264 __vector signed int __c) { 10265 return __builtin_s390_vmaoh(__a, __b, __c); 10266 } 10267 10268 static inline __ATTRS_o_ai __vector unsigned int 10269 vec_moadd(__vector unsigned short __a, __vector unsigned short __b, 10270 __vector unsigned int __c) { 10271 return __builtin_s390_vmaloh(__a, __b, __c); 10272 } 10273 10274 static inline __ATTRS_o_ai __vector signed long long 10275 vec_moadd(__vector signed int __a, __vector signed int __b, 10276 __vector signed long long __c) { 10277 return __builtin_s390_vmaof(__a, __b, __c); 10278 } 10279 10280 static inline __ATTRS_o_ai __vector unsigned long long 10281 vec_moadd(__vector unsigned int __a, __vector unsigned int __b, 10282 __vector unsigned long long __c) { 10283 return __builtin_s390_vmalof(__a, __b, __c); 10284 } 10285 10286 #if __ARCH__ >= 15 10287 static inline __ATTRS_o_ai __vector signed __int128 10288 vec_moadd(__vector signed long long __a, __vector signed long long __b, 10289 __vector signed __int128 __c) { 10290 return (__vector signed __int128) 10291 __builtin_s390_vmaog(__a, __b, (signed __int128)__c); 10292 } 10293 10294 static inline __ATTRS_o_ai __vector unsigned __int128 10295 vec_moadd(__vector unsigned long long __a, __vector unsigned long long __b, 10296 __vector unsigned __int128 __c) { 10297 return (__vector unsigned __int128) 10298 __builtin_s390_vmalog(__a, __b, (unsigned __int128)__c); 10299 } 10300 #endif 10301 10302 /*-- vec_mulh ---------------------------------------------------------------*/ 10303 10304 static inline __ATTRS_o_ai __vector signed char 10305 vec_mulh(__vector signed char __a, __vector signed char __b) { 10306 return __builtin_s390_vmhb(__a, __b); 10307 } 10308 10309 static inline __ATTRS_o_ai __vector unsigned char 10310 vec_mulh(__vector unsigned char __a, __vector unsigned char __b) { 10311 return __builtin_s390_vmlhb(__a, __b); 10312 } 10313 10314 static inline __ATTRS_o_ai __vector signed short 10315 vec_mulh(__vector signed short __a, __vector signed short __b) { 10316 return __builtin_s390_vmhh(__a, __b); 10317 } 10318 10319 static inline __ATTRS_o_ai __vector unsigned short 10320 vec_mulh(__vector unsigned short __a, __vector unsigned short __b) { 10321 return __builtin_s390_vmlhh(__a, __b); 10322 } 10323 10324 static inline __ATTRS_o_ai __vector signed int 10325 vec_mulh(__vector signed int __a, __vector signed int __b) { 10326 return __builtin_s390_vmhf(__a, __b); 10327 } 10328 10329 static inline __ATTRS_o_ai __vector unsigned int 10330 vec_mulh(__vector unsigned int __a, __vector unsigned int __b) { 10331 return __builtin_s390_vmlhf(__a, __b); 10332 } 10333 10334 #if __ARCH__ >= 15 10335 static inline __ATTRS_o_ai __vector signed long long 10336 vec_mulh(__vector signed long long __a, __vector signed long long __b) { 10337 return __builtin_s390_vmhg(__a, __b); 10338 } 10339 10340 static inline __ATTRS_o_ai __vector unsigned long long 10341 vec_mulh(__vector unsigned long long __a, __vector unsigned long long __b) { 10342 return __builtin_s390_vmlhg(__a, __b); 10343 } 10344 10345 static inline __ATTRS_o_ai __vector signed __int128 10346 vec_mulh(__vector signed __int128 __a, __vector signed __int128 __b) { 10347 return (__vector signed __int128) 10348 __builtin_s390_vmhq((signed __int128)__a, (signed __int128)__b); 10349 } 10350 10351 static inline __ATTRS_o_ai __vector unsigned __int128 10352 vec_mulh(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 10353 return (__vector unsigned __int128) 10354 __builtin_s390_vmlhq((unsigned __int128)__a, (unsigned __int128)__b); 10355 } 10356 #endif 10357 10358 /*-- vec_mule ---------------------------------------------------------------*/ 10359 10360 static inline __ATTRS_o_ai __vector signed short 10361 vec_mule(__vector signed char __a, __vector signed char __b) { 10362 return __builtin_s390_vmeb(__a, __b); 10363 } 10364 10365 static inline __ATTRS_o_ai __vector unsigned short 10366 vec_mule(__vector unsigned char __a, __vector unsigned char __b) { 10367 return __builtin_s390_vmleb(__a, __b); 10368 } 10369 10370 static inline __ATTRS_o_ai __vector signed int 10371 vec_mule(__vector signed short __a, __vector signed short __b) { 10372 return __builtin_s390_vmeh(__a, __b); 10373 } 10374 10375 static inline __ATTRS_o_ai __vector unsigned int 10376 vec_mule(__vector unsigned short __a, __vector unsigned short __b) { 10377 return __builtin_s390_vmleh(__a, __b); 10378 } 10379 10380 static inline __ATTRS_o_ai __vector signed long long 10381 vec_mule(__vector signed int __a, __vector signed int __b) { 10382 return __builtin_s390_vmef(__a, __b); 10383 } 10384 10385 static inline __ATTRS_o_ai __vector unsigned long long 10386 vec_mule(__vector unsigned int __a, __vector unsigned int __b) { 10387 return __builtin_s390_vmlef(__a, __b); 10388 } 10389 10390 #if __ARCH__ >= 15 10391 static inline __ATTRS_o_ai __vector signed __int128 10392 vec_mule(__vector signed long long __a, __vector signed long long __b) { 10393 return (__vector signed __int128)__builtin_s390_vmeg(__a, __b); 10394 } 10395 10396 static inline __ATTRS_o_ai __vector unsigned __int128 10397 vec_mule(__vector unsigned long long __a, __vector unsigned long long __b) { 10398 return (__vector unsigned __int128)__builtin_s390_vmleg(__a, __b); 10399 } 10400 #endif 10401 10402 /*-- vec_mulo ---------------------------------------------------------------*/ 10403 10404 static inline __ATTRS_o_ai __vector signed short 10405 vec_mulo(__vector signed char __a, __vector signed char __b) { 10406 return __builtin_s390_vmob(__a, __b); 10407 } 10408 10409 static inline __ATTRS_o_ai __vector unsigned short 10410 vec_mulo(__vector unsigned char __a, __vector unsigned char __b) { 10411 return __builtin_s390_vmlob(__a, __b); 10412 } 10413 10414 static inline __ATTRS_o_ai __vector signed int 10415 vec_mulo(__vector signed short __a, __vector signed short __b) { 10416 return __builtin_s390_vmoh(__a, __b); 10417 } 10418 10419 static inline __ATTRS_o_ai __vector unsigned int 10420 vec_mulo(__vector unsigned short __a, __vector unsigned short __b) { 10421 return __builtin_s390_vmloh(__a, __b); 10422 } 10423 10424 static inline __ATTRS_o_ai __vector signed long long 10425 vec_mulo(__vector signed int __a, __vector signed int __b) { 10426 return __builtin_s390_vmof(__a, __b); 10427 } 10428 10429 static inline __ATTRS_o_ai __vector unsigned long long 10430 vec_mulo(__vector unsigned int __a, __vector unsigned int __b) { 10431 return __builtin_s390_vmlof(__a, __b); 10432 } 10433 10434 #if __ARCH__ >= 15 10435 static inline __ATTRS_o_ai __vector signed __int128 10436 vec_mulo(__vector signed long long __a, __vector signed long long __b) { 10437 return (__vector signed __int128)__builtin_s390_vmog(__a, __b); 10438 } 10439 10440 static inline __ATTRS_o_ai __vector unsigned __int128 10441 vec_mulo(__vector unsigned long long __a, __vector unsigned long long __b) { 10442 return (__vector unsigned __int128)__builtin_s390_vmlog(__a, __b); 10443 } 10444 #endif 10445 10446 /*-- vec_msum ---------------------------------------------------------------*/ 10447 10448 #if __ARCH__ >= 12 10449 extern __ATTRS_o __vector unsigned __int128 10450 vec_msum(__vector unsigned long long __a, __vector unsigned long long __b, 10451 __vector unsigned __int128 __c, int __d) 10452 __constant_range(__d, 0, 15); 10453 10454 #define vec_msum(X, Y, Z, W) \ 10455 ((__typeof__((vec_msum)((X), (Y), (Z), (W)))) \ 10456 __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W))) 10457 #endif 10458 10459 /*-- vec_msum_u128 ----------------------------------------------------------*/ 10460 10461 #if __ARCH__ >= 12 10462 // This prototype is deprecated. 10463 extern __ATTRS_o __vector unsigned char 10464 vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b, 10465 __vector unsigned char __c, int __d) 10466 __constant_range(__d, 0, 15); 10467 10468 #define vec_msum_u128(X, Y, Z, W) \ 10469 ((__typeof__((vec_msum_u128)((X), (Y), (Z), (W)))) \ 10470 (__vector unsigned __int128) \ 10471 __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W))) 10472 #endif 10473 10474 /*-- vec_sub_u128 -----------------------------------------------------------*/ 10475 10476 // This prototype is deprecated. 10477 static inline __ATTRS_ai __vector unsigned char 10478 vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) { 10479 return (__vector unsigned char)(__vector unsigned __int128) 10480 ((__int128)__a - (__int128)__b); 10481 } 10482 10483 /*-- vec_subc ---------------------------------------------------------------*/ 10484 10485 static inline __ATTRS_o_ai __vector unsigned char 10486 vec_subc(__vector unsigned char __a, __vector unsigned char __b) { 10487 return __builtin_s390_vscbib(__a, __b); 10488 } 10489 10490 static inline __ATTRS_o_ai __vector unsigned short 10491 vec_subc(__vector unsigned short __a, __vector unsigned short __b) { 10492 return __builtin_s390_vscbih(__a, __b); 10493 } 10494 10495 static inline __ATTRS_o_ai __vector unsigned int 10496 vec_subc(__vector unsigned int __a, __vector unsigned int __b) { 10497 return __builtin_s390_vscbif(__a, __b); 10498 } 10499 10500 static inline __ATTRS_o_ai __vector unsigned long long 10501 vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) { 10502 return __builtin_s390_vscbig(__a, __b); 10503 } 10504 10505 static inline __ATTRS_o_ai __vector unsigned __int128 10506 vec_subc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) { 10507 return (__vector unsigned __int128) 10508 __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b); 10509 } 10510 10511 /*-- vec_subc_u128 ----------------------------------------------------------*/ 10512 10513 // This prototype is deprecated. 10514 static inline __ATTRS_ai __vector unsigned char 10515 vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) { 10516 return (__vector unsigned char)(__vector unsigned __int128) 10517 __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b); 10518 } 10519 10520 /*-- vec_sube ---------------------------------------------------------------*/ 10521 10522 static inline __ATTRS_ai __vector unsigned __int128 10523 vec_sube(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 10524 __vector unsigned __int128 __c) { 10525 return (__vector unsigned __int128) 10526 __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b, 10527 (unsigned __int128)__c); 10528 } 10529 10530 /*-- vec_sube_u128 ----------------------------------------------------------*/ 10531 10532 // This prototype is deprecated. 10533 static inline __ATTRS_ai __vector unsigned char 10534 vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b, 10535 __vector unsigned char __c) { 10536 return (__vector unsigned char)(__vector unsigned __int128) 10537 __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b, 10538 (unsigned __int128)__c); 10539 } 10540 10541 /*-- vec_subec --------------------------------------------------------------*/ 10542 10543 static inline __ATTRS_ai __vector unsigned __int128 10544 vec_subec(__vector unsigned __int128 __a, __vector unsigned __int128 __b, 10545 __vector unsigned __int128 __c) { 10546 return (__vector unsigned __int128) 10547 __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b, 10548 (unsigned __int128)__c); 10549 } 10550 10551 /*-- vec_subec_u128 ---------------------------------------------------------*/ 10552 10553 // This prototype is deprecated. 10554 static inline __ATTRS_ai __vector unsigned char 10555 vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b, 10556 __vector unsigned char __c) { 10557 return (__vector unsigned char)(__vector unsigned __int128) 10558 __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b, 10559 (unsigned __int128)__c); 10560 } 10561 10562 /*-- vec_sum2 ---------------------------------------------------------------*/ 10563 10564 static inline __ATTRS_o_ai __vector unsigned long long 10565 vec_sum2(__vector unsigned short __a, __vector unsigned short __b) { 10566 return __builtin_s390_vsumgh(__a, __b); 10567 } 10568 10569 static inline __ATTRS_o_ai __vector unsigned long long 10570 vec_sum2(__vector unsigned int __a, __vector unsigned int __b) { 10571 return __builtin_s390_vsumgf(__a, __b); 10572 } 10573 10574 /*-- vec_sum ----------------------------------------------------------------*/ 10575 10576 static inline __ATTRS_o_ai __vector unsigned __int128 10577 vec_sum(__vector unsigned int __a, __vector unsigned int __b) { 10578 return (__vector unsigned __int128)__builtin_s390_vsumqf(__a, __b); 10579 } 10580 10581 static inline __ATTRS_o_ai __vector unsigned __int128 10582 vec_sum(__vector unsigned long long __a, __vector unsigned long long __b) { 10583 return (__vector unsigned __int128)__builtin_s390_vsumqg(__a, __b); 10584 } 10585 10586 /*-- vec_sum_u128 -----------------------------------------------------------*/ 10587 10588 // This prototype is deprecated. 10589 static inline __ATTRS_o_ai __vector unsigned char 10590 vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) { 10591 return (__vector unsigned char)(__vector unsigned __int128) 10592 __builtin_s390_vsumqf(__a, __b); 10593 } 10594 10595 // This prototype is deprecated. 10596 static inline __ATTRS_o_ai __vector unsigned char 10597 vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) { 10598 return (__vector unsigned char)(__vector unsigned __int128) 10599 __builtin_s390_vsumqg(__a, __b); 10600 } 10601 10602 /*-- vec_sum4 ---------------------------------------------------------------*/ 10603 10604 static inline __ATTRS_o_ai __vector unsigned int 10605 vec_sum4(__vector unsigned char __a, __vector unsigned char __b) { 10606 return __builtin_s390_vsumb(__a, __b); 10607 } 10608 10609 static inline __ATTRS_o_ai __vector unsigned int 10610 vec_sum4(__vector unsigned short __a, __vector unsigned short __b) { 10611 return __builtin_s390_vsumh(__a, __b); 10612 } 10613 10614 /*-- vec_test_mask ----------------------------------------------------------*/ 10615 10616 static inline __ATTRS_o_ai int 10617 vec_test_mask(__vector signed char __a, __vector unsigned char __b) { 10618 return __builtin_s390_vtm((__vector unsigned char)__a, 10619 (__vector unsigned char)__b); 10620 } 10621 10622 static inline __ATTRS_o_ai int 10623 vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) { 10624 return __builtin_s390_vtm(__a, __b); 10625 } 10626 10627 static inline __ATTRS_o_ai int 10628 vec_test_mask(__vector signed short __a, __vector unsigned short __b) { 10629 return __builtin_s390_vtm((__vector unsigned char)__a, 10630 (__vector unsigned char)__b); 10631 } 10632 10633 static inline __ATTRS_o_ai int 10634 vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) { 10635 return __builtin_s390_vtm((__vector unsigned char)__a, 10636 (__vector unsigned char)__b); 10637 } 10638 10639 static inline __ATTRS_o_ai int 10640 vec_test_mask(__vector signed int __a, __vector unsigned int __b) { 10641 return __builtin_s390_vtm((__vector unsigned char)__a, 10642 (__vector unsigned char)__b); 10643 } 10644 10645 static inline __ATTRS_o_ai int 10646 vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) { 10647 return __builtin_s390_vtm((__vector unsigned char)__a, 10648 (__vector unsigned char)__b); 10649 } 10650 10651 static inline __ATTRS_o_ai int 10652 vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) { 10653 return __builtin_s390_vtm((__vector unsigned char)__a, 10654 (__vector unsigned char)__b); 10655 } 10656 10657 static inline __ATTRS_o_ai int 10658 vec_test_mask(__vector unsigned long long __a, 10659 __vector unsigned long long __b) { 10660 return __builtin_s390_vtm((__vector unsigned char)__a, 10661 (__vector unsigned char)__b); 10662 } 10663 10664 static inline __ATTRS_o_ai int 10665 vec_test_mask(__vector signed __int128 __a, __vector unsigned __int128 __b) { 10666 return __builtin_s390_vtm((__vector unsigned char)__a, 10667 (__vector unsigned char)__b); 10668 } 10669 10670 static inline __ATTRS_o_ai int 10671 vec_test_mask(__vector unsigned __int128 __a, 10672 __vector unsigned __int128 __b) { 10673 return __builtin_s390_vtm((__vector unsigned char)__a, 10674 (__vector unsigned char)__b); 10675 } 10676 10677 #if __ARCH__ >= 12 10678 static inline __ATTRS_o_ai int 10679 vec_test_mask(__vector float __a, __vector unsigned int __b) { 10680 return __builtin_s390_vtm((__vector unsigned char)__a, 10681 (__vector unsigned char)__b); 10682 } 10683 #endif 10684 10685 static inline __ATTRS_o_ai int 10686 vec_test_mask(__vector double __a, __vector unsigned long long __b) { 10687 return __builtin_s390_vtm((__vector unsigned char)__a, 10688 (__vector unsigned char)__b); 10689 } 10690 10691 /*-- vec_madd ---------------------------------------------------------------*/ 10692 10693 #if __ARCH__ >= 12 10694 static inline __ATTRS_o_ai __vector float 10695 vec_madd(__vector float __a, __vector float __b, __vector float __c) { 10696 return __builtin_s390_vfmasb(__a, __b, __c); 10697 } 10698 #endif 10699 10700 static inline __ATTRS_o_ai __vector double 10701 vec_madd(__vector double __a, __vector double __b, __vector double __c) { 10702 return __builtin_s390_vfmadb(__a, __b, __c); 10703 } 10704 10705 /*-- vec_msub ---------------------------------------------------------------*/ 10706 10707 #if __ARCH__ >= 12 10708 static inline __ATTRS_o_ai __vector float 10709 vec_msub(__vector float __a, __vector float __b, __vector float __c) { 10710 return __builtin_s390_vfmssb(__a, __b, __c); 10711 } 10712 #endif 10713 10714 static inline __ATTRS_o_ai __vector double 10715 vec_msub(__vector double __a, __vector double __b, __vector double __c) { 10716 return __builtin_s390_vfmsdb(__a, __b, __c); 10717 } 10718 10719 /*-- vec_nmadd ---------------------------------------------------------------*/ 10720 10721 #if __ARCH__ >= 12 10722 static inline __ATTRS_o_ai __vector float 10723 vec_nmadd(__vector float __a, __vector float __b, __vector float __c) { 10724 return __builtin_s390_vfnmasb(__a, __b, __c); 10725 } 10726 10727 static inline __ATTRS_o_ai __vector double 10728 vec_nmadd(__vector double __a, __vector double __b, __vector double __c) { 10729 return __builtin_s390_vfnmadb(__a, __b, __c); 10730 } 10731 #endif 10732 10733 /*-- vec_nmsub ---------------------------------------------------------------*/ 10734 10735 #if __ARCH__ >= 12 10736 static inline __ATTRS_o_ai __vector float 10737 vec_nmsub(__vector float __a, __vector float __b, __vector float __c) { 10738 return __builtin_s390_vfnmssb(__a, __b, __c); 10739 } 10740 10741 static inline __ATTRS_o_ai __vector double 10742 vec_nmsub(__vector double __a, __vector double __b, __vector double __c) { 10743 return __builtin_s390_vfnmsdb(__a, __b, __c); 10744 } 10745 #endif 10746 10747 /*-- vec_sqrt ---------------------------------------------------------------*/ 10748 10749 #if __ARCH__ >= 12 10750 static inline __ATTRS_o_ai __vector float 10751 vec_sqrt(__vector float __a) { 10752 return __builtin_s390_vfsqsb(__a); 10753 } 10754 #endif 10755 10756 static inline __ATTRS_o_ai __vector double 10757 vec_sqrt(__vector double __a) { 10758 return __builtin_s390_vfsqdb(__a); 10759 } 10760 10761 /*-- vec_ld2f ---------------------------------------------------------------*/ 10762 10763 // This prototype is deprecated. 10764 static inline __ATTRS_ai __vector double 10765 vec_ld2f(const float *__ptr) { 10766 typedef float __v2f32 __attribute__((__vector_size__(8))); 10767 return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double); 10768 } 10769 10770 /*-- vec_st2f ---------------------------------------------------------------*/ 10771 10772 // This prototype is deprecated. 10773 static inline __ATTRS_ai void 10774 vec_st2f(__vector double __a, float *__ptr) { 10775 typedef float __v2f32 __attribute__((__vector_size__(8))); 10776 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32); 10777 } 10778 10779 /*-- vec_ctd ----------------------------------------------------------------*/ 10780 10781 // This prototype is deprecated. 10782 static inline __ATTRS_o_ai __vector double 10783 vec_ctd(__vector signed long long __a, int __b) 10784 __constant_range(__b, 0, 31) { 10785 __vector double __conv = __builtin_convertvector(__a, __vector double); 10786 __conv *= ((__vector double)(__vector unsigned long long) 10787 ((0x3ffULL - __b) << 52)); 10788 return __conv; 10789 } 10790 10791 // This prototype is deprecated. 10792 static inline __ATTRS_o_ai __vector double 10793 vec_ctd(__vector unsigned long long __a, int __b) 10794 __constant_range(__b, 0, 31) { 10795 __vector double __conv = __builtin_convertvector(__a, __vector double); 10796 __conv *= ((__vector double)(__vector unsigned long long) 10797 ((0x3ffULL - __b) << 52)); 10798 return __conv; 10799 } 10800 10801 /*-- vec_ctsl ---------------------------------------------------------------*/ 10802 10803 // This prototype is deprecated. 10804 static inline __ATTRS_o_ai __vector signed long long 10805 vec_ctsl(__vector double __a, int __b) 10806 __constant_range(__b, 0, 31) { 10807 __a *= ((__vector double)(__vector unsigned long long) 10808 ((0x3ffULL + __b) << 52)); 10809 return __builtin_convertvector(__a, __vector signed long long); 10810 } 10811 10812 /*-- vec_ctul ---------------------------------------------------------------*/ 10813 10814 // This prototype is deprecated. 10815 static inline __ATTRS_o_ai __vector unsigned long long 10816 vec_ctul(__vector double __a, int __b) 10817 __constant_range(__b, 0, 31) { 10818 __a *= ((__vector double)(__vector unsigned long long) 10819 ((0x3ffULL + __b) << 52)); 10820 return __builtin_convertvector(__a, __vector unsigned long long); 10821 } 10822 10823 /*-- vec_doublee ------------------------------------------------------------*/ 10824 10825 #if __ARCH__ >= 12 10826 static inline __ATTRS_ai __vector double 10827 vec_doublee(__vector float __a) { 10828 typedef float __v2f32 __attribute__((__vector_size__(8))); 10829 __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2); 10830 return __builtin_convertvector(__pack, __vector double); 10831 } 10832 #endif 10833 10834 /*-- vec_floate -------------------------------------------------------------*/ 10835 10836 #if __ARCH__ >= 12 10837 static inline __ATTRS_ai __vector float 10838 vec_floate(__vector double __a) { 10839 typedef float __v2f32 __attribute__((__vector_size__(8))); 10840 __v2f32 __pack = __builtin_convertvector(__a, __v2f32); 10841 return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1); 10842 } 10843 #endif 10844 10845 /*-- vec_double -------------------------------------------------------------*/ 10846 10847 static inline __ATTRS_o_ai __vector double 10848 vec_double(__vector signed long long __a) { 10849 return __builtin_convertvector(__a, __vector double); 10850 } 10851 10852 static inline __ATTRS_o_ai __vector double 10853 vec_double(__vector unsigned long long __a) { 10854 return __builtin_convertvector(__a, __vector double); 10855 } 10856 10857 /*-- vec_float --------------------------------------------------------------*/ 10858 10859 #if __ARCH__ >= 13 10860 10861 static inline __ATTRS_o_ai __vector float 10862 vec_float(__vector signed int __a) { 10863 return __builtin_convertvector(__a, __vector float); 10864 } 10865 10866 static inline __ATTRS_o_ai __vector float 10867 vec_float(__vector unsigned int __a) { 10868 return __builtin_convertvector(__a, __vector float); 10869 } 10870 10871 #endif 10872 10873 /*-- vec_signed -------------------------------------------------------------*/ 10874 10875 static inline __ATTRS_o_ai __vector signed long long 10876 vec_signed(__vector double __a) { 10877 return __builtin_convertvector(__a, __vector signed long long); 10878 } 10879 10880 #if __ARCH__ >= 13 10881 static inline __ATTRS_o_ai __vector signed int 10882 vec_signed(__vector float __a) { 10883 return __builtin_convertvector(__a, __vector signed int); 10884 } 10885 #endif 10886 10887 /*-- vec_unsigned -----------------------------------------------------------*/ 10888 10889 static inline __ATTRS_o_ai __vector unsigned long long 10890 vec_unsigned(__vector double __a) { 10891 return __builtin_convertvector(__a, __vector unsigned long long); 10892 } 10893 10894 #if __ARCH__ >= 13 10895 static inline __ATTRS_o_ai __vector unsigned int 10896 vec_unsigned(__vector float __a) { 10897 return __builtin_convertvector(__a, __vector unsigned int); 10898 } 10899 #endif 10900 10901 /*-- vec_roundp -------------------------------------------------------------*/ 10902 10903 #if __ARCH__ >= 12 10904 static inline __ATTRS_o_ai __vector float 10905 vec_roundp(__vector float __a) { 10906 return __builtin_s390_vfisb(__a, 4, 6); 10907 } 10908 #endif 10909 10910 static inline __ATTRS_o_ai __vector double 10911 vec_roundp(__vector double __a) { 10912 return __builtin_s390_vfidb(__a, 4, 6); 10913 } 10914 10915 /*-- vec_ceil ---------------------------------------------------------------*/ 10916 10917 #if __ARCH__ >= 12 10918 static inline __ATTRS_o_ai __vector float 10919 vec_ceil(__vector float __a) { 10920 // On this platform, vec_ceil never triggers the IEEE-inexact exception. 10921 return __builtin_s390_vfisb(__a, 4, 6); 10922 } 10923 #endif 10924 10925 static inline __ATTRS_o_ai __vector double 10926 vec_ceil(__vector double __a) { 10927 // On this platform, vec_ceil never triggers the IEEE-inexact exception. 10928 return __builtin_s390_vfidb(__a, 4, 6); 10929 } 10930 10931 /*-- vec_roundm -------------------------------------------------------------*/ 10932 10933 #if __ARCH__ >= 12 10934 static inline __ATTRS_o_ai __vector float 10935 vec_roundm(__vector float __a) { 10936 return __builtin_s390_vfisb(__a, 4, 7); 10937 } 10938 #endif 10939 10940 static inline __ATTRS_o_ai __vector double 10941 vec_roundm(__vector double __a) { 10942 return __builtin_s390_vfidb(__a, 4, 7); 10943 } 10944 10945 /*-- vec_floor --------------------------------------------------------------*/ 10946 10947 #if __ARCH__ >= 12 10948 static inline __ATTRS_o_ai __vector float 10949 vec_floor(__vector float __a) { 10950 // On this platform, vec_floor never triggers the IEEE-inexact exception. 10951 return __builtin_s390_vfisb(__a, 4, 7); 10952 } 10953 #endif 10954 10955 static inline __ATTRS_o_ai __vector double 10956 vec_floor(__vector double __a) { 10957 // On this platform, vec_floor never triggers the IEEE-inexact exception. 10958 return __builtin_s390_vfidb(__a, 4, 7); 10959 } 10960 10961 /*-- vec_roundz -------------------------------------------------------------*/ 10962 10963 #if __ARCH__ >= 12 10964 static inline __ATTRS_o_ai __vector float 10965 vec_roundz(__vector float __a) { 10966 return __builtin_s390_vfisb(__a, 4, 5); 10967 } 10968 #endif 10969 10970 static inline __ATTRS_o_ai __vector double 10971 vec_roundz(__vector double __a) { 10972 return __builtin_s390_vfidb(__a, 4, 5); 10973 } 10974 10975 /*-- vec_trunc --------------------------------------------------------------*/ 10976 10977 #if __ARCH__ >= 12 10978 static inline __ATTRS_o_ai __vector float 10979 vec_trunc(__vector float __a) { 10980 // On this platform, vec_trunc never triggers the IEEE-inexact exception. 10981 return __builtin_s390_vfisb(__a, 4, 5); 10982 } 10983 #endif 10984 10985 static inline __ATTRS_o_ai __vector double 10986 vec_trunc(__vector double __a) { 10987 // On this platform, vec_trunc never triggers the IEEE-inexact exception. 10988 return __builtin_s390_vfidb(__a, 4, 5); 10989 } 10990 10991 /*-- vec_roundc -------------------------------------------------------------*/ 10992 10993 #if __ARCH__ >= 12 10994 static inline __ATTRS_o_ai __vector float 10995 vec_roundc(__vector float __a) { 10996 return __builtin_s390_vfisb(__a, 4, 0); 10997 } 10998 #endif 10999 11000 static inline __ATTRS_o_ai __vector double 11001 vec_roundc(__vector double __a) { 11002 return __builtin_s390_vfidb(__a, 4, 0); 11003 } 11004 11005 /*-- vec_rint ---------------------------------------------------------------*/ 11006 11007 #if __ARCH__ >= 12 11008 static inline __ATTRS_o_ai __vector float 11009 vec_rint(__vector float __a) { 11010 // vec_rint may trigger the IEEE-inexact exception. 11011 return __builtin_s390_vfisb(__a, 0, 0); 11012 } 11013 #endif 11014 11015 static inline __ATTRS_o_ai __vector double 11016 vec_rint(__vector double __a) { 11017 // vec_rint may trigger the IEEE-inexact exception. 11018 return __builtin_s390_vfidb(__a, 0, 0); 11019 } 11020 11021 /*-- vec_round --------------------------------------------------------------*/ 11022 11023 #if __ARCH__ >= 12 11024 static inline __ATTRS_o_ai __vector float 11025 vec_round(__vector float __a) { 11026 return __builtin_s390_vfisb(__a, 4, 4); 11027 } 11028 #endif 11029 11030 static inline __ATTRS_o_ai __vector double 11031 vec_round(__vector double __a) { 11032 return __builtin_s390_vfidb(__a, 4, 4); 11033 } 11034 11035 /*-- vec_fp_test_data_class -------------------------------------------------*/ 11036 11037 #if __ARCH__ >= 12 11038 extern __ATTRS_o __vector __bool int 11039 vec_fp_test_data_class(__vector float __a, int __b, int *__c) 11040 __constant_range(__b, 0, 4095); 11041 11042 extern __ATTRS_o __vector __bool long long 11043 vec_fp_test_data_class(__vector double __a, int __b, int *__c) 11044 __constant_range(__b, 0, 4095); 11045 11046 #define vec_fp_test_data_class(X, Y, Z) \ 11047 ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \ 11048 __extension__ ({ \ 11049 __vector unsigned char __res; \ 11050 __vector unsigned char __x = (__vector unsigned char)(X); \ 11051 int *__z = (Z); \ 11052 switch (sizeof ((X)[0])) { \ 11053 case 4: __res = (__vector unsigned char) \ 11054 __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \ 11055 break; \ 11056 default: __res = (__vector unsigned char) \ 11057 __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \ 11058 break; \ 11059 } __res; })) 11060 #else 11061 #define vec_fp_test_data_class(X, Y, Z) \ 11062 ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z))) 11063 #endif 11064 11065 #define __VEC_CLASS_FP_ZERO_P (1 << 11) 11066 #define __VEC_CLASS_FP_ZERO_N (1 << 10) 11067 #define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N) 11068 #define __VEC_CLASS_FP_NORMAL_P (1 << 9) 11069 #define __VEC_CLASS_FP_NORMAL_N (1 << 8) 11070 #define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \ 11071 __VEC_CLASS_FP_NORMAL_N) 11072 #define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7) 11073 #define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6) 11074 #define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \ 11075 __VEC_CLASS_FP_SUBNORMAL_N) 11076 #define __VEC_CLASS_FP_INFINITY_P (1 << 5) 11077 #define __VEC_CLASS_FP_INFINITY_N (1 << 4) 11078 #define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \ 11079 __VEC_CLASS_FP_INFINITY_N) 11080 #define __VEC_CLASS_FP_QNAN_P (1 << 3) 11081 #define __VEC_CLASS_FP_QNAN_N (1 << 2) 11082 #define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N) 11083 #define __VEC_CLASS_FP_SNAN_P (1 << 1) 11084 #define __VEC_CLASS_FP_SNAN_N (1 << 0) 11085 #define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N) 11086 #define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN) 11087 #define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \ 11088 __VEC_CLASS_FP_SUBNORMAL | \ 11089 __VEC_CLASS_FP_ZERO | \ 11090 __VEC_CLASS_FP_INFINITY) 11091 11092 /*-- vec_extend_to_fp32_hi --------------------------------------------------*/ 11093 11094 #if __ARCH__ >= 14 11095 #define vec_extend_to_fp32_hi(X, W) \ 11096 ((__vector float)__builtin_s390_vclfnhs((X), (W))); 11097 #endif 11098 11099 /*-- vec_extend_to_fp32_hi --------------------------------------------------*/ 11100 11101 #if __ARCH__ >= 14 11102 #define vec_extend_to_fp32_lo(X, W) \ 11103 ((__vector float)__builtin_s390_vclfnls((X), (W))); 11104 #endif 11105 11106 /*-- vec_round_from_fp32 ----------------------------------------------------*/ 11107 11108 #if __ARCH__ >= 14 11109 #define vec_round_from_fp32(X, Y, W) \ 11110 ((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W))); 11111 #endif 11112 11113 /*-- vec_convert_to_fp16 ----------------------------------------------------*/ 11114 11115 #if __ARCH__ >= 14 11116 #define vec_convert_to_fp16(X, W) \ 11117 ((__vector unsigned short)__builtin_s390_vcfn((X), (W))); 11118 #endif 11119 11120 /*-- vec_convert_from_fp16 --------------------------------------------------*/ 11121 11122 #if __ARCH__ >= 14 11123 #define vec_convert_from_fp16(X, W) \ 11124 ((__vector unsigned short)__builtin_s390_vcnf((X), (W))); 11125 #endif 11126 11127 /*-- vec_cp_until_zero ------------------------------------------------------*/ 11128 11129 static inline __ATTRS_o_ai __vector signed char 11130 vec_cp_until_zero(__vector signed char __a) { 11131 return ((__vector signed char) 11132 __builtin_s390_vistrb((__vector unsigned char)__a)); 11133 } 11134 11135 static inline __ATTRS_o_ai __vector __bool char 11136 vec_cp_until_zero(__vector __bool char __a) { 11137 return ((__vector __bool char) 11138 __builtin_s390_vistrb((__vector unsigned char)__a)); 11139 } 11140 11141 static inline __ATTRS_o_ai __vector unsigned char 11142 vec_cp_until_zero(__vector unsigned char __a) { 11143 return __builtin_s390_vistrb(__a); 11144 } 11145 11146 static inline __ATTRS_o_ai __vector signed short 11147 vec_cp_until_zero(__vector signed short __a) { 11148 return ((__vector signed short) 11149 __builtin_s390_vistrh((__vector unsigned short)__a)); 11150 } 11151 11152 static inline __ATTRS_o_ai __vector __bool short 11153 vec_cp_until_zero(__vector __bool short __a) { 11154 return ((__vector __bool short) 11155 __builtin_s390_vistrh((__vector unsigned short)__a)); 11156 } 11157 11158 static inline __ATTRS_o_ai __vector unsigned short 11159 vec_cp_until_zero(__vector unsigned short __a) { 11160 return __builtin_s390_vistrh(__a); 11161 } 11162 11163 static inline __ATTRS_o_ai __vector signed int 11164 vec_cp_until_zero(__vector signed int __a) { 11165 return ((__vector signed int) 11166 __builtin_s390_vistrf((__vector unsigned int)__a)); 11167 } 11168 11169 static inline __ATTRS_o_ai __vector __bool int 11170 vec_cp_until_zero(__vector __bool int __a) { 11171 return ((__vector __bool int) 11172 __builtin_s390_vistrf((__vector unsigned int)__a)); 11173 } 11174 11175 static inline __ATTRS_o_ai __vector unsigned int 11176 vec_cp_until_zero(__vector unsigned int __a) { 11177 return __builtin_s390_vistrf(__a); 11178 } 11179 11180 /*-- vec_cp_until_zero_cc ---------------------------------------------------*/ 11181 11182 static inline __ATTRS_o_ai __vector signed char 11183 vec_cp_until_zero_cc(__vector signed char __a, int *__cc) { 11184 return (__vector signed char) 11185 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc); 11186 } 11187 11188 static inline __ATTRS_o_ai __vector __bool char 11189 vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) { 11190 return (__vector __bool char) 11191 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc); 11192 } 11193 11194 static inline __ATTRS_o_ai __vector unsigned char 11195 vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) { 11196 return __builtin_s390_vistrbs(__a, __cc); 11197 } 11198 11199 static inline __ATTRS_o_ai __vector signed short 11200 vec_cp_until_zero_cc(__vector signed short __a, int *__cc) { 11201 return (__vector signed short) 11202 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc); 11203 } 11204 11205 static inline __ATTRS_o_ai __vector __bool short 11206 vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) { 11207 return (__vector __bool short) 11208 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc); 11209 } 11210 11211 static inline __ATTRS_o_ai __vector unsigned short 11212 vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) { 11213 return __builtin_s390_vistrhs(__a, __cc); 11214 } 11215 11216 static inline __ATTRS_o_ai __vector signed int 11217 vec_cp_until_zero_cc(__vector signed int __a, int *__cc) { 11218 return (__vector signed int) 11219 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc); 11220 } 11221 11222 static inline __ATTRS_o_ai __vector __bool int 11223 vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) { 11224 return (__vector __bool int) 11225 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc); 11226 } 11227 11228 static inline __ATTRS_o_ai __vector unsigned int 11229 vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) { 11230 return __builtin_s390_vistrfs(__a, __cc); 11231 } 11232 11233 /*-- vec_cmpeq_idx ----------------------------------------------------------*/ 11234 11235 static inline __ATTRS_o_ai __vector signed char 11236 vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) { 11237 return (__vector signed char) 11238 __builtin_s390_vfeeb((__vector unsigned char)__a, 11239 (__vector unsigned char)__b); 11240 } 11241 11242 static inline __ATTRS_o_ai __vector unsigned char 11243 vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) { 11244 return __builtin_s390_vfeeb((__vector unsigned char)__a, 11245 (__vector unsigned char)__b); 11246 } 11247 11248 static inline __ATTRS_o_ai __vector unsigned char 11249 vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) { 11250 return __builtin_s390_vfeeb(__a, __b); 11251 } 11252 11253 static inline __ATTRS_o_ai __vector signed short 11254 vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) { 11255 return (__vector signed short) 11256 __builtin_s390_vfeeh((__vector unsigned short)__a, 11257 (__vector unsigned short)__b); 11258 } 11259 11260 static inline __ATTRS_o_ai __vector unsigned short 11261 vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) { 11262 return __builtin_s390_vfeeh((__vector unsigned short)__a, 11263 (__vector unsigned short)__b); 11264 } 11265 11266 static inline __ATTRS_o_ai __vector unsigned short 11267 vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) { 11268 return __builtin_s390_vfeeh(__a, __b); 11269 } 11270 11271 static inline __ATTRS_o_ai __vector signed int 11272 vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) { 11273 return (__vector signed int) 11274 __builtin_s390_vfeef((__vector unsigned int)__a, 11275 (__vector unsigned int)__b); 11276 } 11277 11278 static inline __ATTRS_o_ai __vector unsigned int 11279 vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) { 11280 return __builtin_s390_vfeef((__vector unsigned int)__a, 11281 (__vector unsigned int)__b); 11282 } 11283 11284 static inline __ATTRS_o_ai __vector unsigned int 11285 vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) { 11286 return __builtin_s390_vfeef(__a, __b); 11287 } 11288 11289 /*-- vec_cmpeq_idx_cc -------------------------------------------------------*/ 11290 11291 static inline __ATTRS_o_ai __vector signed char 11292 vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) { 11293 return (__vector signed char) 11294 __builtin_s390_vfeebs((__vector unsigned char)__a, 11295 (__vector unsigned char)__b, __cc); 11296 } 11297 11298 static inline __ATTRS_o_ai __vector unsigned char 11299 vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) { 11300 return __builtin_s390_vfeebs((__vector unsigned char)__a, 11301 (__vector unsigned char)__b, __cc); 11302 } 11303 11304 static inline __ATTRS_o_ai __vector unsigned char 11305 vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b, 11306 int *__cc) { 11307 return __builtin_s390_vfeebs(__a, __b, __cc); 11308 } 11309 11310 static inline __ATTRS_o_ai __vector signed short 11311 vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b, 11312 int *__cc) { 11313 return (__vector signed short) 11314 __builtin_s390_vfeehs((__vector unsigned short)__a, 11315 (__vector unsigned short)__b, __cc); 11316 } 11317 11318 static inline __ATTRS_o_ai __vector unsigned short 11319 vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) { 11320 return __builtin_s390_vfeehs((__vector unsigned short)__a, 11321 (__vector unsigned short)__b, __cc); 11322 } 11323 11324 static inline __ATTRS_o_ai __vector unsigned short 11325 vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b, 11326 int *__cc) { 11327 return __builtin_s390_vfeehs(__a, __b, __cc); 11328 } 11329 11330 static inline __ATTRS_o_ai __vector signed int 11331 vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) { 11332 return (__vector signed int) 11333 __builtin_s390_vfeefs((__vector unsigned int)__a, 11334 (__vector unsigned int)__b, __cc); 11335 } 11336 11337 static inline __ATTRS_o_ai __vector unsigned int 11338 vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) { 11339 return __builtin_s390_vfeefs((__vector unsigned int)__a, 11340 (__vector unsigned int)__b, __cc); 11341 } 11342 11343 static inline __ATTRS_o_ai __vector unsigned int 11344 vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b, 11345 int *__cc) { 11346 return __builtin_s390_vfeefs(__a, __b, __cc); 11347 } 11348 11349 /*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/ 11350 11351 static inline __ATTRS_o_ai __vector signed char 11352 vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) { 11353 return (__vector signed char) 11354 __builtin_s390_vfeezb((__vector unsigned char)__a, 11355 (__vector unsigned char)__b); 11356 } 11357 11358 static inline __ATTRS_o_ai __vector unsigned char 11359 vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) { 11360 return __builtin_s390_vfeezb((__vector unsigned char)__a, 11361 (__vector unsigned char)__b); 11362 } 11363 11364 static inline __ATTRS_o_ai __vector unsigned char 11365 vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) { 11366 return __builtin_s390_vfeezb(__a, __b); 11367 } 11368 11369 static inline __ATTRS_o_ai __vector signed short 11370 vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) { 11371 return (__vector signed short) 11372 __builtin_s390_vfeezh((__vector unsigned short)__a, 11373 (__vector unsigned short)__b); 11374 } 11375 11376 static inline __ATTRS_o_ai __vector unsigned short 11377 vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) { 11378 return __builtin_s390_vfeezh((__vector unsigned short)__a, 11379 (__vector unsigned short)__b); 11380 } 11381 11382 static inline __ATTRS_o_ai __vector unsigned short 11383 vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) { 11384 return __builtin_s390_vfeezh(__a, __b); 11385 } 11386 11387 static inline __ATTRS_o_ai __vector signed int 11388 vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) { 11389 return (__vector signed int) 11390 __builtin_s390_vfeezf((__vector unsigned int)__a, 11391 (__vector unsigned int)__b); 11392 } 11393 11394 static inline __ATTRS_o_ai __vector unsigned int 11395 vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) { 11396 return __builtin_s390_vfeezf((__vector unsigned int)__a, 11397 (__vector unsigned int)__b); 11398 } 11399 11400 static inline __ATTRS_o_ai __vector unsigned int 11401 vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) { 11402 return __builtin_s390_vfeezf(__a, __b); 11403 } 11404 11405 /*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/ 11406 11407 static inline __ATTRS_o_ai __vector signed char 11408 vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b, 11409 int *__cc) { 11410 return (__vector signed char) 11411 __builtin_s390_vfeezbs((__vector unsigned char)__a, 11412 (__vector unsigned char)__b, __cc); 11413 } 11414 11415 static inline __ATTRS_o_ai __vector unsigned char 11416 vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b, 11417 int *__cc) { 11418 return __builtin_s390_vfeezbs((__vector unsigned char)__a, 11419 (__vector unsigned char)__b, __cc); 11420 } 11421 11422 static inline __ATTRS_o_ai __vector unsigned char 11423 vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b, 11424 int *__cc) { 11425 return __builtin_s390_vfeezbs(__a, __b, __cc); 11426 } 11427 11428 static inline __ATTRS_o_ai __vector signed short 11429 vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b, 11430 int *__cc) { 11431 return (__vector signed short) 11432 __builtin_s390_vfeezhs((__vector unsigned short)__a, 11433 (__vector unsigned short)__b, __cc); 11434 } 11435 11436 static inline __ATTRS_o_ai __vector unsigned short 11437 vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b, 11438 int *__cc) { 11439 return __builtin_s390_vfeezhs((__vector unsigned short)__a, 11440 (__vector unsigned short)__b, __cc); 11441 } 11442 11443 static inline __ATTRS_o_ai __vector unsigned short 11444 vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b, 11445 int *__cc) { 11446 return __builtin_s390_vfeezhs(__a, __b, __cc); 11447 } 11448 11449 static inline __ATTRS_o_ai __vector signed int 11450 vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b, 11451 int *__cc) { 11452 return (__vector signed int) 11453 __builtin_s390_vfeezfs((__vector unsigned int)__a, 11454 (__vector unsigned int)__b, __cc); 11455 } 11456 11457 static inline __ATTRS_o_ai __vector unsigned int 11458 vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b, 11459 int *__cc) { 11460 return __builtin_s390_vfeezfs((__vector unsigned int)__a, 11461 (__vector unsigned int)__b, __cc); 11462 } 11463 11464 static inline __ATTRS_o_ai __vector unsigned int 11465 vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b, 11466 int *__cc) { 11467 return __builtin_s390_vfeezfs(__a, __b, __cc); 11468 } 11469 11470 /*-- vec_cmpne_idx ----------------------------------------------------------*/ 11471 11472 static inline __ATTRS_o_ai __vector signed char 11473 vec_cmpne_idx(__vector signed char __a, __vector signed char __b) { 11474 return (__vector signed char) 11475 __builtin_s390_vfeneb((__vector unsigned char)__a, 11476 (__vector unsigned char)__b); 11477 } 11478 11479 static inline __ATTRS_o_ai __vector unsigned char 11480 vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) { 11481 return __builtin_s390_vfeneb((__vector unsigned char)__a, 11482 (__vector unsigned char)__b); 11483 } 11484 11485 static inline __ATTRS_o_ai __vector unsigned char 11486 vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) { 11487 return __builtin_s390_vfeneb(__a, __b); 11488 } 11489 11490 static inline __ATTRS_o_ai __vector signed short 11491 vec_cmpne_idx(__vector signed short __a, __vector signed short __b) { 11492 return (__vector signed short) 11493 __builtin_s390_vfeneh((__vector unsigned short)__a, 11494 (__vector unsigned short)__b); 11495 } 11496 11497 static inline __ATTRS_o_ai __vector unsigned short 11498 vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) { 11499 return __builtin_s390_vfeneh((__vector unsigned short)__a, 11500 (__vector unsigned short)__b); 11501 } 11502 11503 static inline __ATTRS_o_ai __vector unsigned short 11504 vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) { 11505 return __builtin_s390_vfeneh(__a, __b); 11506 } 11507 11508 static inline __ATTRS_o_ai __vector signed int 11509 vec_cmpne_idx(__vector signed int __a, __vector signed int __b) { 11510 return (__vector signed int) 11511 __builtin_s390_vfenef((__vector unsigned int)__a, 11512 (__vector unsigned int)__b); 11513 } 11514 11515 static inline __ATTRS_o_ai __vector unsigned int 11516 vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) { 11517 return __builtin_s390_vfenef((__vector unsigned int)__a, 11518 (__vector unsigned int)__b); 11519 } 11520 11521 static inline __ATTRS_o_ai __vector unsigned int 11522 vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) { 11523 return __builtin_s390_vfenef(__a, __b); 11524 } 11525 11526 /*-- vec_cmpne_idx_cc -------------------------------------------------------*/ 11527 11528 static inline __ATTRS_o_ai __vector signed char 11529 vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) { 11530 return (__vector signed char) 11531 __builtin_s390_vfenebs((__vector unsigned char)__a, 11532 (__vector unsigned char)__b, __cc); 11533 } 11534 11535 static inline __ATTRS_o_ai __vector unsigned char 11536 vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) { 11537 return __builtin_s390_vfenebs((__vector unsigned char)__a, 11538 (__vector unsigned char)__b, __cc); 11539 } 11540 11541 static inline __ATTRS_o_ai __vector unsigned char 11542 vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b, 11543 int *__cc) { 11544 return __builtin_s390_vfenebs(__a, __b, __cc); 11545 } 11546 11547 static inline __ATTRS_o_ai __vector signed short 11548 vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b, 11549 int *__cc) { 11550 return (__vector signed short) 11551 __builtin_s390_vfenehs((__vector unsigned short)__a, 11552 (__vector unsigned short)__b, __cc); 11553 } 11554 11555 static inline __ATTRS_o_ai __vector unsigned short 11556 vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b, 11557 int *__cc) { 11558 return __builtin_s390_vfenehs((__vector unsigned short)__a, 11559 (__vector unsigned short)__b, __cc); 11560 } 11561 11562 static inline __ATTRS_o_ai __vector unsigned short 11563 vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b, 11564 int *__cc) { 11565 return __builtin_s390_vfenehs(__a, __b, __cc); 11566 } 11567 11568 static inline __ATTRS_o_ai __vector signed int 11569 vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) { 11570 return (__vector signed int) 11571 __builtin_s390_vfenefs((__vector unsigned int)__a, 11572 (__vector unsigned int)__b, __cc); 11573 } 11574 11575 static inline __ATTRS_o_ai __vector unsigned int 11576 vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) { 11577 return __builtin_s390_vfenefs((__vector unsigned int)__a, 11578 (__vector unsigned int)__b, __cc); 11579 } 11580 11581 static inline __ATTRS_o_ai __vector unsigned int 11582 vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b, 11583 int *__cc) { 11584 return __builtin_s390_vfenefs(__a, __b, __cc); 11585 } 11586 11587 /*-- vec_cmpne_or_0_idx -----------------------------------------------------*/ 11588 11589 static inline __ATTRS_o_ai __vector signed char 11590 vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) { 11591 return (__vector signed char) 11592 __builtin_s390_vfenezb((__vector unsigned char)__a, 11593 (__vector unsigned char)__b); 11594 } 11595 11596 static inline __ATTRS_o_ai __vector unsigned char 11597 vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) { 11598 return __builtin_s390_vfenezb((__vector unsigned char)__a, 11599 (__vector unsigned char)__b); 11600 } 11601 11602 static inline __ATTRS_o_ai __vector unsigned char 11603 vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) { 11604 return __builtin_s390_vfenezb(__a, __b); 11605 } 11606 11607 static inline __ATTRS_o_ai __vector signed short 11608 vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) { 11609 return (__vector signed short) 11610 __builtin_s390_vfenezh((__vector unsigned short)__a, 11611 (__vector unsigned short)__b); 11612 } 11613 11614 static inline __ATTRS_o_ai __vector unsigned short 11615 vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) { 11616 return __builtin_s390_vfenezh((__vector unsigned short)__a, 11617 (__vector unsigned short)__b); 11618 } 11619 11620 static inline __ATTRS_o_ai __vector unsigned short 11621 vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) { 11622 return __builtin_s390_vfenezh(__a, __b); 11623 } 11624 11625 static inline __ATTRS_o_ai __vector signed int 11626 vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) { 11627 return (__vector signed int) 11628 __builtin_s390_vfenezf((__vector unsigned int)__a, 11629 (__vector unsigned int)__b); 11630 } 11631 11632 static inline __ATTRS_o_ai __vector unsigned int 11633 vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) { 11634 return __builtin_s390_vfenezf((__vector unsigned int)__a, 11635 (__vector unsigned int)__b); 11636 } 11637 11638 static inline __ATTRS_o_ai __vector unsigned int 11639 vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) { 11640 return __builtin_s390_vfenezf(__a, __b); 11641 } 11642 11643 /*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/ 11644 11645 static inline __ATTRS_o_ai __vector signed char 11646 vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b, 11647 int *__cc) { 11648 return (__vector signed char) 11649 __builtin_s390_vfenezbs((__vector unsigned char)__a, 11650 (__vector unsigned char)__b, __cc); 11651 } 11652 11653 static inline __ATTRS_o_ai __vector unsigned char 11654 vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b, 11655 int *__cc) { 11656 return __builtin_s390_vfenezbs((__vector unsigned char)__a, 11657 (__vector unsigned char)__b, __cc); 11658 } 11659 11660 static inline __ATTRS_o_ai __vector unsigned char 11661 vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b, 11662 int *__cc) { 11663 return __builtin_s390_vfenezbs(__a, __b, __cc); 11664 } 11665 11666 static inline __ATTRS_o_ai __vector signed short 11667 vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b, 11668 int *__cc) { 11669 return (__vector signed short) 11670 __builtin_s390_vfenezhs((__vector unsigned short)__a, 11671 (__vector unsigned short)__b, __cc); 11672 } 11673 11674 static inline __ATTRS_o_ai __vector unsigned short 11675 vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b, 11676 int *__cc) { 11677 return __builtin_s390_vfenezhs((__vector unsigned short)__a, 11678 (__vector unsigned short)__b, __cc); 11679 } 11680 11681 static inline __ATTRS_o_ai __vector unsigned short 11682 vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b, 11683 int *__cc) { 11684 return __builtin_s390_vfenezhs(__a, __b, __cc); 11685 } 11686 11687 static inline __ATTRS_o_ai __vector signed int 11688 vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b, 11689 int *__cc) { 11690 return (__vector signed int) 11691 __builtin_s390_vfenezfs((__vector unsigned int)__a, 11692 (__vector unsigned int)__b, __cc); 11693 } 11694 11695 static inline __ATTRS_o_ai __vector unsigned int 11696 vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b, 11697 int *__cc) { 11698 return __builtin_s390_vfenezfs((__vector unsigned int)__a, 11699 (__vector unsigned int)__b, __cc); 11700 } 11701 11702 static inline __ATTRS_o_ai __vector unsigned int 11703 vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b, 11704 int *__cc) { 11705 return __builtin_s390_vfenezfs(__a, __b, __cc); 11706 } 11707 11708 /*-- vec_cmprg --------------------------------------------------------------*/ 11709 11710 static inline __ATTRS_o_ai __vector __bool char 11711 vec_cmprg(__vector unsigned char __a, __vector unsigned char __b, 11712 __vector unsigned char __c) { 11713 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4); 11714 } 11715 11716 static inline __ATTRS_o_ai __vector __bool short 11717 vec_cmprg(__vector unsigned short __a, __vector unsigned short __b, 11718 __vector unsigned short __c) { 11719 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4); 11720 } 11721 11722 static inline __ATTRS_o_ai __vector __bool int 11723 vec_cmprg(__vector unsigned int __a, __vector unsigned int __b, 11724 __vector unsigned int __c) { 11725 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4); 11726 } 11727 11728 /*-- vec_cmprg_cc -----------------------------------------------------------*/ 11729 11730 static inline __ATTRS_o_ai __vector __bool char 11731 vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b, 11732 __vector unsigned char __c, int *__cc) { 11733 return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc); 11734 } 11735 11736 static inline __ATTRS_o_ai __vector __bool short 11737 vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b, 11738 __vector unsigned short __c, int *__cc) { 11739 return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc); 11740 } 11741 11742 static inline __ATTRS_o_ai __vector __bool int 11743 vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b, 11744 __vector unsigned int __c, int *__cc) { 11745 return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc); 11746 } 11747 11748 /*-- vec_cmprg_idx ----------------------------------------------------------*/ 11749 11750 static inline __ATTRS_o_ai __vector unsigned char 11751 vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b, 11752 __vector unsigned char __c) { 11753 return __builtin_s390_vstrcb(__a, __b, __c, 0); 11754 } 11755 11756 static inline __ATTRS_o_ai __vector unsigned short 11757 vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b, 11758 __vector unsigned short __c) { 11759 return __builtin_s390_vstrch(__a, __b, __c, 0); 11760 } 11761 11762 static inline __ATTRS_o_ai __vector unsigned int 11763 vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b, 11764 __vector unsigned int __c) { 11765 return __builtin_s390_vstrcf(__a, __b, __c, 0); 11766 } 11767 11768 /*-- vec_cmprg_idx_cc -------------------------------------------------------*/ 11769 11770 static inline __ATTRS_o_ai __vector unsigned char 11771 vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b, 11772 __vector unsigned char __c, int *__cc) { 11773 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc); 11774 } 11775 11776 static inline __ATTRS_o_ai __vector unsigned short 11777 vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b, 11778 __vector unsigned short __c, int *__cc) { 11779 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc); 11780 } 11781 11782 static inline __ATTRS_o_ai __vector unsigned int 11783 vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b, 11784 __vector unsigned int __c, int *__cc) { 11785 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc); 11786 } 11787 11788 /*-- vec_cmprg_or_0_idx -----------------------------------------------------*/ 11789 11790 static inline __ATTRS_o_ai __vector unsigned char 11791 vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b, 11792 __vector unsigned char __c) { 11793 return __builtin_s390_vstrczb(__a, __b, __c, 0); 11794 } 11795 11796 static inline __ATTRS_o_ai __vector unsigned short 11797 vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b, 11798 __vector unsigned short __c) { 11799 return __builtin_s390_vstrczh(__a, __b, __c, 0); 11800 } 11801 11802 static inline __ATTRS_o_ai __vector unsigned int 11803 vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b, 11804 __vector unsigned int __c) { 11805 return __builtin_s390_vstrczf(__a, __b, __c, 0); 11806 } 11807 11808 /*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/ 11809 11810 static inline __ATTRS_o_ai __vector unsigned char 11811 vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b, 11812 __vector unsigned char __c, int *__cc) { 11813 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc); 11814 } 11815 11816 static inline __ATTRS_o_ai __vector unsigned short 11817 vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b, 11818 __vector unsigned short __c, int *__cc) { 11819 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc); 11820 } 11821 11822 static inline __ATTRS_o_ai __vector unsigned int 11823 vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b, 11824 __vector unsigned int __c, int *__cc) { 11825 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc); 11826 } 11827 11828 /*-- vec_cmpnrg -------------------------------------------------------------*/ 11829 11830 static inline __ATTRS_o_ai __vector __bool char 11831 vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b, 11832 __vector unsigned char __c) { 11833 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12); 11834 } 11835 11836 static inline __ATTRS_o_ai __vector __bool short 11837 vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b, 11838 __vector unsigned short __c) { 11839 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12); 11840 } 11841 11842 static inline __ATTRS_o_ai __vector __bool int 11843 vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b, 11844 __vector unsigned int __c) { 11845 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12); 11846 } 11847 11848 /*-- vec_cmpnrg_cc ----------------------------------------------------------*/ 11849 11850 static inline __ATTRS_o_ai __vector __bool char 11851 vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b, 11852 __vector unsigned char __c, int *__cc) { 11853 return (__vector __bool char) 11854 __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc); 11855 } 11856 11857 static inline __ATTRS_o_ai __vector __bool short 11858 vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b, 11859 __vector unsigned short __c, int *__cc) { 11860 return (__vector __bool short) 11861 __builtin_s390_vstrchs(__a, __b, __c, 12, __cc); 11862 } 11863 11864 static inline __ATTRS_o_ai __vector __bool int 11865 vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b, 11866 __vector unsigned int __c, int *__cc) { 11867 return (__vector __bool int) 11868 __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc); 11869 } 11870 11871 /*-- vec_cmpnrg_idx ---------------------------------------------------------*/ 11872 11873 static inline __ATTRS_o_ai __vector unsigned char 11874 vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b, 11875 __vector unsigned char __c) { 11876 return __builtin_s390_vstrcb(__a, __b, __c, 8); 11877 } 11878 11879 static inline __ATTRS_o_ai __vector unsigned short 11880 vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b, 11881 __vector unsigned short __c) { 11882 return __builtin_s390_vstrch(__a, __b, __c, 8); 11883 } 11884 11885 static inline __ATTRS_o_ai __vector unsigned int 11886 vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b, 11887 __vector unsigned int __c) { 11888 return __builtin_s390_vstrcf(__a, __b, __c, 8); 11889 } 11890 11891 /*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/ 11892 11893 static inline __ATTRS_o_ai __vector unsigned char 11894 vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b, 11895 __vector unsigned char __c, int *__cc) { 11896 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc); 11897 } 11898 11899 static inline __ATTRS_o_ai __vector unsigned short 11900 vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b, 11901 __vector unsigned short __c, int *__cc) { 11902 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc); 11903 } 11904 11905 static inline __ATTRS_o_ai __vector unsigned int 11906 vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b, 11907 __vector unsigned int __c, int *__cc) { 11908 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc); 11909 } 11910 11911 /*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/ 11912 11913 static inline __ATTRS_o_ai __vector unsigned char 11914 vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b, 11915 __vector unsigned char __c) { 11916 return __builtin_s390_vstrczb(__a, __b, __c, 8); 11917 } 11918 11919 static inline __ATTRS_o_ai __vector unsigned short 11920 vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b, 11921 __vector unsigned short __c) { 11922 return __builtin_s390_vstrczh(__a, __b, __c, 8); 11923 } 11924 11925 static inline __ATTRS_o_ai __vector unsigned int 11926 vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b, 11927 __vector unsigned int __c) { 11928 return __builtin_s390_vstrczf(__a, __b, __c, 8); 11929 } 11930 11931 /*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/ 11932 11933 static inline __ATTRS_o_ai __vector unsigned char 11934 vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a, 11935 __vector unsigned char __b, 11936 __vector unsigned char __c, int *__cc) { 11937 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc); 11938 } 11939 11940 static inline __ATTRS_o_ai __vector unsigned short 11941 vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a, 11942 __vector unsigned short __b, 11943 __vector unsigned short __c, int *__cc) { 11944 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc); 11945 } 11946 11947 static inline __ATTRS_o_ai __vector unsigned int 11948 vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a, 11949 __vector unsigned int __b, 11950 __vector unsigned int __c, int *__cc) { 11951 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc); 11952 } 11953 11954 /*-- vec_find_any_eq --------------------------------------------------------*/ 11955 11956 static inline __ATTRS_o_ai __vector __bool char 11957 vec_find_any_eq(__vector signed char __a, __vector signed char __b) { 11958 return (__vector __bool char) 11959 __builtin_s390_vfaeb((__vector unsigned char)__a, 11960 (__vector unsigned char)__b, 4); 11961 } 11962 11963 static inline __ATTRS_o_ai __vector __bool char 11964 vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) { 11965 return (__vector __bool char) 11966 __builtin_s390_vfaeb((__vector unsigned char)__a, 11967 (__vector unsigned char)__b, 4); 11968 } 11969 11970 static inline __ATTRS_o_ai __vector __bool char 11971 vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) { 11972 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4); 11973 } 11974 11975 static inline __ATTRS_o_ai __vector __bool short 11976 vec_find_any_eq(__vector signed short __a, __vector signed short __b) { 11977 return (__vector __bool short) 11978 __builtin_s390_vfaeh((__vector unsigned short)__a, 11979 (__vector unsigned short)__b, 4); 11980 } 11981 11982 static inline __ATTRS_o_ai __vector __bool short 11983 vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) { 11984 return (__vector __bool short) 11985 __builtin_s390_vfaeh((__vector unsigned short)__a, 11986 (__vector unsigned short)__b, 4); 11987 } 11988 11989 static inline __ATTRS_o_ai __vector __bool short 11990 vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) { 11991 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4); 11992 } 11993 11994 static inline __ATTRS_o_ai __vector __bool int 11995 vec_find_any_eq(__vector signed int __a, __vector signed int __b) { 11996 return (__vector __bool int) 11997 __builtin_s390_vfaef((__vector unsigned int)__a, 11998 (__vector unsigned int)__b, 4); 11999 } 12000 12001 static inline __ATTRS_o_ai __vector __bool int 12002 vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) { 12003 return (__vector __bool int) 12004 __builtin_s390_vfaef((__vector unsigned int)__a, 12005 (__vector unsigned int)__b, 4); 12006 } 12007 12008 static inline __ATTRS_o_ai __vector __bool int 12009 vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) { 12010 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4); 12011 } 12012 12013 /*-- vec_find_any_eq_cc -----------------------------------------------------*/ 12014 12015 static inline __ATTRS_o_ai __vector __bool char 12016 vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b, 12017 int *__cc) { 12018 return (__vector __bool char) 12019 __builtin_s390_vfaebs((__vector unsigned char)__a, 12020 (__vector unsigned char)__b, 4, __cc); 12021 } 12022 12023 static inline __ATTRS_o_ai __vector __bool char 12024 vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b, 12025 int *__cc) { 12026 return (__vector __bool char) 12027 __builtin_s390_vfaebs((__vector unsigned char)__a, 12028 (__vector unsigned char)__b, 4, __cc); 12029 } 12030 12031 static inline __ATTRS_o_ai __vector __bool char 12032 vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b, 12033 int *__cc) { 12034 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc); 12035 } 12036 12037 static inline __ATTRS_o_ai __vector __bool short 12038 vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b, 12039 int *__cc) { 12040 return (__vector __bool short) 12041 __builtin_s390_vfaehs((__vector unsigned short)__a, 12042 (__vector unsigned short)__b, 4, __cc); 12043 } 12044 12045 static inline __ATTRS_o_ai __vector __bool short 12046 vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b, 12047 int *__cc) { 12048 return (__vector __bool short) 12049 __builtin_s390_vfaehs((__vector unsigned short)__a, 12050 (__vector unsigned short)__b, 4, __cc); 12051 } 12052 12053 static inline __ATTRS_o_ai __vector __bool short 12054 vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b, 12055 int *__cc) { 12056 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc); 12057 } 12058 12059 static inline __ATTRS_o_ai __vector __bool int 12060 vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b, 12061 int *__cc) { 12062 return (__vector __bool int) 12063 __builtin_s390_vfaefs((__vector unsigned int)__a, 12064 (__vector unsigned int)__b, 4, __cc); 12065 } 12066 12067 static inline __ATTRS_o_ai __vector __bool int 12068 vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b, 12069 int *__cc) { 12070 return (__vector __bool int) 12071 __builtin_s390_vfaefs((__vector unsigned int)__a, 12072 (__vector unsigned int)__b, 4, __cc); 12073 } 12074 12075 static inline __ATTRS_o_ai __vector __bool int 12076 vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b, 12077 int *__cc) { 12078 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc); 12079 } 12080 12081 /*-- vec_find_any_eq_idx ----------------------------------------------------*/ 12082 12083 static inline __ATTRS_o_ai __vector signed char 12084 vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) { 12085 return (__vector signed char) 12086 __builtin_s390_vfaeb((__vector unsigned char)__a, 12087 (__vector unsigned char)__b, 0); 12088 } 12089 12090 static inline __ATTRS_o_ai __vector unsigned char 12091 vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) { 12092 return __builtin_s390_vfaeb((__vector unsigned char)__a, 12093 (__vector unsigned char)__b, 0); 12094 } 12095 12096 static inline __ATTRS_o_ai __vector unsigned char 12097 vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) { 12098 return __builtin_s390_vfaeb(__a, __b, 0); 12099 } 12100 12101 static inline __ATTRS_o_ai __vector signed short 12102 vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) { 12103 return (__vector signed short) 12104 __builtin_s390_vfaeh((__vector unsigned short)__a, 12105 (__vector unsigned short)__b, 0); 12106 } 12107 12108 static inline __ATTRS_o_ai __vector unsigned short 12109 vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) { 12110 return __builtin_s390_vfaeh((__vector unsigned short)__a, 12111 (__vector unsigned short)__b, 0); 12112 } 12113 12114 static inline __ATTRS_o_ai __vector unsigned short 12115 vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) { 12116 return __builtin_s390_vfaeh(__a, __b, 0); 12117 } 12118 12119 static inline __ATTRS_o_ai __vector signed int 12120 vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) { 12121 return (__vector signed int) 12122 __builtin_s390_vfaef((__vector unsigned int)__a, 12123 (__vector unsigned int)__b, 0); 12124 } 12125 12126 static inline __ATTRS_o_ai __vector unsigned int 12127 vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) { 12128 return __builtin_s390_vfaef((__vector unsigned int)__a, 12129 (__vector unsigned int)__b, 0); 12130 } 12131 12132 static inline __ATTRS_o_ai __vector unsigned int 12133 vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) { 12134 return __builtin_s390_vfaef(__a, __b, 0); 12135 } 12136 12137 /*-- vec_find_any_eq_idx_cc -------------------------------------------------*/ 12138 12139 static inline __ATTRS_o_ai __vector signed char 12140 vec_find_any_eq_idx_cc(__vector signed char __a, 12141 __vector signed char __b, int *__cc) { 12142 return (__vector signed char) 12143 __builtin_s390_vfaebs((__vector unsigned char)__a, 12144 (__vector unsigned char)__b, 0, __cc); 12145 } 12146 12147 static inline __ATTRS_o_ai __vector unsigned char 12148 vec_find_any_eq_idx_cc(__vector __bool char __a, 12149 __vector __bool char __b, int *__cc) { 12150 return __builtin_s390_vfaebs((__vector unsigned char)__a, 12151 (__vector unsigned char)__b, 0, __cc); 12152 } 12153 12154 static inline __ATTRS_o_ai __vector unsigned char 12155 vec_find_any_eq_idx_cc(__vector unsigned char __a, 12156 __vector unsigned char __b, int *__cc) { 12157 return __builtin_s390_vfaebs(__a, __b, 0, __cc); 12158 } 12159 12160 static inline __ATTRS_o_ai __vector signed short 12161 vec_find_any_eq_idx_cc(__vector signed short __a, 12162 __vector signed short __b, int *__cc) { 12163 return (__vector signed short) 12164 __builtin_s390_vfaehs((__vector unsigned short)__a, 12165 (__vector unsigned short)__b, 0, __cc); 12166 } 12167 12168 static inline __ATTRS_o_ai __vector unsigned short 12169 vec_find_any_eq_idx_cc(__vector __bool short __a, 12170 __vector __bool short __b, int *__cc) { 12171 return __builtin_s390_vfaehs((__vector unsigned short)__a, 12172 (__vector unsigned short)__b, 0, __cc); 12173 } 12174 12175 static inline __ATTRS_o_ai __vector unsigned short 12176 vec_find_any_eq_idx_cc(__vector unsigned short __a, 12177 __vector unsigned short __b, int *__cc) { 12178 return __builtin_s390_vfaehs(__a, __b, 0, __cc); 12179 } 12180 12181 static inline __ATTRS_o_ai __vector signed int 12182 vec_find_any_eq_idx_cc(__vector signed int __a, 12183 __vector signed int __b, int *__cc) { 12184 return (__vector signed int) 12185 __builtin_s390_vfaefs((__vector unsigned int)__a, 12186 (__vector unsigned int)__b, 0, __cc); 12187 } 12188 12189 static inline __ATTRS_o_ai __vector unsigned int 12190 vec_find_any_eq_idx_cc(__vector __bool int __a, 12191 __vector __bool int __b, int *__cc) { 12192 return __builtin_s390_vfaefs((__vector unsigned int)__a, 12193 (__vector unsigned int)__b, 0, __cc); 12194 } 12195 12196 static inline __ATTRS_o_ai __vector unsigned int 12197 vec_find_any_eq_idx_cc(__vector unsigned int __a, 12198 __vector unsigned int __b, int *__cc) { 12199 return __builtin_s390_vfaefs(__a, __b, 0, __cc); 12200 } 12201 12202 /*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/ 12203 12204 static inline __ATTRS_o_ai __vector signed char 12205 vec_find_any_eq_or_0_idx(__vector signed char __a, 12206 __vector signed char __b) { 12207 return (__vector signed char) 12208 __builtin_s390_vfaezb((__vector unsigned char)__a, 12209 (__vector unsigned char)__b, 0); 12210 } 12211 12212 static inline __ATTRS_o_ai __vector unsigned char 12213 vec_find_any_eq_or_0_idx(__vector __bool char __a, 12214 __vector __bool char __b) { 12215 return __builtin_s390_vfaezb((__vector unsigned char)__a, 12216 (__vector unsigned char)__b, 0); 12217 } 12218 12219 static inline __ATTRS_o_ai __vector unsigned char 12220 vec_find_any_eq_or_0_idx(__vector unsigned char __a, 12221 __vector unsigned char __b) { 12222 return __builtin_s390_vfaezb(__a, __b, 0); 12223 } 12224 12225 static inline __ATTRS_o_ai __vector signed short 12226 vec_find_any_eq_or_0_idx(__vector signed short __a, 12227 __vector signed short __b) { 12228 return (__vector signed short) 12229 __builtin_s390_vfaezh((__vector unsigned short)__a, 12230 (__vector unsigned short)__b, 0); 12231 } 12232 12233 static inline __ATTRS_o_ai __vector unsigned short 12234 vec_find_any_eq_or_0_idx(__vector __bool short __a, 12235 __vector __bool short __b) { 12236 return __builtin_s390_vfaezh((__vector unsigned short)__a, 12237 (__vector unsigned short)__b, 0); 12238 } 12239 12240 static inline __ATTRS_o_ai __vector unsigned short 12241 vec_find_any_eq_or_0_idx(__vector unsigned short __a, 12242 __vector unsigned short __b) { 12243 return __builtin_s390_vfaezh(__a, __b, 0); 12244 } 12245 12246 static inline __ATTRS_o_ai __vector signed int 12247 vec_find_any_eq_or_0_idx(__vector signed int __a, 12248 __vector signed int __b) { 12249 return (__vector signed int) 12250 __builtin_s390_vfaezf((__vector unsigned int)__a, 12251 (__vector unsigned int)__b, 0); 12252 } 12253 12254 static inline __ATTRS_o_ai __vector unsigned int 12255 vec_find_any_eq_or_0_idx(__vector __bool int __a, 12256 __vector __bool int __b) { 12257 return __builtin_s390_vfaezf((__vector unsigned int)__a, 12258 (__vector unsigned int)__b, 0); 12259 } 12260 12261 static inline __ATTRS_o_ai __vector unsigned int 12262 vec_find_any_eq_or_0_idx(__vector unsigned int __a, 12263 __vector unsigned int __b) { 12264 return __builtin_s390_vfaezf(__a, __b, 0); 12265 } 12266 12267 /*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/ 12268 12269 static inline __ATTRS_o_ai __vector signed char 12270 vec_find_any_eq_or_0_idx_cc(__vector signed char __a, 12271 __vector signed char __b, int *__cc) { 12272 return (__vector signed char) 12273 __builtin_s390_vfaezbs((__vector unsigned char)__a, 12274 (__vector unsigned char)__b, 0, __cc); 12275 } 12276 12277 static inline __ATTRS_o_ai __vector unsigned char 12278 vec_find_any_eq_or_0_idx_cc(__vector __bool char __a, 12279 __vector __bool char __b, int *__cc) { 12280 return __builtin_s390_vfaezbs((__vector unsigned char)__a, 12281 (__vector unsigned char)__b, 0, __cc); 12282 } 12283 12284 static inline __ATTRS_o_ai __vector unsigned char 12285 vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a, 12286 __vector unsigned char __b, int *__cc) { 12287 return __builtin_s390_vfaezbs(__a, __b, 0, __cc); 12288 } 12289 12290 static inline __ATTRS_o_ai __vector signed short 12291 vec_find_any_eq_or_0_idx_cc(__vector signed short __a, 12292 __vector signed short __b, int *__cc) { 12293 return (__vector signed short) 12294 __builtin_s390_vfaezhs((__vector unsigned short)__a, 12295 (__vector unsigned short)__b, 0, __cc); 12296 } 12297 12298 static inline __ATTRS_o_ai __vector unsigned short 12299 vec_find_any_eq_or_0_idx_cc(__vector __bool short __a, 12300 __vector __bool short __b, int *__cc) { 12301 return __builtin_s390_vfaezhs((__vector unsigned short)__a, 12302 (__vector unsigned short)__b, 0, __cc); 12303 } 12304 12305 static inline __ATTRS_o_ai __vector unsigned short 12306 vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a, 12307 __vector unsigned short __b, int *__cc) { 12308 return __builtin_s390_vfaezhs(__a, __b, 0, __cc); 12309 } 12310 12311 static inline __ATTRS_o_ai __vector signed int 12312 vec_find_any_eq_or_0_idx_cc(__vector signed int __a, 12313 __vector signed int __b, int *__cc) { 12314 return (__vector signed int) 12315 __builtin_s390_vfaezfs((__vector unsigned int)__a, 12316 (__vector unsigned int)__b, 0, __cc); 12317 } 12318 12319 static inline __ATTRS_o_ai __vector unsigned int 12320 vec_find_any_eq_or_0_idx_cc(__vector __bool int __a, 12321 __vector __bool int __b, int *__cc) { 12322 return __builtin_s390_vfaezfs((__vector unsigned int)__a, 12323 (__vector unsigned int)__b, 0, __cc); 12324 } 12325 12326 static inline __ATTRS_o_ai __vector unsigned int 12327 vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a, 12328 __vector unsigned int __b, int *__cc) { 12329 return __builtin_s390_vfaezfs(__a, __b, 0, __cc); 12330 } 12331 12332 /*-- vec_find_any_ne --------------------------------------------------------*/ 12333 12334 static inline __ATTRS_o_ai __vector __bool char 12335 vec_find_any_ne(__vector signed char __a, __vector signed char __b) { 12336 return (__vector __bool char) 12337 __builtin_s390_vfaeb((__vector unsigned char)__a, 12338 (__vector unsigned char)__b, 12); 12339 } 12340 12341 static inline __ATTRS_o_ai __vector __bool char 12342 vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) { 12343 return (__vector __bool char) 12344 __builtin_s390_vfaeb((__vector unsigned char)__a, 12345 (__vector unsigned char)__b, 12); 12346 } 12347 12348 static inline __ATTRS_o_ai __vector __bool char 12349 vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) { 12350 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12); 12351 } 12352 12353 static inline __ATTRS_o_ai __vector __bool short 12354 vec_find_any_ne(__vector signed short __a, __vector signed short __b) { 12355 return (__vector __bool short) 12356 __builtin_s390_vfaeh((__vector unsigned short)__a, 12357 (__vector unsigned short)__b, 12); 12358 } 12359 12360 static inline __ATTRS_o_ai __vector __bool short 12361 vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) { 12362 return (__vector __bool short) 12363 __builtin_s390_vfaeh((__vector unsigned short)__a, 12364 (__vector unsigned short)__b, 12); 12365 } 12366 12367 static inline __ATTRS_o_ai __vector __bool short 12368 vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) { 12369 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12); 12370 } 12371 12372 static inline __ATTRS_o_ai __vector __bool int 12373 vec_find_any_ne(__vector signed int __a, __vector signed int __b) { 12374 return (__vector __bool int) 12375 __builtin_s390_vfaef((__vector unsigned int)__a, 12376 (__vector unsigned int)__b, 12); 12377 } 12378 12379 static inline __ATTRS_o_ai __vector __bool int 12380 vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) { 12381 return (__vector __bool int) 12382 __builtin_s390_vfaef((__vector unsigned int)__a, 12383 (__vector unsigned int)__b, 12); 12384 } 12385 12386 static inline __ATTRS_o_ai __vector __bool int 12387 vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) { 12388 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12); 12389 } 12390 12391 /*-- vec_find_any_ne_cc -----------------------------------------------------*/ 12392 12393 static inline __ATTRS_o_ai __vector __bool char 12394 vec_find_any_ne_cc(__vector signed char __a, 12395 __vector signed char __b, int *__cc) { 12396 return (__vector __bool char) 12397 __builtin_s390_vfaebs((__vector unsigned char)__a, 12398 (__vector unsigned char)__b, 12, __cc); 12399 } 12400 12401 static inline __ATTRS_o_ai __vector __bool char 12402 vec_find_any_ne_cc(__vector __bool char __a, 12403 __vector __bool char __b, int *__cc) { 12404 return (__vector __bool char) 12405 __builtin_s390_vfaebs((__vector unsigned char)__a, 12406 (__vector unsigned char)__b, 12, __cc); 12407 } 12408 12409 static inline __ATTRS_o_ai __vector __bool char 12410 vec_find_any_ne_cc(__vector unsigned char __a, 12411 __vector unsigned char __b, int *__cc) { 12412 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc); 12413 } 12414 12415 static inline __ATTRS_o_ai __vector __bool short 12416 vec_find_any_ne_cc(__vector signed short __a, 12417 __vector signed short __b, int *__cc) { 12418 return (__vector __bool short) 12419 __builtin_s390_vfaehs((__vector unsigned short)__a, 12420 (__vector unsigned short)__b, 12, __cc); 12421 } 12422 12423 static inline __ATTRS_o_ai __vector __bool short 12424 vec_find_any_ne_cc(__vector __bool short __a, 12425 __vector __bool short __b, int *__cc) { 12426 return (__vector __bool short) 12427 __builtin_s390_vfaehs((__vector unsigned short)__a, 12428 (__vector unsigned short)__b, 12, __cc); 12429 } 12430 12431 static inline __ATTRS_o_ai __vector __bool short 12432 vec_find_any_ne_cc(__vector unsigned short __a, 12433 __vector unsigned short __b, int *__cc) { 12434 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc); 12435 } 12436 12437 static inline __ATTRS_o_ai __vector __bool int 12438 vec_find_any_ne_cc(__vector signed int __a, 12439 __vector signed int __b, int *__cc) { 12440 return (__vector __bool int) 12441 __builtin_s390_vfaefs((__vector unsigned int)__a, 12442 (__vector unsigned int)__b, 12, __cc); 12443 } 12444 12445 static inline __ATTRS_o_ai __vector __bool int 12446 vec_find_any_ne_cc(__vector __bool int __a, 12447 __vector __bool int __b, int *__cc) { 12448 return (__vector __bool int) 12449 __builtin_s390_vfaefs((__vector unsigned int)__a, 12450 (__vector unsigned int)__b, 12, __cc); 12451 } 12452 12453 static inline __ATTRS_o_ai __vector __bool int 12454 vec_find_any_ne_cc(__vector unsigned int __a, 12455 __vector unsigned int __b, int *__cc) { 12456 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc); 12457 } 12458 12459 /*-- vec_find_any_ne_idx ----------------------------------------------------*/ 12460 12461 static inline __ATTRS_o_ai __vector signed char 12462 vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) { 12463 return (__vector signed char) 12464 __builtin_s390_vfaeb((__vector unsigned char)__a, 12465 (__vector unsigned char)__b, 8); 12466 } 12467 12468 static inline __ATTRS_o_ai __vector unsigned char 12469 vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) { 12470 return __builtin_s390_vfaeb((__vector unsigned char)__a, 12471 (__vector unsigned char)__b, 8); 12472 } 12473 12474 static inline __ATTRS_o_ai __vector unsigned char 12475 vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) { 12476 return __builtin_s390_vfaeb(__a, __b, 8); 12477 } 12478 12479 static inline __ATTRS_o_ai __vector signed short 12480 vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) { 12481 return (__vector signed short) 12482 __builtin_s390_vfaeh((__vector unsigned short)__a, 12483 (__vector unsigned short)__b, 8); 12484 } 12485 12486 static inline __ATTRS_o_ai __vector unsigned short 12487 vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) { 12488 return __builtin_s390_vfaeh((__vector unsigned short)__a, 12489 (__vector unsigned short)__b, 8); 12490 } 12491 12492 static inline __ATTRS_o_ai __vector unsigned short 12493 vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) { 12494 return __builtin_s390_vfaeh(__a, __b, 8); 12495 } 12496 12497 static inline __ATTRS_o_ai __vector signed int 12498 vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) { 12499 return (__vector signed int) 12500 __builtin_s390_vfaef((__vector unsigned int)__a, 12501 (__vector unsigned int)__b, 8); 12502 } 12503 12504 static inline __ATTRS_o_ai __vector unsigned int 12505 vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) { 12506 return __builtin_s390_vfaef((__vector unsigned int)__a, 12507 (__vector unsigned int)__b, 8); 12508 } 12509 12510 static inline __ATTRS_o_ai __vector unsigned int 12511 vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) { 12512 return __builtin_s390_vfaef(__a, __b, 8); 12513 } 12514 12515 /*-- vec_find_any_ne_idx_cc -------------------------------------------------*/ 12516 12517 static inline __ATTRS_o_ai __vector signed char 12518 vec_find_any_ne_idx_cc(__vector signed char __a, 12519 __vector signed char __b, int *__cc) { 12520 return (__vector signed char) 12521 __builtin_s390_vfaebs((__vector unsigned char)__a, 12522 (__vector unsigned char)__b, 8, __cc); 12523 } 12524 12525 static inline __ATTRS_o_ai __vector unsigned char 12526 vec_find_any_ne_idx_cc(__vector __bool char __a, 12527 __vector __bool char __b, int *__cc) { 12528 return __builtin_s390_vfaebs((__vector unsigned char)__a, 12529 (__vector unsigned char)__b, 8, __cc); 12530 } 12531 12532 static inline __ATTRS_o_ai __vector unsigned char 12533 vec_find_any_ne_idx_cc(__vector unsigned char __a, 12534 __vector unsigned char __b, 12535 int *__cc) { 12536 return __builtin_s390_vfaebs(__a, __b, 8, __cc); 12537 } 12538 12539 static inline __ATTRS_o_ai __vector signed short 12540 vec_find_any_ne_idx_cc(__vector signed short __a, 12541 __vector signed short __b, int *__cc) { 12542 return (__vector signed short) 12543 __builtin_s390_vfaehs((__vector unsigned short)__a, 12544 (__vector unsigned short)__b, 8, __cc); 12545 } 12546 12547 static inline __ATTRS_o_ai __vector unsigned short 12548 vec_find_any_ne_idx_cc(__vector __bool short __a, 12549 __vector __bool short __b, int *__cc) { 12550 return __builtin_s390_vfaehs((__vector unsigned short)__a, 12551 (__vector unsigned short)__b, 8, __cc); 12552 } 12553 12554 static inline __ATTRS_o_ai __vector unsigned short 12555 vec_find_any_ne_idx_cc(__vector unsigned short __a, 12556 __vector unsigned short __b, int *__cc) { 12557 return __builtin_s390_vfaehs(__a, __b, 8, __cc); 12558 } 12559 12560 static inline __ATTRS_o_ai __vector signed int 12561 vec_find_any_ne_idx_cc(__vector signed int __a, 12562 __vector signed int __b, int *__cc) { 12563 return (__vector signed int) 12564 __builtin_s390_vfaefs((__vector unsigned int)__a, 12565 (__vector unsigned int)__b, 8, __cc); 12566 } 12567 12568 static inline __ATTRS_o_ai __vector unsigned int 12569 vec_find_any_ne_idx_cc(__vector __bool int __a, 12570 __vector __bool int __b, int *__cc) { 12571 return __builtin_s390_vfaefs((__vector unsigned int)__a, 12572 (__vector unsigned int)__b, 8, __cc); 12573 } 12574 12575 static inline __ATTRS_o_ai __vector unsigned int 12576 vec_find_any_ne_idx_cc(__vector unsigned int __a, 12577 __vector unsigned int __b, int *__cc) { 12578 return __builtin_s390_vfaefs(__a, __b, 8, __cc); 12579 } 12580 12581 /*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/ 12582 12583 static inline __ATTRS_o_ai __vector signed char 12584 vec_find_any_ne_or_0_idx(__vector signed char __a, 12585 __vector signed char __b) { 12586 return (__vector signed char) 12587 __builtin_s390_vfaezb((__vector unsigned char)__a, 12588 (__vector unsigned char)__b, 8); 12589 } 12590 12591 static inline __ATTRS_o_ai __vector unsigned char 12592 vec_find_any_ne_or_0_idx(__vector __bool char __a, 12593 __vector __bool char __b) { 12594 return __builtin_s390_vfaezb((__vector unsigned char)__a, 12595 (__vector unsigned char)__b, 8); 12596 } 12597 12598 static inline __ATTRS_o_ai __vector unsigned char 12599 vec_find_any_ne_or_0_idx(__vector unsigned char __a, 12600 __vector unsigned char __b) { 12601 return __builtin_s390_vfaezb(__a, __b, 8); 12602 } 12603 12604 static inline __ATTRS_o_ai __vector signed short 12605 vec_find_any_ne_or_0_idx(__vector signed short __a, 12606 __vector signed short __b) { 12607 return (__vector signed short) 12608 __builtin_s390_vfaezh((__vector unsigned short)__a, 12609 (__vector unsigned short)__b, 8); 12610 } 12611 12612 static inline __ATTRS_o_ai __vector unsigned short 12613 vec_find_any_ne_or_0_idx(__vector __bool short __a, 12614 __vector __bool short __b) { 12615 return __builtin_s390_vfaezh((__vector unsigned short)__a, 12616 (__vector unsigned short)__b, 8); 12617 } 12618 12619 static inline __ATTRS_o_ai __vector unsigned short 12620 vec_find_any_ne_or_0_idx(__vector unsigned short __a, 12621 __vector unsigned short __b) { 12622 return __builtin_s390_vfaezh(__a, __b, 8); 12623 } 12624 12625 static inline __ATTRS_o_ai __vector signed int 12626 vec_find_any_ne_or_0_idx(__vector signed int __a, 12627 __vector signed int __b) { 12628 return (__vector signed int) 12629 __builtin_s390_vfaezf((__vector unsigned int)__a, 12630 (__vector unsigned int)__b, 8); 12631 } 12632 12633 static inline __ATTRS_o_ai __vector unsigned int 12634 vec_find_any_ne_or_0_idx(__vector __bool int __a, 12635 __vector __bool int __b) { 12636 return __builtin_s390_vfaezf((__vector unsigned int)__a, 12637 (__vector unsigned int)__b, 8); 12638 } 12639 12640 static inline __ATTRS_o_ai __vector unsigned int 12641 vec_find_any_ne_or_0_idx(__vector unsigned int __a, 12642 __vector unsigned int __b) { 12643 return __builtin_s390_vfaezf(__a, __b, 8); 12644 } 12645 12646 /*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/ 12647 12648 static inline __ATTRS_o_ai __vector signed char 12649 vec_find_any_ne_or_0_idx_cc(__vector signed char __a, 12650 __vector signed char __b, int *__cc) { 12651 return (__vector signed char) 12652 __builtin_s390_vfaezbs((__vector unsigned char)__a, 12653 (__vector unsigned char)__b, 8, __cc); 12654 } 12655 12656 static inline __ATTRS_o_ai __vector unsigned char 12657 vec_find_any_ne_or_0_idx_cc(__vector __bool char __a, 12658 __vector __bool char __b, int *__cc) { 12659 return __builtin_s390_vfaezbs((__vector unsigned char)__a, 12660 (__vector unsigned char)__b, 8, __cc); 12661 } 12662 12663 static inline __ATTRS_o_ai __vector unsigned char 12664 vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a, 12665 __vector unsigned char __b, int *__cc) { 12666 return __builtin_s390_vfaezbs(__a, __b, 8, __cc); 12667 } 12668 12669 static inline __ATTRS_o_ai __vector signed short 12670 vec_find_any_ne_or_0_idx_cc(__vector signed short __a, 12671 __vector signed short __b, int *__cc) { 12672 return (__vector signed short) 12673 __builtin_s390_vfaezhs((__vector unsigned short)__a, 12674 (__vector unsigned short)__b, 8, __cc); 12675 } 12676 12677 static inline __ATTRS_o_ai __vector unsigned short 12678 vec_find_any_ne_or_0_idx_cc(__vector __bool short __a, 12679 __vector __bool short __b, int *__cc) { 12680 return __builtin_s390_vfaezhs((__vector unsigned short)__a, 12681 (__vector unsigned short)__b, 8, __cc); 12682 } 12683 12684 static inline __ATTRS_o_ai __vector unsigned short 12685 vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a, 12686 __vector unsigned short __b, int *__cc) { 12687 return __builtin_s390_vfaezhs(__a, __b, 8, __cc); 12688 } 12689 12690 static inline __ATTRS_o_ai __vector signed int 12691 vec_find_any_ne_or_0_idx_cc(__vector signed int __a, 12692 __vector signed int __b, int *__cc) { 12693 return (__vector signed int) 12694 __builtin_s390_vfaezfs((__vector unsigned int)__a, 12695 (__vector unsigned int)__b, 8, __cc); 12696 } 12697 12698 static inline __ATTRS_o_ai __vector unsigned int 12699 vec_find_any_ne_or_0_idx_cc(__vector __bool int __a, 12700 __vector __bool int __b, int *__cc) { 12701 return __builtin_s390_vfaezfs((__vector unsigned int)__a, 12702 (__vector unsigned int)__b, 8, __cc); 12703 } 12704 12705 static inline __ATTRS_o_ai __vector unsigned int 12706 vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a, 12707 __vector unsigned int __b, int *__cc) { 12708 return __builtin_s390_vfaezfs(__a, __b, 8, __cc); 12709 } 12710 12711 /*-- vec_search_string_cc ---------------------------------------------------*/ 12712 12713 #if __ARCH__ >= 13 12714 12715 static inline __ATTRS_o_ai __vector unsigned char 12716 vec_search_string_cc(__vector signed char __a, __vector signed char __b, 12717 __vector unsigned char __c, int *__cc) { 12718 return __builtin_s390_vstrsb((__vector unsigned char)__a, 12719 (__vector unsigned char)__b, __c, __cc); 12720 } 12721 12722 static inline __ATTRS_o_ai __vector unsigned char 12723 vec_search_string_cc(__vector __bool char __a, __vector __bool char __b, 12724 __vector unsigned char __c, int *__cc) { 12725 return __builtin_s390_vstrsb((__vector unsigned char)__a, 12726 (__vector unsigned char)__b, __c, __cc); 12727 } 12728 12729 static inline __ATTRS_o_ai __vector unsigned char 12730 vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b, 12731 __vector unsigned char __c, int *__cc) { 12732 return __builtin_s390_vstrsb(__a, __b, __c, __cc); 12733 } 12734 12735 static inline __ATTRS_o_ai __vector unsigned char 12736 vec_search_string_cc(__vector signed short __a, __vector signed short __b, 12737 __vector unsigned char __c, int *__cc) { 12738 return __builtin_s390_vstrsh((__vector unsigned short)__a, 12739 (__vector unsigned short)__b, __c, __cc); 12740 } 12741 12742 static inline __ATTRS_o_ai __vector unsigned char 12743 vec_search_string_cc(__vector __bool short __a, __vector __bool short __b, 12744 __vector unsigned char __c, int *__cc) { 12745 return __builtin_s390_vstrsh((__vector unsigned short)__a, 12746 (__vector unsigned short)__b, __c, __cc); 12747 } 12748 12749 static inline __ATTRS_o_ai __vector unsigned char 12750 vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b, 12751 __vector unsigned char __c, int *__cc) { 12752 return __builtin_s390_vstrsh(__a, __b, __c, __cc); 12753 } 12754 12755 static inline __ATTRS_o_ai __vector unsigned char 12756 vec_search_string_cc(__vector signed int __a, __vector signed int __b, 12757 __vector unsigned char __c, int *__cc) { 12758 return __builtin_s390_vstrsf((__vector unsigned int)__a, 12759 (__vector unsigned int)__b, __c, __cc); 12760 } 12761 12762 static inline __ATTRS_o_ai __vector unsigned char 12763 vec_search_string_cc(__vector __bool int __a, __vector __bool int __b, 12764 __vector unsigned char __c, int *__cc) { 12765 return __builtin_s390_vstrsf((__vector unsigned int)__a, 12766 (__vector unsigned int)__b, __c, __cc); 12767 } 12768 12769 static inline __ATTRS_o_ai __vector unsigned char 12770 vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b, 12771 __vector unsigned char __c, int *__cc) { 12772 return __builtin_s390_vstrsf(__a, __b, __c, __cc); 12773 } 12774 12775 #endif 12776 12777 /*-- vec_search_string_until_zero_cc ----------------------------------------*/ 12778 12779 #if __ARCH__ >= 13 12780 12781 static inline __ATTRS_o_ai __vector unsigned char 12782 vec_search_string_until_zero_cc(__vector signed char __a, 12783 __vector signed char __b, 12784 __vector unsigned char __c, int *__cc) { 12785 return __builtin_s390_vstrszb((__vector unsigned char)__a, 12786 (__vector unsigned char)__b, __c, __cc); 12787 } 12788 12789 static inline __ATTRS_o_ai __vector unsigned char 12790 vec_search_string_until_zero_cc(__vector __bool char __a, 12791 __vector __bool char __b, 12792 __vector unsigned char __c, int *__cc) { 12793 return __builtin_s390_vstrszb((__vector unsigned char)__a, 12794 (__vector unsigned char)__b, __c, __cc); 12795 } 12796 12797 static inline __ATTRS_o_ai __vector unsigned char 12798 vec_search_string_until_zero_cc(__vector unsigned char __a, 12799 __vector unsigned char __b, 12800 __vector unsigned char __c, int *__cc) { 12801 return __builtin_s390_vstrszb(__a, __b, __c, __cc); 12802 } 12803 12804 static inline __ATTRS_o_ai __vector unsigned char 12805 vec_search_string_until_zero_cc(__vector signed short __a, 12806 __vector signed short __b, 12807 __vector unsigned char __c, int *__cc) { 12808 return __builtin_s390_vstrszh((__vector unsigned short)__a, 12809 (__vector unsigned short)__b, __c, __cc); 12810 } 12811 12812 static inline __ATTRS_o_ai __vector unsigned char 12813 vec_search_string_until_zero_cc(__vector __bool short __a, 12814 __vector __bool short __b, 12815 __vector unsigned char __c, int *__cc) { 12816 return __builtin_s390_vstrszh((__vector unsigned short)__a, 12817 (__vector unsigned short)__b, __c, __cc); 12818 } 12819 12820 static inline __ATTRS_o_ai __vector unsigned char 12821 vec_search_string_until_zero_cc(__vector unsigned short __a, 12822 __vector unsigned short __b, 12823 __vector unsigned char __c, int *__cc) { 12824 return __builtin_s390_vstrszh(__a, __b, __c, __cc); 12825 } 12826 12827 static inline __ATTRS_o_ai __vector unsigned char 12828 vec_search_string_until_zero_cc(__vector signed int __a, 12829 __vector signed int __b, 12830 __vector unsigned char __c, int *__cc) { 12831 return __builtin_s390_vstrszf((__vector unsigned int)__a, 12832 (__vector unsigned int)__b, __c, __cc); 12833 } 12834 12835 static inline __ATTRS_o_ai __vector unsigned char 12836 vec_search_string_until_zero_cc(__vector __bool int __a, 12837 __vector __bool int __b, 12838 __vector unsigned char __c, int *__cc) { 12839 return __builtin_s390_vstrszf((__vector unsigned int)__a, 12840 (__vector unsigned int)__b, __c, __cc); 12841 } 12842 12843 static inline __ATTRS_o_ai __vector unsigned char 12844 vec_search_string_until_zero_cc(__vector unsigned int __a, 12845 __vector unsigned int __b, 12846 __vector unsigned char __c, int *__cc) { 12847 return __builtin_s390_vstrszf(__a, __b, __c, __cc); 12848 } 12849 12850 #endif 12851 12852 #undef __constant_pow2_range 12853 #undef __constant_range 12854 #undef __constant 12855 #undef __ATTRS_o 12856 #undef __ATTRS_o_ai 12857 #undef __ATTRS_ai 12858 12859 #else 12860 12861 #error "Use -fzvector to enable vector extensions" 12862 12863 #endif 12864