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