12869 lines · c
1/*===---- vecintrin.h - Vector intrinsics ----------------------------------===2 *3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4 * See https://llvm.org/LICENSE.txt for license information.5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6 *7 *===-----------------------------------------------------------------------===8 */9 10#ifndef _VECINTRIN_H11#define _VECINTRIN_H12 13#if defined(__s390x__) && defined(__VEC__)14 15#define __ATTRS_ai __attribute__((__always_inline__))16#define __ATTRS_o __attribute__((__overloadable__))17#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))18 19#define __constant(PARM) \20 __attribute__((__enable_if__ ((PARM) == (PARM), \21 "argument must be a constant integer")))22#define __constant_range(PARM, LOW, HIGH) \23 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \24 "argument must be a constant integer from " #LOW " to " #HIGH)))25#define __constant_pow2_range(PARM, LOW, HIGH) \26 __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \27 ((PARM) & ((PARM) - 1)) == 0, \28 "argument must be a constant power of 2 from " #LOW " to " #HIGH)))29 30/*-- __lcbb -----------------------------------------------------------------*/31 32extern __ATTRS_o unsigned int33__lcbb(const void *__ptr, unsigned short __len)34 __constant_pow2_range(__len, 64, 4096);35 36#define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \37 __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \38 ((Y) == 64 ? 0 : \39 (Y) == 128 ? 1 : \40 (Y) == 256 ? 2 : \41 (Y) == 512 ? 3 : \42 (Y) == 1024 ? 4 : \43 (Y) == 2048 ? 5 : \44 (Y) == 4096 ? 6 : 0) : 0))45 46/*-- vec_extract ------------------------------------------------------------*/47 48static inline __ATTRS_o_ai signed char49vec_extract(__vector signed char __vec, int __index) {50 return __vec[__index & 15];51}52 53static inline __ATTRS_o_ai unsigned char54vec_extract(__vector __bool char __vec, int __index) {55 return __vec[__index & 15];56}57 58static inline __ATTRS_o_ai unsigned char59vec_extract(__vector unsigned char __vec, int __index) {60 return __vec[__index & 15];61}62 63static inline __ATTRS_o_ai signed short64vec_extract(__vector signed short __vec, int __index) {65 return __vec[__index & 7];66}67 68static inline __ATTRS_o_ai unsigned short69vec_extract(__vector __bool short __vec, int __index) {70 return __vec[__index & 7];71}72 73static inline __ATTRS_o_ai unsigned short74vec_extract(__vector unsigned short __vec, int __index) {75 return __vec[__index & 7];76}77 78static inline __ATTRS_o_ai signed int79vec_extract(__vector signed int __vec, int __index) {80 return __vec[__index & 3];81}82 83static inline __ATTRS_o_ai unsigned int84vec_extract(__vector __bool int __vec, int __index) {85 return __vec[__index & 3];86}87 88static inline __ATTRS_o_ai unsigned int89vec_extract(__vector unsigned int __vec, int __index) {90 return __vec[__index & 3];91}92 93static inline __ATTRS_o_ai signed long long94vec_extract(__vector signed long long __vec, int __index) {95 return __vec[__index & 1];96}97 98static inline __ATTRS_o_ai unsigned long long99vec_extract(__vector __bool long long __vec, int __index) {100 return __vec[__index & 1];101}102 103static inline __ATTRS_o_ai unsigned long long104vec_extract(__vector unsigned long long __vec, int __index) {105 return __vec[__index & 1];106}107 108#if __ARCH__ >= 12109static inline __ATTRS_o_ai float110vec_extract(__vector float __vec, int __index) {111 return __vec[__index & 3];112}113#endif114 115static inline __ATTRS_o_ai double116vec_extract(__vector double __vec, int __index) {117 return __vec[__index & 1];118}119 120/*-- vec_insert -------------------------------------------------------------*/121 122static inline __ATTRS_o_ai __vector signed char123vec_insert(signed char __scalar, __vector signed char __vec, int __index) {124 __vec[__index & 15] = __scalar;125 return __vec;126}127 128// This prototype is deprecated.129static inline __ATTRS_o_ai __vector unsigned char130vec_insert(unsigned char __scalar, __vector __bool char __vec, int __index) {131 __vector unsigned char __newvec = (__vector unsigned char)__vec;132 __newvec[__index & 15] = (unsigned char)__scalar;133 return __newvec;134}135 136static inline __ATTRS_o_ai __vector unsigned char137vec_insert(unsigned char __scalar, __vector unsigned char __vec, int __index) {138 __vec[__index & 15] = __scalar;139 return __vec;140}141 142static inline __ATTRS_o_ai __vector signed short143vec_insert(signed short __scalar, __vector signed short __vec, int __index) {144 __vec[__index & 7] = __scalar;145 return __vec;146}147 148// This prototype is deprecated.149static inline __ATTRS_o_ai __vector unsigned short150vec_insert(unsigned short __scalar, __vector __bool short __vec,151 int __index) {152 __vector unsigned short __newvec = (__vector unsigned short)__vec;153 __newvec[__index & 7] = (unsigned short)__scalar;154 return __newvec;155}156 157static inline __ATTRS_o_ai __vector unsigned short158vec_insert(unsigned short __scalar, __vector unsigned short __vec,159 int __index) {160 __vec[__index & 7] = __scalar;161 return __vec;162}163 164static inline __ATTRS_o_ai __vector signed int165vec_insert(signed int __scalar, __vector signed int __vec, int __index) {166 __vec[__index & 3] = __scalar;167 return __vec;168}169 170// This prototype is deprecated.171static inline __ATTRS_o_ai __vector unsigned int172vec_insert(unsigned int __scalar, __vector __bool int __vec, int __index) {173 __vector unsigned int __newvec = (__vector unsigned int)__vec;174 __newvec[__index & 3] = __scalar;175 return __newvec;176}177 178static inline __ATTRS_o_ai __vector unsigned int179vec_insert(unsigned int __scalar, __vector unsigned int __vec, int __index) {180 __vec[__index & 3] = __scalar;181 return __vec;182}183 184static inline __ATTRS_o_ai __vector signed long long185vec_insert(signed long long __scalar, __vector signed long long __vec,186 int __index) {187 __vec[__index & 1] = __scalar;188 return __vec;189}190 191// This prototype is deprecated.192static inline __ATTRS_o_ai __vector unsigned long long193vec_insert(unsigned long long __scalar, __vector __bool long long __vec,194 int __index) {195 __vector unsigned long long __newvec = (__vector unsigned long long)__vec;196 __newvec[__index & 1] = __scalar;197 return __newvec;198}199 200static inline __ATTRS_o_ai __vector unsigned long long201vec_insert(unsigned long long __scalar, __vector unsigned long long __vec,202 int __index) {203 __vec[__index & 1] = __scalar;204 return __vec;205}206 207#if __ARCH__ >= 12208static inline __ATTRS_o_ai __vector float209vec_insert(float __scalar, __vector float __vec, int __index) {210 __vec[__index & 1] = __scalar;211 return __vec;212}213#endif214 215static inline __ATTRS_o_ai __vector double216vec_insert(double __scalar, __vector double __vec, int __index) {217 __vec[__index & 1] = __scalar;218 return __vec;219}220 221/*-- vec_promote ------------------------------------------------------------*/222 223static inline __ATTRS_o_ai __vector signed char224vec_promote(signed char __scalar, int __index) {225 const __vector signed char __zero = (__vector signed char)0;226 __vector signed char __vec = __builtin_shufflevector(__zero, __zero,227 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);228 __vec[__index & 15] = __scalar;229 return __vec;230}231 232static inline __ATTRS_o_ai __vector unsigned char233vec_promote(unsigned char __scalar, int __index) {234 const __vector unsigned char __zero = (__vector unsigned char)0;235 __vector unsigned char __vec = __builtin_shufflevector(__zero, __zero,236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);237 __vec[__index & 15] = __scalar;238 return __vec;239}240 241static inline __ATTRS_o_ai __vector signed short242vec_promote(signed short __scalar, int __index) {243 const __vector signed short __zero = (__vector signed short)0;244 __vector signed short __vec = __builtin_shufflevector(__zero, __zero,245 -1, -1, -1, -1, -1, -1, -1, -1);246 __vec[__index & 7] = __scalar;247 return __vec;248}249 250static inline __ATTRS_o_ai __vector unsigned short251vec_promote(unsigned short __scalar, int __index) {252 const __vector unsigned short __zero = (__vector unsigned short)0;253 __vector unsigned short __vec = __builtin_shufflevector(__zero, __zero,254 -1, -1, -1, -1, -1, -1, -1, -1);255 __vec[__index & 7] = __scalar;256 return __vec;257}258 259static inline __ATTRS_o_ai __vector signed int260vec_promote(signed int __scalar, int __index) {261 const __vector signed int __zero = (__vector signed int)0;262 __vector signed int __vec = __builtin_shufflevector(__zero, __zero,263 -1, -1, -1, -1);264 __vec[__index & 3] = __scalar;265 return __vec;266}267 268static inline __ATTRS_o_ai __vector unsigned int269vec_promote(unsigned int __scalar, int __index) {270 const __vector unsigned int __zero = (__vector unsigned int)0;271 __vector unsigned int __vec = __builtin_shufflevector(__zero, __zero,272 -1, -1, -1, -1);273 __vec[__index & 3] = __scalar;274 return __vec;275}276 277static inline __ATTRS_o_ai __vector signed long long278vec_promote(signed long long __scalar, int __index) {279 const __vector signed long long __zero = (__vector signed long long)0;280 __vector signed long long __vec = __builtin_shufflevector(__zero, __zero,281 -1, -1);282 __vec[__index & 1] = __scalar;283 return __vec;284}285 286static inline __ATTRS_o_ai __vector unsigned long long287vec_promote(unsigned long long __scalar, int __index) {288 const __vector unsigned long long __zero = (__vector unsigned long long)0;289 __vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero,290 -1, -1);291 __vec[__index & 1] = __scalar;292 return __vec;293}294 295#if __ARCH__ >= 12296static inline __ATTRS_o_ai __vector float297vec_promote(float __scalar, int __index) {298 const __vector float __zero = (__vector float)0.0f;299 __vector float __vec = __builtin_shufflevector(__zero, __zero,300 -1, -1, -1, -1);301 __vec[__index & 3] = __scalar;302 return __vec;303}304#endif305 306static inline __ATTRS_o_ai __vector double307vec_promote(double __scalar, int __index) {308 const __vector double __zero = (__vector double)0.0;309 __vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1);310 __vec[__index & 1] = __scalar;311 return __vec;312}313 314/*-- vec_insert_and_zero ----------------------------------------------------*/315 316static inline __ATTRS_o_ai __vector signed char317vec_insert_and_zero(const signed char *__ptr) {318 __vector signed char __vec = (__vector signed char)0;319 __vec[7] = *__ptr;320 return __vec;321}322 323static inline __ATTRS_o_ai __vector unsigned char324vec_insert_and_zero(const unsigned char *__ptr) {325 __vector unsigned char __vec = (__vector unsigned char)0;326 __vec[7] = *__ptr;327 return __vec;328}329 330static inline __ATTRS_o_ai __vector signed short331vec_insert_and_zero(const signed short *__ptr) {332 __vector signed short __vec = (__vector signed short)0;333 __vec[3] = *__ptr;334 return __vec;335}336 337static inline __ATTRS_o_ai __vector unsigned short338vec_insert_and_zero(const unsigned short *__ptr) {339 __vector unsigned short __vec = (__vector unsigned short)0;340 __vec[3] = *__ptr;341 return __vec;342}343 344static inline __ATTRS_o_ai __vector signed int345vec_insert_and_zero(const signed int *__ptr) {346 __vector signed int __vec = (__vector signed int)0;347 __vec[1] = *__ptr;348 return __vec;349}350 351static inline __ATTRS_o_ai __vector unsigned int352vec_insert_and_zero(const unsigned int *__ptr) {353 __vector unsigned int __vec = (__vector unsigned int)0;354 __vec[1] = *__ptr;355 return __vec;356}357 358static inline __ATTRS_o_ai __vector signed long long359vec_insert_and_zero(const signed long long *__ptr) {360 __vector signed long long __vec = (__vector signed long long)0;361 __vec[0] = *__ptr;362 return __vec;363}364 365static inline __ATTRS_o_ai __vector unsigned long long366vec_insert_and_zero(const unsigned long long *__ptr) {367 __vector unsigned long long __vec = (__vector unsigned long long)0;368 __vec[0] = *__ptr;369 return __vec;370}371 372#if __ARCH__ >= 12373static inline __ATTRS_o_ai __vector float374vec_insert_and_zero(const float *__ptr) {375 __vector float __vec = (__vector float)0.0f;376 __vec[1] = *__ptr;377 return __vec;378}379#endif380 381static inline __ATTRS_o_ai __vector double382vec_insert_and_zero(const double *__ptr) {383 __vector double __vec = (__vector double)0.0;384 __vec[0] = *__ptr;385 return __vec;386}387 388/*-- vec_perm ---------------------------------------------------------------*/389 390static inline __ATTRS_o_ai __vector signed char391vec_perm(__vector signed char __a, __vector signed char __b,392 __vector unsigned char __c) {393 return (__vector signed char)__builtin_s390_vperm(394 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);395}396 397static inline __ATTRS_o_ai __vector unsigned char398vec_perm(__vector unsigned char __a, __vector unsigned char __b,399 __vector unsigned char __c) {400 return (__vector unsigned char)__builtin_s390_vperm(401 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);402}403 404static inline __ATTRS_o_ai __vector __bool char405vec_perm(__vector __bool char __a, __vector __bool char __b,406 __vector unsigned char __c) {407 return (__vector __bool char)__builtin_s390_vperm(408 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);409}410 411static inline __ATTRS_o_ai __vector signed short412vec_perm(__vector signed short __a, __vector signed short __b,413 __vector unsigned char __c) {414 return (__vector signed short)__builtin_s390_vperm(415 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);416}417 418static inline __ATTRS_o_ai __vector unsigned short419vec_perm(__vector unsigned short __a, __vector unsigned short __b,420 __vector unsigned char __c) {421 return (__vector unsigned short)__builtin_s390_vperm(422 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);423}424 425static inline __ATTRS_o_ai __vector __bool short426vec_perm(__vector __bool short __a, __vector __bool short __b,427 __vector unsigned char __c) {428 return (__vector __bool short)__builtin_s390_vperm(429 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);430}431 432static inline __ATTRS_o_ai __vector signed int433vec_perm(__vector signed int __a, __vector signed int __b,434 __vector unsigned char __c) {435 return (__vector signed int)__builtin_s390_vperm(436 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);437}438 439static inline __ATTRS_o_ai __vector unsigned int440vec_perm(__vector unsigned int __a, __vector unsigned int __b,441 __vector unsigned char __c) {442 return (__vector unsigned int)__builtin_s390_vperm(443 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);444}445 446static inline __ATTRS_o_ai __vector __bool int447vec_perm(__vector __bool int __a, __vector __bool int __b,448 __vector unsigned char __c) {449 return (__vector __bool int)__builtin_s390_vperm(450 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);451}452 453static inline __ATTRS_o_ai __vector signed long long454vec_perm(__vector signed long long __a, __vector signed long long __b,455 __vector unsigned char __c) {456 return (__vector signed long long)__builtin_s390_vperm(457 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);458}459 460static inline __ATTRS_o_ai __vector unsigned long long461vec_perm(__vector unsigned long long __a, __vector unsigned long long __b,462 __vector unsigned char __c) {463 return (__vector unsigned long long)__builtin_s390_vperm(464 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);465}466 467static inline __ATTRS_o_ai __vector __bool long long468vec_perm(__vector __bool long long __a, __vector __bool long long __b,469 __vector unsigned char __c) {470 return (__vector __bool long long)__builtin_s390_vperm(471 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);472}473 474static inline __ATTRS_o_ai __vector signed __int128475vec_perm(__vector signed __int128 __a, __vector signed __int128 __b,476 __vector unsigned char __c) {477 return (__vector signed __int128)__builtin_s390_vperm(478 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);479}480 481static inline __ATTRS_o_ai __vector unsigned __int128482vec_perm(__vector unsigned __int128 __a, __vector unsigned __int128 __b,483 __vector unsigned char __c) {484 return (__vector unsigned __int128)__builtin_s390_vperm(485 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);486}487 488static inline __ATTRS_o_ai __vector __bool __int128489vec_perm(__vector __bool __int128 __a, __vector __bool __int128 __b,490 __vector unsigned char __c) {491 return (__vector __bool __int128)__builtin_s390_vperm(492 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);493}494 495#if __ARCH__ >= 12496static inline __ATTRS_o_ai __vector float497vec_perm(__vector float __a, __vector float __b,498 __vector unsigned char __c) {499 return (__vector float)__builtin_s390_vperm(500 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);501}502#endif503 504static inline __ATTRS_o_ai __vector double505vec_perm(__vector double __a, __vector double __b,506 __vector unsigned char __c) {507 return (__vector double)__builtin_s390_vperm(508 (__vector unsigned char)__a, (__vector unsigned char)__b, __c);509}510 511/*-- vec_permi --------------------------------------------------------------*/512 513// This prototype is deprecated.514extern __ATTRS_o __vector signed long long515vec_permi(__vector signed long long __a, __vector signed long long __b,516 int __c)517 __constant_range(__c, 0, 3);518 519// This prototype is deprecated.520extern __ATTRS_o __vector unsigned long long521vec_permi(__vector unsigned long long __a, __vector unsigned long long __b,522 int __c)523 __constant_range(__c, 0, 3);524 525// This prototype is deprecated.526extern __ATTRS_o __vector __bool long long527vec_permi(__vector __bool long long __a, __vector __bool long long __b,528 int __c)529 __constant_range(__c, 0, 3);530 531// This prototype is deprecated.532extern __ATTRS_o __vector double533vec_permi(__vector double __a, __vector double __b, int __c)534 __constant_range(__c, 0, 3);535 536#define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \537 __builtin_s390_vpdi((__vector unsigned long long)(X), \538 (__vector unsigned long long)(Y), \539 (((Z) & 2) << 1) | ((Z) & 1)))540 541/*-- vec_bperm --------------------------------------------------------------*/542 543#if __ARCH__ >= 12544static inline __ATTRS_ai __vector unsigned long long545vec_bperm(__vector unsigned __int128 __a, __vector unsigned char __b) {546 return __builtin_s390_vbperm((__vector unsigned char)__a, __b);547}548#endif549 550/*-- vec_bperm_u128 ---------------------------------------------------------*/551 552#if __ARCH__ >= 12553// This prototype is deprecated.554static inline __ATTRS_ai __vector unsigned long long555vec_bperm_u128(__vector unsigned char __a, __vector unsigned char __b) {556 return __builtin_s390_vbperm(__a, __b);557}558#endif559 560/*-- vec_revb ---------------------------------------------------------------*/561 562static inline __ATTRS_o_ai __vector signed short563vec_revb(__vector signed short __vec) {564 return (__vector signed short)565 __builtin_s390_vlbrh((__vector unsigned short)__vec);566}567 568static inline __ATTRS_o_ai __vector unsigned short569vec_revb(__vector unsigned short __vec) {570 return __builtin_s390_vlbrh(__vec);571}572 573static inline __ATTRS_o_ai __vector signed int574vec_revb(__vector signed int __vec) {575 return (__vector signed int)576 __builtin_s390_vlbrf((__vector unsigned int)__vec);577}578 579static inline __ATTRS_o_ai __vector unsigned int580vec_revb(__vector unsigned int __vec) {581 return __builtin_s390_vlbrf(__vec);582}583 584static inline __ATTRS_o_ai __vector signed long long585vec_revb(__vector signed long long __vec) {586 return (__vector signed long long)587 __builtin_s390_vlbrg((__vector unsigned long long)__vec);588}589 590static inline __ATTRS_o_ai __vector unsigned long long591vec_revb(__vector unsigned long long __vec) {592 return __builtin_s390_vlbrg(__vec);593}594 595static inline __ATTRS_o_ai __vector signed __int128596vec_revb(__vector signed __int128 __vec) {597 return (__vector signed __int128)598 __builtin_s390_vlbrq((unsigned __int128)__vec);599}600 601static inline __ATTRS_o_ai __vector unsigned __int128602vec_revb(__vector unsigned __int128 __vec) {603 return (__vector unsigned __int128)604 __builtin_s390_vlbrq((unsigned __int128)__vec);605}606 607#if __ARCH__ >= 12608static inline __ATTRS_o_ai __vector float609vec_revb(__vector float __vec) {610 return (__vector float)611 __builtin_s390_vlbrf((__vector unsigned int)__vec);612}613#endif614 615static inline __ATTRS_o_ai __vector double616vec_revb(__vector double __vec) {617 return (__vector double)618 __builtin_s390_vlbrg((__vector unsigned long long)__vec);619}620 621/*-- vec_reve ---------------------------------------------------------------*/622 623static inline __ATTRS_o_ai __vector signed char624vec_reve(__vector signed char __vec) {625 return (__vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12],626 __vec[11], __vec[10], __vec[9], __vec[8],627 __vec[7], __vec[6], __vec[5], __vec[4],628 __vec[3], __vec[2], __vec[1], __vec[0] };629}630 631static inline __ATTRS_o_ai __vector unsigned char632vec_reve(__vector unsigned char __vec) {633 return (__vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12],634 __vec[11], __vec[10], __vec[9], __vec[8],635 __vec[7], __vec[6], __vec[5], __vec[4],636 __vec[3], __vec[2], __vec[1], __vec[0] };637}638 639static inline __ATTRS_o_ai __vector __bool char640vec_reve(__vector __bool char __vec) {641 return (__vector __bool char) { __vec[15], __vec[14], __vec[13], __vec[12],642 __vec[11], __vec[10], __vec[9], __vec[8],643 __vec[7], __vec[6], __vec[5], __vec[4],644 __vec[3], __vec[2], __vec[1], __vec[0] };645}646 647static inline __ATTRS_o_ai __vector signed short648vec_reve(__vector signed short __vec) {649 return (__vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4],650 __vec[3], __vec[2], __vec[1], __vec[0] };651}652 653static inline __ATTRS_o_ai __vector unsigned short654vec_reve(__vector unsigned short __vec) {655 return (__vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4],656 __vec[3], __vec[2], __vec[1], __vec[0] };657}658 659static inline __ATTRS_o_ai __vector __bool short660vec_reve(__vector __bool short __vec) {661 return (__vector __bool short) { __vec[7], __vec[6], __vec[5], __vec[4],662 __vec[3], __vec[2], __vec[1], __vec[0] };663}664 665static inline __ATTRS_o_ai __vector signed int666vec_reve(__vector signed int __vec) {667 return (__vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] };668}669 670static inline __ATTRS_o_ai __vector unsigned int671vec_reve(__vector unsigned int __vec) {672 return (__vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] };673}674 675static inline __ATTRS_o_ai __vector __bool int676vec_reve(__vector __bool int __vec) {677 return (__vector __bool int) { __vec[3], __vec[2], __vec[1], __vec[0] };678}679 680static inline __ATTRS_o_ai __vector signed long long681vec_reve(__vector signed long long __vec) {682 return (__vector signed long long) { __vec[1], __vec[0] };683}684 685static inline __ATTRS_o_ai __vector unsigned long long686vec_reve(__vector unsigned long long __vec) {687 return (__vector unsigned long long) { __vec[1], __vec[0] };688}689 690static inline __ATTRS_o_ai __vector __bool long long691vec_reve(__vector __bool long long __vec) {692 return (__vector __bool long long) { __vec[1], __vec[0] };693}694 695#if __ARCH__ >= 12696static inline __ATTRS_o_ai __vector float697vec_reve(__vector float __vec) {698 return (__vector float) { __vec[3], __vec[2], __vec[1], __vec[0] };699}700#endif701 702static inline __ATTRS_o_ai __vector double703vec_reve(__vector double __vec) {704 return (__vector double) { __vec[1], __vec[0] };705}706 707/*-- vec_sel ----------------------------------------------------------------*/708 709static inline __ATTRS_o_ai __vector signed char710vec_sel(__vector signed char __a, __vector signed char __b,711 __vector unsigned char __c) {712 return (((__vector signed char)__c & __b) |713 (~(__vector signed char)__c & __a));714}715 716static inline __ATTRS_o_ai __vector signed char717vec_sel(__vector signed char __a, __vector signed char __b,718 __vector __bool char __c) {719 return (((__vector signed char)__c & __b) |720 (~(__vector signed char)__c & __a));721}722 723static inline __ATTRS_o_ai __vector __bool char724vec_sel(__vector __bool char __a, __vector __bool char __b,725 __vector unsigned char __c) {726 return (((__vector __bool char)__c & __b) |727 (~(__vector __bool char)__c & __a));728}729 730static inline __ATTRS_o_ai __vector __bool char731vec_sel(__vector __bool char __a, __vector __bool char __b,732 __vector __bool char __c) {733 return (__c & __b) | (~__c & __a);734}735 736static inline __ATTRS_o_ai __vector unsigned char737vec_sel(__vector unsigned char __a, __vector unsigned char __b,738 __vector unsigned char __c) {739 return (__c & __b) | (~__c & __a);740}741 742static inline __ATTRS_o_ai __vector unsigned char743vec_sel(__vector unsigned char __a, __vector unsigned char __b,744 __vector __bool char __c) {745 return (((__vector unsigned char)__c & __b) |746 (~(__vector unsigned char)__c & __a));747}748 749static inline __ATTRS_o_ai __vector signed short750vec_sel(__vector signed short __a, __vector signed short __b,751 __vector unsigned short __c) {752 return (((__vector signed short)__c & __b) |753 (~(__vector signed short)__c & __a));754}755 756static inline __ATTRS_o_ai __vector signed short757vec_sel(__vector signed short __a, __vector signed short __b,758 __vector __bool short __c) {759 return (((__vector signed short)__c & __b) |760 (~(__vector signed short)__c & __a));761}762 763static inline __ATTRS_o_ai __vector __bool short764vec_sel(__vector __bool short __a, __vector __bool short __b,765 __vector unsigned short __c) {766 return (((__vector __bool short)__c & __b) |767 (~(__vector __bool short)__c & __a));768}769 770static inline __ATTRS_o_ai __vector __bool short771vec_sel(__vector __bool short __a, __vector __bool short __b,772 __vector __bool short __c) {773 return (__c & __b) | (~__c & __a);774}775 776static inline __ATTRS_o_ai __vector unsigned short777vec_sel(__vector unsigned short __a, __vector unsigned short __b,778 __vector unsigned short __c) {779 return (__c & __b) | (~__c & __a);780}781 782static inline __ATTRS_o_ai __vector unsigned short783vec_sel(__vector unsigned short __a, __vector unsigned short __b,784 __vector __bool short __c) {785 return (((__vector unsigned short)__c & __b) |786 (~(__vector unsigned short)__c & __a));787}788 789static inline __ATTRS_o_ai __vector signed int790vec_sel(__vector signed int __a, __vector signed int __b,791 __vector unsigned int __c) {792 return (((__vector signed int)__c & __b) |793 (~(__vector signed int)__c & __a));794}795 796static inline __ATTRS_o_ai __vector signed int797vec_sel(__vector signed int __a, __vector signed int __b,798 __vector __bool int __c) {799 return (((__vector signed int)__c & __b) |800 (~(__vector signed int)__c & __a));801}802 803static inline __ATTRS_o_ai __vector __bool int804vec_sel(__vector __bool int __a, __vector __bool int __b,805 __vector unsigned int __c) {806 return (((__vector __bool int)__c & __b) |807 (~(__vector __bool int)__c & __a));808}809 810static inline __ATTRS_o_ai __vector __bool int811vec_sel(__vector __bool int __a, __vector __bool int __b,812 __vector __bool int __c) {813 return (__c & __b) | (~__c & __a);814}815 816static inline __ATTRS_o_ai __vector unsigned int817vec_sel(__vector unsigned int __a, __vector unsigned int __b,818 __vector unsigned int __c) {819 return (__c & __b) | (~__c & __a);820}821 822static inline __ATTRS_o_ai __vector unsigned int823vec_sel(__vector unsigned int __a, __vector unsigned int __b,824 __vector __bool int __c) {825 return (((__vector unsigned int)__c & __b) |826 (~(__vector unsigned int)__c & __a));827}828 829static inline __ATTRS_o_ai __vector signed long long830vec_sel(__vector signed long long __a, __vector signed long long __b,831 __vector unsigned long long __c) {832 return (((__vector signed long long)__c & __b) |833 (~(__vector signed long long)__c & __a));834}835 836static inline __ATTRS_o_ai __vector signed long long837vec_sel(__vector signed long long __a, __vector signed long long __b,838 __vector __bool long long __c) {839 return (((__vector signed long long)__c & __b) |840 (~(__vector signed long long)__c & __a));841}842 843static inline __ATTRS_o_ai __vector __bool long long844vec_sel(__vector __bool long long __a, __vector __bool long long __b,845 __vector unsigned long long __c) {846 return (((__vector __bool long long)__c & __b) |847 (~(__vector __bool long long)__c & __a));848}849 850static inline __ATTRS_o_ai __vector __bool long long851vec_sel(__vector __bool long long __a, __vector __bool long long __b,852 __vector __bool long long __c) {853 return (__c & __b) | (~__c & __a);854}855 856static inline __ATTRS_o_ai __vector unsigned long long857vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,858 __vector unsigned long long __c) {859 return (__c & __b) | (~__c & __a);860}861 862static inline __ATTRS_o_ai __vector unsigned long long863vec_sel(__vector unsigned long long __a, __vector unsigned long long __b,864 __vector __bool long long __c) {865 return (((__vector unsigned long long)__c & __b) |866 (~(__vector unsigned long long)__c & __a));867}868 869static inline __ATTRS_o_ai __vector signed __int128870vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,871 __vector unsigned __int128 __c) {872 return (((__vector signed __int128)__c & __b) |873 (~(__vector signed __int128)__c & __a));874}875 876static inline __ATTRS_o_ai __vector signed __int128877vec_sel(__vector signed __int128 __a, __vector signed __int128 __b,878 __vector __bool __int128 __c) {879 return (((__vector signed __int128)__c & __b) |880 (~(__vector signed __int128)__c & __a));881}882 883static inline __ATTRS_o_ai __vector __bool __int128884vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,885 __vector unsigned __int128 __c) {886 return (((__vector __bool __int128)__c & __b) |887 (~(__vector __bool __int128)__c & __a));888}889 890static inline __ATTRS_o_ai __vector __bool __int128891vec_sel(__vector __bool __int128 __a, __vector __bool __int128 __b,892 __vector __bool __int128 __c) {893 return (__c & __b) | (~__c & __a);894}895 896static inline __ATTRS_o_ai __vector unsigned __int128897vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,898 __vector unsigned __int128 __c) {899 return (__c & __b) | (~__c & __a);900}901 902static inline __ATTRS_o_ai __vector unsigned __int128903vec_sel(__vector unsigned __int128 __a, __vector unsigned __int128 __b,904 __vector __bool __int128 __c) {905 return (((__vector unsigned __int128)__c & __b) |906 (~(__vector unsigned __int128)__c & __a));907}908 909#if __ARCH__ >= 12910static inline __ATTRS_o_ai __vector float911vec_sel(__vector float __a, __vector float __b, __vector unsigned int __c) {912 return (__vector float)((__c & (__vector unsigned int)__b) |913 (~__c & (__vector unsigned int)__a));914}915 916static inline __ATTRS_o_ai __vector float917vec_sel(__vector float __a, __vector float __b, __vector __bool int __c) {918 __vector unsigned int __ac = (__vector unsigned int)__a;919 __vector unsigned int __bc = (__vector unsigned int)__b;920 __vector unsigned int __cc = (__vector unsigned int)__c;921 return (__vector float)((__cc & __bc) | (~__cc & __ac));922}923#endif924 925static inline __ATTRS_o_ai __vector double926vec_sel(__vector double __a, __vector double __b,927 __vector unsigned long long __c) {928 return (__vector double)((__c & (__vector unsigned long long)__b) |929 (~__c & (__vector unsigned long long)__a));930}931 932static inline __ATTRS_o_ai __vector double933vec_sel(__vector double __a, __vector double __b,934 __vector __bool long long __c) {935 __vector unsigned long long __ac = (__vector unsigned long long)__a;936 __vector unsigned long long __bc = (__vector unsigned long long)__b;937 __vector unsigned long long __cc = (__vector unsigned long long)__c;938 return (__vector double)((__cc & __bc) | (~__cc & __ac));939}940 941/*-- vec_gather_element -----------------------------------------------------*/942 943static inline __ATTRS_o_ai __vector signed int944vec_gather_element(__vector signed int __vec,945 __vector unsigned int __offset,946 const signed int *__ptr, int __index)947 __constant_range(__index, 0, 3) {948 __vec[__index] = *(const signed int *)(949 (const char *)__ptr + __offset[__index]);950 return __vec;951}952 953static inline __ATTRS_o_ai __vector __bool int954vec_gather_element(__vector __bool int __vec,955 __vector unsigned int __offset,956 const unsigned int *__ptr, int __index)957 __constant_range(__index, 0, 3) {958 __vec[__index] = *(const unsigned int *)(959 (const char *)__ptr + __offset[__index]);960 return __vec;961}962 963static inline __ATTRS_o_ai __vector unsigned int964vec_gather_element(__vector unsigned int __vec,965 __vector unsigned int __offset,966 const unsigned int *__ptr, int __index)967 __constant_range(__index, 0, 3) {968 __vec[__index] = *(const unsigned int *)(969 (const char *)__ptr + __offset[__index]);970 return __vec;971}972 973static inline __ATTRS_o_ai __vector signed long long974vec_gather_element(__vector signed long long __vec,975 __vector unsigned long long __offset,976 const signed long long *__ptr, int __index)977 __constant_range(__index, 0, 1) {978 __vec[__index] = *(const signed long long *)(979 (const char *)__ptr + __offset[__index]);980 return __vec;981}982 983static inline __ATTRS_o_ai __vector __bool long long984vec_gather_element(__vector __bool long long __vec,985 __vector unsigned long long __offset,986 const unsigned long long *__ptr, int __index)987 __constant_range(__index, 0, 1) {988 __vec[__index] = *(const unsigned long long *)(989 (const char *)__ptr + __offset[__index]);990 return __vec;991}992 993static inline __ATTRS_o_ai __vector unsigned long long994vec_gather_element(__vector unsigned long long __vec,995 __vector unsigned long long __offset,996 const unsigned long long *__ptr, int __index)997 __constant_range(__index, 0, 1) {998 __vec[__index] = *(const unsigned long long *)(999 (const char *)__ptr + __offset[__index]);1000 return __vec;1001}1002 1003#if __ARCH__ >= 121004static inline __ATTRS_o_ai __vector float1005vec_gather_element(__vector float __vec,1006 __vector unsigned int __offset,1007 const float *__ptr, int __index)1008 __constant_range(__index, 0, 3) {1009 __vec[__index] = *(const float *)(1010 (const char *)__ptr + __offset[__index]);1011 return __vec;1012}1013#endif1014 1015static inline __ATTRS_o_ai __vector double1016vec_gather_element(__vector double __vec,1017 __vector unsigned long long __offset,1018 const double *__ptr, int __index)1019 __constant_range(__index, 0, 1) {1020 __vec[__index] = *(const double *)(1021 (const char *)__ptr + __offset[__index]);1022 return __vec;1023}1024 1025/*-- vec_scatter_element ----------------------------------------------------*/1026 1027static inline __ATTRS_o_ai void1028vec_scatter_element(__vector signed int __vec,1029 __vector unsigned int __offset,1030 signed int *__ptr, int __index)1031 __constant_range(__index, 0, 3) {1032 *(signed int *)((char *)__ptr + __offset[__index]) =1033 __vec[__index];1034}1035 1036static inline __ATTRS_o_ai void1037vec_scatter_element(__vector __bool int __vec,1038 __vector unsigned int __offset,1039 unsigned int *__ptr, int __index)1040 __constant_range(__index, 0, 3) {1041 *(unsigned int *)((char *)__ptr + __offset[__index]) =1042 __vec[__index];1043}1044 1045static inline __ATTRS_o_ai void1046vec_scatter_element(__vector unsigned int __vec,1047 __vector unsigned int __offset,1048 unsigned int *__ptr, int __index)1049 __constant_range(__index, 0, 3) {1050 *(unsigned int *)((char *)__ptr + __offset[__index]) =1051 __vec[__index];1052}1053 1054static inline __ATTRS_o_ai void1055vec_scatter_element(__vector signed long long __vec,1056 __vector unsigned long long __offset,1057 signed long long *__ptr, int __index)1058 __constant_range(__index, 0, 1) {1059 *(signed long long *)((char *)__ptr + __offset[__index]) =1060 __vec[__index];1061}1062 1063static inline __ATTRS_o_ai void1064vec_scatter_element(__vector __bool long long __vec,1065 __vector unsigned long long __offset,1066 unsigned long long *__ptr, int __index)1067 __constant_range(__index, 0, 1) {1068 *(unsigned long long *)((char *)__ptr + __offset[__index]) =1069 __vec[__index];1070}1071 1072static inline __ATTRS_o_ai void1073vec_scatter_element(__vector unsigned long long __vec,1074 __vector unsigned long long __offset,1075 unsigned long long *__ptr, int __index)1076 __constant_range(__index, 0, 1) {1077 *(unsigned long long *)((char *)__ptr + __offset[__index]) =1078 __vec[__index];1079}1080 1081#if __ARCH__ >= 121082static inline __ATTRS_o_ai void1083vec_scatter_element(__vector float __vec,1084 __vector unsigned int __offset,1085 float *__ptr, int __index)1086 __constant_range(__index, 0, 3) {1087 *(float *)((char *)__ptr + __offset[__index]) =1088 __vec[__index];1089}1090#endif1091 1092static inline __ATTRS_o_ai void1093vec_scatter_element(__vector double __vec,1094 __vector unsigned long long __offset,1095 double *__ptr, int __index)1096 __constant_range(__index, 0, 1) {1097 *(double *)((char *)__ptr + __offset[__index]) =1098 __vec[__index];1099}1100 1101/*-- vec_xl -----------------------------------------------------------------*/1102 1103static inline __ATTRS_o_ai __vector signed char1104vec_xl(long __offset, const signed char *__ptr) {1105 __vector signed char V;1106 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1107 sizeof(__vector signed char));1108 return V;1109}1110 1111static inline __ATTRS_o_ai __vector unsigned char1112vec_xl(long __offset, const unsigned char *__ptr) {1113 __vector unsigned char V;1114 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1115 sizeof(__vector unsigned char));1116 return V;1117}1118 1119static inline __ATTRS_o_ai __vector signed short1120vec_xl(long __offset, const signed short *__ptr) {1121 __vector signed short V;1122 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1123 sizeof(__vector signed short));1124 return V;1125}1126 1127static inline __ATTRS_o_ai __vector unsigned short1128vec_xl(long __offset, const unsigned short *__ptr) {1129 __vector unsigned short V;1130 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1131 sizeof(__vector unsigned short));1132 return V;1133}1134 1135static inline __ATTRS_o_ai __vector signed int1136vec_xl(long __offset, const signed int *__ptr) {1137 __vector signed int V;1138 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1139 sizeof(__vector signed int));1140 return V;1141}1142 1143static inline __ATTRS_o_ai __vector unsigned int1144vec_xl(long __offset, const unsigned int *__ptr) {1145 __vector unsigned int V;1146 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1147 sizeof(__vector unsigned int));1148 return V;1149}1150 1151static inline __ATTRS_o_ai __vector signed long long1152vec_xl(long __offset, const signed long long *__ptr) {1153 __vector signed long long V;1154 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1155 sizeof(__vector signed long long));1156 return V;1157}1158 1159static inline __ATTRS_o_ai __vector unsigned long long1160vec_xl(long __offset, const unsigned long long *__ptr) {1161 __vector unsigned long long V;1162 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1163 sizeof(__vector unsigned long long));1164 return V;1165}1166 1167static inline __ATTRS_o_ai __vector signed __int1281168vec_xl(long __offset, const signed __int128 *__ptr) {1169 __vector signed __int128 V;1170 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1171 sizeof(__vector signed __int128));1172 return V;1173}1174 1175static inline __ATTRS_o_ai __vector unsigned __int1281176vec_xl(long __offset, const unsigned __int128 *__ptr) {1177 __vector unsigned __int128 V;1178 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1179 sizeof(__vector unsigned __int128));1180 return V;1181}1182 1183#if __ARCH__ >= 121184static inline __ATTRS_o_ai __vector float1185vec_xl(long __offset, const float *__ptr) {1186 __vector float V;1187 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1188 sizeof(__vector float));1189 return V;1190}1191#endif1192 1193static inline __ATTRS_o_ai __vector double1194vec_xl(long __offset, const double *__ptr) {1195 __vector double V;1196 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1197 sizeof(__vector double));1198 return V;1199}1200 1201/*-- vec_xld2 ---------------------------------------------------------------*/1202 1203// This prototype is deprecated.1204static inline __ATTRS_o_ai __vector signed char1205vec_xld2(long __offset, const signed char *__ptr) {1206 __vector signed char V;1207 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1208 sizeof(__vector signed char));1209 return V;1210}1211 1212// This prototype is deprecated.1213static inline __ATTRS_o_ai __vector unsigned char1214vec_xld2(long __offset, const unsigned char *__ptr) {1215 __vector unsigned char V;1216 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1217 sizeof(__vector unsigned char));1218 return V;1219}1220 1221// This prototype is deprecated.1222static inline __ATTRS_o_ai __vector signed short1223vec_xld2(long __offset, const signed short *__ptr) {1224 __vector signed short V;1225 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1226 sizeof(__vector signed short));1227 return V;1228}1229 1230// This prototype is deprecated.1231static inline __ATTRS_o_ai __vector unsigned short1232vec_xld2(long __offset, const unsigned short *__ptr) {1233 __vector unsigned short V;1234 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1235 sizeof(__vector unsigned short));1236 return V;1237}1238 1239// This prototype is deprecated.1240static inline __ATTRS_o_ai __vector signed int1241vec_xld2(long __offset, const signed int *__ptr) {1242 __vector signed int V;1243 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1244 sizeof(__vector signed int));1245 return V;1246}1247 1248// This prototype is deprecated.1249static inline __ATTRS_o_ai __vector unsigned int1250vec_xld2(long __offset, const unsigned int *__ptr) {1251 __vector unsigned int V;1252 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1253 sizeof(__vector unsigned int));1254 return V;1255}1256 1257// This prototype is deprecated.1258static inline __ATTRS_o_ai __vector signed long long1259vec_xld2(long __offset, const signed long long *__ptr) {1260 __vector signed long long V;1261 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1262 sizeof(__vector signed long long));1263 return V;1264}1265 1266// This prototype is deprecated.1267static inline __ATTRS_o_ai __vector unsigned long long1268vec_xld2(long __offset, const unsigned long long *__ptr) {1269 __vector unsigned long long V;1270 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1271 sizeof(__vector unsigned long long));1272 return V;1273}1274 1275// This prototype is deprecated.1276static inline __ATTRS_o_ai __vector double1277vec_xld2(long __offset, const double *__ptr) {1278 __vector double V;1279 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1280 sizeof(__vector double));1281 return V;1282}1283 1284/*-- vec_xlw4 ---------------------------------------------------------------*/1285 1286// This prototype is deprecated.1287static inline __ATTRS_o_ai __vector signed char1288vec_xlw4(long __offset, const signed char *__ptr) {1289 __vector signed char V;1290 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1291 sizeof(__vector signed char));1292 return V;1293}1294 1295// This prototype is deprecated.1296static inline __ATTRS_o_ai __vector unsigned char1297vec_xlw4(long __offset, const unsigned char *__ptr) {1298 __vector unsigned char V;1299 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1300 sizeof(__vector unsigned char));1301 return V;1302}1303 1304// This prototype is deprecated.1305static inline __ATTRS_o_ai __vector signed short1306vec_xlw4(long __offset, const signed short *__ptr) {1307 __vector signed short V;1308 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1309 sizeof(__vector signed short));1310 return V;1311}1312 1313// This prototype is deprecated.1314static inline __ATTRS_o_ai __vector unsigned short1315vec_xlw4(long __offset, const unsigned short *__ptr) {1316 __vector unsigned short V;1317 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1318 sizeof(__vector unsigned short));1319 return V;1320}1321 1322// This prototype is deprecated.1323static inline __ATTRS_o_ai __vector signed int1324vec_xlw4(long __offset, const signed int *__ptr) {1325 __vector signed int V;1326 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1327 sizeof(__vector signed int));1328 return V;1329}1330 1331// This prototype is deprecated.1332static inline __ATTRS_o_ai __vector unsigned int1333vec_xlw4(long __offset, const unsigned int *__ptr) {1334 __vector unsigned int V;1335 __builtin_memcpy(&V, ((const char *)__ptr + __offset),1336 sizeof(__vector unsigned int));1337 return V;1338}1339 1340/*-- vec_xst ----------------------------------------------------------------*/1341 1342static inline __ATTRS_o_ai void1343vec_xst(__vector signed char __vec, long __offset, signed char *__ptr) {1344 __vector signed char V = __vec;1345 __builtin_memcpy(((char *)__ptr + __offset), &V,1346 sizeof(__vector signed char));1347}1348 1349static inline __ATTRS_o_ai void1350vec_xst(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {1351 __vector unsigned char V = __vec;1352 __builtin_memcpy(((char *)__ptr + __offset), &V,1353 sizeof(__vector unsigned char));1354}1355 1356static inline __ATTRS_o_ai void1357vec_xst(__vector signed short __vec, long __offset, signed short *__ptr) {1358 __vector signed short V = __vec;1359 __builtin_memcpy(((char *)__ptr + __offset), &V,1360 sizeof(__vector signed short));1361}1362 1363static inline __ATTRS_o_ai void1364vec_xst(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {1365 __vector unsigned short V = __vec;1366 __builtin_memcpy(((char *)__ptr + __offset), &V,1367 sizeof(__vector unsigned short));1368}1369 1370static inline __ATTRS_o_ai void1371vec_xst(__vector signed int __vec, long __offset, signed int *__ptr) {1372 __vector signed int V = __vec;1373 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));1374}1375 1376static inline __ATTRS_o_ai void1377vec_xst(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {1378 __vector unsigned int V = __vec;1379 __builtin_memcpy(((char *)__ptr + __offset), &V,1380 sizeof(__vector unsigned int));1381}1382 1383static inline __ATTRS_o_ai void1384vec_xst(__vector signed long long __vec, long __offset,1385 signed long long *__ptr) {1386 __vector signed long long V = __vec;1387 __builtin_memcpy(((char *)__ptr + __offset), &V,1388 sizeof(__vector signed long long));1389}1390 1391static inline __ATTRS_o_ai void1392vec_xst(__vector unsigned long long __vec, long __offset,1393 unsigned long long *__ptr) {1394 __vector unsigned long long V = __vec;1395 __builtin_memcpy(((char *)__ptr + __offset), &V,1396 sizeof(__vector unsigned long long));1397}1398 1399static inline __ATTRS_o_ai void1400vec_xst(__vector signed __int128 __vec, long __offset,1401 signed __int128 *__ptr) {1402 __vector signed __int128 V = __vec;1403 __builtin_memcpy(((char *)__ptr + __offset), &V,1404 sizeof(__vector signed __int128));1405}1406 1407static inline __ATTRS_o_ai void1408vec_xst(__vector unsigned __int128 __vec, long __offset,1409 unsigned __int128 *__ptr) {1410 __vector unsigned __int128 V = __vec;1411 __builtin_memcpy(((char *)__ptr + __offset), &V,1412 sizeof(__vector unsigned __int128));1413}1414 1415#if __ARCH__ >= 121416static inline __ATTRS_o_ai void1417vec_xst(__vector float __vec, long __offset, float *__ptr) {1418 __vector float V = __vec;1419 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector float));1420}1421#endif1422 1423static inline __ATTRS_o_ai void1424vec_xst(__vector double __vec, long __offset, double *__ptr) {1425 __vector double V = __vec;1426 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));1427}1428 1429/*-- vec_xstd2 --------------------------------------------------------------*/1430 1431// This prototype is deprecated.1432static inline __ATTRS_o_ai void1433vec_xstd2(__vector signed char __vec, long __offset, signed char *__ptr) {1434 __vector signed char V = __vec;1435 __builtin_memcpy(((char *)__ptr + __offset), &V,1436 sizeof(__vector signed char));1437}1438 1439// This prototype is deprecated.1440static inline __ATTRS_o_ai void1441vec_xstd2(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {1442 __vector unsigned char V = __vec;1443 __builtin_memcpy(((char *)__ptr + __offset), &V,1444 sizeof(__vector unsigned char));1445}1446 1447// This prototype is deprecated.1448static inline __ATTRS_o_ai void1449vec_xstd2(__vector signed short __vec, long __offset, signed short *__ptr) {1450 __vector signed short V = __vec;1451 __builtin_memcpy(((char *)__ptr + __offset), &V,1452 sizeof(__vector signed short));1453}1454 1455// This prototype is deprecated.1456static inline __ATTRS_o_ai void1457vec_xstd2(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {1458 __vector unsigned short V = __vec;1459 __builtin_memcpy(((char *)__ptr + __offset), &V,1460 sizeof(__vector unsigned short));1461}1462 1463// This prototype is deprecated.1464static inline __ATTRS_o_ai void1465vec_xstd2(__vector signed int __vec, long __offset, signed int *__ptr) {1466 __vector signed int V = __vec;1467 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));1468}1469 1470// This prototype is deprecated.1471static inline __ATTRS_o_ai void1472vec_xstd2(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {1473 __vector unsigned int V = __vec;1474 __builtin_memcpy(((char *)__ptr + __offset), &V,1475 sizeof(__vector unsigned int));1476}1477 1478// This prototype is deprecated.1479static inline __ATTRS_o_ai void1480vec_xstd2(__vector signed long long __vec, long __offset,1481 signed long long *__ptr) {1482 __vector signed long long V = __vec;1483 __builtin_memcpy(((char *)__ptr + __offset), &V,1484 sizeof(__vector signed long long));1485}1486 1487// This prototype is deprecated.1488static inline __ATTRS_o_ai void1489vec_xstd2(__vector unsigned long long __vec, long __offset,1490 unsigned long long *__ptr) {1491 __vector unsigned long long V = __vec;1492 __builtin_memcpy(((char *)__ptr + __offset), &V,1493 sizeof(__vector unsigned long long));1494}1495 1496// This prototype is deprecated.1497static inline __ATTRS_o_ai void1498vec_xstd2(__vector double __vec, long __offset, double *__ptr) {1499 __vector double V = __vec;1500 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector double));1501}1502 1503/*-- vec_xstw4 --------------------------------------------------------------*/1504 1505// This prototype is deprecated.1506static inline __ATTRS_o_ai void1507vec_xstw4(__vector signed char __vec, long __offset, signed char *__ptr) {1508 __vector signed char V = __vec;1509 __builtin_memcpy(((char *)__ptr + __offset), &V,1510 sizeof(__vector signed char));1511}1512 1513// This prototype is deprecated.1514static inline __ATTRS_o_ai void1515vec_xstw4(__vector unsigned char __vec, long __offset, unsigned char *__ptr) {1516 __vector unsigned char V = __vec;1517 __builtin_memcpy(((char *)__ptr + __offset), &V,1518 sizeof(__vector unsigned char));1519}1520 1521// This prototype is deprecated.1522static inline __ATTRS_o_ai void1523vec_xstw4(__vector signed short __vec, long __offset, signed short *__ptr) {1524 __vector signed short V = __vec;1525 __builtin_memcpy(((char *)__ptr + __offset), &V,1526 sizeof(__vector signed short));1527}1528 1529// This prototype is deprecated.1530static inline __ATTRS_o_ai void1531vec_xstw4(__vector unsigned short __vec, long __offset, unsigned short *__ptr) {1532 __vector unsigned short V = __vec;1533 __builtin_memcpy(((char *)__ptr + __offset), &V,1534 sizeof(__vector unsigned short));1535}1536 1537// This prototype is deprecated.1538static inline __ATTRS_o_ai void1539vec_xstw4(__vector signed int __vec, long __offset, signed int *__ptr) {1540 __vector signed int V = __vec;1541 __builtin_memcpy(((char *)__ptr + __offset), &V, sizeof(__vector signed int));1542}1543 1544// This prototype is deprecated.1545static inline __ATTRS_o_ai void1546vec_xstw4(__vector unsigned int __vec, long __offset, unsigned int *__ptr) {1547 __vector unsigned int V = __vec;1548 __builtin_memcpy(((char *)__ptr + __offset), &V,1549 sizeof(__vector unsigned int));1550}1551 1552/*-- vec_load_bndry ---------------------------------------------------------*/1553 1554extern __ATTRS_o __vector signed char1555vec_load_bndry(const signed char *__ptr, unsigned short __len)1556 __constant_pow2_range(__len, 64, 4096);1557 1558extern __ATTRS_o __vector unsigned char1559vec_load_bndry(const unsigned char *__ptr, unsigned short __len)1560 __constant_pow2_range(__len, 64, 4096);1561 1562extern __ATTRS_o __vector signed short1563vec_load_bndry(const signed short *__ptr, unsigned short __len)1564 __constant_pow2_range(__len, 64, 4096);1565 1566extern __ATTRS_o __vector unsigned short1567vec_load_bndry(const unsigned short *__ptr, unsigned short __len)1568 __constant_pow2_range(__len, 64, 4096);1569 1570extern __ATTRS_o __vector signed int1571vec_load_bndry(const signed int *__ptr, unsigned short __len)1572 __constant_pow2_range(__len, 64, 4096);1573 1574extern __ATTRS_o __vector unsigned int1575vec_load_bndry(const unsigned int *__ptr, unsigned short __len)1576 __constant_pow2_range(__len, 64, 4096);1577 1578extern __ATTRS_o __vector signed long long1579vec_load_bndry(const signed long long *__ptr, unsigned short __len)1580 __constant_pow2_range(__len, 64, 4096);1581 1582extern __ATTRS_o __vector unsigned long long1583vec_load_bndry(const unsigned long long *__ptr, unsigned short __len)1584 __constant_pow2_range(__len, 64, 4096);1585 1586extern __ATTRS_o __vector signed __int1281587vec_load_bndry(const signed __int128 *__ptr, unsigned short __len)1588 __constant_pow2_range(__len, 64, 4096);1589 1590extern __ATTRS_o __vector unsigned __int1281591vec_load_bndry(const unsigned __int128 *__ptr, unsigned short __len)1592 __constant_pow2_range(__len, 64, 4096);1593 1594#if __ARCH__ >= 121595extern __ATTRS_o __vector float1596vec_load_bndry(const float *__ptr, unsigned short __len)1597 __constant_pow2_range(__len, 64, 4096);1598#endif1599 1600extern __ATTRS_o __vector double1601vec_load_bndry(const double *__ptr, unsigned short __len)1602 __constant_pow2_range(__len, 64, 4096);1603 1604#define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \1605 __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \1606 (Y) == 128 ? 1 : \1607 (Y) == 256 ? 2 : \1608 (Y) == 512 ? 3 : \1609 (Y) == 1024 ? 4 : \1610 (Y) == 2048 ? 5 : \1611 (Y) == 4096 ? 6 : -1)))1612 1613/*-- vec_load_len -----------------------------------------------------------*/1614 1615static inline __ATTRS_o_ai __vector signed char1616vec_load_len(const signed char *__ptr, unsigned int __len) {1617 return (__vector signed char)__builtin_s390_vll(__len, __ptr);1618}1619 1620static inline __ATTRS_o_ai __vector unsigned char1621vec_load_len(const unsigned char *__ptr, unsigned int __len) {1622 return (__vector unsigned char)__builtin_s390_vll(__len, __ptr);1623}1624 1625// This prototype is deprecated.1626static inline __ATTRS_o_ai __vector signed short1627vec_load_len(const signed short *__ptr, unsigned int __len) {1628 return (__vector signed short)__builtin_s390_vll(__len, __ptr);1629}1630 1631// This prototype is deprecated.1632static inline __ATTRS_o_ai __vector unsigned short1633vec_load_len(const unsigned short *__ptr, unsigned int __len) {1634 return (__vector unsigned short)__builtin_s390_vll(__len, __ptr);1635}1636 1637// This prototype is deprecated.1638static inline __ATTRS_o_ai __vector signed int1639vec_load_len(const signed int *__ptr, unsigned int __len) {1640 return (__vector signed int)__builtin_s390_vll(__len, __ptr);1641}1642 1643// This prototype is deprecated.1644static inline __ATTRS_o_ai __vector unsigned int1645vec_load_len(const unsigned int *__ptr, unsigned int __len) {1646 return (__vector unsigned int)__builtin_s390_vll(__len, __ptr);1647}1648 1649// This prototype is deprecated.1650static inline __ATTRS_o_ai __vector signed long long1651vec_load_len(const signed long long *__ptr, unsigned int __len) {1652 return (__vector signed long long)__builtin_s390_vll(__len, __ptr);1653}1654 1655// This prototype is deprecated.1656static inline __ATTRS_o_ai __vector unsigned long long1657vec_load_len(const unsigned long long *__ptr, unsigned int __len) {1658 return (__vector unsigned long long)__builtin_s390_vll(__len, __ptr);1659}1660 1661#if __ARCH__ >= 121662// This prototype is deprecated.1663static inline __ATTRS_o_ai __vector float1664vec_load_len(const float *__ptr, unsigned int __len) {1665 return (__vector float)__builtin_s390_vll(__len, __ptr);1666}1667#endif1668 1669// This prototype is deprecated.1670static inline __ATTRS_o_ai __vector double1671vec_load_len(const double *__ptr, unsigned int __len) {1672 return (__vector double)__builtin_s390_vll(__len, __ptr);1673}1674 1675/*-- vec_load_len_r ---------------------------------------------------------*/1676 1677#if __ARCH__ >= 121678static inline __ATTRS_o_ai __vector signed char1679vec_load_len_r(const signed char *__ptr, unsigned int __len) {1680 return (__vector signed char)__builtin_s390_vlrlr(__len, __ptr);1681}1682 1683static inline __ATTRS_o_ai __vector unsigned char1684vec_load_len_r(const unsigned char *__ptr, unsigned int __len) {1685 return (__vector unsigned char)__builtin_s390_vlrlr(__len, __ptr);1686}1687#endif1688 1689/*-- vec_store_len ----------------------------------------------------------*/1690 1691static inline __ATTRS_o_ai void1692vec_store_len(__vector signed char __vec, signed char *__ptr,1693 unsigned int __len) {1694 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);1695}1696 1697static inline __ATTRS_o_ai void1698vec_store_len(__vector unsigned char __vec, unsigned char *__ptr,1699 unsigned int __len) {1700 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);1701}1702 1703// This prototype is deprecated.1704static inline __ATTRS_o_ai void1705vec_store_len(__vector signed short __vec, signed short *__ptr,1706 unsigned int __len) {1707 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);1708}1709 1710// This prototype is deprecated.1711static inline __ATTRS_o_ai void1712vec_store_len(__vector unsigned short __vec, unsigned short *__ptr,1713 unsigned int __len) {1714 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);1715}1716 1717// This prototype is deprecated.1718static inline __ATTRS_o_ai void1719vec_store_len(__vector signed int __vec, signed int *__ptr,1720 unsigned int __len) {1721 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);1722}1723 1724// This prototype is deprecated.1725static inline __ATTRS_o_ai void1726vec_store_len(__vector unsigned int __vec, unsigned int *__ptr,1727 unsigned int __len) {1728 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);1729}1730 1731// This prototype is deprecated.1732static inline __ATTRS_o_ai void1733vec_store_len(__vector signed long long __vec, signed long long *__ptr,1734 unsigned int __len) {1735 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);1736}1737 1738// This prototype is deprecated.1739static inline __ATTRS_o_ai void1740vec_store_len(__vector unsigned long long __vec, unsigned long long *__ptr,1741 unsigned int __len) {1742 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);1743}1744 1745#if __ARCH__ >= 121746// This prototype is deprecated.1747static inline __ATTRS_o_ai void1748vec_store_len(__vector float __vec, float *__ptr,1749 unsigned int __len) {1750 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);1751}1752#endif1753 1754// This prototype is deprecated.1755static inline __ATTRS_o_ai void1756vec_store_len(__vector double __vec, double *__ptr,1757 unsigned int __len) {1758 __builtin_s390_vstl((__vector signed char)__vec, __len, __ptr);1759}1760 1761/*-- vec_store_len_r --------------------------------------------------------*/1762 1763#if __ARCH__ >= 121764static inline __ATTRS_o_ai void1765vec_store_len_r(__vector signed char __vec, signed char *__ptr,1766 unsigned int __len) {1767 __builtin_s390_vstrlr(__vec, __len, __ptr);1768}1769 1770static inline __ATTRS_o_ai void1771vec_store_len_r(__vector unsigned char __vec, unsigned char *__ptr,1772 unsigned int __len) {1773 __builtin_s390_vstrlr((__vector signed char)__vec, __len, __ptr);1774}1775#endif1776 1777/*-- vec_load_pair ----------------------------------------------------------*/1778 1779static inline __ATTRS_o_ai __vector signed long long1780vec_load_pair(signed long long __a, signed long long __b) {1781 return (__vector signed long long)(__a, __b);1782}1783 1784static inline __ATTRS_o_ai __vector unsigned long long1785vec_load_pair(unsigned long long __a, unsigned long long __b) {1786 return (__vector unsigned long long)(__a, __b);1787}1788 1789/*-- vec_genmask ------------------------------------------------------------*/1790 1791static inline __ATTRS_o_ai __vector unsigned char1792vec_genmask(unsigned short __mask)1793 __constant(__mask) {1794 return (__vector unsigned char)(1795 __mask & 0x8000 ? 0xff : 0,1796 __mask & 0x4000 ? 0xff : 0,1797 __mask & 0x2000 ? 0xff : 0,1798 __mask & 0x1000 ? 0xff : 0,1799 __mask & 0x0800 ? 0xff : 0,1800 __mask & 0x0400 ? 0xff : 0,1801 __mask & 0x0200 ? 0xff : 0,1802 __mask & 0x0100 ? 0xff : 0,1803 __mask & 0x0080 ? 0xff : 0,1804 __mask & 0x0040 ? 0xff : 0,1805 __mask & 0x0020 ? 0xff : 0,1806 __mask & 0x0010 ? 0xff : 0,1807 __mask & 0x0008 ? 0xff : 0,1808 __mask & 0x0004 ? 0xff : 0,1809 __mask & 0x0002 ? 0xff : 0,1810 __mask & 0x0001 ? 0xff : 0);1811}1812 1813/*-- vec_genmasks_* ---------------------------------------------------------*/1814 1815static inline __ATTRS_o_ai __vector unsigned char1816vec_genmasks_8(unsigned char __first, unsigned char __last)1817 __constant(__first) __constant(__last) {1818 unsigned char __bit1 = __first & 7;1819 unsigned char __bit2 = __last & 7;1820 unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1;1821 unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1;1822 unsigned char __value = (__bit1 <= __bit2 ?1823 __mask1 & ~__mask2 :1824 __mask1 | ~__mask2);1825 return (__vector unsigned char)__value;1826}1827 1828static inline __ATTRS_o_ai __vector unsigned short1829vec_genmasks_16(unsigned char __first, unsigned char __last)1830 __constant(__first) __constant(__last) {1831 unsigned char __bit1 = __first & 15;1832 unsigned char __bit2 = __last & 15;1833 unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1;1834 unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1;1835 unsigned short __value = (__bit1 <= __bit2 ?1836 __mask1 & ~__mask2 :1837 __mask1 | ~__mask2);1838 return (__vector unsigned short)__value;1839}1840 1841static inline __ATTRS_o_ai __vector unsigned int1842vec_genmasks_32(unsigned char __first, unsigned char __last)1843 __constant(__first) __constant(__last) {1844 unsigned char __bit1 = __first & 31;1845 unsigned char __bit2 = __last & 31;1846 unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1;1847 unsigned int __mask2 = (1U << (31 - __bit2)) - 1;1848 unsigned int __value = (__bit1 <= __bit2 ?1849 __mask1 & ~__mask2 :1850 __mask1 | ~__mask2);1851 return (__vector unsigned int)__value;1852}1853 1854static inline __ATTRS_o_ai __vector unsigned long long1855vec_genmasks_64(unsigned char __first, unsigned char __last)1856 __constant(__first) __constant(__last) {1857 unsigned char __bit1 = __first & 63;1858 unsigned char __bit2 = __last & 63;1859 unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1;1860 unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1;1861 unsigned long long __value = (__bit1 <= __bit2 ?1862 __mask1 & ~__mask2 :1863 __mask1 | ~__mask2);1864 return (__vector unsigned long long)__value;1865}1866 1867/*-- vec_gen_element_masks_* ------------------------------------------------*/1868 1869#if __ARCH__ >= 151870static inline __ATTRS_ai __vector unsigned char1871vec_gen_element_masks_8(__vector unsigned short __mask) {1872 return __builtin_s390_vgemb(__mask);1873}1874 1875static inline __ATTRS_ai __vector unsigned short1876vec_gen_element_masks_16(__vector unsigned char __mask) {1877 return __builtin_s390_vgemh(__mask);1878}1879 1880static inline __ATTRS_ai __vector unsigned int1881vec_gen_element_masks_32(__vector unsigned char __mask) {1882 return __builtin_s390_vgemf(__mask);1883}1884 1885static inline __ATTRS_ai __vector unsigned long long1886vec_gen_element_masks_64(__vector unsigned char __mask) {1887 return __builtin_s390_vgemg(__mask);1888}1889 1890static inline __ATTRS_ai __vector unsigned __int1281891vec_gen_element_masks_128(__vector unsigned char __mask) {1892 return (__vector unsigned __int128)__builtin_s390_vgemq(__mask);1893}1894#endif1895 1896/*-- vec_splat --------------------------------------------------------------*/1897 1898static inline __ATTRS_o_ai __vector signed char1899vec_splat(__vector signed char __vec, int __index)1900 __constant_range(__index, 0, 15) {1901 return (__vector signed char)__vec[__index];1902}1903 1904static inline __ATTRS_o_ai __vector __bool char1905vec_splat(__vector __bool char __vec, int __index)1906 __constant_range(__index, 0, 15) {1907 return (__vector __bool char)(__vector unsigned char)__vec[__index];1908}1909 1910static inline __ATTRS_o_ai __vector unsigned char1911vec_splat(__vector unsigned char __vec, int __index)1912 __constant_range(__index, 0, 15) {1913 return (__vector unsigned char)__vec[__index];1914}1915 1916static inline __ATTRS_o_ai __vector signed short1917vec_splat(__vector signed short __vec, int __index)1918 __constant_range(__index, 0, 7) {1919 return (__vector signed short)__vec[__index];1920}1921 1922static inline __ATTRS_o_ai __vector __bool short1923vec_splat(__vector __bool short __vec, int __index)1924 __constant_range(__index, 0, 7) {1925 return (__vector __bool short)(__vector unsigned short)__vec[__index];1926}1927 1928static inline __ATTRS_o_ai __vector unsigned short1929vec_splat(__vector unsigned short __vec, int __index)1930 __constant_range(__index, 0, 7) {1931 return (__vector unsigned short)__vec[__index];1932}1933 1934static inline __ATTRS_o_ai __vector signed int1935vec_splat(__vector signed int __vec, int __index)1936 __constant_range(__index, 0, 3) {1937 return (__vector signed int)__vec[__index];1938}1939 1940static inline __ATTRS_o_ai __vector __bool int1941vec_splat(__vector __bool int __vec, int __index)1942 __constant_range(__index, 0, 3) {1943 return (__vector __bool int)(__vector unsigned int)__vec[__index];1944}1945 1946static inline __ATTRS_o_ai __vector unsigned int1947vec_splat(__vector unsigned int __vec, int __index)1948 __constant_range(__index, 0, 3) {1949 return (__vector unsigned int)__vec[__index];1950}1951 1952static inline __ATTRS_o_ai __vector signed long long1953vec_splat(__vector signed long long __vec, int __index)1954 __constant_range(__index, 0, 1) {1955 return (__vector signed long long)__vec[__index];1956}1957 1958static inline __ATTRS_o_ai __vector __bool long long1959vec_splat(__vector __bool long long __vec, int __index)1960 __constant_range(__index, 0, 1) {1961 return ((__vector __bool long long)1962 (__vector unsigned long long)__vec[__index]);1963}1964 1965static inline __ATTRS_o_ai __vector unsigned long long1966vec_splat(__vector unsigned long long __vec, int __index)1967 __constant_range(__index, 0, 1) {1968 return (__vector unsigned long long)__vec[__index];1969}1970 1971#if __ARCH__ >= 121972static inline __ATTRS_o_ai __vector float1973vec_splat(__vector float __vec, int __index)1974 __constant_range(__index, 0, 3) {1975 return (__vector float)__vec[__index];1976}1977#endif1978 1979static inline __ATTRS_o_ai __vector double1980vec_splat(__vector double __vec, int __index)1981 __constant_range(__index, 0, 1) {1982 return (__vector double)__vec[__index];1983}1984 1985/*-- vec_splat_s* -----------------------------------------------------------*/1986 1987static inline __ATTRS_ai __vector signed char1988vec_splat_s8(signed char __scalar)1989 __constant(__scalar) {1990 return (__vector signed char)__scalar;1991}1992 1993static inline __ATTRS_ai __vector signed short1994vec_splat_s16(signed short __scalar)1995 __constant(__scalar) {1996 return (__vector signed short)__scalar;1997}1998 1999static inline __ATTRS_ai __vector signed int2000vec_splat_s32(signed short __scalar)2001 __constant(__scalar) {2002 return (__vector signed int)(signed int)__scalar;2003}2004 2005static inline __ATTRS_ai __vector signed long long2006vec_splat_s64(signed short __scalar)2007 __constant(__scalar) {2008 return (__vector signed long long)(signed long)__scalar;2009}2010 2011/*-- vec_splat_u* -----------------------------------------------------------*/2012 2013static inline __ATTRS_ai __vector unsigned char2014vec_splat_u8(unsigned char __scalar)2015 __constant(__scalar) {2016 return (__vector unsigned char)__scalar;2017}2018 2019static inline __ATTRS_ai __vector unsigned short2020vec_splat_u16(unsigned short __scalar)2021 __constant(__scalar) {2022 return (__vector unsigned short)__scalar;2023}2024 2025static inline __ATTRS_ai __vector unsigned int2026vec_splat_u32(signed short __scalar)2027 __constant(__scalar) {2028 return (__vector unsigned int)(signed int)__scalar;2029}2030 2031static inline __ATTRS_ai __vector unsigned long long2032vec_splat_u64(signed short __scalar)2033 __constant(__scalar) {2034 return (__vector unsigned long long)(signed long long)__scalar;2035}2036 2037/*-- vec_splats -------------------------------------------------------------*/2038 2039static inline __ATTRS_o_ai __vector signed char2040vec_splats(signed char __scalar) {2041 return (__vector signed char)__scalar;2042}2043 2044static inline __ATTRS_o_ai __vector unsigned char2045vec_splats(unsigned char __scalar) {2046 return (__vector unsigned char)__scalar;2047}2048 2049static inline __ATTRS_o_ai __vector signed short2050vec_splats(signed short __scalar) {2051 return (__vector signed short)__scalar;2052}2053 2054static inline __ATTRS_o_ai __vector unsigned short2055vec_splats(unsigned short __scalar) {2056 return (__vector unsigned short)__scalar;2057}2058 2059static inline __ATTRS_o_ai __vector signed int2060vec_splats(signed int __scalar) {2061 return (__vector signed int)__scalar;2062}2063 2064static inline __ATTRS_o_ai __vector unsigned int2065vec_splats(unsigned int __scalar) {2066 return (__vector unsigned int)__scalar;2067}2068 2069static inline __ATTRS_o_ai __vector signed long long2070vec_splats(signed long long __scalar) {2071 return (__vector signed long long)__scalar;2072}2073 2074static inline __ATTRS_o_ai __vector unsigned long long2075vec_splats(unsigned long long __scalar) {2076 return (__vector unsigned long long)__scalar;2077}2078 2079static inline __ATTRS_o_ai __vector signed __int1282080vec_splats(signed __int128 __scalar) {2081 return (__vector signed __int128)__scalar;2082}2083 2084static inline __ATTRS_o_ai __vector unsigned __int1282085vec_splats(unsigned __int128 __scalar) {2086 return (__vector unsigned __int128)__scalar;2087}2088 2089#if __ARCH__ >= 122090static inline __ATTRS_o_ai __vector float2091vec_splats(float __scalar) {2092 return (__vector float)__scalar;2093}2094#endif2095 2096static inline __ATTRS_o_ai __vector double2097vec_splats(double __scalar) {2098 return (__vector double)__scalar;2099}2100 2101/*-- vec_extend_s64 ---------------------------------------------------------*/2102 2103static inline __ATTRS_o_ai __vector signed long long2104vec_extend_s64(__vector signed char __a) {2105 return (__vector signed long long)(__a[7], __a[15]);2106}2107 2108static inline __ATTRS_o_ai __vector signed long long2109vec_extend_s64(__vector signed short __a) {2110 return (__vector signed long long)(__a[3], __a[7]);2111}2112 2113static inline __ATTRS_o_ai __vector signed long long2114vec_extend_s64(__vector signed int __a) {2115 return (__vector signed long long)(__a[1], __a[3]);2116}2117 2118/*-- vec_mergeh -------------------------------------------------------------*/2119 2120static inline __ATTRS_o_ai __vector signed char2121vec_mergeh(__vector signed char __a, __vector signed char __b) {2122 return (__vector signed char)(2123 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],2124 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);2125}2126 2127static inline __ATTRS_o_ai __vector __bool char2128vec_mergeh(__vector __bool char __a, __vector __bool char __b) {2129 return (__vector __bool char)(2130 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],2131 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);2132}2133 2134static inline __ATTRS_o_ai __vector unsigned char2135vec_mergeh(__vector unsigned char __a, __vector unsigned char __b) {2136 return (__vector unsigned char)(2137 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3],2138 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);2139}2140 2141static inline __ATTRS_o_ai __vector signed short2142vec_mergeh(__vector signed short __a, __vector signed short __b) {2143 return (__vector signed short)(2144 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);2145}2146 2147static inline __ATTRS_o_ai __vector __bool short2148vec_mergeh(__vector __bool short __a, __vector __bool short __b) {2149 return (__vector __bool short)(2150 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);2151}2152 2153static inline __ATTRS_o_ai __vector unsigned short2154vec_mergeh(__vector unsigned short __a, __vector unsigned short __b) {2155 return (__vector unsigned short)(2156 __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]);2157}2158 2159static inline __ATTRS_o_ai __vector signed int2160vec_mergeh(__vector signed int __a, __vector signed int __b) {2161 return (__vector signed int)(__a[0], __b[0], __a[1], __b[1]);2162}2163 2164static inline __ATTRS_o_ai __vector __bool int2165vec_mergeh(__vector __bool int __a, __vector __bool int __b) {2166 return (__vector __bool int)(__a[0], __b[0], __a[1], __b[1]);2167}2168 2169static inline __ATTRS_o_ai __vector unsigned int2170vec_mergeh(__vector unsigned int __a, __vector unsigned int __b) {2171 return (__vector unsigned int)(__a[0], __b[0], __a[1], __b[1]);2172}2173 2174static inline __ATTRS_o_ai __vector signed long long2175vec_mergeh(__vector signed long long __a, __vector signed long long __b) {2176 return (__vector signed long long)(__a[0], __b[0]);2177}2178 2179static inline __ATTRS_o_ai __vector __bool long long2180vec_mergeh(__vector __bool long long __a, __vector __bool long long __b) {2181 return (__vector __bool long long)(__a[0], __b[0]);2182}2183 2184static inline __ATTRS_o_ai __vector unsigned long long2185vec_mergeh(__vector unsigned long long __a, __vector unsigned long long __b) {2186 return (__vector unsigned long long)(__a[0], __b[0]);2187}2188 2189#if __ARCH__ >= 122190static inline __ATTRS_o_ai __vector float2191vec_mergeh(__vector float __a, __vector float __b) {2192 return (__vector float)(__a[0], __b[0], __a[1], __b[1]);2193}2194#endif2195 2196static inline __ATTRS_o_ai __vector double2197vec_mergeh(__vector double __a, __vector double __b) {2198 return (__vector double)(__a[0], __b[0]);2199}2200 2201/*-- vec_mergel -------------------------------------------------------------*/2202 2203static inline __ATTRS_o_ai __vector signed char2204vec_mergel(__vector signed char __a, __vector signed char __b) {2205 return (__vector signed char)(2206 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],2207 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);2208}2209 2210static inline __ATTRS_o_ai __vector __bool char2211vec_mergel(__vector __bool char __a, __vector __bool char __b) {2212 return (__vector __bool char)(2213 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],2214 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);2215}2216 2217static inline __ATTRS_o_ai __vector unsigned char2218vec_mergel(__vector unsigned char __a, __vector unsigned char __b) {2219 return (__vector unsigned char)(2220 __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11],2221 __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]);2222}2223 2224static inline __ATTRS_o_ai __vector signed short2225vec_mergel(__vector signed short __a, __vector signed short __b) {2226 return (__vector signed short)(2227 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);2228}2229 2230static inline __ATTRS_o_ai __vector __bool short2231vec_mergel(__vector __bool short __a, __vector __bool short __b) {2232 return (__vector __bool short)(2233 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);2234}2235 2236static inline __ATTRS_o_ai __vector unsigned short2237vec_mergel(__vector unsigned short __a, __vector unsigned short __b) {2238 return (__vector unsigned short)(2239 __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]);2240}2241 2242static inline __ATTRS_o_ai __vector signed int2243vec_mergel(__vector signed int __a, __vector signed int __b) {2244 return (__vector signed int)(__a[2], __b[2], __a[3], __b[3]);2245}2246 2247static inline __ATTRS_o_ai __vector __bool int2248vec_mergel(__vector __bool int __a, __vector __bool int __b) {2249 return (__vector __bool int)(__a[2], __b[2], __a[3], __b[3]);2250}2251 2252static inline __ATTRS_o_ai __vector unsigned int2253vec_mergel(__vector unsigned int __a, __vector unsigned int __b) {2254 return (__vector unsigned int)(__a[2], __b[2], __a[3], __b[3]);2255}2256 2257static inline __ATTRS_o_ai __vector signed long long2258vec_mergel(__vector signed long long __a, __vector signed long long __b) {2259 return (__vector signed long long)(__a[1], __b[1]);2260}2261 2262static inline __ATTRS_o_ai __vector __bool long long2263vec_mergel(__vector __bool long long __a, __vector __bool long long __b) {2264 return (__vector __bool long long)(__a[1], __b[1]);2265}2266 2267static inline __ATTRS_o_ai __vector unsigned long long2268vec_mergel(__vector unsigned long long __a, __vector unsigned long long __b) {2269 return (__vector unsigned long long)(__a[1], __b[1]);2270}2271 2272#if __ARCH__ >= 122273static inline __ATTRS_o_ai __vector float2274vec_mergel(__vector float __a, __vector float __b) {2275 return (__vector float)(__a[2], __b[2], __a[3], __b[3]);2276}2277#endif2278 2279static inline __ATTRS_o_ai __vector double2280vec_mergel(__vector double __a, __vector double __b) {2281 return (__vector double)(__a[1], __b[1]);2282}2283 2284/*-- vec_pack ---------------------------------------------------------------*/2285 2286static inline __ATTRS_o_ai __vector signed char2287vec_pack(__vector signed short __a, __vector signed short __b) {2288 __vector signed char __ac = (__vector signed char)__a;2289 __vector signed char __bc = (__vector signed char)__b;2290 return (__vector signed char)(2291 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],2292 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);2293}2294 2295static inline __ATTRS_o_ai __vector __bool char2296vec_pack(__vector __bool short __a, __vector __bool short __b) {2297 __vector __bool char __ac = (__vector __bool char)__a;2298 __vector __bool char __bc = (__vector __bool char)__b;2299 return (__vector __bool char)(2300 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],2301 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);2302}2303 2304static inline __ATTRS_o_ai __vector unsigned char2305vec_pack(__vector unsigned short __a, __vector unsigned short __b) {2306 __vector unsigned char __ac = (__vector unsigned char)__a;2307 __vector unsigned char __bc = (__vector unsigned char)__b;2308 return (__vector unsigned char)(2309 __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15],2310 __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]);2311}2312 2313static inline __ATTRS_o_ai __vector signed short2314vec_pack(__vector signed int __a, __vector signed int __b) {2315 __vector signed short __ac = (__vector signed short)__a;2316 __vector signed short __bc = (__vector signed short)__b;2317 return (__vector signed short)(2318 __ac[1], __ac[3], __ac[5], __ac[7],2319 __bc[1], __bc[3], __bc[5], __bc[7]);2320}2321 2322static inline __ATTRS_o_ai __vector __bool short2323vec_pack(__vector __bool int __a, __vector __bool int __b) {2324 __vector __bool short __ac = (__vector __bool short)__a;2325 __vector __bool short __bc = (__vector __bool short)__b;2326 return (__vector __bool short)(2327 __ac[1], __ac[3], __ac[5], __ac[7],2328 __bc[1], __bc[3], __bc[5], __bc[7]);2329}2330 2331static inline __ATTRS_o_ai __vector unsigned short2332vec_pack(__vector unsigned int __a, __vector unsigned int __b) {2333 __vector unsigned short __ac = (__vector unsigned short)__a;2334 __vector unsigned short __bc = (__vector unsigned short)__b;2335 return (__vector unsigned short)(2336 __ac[1], __ac[3], __ac[5], __ac[7],2337 __bc[1], __bc[3], __bc[5], __bc[7]);2338}2339 2340static inline __ATTRS_o_ai __vector signed int2341vec_pack(__vector signed long long __a, __vector signed long long __b) {2342 __vector signed int __ac = (__vector signed int)__a;2343 __vector signed int __bc = (__vector signed int)__b;2344 return (__vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]);2345}2346 2347static inline __ATTRS_o_ai __vector __bool int2348vec_pack(__vector __bool long long __a, __vector __bool long long __b) {2349 __vector __bool int __ac = (__vector __bool int)__a;2350 __vector __bool int __bc = (__vector __bool int)__b;2351 return (__vector __bool int)(__ac[1], __ac[3], __bc[1], __bc[3]);2352}2353 2354static inline __ATTRS_o_ai __vector unsigned int2355vec_pack(__vector unsigned long long __a, __vector unsigned long long __b) {2356 __vector unsigned int __ac = (__vector unsigned int)__a;2357 __vector unsigned int __bc = (__vector unsigned int)__b;2358 return (__vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]);2359}2360 2361static inline __ATTRS_o_ai __vector signed long long2362vec_pack(__vector signed __int128 __a, __vector signed __int128 __b) {2363 __vector signed long long __ac = (__vector signed long long)__a;2364 __vector signed long long __bc = (__vector signed long long)__b;2365 return (__vector signed long long)(__ac[1], __bc[1]);2366}2367 2368static inline __ATTRS_o_ai __vector __bool long long2369vec_pack(__vector __bool __int128 __a, __vector __bool __int128 __b) {2370 __vector __bool long long __ac = (__vector __bool long long)__a;2371 __vector __bool long long __bc = (__vector __bool long long)__b;2372 return (__vector __bool long long)(__ac[1], __bc[1]);2373}2374 2375static inline __ATTRS_o_ai __vector unsigned long long2376vec_pack(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {2377 __vector unsigned long long __ac = (__vector unsigned long long)__a;2378 __vector unsigned long long __bc = (__vector unsigned long long)__b;2379 return (__vector unsigned long long)(__ac[1], __bc[1]);2380}2381 2382/*-- vec_packs --------------------------------------------------------------*/2383 2384static inline __ATTRS_o_ai __vector signed char2385vec_packs(__vector signed short __a, __vector signed short __b) {2386 return __builtin_s390_vpksh(__a, __b);2387}2388 2389static inline __ATTRS_o_ai __vector unsigned char2390vec_packs(__vector unsigned short __a, __vector unsigned short __b) {2391 return __builtin_s390_vpklsh(__a, __b);2392}2393 2394static inline __ATTRS_o_ai __vector signed short2395vec_packs(__vector signed int __a, __vector signed int __b) {2396 return __builtin_s390_vpksf(__a, __b);2397}2398 2399static inline __ATTRS_o_ai __vector unsigned short2400vec_packs(__vector unsigned int __a, __vector unsigned int __b) {2401 return __builtin_s390_vpklsf(__a, __b);2402}2403 2404static inline __ATTRS_o_ai __vector signed int2405vec_packs(__vector signed long long __a, __vector signed long long __b) {2406 return __builtin_s390_vpksg(__a, __b);2407}2408 2409static inline __ATTRS_o_ai __vector unsigned int2410vec_packs(__vector unsigned long long __a, __vector unsigned long long __b) {2411 return __builtin_s390_vpklsg(__a, __b);2412}2413 2414/*-- vec_packs_cc -----------------------------------------------------------*/2415 2416static inline __ATTRS_o_ai __vector signed char2417vec_packs_cc(__vector signed short __a, __vector signed short __b, int *__cc) {2418 return __builtin_s390_vpkshs(__a, __b, __cc);2419}2420 2421static inline __ATTRS_o_ai __vector unsigned char2422vec_packs_cc(__vector unsigned short __a, __vector unsigned short __b,2423 int *__cc) {2424 return __builtin_s390_vpklshs(__a, __b, __cc);2425}2426 2427static inline __ATTRS_o_ai __vector signed short2428vec_packs_cc(__vector signed int __a, __vector signed int __b, int *__cc) {2429 return __builtin_s390_vpksfs(__a, __b, __cc);2430}2431 2432static inline __ATTRS_o_ai __vector unsigned short2433vec_packs_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {2434 return __builtin_s390_vpklsfs(__a, __b, __cc);2435}2436 2437static inline __ATTRS_o_ai __vector signed int2438vec_packs_cc(__vector signed long long __a, __vector signed long long __b,2439 int *__cc) {2440 return __builtin_s390_vpksgs(__a, __b, __cc);2441}2442 2443static inline __ATTRS_o_ai __vector unsigned int2444vec_packs_cc(__vector unsigned long long __a, __vector unsigned long long __b,2445 int *__cc) {2446 return __builtin_s390_vpklsgs(__a, __b, __cc);2447}2448 2449/*-- vec_packsu -------------------------------------------------------------*/2450 2451static inline __ATTRS_o_ai __vector unsigned char2452vec_packsu(__vector signed short __a, __vector signed short __b) {2453 const __vector signed short __zero = (__vector signed short)0;2454 return __builtin_s390_vpklsh(2455 (__vector unsigned short)(__a >= __zero) & (__vector unsigned short)__a,2456 (__vector unsigned short)(__b >= __zero) & (__vector unsigned short)__b);2457}2458 2459static inline __ATTRS_o_ai __vector unsigned char2460vec_packsu(__vector unsigned short __a, __vector unsigned short __b) {2461 return __builtin_s390_vpklsh(__a, __b);2462}2463 2464static inline __ATTRS_o_ai __vector unsigned short2465vec_packsu(__vector signed int __a, __vector signed int __b) {2466 const __vector signed int __zero = (__vector signed int)0;2467 return __builtin_s390_vpklsf(2468 (__vector unsigned int)(__a >= __zero) & (__vector unsigned int)__a,2469 (__vector unsigned int)(__b >= __zero) & (__vector unsigned int)__b);2470}2471 2472static inline __ATTRS_o_ai __vector unsigned short2473vec_packsu(__vector unsigned int __a, __vector unsigned int __b) {2474 return __builtin_s390_vpklsf(__a, __b);2475}2476 2477static inline __ATTRS_o_ai __vector unsigned int2478vec_packsu(__vector signed long long __a, __vector signed long long __b) {2479 const __vector signed long long __zero = (__vector signed long long)0;2480 return __builtin_s390_vpklsg(2481 (__vector unsigned long long)(__a >= __zero) &2482 (__vector unsigned long long)__a,2483 (__vector unsigned long long)(__b >= __zero) &2484 (__vector unsigned long long)__b);2485}2486 2487static inline __ATTRS_o_ai __vector unsigned int2488vec_packsu(__vector unsigned long long __a, __vector unsigned long long __b) {2489 return __builtin_s390_vpklsg(__a, __b);2490}2491 2492/*-- vec_packsu_cc ----------------------------------------------------------*/2493 2494static inline __ATTRS_o_ai __vector unsigned char2495vec_packsu_cc(__vector unsigned short __a, __vector unsigned short __b,2496 int *__cc) {2497 return __builtin_s390_vpklshs(__a, __b, __cc);2498}2499 2500static inline __ATTRS_o_ai __vector unsigned short2501vec_packsu_cc(__vector unsigned int __a, __vector unsigned int __b, int *__cc) {2502 return __builtin_s390_vpklsfs(__a, __b, __cc);2503}2504 2505static inline __ATTRS_o_ai __vector unsigned int2506vec_packsu_cc(__vector unsigned long long __a, __vector unsigned long long __b,2507 int *__cc) {2508 return __builtin_s390_vpklsgs(__a, __b, __cc);2509}2510 2511/*-- vec_unpackh ------------------------------------------------------------*/2512 2513static inline __ATTRS_o_ai __vector signed short2514vec_unpackh(__vector signed char __a) {2515 return __builtin_s390_vuphb(__a);2516}2517 2518static inline __ATTRS_o_ai __vector __bool short2519vec_unpackh(__vector __bool char __a) {2520 return ((__vector __bool short)2521 __builtin_s390_vuphb((__vector signed char)__a));2522}2523 2524static inline __ATTRS_o_ai __vector unsigned short2525vec_unpackh(__vector unsigned char __a) {2526 return __builtin_s390_vuplhb(__a);2527}2528 2529static inline __ATTRS_o_ai __vector signed int2530vec_unpackh(__vector signed short __a) {2531 return __builtin_s390_vuphh(__a);2532}2533 2534static inline __ATTRS_o_ai __vector __bool int2535vec_unpackh(__vector __bool short __a) {2536 return (__vector __bool int)__builtin_s390_vuphh((__vector signed short)__a);2537}2538 2539static inline __ATTRS_o_ai __vector unsigned int2540vec_unpackh(__vector unsigned short __a) {2541 return __builtin_s390_vuplhh(__a);2542}2543 2544static inline __ATTRS_o_ai __vector signed long long2545vec_unpackh(__vector signed int __a) {2546 return __builtin_s390_vuphf(__a);2547}2548 2549static inline __ATTRS_o_ai __vector __bool long long2550vec_unpackh(__vector __bool int __a) {2551 return ((__vector __bool long long)2552 __builtin_s390_vuphf((__vector signed int)__a));2553}2554 2555static inline __ATTRS_o_ai __vector unsigned long long2556vec_unpackh(__vector unsigned int __a) {2557 return __builtin_s390_vuplhf(__a);2558}2559 2560#if __ARCH__ >= 152561static inline __ATTRS_o_ai __vector signed __int1282562vec_unpackh(__vector signed long long __a) {2563 return (__vector signed __int128)__builtin_s390_vuphg(__a);2564}2565 2566static inline __ATTRS_o_ai __vector __bool __int1282567vec_unpackh(__vector __bool long long __a) {2568 return ((__vector __bool __int128)2569 __builtin_s390_vuphg((__vector signed long long)__a));2570}2571 2572static inline __ATTRS_o_ai __vector unsigned __int1282573vec_unpackh(__vector unsigned long long __a) {2574 return (__vector unsigned __int128)__builtin_s390_vuplhg(__a);2575}2576#endif2577 2578/*-- vec_unpackl ------------------------------------------------------------*/2579 2580static inline __ATTRS_o_ai __vector signed short2581vec_unpackl(__vector signed char __a) {2582 return __builtin_s390_vuplb(__a);2583}2584 2585static inline __ATTRS_o_ai __vector __bool short2586vec_unpackl(__vector __bool char __a) {2587 return ((__vector __bool short)2588 __builtin_s390_vuplb((__vector signed char)__a));2589}2590 2591static inline __ATTRS_o_ai __vector unsigned short2592vec_unpackl(__vector unsigned char __a) {2593 return __builtin_s390_vupllb(__a);2594}2595 2596static inline __ATTRS_o_ai __vector signed int2597vec_unpackl(__vector signed short __a) {2598 return __builtin_s390_vuplhw(__a);2599}2600 2601static inline __ATTRS_o_ai __vector __bool int2602vec_unpackl(__vector __bool short __a) {2603 return ((__vector __bool int)2604 __builtin_s390_vuplhw((__vector signed short)__a));2605}2606 2607static inline __ATTRS_o_ai __vector unsigned int2608vec_unpackl(__vector unsigned short __a) {2609 return __builtin_s390_vupllh(__a);2610}2611 2612static inline __ATTRS_o_ai __vector signed long long2613vec_unpackl(__vector signed int __a) {2614 return __builtin_s390_vuplf(__a);2615}2616 2617static inline __ATTRS_o_ai __vector __bool long long2618vec_unpackl(__vector __bool int __a) {2619 return ((__vector __bool long long)2620 __builtin_s390_vuplf((__vector signed int)__a));2621}2622 2623static inline __ATTRS_o_ai __vector unsigned long long2624vec_unpackl(__vector unsigned int __a) {2625 return __builtin_s390_vupllf(__a);2626}2627 2628#if __ARCH__ >= 152629static inline __ATTRS_o_ai __vector signed __int1282630vec_unpackl(__vector signed long long __a) {2631 return (__vector signed __int128)__builtin_s390_vuplg(__a);2632}2633 2634static inline __ATTRS_o_ai __vector __bool __int1282635vec_unpackl(__vector __bool long long __a) {2636 return ((__vector __bool __int128)2637 __builtin_s390_vuplg((__vector signed long long)__a));2638}2639 2640static inline __ATTRS_o_ai __vector unsigned __int1282641vec_unpackl(__vector unsigned long long __a) {2642 return (__vector unsigned __int128)__builtin_s390_vupllg(__a);2643}2644#endif2645 2646/*-- vec_cmpeq --------------------------------------------------------------*/2647 2648static inline __ATTRS_o_ai __vector __bool char2649vec_cmpeq(__vector __bool char __a, __vector __bool char __b) {2650 return (__vector __bool char)(__a == __b);2651}2652 2653static inline __ATTRS_o_ai __vector __bool char2654vec_cmpeq(__vector signed char __a, __vector signed char __b) {2655 return (__vector __bool char)(__a == __b);2656}2657 2658static inline __ATTRS_o_ai __vector __bool char2659vec_cmpeq(__vector unsigned char __a, __vector unsigned char __b) {2660 return (__vector __bool char)(__a == __b);2661}2662 2663static inline __ATTRS_o_ai __vector __bool short2664vec_cmpeq(__vector __bool short __a, __vector __bool short __b) {2665 return (__vector __bool short)(__a == __b);2666}2667 2668static inline __ATTRS_o_ai __vector __bool short2669vec_cmpeq(__vector signed short __a, __vector signed short __b) {2670 return (__vector __bool short)(__a == __b);2671}2672 2673static inline __ATTRS_o_ai __vector __bool short2674vec_cmpeq(__vector unsigned short __a, __vector unsigned short __b) {2675 return (__vector __bool short)(__a == __b);2676}2677 2678static inline __ATTRS_o_ai __vector __bool int2679vec_cmpeq(__vector __bool int __a, __vector __bool int __b) {2680 return (__vector __bool int)(__a == __b);2681}2682 2683static inline __ATTRS_o_ai __vector __bool int2684vec_cmpeq(__vector signed int __a, __vector signed int __b) {2685 return (__vector __bool int)(__a == __b);2686}2687 2688static inline __ATTRS_o_ai __vector __bool int2689vec_cmpeq(__vector unsigned int __a, __vector unsigned int __b) {2690 return (__vector __bool int)(__a == __b);2691}2692 2693static inline __ATTRS_o_ai __vector __bool long long2694vec_cmpeq(__vector __bool long long __a, __vector __bool long long __b) {2695 return (__vector __bool long long)(__a == __b);2696}2697 2698static inline __ATTRS_o_ai __vector __bool long long2699vec_cmpeq(__vector signed long long __a, __vector signed long long __b) {2700 return (__vector __bool long long)(__a == __b);2701}2702 2703static inline __ATTRS_o_ai __vector __bool long long2704vec_cmpeq(__vector unsigned long long __a, __vector unsigned long long __b) {2705 return (__vector __bool long long)(__a == __b);2706}2707 2708static inline __ATTRS_o_ai __vector __bool __int1282709vec_cmpeq(__vector __bool __int128 __a, __vector __bool __int128 __b) {2710 return (__vector __bool __int128)(__a == __b);2711}2712 2713static inline __ATTRS_o_ai __vector __bool __int1282714vec_cmpeq(__vector signed __int128 __a, __vector signed __int128 __b) {2715 return (__vector __bool __int128)(__a == __b);2716}2717 2718static inline __ATTRS_o_ai __vector __bool __int1282719vec_cmpeq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {2720 return (__vector __bool __int128)(__a == __b);2721}2722 2723#if __ARCH__ >= 122724static inline __ATTRS_o_ai __vector __bool int2725vec_cmpeq(__vector float __a, __vector float __b) {2726 return (__vector __bool int)(__a == __b);2727}2728#endif2729 2730static inline __ATTRS_o_ai __vector __bool long long2731vec_cmpeq(__vector double __a, __vector double __b) {2732 return (__vector __bool long long)(__a == __b);2733}2734 2735/*-- vec_cmpge --------------------------------------------------------------*/2736 2737static inline __ATTRS_o_ai __vector __bool char2738vec_cmpge(__vector signed char __a, __vector signed char __b) {2739 return (__vector __bool char)(__a >= __b);2740}2741 2742static inline __ATTRS_o_ai __vector __bool char2743vec_cmpge(__vector unsigned char __a, __vector unsigned char __b) {2744 return (__vector __bool char)(__a >= __b);2745}2746 2747static inline __ATTRS_o_ai __vector __bool short2748vec_cmpge(__vector signed short __a, __vector signed short __b) {2749 return (__vector __bool short)(__a >= __b);2750}2751 2752static inline __ATTRS_o_ai __vector __bool short2753vec_cmpge(__vector unsigned short __a, __vector unsigned short __b) {2754 return (__vector __bool short)(__a >= __b);2755}2756 2757static inline __ATTRS_o_ai __vector __bool int2758vec_cmpge(__vector signed int __a, __vector signed int __b) {2759 return (__vector __bool int)(__a >= __b);2760}2761 2762static inline __ATTRS_o_ai __vector __bool int2763vec_cmpge(__vector unsigned int __a, __vector unsigned int __b) {2764 return (__vector __bool int)(__a >= __b);2765}2766 2767static inline __ATTRS_o_ai __vector __bool long long2768vec_cmpge(__vector signed long long __a, __vector signed long long __b) {2769 return (__vector __bool long long)(__a >= __b);2770}2771 2772static inline __ATTRS_o_ai __vector __bool long long2773vec_cmpge(__vector unsigned long long __a, __vector unsigned long long __b) {2774 return (__vector __bool long long)(__a >= __b);2775}2776 2777static inline __ATTRS_o_ai __vector __bool __int1282778vec_cmpge(__vector signed __int128 __a, __vector signed __int128 __b) {2779 return (__vector __bool __int128)(__a >= __b);2780}2781 2782static inline __ATTRS_o_ai __vector __bool __int1282783vec_cmpge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {2784 return (__vector __bool __int128)(__a >= __b);2785}2786 2787#if __ARCH__ >= 122788static inline __ATTRS_o_ai __vector __bool int2789vec_cmpge(__vector float __a, __vector float __b) {2790 return (__vector __bool int)(__a >= __b);2791}2792#endif2793 2794static inline __ATTRS_o_ai __vector __bool long long2795vec_cmpge(__vector double __a, __vector double __b) {2796 return (__vector __bool long long)(__a >= __b);2797}2798 2799/*-- vec_cmpgt --------------------------------------------------------------*/2800 2801static inline __ATTRS_o_ai __vector __bool char2802vec_cmpgt(__vector signed char __a, __vector signed char __b) {2803 return (__vector __bool char)(__a > __b);2804}2805 2806static inline __ATTRS_o_ai __vector __bool char2807vec_cmpgt(__vector unsigned char __a, __vector unsigned char __b) {2808 return (__vector __bool char)(__a > __b);2809}2810 2811static inline __ATTRS_o_ai __vector __bool short2812vec_cmpgt(__vector signed short __a, __vector signed short __b) {2813 return (__vector __bool short)(__a > __b);2814}2815 2816static inline __ATTRS_o_ai __vector __bool short2817vec_cmpgt(__vector unsigned short __a, __vector unsigned short __b) {2818 return (__vector __bool short)(__a > __b);2819}2820 2821static inline __ATTRS_o_ai __vector __bool int2822vec_cmpgt(__vector signed int __a, __vector signed int __b) {2823 return (__vector __bool int)(__a > __b);2824}2825 2826static inline __ATTRS_o_ai __vector __bool int2827vec_cmpgt(__vector unsigned int __a, __vector unsigned int __b) {2828 return (__vector __bool int)(__a > __b);2829}2830 2831static inline __ATTRS_o_ai __vector __bool long long2832vec_cmpgt(__vector signed long long __a, __vector signed long long __b) {2833 return (__vector __bool long long)(__a > __b);2834}2835 2836static inline __ATTRS_o_ai __vector __bool long long2837vec_cmpgt(__vector unsigned long long __a, __vector unsigned long long __b) {2838 return (__vector __bool long long)(__a > __b);2839}2840 2841static inline __ATTRS_o_ai __vector __bool __int1282842vec_cmpgt(__vector signed __int128 __a, __vector signed __int128 __b) {2843 return (__vector __bool __int128)(__a > __b);2844}2845 2846static inline __ATTRS_o_ai __vector __bool __int1282847vec_cmpgt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {2848 return (__vector __bool __int128)(__a > __b);2849}2850 2851#if __ARCH__ >= 122852static inline __ATTRS_o_ai __vector __bool int2853vec_cmpgt(__vector float __a, __vector float __b) {2854 return (__vector __bool int)(__a > __b);2855}2856#endif2857 2858static inline __ATTRS_o_ai __vector __bool long long2859vec_cmpgt(__vector double __a, __vector double __b) {2860 return (__vector __bool long long)(__a > __b);2861}2862 2863/*-- vec_cmple --------------------------------------------------------------*/2864 2865static inline __ATTRS_o_ai __vector __bool char2866vec_cmple(__vector signed char __a, __vector signed char __b) {2867 return (__vector __bool char)(__a <= __b);2868}2869 2870static inline __ATTRS_o_ai __vector __bool char2871vec_cmple(__vector unsigned char __a, __vector unsigned char __b) {2872 return (__vector __bool char)(__a <= __b);2873}2874 2875static inline __ATTRS_o_ai __vector __bool short2876vec_cmple(__vector signed short __a, __vector signed short __b) {2877 return (__vector __bool short)(__a <= __b);2878}2879 2880static inline __ATTRS_o_ai __vector __bool short2881vec_cmple(__vector unsigned short __a, __vector unsigned short __b) {2882 return (__vector __bool short)(__a <= __b);2883}2884 2885static inline __ATTRS_o_ai __vector __bool int2886vec_cmple(__vector signed int __a, __vector signed int __b) {2887 return (__vector __bool int)(__a <= __b);2888}2889 2890static inline __ATTRS_o_ai __vector __bool int2891vec_cmple(__vector unsigned int __a, __vector unsigned int __b) {2892 return (__vector __bool int)(__a <= __b);2893}2894 2895static inline __ATTRS_o_ai __vector __bool long long2896vec_cmple(__vector signed long long __a, __vector signed long long __b) {2897 return (__vector __bool long long)(__a <= __b);2898}2899 2900static inline __ATTRS_o_ai __vector __bool long long2901vec_cmple(__vector unsigned long long __a, __vector unsigned long long __b) {2902 return (__vector __bool long long)(__a <= __b);2903}2904 2905static inline __ATTRS_o_ai __vector __bool __int1282906vec_cmple(__vector signed __int128 __a, __vector signed __int128 __b) {2907 return (__vector __bool __int128)(__a <= __b);2908}2909 2910static inline __ATTRS_o_ai __vector __bool __int1282911vec_cmple(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {2912 return (__vector __bool __int128)(__a <= __b);2913}2914 2915#if __ARCH__ >= 122916static inline __ATTRS_o_ai __vector __bool int2917vec_cmple(__vector float __a, __vector float __b) {2918 return (__vector __bool int)(__a <= __b);2919}2920#endif2921 2922static inline __ATTRS_o_ai __vector __bool long long2923vec_cmple(__vector double __a, __vector double __b) {2924 return (__vector __bool long long)(__a <= __b);2925}2926 2927/*-- vec_cmplt --------------------------------------------------------------*/2928 2929static inline __ATTRS_o_ai __vector __bool char2930vec_cmplt(__vector signed char __a, __vector signed char __b) {2931 return (__vector __bool char)(__a < __b);2932}2933 2934static inline __ATTRS_o_ai __vector __bool char2935vec_cmplt(__vector unsigned char __a, __vector unsigned char __b) {2936 return (__vector __bool char)(__a < __b);2937}2938 2939static inline __ATTRS_o_ai __vector __bool short2940vec_cmplt(__vector signed short __a, __vector signed short __b) {2941 return (__vector __bool short)(__a < __b);2942}2943 2944static inline __ATTRS_o_ai __vector __bool short2945vec_cmplt(__vector unsigned short __a, __vector unsigned short __b) {2946 return (__vector __bool short)(__a < __b);2947}2948 2949static inline __ATTRS_o_ai __vector __bool int2950vec_cmplt(__vector signed int __a, __vector signed int __b) {2951 return (__vector __bool int)(__a < __b);2952}2953 2954static inline __ATTRS_o_ai __vector __bool int2955vec_cmplt(__vector unsigned int __a, __vector unsigned int __b) {2956 return (__vector __bool int)(__a < __b);2957}2958 2959static inline __ATTRS_o_ai __vector __bool long long2960vec_cmplt(__vector signed long long __a, __vector signed long long __b) {2961 return (__vector __bool long long)(__a < __b);2962}2963 2964static inline __ATTRS_o_ai __vector __bool long long2965vec_cmplt(__vector unsigned long long __a, __vector unsigned long long __b) {2966 return (__vector __bool long long)(__a < __b);2967}2968 2969static inline __ATTRS_o_ai __vector __bool __int1282970vec_cmplt(__vector signed __int128 __a, __vector signed __int128 __b) {2971 return (__vector __bool __int128)(__a < __b);2972}2973 2974static inline __ATTRS_o_ai __vector __bool __int1282975vec_cmplt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {2976 return (__vector __bool __int128)(__a < __b);2977}2978 2979#if __ARCH__ >= 122980static inline __ATTRS_o_ai __vector __bool int2981vec_cmplt(__vector float __a, __vector float __b) {2982 return (__vector __bool int)(__a < __b);2983}2984#endif2985 2986static inline __ATTRS_o_ai __vector __bool long long2987vec_cmplt(__vector double __a, __vector double __b) {2988 return (__vector __bool long long)(__a < __b);2989}2990 2991/*-- vec_all_eq -------------------------------------------------------------*/2992 2993static inline __ATTRS_o_ai int2994vec_all_eq(__vector signed char __a, __vector signed char __b) {2995 int __cc;2996 __builtin_s390_vceqbs((__vector unsigned char)__a,2997 (__vector unsigned char)__b, &__cc);2998 return __cc == 0;2999}3000 3001// This prototype is deprecated.3002static inline __ATTRS_o_ai int3003vec_all_eq(__vector signed char __a, __vector __bool char __b) {3004 int __cc;3005 __builtin_s390_vceqbs((__vector unsigned char)__a,3006 (__vector unsigned char)__b, &__cc);3007 return __cc == 0;3008}3009 3010// This prototype is deprecated.3011static inline __ATTRS_o_ai int3012vec_all_eq(__vector __bool char __a, __vector signed char __b) {3013 int __cc;3014 __builtin_s390_vceqbs((__vector unsigned char)__a,3015 (__vector unsigned char)__b, &__cc);3016 return __cc == 0;3017}3018 3019static inline __ATTRS_o_ai int3020vec_all_eq(__vector unsigned char __a, __vector unsigned char __b) {3021 int __cc;3022 __builtin_s390_vceqbs(__a, __b, &__cc);3023 return __cc == 0;3024}3025 3026// This prototype is deprecated.3027static inline __ATTRS_o_ai int3028vec_all_eq(__vector unsigned char __a, __vector __bool char __b) {3029 int __cc;3030 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);3031 return __cc == 0;3032}3033 3034// This prototype is deprecated.3035static inline __ATTRS_o_ai int3036vec_all_eq(__vector __bool char __a, __vector unsigned char __b) {3037 int __cc;3038 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);3039 return __cc == 0;3040}3041 3042static inline __ATTRS_o_ai int3043vec_all_eq(__vector __bool char __a, __vector __bool char __b) {3044 int __cc;3045 __builtin_s390_vceqbs((__vector unsigned char)__a,3046 (__vector unsigned char)__b, &__cc);3047 return __cc == 0;3048}3049 3050static inline __ATTRS_o_ai int3051vec_all_eq(__vector signed short __a, __vector signed short __b) {3052 int __cc;3053 __builtin_s390_vceqhs((__vector unsigned short)__a,3054 (__vector unsigned short)__b, &__cc);3055 return __cc == 0;3056}3057 3058// This prototype is deprecated.3059static inline __ATTRS_o_ai int3060vec_all_eq(__vector signed short __a, __vector __bool short __b) {3061 int __cc;3062 __builtin_s390_vceqhs((__vector unsigned short)__a,3063 (__vector unsigned short)__b, &__cc);3064 return __cc == 0;3065}3066 3067// This prototype is deprecated.3068static inline __ATTRS_o_ai int3069vec_all_eq(__vector __bool short __a, __vector signed short __b) {3070 int __cc;3071 __builtin_s390_vceqhs((__vector unsigned short)__a,3072 (__vector unsigned short)__b, &__cc);3073 return __cc == 0;3074}3075 3076static inline __ATTRS_o_ai int3077vec_all_eq(__vector unsigned short __a, __vector unsigned short __b) {3078 int __cc;3079 __builtin_s390_vceqhs(__a, __b, &__cc);3080 return __cc == 0;3081}3082 3083// This prototype is deprecated.3084static inline __ATTRS_o_ai int3085vec_all_eq(__vector unsigned short __a, __vector __bool short __b) {3086 int __cc;3087 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);3088 return __cc == 0;3089}3090 3091// This prototype is deprecated.3092static inline __ATTRS_o_ai int3093vec_all_eq(__vector __bool short __a, __vector unsigned short __b) {3094 int __cc;3095 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);3096 return __cc == 0;3097}3098 3099static inline __ATTRS_o_ai int3100vec_all_eq(__vector __bool short __a, __vector __bool short __b) {3101 int __cc;3102 __builtin_s390_vceqhs((__vector unsigned short)__a,3103 (__vector unsigned short)__b, &__cc);3104 return __cc == 0;3105}3106 3107static inline __ATTRS_o_ai int3108vec_all_eq(__vector signed int __a, __vector signed int __b) {3109 int __cc;3110 __builtin_s390_vceqfs((__vector unsigned int)__a,3111 (__vector unsigned int)__b, &__cc);3112 return __cc == 0;3113}3114 3115// This prototype is deprecated.3116static inline __ATTRS_o_ai int3117vec_all_eq(__vector signed int __a, __vector __bool int __b) {3118 int __cc;3119 __builtin_s390_vceqfs((__vector unsigned int)__a,3120 (__vector unsigned int)__b, &__cc);3121 return __cc == 0;3122}3123 3124// This prototype is deprecated.3125static inline __ATTRS_o_ai int3126vec_all_eq(__vector __bool int __a, __vector signed int __b) {3127 int __cc;3128 __builtin_s390_vceqfs((__vector unsigned int)__a,3129 (__vector unsigned int)__b, &__cc);3130 return __cc == 0;3131}3132 3133static inline __ATTRS_o_ai int3134vec_all_eq(__vector unsigned int __a, __vector unsigned int __b) {3135 int __cc;3136 __builtin_s390_vceqfs(__a, __b, &__cc);3137 return __cc == 0;3138}3139 3140// This prototype is deprecated.3141static inline __ATTRS_o_ai int3142vec_all_eq(__vector unsigned int __a, __vector __bool int __b) {3143 int __cc;3144 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);3145 return __cc == 0;3146}3147 3148// This prototype is deprecated.3149static inline __ATTRS_o_ai int3150vec_all_eq(__vector __bool int __a, __vector unsigned int __b) {3151 int __cc;3152 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);3153 return __cc == 0;3154}3155 3156static inline __ATTRS_o_ai int3157vec_all_eq(__vector __bool int __a, __vector __bool int __b) {3158 int __cc;3159 __builtin_s390_vceqfs((__vector unsigned int)__a,3160 (__vector unsigned int)__b, &__cc);3161 return __cc == 0;3162}3163 3164static inline __ATTRS_o_ai int3165vec_all_eq(__vector signed long long __a, __vector signed long long __b) {3166 int __cc;3167 __builtin_s390_vceqgs((__vector unsigned long long)__a,3168 (__vector unsigned long long)__b, &__cc);3169 return __cc == 0;3170}3171 3172// This prototype is deprecated.3173static inline __ATTRS_o_ai int3174vec_all_eq(__vector signed long long __a, __vector __bool long long __b) {3175 int __cc;3176 __builtin_s390_vceqgs((__vector unsigned long long)__a,3177 (__vector unsigned long long)__b, &__cc);3178 return __cc == 0;3179}3180 3181// This prototype is deprecated.3182static inline __ATTRS_o_ai int3183vec_all_eq(__vector __bool long long __a, __vector signed long long __b) {3184 int __cc;3185 __builtin_s390_vceqgs((__vector unsigned long long)__a,3186 (__vector unsigned long long)__b, &__cc);3187 return __cc == 0;3188}3189 3190static inline __ATTRS_o_ai int3191vec_all_eq(__vector unsigned long long __a, __vector unsigned long long __b) {3192 int __cc;3193 __builtin_s390_vceqgs(__a, __b, &__cc);3194 return __cc == 0;3195}3196 3197// This prototype is deprecated.3198static inline __ATTRS_o_ai int3199vec_all_eq(__vector unsigned long long __a, __vector __bool long long __b) {3200 int __cc;3201 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);3202 return __cc == 0;3203}3204 3205// This prototype is deprecated.3206static inline __ATTRS_o_ai int3207vec_all_eq(__vector __bool long long __a, __vector unsigned long long __b) {3208 int __cc;3209 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);3210 return __cc == 0;3211}3212 3213static inline __ATTRS_o_ai int3214vec_all_eq(__vector __bool long long __a, __vector __bool long long __b) {3215 int __cc;3216 __builtin_s390_vceqgs((__vector unsigned long long)__a,3217 (__vector unsigned long long)__b, &__cc);3218 return __cc == 0;3219}3220 3221#if __ARCH__ >= 153222static inline __ATTRS_o_ai int3223vec_all_eq(__vector signed __int128 __a, __vector signed __int128 __b) {3224 int __cc;3225 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);3226 return __cc == 0;3227}3228 3229static inline __ATTRS_o_ai int3230vec_all_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {3231 int __cc;3232 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);3233 return __cc == 0;3234}3235 3236static inline __ATTRS_o_ai int3237vec_all_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {3238 int __cc;3239 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);3240 return __cc == 0;3241}3242#endif3243 3244#if __ARCH__ >= 123245static inline __ATTRS_o_ai int3246vec_all_eq(__vector float __a, __vector float __b) {3247 int __cc;3248 __builtin_s390_vfcesbs(__a, __b, &__cc);3249 return __cc == 0;3250}3251#endif3252 3253static inline __ATTRS_o_ai int3254vec_all_eq(__vector double __a, __vector double __b) {3255 int __cc;3256 __builtin_s390_vfcedbs(__a, __b, &__cc);3257 return __cc == 0;3258}3259 3260/*-- vec_all_ne -------------------------------------------------------------*/3261 3262static inline __ATTRS_o_ai int3263vec_all_ne(__vector signed char __a, __vector signed char __b) {3264 int __cc;3265 __builtin_s390_vceqbs((__vector unsigned char)__a,3266 (__vector unsigned char)__b, &__cc);3267 return __cc == 3;3268}3269 3270// This prototype is deprecated.3271static inline __ATTRS_o_ai int3272vec_all_ne(__vector signed char __a, __vector __bool char __b) {3273 int __cc;3274 __builtin_s390_vceqbs((__vector unsigned char)__a,3275 (__vector unsigned char)__b, &__cc);3276 return __cc == 3;3277}3278 3279// This prototype is deprecated.3280static inline __ATTRS_o_ai int3281vec_all_ne(__vector __bool char __a, __vector signed char __b) {3282 int __cc;3283 __builtin_s390_vceqbs((__vector unsigned char)__a,3284 (__vector unsigned char)__b, &__cc);3285 return __cc == 3;3286}3287 3288static inline __ATTRS_o_ai int3289vec_all_ne(__vector unsigned char __a, __vector unsigned char __b) {3290 int __cc;3291 __builtin_s390_vceqbs((__vector unsigned char)__a,3292 (__vector unsigned char)__b, &__cc);3293 return __cc == 3;3294}3295 3296// This prototype is deprecated.3297static inline __ATTRS_o_ai int3298vec_all_ne(__vector unsigned char __a, __vector __bool char __b) {3299 int __cc;3300 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);3301 return __cc == 3;3302}3303 3304// This prototype is deprecated.3305static inline __ATTRS_o_ai int3306vec_all_ne(__vector __bool char __a, __vector unsigned char __b) {3307 int __cc;3308 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);3309 return __cc == 3;3310}3311 3312static inline __ATTRS_o_ai int3313vec_all_ne(__vector __bool char __a, __vector __bool char __b) {3314 int __cc;3315 __builtin_s390_vceqbs((__vector unsigned char)__a,3316 (__vector unsigned char)__b, &__cc);3317 return __cc == 3;3318}3319 3320static inline __ATTRS_o_ai int3321vec_all_ne(__vector signed short __a, __vector signed short __b) {3322 int __cc;3323 __builtin_s390_vceqhs((__vector unsigned short)__a,3324 (__vector unsigned short)__b, &__cc);3325 return __cc == 3;3326}3327 3328// This prototype is deprecated.3329static inline __ATTRS_o_ai int3330vec_all_ne(__vector signed short __a, __vector __bool short __b) {3331 int __cc;3332 __builtin_s390_vceqhs((__vector unsigned short)__a,3333 (__vector unsigned short)__b, &__cc);3334 return __cc == 3;3335}3336 3337// This prototype is deprecated.3338static inline __ATTRS_o_ai int3339vec_all_ne(__vector __bool short __a, __vector signed short __b) {3340 int __cc;3341 __builtin_s390_vceqhs((__vector unsigned short)__a,3342 (__vector unsigned short)__b, &__cc);3343 return __cc == 3;3344}3345 3346static inline __ATTRS_o_ai int3347vec_all_ne(__vector unsigned short __a, __vector unsigned short __b) {3348 int __cc;3349 __builtin_s390_vceqhs(__a, __b, &__cc);3350 return __cc == 3;3351}3352 3353// This prototype is deprecated.3354static inline __ATTRS_o_ai int3355vec_all_ne(__vector unsigned short __a, __vector __bool short __b) {3356 int __cc;3357 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);3358 return __cc == 3;3359}3360 3361// This prototype is deprecated.3362static inline __ATTRS_o_ai int3363vec_all_ne(__vector __bool short __a, __vector unsigned short __b) {3364 int __cc;3365 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);3366 return __cc == 3;3367}3368 3369static inline __ATTRS_o_ai int3370vec_all_ne(__vector __bool short __a, __vector __bool short __b) {3371 int __cc;3372 __builtin_s390_vceqhs((__vector unsigned short)__a,3373 (__vector unsigned short)__b, &__cc);3374 return __cc == 3;3375}3376 3377static inline __ATTRS_o_ai int3378vec_all_ne(__vector signed int __a, __vector signed int __b) {3379 int __cc;3380 __builtin_s390_vceqfs((__vector unsigned int)__a,3381 (__vector unsigned int)__b, &__cc);3382 return __cc == 3;3383}3384 3385// This prototype is deprecated.3386static inline __ATTRS_o_ai int3387vec_all_ne(__vector signed int __a, __vector __bool int __b) {3388 int __cc;3389 __builtin_s390_vceqfs((__vector unsigned int)__a,3390 (__vector unsigned int)__b, &__cc);3391 return __cc == 3;3392}3393 3394// This prototype is deprecated.3395static inline __ATTRS_o_ai int3396vec_all_ne(__vector __bool int __a, __vector signed int __b) {3397 int __cc;3398 __builtin_s390_vceqfs((__vector unsigned int)__a,3399 (__vector unsigned int)__b, &__cc);3400 return __cc == 3;3401}3402 3403static inline __ATTRS_o_ai int3404vec_all_ne(__vector unsigned int __a, __vector unsigned int __b) {3405 int __cc;3406 __builtin_s390_vceqfs(__a, __b, &__cc);3407 return __cc == 3;3408}3409 3410// This prototype is deprecated.3411static inline __ATTRS_o_ai int3412vec_all_ne(__vector unsigned int __a, __vector __bool int __b) {3413 int __cc;3414 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);3415 return __cc == 3;3416}3417 3418// This prototype is deprecated.3419static inline __ATTRS_o_ai int3420vec_all_ne(__vector __bool int __a, __vector unsigned int __b) {3421 int __cc;3422 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);3423 return __cc == 3;3424}3425 3426static inline __ATTRS_o_ai int3427vec_all_ne(__vector __bool int __a, __vector __bool int __b) {3428 int __cc;3429 __builtin_s390_vceqfs((__vector unsigned int)__a,3430 (__vector unsigned int)__b, &__cc);3431 return __cc == 3;3432}3433 3434static inline __ATTRS_o_ai int3435vec_all_ne(__vector signed long long __a, __vector signed long long __b) {3436 int __cc;3437 __builtin_s390_vceqgs((__vector unsigned long long)__a,3438 (__vector unsigned long long)__b, &__cc);3439 return __cc == 3;3440}3441 3442// This prototype is deprecated.3443static inline __ATTRS_o_ai int3444vec_all_ne(__vector signed long long __a, __vector __bool long long __b) {3445 int __cc;3446 __builtin_s390_vceqgs((__vector unsigned long long)__a,3447 (__vector unsigned long long)__b, &__cc);3448 return __cc == 3;3449}3450 3451// This prototype is deprecated.3452static inline __ATTRS_o_ai int3453vec_all_ne(__vector __bool long long __a, __vector signed long long __b) {3454 int __cc;3455 __builtin_s390_vceqgs((__vector unsigned long long)__a,3456 (__vector unsigned long long)__b, &__cc);3457 return __cc == 3;3458}3459 3460static inline __ATTRS_o_ai int3461vec_all_ne(__vector unsigned long long __a, __vector unsigned long long __b) {3462 int __cc;3463 __builtin_s390_vceqgs(__a, __b, &__cc);3464 return __cc == 3;3465}3466 3467// This prototype is deprecated.3468static inline __ATTRS_o_ai int3469vec_all_ne(__vector unsigned long long __a, __vector __bool long long __b) {3470 int __cc;3471 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);3472 return __cc == 3;3473}3474 3475// This prototype is deprecated.3476static inline __ATTRS_o_ai int3477vec_all_ne(__vector __bool long long __a, __vector unsigned long long __b) {3478 int __cc;3479 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);3480 return __cc == 3;3481}3482 3483static inline __ATTRS_o_ai int3484vec_all_ne(__vector __bool long long __a, __vector __bool long long __b) {3485 int __cc;3486 __builtin_s390_vceqgs((__vector unsigned long long)__a,3487 (__vector unsigned long long)__b, &__cc);3488 return __cc == 3;3489}3490 3491#if __ARCH__ >= 153492static inline __ATTRS_o_ai int3493vec_all_ne(__vector signed __int128 __a, __vector signed __int128 __b) {3494 int __cc;3495 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);3496 return __cc == 3;3497}3498 3499static inline __ATTRS_o_ai int3500vec_all_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {3501 int __cc;3502 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);3503 return __cc == 3;3504}3505 3506static inline __ATTRS_o_ai int3507vec_all_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {3508 int __cc;3509 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);3510 return __cc == 3;3511}3512#endif3513 3514#if __ARCH__ >= 123515static inline __ATTRS_o_ai int3516vec_all_ne(__vector float __a, __vector float __b) {3517 int __cc;3518 __builtin_s390_vfcesbs(__a, __b, &__cc);3519 return __cc == 3;3520}3521#endif3522 3523static inline __ATTRS_o_ai int3524vec_all_ne(__vector double __a, __vector double __b) {3525 int __cc;3526 __builtin_s390_vfcedbs(__a, __b, &__cc);3527 return __cc == 3;3528}3529 3530/*-- vec_all_ge -------------------------------------------------------------*/3531 3532static inline __ATTRS_o_ai int3533vec_all_ge(__vector signed char __a, __vector signed char __b) {3534 int __cc;3535 __builtin_s390_vchbs(__b, __a, &__cc);3536 return __cc == 3;3537}3538 3539// This prototype is deprecated.3540static inline __ATTRS_o_ai int3541vec_all_ge(__vector signed char __a, __vector __bool char __b) {3542 int __cc;3543 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);3544 return __cc == 3;3545}3546 3547// This prototype is deprecated.3548static inline __ATTRS_o_ai int3549vec_all_ge(__vector __bool char __a, __vector signed char __b) {3550 int __cc;3551 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);3552 return __cc == 3;3553}3554 3555static inline __ATTRS_o_ai int3556vec_all_ge(__vector unsigned char __a, __vector unsigned char __b) {3557 int __cc;3558 __builtin_s390_vchlbs(__b, __a, &__cc);3559 return __cc == 3;3560}3561 3562// This prototype is deprecated.3563static inline __ATTRS_o_ai int3564vec_all_ge(__vector unsigned char __a, __vector __bool char __b) {3565 int __cc;3566 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);3567 return __cc == 3;3568}3569 3570// This prototype is deprecated.3571static inline __ATTRS_o_ai int3572vec_all_ge(__vector __bool char __a, __vector unsigned char __b) {3573 int __cc;3574 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);3575 return __cc == 3;3576}3577 3578// This prototype is deprecated.3579static inline __ATTRS_o_ai int3580vec_all_ge(__vector __bool char __a, __vector __bool char __b) {3581 int __cc;3582 __builtin_s390_vchlbs((__vector unsigned char)__b,3583 (__vector unsigned char)__a, &__cc);3584 return __cc == 3;3585}3586 3587static inline __ATTRS_o_ai int3588vec_all_ge(__vector signed short __a, __vector signed short __b) {3589 int __cc;3590 __builtin_s390_vchhs(__b, __a, &__cc);3591 return __cc == 3;3592}3593 3594// This prototype is deprecated.3595static inline __ATTRS_o_ai int3596vec_all_ge(__vector signed short __a, __vector __bool short __b) {3597 int __cc;3598 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);3599 return __cc == 3;3600}3601 3602// This prototype is deprecated.3603static inline __ATTRS_o_ai int3604vec_all_ge(__vector __bool short __a, __vector signed short __b) {3605 int __cc;3606 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);3607 return __cc == 3;3608}3609 3610static inline __ATTRS_o_ai int3611vec_all_ge(__vector unsigned short __a, __vector unsigned short __b) {3612 int __cc;3613 __builtin_s390_vchlhs(__b, __a, &__cc);3614 return __cc == 3;3615}3616 3617// This prototype is deprecated.3618static inline __ATTRS_o_ai int3619vec_all_ge(__vector unsigned short __a, __vector __bool short __b) {3620 int __cc;3621 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);3622 return __cc == 3;3623}3624 3625// This prototype is deprecated.3626static inline __ATTRS_o_ai int3627vec_all_ge(__vector __bool short __a, __vector unsigned short __b) {3628 int __cc;3629 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);3630 return __cc == 3;3631}3632 3633// This prototype is deprecated.3634static inline __ATTRS_o_ai int3635vec_all_ge(__vector __bool short __a, __vector __bool short __b) {3636 int __cc;3637 __builtin_s390_vchlhs((__vector unsigned short)__b,3638 (__vector unsigned short)__a, &__cc);3639 return __cc == 3;3640}3641 3642static inline __ATTRS_o_ai int3643vec_all_ge(__vector signed int __a, __vector signed int __b) {3644 int __cc;3645 __builtin_s390_vchfs(__b, __a, &__cc);3646 return __cc == 3;3647}3648 3649// This prototype is deprecated.3650static inline __ATTRS_o_ai int3651vec_all_ge(__vector signed int __a, __vector __bool int __b) {3652 int __cc;3653 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);3654 return __cc == 3;3655}3656 3657// This prototype is deprecated.3658static inline __ATTRS_o_ai int3659vec_all_ge(__vector __bool int __a, __vector signed int __b) {3660 int __cc;3661 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);3662 return __cc == 3;3663}3664 3665static inline __ATTRS_o_ai int3666vec_all_ge(__vector unsigned int __a, __vector unsigned int __b) {3667 int __cc;3668 __builtin_s390_vchlfs(__b, __a, &__cc);3669 return __cc == 3;3670}3671 3672// This prototype is deprecated.3673static inline __ATTRS_o_ai int3674vec_all_ge(__vector unsigned int __a, __vector __bool int __b) {3675 int __cc;3676 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);3677 return __cc == 3;3678}3679 3680// This prototype is deprecated.3681static inline __ATTRS_o_ai int3682vec_all_ge(__vector __bool int __a, __vector unsigned int __b) {3683 int __cc;3684 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);3685 return __cc == 3;3686}3687 3688// This prototype is deprecated.3689static inline __ATTRS_o_ai int3690vec_all_ge(__vector __bool int __a, __vector __bool int __b) {3691 int __cc;3692 __builtin_s390_vchlfs((__vector unsigned int)__b,3693 (__vector unsigned int)__a, &__cc);3694 return __cc == 3;3695}3696 3697static inline __ATTRS_o_ai int3698vec_all_ge(__vector signed long long __a, __vector signed long long __b) {3699 int __cc;3700 __builtin_s390_vchgs(__b, __a, &__cc);3701 return __cc == 3;3702}3703 3704// This prototype is deprecated.3705static inline __ATTRS_o_ai int3706vec_all_ge(__vector signed long long __a, __vector __bool long long __b) {3707 int __cc;3708 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);3709 return __cc == 3;3710}3711 3712// This prototype is deprecated.3713static inline __ATTRS_o_ai int3714vec_all_ge(__vector __bool long long __a, __vector signed long long __b) {3715 int __cc;3716 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);3717 return __cc == 3;3718}3719 3720static inline __ATTRS_o_ai int3721vec_all_ge(__vector unsigned long long __a, __vector unsigned long long __b) {3722 int __cc;3723 __builtin_s390_vchlgs(__b, __a, &__cc);3724 return __cc == 3;3725}3726 3727// This prototype is deprecated.3728static inline __ATTRS_o_ai int3729vec_all_ge(__vector unsigned long long __a, __vector __bool long long __b) {3730 int __cc;3731 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);3732 return __cc == 3;3733}3734 3735// This prototype is deprecated.3736static inline __ATTRS_o_ai int3737vec_all_ge(__vector __bool long long __a, __vector unsigned long long __b) {3738 int __cc;3739 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);3740 return __cc == 3;3741}3742 3743// This prototype is deprecated.3744static inline __ATTRS_o_ai int3745vec_all_ge(__vector __bool long long __a, __vector __bool long long __b) {3746 int __cc;3747 __builtin_s390_vchlgs((__vector unsigned long long)__b,3748 (__vector unsigned long long)__a, &__cc);3749 return __cc == 3;3750}3751 3752#if __ARCH__ >= 153753static inline __ATTRS_o_ai int3754vec_all_ge(__vector signed __int128 __a, __vector signed __int128 __b) {3755 int __cc;3756 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);3757 return __cc == 3;3758}3759 3760static inline __ATTRS_o_ai int3761vec_all_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {3762 int __cc;3763 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);3764 return __cc == 3;3765}3766#endif3767 3768#if __ARCH__ >= 123769static inline __ATTRS_o_ai int3770vec_all_ge(__vector float __a, __vector float __b) {3771 int __cc;3772 __builtin_s390_vfchesbs(__a, __b, &__cc);3773 return __cc == 0;3774}3775#endif3776 3777static inline __ATTRS_o_ai int3778vec_all_ge(__vector double __a, __vector double __b) {3779 int __cc;3780 __builtin_s390_vfchedbs(__a, __b, &__cc);3781 return __cc == 0;3782}3783 3784/*-- vec_all_gt -------------------------------------------------------------*/3785 3786static inline __ATTRS_o_ai int3787vec_all_gt(__vector signed char __a, __vector signed char __b) {3788 int __cc;3789 __builtin_s390_vchbs(__a, __b, &__cc);3790 return __cc == 0;3791}3792 3793// This prototype is deprecated.3794static inline __ATTRS_o_ai int3795vec_all_gt(__vector signed char __a, __vector __bool char __b) {3796 int __cc;3797 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);3798 return __cc == 0;3799}3800 3801// This prototype is deprecated.3802static inline __ATTRS_o_ai int3803vec_all_gt(__vector __bool char __a, __vector signed char __b) {3804 int __cc;3805 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);3806 return __cc == 0;3807}3808 3809static inline __ATTRS_o_ai int3810vec_all_gt(__vector unsigned char __a, __vector unsigned char __b) {3811 int __cc;3812 __builtin_s390_vchlbs(__a, __b, &__cc);3813 return __cc == 0;3814}3815 3816// This prototype is deprecated.3817static inline __ATTRS_o_ai int3818vec_all_gt(__vector unsigned char __a, __vector __bool char __b) {3819 int __cc;3820 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);3821 return __cc == 0;3822}3823 3824// This prototype is deprecated.3825static inline __ATTRS_o_ai int3826vec_all_gt(__vector __bool char __a, __vector unsigned char __b) {3827 int __cc;3828 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);3829 return __cc == 0;3830}3831 3832// This prototype is deprecated.3833static inline __ATTRS_o_ai int3834vec_all_gt(__vector __bool char __a, __vector __bool char __b) {3835 int __cc;3836 __builtin_s390_vchlbs((__vector unsigned char)__a,3837 (__vector unsigned char)__b, &__cc);3838 return __cc == 0;3839}3840 3841static inline __ATTRS_o_ai int3842vec_all_gt(__vector signed short __a, __vector signed short __b) {3843 int __cc;3844 __builtin_s390_vchhs(__a, __b, &__cc);3845 return __cc == 0;3846}3847 3848// This prototype is deprecated.3849static inline __ATTRS_o_ai int3850vec_all_gt(__vector signed short __a, __vector __bool short __b) {3851 int __cc;3852 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);3853 return __cc == 0;3854}3855 3856// This prototype is deprecated.3857static inline __ATTRS_o_ai int3858vec_all_gt(__vector __bool short __a, __vector signed short __b) {3859 int __cc;3860 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);3861 return __cc == 0;3862}3863 3864static inline __ATTRS_o_ai int3865vec_all_gt(__vector unsigned short __a, __vector unsigned short __b) {3866 int __cc;3867 __builtin_s390_vchlhs(__a, __b, &__cc);3868 return __cc == 0;3869}3870 3871// This prototype is deprecated.3872static inline __ATTRS_o_ai int3873vec_all_gt(__vector unsigned short __a, __vector __bool short __b) {3874 int __cc;3875 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);3876 return __cc == 0;3877}3878 3879// This prototype is deprecated.3880static inline __ATTRS_o_ai int3881vec_all_gt(__vector __bool short __a, __vector unsigned short __b) {3882 int __cc;3883 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);3884 return __cc == 0;3885}3886 3887// This prototype is deprecated.3888static inline __ATTRS_o_ai int3889vec_all_gt(__vector __bool short __a, __vector __bool short __b) {3890 int __cc;3891 __builtin_s390_vchlhs((__vector unsigned short)__a,3892 (__vector unsigned short)__b, &__cc);3893 return __cc == 0;3894}3895 3896static inline __ATTRS_o_ai int3897vec_all_gt(__vector signed int __a, __vector signed int __b) {3898 int __cc;3899 __builtin_s390_vchfs(__a, __b, &__cc);3900 return __cc == 0;3901}3902 3903// This prototype is deprecated.3904static inline __ATTRS_o_ai int3905vec_all_gt(__vector signed int __a, __vector __bool int __b) {3906 int __cc;3907 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);3908 return __cc == 0;3909}3910 3911// This prototype is deprecated.3912static inline __ATTRS_o_ai int3913vec_all_gt(__vector __bool int __a, __vector signed int __b) {3914 int __cc;3915 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);3916 return __cc == 0;3917}3918 3919static inline __ATTRS_o_ai int3920vec_all_gt(__vector unsigned int __a, __vector unsigned int __b) {3921 int __cc;3922 __builtin_s390_vchlfs(__a, __b, &__cc);3923 return __cc == 0;3924}3925 3926// This prototype is deprecated.3927static inline __ATTRS_o_ai int3928vec_all_gt(__vector unsigned int __a, __vector __bool int __b) {3929 int __cc;3930 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);3931 return __cc == 0;3932}3933 3934// This prototype is deprecated.3935static inline __ATTRS_o_ai int3936vec_all_gt(__vector __bool int __a, __vector unsigned int __b) {3937 int __cc;3938 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);3939 return __cc == 0;3940}3941 3942// This prototype is deprecated.3943static inline __ATTRS_o_ai int3944vec_all_gt(__vector __bool int __a, __vector __bool int __b) {3945 int __cc;3946 __builtin_s390_vchlfs((__vector unsigned int)__a,3947 (__vector unsigned int)__b, &__cc);3948 return __cc == 0;3949}3950 3951static inline __ATTRS_o_ai int3952vec_all_gt(__vector signed long long __a, __vector signed long long __b) {3953 int __cc;3954 __builtin_s390_vchgs(__a, __b, &__cc);3955 return __cc == 0;3956}3957 3958// This prototype is deprecated.3959static inline __ATTRS_o_ai int3960vec_all_gt(__vector signed long long __a, __vector __bool long long __b) {3961 int __cc;3962 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);3963 return __cc == 0;3964}3965 3966// This prototype is deprecated.3967static inline __ATTRS_o_ai int3968vec_all_gt(__vector __bool long long __a, __vector signed long long __b) {3969 int __cc;3970 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);3971 return __cc == 0;3972}3973 3974static inline __ATTRS_o_ai int3975vec_all_gt(__vector unsigned long long __a, __vector unsigned long long __b) {3976 int __cc;3977 __builtin_s390_vchlgs(__a, __b, &__cc);3978 return __cc == 0;3979}3980 3981// This prototype is deprecated.3982static inline __ATTRS_o_ai int3983vec_all_gt(__vector unsigned long long __a, __vector __bool long long __b) {3984 int __cc;3985 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);3986 return __cc == 0;3987}3988 3989// This prototype is deprecated.3990static inline __ATTRS_o_ai int3991vec_all_gt(__vector __bool long long __a, __vector unsigned long long __b) {3992 int __cc;3993 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);3994 return __cc == 0;3995}3996 3997// This prototype is deprecated.3998static inline __ATTRS_o_ai int3999vec_all_gt(__vector __bool long long __a, __vector __bool long long __b) {4000 int __cc;4001 __builtin_s390_vchlgs((__vector unsigned long long)__a,4002 (__vector unsigned long long)__b, &__cc);4003 return __cc == 0;4004}4005 4006#if __ARCH__ >= 154007static inline __ATTRS_o_ai int4008vec_all_gt(__vector signed __int128 __a, __vector signed __int128 __b) {4009 int __cc;4010 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);4011 return __cc == 0;4012}4013 4014static inline __ATTRS_o_ai int4015vec_all_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {4016 int __cc;4017 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);4018 return __cc == 0;4019}4020#endif4021 4022#if __ARCH__ >= 124023static inline __ATTRS_o_ai int4024vec_all_gt(__vector float __a, __vector float __b) {4025 int __cc;4026 __builtin_s390_vfchsbs(__a, __b, &__cc);4027 return __cc == 0;4028}4029#endif4030 4031static inline __ATTRS_o_ai int4032vec_all_gt(__vector double __a, __vector double __b) {4033 int __cc;4034 __builtin_s390_vfchdbs(__a, __b, &__cc);4035 return __cc == 0;4036}4037 4038/*-- vec_all_le -------------------------------------------------------------*/4039 4040static inline __ATTRS_o_ai int4041vec_all_le(__vector signed char __a, __vector signed char __b) {4042 int __cc;4043 __builtin_s390_vchbs(__a, __b, &__cc);4044 return __cc == 3;4045}4046 4047// This prototype is deprecated.4048static inline __ATTRS_o_ai int4049vec_all_le(__vector signed char __a, __vector __bool char __b) {4050 int __cc;4051 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);4052 return __cc == 3;4053}4054 4055// This prototype is deprecated.4056static inline __ATTRS_o_ai int4057vec_all_le(__vector __bool char __a, __vector signed char __b) {4058 int __cc;4059 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);4060 return __cc == 3;4061}4062 4063static inline __ATTRS_o_ai int4064vec_all_le(__vector unsigned char __a, __vector unsigned char __b) {4065 int __cc;4066 __builtin_s390_vchlbs(__a, __b, &__cc);4067 return __cc == 3;4068}4069 4070// This prototype is deprecated.4071static inline __ATTRS_o_ai int4072vec_all_le(__vector unsigned char __a, __vector __bool char __b) {4073 int __cc;4074 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);4075 return __cc == 3;4076}4077 4078// This prototype is deprecated.4079static inline __ATTRS_o_ai int4080vec_all_le(__vector __bool char __a, __vector unsigned char __b) {4081 int __cc;4082 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);4083 return __cc == 3;4084}4085 4086// This prototype is deprecated.4087static inline __ATTRS_o_ai int4088vec_all_le(__vector __bool char __a, __vector __bool char __b) {4089 int __cc;4090 __builtin_s390_vchlbs((__vector unsigned char)__a,4091 (__vector unsigned char)__b, &__cc);4092 return __cc == 3;4093}4094 4095static inline __ATTRS_o_ai int4096vec_all_le(__vector signed short __a, __vector signed short __b) {4097 int __cc;4098 __builtin_s390_vchhs(__a, __b, &__cc);4099 return __cc == 3;4100}4101 4102// This prototype is deprecated.4103static inline __ATTRS_o_ai int4104vec_all_le(__vector signed short __a, __vector __bool short __b) {4105 int __cc;4106 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);4107 return __cc == 3;4108}4109 4110// This prototype is deprecated.4111static inline __ATTRS_o_ai int4112vec_all_le(__vector __bool short __a, __vector signed short __b) {4113 int __cc;4114 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);4115 return __cc == 3;4116}4117 4118static inline __ATTRS_o_ai int4119vec_all_le(__vector unsigned short __a, __vector unsigned short __b) {4120 int __cc;4121 __builtin_s390_vchlhs(__a, __b, &__cc);4122 return __cc == 3;4123}4124 4125// This prototype is deprecated.4126static inline __ATTRS_o_ai int4127vec_all_le(__vector unsigned short __a, __vector __bool short __b) {4128 int __cc;4129 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);4130 return __cc == 3;4131}4132 4133// This prototype is deprecated.4134static inline __ATTRS_o_ai int4135vec_all_le(__vector __bool short __a, __vector unsigned short __b) {4136 int __cc;4137 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);4138 return __cc == 3;4139}4140 4141// This prototype is deprecated.4142static inline __ATTRS_o_ai int4143vec_all_le(__vector __bool short __a, __vector __bool short __b) {4144 int __cc;4145 __builtin_s390_vchlhs((__vector unsigned short)__a,4146 (__vector unsigned short)__b, &__cc);4147 return __cc == 3;4148}4149 4150static inline __ATTRS_o_ai int4151vec_all_le(__vector signed int __a, __vector signed int __b) {4152 int __cc;4153 __builtin_s390_vchfs(__a, __b, &__cc);4154 return __cc == 3;4155}4156 4157// This prototype is deprecated.4158static inline __ATTRS_o_ai int4159vec_all_le(__vector signed int __a, __vector __bool int __b) {4160 int __cc;4161 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);4162 return __cc == 3;4163}4164 4165// This prototype is deprecated.4166static inline __ATTRS_o_ai int4167vec_all_le(__vector __bool int __a, __vector signed int __b) {4168 int __cc;4169 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);4170 return __cc == 3;4171}4172 4173static inline __ATTRS_o_ai int4174vec_all_le(__vector unsigned int __a, __vector unsigned int __b) {4175 int __cc;4176 __builtin_s390_vchlfs(__a, __b, &__cc);4177 return __cc == 3;4178}4179 4180// This prototype is deprecated.4181static inline __ATTRS_o_ai int4182vec_all_le(__vector unsigned int __a, __vector __bool int __b) {4183 int __cc;4184 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);4185 return __cc == 3;4186}4187 4188// This prototype is deprecated.4189static inline __ATTRS_o_ai int4190vec_all_le(__vector __bool int __a, __vector unsigned int __b) {4191 int __cc;4192 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);4193 return __cc == 3;4194}4195 4196// This prototype is deprecated.4197static inline __ATTRS_o_ai int4198vec_all_le(__vector __bool int __a, __vector __bool int __b) {4199 int __cc;4200 __builtin_s390_vchlfs((__vector unsigned int)__a,4201 (__vector unsigned int)__b, &__cc);4202 return __cc == 3;4203}4204 4205static inline __ATTRS_o_ai int4206vec_all_le(__vector signed long long __a, __vector signed long long __b) {4207 int __cc;4208 __builtin_s390_vchgs(__a, __b, &__cc);4209 return __cc == 3;4210}4211 4212// This prototype is deprecated.4213static inline __ATTRS_o_ai int4214vec_all_le(__vector signed long long __a, __vector __bool long long __b) {4215 int __cc;4216 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);4217 return __cc == 3;4218}4219 4220// This prototype is deprecated.4221static inline __ATTRS_o_ai int4222vec_all_le(__vector __bool long long __a, __vector signed long long __b) {4223 int __cc;4224 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);4225 return __cc == 3;4226}4227 4228static inline __ATTRS_o_ai int4229vec_all_le(__vector unsigned long long __a, __vector unsigned long long __b) {4230 int __cc;4231 __builtin_s390_vchlgs(__a, __b, &__cc);4232 return __cc == 3;4233}4234 4235// This prototype is deprecated.4236static inline __ATTRS_o_ai int4237vec_all_le(__vector unsigned long long __a, __vector __bool long long __b) {4238 int __cc;4239 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);4240 return __cc == 3;4241}4242 4243// This prototype is deprecated.4244static inline __ATTRS_o_ai int4245vec_all_le(__vector __bool long long __a, __vector unsigned long long __b) {4246 int __cc;4247 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);4248 return __cc == 3;4249}4250 4251// This prototype is deprecated.4252static inline __ATTRS_o_ai int4253vec_all_le(__vector __bool long long __a, __vector __bool long long __b) {4254 int __cc;4255 __builtin_s390_vchlgs((__vector unsigned long long)__a,4256 (__vector unsigned long long)__b, &__cc);4257 return __cc == 3;4258}4259 4260#if __ARCH__ >= 154261static inline __ATTRS_o_ai int4262vec_all_le(__vector signed __int128 __a, __vector signed __int128 __b) {4263 int __cc;4264 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);4265 return __cc == 3;4266}4267 4268static inline __ATTRS_o_ai int4269vec_all_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {4270 int __cc;4271 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);4272 return __cc == 3;4273}4274#endif4275 4276#if __ARCH__ >= 124277static inline __ATTRS_o_ai int4278vec_all_le(__vector float __a, __vector float __b) {4279 int __cc;4280 __builtin_s390_vfchesbs(__b, __a, &__cc);4281 return __cc == 0;4282}4283#endif4284 4285static inline __ATTRS_o_ai int4286vec_all_le(__vector double __a, __vector double __b) {4287 int __cc;4288 __builtin_s390_vfchedbs(__b, __a, &__cc);4289 return __cc == 0;4290}4291 4292/*-- vec_all_lt -------------------------------------------------------------*/4293 4294static inline __ATTRS_o_ai int4295vec_all_lt(__vector signed char __a, __vector signed char __b) {4296 int __cc;4297 __builtin_s390_vchbs(__b, __a, &__cc);4298 return __cc == 0;4299}4300 4301// This prototype is deprecated.4302static inline __ATTRS_o_ai int4303vec_all_lt(__vector signed char __a, __vector __bool char __b) {4304 int __cc;4305 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);4306 return __cc == 0;4307}4308 4309// This prototype is deprecated.4310static inline __ATTRS_o_ai int4311vec_all_lt(__vector __bool char __a, __vector signed char __b) {4312 int __cc;4313 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);4314 return __cc == 0;4315}4316 4317static inline __ATTRS_o_ai int4318vec_all_lt(__vector unsigned char __a, __vector unsigned char __b) {4319 int __cc;4320 __builtin_s390_vchlbs(__b, __a, &__cc);4321 return __cc == 0;4322}4323 4324// This prototype is deprecated.4325static inline __ATTRS_o_ai int4326vec_all_lt(__vector unsigned char __a, __vector __bool char __b) {4327 int __cc;4328 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);4329 return __cc == 0;4330}4331 4332// This prototype is deprecated.4333static inline __ATTRS_o_ai int4334vec_all_lt(__vector __bool char __a, __vector unsigned char __b) {4335 int __cc;4336 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);4337 return __cc == 0;4338}4339 4340// This prototype is deprecated.4341static inline __ATTRS_o_ai int4342vec_all_lt(__vector __bool char __a, __vector __bool char __b) {4343 int __cc;4344 __builtin_s390_vchlbs((__vector unsigned char)__b,4345 (__vector unsigned char)__a, &__cc);4346 return __cc == 0;4347}4348 4349static inline __ATTRS_o_ai int4350vec_all_lt(__vector signed short __a, __vector signed short __b) {4351 int __cc;4352 __builtin_s390_vchhs(__b, __a, &__cc);4353 return __cc == 0;4354}4355 4356// This prototype is deprecated.4357static inline __ATTRS_o_ai int4358vec_all_lt(__vector signed short __a, __vector __bool short __b) {4359 int __cc;4360 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);4361 return __cc == 0;4362}4363 4364// This prototype is deprecated.4365static inline __ATTRS_o_ai int4366vec_all_lt(__vector __bool short __a, __vector signed short __b) {4367 int __cc;4368 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);4369 return __cc == 0;4370}4371 4372static inline __ATTRS_o_ai int4373vec_all_lt(__vector unsigned short __a, __vector unsigned short __b) {4374 int __cc;4375 __builtin_s390_vchlhs(__b, __a, &__cc);4376 return __cc == 0;4377}4378 4379// This prototype is deprecated.4380static inline __ATTRS_o_ai int4381vec_all_lt(__vector unsigned short __a, __vector __bool short __b) {4382 int __cc;4383 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);4384 return __cc == 0;4385}4386 4387// This prototype is deprecated.4388static inline __ATTRS_o_ai int4389vec_all_lt(__vector __bool short __a, __vector unsigned short __b) {4390 int __cc;4391 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);4392 return __cc == 0;4393}4394 4395// This prototype is deprecated.4396static inline __ATTRS_o_ai int4397vec_all_lt(__vector __bool short __a, __vector __bool short __b) {4398 int __cc;4399 __builtin_s390_vchlhs((__vector unsigned short)__b,4400 (__vector unsigned short)__a, &__cc);4401 return __cc == 0;4402}4403 4404static inline __ATTRS_o_ai int4405vec_all_lt(__vector signed int __a, __vector signed int __b) {4406 int __cc;4407 __builtin_s390_vchfs(__b, __a, &__cc);4408 return __cc == 0;4409}4410 4411// This prototype is deprecated.4412static inline __ATTRS_o_ai int4413vec_all_lt(__vector signed int __a, __vector __bool int __b) {4414 int __cc;4415 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);4416 return __cc == 0;4417}4418 4419// This prototype is deprecated.4420static inline __ATTRS_o_ai int4421vec_all_lt(__vector __bool int __a, __vector signed int __b) {4422 int __cc;4423 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);4424 return __cc == 0;4425}4426 4427static inline __ATTRS_o_ai int4428vec_all_lt(__vector unsigned int __a, __vector unsigned int __b) {4429 int __cc;4430 __builtin_s390_vchlfs(__b, __a, &__cc);4431 return __cc == 0;4432}4433 4434// This prototype is deprecated.4435static inline __ATTRS_o_ai int4436vec_all_lt(__vector unsigned int __a, __vector __bool int __b) {4437 int __cc;4438 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);4439 return __cc == 0;4440}4441 4442// This prototype is deprecated.4443static inline __ATTRS_o_ai int4444vec_all_lt(__vector __bool int __a, __vector unsigned int __b) {4445 int __cc;4446 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);4447 return __cc == 0;4448}4449 4450// This prototype is deprecated.4451static inline __ATTRS_o_ai int4452vec_all_lt(__vector __bool int __a, __vector __bool int __b) {4453 int __cc;4454 __builtin_s390_vchlfs((__vector unsigned int)__b,4455 (__vector unsigned int)__a, &__cc);4456 return __cc == 0;4457}4458 4459static inline __ATTRS_o_ai int4460vec_all_lt(__vector signed long long __a, __vector signed long long __b) {4461 int __cc;4462 __builtin_s390_vchgs(__b, __a, &__cc);4463 return __cc == 0;4464}4465 4466// This prototype is deprecated.4467static inline __ATTRS_o_ai int4468vec_all_lt(__vector signed long long __a, __vector __bool long long __b) {4469 int __cc;4470 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);4471 return __cc == 0;4472}4473 4474// This prototype is deprecated.4475static inline __ATTRS_o_ai int4476vec_all_lt(__vector __bool long long __a, __vector signed long long __b) {4477 int __cc;4478 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);4479 return __cc == 0;4480}4481 4482static inline __ATTRS_o_ai int4483vec_all_lt(__vector unsigned long long __a, __vector unsigned long long __b) {4484 int __cc;4485 __builtin_s390_vchlgs(__b, __a, &__cc);4486 return __cc == 0;4487}4488 4489// This prototype is deprecated.4490static inline __ATTRS_o_ai int4491vec_all_lt(__vector unsigned long long __a, __vector __bool long long __b) {4492 int __cc;4493 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);4494 return __cc == 0;4495}4496 4497// This prototype is deprecated.4498static inline __ATTRS_o_ai int4499vec_all_lt(__vector __bool long long __a, __vector unsigned long long __b) {4500 int __cc;4501 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);4502 return __cc == 0;4503}4504 4505// This prototype is deprecated.4506static inline __ATTRS_o_ai int4507vec_all_lt(__vector __bool long long __a, __vector __bool long long __b) {4508 int __cc;4509 __builtin_s390_vchlgs((__vector unsigned long long)__b,4510 (__vector unsigned long long)__a, &__cc);4511 return __cc == 0;4512}4513 4514#if __ARCH__ >= 154515static inline __ATTRS_o_ai int4516vec_all_lt(__vector signed __int128 __a, __vector signed __int128 __b) {4517 int __cc;4518 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);4519 return __cc == 0;4520}4521 4522static inline __ATTRS_o_ai int4523vec_all_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {4524 int __cc;4525 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);4526 return __cc == 0;4527}4528#endif4529 4530#if __ARCH__ >= 124531static inline __ATTRS_o_ai int4532vec_all_lt(__vector float __a, __vector float __b) {4533 int __cc;4534 __builtin_s390_vfchsbs(__b, __a, &__cc);4535 return __cc == 0;4536}4537#endif4538 4539static inline __ATTRS_o_ai int4540vec_all_lt(__vector double __a, __vector double __b) {4541 int __cc;4542 __builtin_s390_vfchdbs(__b, __a, &__cc);4543 return __cc == 0;4544}4545 4546/*-- vec_all_nge ------------------------------------------------------------*/4547 4548#if __ARCH__ >= 124549static inline __ATTRS_o_ai int4550vec_all_nge(__vector float __a, __vector float __b) {4551 int __cc;4552 __builtin_s390_vfchesbs(__a, __b, &__cc);4553 return __cc == 3;4554}4555#endif4556 4557static inline __ATTRS_o_ai int4558vec_all_nge(__vector double __a, __vector double __b) {4559 int __cc;4560 __builtin_s390_vfchedbs(__a, __b, &__cc);4561 return __cc == 3;4562}4563 4564/*-- vec_all_ngt ------------------------------------------------------------*/4565 4566#if __ARCH__ >= 124567static inline __ATTRS_o_ai int4568vec_all_ngt(__vector float __a, __vector float __b) {4569 int __cc;4570 __builtin_s390_vfchsbs(__a, __b, &__cc);4571 return __cc == 3;4572}4573#endif4574 4575static inline __ATTRS_o_ai int4576vec_all_ngt(__vector double __a, __vector double __b) {4577 int __cc;4578 __builtin_s390_vfchdbs(__a, __b, &__cc);4579 return __cc == 3;4580}4581 4582/*-- vec_all_nle ------------------------------------------------------------*/4583 4584#if __ARCH__ >= 124585static inline __ATTRS_o_ai int4586vec_all_nle(__vector float __a, __vector float __b) {4587 int __cc;4588 __builtin_s390_vfchesbs(__b, __a, &__cc);4589 return __cc == 3;4590}4591#endif4592 4593static inline __ATTRS_o_ai int4594vec_all_nle(__vector double __a, __vector double __b) {4595 int __cc;4596 __builtin_s390_vfchedbs(__b, __a, &__cc);4597 return __cc == 3;4598}4599 4600/*-- vec_all_nlt ------------------------------------------------------------*/4601 4602#if __ARCH__ >= 124603static inline __ATTRS_o_ai int4604vec_all_nlt(__vector float __a, __vector float __b) {4605 int __cc;4606 __builtin_s390_vfchsbs(__b, __a, &__cc);4607 return __cc == 3;4608}4609#endif4610 4611static inline __ATTRS_o_ai int4612vec_all_nlt(__vector double __a, __vector double __b) {4613 int __cc;4614 __builtin_s390_vfchdbs(__b, __a, &__cc);4615 return __cc == 3;4616}4617 4618/*-- vec_all_nan ------------------------------------------------------------*/4619 4620#if __ARCH__ >= 124621static inline __ATTRS_o_ai int4622vec_all_nan(__vector float __a) {4623 int __cc;4624 __builtin_s390_vftcisb(__a, 15, &__cc);4625 return __cc == 0;4626}4627#endif4628 4629static inline __ATTRS_o_ai int4630vec_all_nan(__vector double __a) {4631 int __cc;4632 __builtin_s390_vftcidb(__a, 15, &__cc);4633 return __cc == 0;4634}4635 4636/*-- vec_all_numeric --------------------------------------------------------*/4637 4638#if __ARCH__ >= 124639static inline __ATTRS_o_ai int4640vec_all_numeric(__vector float __a) {4641 int __cc;4642 __builtin_s390_vftcisb(__a, 15, &__cc);4643 return __cc == 3;4644}4645#endif4646 4647static inline __ATTRS_o_ai int4648vec_all_numeric(__vector double __a) {4649 int __cc;4650 __builtin_s390_vftcidb(__a, 15, &__cc);4651 return __cc == 3;4652}4653 4654/*-- vec_any_eq -------------------------------------------------------------*/4655 4656static inline __ATTRS_o_ai int4657vec_any_eq(__vector signed char __a, __vector signed char __b) {4658 int __cc;4659 __builtin_s390_vceqbs((__vector unsigned char)__a,4660 (__vector unsigned char)__b, &__cc);4661 return __cc <= 1;4662}4663 4664// This prototype is deprecated.4665static inline __ATTRS_o_ai int4666vec_any_eq(__vector signed char __a, __vector __bool char __b) {4667 int __cc;4668 __builtin_s390_vceqbs((__vector unsigned char)__a,4669 (__vector unsigned char)__b, &__cc);4670 return __cc <= 1;4671}4672 4673// This prototype is deprecated.4674static inline __ATTRS_o_ai int4675vec_any_eq(__vector __bool char __a, __vector signed char __b) {4676 int __cc;4677 __builtin_s390_vceqbs((__vector unsigned char)__a,4678 (__vector unsigned char)__b, &__cc);4679 return __cc <= 1;4680}4681 4682static inline __ATTRS_o_ai int4683vec_any_eq(__vector unsigned char __a, __vector unsigned char __b) {4684 int __cc;4685 __builtin_s390_vceqbs(__a, __b, &__cc);4686 return __cc <= 1;4687}4688 4689// This prototype is deprecated.4690static inline __ATTRS_o_ai int4691vec_any_eq(__vector unsigned char __a, __vector __bool char __b) {4692 int __cc;4693 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);4694 return __cc <= 1;4695}4696 4697// This prototype is deprecated.4698static inline __ATTRS_o_ai int4699vec_any_eq(__vector __bool char __a, __vector unsigned char __b) {4700 int __cc;4701 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);4702 return __cc <= 1;4703}4704 4705static inline __ATTRS_o_ai int4706vec_any_eq(__vector __bool char __a, __vector __bool char __b) {4707 int __cc;4708 __builtin_s390_vceqbs((__vector unsigned char)__a,4709 (__vector unsigned char)__b, &__cc);4710 return __cc <= 1;4711}4712 4713static inline __ATTRS_o_ai int4714vec_any_eq(__vector signed short __a, __vector signed short __b) {4715 int __cc;4716 __builtin_s390_vceqhs((__vector unsigned short)__a,4717 (__vector unsigned short)__b, &__cc);4718 return __cc <= 1;4719}4720 4721// This prototype is deprecated.4722static inline __ATTRS_o_ai int4723vec_any_eq(__vector signed short __a, __vector __bool short __b) {4724 int __cc;4725 __builtin_s390_vceqhs((__vector unsigned short)__a,4726 (__vector unsigned short)__b, &__cc);4727 return __cc <= 1;4728}4729 4730// This prototype is deprecated.4731static inline __ATTRS_o_ai int4732vec_any_eq(__vector __bool short __a, __vector signed short __b) {4733 int __cc;4734 __builtin_s390_vceqhs((__vector unsigned short)__a,4735 (__vector unsigned short)__b, &__cc);4736 return __cc <= 1;4737}4738 4739static inline __ATTRS_o_ai int4740vec_any_eq(__vector unsigned short __a, __vector unsigned short __b) {4741 int __cc;4742 __builtin_s390_vceqhs(__a, __b, &__cc);4743 return __cc <= 1;4744}4745 4746// This prototype is deprecated.4747static inline __ATTRS_o_ai int4748vec_any_eq(__vector unsigned short __a, __vector __bool short __b) {4749 int __cc;4750 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);4751 return __cc <= 1;4752}4753 4754// This prototype is deprecated.4755static inline __ATTRS_o_ai int4756vec_any_eq(__vector __bool short __a, __vector unsigned short __b) {4757 int __cc;4758 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);4759 return __cc <= 1;4760}4761 4762static inline __ATTRS_o_ai int4763vec_any_eq(__vector __bool short __a, __vector __bool short __b) {4764 int __cc;4765 __builtin_s390_vceqhs((__vector unsigned short)__a,4766 (__vector unsigned short)__b, &__cc);4767 return __cc <= 1;4768}4769 4770static inline __ATTRS_o_ai int4771vec_any_eq(__vector signed int __a, __vector signed int __b) {4772 int __cc;4773 __builtin_s390_vceqfs((__vector unsigned int)__a,4774 (__vector unsigned int)__b, &__cc);4775 return __cc <= 1;4776}4777 4778// This prototype is deprecated.4779static inline __ATTRS_o_ai int4780vec_any_eq(__vector signed int __a, __vector __bool int __b) {4781 int __cc;4782 __builtin_s390_vceqfs((__vector unsigned int)__a,4783 (__vector unsigned int)__b, &__cc);4784 return __cc <= 1;4785}4786 4787// This prototype is deprecated.4788static inline __ATTRS_o_ai int4789vec_any_eq(__vector __bool int __a, __vector signed int __b) {4790 int __cc;4791 __builtin_s390_vceqfs((__vector unsigned int)__a,4792 (__vector unsigned int)__b, &__cc);4793 return __cc <= 1;4794}4795 4796static inline __ATTRS_o_ai int4797vec_any_eq(__vector unsigned int __a, __vector unsigned int __b) {4798 int __cc;4799 __builtin_s390_vceqfs(__a, __b, &__cc);4800 return __cc <= 1;4801}4802 4803// This prototype is deprecated.4804static inline __ATTRS_o_ai int4805vec_any_eq(__vector unsigned int __a, __vector __bool int __b) {4806 int __cc;4807 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);4808 return __cc <= 1;4809}4810 4811// This prototype is deprecated.4812static inline __ATTRS_o_ai int4813vec_any_eq(__vector __bool int __a, __vector unsigned int __b) {4814 int __cc;4815 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);4816 return __cc <= 1;4817}4818 4819static inline __ATTRS_o_ai int4820vec_any_eq(__vector __bool int __a, __vector __bool int __b) {4821 int __cc;4822 __builtin_s390_vceqfs((__vector unsigned int)__a,4823 (__vector unsigned int)__b, &__cc);4824 return __cc <= 1;4825}4826 4827static inline __ATTRS_o_ai int4828vec_any_eq(__vector signed long long __a, __vector signed long long __b) {4829 int __cc;4830 __builtin_s390_vceqgs((__vector unsigned long long)__a,4831 (__vector unsigned long long)__b, &__cc);4832 return __cc <= 1;4833}4834 4835// This prototype is deprecated.4836static inline __ATTRS_o_ai int4837vec_any_eq(__vector signed long long __a, __vector __bool long long __b) {4838 int __cc;4839 __builtin_s390_vceqgs((__vector unsigned long long)__a,4840 (__vector unsigned long long)__b, &__cc);4841 return __cc <= 1;4842}4843 4844// This prototype is deprecated.4845static inline __ATTRS_o_ai int4846vec_any_eq(__vector __bool long long __a, __vector signed long long __b) {4847 int __cc;4848 __builtin_s390_vceqgs((__vector unsigned long long)__a,4849 (__vector unsigned long long)__b, &__cc);4850 return __cc <= 1;4851}4852 4853static inline __ATTRS_o_ai int4854vec_any_eq(__vector unsigned long long __a, __vector unsigned long long __b) {4855 int __cc;4856 __builtin_s390_vceqgs(__a, __b, &__cc);4857 return __cc <= 1;4858}4859 4860// This prototype is deprecated.4861static inline __ATTRS_o_ai int4862vec_any_eq(__vector unsigned long long __a, __vector __bool long long __b) {4863 int __cc;4864 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);4865 return __cc <= 1;4866}4867 4868// This prototype is deprecated.4869static inline __ATTRS_o_ai int4870vec_any_eq(__vector __bool long long __a, __vector unsigned long long __b) {4871 int __cc;4872 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);4873 return __cc <= 1;4874}4875 4876static inline __ATTRS_o_ai int4877vec_any_eq(__vector __bool long long __a, __vector __bool long long __b) {4878 int __cc;4879 __builtin_s390_vceqgs((__vector unsigned long long)__a,4880 (__vector unsigned long long)__b, &__cc);4881 return __cc <= 1;4882}4883 4884#if __ARCH__ >= 154885static inline __ATTRS_o_ai int4886vec_any_eq(__vector signed __int128 __a, __vector signed __int128 __b) {4887 int __cc;4888 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);4889 return __cc <= 1;4890}4891 4892static inline __ATTRS_o_ai int4893vec_any_eq(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {4894 int __cc;4895 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);4896 return __cc <= 1;4897}4898 4899static inline __ATTRS_o_ai int4900vec_any_eq(__vector __bool __int128 __a, __vector __bool __int128 __b) {4901 int __cc;4902 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);4903 return __cc <= 1;4904}4905#endif4906 4907#if __ARCH__ >= 124908static inline __ATTRS_o_ai int4909vec_any_eq(__vector float __a, __vector float __b) {4910 int __cc;4911 __builtin_s390_vfcesbs(__a, __b, &__cc);4912 return __cc <= 1;4913}4914#endif4915 4916static inline __ATTRS_o_ai int4917vec_any_eq(__vector double __a, __vector double __b) {4918 int __cc;4919 __builtin_s390_vfcedbs(__a, __b, &__cc);4920 return __cc <= 1;4921}4922 4923/*-- vec_any_ne -------------------------------------------------------------*/4924 4925static inline __ATTRS_o_ai int4926vec_any_ne(__vector signed char __a, __vector signed char __b) {4927 int __cc;4928 __builtin_s390_vceqbs((__vector unsigned char)__a,4929 (__vector unsigned char)__b, &__cc);4930 return __cc != 0;4931}4932 4933// This prototype is deprecated.4934static inline __ATTRS_o_ai int4935vec_any_ne(__vector signed char __a, __vector __bool char __b) {4936 int __cc;4937 __builtin_s390_vceqbs((__vector unsigned char)__a,4938 (__vector unsigned char)__b, &__cc);4939 return __cc != 0;4940}4941 4942// This prototype is deprecated.4943static inline __ATTRS_o_ai int4944vec_any_ne(__vector __bool char __a, __vector signed char __b) {4945 int __cc;4946 __builtin_s390_vceqbs((__vector unsigned char)__a,4947 (__vector unsigned char)__b, &__cc);4948 return __cc != 0;4949}4950 4951static inline __ATTRS_o_ai int4952vec_any_ne(__vector unsigned char __a, __vector unsigned char __b) {4953 int __cc;4954 __builtin_s390_vceqbs(__a, __b, &__cc);4955 return __cc != 0;4956}4957 4958// This prototype is deprecated.4959static inline __ATTRS_o_ai int4960vec_any_ne(__vector unsigned char __a, __vector __bool char __b) {4961 int __cc;4962 __builtin_s390_vceqbs(__a, (__vector unsigned char)__b, &__cc);4963 return __cc != 0;4964}4965 4966// This prototype is deprecated.4967static inline __ATTRS_o_ai int4968vec_any_ne(__vector __bool char __a, __vector unsigned char __b) {4969 int __cc;4970 __builtin_s390_vceqbs((__vector unsigned char)__a, __b, &__cc);4971 return __cc != 0;4972}4973 4974static inline __ATTRS_o_ai int4975vec_any_ne(__vector __bool char __a, __vector __bool char __b) {4976 int __cc;4977 __builtin_s390_vceqbs((__vector unsigned char)__a,4978 (__vector unsigned char)__b, &__cc);4979 return __cc != 0;4980}4981 4982static inline __ATTRS_o_ai int4983vec_any_ne(__vector signed short __a, __vector signed short __b) {4984 int __cc;4985 __builtin_s390_vceqhs((__vector unsigned short)__a,4986 (__vector unsigned short)__b, &__cc);4987 return __cc != 0;4988}4989 4990// This prototype is deprecated.4991static inline __ATTRS_o_ai int4992vec_any_ne(__vector signed short __a, __vector __bool short __b) {4993 int __cc;4994 __builtin_s390_vceqhs((__vector unsigned short)__a,4995 (__vector unsigned short)__b, &__cc);4996 return __cc != 0;4997}4998 4999// This prototype is deprecated.5000static inline __ATTRS_o_ai int5001vec_any_ne(__vector __bool short __a, __vector signed short __b) {5002 int __cc;5003 __builtin_s390_vceqhs((__vector unsigned short)__a,5004 (__vector unsigned short)__b, &__cc);5005 return __cc != 0;5006}5007 5008static inline __ATTRS_o_ai int5009vec_any_ne(__vector unsigned short __a, __vector unsigned short __b) {5010 int __cc;5011 __builtin_s390_vceqhs(__a, __b, &__cc);5012 return __cc != 0;5013}5014 5015// This prototype is deprecated.5016static inline __ATTRS_o_ai int5017vec_any_ne(__vector unsigned short __a, __vector __bool short __b) {5018 int __cc;5019 __builtin_s390_vceqhs(__a, (__vector unsigned short)__b, &__cc);5020 return __cc != 0;5021}5022 5023// This prototype is deprecated.5024static inline __ATTRS_o_ai int5025vec_any_ne(__vector __bool short __a, __vector unsigned short __b) {5026 int __cc;5027 __builtin_s390_vceqhs((__vector unsigned short)__a, __b, &__cc);5028 return __cc != 0;5029}5030 5031static inline __ATTRS_o_ai int5032vec_any_ne(__vector __bool short __a, __vector __bool short __b) {5033 int __cc;5034 __builtin_s390_vceqhs((__vector unsigned short)__a,5035 (__vector unsigned short)__b, &__cc);5036 return __cc != 0;5037}5038 5039static inline __ATTRS_o_ai int5040vec_any_ne(__vector signed int __a, __vector signed int __b) {5041 int __cc;5042 __builtin_s390_vceqfs((__vector unsigned int)__a,5043 (__vector unsigned int)__b, &__cc);5044 return __cc != 0;5045}5046 5047// This prototype is deprecated.5048static inline __ATTRS_o_ai int5049vec_any_ne(__vector signed int __a, __vector __bool int __b) {5050 int __cc;5051 __builtin_s390_vceqfs((__vector unsigned int)__a,5052 (__vector unsigned int)__b, &__cc);5053 return __cc != 0;5054}5055 5056// This prototype is deprecated.5057static inline __ATTRS_o_ai int5058vec_any_ne(__vector __bool int __a, __vector signed int __b) {5059 int __cc;5060 __builtin_s390_vceqfs((__vector unsigned int)__a,5061 (__vector unsigned int)__b, &__cc);5062 return __cc != 0;5063}5064 5065static inline __ATTRS_o_ai int5066vec_any_ne(__vector unsigned int __a, __vector unsigned int __b) {5067 int __cc;5068 __builtin_s390_vceqfs(__a, __b, &__cc);5069 return __cc != 0;5070}5071 5072// This prototype is deprecated.5073static inline __ATTRS_o_ai int5074vec_any_ne(__vector unsigned int __a, __vector __bool int __b) {5075 int __cc;5076 __builtin_s390_vceqfs(__a, (__vector unsigned int)__b, &__cc);5077 return __cc != 0;5078}5079 5080// This prototype is deprecated.5081static inline __ATTRS_o_ai int5082vec_any_ne(__vector __bool int __a, __vector unsigned int __b) {5083 int __cc;5084 __builtin_s390_vceqfs((__vector unsigned int)__a, __b, &__cc);5085 return __cc != 0;5086}5087 5088static inline __ATTRS_o_ai int5089vec_any_ne(__vector __bool int __a, __vector __bool int __b) {5090 int __cc;5091 __builtin_s390_vceqfs((__vector unsigned int)__a,5092 (__vector unsigned int)__b, &__cc);5093 return __cc != 0;5094}5095 5096static inline __ATTRS_o_ai int5097vec_any_ne(__vector signed long long __a, __vector signed long long __b) {5098 int __cc;5099 __builtin_s390_vceqgs((__vector unsigned long long)__a,5100 (__vector unsigned long long)__b, &__cc);5101 return __cc != 0;5102}5103 5104// This prototype is deprecated.5105static inline __ATTRS_o_ai int5106vec_any_ne(__vector signed long long __a, __vector __bool long long __b) {5107 int __cc;5108 __builtin_s390_vceqgs((__vector unsigned long long)__a,5109 (__vector unsigned long long)__b, &__cc);5110 return __cc != 0;5111}5112 5113// This prototype is deprecated.5114static inline __ATTRS_o_ai int5115vec_any_ne(__vector __bool long long __a, __vector signed long long __b) {5116 int __cc;5117 __builtin_s390_vceqgs((__vector unsigned long long)__a,5118 (__vector unsigned long long)__b, &__cc);5119 return __cc != 0;5120}5121 5122static inline __ATTRS_o_ai int5123vec_any_ne(__vector unsigned long long __a, __vector unsigned long long __b) {5124 int __cc;5125 __builtin_s390_vceqgs(__a, __b, &__cc);5126 return __cc != 0;5127}5128 5129// This prototype is deprecated.5130static inline __ATTRS_o_ai int5131vec_any_ne(__vector unsigned long long __a, __vector __bool long long __b) {5132 int __cc;5133 __builtin_s390_vceqgs(__a, (__vector unsigned long long)__b, &__cc);5134 return __cc != 0;5135}5136 5137// This prototype is deprecated.5138static inline __ATTRS_o_ai int5139vec_any_ne(__vector __bool long long __a, __vector unsigned long long __b) {5140 int __cc;5141 __builtin_s390_vceqgs((__vector unsigned long long)__a, __b, &__cc);5142 return __cc != 0;5143}5144 5145static inline __ATTRS_o_ai int5146vec_any_ne(__vector __bool long long __a, __vector __bool long long __b) {5147 int __cc;5148 __builtin_s390_vceqgs((__vector unsigned long long)__a,5149 (__vector unsigned long long)__b, &__cc);5150 return __cc != 0;5151}5152 5153#if __ARCH__ >= 155154static inline __ATTRS_o_ai int5155vec_any_ne(__vector signed __int128 __a, __vector signed __int128 __b) {5156 int __cc;5157 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);5158 return __cc != 0;5159}5160 5161static inline __ATTRS_o_ai int5162vec_any_ne(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {5163 int __cc;5164 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);5165 return __cc != 0;5166}5167 5168static inline __ATTRS_o_ai int5169vec_any_ne(__vector __bool __int128 __a, __vector __bool __int128 __b) {5170 int __cc;5171 __builtin_s390_vceqqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);5172 return __cc != 0;5173}5174#endif5175 5176#if __ARCH__ >= 125177static inline __ATTRS_o_ai int5178vec_any_ne(__vector float __a, __vector float __b) {5179 int __cc;5180 __builtin_s390_vfcesbs(__a, __b, &__cc);5181 return __cc != 0;5182}5183#endif5184 5185static inline __ATTRS_o_ai int5186vec_any_ne(__vector double __a, __vector double __b) {5187 int __cc;5188 __builtin_s390_vfcedbs(__a, __b, &__cc);5189 return __cc != 0;5190}5191 5192/*-- vec_any_ge -------------------------------------------------------------*/5193 5194static inline __ATTRS_o_ai int5195vec_any_ge(__vector signed char __a, __vector signed char __b) {5196 int __cc;5197 __builtin_s390_vchbs(__b, __a, &__cc);5198 return __cc != 0;5199}5200 5201// This prototype is deprecated.5202static inline __ATTRS_o_ai int5203vec_any_ge(__vector signed char __a, __vector __bool char __b) {5204 int __cc;5205 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);5206 return __cc != 0;5207}5208 5209// This prototype is deprecated.5210static inline __ATTRS_o_ai int5211vec_any_ge(__vector __bool char __a, __vector signed char __b) {5212 int __cc;5213 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);5214 return __cc != 0;5215}5216 5217static inline __ATTRS_o_ai int5218vec_any_ge(__vector unsigned char __a, __vector unsigned char __b) {5219 int __cc;5220 __builtin_s390_vchlbs(__b, __a, &__cc);5221 return __cc != 0;5222}5223 5224// This prototype is deprecated.5225static inline __ATTRS_o_ai int5226vec_any_ge(__vector unsigned char __a, __vector __bool char __b) {5227 int __cc;5228 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);5229 return __cc != 0;5230}5231 5232// This prototype is deprecated.5233static inline __ATTRS_o_ai int5234vec_any_ge(__vector __bool char __a, __vector unsigned char __b) {5235 int __cc;5236 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);5237 return __cc != 0;5238}5239 5240// This prototype is deprecated.5241static inline __ATTRS_o_ai int5242vec_any_ge(__vector __bool char __a, __vector __bool char __b) {5243 int __cc;5244 __builtin_s390_vchlbs((__vector unsigned char)__b,5245 (__vector unsigned char)__a, &__cc);5246 return __cc != 0;5247}5248 5249static inline __ATTRS_o_ai int5250vec_any_ge(__vector signed short __a, __vector signed short __b) {5251 int __cc;5252 __builtin_s390_vchhs(__b, __a, &__cc);5253 return __cc != 0;5254}5255 5256// This prototype is deprecated.5257static inline __ATTRS_o_ai int5258vec_any_ge(__vector signed short __a, __vector __bool short __b) {5259 int __cc;5260 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);5261 return __cc != 0;5262}5263 5264// This prototype is deprecated.5265static inline __ATTRS_o_ai int5266vec_any_ge(__vector __bool short __a, __vector signed short __b) {5267 int __cc;5268 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);5269 return __cc != 0;5270}5271 5272static inline __ATTRS_o_ai int5273vec_any_ge(__vector unsigned short __a, __vector unsigned short __b) {5274 int __cc;5275 __builtin_s390_vchlhs(__b, __a, &__cc);5276 return __cc != 0;5277}5278 5279// This prototype is deprecated.5280static inline __ATTRS_o_ai int5281vec_any_ge(__vector unsigned short __a, __vector __bool short __b) {5282 int __cc;5283 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);5284 return __cc != 0;5285}5286 5287// This prototype is deprecated.5288static inline __ATTRS_o_ai int5289vec_any_ge(__vector __bool short __a, __vector unsigned short __b) {5290 int __cc;5291 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);5292 return __cc != 0;5293}5294 5295// This prototype is deprecated.5296static inline __ATTRS_o_ai int5297vec_any_ge(__vector __bool short __a, __vector __bool short __b) {5298 int __cc;5299 __builtin_s390_vchlhs((__vector unsigned short)__b,5300 (__vector unsigned short)__a, &__cc);5301 return __cc != 0;5302}5303 5304static inline __ATTRS_o_ai int5305vec_any_ge(__vector signed int __a, __vector signed int __b) {5306 int __cc;5307 __builtin_s390_vchfs(__b, __a, &__cc);5308 return __cc != 0;5309}5310 5311// This prototype is deprecated.5312static inline __ATTRS_o_ai int5313vec_any_ge(__vector signed int __a, __vector __bool int __b) {5314 int __cc;5315 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);5316 return __cc != 0;5317}5318 5319// This prototype is deprecated.5320static inline __ATTRS_o_ai int5321vec_any_ge(__vector __bool int __a, __vector signed int __b) {5322 int __cc;5323 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);5324 return __cc != 0;5325}5326 5327static inline __ATTRS_o_ai int5328vec_any_ge(__vector unsigned int __a, __vector unsigned int __b) {5329 int __cc;5330 __builtin_s390_vchlfs(__b, __a, &__cc);5331 return __cc != 0;5332}5333 5334// This prototype is deprecated.5335static inline __ATTRS_o_ai int5336vec_any_ge(__vector unsigned int __a, __vector __bool int __b) {5337 int __cc;5338 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);5339 return __cc != 0;5340}5341 5342// This prototype is deprecated.5343static inline __ATTRS_o_ai int5344vec_any_ge(__vector __bool int __a, __vector unsigned int __b) {5345 int __cc;5346 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);5347 return __cc != 0;5348}5349 5350// This prototype is deprecated.5351static inline __ATTRS_o_ai int5352vec_any_ge(__vector __bool int __a, __vector __bool int __b) {5353 int __cc;5354 __builtin_s390_vchlfs((__vector unsigned int)__b,5355 (__vector unsigned int)__a, &__cc);5356 return __cc != 0;5357}5358 5359static inline __ATTRS_o_ai int5360vec_any_ge(__vector signed long long __a, __vector signed long long __b) {5361 int __cc;5362 __builtin_s390_vchgs(__b, __a, &__cc);5363 return __cc != 0;5364}5365 5366// This prototype is deprecated.5367static inline __ATTRS_o_ai int5368vec_any_ge(__vector signed long long __a, __vector __bool long long __b) {5369 int __cc;5370 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);5371 return __cc != 0;5372}5373 5374// This prototype is deprecated.5375static inline __ATTRS_o_ai int5376vec_any_ge(__vector __bool long long __a, __vector signed long long __b) {5377 int __cc;5378 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);5379 return __cc != 0;5380}5381 5382static inline __ATTRS_o_ai int5383vec_any_ge(__vector unsigned long long __a, __vector unsigned long long __b) {5384 int __cc;5385 __builtin_s390_vchlgs(__b, __a, &__cc);5386 return __cc != 0;5387}5388 5389// This prototype is deprecated.5390static inline __ATTRS_o_ai int5391vec_any_ge(__vector unsigned long long __a, __vector __bool long long __b) {5392 int __cc;5393 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);5394 return __cc != 0;5395}5396 5397// This prototype is deprecated.5398static inline __ATTRS_o_ai int5399vec_any_ge(__vector __bool long long __a, __vector unsigned long long __b) {5400 int __cc;5401 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);5402 return __cc != 0;5403}5404 5405// This prototype is deprecated.5406static inline __ATTRS_o_ai int5407vec_any_ge(__vector __bool long long __a, __vector __bool long long __b) {5408 int __cc;5409 __builtin_s390_vchlgs((__vector unsigned long long)__b,5410 (__vector unsigned long long)__a, &__cc);5411 return __cc != 0;5412}5413 5414#if __ARCH__ >= 155415static inline __ATTRS_o_ai int5416vec_any_ge(__vector signed __int128 __a, __vector signed __int128 __b) {5417 int __cc;5418 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);5419 return __cc != 0;5420}5421 5422static inline __ATTRS_o_ai int5423vec_any_ge(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {5424 int __cc;5425 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);5426 return __cc != 0;5427}5428#endif5429 5430#if __ARCH__ >= 125431static inline __ATTRS_o_ai int5432vec_any_ge(__vector float __a, __vector float __b) {5433 int __cc;5434 __builtin_s390_vfchesbs(__a, __b, &__cc);5435 return __cc <= 1;5436}5437#endif5438 5439static inline __ATTRS_o_ai int5440vec_any_ge(__vector double __a, __vector double __b) {5441 int __cc;5442 __builtin_s390_vfchedbs(__a, __b, &__cc);5443 return __cc <= 1;5444}5445 5446/*-- vec_any_gt -------------------------------------------------------------*/5447 5448static inline __ATTRS_o_ai int5449vec_any_gt(__vector signed char __a, __vector signed char __b) {5450 int __cc;5451 __builtin_s390_vchbs(__a, __b, &__cc);5452 return __cc <= 1;5453}5454 5455// This prototype is deprecated.5456static inline __ATTRS_o_ai int5457vec_any_gt(__vector signed char __a, __vector __bool char __b) {5458 int __cc;5459 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);5460 return __cc <= 1;5461}5462 5463// This prototype is deprecated.5464static inline __ATTRS_o_ai int5465vec_any_gt(__vector __bool char __a, __vector signed char __b) {5466 int __cc;5467 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);5468 return __cc <= 1;5469}5470 5471static inline __ATTRS_o_ai int5472vec_any_gt(__vector unsigned char __a, __vector unsigned char __b) {5473 int __cc;5474 __builtin_s390_vchlbs(__a, __b, &__cc);5475 return __cc <= 1;5476}5477 5478// This prototype is deprecated.5479static inline __ATTRS_o_ai int5480vec_any_gt(__vector unsigned char __a, __vector __bool char __b) {5481 int __cc;5482 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);5483 return __cc <= 1;5484}5485 5486// This prototype is deprecated.5487static inline __ATTRS_o_ai int5488vec_any_gt(__vector __bool char __a, __vector unsigned char __b) {5489 int __cc;5490 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);5491 return __cc <= 1;5492}5493 5494// This prototype is deprecated.5495static inline __ATTRS_o_ai int5496vec_any_gt(__vector __bool char __a, __vector __bool char __b) {5497 int __cc;5498 __builtin_s390_vchlbs((__vector unsigned char)__a,5499 (__vector unsigned char)__b, &__cc);5500 return __cc <= 1;5501}5502 5503static inline __ATTRS_o_ai int5504vec_any_gt(__vector signed short __a, __vector signed short __b) {5505 int __cc;5506 __builtin_s390_vchhs(__a, __b, &__cc);5507 return __cc <= 1;5508}5509 5510// This prototype is deprecated.5511static inline __ATTRS_o_ai int5512vec_any_gt(__vector signed short __a, __vector __bool short __b) {5513 int __cc;5514 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);5515 return __cc <= 1;5516}5517 5518// This prototype is deprecated.5519static inline __ATTRS_o_ai int5520vec_any_gt(__vector __bool short __a, __vector signed short __b) {5521 int __cc;5522 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);5523 return __cc <= 1;5524}5525 5526static inline __ATTRS_o_ai int5527vec_any_gt(__vector unsigned short __a, __vector unsigned short __b) {5528 int __cc;5529 __builtin_s390_vchlhs(__a, __b, &__cc);5530 return __cc <= 1;5531}5532 5533// This prototype is deprecated.5534static inline __ATTRS_o_ai int5535vec_any_gt(__vector unsigned short __a, __vector __bool short __b) {5536 int __cc;5537 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);5538 return __cc <= 1;5539}5540 5541// This prototype is deprecated.5542static inline __ATTRS_o_ai int5543vec_any_gt(__vector __bool short __a, __vector unsigned short __b) {5544 int __cc;5545 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);5546 return __cc <= 1;5547}5548 5549// This prototype is deprecated.5550static inline __ATTRS_o_ai int5551vec_any_gt(__vector __bool short __a, __vector __bool short __b) {5552 int __cc;5553 __builtin_s390_vchlhs((__vector unsigned short)__a,5554 (__vector unsigned short)__b, &__cc);5555 return __cc <= 1;5556}5557 5558static inline __ATTRS_o_ai int5559vec_any_gt(__vector signed int __a, __vector signed int __b) {5560 int __cc;5561 __builtin_s390_vchfs(__a, __b, &__cc);5562 return __cc <= 1;5563}5564 5565// This prototype is deprecated.5566static inline __ATTRS_o_ai int5567vec_any_gt(__vector signed int __a, __vector __bool int __b) {5568 int __cc;5569 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);5570 return __cc <= 1;5571}5572 5573// This prototype is deprecated.5574static inline __ATTRS_o_ai int5575vec_any_gt(__vector __bool int __a, __vector signed int __b) {5576 int __cc;5577 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);5578 return __cc <= 1;5579}5580 5581static inline __ATTRS_o_ai int5582vec_any_gt(__vector unsigned int __a, __vector unsigned int __b) {5583 int __cc;5584 __builtin_s390_vchlfs(__a, __b, &__cc);5585 return __cc <= 1;5586}5587 5588// This prototype is deprecated.5589static inline __ATTRS_o_ai int5590vec_any_gt(__vector unsigned int __a, __vector __bool int __b) {5591 int __cc;5592 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);5593 return __cc <= 1;5594}5595 5596// This prototype is deprecated.5597static inline __ATTRS_o_ai int5598vec_any_gt(__vector __bool int __a, __vector unsigned int __b) {5599 int __cc;5600 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);5601 return __cc <= 1;5602}5603 5604// This prototype is deprecated.5605static inline __ATTRS_o_ai int5606vec_any_gt(__vector __bool int __a, __vector __bool int __b) {5607 int __cc;5608 __builtin_s390_vchlfs((__vector unsigned int)__a,5609 (__vector unsigned int)__b, &__cc);5610 return __cc <= 1;5611}5612 5613static inline __ATTRS_o_ai int5614vec_any_gt(__vector signed long long __a, __vector signed long long __b) {5615 int __cc;5616 __builtin_s390_vchgs(__a, __b, &__cc);5617 return __cc <= 1;5618}5619 5620// This prototype is deprecated.5621static inline __ATTRS_o_ai int5622vec_any_gt(__vector signed long long __a, __vector __bool long long __b) {5623 int __cc;5624 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);5625 return __cc <= 1;5626}5627 5628// This prototype is deprecated.5629static inline __ATTRS_o_ai int5630vec_any_gt(__vector __bool long long __a, __vector signed long long __b) {5631 int __cc;5632 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);5633 return __cc <= 1;5634}5635 5636static inline __ATTRS_o_ai int5637vec_any_gt(__vector unsigned long long __a, __vector unsigned long long __b) {5638 int __cc;5639 __builtin_s390_vchlgs(__a, __b, &__cc);5640 return __cc <= 1;5641}5642 5643// This prototype is deprecated.5644static inline __ATTRS_o_ai int5645vec_any_gt(__vector unsigned long long __a, __vector __bool long long __b) {5646 int __cc;5647 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);5648 return __cc <= 1;5649}5650 5651// This prototype is deprecated.5652static inline __ATTRS_o_ai int5653vec_any_gt(__vector __bool long long __a, __vector unsigned long long __b) {5654 int __cc;5655 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);5656 return __cc <= 1;5657}5658 5659// This prototype is deprecated.5660static inline __ATTRS_o_ai int5661vec_any_gt(__vector __bool long long __a, __vector __bool long long __b) {5662 int __cc;5663 __builtin_s390_vchlgs((__vector unsigned long long)__a,5664 (__vector unsigned long long)__b, &__cc);5665 return __cc <= 1;5666}5667 5668#if __ARCH__ >= 155669static inline __ATTRS_o_ai int5670vec_any_gt(__vector signed __int128 __a, __vector signed __int128 __b) {5671 int __cc;5672 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);5673 return __cc <= 1;5674}5675 5676static inline __ATTRS_o_ai int5677vec_any_gt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {5678 int __cc;5679 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);5680 return __cc <= 1;5681}5682#endif5683 5684#if __ARCH__ >= 125685static inline __ATTRS_o_ai int5686vec_any_gt(__vector float __a, __vector float __b) {5687 int __cc;5688 __builtin_s390_vfchsbs(__a, __b, &__cc);5689 return __cc <= 1;5690}5691#endif5692 5693static inline __ATTRS_o_ai int5694vec_any_gt(__vector double __a, __vector double __b) {5695 int __cc;5696 __builtin_s390_vfchdbs(__a, __b, &__cc);5697 return __cc <= 1;5698}5699 5700/*-- vec_any_le -------------------------------------------------------------*/5701 5702static inline __ATTRS_o_ai int5703vec_any_le(__vector signed char __a, __vector signed char __b) {5704 int __cc;5705 __builtin_s390_vchbs(__a, __b, &__cc);5706 return __cc != 0;5707}5708 5709// This prototype is deprecated.5710static inline __ATTRS_o_ai int5711vec_any_le(__vector signed char __a, __vector __bool char __b) {5712 int __cc;5713 __builtin_s390_vchbs(__a, (__vector signed char)__b, &__cc);5714 return __cc != 0;5715}5716 5717// This prototype is deprecated.5718static inline __ATTRS_o_ai int5719vec_any_le(__vector __bool char __a, __vector signed char __b) {5720 int __cc;5721 __builtin_s390_vchbs((__vector signed char)__a, __b, &__cc);5722 return __cc != 0;5723}5724 5725static inline __ATTRS_o_ai int5726vec_any_le(__vector unsigned char __a, __vector unsigned char __b) {5727 int __cc;5728 __builtin_s390_vchlbs(__a, __b, &__cc);5729 return __cc != 0;5730}5731 5732// This prototype is deprecated.5733static inline __ATTRS_o_ai int5734vec_any_le(__vector unsigned char __a, __vector __bool char __b) {5735 int __cc;5736 __builtin_s390_vchlbs(__a, (__vector unsigned char)__b, &__cc);5737 return __cc != 0;5738}5739 5740// This prototype is deprecated.5741static inline __ATTRS_o_ai int5742vec_any_le(__vector __bool char __a, __vector unsigned char __b) {5743 int __cc;5744 __builtin_s390_vchlbs((__vector unsigned char)__a, __b, &__cc);5745 return __cc != 0;5746}5747 5748// This prototype is deprecated.5749static inline __ATTRS_o_ai int5750vec_any_le(__vector __bool char __a, __vector __bool char __b) {5751 int __cc;5752 __builtin_s390_vchlbs((__vector unsigned char)__a,5753 (__vector unsigned char)__b, &__cc);5754 return __cc != 0;5755}5756 5757static inline __ATTRS_o_ai int5758vec_any_le(__vector signed short __a, __vector signed short __b) {5759 int __cc;5760 __builtin_s390_vchhs(__a, __b, &__cc);5761 return __cc != 0;5762}5763 5764// This prototype is deprecated.5765static inline __ATTRS_o_ai int5766vec_any_le(__vector signed short __a, __vector __bool short __b) {5767 int __cc;5768 __builtin_s390_vchhs(__a, (__vector signed short)__b, &__cc);5769 return __cc != 0;5770}5771 5772// This prototype is deprecated.5773static inline __ATTRS_o_ai int5774vec_any_le(__vector __bool short __a, __vector signed short __b) {5775 int __cc;5776 __builtin_s390_vchhs((__vector signed short)__a, __b, &__cc);5777 return __cc != 0;5778}5779 5780static inline __ATTRS_o_ai int5781vec_any_le(__vector unsigned short __a, __vector unsigned short __b) {5782 int __cc;5783 __builtin_s390_vchlhs(__a, __b, &__cc);5784 return __cc != 0;5785}5786 5787// This prototype is deprecated.5788static inline __ATTRS_o_ai int5789vec_any_le(__vector unsigned short __a, __vector __bool short __b) {5790 int __cc;5791 __builtin_s390_vchlhs(__a, (__vector unsigned short)__b, &__cc);5792 return __cc != 0;5793}5794 5795// This prototype is deprecated.5796static inline __ATTRS_o_ai int5797vec_any_le(__vector __bool short __a, __vector unsigned short __b) {5798 int __cc;5799 __builtin_s390_vchlhs((__vector unsigned short)__a, __b, &__cc);5800 return __cc != 0;5801}5802 5803// This prototype is deprecated.5804static inline __ATTRS_o_ai int5805vec_any_le(__vector __bool short __a, __vector __bool short __b) {5806 int __cc;5807 __builtin_s390_vchlhs((__vector unsigned short)__a,5808 (__vector unsigned short)__b, &__cc);5809 return __cc != 0;5810}5811 5812static inline __ATTRS_o_ai int5813vec_any_le(__vector signed int __a, __vector signed int __b) {5814 int __cc;5815 __builtin_s390_vchfs(__a, __b, &__cc);5816 return __cc != 0;5817}5818 5819// This prototype is deprecated.5820static inline __ATTRS_o_ai int5821vec_any_le(__vector signed int __a, __vector __bool int __b) {5822 int __cc;5823 __builtin_s390_vchfs(__a, (__vector signed int)__b, &__cc);5824 return __cc != 0;5825}5826 5827// This prototype is deprecated.5828static inline __ATTRS_o_ai int5829vec_any_le(__vector __bool int __a, __vector signed int __b) {5830 int __cc;5831 __builtin_s390_vchfs((__vector signed int)__a, __b, &__cc);5832 return __cc != 0;5833}5834 5835static inline __ATTRS_o_ai int5836vec_any_le(__vector unsigned int __a, __vector unsigned int __b) {5837 int __cc;5838 __builtin_s390_vchlfs(__a, __b, &__cc);5839 return __cc != 0;5840}5841 5842// This prototype is deprecated.5843static inline __ATTRS_o_ai int5844vec_any_le(__vector unsigned int __a, __vector __bool int __b) {5845 int __cc;5846 __builtin_s390_vchlfs(__a, (__vector unsigned int)__b, &__cc);5847 return __cc != 0;5848}5849 5850// This prototype is deprecated.5851static inline __ATTRS_o_ai int5852vec_any_le(__vector __bool int __a, __vector unsigned int __b) {5853 int __cc;5854 __builtin_s390_vchlfs((__vector unsigned int)__a, __b, &__cc);5855 return __cc != 0;5856}5857 5858// This prototype is deprecated.5859static inline __ATTRS_o_ai int5860vec_any_le(__vector __bool int __a, __vector __bool int __b) {5861 int __cc;5862 __builtin_s390_vchlfs((__vector unsigned int)__a,5863 (__vector unsigned int)__b, &__cc);5864 return __cc != 0;5865}5866 5867static inline __ATTRS_o_ai int5868vec_any_le(__vector signed long long __a, __vector signed long long __b) {5869 int __cc;5870 __builtin_s390_vchgs(__a, __b, &__cc);5871 return __cc != 0;5872}5873 5874// This prototype is deprecated.5875static inline __ATTRS_o_ai int5876vec_any_le(__vector signed long long __a, __vector __bool long long __b) {5877 int __cc;5878 __builtin_s390_vchgs(__a, (__vector signed long long)__b, &__cc);5879 return __cc != 0;5880}5881 5882// This prototype is deprecated.5883static inline __ATTRS_o_ai int5884vec_any_le(__vector __bool long long __a, __vector signed long long __b) {5885 int __cc;5886 __builtin_s390_vchgs((__vector signed long long)__a, __b, &__cc);5887 return __cc != 0;5888}5889 5890static inline __ATTRS_o_ai int5891vec_any_le(__vector unsigned long long __a, __vector unsigned long long __b) {5892 int __cc;5893 __builtin_s390_vchlgs(__a, __b, &__cc);5894 return __cc != 0;5895}5896 5897// This prototype is deprecated.5898static inline __ATTRS_o_ai int5899vec_any_le(__vector unsigned long long __a, __vector __bool long long __b) {5900 int __cc;5901 __builtin_s390_vchlgs(__a, (__vector unsigned long long)__b, &__cc);5902 return __cc != 0;5903}5904 5905// This prototype is deprecated.5906static inline __ATTRS_o_ai int5907vec_any_le(__vector __bool long long __a, __vector unsigned long long __b) {5908 int __cc;5909 __builtin_s390_vchlgs((__vector unsigned long long)__a, __b, &__cc);5910 return __cc != 0;5911}5912 5913// This prototype is deprecated.5914static inline __ATTRS_o_ai int5915vec_any_le(__vector __bool long long __a, __vector __bool long long __b) {5916 int __cc;5917 __builtin_s390_vchlgs((__vector unsigned long long)__a,5918 (__vector unsigned long long)__b, &__cc);5919 return __cc != 0;5920}5921 5922#if __ARCH__ >= 155923static inline __ATTRS_o_ai int5924vec_any_le(__vector signed __int128 __a, __vector signed __int128 __b) {5925 int __cc;5926 __builtin_s390_vchqs((signed __int128)__a, (signed __int128)__b, &__cc);5927 return __cc != 0;5928}5929 5930static inline __ATTRS_o_ai int5931vec_any_le(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {5932 int __cc;5933 __builtin_s390_vchlqs((unsigned __int128)__a, (unsigned __int128)__b, &__cc);5934 return __cc != 0;5935}5936#endif5937 5938#if __ARCH__ >= 125939static inline __ATTRS_o_ai int5940vec_any_le(__vector float __a, __vector float __b) {5941 int __cc;5942 __builtin_s390_vfchesbs(__b, __a, &__cc);5943 return __cc <= 1;5944}5945#endif5946 5947static inline __ATTRS_o_ai int5948vec_any_le(__vector double __a, __vector double __b) {5949 int __cc;5950 __builtin_s390_vfchedbs(__b, __a, &__cc);5951 return __cc <= 1;5952}5953 5954/*-- vec_any_lt -------------------------------------------------------------*/5955 5956static inline __ATTRS_o_ai int5957vec_any_lt(__vector signed char __a, __vector signed char __b) {5958 int __cc;5959 __builtin_s390_vchbs(__b, __a, &__cc);5960 return __cc <= 1;5961}5962 5963// This prototype is deprecated.5964static inline __ATTRS_o_ai int5965vec_any_lt(__vector signed char __a, __vector __bool char __b) {5966 int __cc;5967 __builtin_s390_vchbs((__vector signed char)__b, __a, &__cc);5968 return __cc <= 1;5969}5970 5971// This prototype is deprecated.5972static inline __ATTRS_o_ai int5973vec_any_lt(__vector __bool char __a, __vector signed char __b) {5974 int __cc;5975 __builtin_s390_vchbs(__b, (__vector signed char)__a, &__cc);5976 return __cc <= 1;5977}5978 5979static inline __ATTRS_o_ai int5980vec_any_lt(__vector unsigned char __a, __vector unsigned char __b) {5981 int __cc;5982 __builtin_s390_vchlbs(__b, __a, &__cc);5983 return __cc <= 1;5984}5985 5986// This prototype is deprecated.5987static inline __ATTRS_o_ai int5988vec_any_lt(__vector unsigned char __a, __vector __bool char __b) {5989 int __cc;5990 __builtin_s390_vchlbs((__vector unsigned char)__b, __a, &__cc);5991 return __cc <= 1;5992}5993 5994// This prototype is deprecated.5995static inline __ATTRS_o_ai int5996vec_any_lt(__vector __bool char __a, __vector unsigned char __b) {5997 int __cc;5998 __builtin_s390_vchlbs(__b, (__vector unsigned char)__a, &__cc);5999 return __cc <= 1;6000}6001 6002// This prototype is deprecated.6003static inline __ATTRS_o_ai int6004vec_any_lt(__vector __bool char __a, __vector __bool char __b) {6005 int __cc;6006 __builtin_s390_vchlbs((__vector unsigned char)__b,6007 (__vector unsigned char)__a, &__cc);6008 return __cc <= 1;6009}6010 6011static inline __ATTRS_o_ai int6012vec_any_lt(__vector signed short __a, __vector signed short __b) {6013 int __cc;6014 __builtin_s390_vchhs(__b, __a, &__cc);6015 return __cc <= 1;6016}6017 6018// This prototype is deprecated.6019static inline __ATTRS_o_ai int6020vec_any_lt(__vector signed short __a, __vector __bool short __b) {6021 int __cc;6022 __builtin_s390_vchhs((__vector signed short)__b, __a, &__cc);6023 return __cc <= 1;6024}6025 6026// This prototype is deprecated.6027static inline __ATTRS_o_ai int6028vec_any_lt(__vector __bool short __a, __vector signed short __b) {6029 int __cc;6030 __builtin_s390_vchhs(__b, (__vector signed short)__a, &__cc);6031 return __cc <= 1;6032}6033 6034static inline __ATTRS_o_ai int6035vec_any_lt(__vector unsigned short __a, __vector unsigned short __b) {6036 int __cc;6037 __builtin_s390_vchlhs(__b, __a, &__cc);6038 return __cc <= 1;6039}6040 6041// This prototype is deprecated.6042static inline __ATTRS_o_ai int6043vec_any_lt(__vector unsigned short __a, __vector __bool short __b) {6044 int __cc;6045 __builtin_s390_vchlhs((__vector unsigned short)__b, __a, &__cc);6046 return __cc <= 1;6047}6048 6049// This prototype is deprecated.6050static inline __ATTRS_o_ai int6051vec_any_lt(__vector __bool short __a, __vector unsigned short __b) {6052 int __cc;6053 __builtin_s390_vchlhs(__b, (__vector unsigned short)__a, &__cc);6054 return __cc <= 1;6055}6056 6057// This prototype is deprecated.6058static inline __ATTRS_o_ai int6059vec_any_lt(__vector __bool short __a, __vector __bool short __b) {6060 int __cc;6061 __builtin_s390_vchlhs((__vector unsigned short)__b,6062 (__vector unsigned short)__a, &__cc);6063 return __cc <= 1;6064}6065 6066static inline __ATTRS_o_ai int6067vec_any_lt(__vector signed int __a, __vector signed int __b) {6068 int __cc;6069 __builtin_s390_vchfs(__b, __a, &__cc);6070 return __cc <= 1;6071}6072 6073// This prototype is deprecated.6074static inline __ATTRS_o_ai int6075vec_any_lt(__vector signed int __a, __vector __bool int __b) {6076 int __cc;6077 __builtin_s390_vchfs((__vector signed int)__b, __a, &__cc);6078 return __cc <= 1;6079}6080 6081// This prototype is deprecated.6082static inline __ATTRS_o_ai int6083vec_any_lt(__vector __bool int __a, __vector signed int __b) {6084 int __cc;6085 __builtin_s390_vchfs(__b, (__vector signed int)__a, &__cc);6086 return __cc <= 1;6087}6088 6089static inline __ATTRS_o_ai int6090vec_any_lt(__vector unsigned int __a, __vector unsigned int __b) {6091 int __cc;6092 __builtin_s390_vchlfs(__b, __a, &__cc);6093 return __cc <= 1;6094}6095 6096// This prototype is deprecated.6097static inline __ATTRS_o_ai int6098vec_any_lt(__vector unsigned int __a, __vector __bool int __b) {6099 int __cc;6100 __builtin_s390_vchlfs((__vector unsigned int)__b, __a, &__cc);6101 return __cc <= 1;6102}6103 6104// This prototype is deprecated.6105static inline __ATTRS_o_ai int6106vec_any_lt(__vector __bool int __a, __vector unsigned int __b) {6107 int __cc;6108 __builtin_s390_vchlfs(__b, (__vector unsigned int)__a, &__cc);6109 return __cc <= 1;6110}6111 6112// This prototype is deprecated.6113static inline __ATTRS_o_ai int6114vec_any_lt(__vector __bool int __a, __vector __bool int __b) {6115 int __cc;6116 __builtin_s390_vchlfs((__vector unsigned int)__b,6117 (__vector unsigned int)__a, &__cc);6118 return __cc <= 1;6119}6120 6121static inline __ATTRS_o_ai int6122vec_any_lt(__vector signed long long __a, __vector signed long long __b) {6123 int __cc;6124 __builtin_s390_vchgs(__b, __a, &__cc);6125 return __cc <= 1;6126}6127 6128// This prototype is deprecated.6129static inline __ATTRS_o_ai int6130vec_any_lt(__vector signed long long __a, __vector __bool long long __b) {6131 int __cc;6132 __builtin_s390_vchgs((__vector signed long long)__b, __a, &__cc);6133 return __cc <= 1;6134}6135 6136// This prototype is deprecated.6137static inline __ATTRS_o_ai int6138vec_any_lt(__vector __bool long long __a, __vector signed long long __b) {6139 int __cc;6140 __builtin_s390_vchgs(__b, (__vector signed long long)__a, &__cc);6141 return __cc <= 1;6142}6143 6144static inline __ATTRS_o_ai int6145vec_any_lt(__vector unsigned long long __a, __vector unsigned long long __b) {6146 int __cc;6147 __builtin_s390_vchlgs(__b, __a, &__cc);6148 return __cc <= 1;6149}6150 6151// This prototype is deprecated.6152static inline __ATTRS_o_ai int6153vec_any_lt(__vector unsigned long long __a, __vector __bool long long __b) {6154 int __cc;6155 __builtin_s390_vchlgs((__vector unsigned long long)__b, __a, &__cc);6156 return __cc <= 1;6157}6158 6159// This prototype is deprecated.6160static inline __ATTRS_o_ai int6161vec_any_lt(__vector __bool long long __a, __vector unsigned long long __b) {6162 int __cc;6163 __builtin_s390_vchlgs(__b, (__vector unsigned long long)__a, &__cc);6164 return __cc <= 1;6165}6166 6167// This prototype is deprecated.6168static inline __ATTRS_o_ai int6169vec_any_lt(__vector __bool long long __a, __vector __bool long long __b) {6170 int __cc;6171 __builtin_s390_vchlgs((__vector unsigned long long)__b,6172 (__vector unsigned long long)__a, &__cc);6173 return __cc <= 1;6174}6175 6176#if __ARCH__ >= 156177static inline __ATTRS_o_ai int6178vec_any_lt(__vector signed __int128 __a, __vector signed __int128 __b) {6179 int __cc;6180 __builtin_s390_vchqs((signed __int128)__b, (signed __int128)__a, &__cc);6181 return __cc <= 1;6182}6183 6184static inline __ATTRS_o_ai int6185vec_any_lt(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {6186 int __cc;6187 __builtin_s390_vchlqs((unsigned __int128)__b, (unsigned __int128)__a, &__cc);6188 return __cc <= 1;6189}6190#endif6191 6192#if __ARCH__ >= 126193static inline __ATTRS_o_ai int6194vec_any_lt(__vector float __a, __vector float __b) {6195 int __cc;6196 __builtin_s390_vfchsbs(__b, __a, &__cc);6197 return __cc <= 1;6198}6199#endif6200 6201static inline __ATTRS_o_ai int6202vec_any_lt(__vector double __a, __vector double __b) {6203 int __cc;6204 __builtin_s390_vfchdbs(__b, __a, &__cc);6205 return __cc <= 1;6206}6207 6208/*-- vec_any_nge ------------------------------------------------------------*/6209 6210#if __ARCH__ >= 126211static inline __ATTRS_o_ai int6212vec_any_nge(__vector float __a, __vector float __b) {6213 int __cc;6214 __builtin_s390_vfchesbs(__a, __b, &__cc);6215 return __cc != 0;6216}6217#endif6218 6219static inline __ATTRS_o_ai int6220vec_any_nge(__vector double __a, __vector double __b) {6221 int __cc;6222 __builtin_s390_vfchedbs(__a, __b, &__cc);6223 return __cc != 0;6224}6225 6226/*-- vec_any_ngt ------------------------------------------------------------*/6227 6228#if __ARCH__ >= 126229static inline __ATTRS_o_ai int6230vec_any_ngt(__vector float __a, __vector float __b) {6231 int __cc;6232 __builtin_s390_vfchsbs(__a, __b, &__cc);6233 return __cc != 0;6234}6235#endif6236 6237static inline __ATTRS_o_ai int6238vec_any_ngt(__vector double __a, __vector double __b) {6239 int __cc;6240 __builtin_s390_vfchdbs(__a, __b, &__cc);6241 return __cc != 0;6242}6243 6244/*-- vec_any_nle ------------------------------------------------------------*/6245 6246#if __ARCH__ >= 126247static inline __ATTRS_o_ai int6248vec_any_nle(__vector float __a, __vector float __b) {6249 int __cc;6250 __builtin_s390_vfchesbs(__b, __a, &__cc);6251 return __cc != 0;6252}6253#endif6254 6255static inline __ATTRS_o_ai int6256vec_any_nle(__vector double __a, __vector double __b) {6257 int __cc;6258 __builtin_s390_vfchedbs(__b, __a, &__cc);6259 return __cc != 0;6260}6261 6262/*-- vec_any_nlt ------------------------------------------------------------*/6263 6264#if __ARCH__ >= 126265static inline __ATTRS_o_ai int6266vec_any_nlt(__vector float __a, __vector float __b) {6267 int __cc;6268 __builtin_s390_vfchsbs(__b, __a, &__cc);6269 return __cc != 0;6270}6271#endif6272 6273static inline __ATTRS_o_ai int6274vec_any_nlt(__vector double __a, __vector double __b) {6275 int __cc;6276 __builtin_s390_vfchdbs(__b, __a, &__cc);6277 return __cc != 0;6278}6279 6280/*-- vec_any_nan ------------------------------------------------------------*/6281 6282#if __ARCH__ >= 126283static inline __ATTRS_o_ai int6284vec_any_nan(__vector float __a) {6285 int __cc;6286 __builtin_s390_vftcisb(__a, 15, &__cc);6287 return __cc != 3;6288}6289#endif6290 6291static inline __ATTRS_o_ai int6292vec_any_nan(__vector double __a) {6293 int __cc;6294 __builtin_s390_vftcidb(__a, 15, &__cc);6295 return __cc != 3;6296}6297 6298/*-- vec_any_numeric --------------------------------------------------------*/6299 6300#if __ARCH__ >= 126301static inline __ATTRS_o_ai int6302vec_any_numeric(__vector float __a) {6303 int __cc;6304 __builtin_s390_vftcisb(__a, 15, &__cc);6305 return __cc != 0;6306}6307#endif6308 6309static inline __ATTRS_o_ai int6310vec_any_numeric(__vector double __a) {6311 int __cc;6312 __builtin_s390_vftcidb(__a, 15, &__cc);6313 return __cc != 0;6314}6315 6316/*-- vec_blend --------------------------------------------------------------*/6317 6318#if __ARCH__ >= 156319static inline __ATTRS_o_ai __vector signed char6320vec_blend(__vector signed char __a, __vector signed char __b,6321 __vector signed char __c) {6322 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));6323}6324 6325static inline __ATTRS_o_ai __vector __bool char6326vec_blend(__vector __bool char __a, __vector __bool char __b,6327 __vector signed char __c) {6328 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));6329}6330 6331static inline __ATTRS_o_ai __vector unsigned char6332vec_blend(__vector unsigned char __a, __vector unsigned char __b,6333 __vector signed char __c) {6334 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed char)0));6335}6336 6337static inline __ATTRS_o_ai __vector signed short6338vec_blend(__vector signed short __a, __vector signed short __b,6339 __vector signed short __c) {6340 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));6341}6342 6343static inline __ATTRS_o_ai __vector __bool short6344vec_blend(__vector __bool short __a, __vector __bool short __b,6345 __vector signed short __c) {6346 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));6347}6348 6349static inline __ATTRS_o_ai __vector unsigned short6350vec_blend(__vector unsigned short __a, __vector unsigned short __b,6351 __vector signed short __c) {6352 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed short)0));6353}6354 6355static inline __ATTRS_o_ai __vector signed int6356vec_blend(__vector signed int __a, __vector signed int __b,6357 __vector signed int __c) {6358 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));6359}6360 6361static inline __ATTRS_o_ai __vector __bool int6362vec_blend(__vector __bool int __a, __vector __bool int __b,6363 __vector signed int __c) {6364 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));6365}6366 6367static inline __ATTRS_o_ai __vector unsigned int6368vec_blend(__vector unsigned int __a, __vector unsigned int __b,6369 __vector signed int __c) {6370 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));6371}6372 6373static inline __ATTRS_o_ai __vector signed long long6374vec_blend(__vector signed long long __a, __vector signed long long __b,6375 __vector signed long long __c) {6376 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));6377}6378 6379static inline __ATTRS_o_ai __vector __bool long long6380vec_blend(__vector __bool long long __a, __vector __bool long long __b,6381 __vector signed long long __c) {6382 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));6383}6384 6385static inline __ATTRS_o_ai __vector unsigned long long6386vec_blend(__vector unsigned long long __a, __vector unsigned long long __b,6387 __vector signed long long __c) {6388 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));6389}6390 6391static inline __ATTRS_o_ai __vector signed __int1286392vec_blend(__vector signed __int128 __a, __vector signed __int128 __b,6393 __vector signed __int128 __c) {6394 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));6395}6396 6397static inline __ATTRS_o_ai __vector __bool __int1286398vec_blend(__vector __bool __int128 __a, __vector __bool __int128 __b,6399 __vector signed __int128 __c) {6400 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));6401}6402 6403static inline __ATTRS_o_ai __vector unsigned __int1286404vec_blend(__vector unsigned __int128 __a, __vector unsigned __int128 __b,6405 __vector signed __int128 __c) {6406 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed __int128)0));6407}6408 6409static inline __ATTRS_o_ai __vector float6410vec_blend(__vector float __a, __vector float __b,6411 __vector signed int __c) {6412 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed int)0));6413}6414 6415static inline __ATTRS_o_ai __vector double6416vec_blend(__vector double __a, __vector double __b,6417 __vector signed long long __c) {6418 return vec_sel(__a, __b, vec_cmplt(__c, (__vector signed long long)0));6419}6420#endif6421 6422/*-- vec_and ---------------------------------------------------------------*/6423 6424static inline __ATTRS_o_ai __vector __bool char6425vec_and(__vector __bool char __a, __vector __bool char __b) {6426 return __a & __b;6427}6428 6429static inline __ATTRS_o_ai __vector signed char6430vec_and(__vector signed char __a, __vector signed char __b) {6431 return __a & __b;6432}6433 6434static inline __ATTRS_o_ai __vector unsigned char6435vec_and(__vector unsigned char __a, __vector unsigned char __b) {6436 return __a & __b;6437}6438 6439static inline __ATTRS_o_ai __vector __bool short6440vec_and(__vector __bool short __a, __vector __bool short __b) {6441 return __a & __b;6442}6443 6444static inline __ATTRS_o_ai __vector signed short6445vec_and(__vector signed short __a, __vector signed short __b) {6446 return __a & __b;6447}6448 6449static inline __ATTRS_o_ai __vector unsigned short6450vec_and(__vector unsigned short __a, __vector unsigned short __b) {6451 return __a & __b;6452}6453 6454static inline __ATTRS_o_ai __vector __bool int6455vec_and(__vector __bool int __a, __vector __bool int __b) {6456 return __a & __b;6457}6458 6459static inline __ATTRS_o_ai __vector signed int6460vec_and(__vector signed int __a, __vector signed int __b) {6461 return __a & __b;6462}6463 6464static inline __ATTRS_o_ai __vector unsigned int6465vec_and(__vector unsigned int __a, __vector unsigned int __b) {6466 return __a & __b;6467}6468 6469static inline __ATTRS_o_ai __vector __bool long long6470vec_and(__vector __bool long long __a, __vector __bool long long __b) {6471 return __a & __b;6472}6473 6474static inline __ATTRS_o_ai __vector signed long long6475vec_and(__vector signed long long __a, __vector signed long long __b) {6476 return __a & __b;6477}6478 6479static inline __ATTRS_o_ai __vector unsigned long long6480vec_and(__vector unsigned long long __a, __vector unsigned long long __b) {6481 return __a & __b;6482}6483 6484static inline __ATTRS_o_ai __vector __bool __int1286485vec_and(__vector __bool __int128 __a, __vector __bool __int128 __b) {6486 return __a & __b;6487}6488 6489static inline __ATTRS_o_ai __vector signed __int1286490vec_and(__vector signed __int128 __a, __vector signed __int128 __b) {6491 return __a & __b;6492}6493 6494static inline __ATTRS_o_ai __vector unsigned __int1286495vec_and(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {6496 return __a & __b;6497}6498 6499#if __ARCH__ >= 126500static inline __ATTRS_o_ai __vector float6501vec_and(__vector float __a, __vector float __b) {6502 return (__vector float)((__vector unsigned int)__a &6503 (__vector unsigned int)__b);6504}6505#endif6506 6507static inline __ATTRS_o_ai __vector double6508vec_and(__vector double __a, __vector double __b) {6509 return (__vector double)((__vector unsigned long long)__a &6510 (__vector unsigned long long)__b);6511}6512 6513/*-- vec_or ----------------------------------------------------------------*/6514 6515static inline __ATTRS_o_ai __vector __bool char6516vec_or(__vector __bool char __a, __vector __bool char __b) {6517 return __a | __b;6518}6519 6520static inline __ATTRS_o_ai __vector signed char6521vec_or(__vector signed char __a, __vector signed char __b) {6522 return __a | __b;6523}6524 6525static inline __ATTRS_o_ai __vector unsigned char6526vec_or(__vector unsigned char __a, __vector unsigned char __b) {6527 return __a | __b;6528}6529 6530static inline __ATTRS_o_ai __vector __bool short6531vec_or(__vector __bool short __a, __vector __bool short __b) {6532 return __a | __b;6533}6534 6535static inline __ATTRS_o_ai __vector signed short6536vec_or(__vector signed short __a, __vector signed short __b) {6537 return __a | __b;6538}6539 6540static inline __ATTRS_o_ai __vector unsigned short6541vec_or(__vector unsigned short __a, __vector unsigned short __b) {6542 return __a | __b;6543}6544 6545static inline __ATTRS_o_ai __vector __bool int6546vec_or(__vector __bool int __a, __vector __bool int __b) {6547 return __a | __b;6548}6549 6550static inline __ATTRS_o_ai __vector signed int6551vec_or(__vector signed int __a, __vector signed int __b) {6552 return __a | __b;6553}6554 6555static inline __ATTRS_o_ai __vector unsigned int6556vec_or(__vector unsigned int __a, __vector unsigned int __b) {6557 return __a | __b;6558}6559 6560static inline __ATTRS_o_ai __vector __bool long long6561vec_or(__vector __bool long long __a, __vector __bool long long __b) {6562 return __a | __b;6563}6564 6565static inline __ATTRS_o_ai __vector signed long long6566vec_or(__vector signed long long __a, __vector signed long long __b) {6567 return __a | __b;6568}6569 6570static inline __ATTRS_o_ai __vector unsigned long long6571vec_or(__vector unsigned long long __a, __vector unsigned long long __b) {6572 return __a | __b;6573}6574 6575static inline __ATTRS_o_ai __vector __bool __int1286576vec_or(__vector __bool __int128 __a, __vector __bool __int128 __b) {6577 return __a | __b;6578}6579 6580static inline __ATTRS_o_ai __vector signed __int1286581vec_or(__vector signed __int128 __a, __vector signed __int128 __b) {6582 return __a | __b;6583}6584 6585static inline __ATTRS_o_ai __vector unsigned __int1286586vec_or(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {6587 return __a | __b;6588}6589 6590#if __ARCH__ >= 126591static inline __ATTRS_o_ai __vector float6592vec_or(__vector float __a, __vector float __b) {6593 return (__vector float)((__vector unsigned int)__a |6594 (__vector unsigned int)__b);6595}6596#endif6597 6598static inline __ATTRS_o_ai __vector double6599vec_or(__vector double __a, __vector double __b) {6600 return (__vector double)((__vector unsigned long long)__a |6601 (__vector unsigned long long)__b);6602}6603 6604/*-- vec_xor ----------------------------------------------------------------*/6605 6606static inline __ATTRS_o_ai __vector __bool char6607vec_xor(__vector __bool char __a, __vector __bool char __b) {6608 return __a ^ __b;6609}6610 6611static inline __ATTRS_o_ai __vector signed char6612vec_xor(__vector signed char __a, __vector signed char __b) {6613 return __a ^ __b;6614}6615 6616static inline __ATTRS_o_ai __vector unsigned char6617vec_xor(__vector unsigned char __a, __vector unsigned char __b) {6618 return __a ^ __b;6619}6620 6621static inline __ATTRS_o_ai __vector __bool short6622vec_xor(__vector __bool short __a, __vector __bool short __b) {6623 return __a ^ __b;6624}6625 6626static inline __ATTRS_o_ai __vector signed short6627vec_xor(__vector signed short __a, __vector signed short __b) {6628 return __a ^ __b;6629}6630 6631static inline __ATTRS_o_ai __vector unsigned short6632vec_xor(__vector unsigned short __a, __vector unsigned short __b) {6633 return __a ^ __b;6634}6635 6636static inline __ATTRS_o_ai __vector __bool int6637vec_xor(__vector __bool int __a, __vector __bool int __b) {6638 return __a ^ __b;6639}6640 6641static inline __ATTRS_o_ai __vector signed int6642vec_xor(__vector signed int __a, __vector signed int __b) {6643 return __a ^ __b;6644}6645 6646static inline __ATTRS_o_ai __vector unsigned int6647vec_xor(__vector unsigned int __a, __vector unsigned int __b) {6648 return __a ^ __b;6649}6650 6651static inline __ATTRS_o_ai __vector __bool long long6652vec_xor(__vector __bool long long __a, __vector __bool long long __b) {6653 return __a ^ __b;6654}6655 6656static inline __ATTRS_o_ai __vector signed long long6657vec_xor(__vector signed long long __a, __vector signed long long __b) {6658 return __a ^ __b;6659}6660 6661static inline __ATTRS_o_ai __vector unsigned long long6662vec_xor(__vector unsigned long long __a, __vector unsigned long long __b) {6663 return __a ^ __b;6664}6665 6666static inline __ATTRS_o_ai __vector __bool __int1286667vec_xor(__vector __bool __int128 __a, __vector __bool __int128 __b) {6668 return __a ^ __b;6669}6670 6671static inline __ATTRS_o_ai __vector signed __int1286672vec_xor(__vector signed __int128 __a, __vector signed __int128 __b) {6673 return __a ^ __b;6674}6675 6676static inline __ATTRS_o_ai __vector unsigned __int1286677vec_xor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {6678 return __a ^ __b;6679}6680 6681#if __ARCH__ >= 126682static inline __ATTRS_o_ai __vector float6683vec_xor(__vector float __a, __vector float __b) {6684 return (__vector float)((__vector unsigned int)__a ^6685 (__vector unsigned int)__b);6686}6687#endif6688 6689static inline __ATTRS_o_ai __vector double6690vec_xor(__vector double __a, __vector double __b) {6691 return (__vector double)((__vector unsigned long long)__a ^6692 (__vector unsigned long long)__b);6693}6694 6695/*-- vec_andc ---------------------------------------------------------------*/6696 6697static inline __ATTRS_o_ai __vector __bool char6698vec_andc(__vector __bool char __a, __vector __bool char __b) {6699 return __a & ~__b;6700}6701 6702static inline __ATTRS_o_ai __vector signed char6703vec_andc(__vector signed char __a, __vector signed char __b) {6704 return __a & ~__b;6705}6706 6707// This prototype is deprecated.6708static inline __ATTRS_o_ai __vector signed char6709vec_andc(__vector __bool char __a, __vector signed char __b) {6710 return __a & ~__b;6711}6712 6713// This prototype is deprecated.6714static inline __ATTRS_o_ai __vector signed char6715vec_andc(__vector signed char __a, __vector __bool char __b) {6716 return __a & ~__b;6717}6718 6719static inline __ATTRS_o_ai __vector unsigned char6720vec_andc(__vector unsigned char __a, __vector unsigned char __b) {6721 return __a & ~__b;6722}6723 6724// This prototype is deprecated.6725static inline __ATTRS_o_ai __vector unsigned char6726vec_andc(__vector __bool char __a, __vector unsigned char __b) {6727 return __a & ~__b;6728}6729 6730// This prototype is deprecated.6731static inline __ATTRS_o_ai __vector unsigned char6732vec_andc(__vector unsigned char __a, __vector __bool char __b) {6733 return __a & ~__b;6734}6735 6736static inline __ATTRS_o_ai __vector __bool short6737vec_andc(__vector __bool short __a, __vector __bool short __b) {6738 return __a & ~__b;6739}6740 6741static inline __ATTRS_o_ai __vector signed short6742vec_andc(__vector signed short __a, __vector signed short __b) {6743 return __a & ~__b;6744}6745 6746// This prototype is deprecated.6747static inline __ATTRS_o_ai __vector signed short6748vec_andc(__vector __bool short __a, __vector signed short __b) {6749 return __a & ~__b;6750}6751 6752// This prototype is deprecated.6753static inline __ATTRS_o_ai __vector signed short6754vec_andc(__vector signed short __a, __vector __bool short __b) {6755 return __a & ~__b;6756}6757 6758static inline __ATTRS_o_ai __vector unsigned short6759vec_andc(__vector unsigned short __a, __vector unsigned short __b) {6760 return __a & ~__b;6761}6762 6763// This prototype is deprecated.6764static inline __ATTRS_o_ai __vector unsigned short6765vec_andc(__vector __bool short __a, __vector unsigned short __b) {6766 return __a & ~__b;6767}6768 6769// This prototype is deprecated.6770static inline __ATTRS_o_ai __vector unsigned short6771vec_andc(__vector unsigned short __a, __vector __bool short __b) {6772 return __a & ~__b;6773}6774 6775static inline __ATTRS_o_ai __vector __bool int6776vec_andc(__vector __bool int __a, __vector __bool int __b) {6777 return __a & ~__b;6778}6779 6780static inline __ATTRS_o_ai __vector signed int6781vec_andc(__vector signed int __a, __vector signed int __b) {6782 return __a & ~__b;6783}6784 6785// This prototype is deprecated.6786static inline __ATTRS_o_ai __vector signed int6787vec_andc(__vector __bool int __a, __vector signed int __b) {6788 return __a & ~__b;6789}6790 6791// This prototype is deprecated.6792static inline __ATTRS_o_ai __vector signed int6793vec_andc(__vector signed int __a, __vector __bool int __b) {6794 return __a & ~__b;6795}6796 6797static inline __ATTRS_o_ai __vector unsigned int6798vec_andc(__vector unsigned int __a, __vector unsigned int __b) {6799 return __a & ~__b;6800}6801 6802// This prototype is deprecated.6803static inline __ATTRS_o_ai __vector unsigned int6804vec_andc(__vector __bool int __a, __vector unsigned int __b) {6805 return __a & ~__b;6806}6807 6808// This prototype is deprecated.6809static inline __ATTRS_o_ai __vector unsigned int6810vec_andc(__vector unsigned int __a, __vector __bool int __b) {6811 return __a & ~__b;6812}6813 6814static inline __ATTRS_o_ai __vector __bool long long6815vec_andc(__vector __bool long long __a, __vector __bool long long __b) {6816 return __a & ~__b;6817}6818 6819static inline __ATTRS_o_ai __vector signed long long6820vec_andc(__vector signed long long __a, __vector signed long long __b) {6821 return __a & ~__b;6822}6823 6824// This prototype is deprecated.6825static inline __ATTRS_o_ai __vector signed long long6826vec_andc(__vector __bool long long __a, __vector signed long long __b) {6827 return __a & ~__b;6828}6829 6830// This prototype is deprecated.6831static inline __ATTRS_o_ai __vector signed long long6832vec_andc(__vector signed long long __a, __vector __bool long long __b) {6833 return __a & ~__b;6834}6835 6836static inline __ATTRS_o_ai __vector unsigned long long6837vec_andc(__vector unsigned long long __a, __vector unsigned long long __b) {6838 return __a & ~__b;6839}6840 6841// This prototype is deprecated.6842static inline __ATTRS_o_ai __vector unsigned long long6843vec_andc(__vector __bool long long __a, __vector unsigned long long __b) {6844 return __a & ~__b;6845}6846 6847// This prototype is deprecated.6848static inline __ATTRS_o_ai __vector unsigned long long6849vec_andc(__vector unsigned long long __a, __vector __bool long long __b) {6850 return __a & ~__b;6851}6852 6853static inline __ATTRS_o_ai __vector __bool __int1286854vec_andc(__vector __bool __int128 __a, __vector __bool __int128 __b) {6855 return __a & ~__b;6856}6857 6858static inline __ATTRS_o_ai __vector signed __int1286859vec_andc(__vector signed __int128 __a, __vector signed __int128 __b) {6860 return __a & ~__b;6861}6862 6863static inline __ATTRS_o_ai __vector unsigned __int1286864vec_andc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {6865 return __a & ~__b;6866}6867 6868#if __ARCH__ >= 126869static inline __ATTRS_o_ai __vector float6870vec_andc(__vector float __a, __vector float __b) {6871 return (__vector float)((__vector unsigned int)__a &6872 ~(__vector unsigned int)__b);6873}6874#endif6875 6876static inline __ATTRS_o_ai __vector double6877vec_andc(__vector double __a, __vector double __b) {6878 return (__vector double)((__vector unsigned long long)__a &6879 ~(__vector unsigned long long)__b);6880}6881 6882// This prototype is deprecated.6883static inline __ATTRS_o_ai __vector double6884vec_andc(__vector __bool long long __a, __vector double __b) {6885 return (__vector double)((__vector unsigned long long)__a &6886 ~(__vector unsigned long long)__b);6887}6888 6889// This prototype is deprecated.6890static inline __ATTRS_o_ai __vector double6891vec_andc(__vector double __a, __vector __bool long long __b) {6892 return (__vector double)((__vector unsigned long long)__a &6893 ~(__vector unsigned long long)__b);6894}6895 6896/*-- vec_nor ----------------------------------------------------------------*/6897 6898static inline __ATTRS_o_ai __vector __bool char6899vec_nor(__vector __bool char __a, __vector __bool char __b) {6900 return ~(__a | __b);6901}6902 6903static inline __ATTRS_o_ai __vector signed char6904vec_nor(__vector signed char __a, __vector signed char __b) {6905 return ~(__a | __b);6906}6907 6908// This prototype is deprecated.6909static inline __ATTRS_o_ai __vector signed char6910vec_nor(__vector __bool char __a, __vector signed char __b) {6911 return ~(__a | __b);6912}6913 6914// This prototype is deprecated.6915static inline __ATTRS_o_ai __vector signed char6916vec_nor(__vector signed char __a, __vector __bool char __b) {6917 return ~(__a | __b);6918}6919 6920static inline __ATTRS_o_ai __vector unsigned char6921vec_nor(__vector unsigned char __a, __vector unsigned char __b) {6922 return ~(__a | __b);6923}6924 6925// This prototype is deprecated.6926static inline __ATTRS_o_ai __vector unsigned char6927vec_nor(__vector __bool char __a, __vector unsigned char __b) {6928 return ~(__a | __b);6929}6930 6931// This prototype is deprecated.6932static inline __ATTRS_o_ai __vector unsigned char6933vec_nor(__vector unsigned char __a, __vector __bool char __b) {6934 return ~(__a | __b);6935}6936 6937static inline __ATTRS_o_ai __vector __bool short6938vec_nor(__vector __bool short __a, __vector __bool short __b) {6939 return ~(__a | __b);6940}6941 6942static inline __ATTRS_o_ai __vector signed short6943vec_nor(__vector signed short __a, __vector signed short __b) {6944 return ~(__a | __b);6945}6946 6947// This prototype is deprecated.6948static inline __ATTRS_o_ai __vector signed short6949vec_nor(__vector __bool short __a, __vector signed short __b) {6950 return ~(__a | __b);6951}6952 6953// This prototype is deprecated.6954static inline __ATTRS_o_ai __vector signed short6955vec_nor(__vector signed short __a, __vector __bool short __b) {6956 return ~(__a | __b);6957}6958 6959static inline __ATTRS_o_ai __vector unsigned short6960vec_nor(__vector unsigned short __a, __vector unsigned short __b) {6961 return ~(__a | __b);6962}6963 6964// This prototype is deprecated.6965static inline __ATTRS_o_ai __vector unsigned short6966vec_nor(__vector __bool short __a, __vector unsigned short __b) {6967 return ~(__a | __b);6968}6969 6970// This prototype is deprecated.6971static inline __ATTRS_o_ai __vector unsigned short6972vec_nor(__vector unsigned short __a, __vector __bool short __b) {6973 return ~(__a | __b);6974}6975 6976static inline __ATTRS_o_ai __vector __bool int6977vec_nor(__vector __bool int __a, __vector __bool int __b) {6978 return ~(__a | __b);6979}6980 6981static inline __ATTRS_o_ai __vector signed int6982vec_nor(__vector signed int __a, __vector signed int __b) {6983 return ~(__a | __b);6984}6985 6986// This prototype is deprecated.6987static inline __ATTRS_o_ai __vector signed int6988vec_nor(__vector __bool int __a, __vector signed int __b) {6989 return ~(__a | __b);6990}6991 6992// This prototype is deprecated.6993static inline __ATTRS_o_ai __vector signed int6994vec_nor(__vector signed int __a, __vector __bool int __b) {6995 return ~(__a | __b);6996}6997 6998static inline __ATTRS_o_ai __vector unsigned int6999vec_nor(__vector unsigned int __a, __vector unsigned int __b) {7000 return ~(__a | __b);7001}7002 7003// This prototype is deprecated.7004static inline __ATTRS_o_ai __vector unsigned int7005vec_nor(__vector __bool int __a, __vector unsigned int __b) {7006 return ~(__a | __b);7007}7008 7009// This prototype is deprecated.7010static inline __ATTRS_o_ai __vector unsigned int7011vec_nor(__vector unsigned int __a, __vector __bool int __b) {7012 return ~(__a | __b);7013}7014 7015static inline __ATTRS_o_ai __vector __bool long long7016vec_nor(__vector __bool long long __a, __vector __bool long long __b) {7017 return ~(__a | __b);7018}7019 7020static inline __ATTRS_o_ai __vector signed long long7021vec_nor(__vector signed long long __a, __vector signed long long __b) {7022 return ~(__a | __b);7023}7024 7025// This prototype is deprecated.7026static inline __ATTRS_o_ai __vector signed long long7027vec_nor(__vector __bool long long __a, __vector signed long long __b) {7028 return ~(__a | __b);7029}7030 7031// This prototype is deprecated.7032static inline __ATTRS_o_ai __vector signed long long7033vec_nor(__vector signed long long __a, __vector __bool long long __b) {7034 return ~(__a | __b);7035}7036 7037static inline __ATTRS_o_ai __vector unsigned long long7038vec_nor(__vector unsigned long long __a, __vector unsigned long long __b) {7039 return ~(__a | __b);7040}7041 7042// This prototype is deprecated.7043static inline __ATTRS_o_ai __vector unsigned long long7044vec_nor(__vector __bool long long __a, __vector unsigned long long __b) {7045 return ~(__a | __b);7046}7047 7048// This prototype is deprecated.7049static inline __ATTRS_o_ai __vector unsigned long long7050vec_nor(__vector unsigned long long __a, __vector __bool long long __b) {7051 return ~(__a | __b);7052}7053 7054static inline __ATTRS_o_ai __vector __bool __int1287055vec_nor(__vector __bool __int128 __a, __vector __bool __int128 __b) {7056 return ~(__a | __b);7057}7058 7059static inline __ATTRS_o_ai __vector signed __int1287060vec_nor(__vector signed __int128 __a, __vector signed __int128 __b) {7061 return ~(__a | __b);7062}7063 7064static inline __ATTRS_o_ai __vector unsigned __int1287065vec_nor(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {7066 return ~(__a | __b);7067}7068 7069#if __ARCH__ >= 127070static inline __ATTRS_o_ai __vector float7071vec_nor(__vector float __a, __vector float __b) {7072 return (__vector float)~((__vector unsigned int)__a |7073 (__vector unsigned int)__b);7074}7075#endif7076 7077static inline __ATTRS_o_ai __vector double7078vec_nor(__vector double __a, __vector double __b) {7079 return (__vector double)~((__vector unsigned long long)__a |7080 (__vector unsigned long long)__b);7081}7082 7083// This prototype is deprecated.7084static inline __ATTRS_o_ai __vector double7085vec_nor(__vector __bool long long __a, __vector double __b) {7086 return (__vector double)~((__vector unsigned long long)__a |7087 (__vector unsigned long long)__b);7088}7089 7090// This prototype is deprecated.7091static inline __ATTRS_o_ai __vector double7092vec_nor(__vector double __a, __vector __bool long long __b) {7093 return (__vector double)~((__vector unsigned long long)__a |7094 (__vector unsigned long long)__b);7095}7096 7097/*-- vec_orc ----------------------------------------------------------------*/7098 7099#if __ARCH__ >= 127100static inline __ATTRS_o_ai __vector __bool char7101vec_orc(__vector __bool char __a, __vector __bool char __b) {7102 return __a | ~__b;7103}7104 7105static inline __ATTRS_o_ai __vector signed char7106vec_orc(__vector signed char __a, __vector signed char __b) {7107 return __a | ~__b;7108}7109 7110static inline __ATTRS_o_ai __vector unsigned char7111vec_orc(__vector unsigned char __a, __vector unsigned char __b) {7112 return __a | ~__b;7113}7114 7115static inline __ATTRS_o_ai __vector __bool short7116vec_orc(__vector __bool short __a, __vector __bool short __b) {7117 return __a | ~__b;7118}7119 7120static inline __ATTRS_o_ai __vector signed short7121vec_orc(__vector signed short __a, __vector signed short __b) {7122 return __a | ~__b;7123}7124 7125static inline __ATTRS_o_ai __vector unsigned short7126vec_orc(__vector unsigned short __a, __vector unsigned short __b) {7127 return __a | ~__b;7128}7129 7130static inline __ATTRS_o_ai __vector __bool int7131vec_orc(__vector __bool int __a, __vector __bool int __b) {7132 return __a | ~__b;7133}7134 7135static inline __ATTRS_o_ai __vector signed int7136vec_orc(__vector signed int __a, __vector signed int __b) {7137 return __a | ~__b;7138}7139 7140static inline __ATTRS_o_ai __vector unsigned int7141vec_orc(__vector unsigned int __a, __vector unsigned int __b) {7142 return __a | ~__b;7143}7144 7145static inline __ATTRS_o_ai __vector __bool long long7146vec_orc(__vector __bool long long __a, __vector __bool long long __b) {7147 return __a | ~__b;7148}7149 7150static inline __ATTRS_o_ai __vector signed long long7151vec_orc(__vector signed long long __a, __vector signed long long __b) {7152 return __a | ~__b;7153}7154 7155static inline __ATTRS_o_ai __vector unsigned long long7156vec_orc(__vector unsigned long long __a, __vector unsigned long long __b) {7157 return __a | ~__b;7158}7159 7160static inline __ATTRS_o_ai __vector __bool __int1287161vec_orc(__vector __bool __int128 __a, __vector __bool __int128 __b) {7162 return __a | ~__b;7163}7164 7165static inline __ATTRS_o_ai __vector signed __int1287166vec_orc(__vector signed __int128 __a, __vector signed __int128 __b) {7167 return __a | ~__b;7168}7169 7170static inline __ATTRS_o_ai __vector unsigned __int1287171vec_orc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {7172 return __a | ~__b;7173}7174 7175static inline __ATTRS_o_ai __vector float7176vec_orc(__vector float __a, __vector float __b) {7177 return (__vector float)((__vector unsigned int)__a |7178 ~(__vector unsigned int)__b);7179}7180 7181static inline __ATTRS_o_ai __vector double7182vec_orc(__vector double __a, __vector double __b) {7183 return (__vector double)((__vector unsigned long long)__a |7184 ~(__vector unsigned long long)__b);7185}7186#endif7187 7188/*-- vec_nand ---------------------------------------------------------------*/7189 7190#if __ARCH__ >= 127191static inline __ATTRS_o_ai __vector __bool char7192vec_nand(__vector __bool char __a, __vector __bool char __b) {7193 return ~(__a & __b);7194}7195 7196static inline __ATTRS_o_ai __vector signed char7197vec_nand(__vector signed char __a, __vector signed char __b) {7198 return ~(__a & __b);7199}7200 7201static inline __ATTRS_o_ai __vector unsigned char7202vec_nand(__vector unsigned char __a, __vector unsigned char __b) {7203 return ~(__a & __b);7204}7205 7206static inline __ATTRS_o_ai __vector __bool short7207vec_nand(__vector __bool short __a, __vector __bool short __b) {7208 return ~(__a & __b);7209}7210 7211static inline __ATTRS_o_ai __vector signed short7212vec_nand(__vector signed short __a, __vector signed short __b) {7213 return ~(__a & __b);7214}7215 7216static inline __ATTRS_o_ai __vector unsigned short7217vec_nand(__vector unsigned short __a, __vector unsigned short __b) {7218 return ~(__a & __b);7219}7220 7221static inline __ATTRS_o_ai __vector __bool int7222vec_nand(__vector __bool int __a, __vector __bool int __b) {7223 return ~(__a & __b);7224}7225 7226static inline __ATTRS_o_ai __vector signed int7227vec_nand(__vector signed int __a, __vector signed int __b) {7228 return ~(__a & __b);7229}7230 7231static inline __ATTRS_o_ai __vector unsigned int7232vec_nand(__vector unsigned int __a, __vector unsigned int __b) {7233 return ~(__a & __b);7234}7235 7236static inline __ATTRS_o_ai __vector __bool long long7237vec_nand(__vector __bool long long __a, __vector __bool long long __b) {7238 return ~(__a & __b);7239}7240 7241static inline __ATTRS_o_ai __vector signed long long7242vec_nand(__vector signed long long __a, __vector signed long long __b) {7243 return ~(__a & __b);7244}7245 7246static inline __ATTRS_o_ai __vector unsigned long long7247vec_nand(__vector unsigned long long __a, __vector unsigned long long __b) {7248 return ~(__a & __b);7249}7250 7251static inline __ATTRS_o_ai __vector __bool __int1287252vec_nand(__vector __bool __int128 __a, __vector __bool __int128 __b) {7253 return ~(__a & __b);7254}7255 7256static inline __ATTRS_o_ai __vector signed __int1287257vec_nand(__vector signed __int128 __a, __vector signed __int128 __b) {7258 return ~(__a & __b);7259}7260 7261static inline __ATTRS_o_ai __vector unsigned __int1287262vec_nand(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {7263 return ~(__a & __b);7264}7265 7266static inline __ATTRS_o_ai __vector float7267vec_nand(__vector float __a, __vector float __b) {7268 return (__vector float)~((__vector unsigned int)__a &7269 (__vector unsigned int)__b);7270}7271 7272static inline __ATTRS_o_ai __vector double7273vec_nand(__vector double __a, __vector double __b) {7274 return (__vector double)~((__vector unsigned long long)__a &7275 (__vector unsigned long long)__b);7276}7277#endif7278 7279/*-- vec_eqv ----------------------------------------------------------------*/7280 7281#if __ARCH__ >= 127282static inline __ATTRS_o_ai __vector __bool char7283vec_eqv(__vector __bool char __a, __vector __bool char __b) {7284 return ~(__a ^ __b);7285}7286 7287static inline __ATTRS_o_ai __vector signed char7288vec_eqv(__vector signed char __a, __vector signed char __b) {7289 return ~(__a ^ __b);7290}7291 7292static inline __ATTRS_o_ai __vector unsigned char7293vec_eqv(__vector unsigned char __a, __vector unsigned char __b) {7294 return ~(__a ^ __b);7295}7296 7297static inline __ATTRS_o_ai __vector __bool short7298vec_eqv(__vector __bool short __a, __vector __bool short __b) {7299 return ~(__a ^ __b);7300}7301 7302static inline __ATTRS_o_ai __vector signed short7303vec_eqv(__vector signed short __a, __vector signed short __b) {7304 return ~(__a ^ __b);7305}7306 7307static inline __ATTRS_o_ai __vector unsigned short7308vec_eqv(__vector unsigned short __a, __vector unsigned short __b) {7309 return ~(__a ^ __b);7310}7311 7312static inline __ATTRS_o_ai __vector __bool int7313vec_eqv(__vector __bool int __a, __vector __bool int __b) {7314 return ~(__a ^ __b);7315}7316 7317static inline __ATTRS_o_ai __vector signed int7318vec_eqv(__vector signed int __a, __vector signed int __b) {7319 return ~(__a ^ __b);7320}7321 7322static inline __ATTRS_o_ai __vector unsigned int7323vec_eqv(__vector unsigned int __a, __vector unsigned int __b) {7324 return ~(__a ^ __b);7325}7326 7327static inline __ATTRS_o_ai __vector __bool long long7328vec_eqv(__vector __bool long long __a, __vector __bool long long __b) {7329 return ~(__a ^ __b);7330}7331 7332static inline __ATTRS_o_ai __vector signed long long7333vec_eqv(__vector signed long long __a, __vector signed long long __b) {7334 return ~(__a ^ __b);7335}7336 7337static inline __ATTRS_o_ai __vector unsigned long long7338vec_eqv(__vector unsigned long long __a, __vector unsigned long long __b) {7339 return ~(__a ^ __b);7340}7341 7342static inline __ATTRS_o_ai __vector __bool __int1287343vec_eqv(__vector __bool __int128 __a, __vector __bool __int128 __b) {7344 return ~(__a ^ __b);7345}7346 7347static inline __ATTRS_o_ai __vector signed __int1287348vec_eqv(__vector signed __int128 __a, __vector signed __int128 __b) {7349 return ~(__a ^ __b);7350}7351 7352static inline __ATTRS_o_ai __vector unsigned __int1287353vec_eqv(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {7354 return ~(__a ^ __b);7355}7356 7357static inline __ATTRS_o_ai __vector float7358vec_eqv(__vector float __a, __vector float __b) {7359 return (__vector float)~((__vector unsigned int)__a ^7360 (__vector unsigned int)__b);7361}7362 7363static inline __ATTRS_o_ai __vector double7364vec_eqv(__vector double __a, __vector double __b) {7365 return (__vector double)~((__vector unsigned long long)__a ^7366 (__vector unsigned long long)__b);7367}7368#endif7369 7370/*-- vec_evaluate -----------------------------------------------------------*/7371 7372#if __ARCH__ >= 157373extern __ATTRS_o __vector signed char7374vec_evaluate(__vector signed char __a, __vector signed char __b,7375 __vector signed char __c, unsigned char __d)7376 __constant(__d);7377 7378extern __ATTRS_o __vector unsigned char7379vec_evaluate(__vector unsigned char __a, __vector unsigned char __b,7380 __vector unsigned char __c, unsigned char __d)7381 __constant(__d);7382 7383extern __ATTRS_o __vector __bool char7384vec_evaluate(__vector __bool char __a, __vector __bool char __b,7385 __vector __bool char __c, unsigned char __d)7386 __constant(__d);7387 7388extern __ATTRS_o __vector signed short7389vec_evaluate(__vector signed short __a, __vector signed short __b,7390 __vector signed short __c, unsigned char __d)7391 __constant(__d);7392 7393extern __ATTRS_o __vector unsigned short7394vec_evaluate(__vector unsigned short __a, __vector unsigned short __b,7395 __vector unsigned short __c, unsigned char __d)7396 __constant(__d);7397 7398extern __ATTRS_o __vector __bool short7399vec_evaluate(__vector __bool short __a, __vector __bool short __b,7400 __vector __bool short __c, unsigned char __d)7401 __constant(__d);7402 7403extern __ATTRS_o __vector signed int7404vec_evaluate(__vector signed int __a, __vector signed int __b,7405 __vector signed int __c, unsigned char __d)7406 __constant(__d);7407 7408extern __ATTRS_o __vector unsigned int7409vec_evaluate(__vector unsigned int __a, __vector unsigned int __b,7410 __vector unsigned int __c, unsigned char __d)7411 __constant(__d);7412 7413extern __ATTRS_o __vector __bool int7414vec_evaluate(__vector __bool int __a, __vector __bool int __b,7415 __vector __bool int __c, unsigned char __d)7416 __constant(__d);7417 7418extern __ATTRS_o __vector signed long long7419vec_evaluate(__vector signed long long __a, __vector signed long long __b,7420 __vector signed long long __c, unsigned char __d)7421 __constant(__d);7422 7423extern __ATTRS_o __vector unsigned long long7424vec_evaluate(__vector unsigned long long __a, __vector unsigned long long __b,7425 __vector unsigned long long __c, unsigned char __d)7426 __constant(__d);7427 7428extern __ATTRS_o __vector __bool long long7429vec_evaluate(__vector __bool long long __a, __vector __bool long long __b,7430 __vector __bool long long __c, unsigned char __d)7431 __constant(__d);7432 7433extern __ATTRS_o __vector signed __int1287434vec_evaluate(__vector signed __int128 __a, __vector signed __int128 __b,7435 __vector signed __int128 __c, unsigned char __d)7436 __constant(__d);7437 7438extern __ATTRS_o __vector unsigned __int1287439vec_evaluate(__vector unsigned __int128 __a, __vector unsigned __int128 __b,7440 __vector unsigned __int128 __c, unsigned char __d)7441 __constant(__d);7442 7443extern __ATTRS_o __vector __bool __int1287444vec_evaluate(__vector __bool __int128 __a, __vector __bool __int128 __b,7445 __vector __bool __int128 __c, unsigned char __d)7446 __constant(__d);7447 7448#define vec_evaluate(A, B, C, D) \7449 ((__typeof__((vec_evaluate)((A), (B), (C), (D)))) \7450 __builtin_s390_veval((__vector unsigned char)(A), \7451 (__vector unsigned char)(B), \7452 (__vector unsigned char)(C), (D)))7453#endif7454 7455/*-- vec_cntlz --------------------------------------------------------------*/7456 7457static inline __ATTRS_o_ai __vector unsigned char7458vec_cntlz(__vector signed char __a) {7459 return __builtin_s390_vclzb((__vector unsigned char)__a);7460}7461 7462static inline __ATTRS_o_ai __vector unsigned char7463vec_cntlz(__vector unsigned char __a) {7464 return __builtin_s390_vclzb(__a);7465}7466 7467static inline __ATTRS_o_ai __vector unsigned short7468vec_cntlz(__vector signed short __a) {7469 return __builtin_s390_vclzh((__vector unsigned short)__a);7470}7471 7472static inline __ATTRS_o_ai __vector unsigned short7473vec_cntlz(__vector unsigned short __a) {7474 return __builtin_s390_vclzh(__a);7475}7476 7477static inline __ATTRS_o_ai __vector unsigned int7478vec_cntlz(__vector signed int __a) {7479 return __builtin_s390_vclzf((__vector unsigned int)__a);7480}7481 7482static inline __ATTRS_o_ai __vector unsigned int7483vec_cntlz(__vector unsigned int __a) {7484 return __builtin_s390_vclzf(__a);7485}7486 7487static inline __ATTRS_o_ai __vector unsigned long long7488vec_cntlz(__vector signed long long __a) {7489 return __builtin_s390_vclzg((__vector unsigned long long)__a);7490}7491 7492static inline __ATTRS_o_ai __vector unsigned long long7493vec_cntlz(__vector unsigned long long __a) {7494 return __builtin_s390_vclzg(__a);7495}7496 7497#if __ARCH__ >= 157498static inline __ATTRS_o_ai __vector unsigned __int1287499vec_cntlz(__vector signed __int128 __a) {7500 return (__vector unsigned __int128)7501 __builtin_s390_vclzq((unsigned __int128)__a);7502}7503 7504static inline __ATTRS_o_ai __vector unsigned __int1287505vec_cntlz(__vector unsigned __int128 __a) {7506 return (__vector unsigned __int128)7507 __builtin_s390_vclzq((unsigned __int128)__a);7508}7509#endif7510 7511/*-- vec_cnttz --------------------------------------------------------------*/7512 7513static inline __ATTRS_o_ai __vector unsigned char7514vec_cnttz(__vector signed char __a) {7515 return __builtin_s390_vctzb((__vector unsigned char)__a);7516}7517 7518static inline __ATTRS_o_ai __vector unsigned char7519vec_cnttz(__vector unsigned char __a) {7520 return __builtin_s390_vctzb(__a);7521}7522 7523static inline __ATTRS_o_ai __vector unsigned short7524vec_cnttz(__vector signed short __a) {7525 return __builtin_s390_vctzh((__vector unsigned short)__a);7526}7527 7528static inline __ATTRS_o_ai __vector unsigned short7529vec_cnttz(__vector unsigned short __a) {7530 return __builtin_s390_vctzh(__a);7531}7532 7533static inline __ATTRS_o_ai __vector unsigned int7534vec_cnttz(__vector signed int __a) {7535 return __builtin_s390_vctzf((__vector unsigned int)__a);7536}7537 7538static inline __ATTRS_o_ai __vector unsigned int7539vec_cnttz(__vector unsigned int __a) {7540 return __builtin_s390_vctzf(__a);7541}7542 7543static inline __ATTRS_o_ai __vector unsigned long long7544vec_cnttz(__vector signed long long __a) {7545 return __builtin_s390_vctzg((__vector unsigned long long)__a);7546}7547 7548static inline __ATTRS_o_ai __vector unsigned long long7549vec_cnttz(__vector unsigned long long __a) {7550 return __builtin_s390_vctzg(__a);7551}7552 7553#if __ARCH__ >= 157554static inline __ATTRS_o_ai __vector unsigned __int1287555vec_cnttz(__vector signed __int128 __a) {7556 return (__vector unsigned __int128)7557 __builtin_s390_vctzq((unsigned __int128)__a);7558}7559 7560static inline __ATTRS_o_ai __vector unsigned __int1287561vec_cnttz(__vector unsigned __int128 __a) {7562 return (__vector unsigned __int128)7563 __builtin_s390_vctzq((unsigned __int128)__a);7564}7565#endif7566 7567/*-- vec_popcnt -------------------------------------------------------------*/7568 7569static inline __ATTRS_o_ai __vector unsigned char7570vec_popcnt(__vector signed char __a) {7571 return __builtin_elementwise_popcount((__vector unsigned char)__a);7572}7573 7574static inline __ATTRS_o_ai __vector unsigned char7575vec_popcnt(__vector unsigned char __a) {7576 return __builtin_elementwise_popcount(__a);7577}7578 7579static inline __ATTRS_o_ai __vector unsigned short7580vec_popcnt(__vector signed short __a) {7581 return __builtin_elementwise_popcount((__vector unsigned short)__a);7582}7583 7584static inline __ATTRS_o_ai __vector unsigned short7585vec_popcnt(__vector unsigned short __a) {7586 return __builtin_elementwise_popcount(__a);7587}7588 7589static inline __ATTRS_o_ai __vector unsigned int7590vec_popcnt(__vector signed int __a) {7591 return __builtin_elementwise_popcount((__vector unsigned int)__a);7592}7593 7594static inline __ATTRS_o_ai __vector unsigned int7595vec_popcnt(__vector unsigned int __a) {7596 return __builtin_elementwise_popcount(__a);7597}7598 7599static inline __ATTRS_o_ai __vector unsigned long long7600vec_popcnt(__vector signed long long __a) {7601 return __builtin_elementwise_popcount((__vector unsigned long long)__a);7602}7603 7604static inline __ATTRS_o_ai __vector unsigned long long7605vec_popcnt(__vector unsigned long long __a) {7606 return __builtin_elementwise_popcount(__a);7607}7608 7609/*-- vec_rl -----------------------------------------------------------------*/7610 7611static inline __ATTRS_o_ai __vector signed char7612vec_rl(__vector signed char __a, __vector unsigned char __b) {7613 return (__vector signed char)__builtin_s390_verllvb(7614 (__vector unsigned char)__a, __b);7615}7616 7617static inline __ATTRS_o_ai __vector unsigned char7618vec_rl(__vector unsigned char __a, __vector unsigned char __b) {7619 return __builtin_s390_verllvb(__a, __b);7620}7621 7622static inline __ATTRS_o_ai __vector signed short7623vec_rl(__vector signed short __a, __vector unsigned short __b) {7624 return (__vector signed short)__builtin_s390_verllvh(7625 (__vector unsigned short)__a, __b);7626}7627 7628static inline __ATTRS_o_ai __vector unsigned short7629vec_rl(__vector unsigned short __a, __vector unsigned short __b) {7630 return __builtin_s390_verllvh(__a, __b);7631}7632 7633static inline __ATTRS_o_ai __vector signed int7634vec_rl(__vector signed int __a, __vector unsigned int __b) {7635 return (__vector signed int)__builtin_s390_verllvf(7636 (__vector unsigned int)__a, __b);7637}7638 7639static inline __ATTRS_o_ai __vector unsigned int7640vec_rl(__vector unsigned int __a, __vector unsigned int __b) {7641 return __builtin_s390_verllvf(__a, __b);7642}7643 7644static inline __ATTRS_o_ai __vector signed long long7645vec_rl(__vector signed long long __a, __vector unsigned long long __b) {7646 return (__vector signed long long)__builtin_s390_verllvg(7647 (__vector unsigned long long)__a, __b);7648}7649 7650static inline __ATTRS_o_ai __vector unsigned long long7651vec_rl(__vector unsigned long long __a, __vector unsigned long long __b) {7652 return __builtin_s390_verllvg(__a, __b);7653}7654 7655/*-- vec_rli ----------------------------------------------------------------*/7656 7657static inline __ATTRS_o_ai __vector signed char7658vec_rli(__vector signed char __a, unsigned long __b) {7659 return (__vector signed char)__builtin_s390_verllb(7660 (__vector unsigned char)__a, (unsigned char)__b);7661}7662 7663static inline __ATTRS_o_ai __vector unsigned char7664vec_rli(__vector unsigned char __a, unsigned long __b) {7665 return __builtin_s390_verllb(__a, (unsigned char)__b);7666}7667 7668static inline __ATTRS_o_ai __vector signed short7669vec_rli(__vector signed short __a, unsigned long __b) {7670 return (__vector signed short)__builtin_s390_verllh(7671 (__vector unsigned short)__a, (unsigned char)__b);7672}7673 7674static inline __ATTRS_o_ai __vector unsigned short7675vec_rli(__vector unsigned short __a, unsigned long __b) {7676 return __builtin_s390_verllh(__a, (unsigned char)__b);7677}7678 7679static inline __ATTRS_o_ai __vector signed int7680vec_rli(__vector signed int __a, unsigned long __b) {7681 return (__vector signed int)__builtin_s390_verllf(7682 (__vector unsigned int)__a, (unsigned char)__b);7683}7684 7685static inline __ATTRS_o_ai __vector unsigned int7686vec_rli(__vector unsigned int __a, unsigned long __b) {7687 return __builtin_s390_verllf(__a, (unsigned char)__b);7688}7689 7690static inline __ATTRS_o_ai __vector signed long long7691vec_rli(__vector signed long long __a, unsigned long __b) {7692 return (__vector signed long long)__builtin_s390_verllg(7693 (__vector unsigned long long)__a, (unsigned char)__b);7694}7695 7696static inline __ATTRS_o_ai __vector unsigned long long7697vec_rli(__vector unsigned long long __a, unsigned long __b) {7698 return __builtin_s390_verllg(__a, (unsigned char)__b);7699}7700 7701/*-- vec_rl_mask ------------------------------------------------------------*/7702 7703extern __ATTRS_o __vector signed char7704vec_rl_mask(__vector signed char __a, __vector unsigned char __b,7705 unsigned char __c) __constant(__c);7706 7707extern __ATTRS_o __vector unsigned char7708vec_rl_mask(__vector unsigned char __a, __vector unsigned char __b,7709 unsigned char __c) __constant(__c);7710 7711extern __ATTRS_o __vector signed short7712vec_rl_mask(__vector signed short __a, __vector unsigned short __b,7713 unsigned char __c) __constant(__c);7714 7715extern __ATTRS_o __vector unsigned short7716vec_rl_mask(__vector unsigned short __a, __vector unsigned short __b,7717 unsigned char __c) __constant(__c);7718 7719extern __ATTRS_o __vector signed int7720vec_rl_mask(__vector signed int __a, __vector unsigned int __b,7721 unsigned char __c) __constant(__c);7722 7723extern __ATTRS_o __vector unsigned int7724vec_rl_mask(__vector unsigned int __a, __vector unsigned int __b,7725 unsigned char __c) __constant(__c);7726 7727extern __ATTRS_o __vector signed long long7728vec_rl_mask(__vector signed long long __a, __vector unsigned long long __b,7729 unsigned char __c) __constant(__c);7730 7731extern __ATTRS_o __vector unsigned long long7732vec_rl_mask(__vector unsigned long long __a, __vector unsigned long long __b,7733 unsigned char __c) __constant(__c);7734 7735#define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \7736 __extension__ ({ \7737 __vector unsigned char __res; \7738 __vector unsigned char __x = (__vector unsigned char)(X); \7739 __vector unsigned char __y = (__vector unsigned char)(Y); \7740 switch (sizeof ((X)[0])) { \7741 case 1: __res = (__vector unsigned char) __builtin_s390_verimb( \7742 (__vector unsigned char)__x, (__vector unsigned char)__x, \7743 (__vector unsigned char)__y, (Z)); break; \7744 case 2: __res = (__vector unsigned char) __builtin_s390_verimh( \7745 (__vector unsigned short)__x, (__vector unsigned short)__x, \7746 (__vector unsigned short)__y, (Z)); break; \7747 case 4: __res = (__vector unsigned char) __builtin_s390_verimf( \7748 (__vector unsigned int)__x, (__vector unsigned int)__x, \7749 (__vector unsigned int)__y, (Z)); break; \7750 default: __res = (__vector unsigned char) __builtin_s390_verimg( \7751 (__vector unsigned long long)__x, (__vector unsigned long long)__x, \7752 (__vector unsigned long long)__y, (Z)); break; \7753 } __res; }))7754 7755/*-- vec_sll ----------------------------------------------------------------*/7756 7757static inline __ATTRS_o_ai __vector signed char7758vec_sll(__vector signed char __a, __vector unsigned char __b) {7759 return (__vector signed char)__builtin_s390_vsl(7760 (__vector unsigned char)__a, __b);7761}7762 7763// This prototype is deprecated.7764static inline __ATTRS_o_ai __vector signed char7765vec_sll(__vector signed char __a, __vector unsigned short __b) {7766 return (__vector signed char)__builtin_s390_vsl(7767 (__vector unsigned char)__a, (__vector unsigned char)__b);7768}7769 7770// This prototype is deprecated.7771static inline __ATTRS_o_ai __vector signed char7772vec_sll(__vector signed char __a, __vector unsigned int __b) {7773 return (__vector signed char)__builtin_s390_vsl(7774 (__vector unsigned char)__a, (__vector unsigned char)__b);7775}7776 7777// This prototype is deprecated.7778static inline __ATTRS_o_ai __vector __bool char7779vec_sll(__vector __bool char __a, __vector unsigned char __b) {7780 return (__vector __bool char)__builtin_s390_vsl(7781 (__vector unsigned char)__a, __b);7782}7783 7784// This prototype is deprecated.7785static inline __ATTRS_o_ai __vector __bool char7786vec_sll(__vector __bool char __a, __vector unsigned short __b) {7787 return (__vector __bool char)__builtin_s390_vsl(7788 (__vector unsigned char)__a, (__vector unsigned char)__b);7789}7790 7791// This prototype is deprecated.7792static inline __ATTRS_o_ai __vector __bool char7793vec_sll(__vector __bool char __a, __vector unsigned int __b) {7794 return (__vector __bool char)__builtin_s390_vsl(7795 (__vector unsigned char)__a, (__vector unsigned char)__b);7796}7797 7798static inline __ATTRS_o_ai __vector unsigned char7799vec_sll(__vector unsigned char __a, __vector unsigned char __b) {7800 return __builtin_s390_vsl(__a, __b);7801}7802 7803// This prototype is deprecated.7804static inline __ATTRS_o_ai __vector unsigned char7805vec_sll(__vector unsigned char __a, __vector unsigned short __b) {7806 return __builtin_s390_vsl(__a, (__vector unsigned char)__b);7807}7808 7809// This prototype is deprecated.7810static inline __ATTRS_o_ai __vector unsigned char7811vec_sll(__vector unsigned char __a, __vector unsigned int __b) {7812 return __builtin_s390_vsl(__a, (__vector unsigned char)__b);7813}7814 7815static inline __ATTRS_o_ai __vector signed short7816vec_sll(__vector signed short __a, __vector unsigned char __b) {7817 return (__vector signed short)__builtin_s390_vsl(7818 (__vector unsigned char)__a, __b);7819}7820 7821// This prototype is deprecated.7822static inline __ATTRS_o_ai __vector signed short7823vec_sll(__vector signed short __a, __vector unsigned short __b) {7824 return (__vector signed short)__builtin_s390_vsl(7825 (__vector unsigned char)__a, (__vector unsigned char)__b);7826}7827 7828// This prototype is deprecated.7829static inline __ATTRS_o_ai __vector signed short7830vec_sll(__vector signed short __a, __vector unsigned int __b) {7831 return (__vector signed short)__builtin_s390_vsl(7832 (__vector unsigned char)__a, (__vector unsigned char)__b);7833}7834 7835// This prototype is deprecated.7836static inline __ATTRS_o_ai __vector __bool short7837vec_sll(__vector __bool short __a, __vector unsigned char __b) {7838 return (__vector __bool short)__builtin_s390_vsl(7839 (__vector unsigned char)__a, __b);7840}7841 7842// This prototype is deprecated.7843static inline __ATTRS_o_ai __vector __bool short7844vec_sll(__vector __bool short __a, __vector unsigned short __b) {7845 return (__vector __bool short)__builtin_s390_vsl(7846 (__vector unsigned char)__a, (__vector unsigned char)__b);7847}7848 7849// This prototype is deprecated.7850static inline __ATTRS_o_ai __vector __bool short7851vec_sll(__vector __bool short __a, __vector unsigned int __b) {7852 return (__vector __bool short)__builtin_s390_vsl(7853 (__vector unsigned char)__a, (__vector unsigned char)__b);7854}7855 7856static inline __ATTRS_o_ai __vector unsigned short7857vec_sll(__vector unsigned short __a, __vector unsigned char __b) {7858 return (__vector unsigned short)__builtin_s390_vsl(7859 (__vector unsigned char)__a, __b);7860}7861 7862// This prototype is deprecated.7863static inline __ATTRS_o_ai __vector unsigned short7864vec_sll(__vector unsigned short __a, __vector unsigned short __b) {7865 return (__vector unsigned short)__builtin_s390_vsl(7866 (__vector unsigned char)__a, (__vector unsigned char)__b);7867}7868 7869// This prototype is deprecated.7870static inline __ATTRS_o_ai __vector unsigned short7871vec_sll(__vector unsigned short __a, __vector unsigned int __b) {7872 return (__vector unsigned short)__builtin_s390_vsl(7873 (__vector unsigned char)__a, (__vector unsigned char)__b);7874}7875 7876static inline __ATTRS_o_ai __vector signed int7877vec_sll(__vector signed int __a, __vector unsigned char __b) {7878 return (__vector signed int)__builtin_s390_vsl(7879 (__vector unsigned char)__a, __b);7880}7881 7882// This prototype is deprecated.7883static inline __ATTRS_o_ai __vector signed int7884vec_sll(__vector signed int __a, __vector unsigned short __b) {7885 return (__vector signed int)__builtin_s390_vsl(7886 (__vector unsigned char)__a, (__vector unsigned char)__b);7887}7888 7889// This prototype is deprecated.7890static inline __ATTRS_o_ai __vector signed int7891vec_sll(__vector signed int __a, __vector unsigned int __b) {7892 return (__vector signed int)__builtin_s390_vsl(7893 (__vector unsigned char)__a, (__vector unsigned char)__b);7894}7895 7896// This prototype is deprecated.7897static inline __ATTRS_o_ai __vector __bool int7898vec_sll(__vector __bool int __a, __vector unsigned char __b) {7899 return (__vector __bool int)__builtin_s390_vsl(7900 (__vector unsigned char)__a, __b);7901}7902 7903// This prototype is deprecated.7904static inline __ATTRS_o_ai __vector __bool int7905vec_sll(__vector __bool int __a, __vector unsigned short __b) {7906 return (__vector __bool int)__builtin_s390_vsl(7907 (__vector unsigned char)__a, (__vector unsigned char)__b);7908}7909 7910// This prototype is deprecated.7911static inline __ATTRS_o_ai __vector __bool int7912vec_sll(__vector __bool int __a, __vector unsigned int __b) {7913 return (__vector __bool int)__builtin_s390_vsl(7914 (__vector unsigned char)__a, (__vector unsigned char)__b);7915}7916 7917static inline __ATTRS_o_ai __vector unsigned int7918vec_sll(__vector unsigned int __a, __vector unsigned char __b) {7919 return (__vector unsigned int)__builtin_s390_vsl(7920 (__vector unsigned char)__a, __b);7921}7922 7923// This prototype is deprecated.7924static inline __ATTRS_o_ai __vector unsigned int7925vec_sll(__vector unsigned int __a, __vector unsigned short __b) {7926 return (__vector unsigned int)__builtin_s390_vsl(7927 (__vector unsigned char)__a, (__vector unsigned char)__b);7928}7929 7930// This prototype is deprecated.7931static inline __ATTRS_o_ai __vector unsigned int7932vec_sll(__vector unsigned int __a, __vector unsigned int __b) {7933 return (__vector unsigned int)__builtin_s390_vsl(7934 (__vector unsigned char)__a, (__vector unsigned char)__b);7935}7936 7937static inline __ATTRS_o_ai __vector signed long long7938vec_sll(__vector signed long long __a, __vector unsigned char __b) {7939 return (__vector signed long long)__builtin_s390_vsl(7940 (__vector unsigned char)__a, __b);7941}7942 7943// This prototype is deprecated.7944static inline __ATTRS_o_ai __vector signed long long7945vec_sll(__vector signed long long __a, __vector unsigned short __b) {7946 return (__vector signed long long)__builtin_s390_vsl(7947 (__vector unsigned char)__a, (__vector unsigned char)__b);7948}7949 7950// This prototype is deprecated.7951static inline __ATTRS_o_ai __vector signed long long7952vec_sll(__vector signed long long __a, __vector unsigned int __b) {7953 return (__vector signed long long)__builtin_s390_vsl(7954 (__vector unsigned char)__a, (__vector unsigned char)__b);7955}7956 7957// This prototype is deprecated.7958static inline __ATTRS_o_ai __vector __bool long long7959vec_sll(__vector __bool long long __a, __vector unsigned char __b) {7960 return (__vector __bool long long)__builtin_s390_vsl(7961 (__vector unsigned char)__a, __b);7962}7963 7964// This prototype is deprecated.7965static inline __ATTRS_o_ai __vector __bool long long7966vec_sll(__vector __bool long long __a, __vector unsigned short __b) {7967 return (__vector __bool long long)__builtin_s390_vsl(7968 (__vector unsigned char)__a, (__vector unsigned char)__b);7969}7970 7971// This prototype is deprecated.7972static inline __ATTRS_o_ai __vector __bool long long7973vec_sll(__vector __bool long long __a, __vector unsigned int __b) {7974 return (__vector __bool long long)__builtin_s390_vsl(7975 (__vector unsigned char)__a, (__vector unsigned char)__b);7976}7977 7978static inline __ATTRS_o_ai __vector unsigned long long7979vec_sll(__vector unsigned long long __a, __vector unsigned char __b) {7980 return (__vector unsigned long long)__builtin_s390_vsl(7981 (__vector unsigned char)__a, __b);7982}7983 7984// This prototype is deprecated.7985static inline __ATTRS_o_ai __vector unsigned long long7986vec_sll(__vector unsigned long long __a, __vector unsigned short __b) {7987 return (__vector unsigned long long)__builtin_s390_vsl(7988 (__vector unsigned char)__a, (__vector unsigned char)__b);7989}7990 7991// This prototype is deprecated.7992static inline __ATTRS_o_ai __vector unsigned long long7993vec_sll(__vector unsigned long long __a, __vector unsigned int __b) {7994 return (__vector unsigned long long)__builtin_s390_vsl(7995 (__vector unsigned char)__a, (__vector unsigned char)__b);7996}7997 7998static inline __ATTRS_o_ai __vector signed __int1287999vec_sll(__vector signed __int128 __a, __vector unsigned char __b) {8000 return (__vector signed __int128)__builtin_s390_vsl(8001 (__vector unsigned char)__a, __b);8002}8003 8004static inline __ATTRS_o_ai __vector unsigned __int1288005vec_sll(__vector unsigned __int128 __a, __vector unsigned char __b) {8006 return (__vector unsigned __int128)__builtin_s390_vsl(8007 (__vector unsigned char)__a, __b);8008}8009 8010/*-- vec_slb ----------------------------------------------------------------*/8011 8012// This prototype is deprecated.8013static inline __ATTRS_o_ai __vector signed char8014vec_slb(__vector signed char __a, __vector signed char __b) {8015 return (__vector signed char)__builtin_s390_vslb(8016 (__vector unsigned char)__a, (__vector unsigned char)__b);8017}8018 8019static inline __ATTRS_o_ai __vector signed char8020vec_slb(__vector signed char __a, __vector unsigned char __b) {8021 return (__vector signed char)__builtin_s390_vslb(8022 (__vector unsigned char)__a, __b);8023}8024 8025// This prototype is deprecated.8026static inline __ATTRS_o_ai __vector unsigned char8027vec_slb(__vector unsigned char __a, __vector signed char __b) {8028 return __builtin_s390_vslb(__a, (__vector unsigned char)__b);8029}8030 8031static inline __ATTRS_o_ai __vector unsigned char8032vec_slb(__vector unsigned char __a, __vector unsigned char __b) {8033 return __builtin_s390_vslb(__a, __b);8034}8035 8036// This prototype is deprecated.8037static inline __ATTRS_o_ai __vector signed short8038vec_slb(__vector signed short __a, __vector signed short __b) {8039 return (__vector signed short)__builtin_s390_vslb(8040 (__vector unsigned char)__a, (__vector unsigned char)__b);8041}8042 8043// This prototype is deprecated.8044static inline __ATTRS_o_ai __vector signed short8045vec_slb(__vector signed short __a, __vector unsigned short __b) {8046 return (__vector signed short)__builtin_s390_vslb(8047 (__vector unsigned char)__a, (__vector unsigned char)__b);8048}8049 8050static inline __ATTRS_o_ai __vector signed short8051vec_slb(__vector signed short __a, __vector unsigned char __b) {8052 return (__vector signed short)__builtin_s390_vslb(8053 (__vector unsigned char)__a, __b);8054}8055 8056// This prototype is deprecated.8057static inline __ATTRS_o_ai __vector unsigned short8058vec_slb(__vector unsigned short __a, __vector signed short __b) {8059 return (__vector unsigned short)__builtin_s390_vslb(8060 (__vector unsigned char)__a, (__vector unsigned char)__b);8061}8062 8063// This prototype is deprecated.8064static inline __ATTRS_o_ai __vector unsigned short8065vec_slb(__vector unsigned short __a, __vector unsigned short __b) {8066 return (__vector unsigned short)__builtin_s390_vslb(8067 (__vector unsigned char)__a, (__vector unsigned char)__b);8068}8069 8070static inline __ATTRS_o_ai __vector unsigned short8071vec_slb(__vector unsigned short __a, __vector unsigned char __b) {8072 return (__vector unsigned short)__builtin_s390_vslb(8073 (__vector unsigned char)__a, __b);8074}8075 8076// This prototype is deprecated.8077static inline __ATTRS_o_ai __vector signed int8078vec_slb(__vector signed int __a, __vector signed int __b) {8079 return (__vector signed int)__builtin_s390_vslb(8080 (__vector unsigned char)__a, (__vector unsigned char)__b);8081}8082 8083// This prototype is deprecated.8084static inline __ATTRS_o_ai __vector signed int8085vec_slb(__vector signed int __a, __vector unsigned int __b) {8086 return (__vector signed int)__builtin_s390_vslb(8087 (__vector unsigned char)__a, (__vector unsigned char)__b);8088}8089 8090static inline __ATTRS_o_ai __vector signed int8091vec_slb(__vector signed int __a, __vector unsigned char __b) {8092 return (__vector signed int)__builtin_s390_vslb(8093 (__vector unsigned char)__a, __b);8094}8095 8096// This prototype is deprecated.8097static inline __ATTRS_o_ai __vector unsigned int8098vec_slb(__vector unsigned int __a, __vector signed int __b) {8099 return (__vector unsigned int)__builtin_s390_vslb(8100 (__vector unsigned char)__a, (__vector unsigned char)__b);8101}8102 8103// This prototype is deprecated.8104static inline __ATTRS_o_ai __vector unsigned int8105vec_slb(__vector unsigned int __a, __vector unsigned int __b) {8106 return (__vector unsigned int)__builtin_s390_vslb(8107 (__vector unsigned char)__a, (__vector unsigned char)__b);8108}8109 8110static inline __ATTRS_o_ai __vector unsigned int8111vec_slb(__vector unsigned int __a, __vector unsigned char __b) {8112 return (__vector unsigned int)__builtin_s390_vslb(8113 (__vector unsigned char)__a, __b);8114}8115 8116// This prototype is deprecated.8117static inline __ATTRS_o_ai __vector signed long long8118vec_slb(__vector signed long long __a, __vector signed long long __b) {8119 return (__vector signed long long)__builtin_s390_vslb(8120 (__vector unsigned char)__a, (__vector unsigned char)__b);8121}8122 8123// This prototype is deprecated.8124static inline __ATTRS_o_ai __vector signed long long8125vec_slb(__vector signed long long __a, __vector unsigned long long __b) {8126 return (__vector signed long long)__builtin_s390_vslb(8127 (__vector unsigned char)__a, (__vector unsigned char)__b);8128}8129 8130static inline __ATTRS_o_ai __vector signed long long8131vec_slb(__vector signed long long __a, __vector unsigned char __b) {8132 return (__vector signed long long)__builtin_s390_vslb(8133 (__vector unsigned char)__a, __b);8134}8135 8136// This prototype is deprecated.8137static inline __ATTRS_o_ai __vector unsigned long long8138vec_slb(__vector unsigned long long __a, __vector signed long long __b) {8139 return (__vector unsigned long long)__builtin_s390_vslb(8140 (__vector unsigned char)__a, (__vector unsigned char)__b);8141}8142 8143// This prototype is deprecated.8144static inline __ATTRS_o_ai __vector unsigned long long8145vec_slb(__vector unsigned long long __a, __vector unsigned long long __b) {8146 return (__vector unsigned long long)__builtin_s390_vslb(8147 (__vector unsigned char)__a, (__vector unsigned char)__b);8148}8149 8150static inline __ATTRS_o_ai __vector unsigned long long8151vec_slb(__vector unsigned long long __a, __vector unsigned char __b) {8152 return (__vector unsigned long long)__builtin_s390_vslb(8153 (__vector unsigned char)__a, __b);8154}8155 8156static inline __ATTRS_o_ai __vector signed __int1288157vec_slb(__vector signed __int128 __a, __vector unsigned char __b) {8158 return (__vector signed __int128)__builtin_s390_vslb(8159 (__vector unsigned char)__a, __b);8160}8161 8162static inline __ATTRS_o_ai __vector unsigned __int1288163vec_slb(__vector unsigned __int128 __a, __vector unsigned char __b) {8164 return (__vector unsigned __int128)__builtin_s390_vslb(8165 (__vector unsigned char)__a, __b);8166}8167 8168#if __ARCH__ >= 128169// This prototype is deprecated.8170static inline __ATTRS_o_ai __vector float8171vec_slb(__vector float __a, __vector signed int __b) {8172 return (__vector float)__builtin_s390_vslb(8173 (__vector unsigned char)__a, (__vector unsigned char)__b);8174}8175 8176// This prototype is deprecated.8177static inline __ATTRS_o_ai __vector float8178vec_slb(__vector float __a, __vector unsigned int __b) {8179 return (__vector float)__builtin_s390_vslb(8180 (__vector unsigned char)__a, (__vector unsigned char)__b);8181}8182 8183static inline __ATTRS_o_ai __vector float8184vec_slb(__vector float __a, __vector unsigned char __b) {8185 return (__vector float)__builtin_s390_vslb(8186 (__vector unsigned char)__a, __b);8187}8188#endif8189 8190// This prototype is deprecated.8191static inline __ATTRS_o_ai __vector double8192vec_slb(__vector double __a, __vector signed long long __b) {8193 return (__vector double)__builtin_s390_vslb(8194 (__vector unsigned char)__a, (__vector unsigned char)__b);8195}8196 8197// This prototype is deprecated.8198static inline __ATTRS_o_ai __vector double8199vec_slb(__vector double __a, __vector unsigned long long __b) {8200 return (__vector double)__builtin_s390_vslb(8201 (__vector unsigned char)__a, (__vector unsigned char)__b);8202}8203 8204static inline __ATTRS_o_ai __vector double8205vec_slb(__vector double __a, __vector unsigned char __b) {8206 return (__vector double)__builtin_s390_vslb(8207 (__vector unsigned char)__a, __b);8208}8209 8210/*-- vec_sld ----------------------------------------------------------------*/8211 8212extern __ATTRS_o __vector signed char8213vec_sld(__vector signed char __a, __vector signed char __b, int __c)8214 __constant_range(__c, 0, 15);8215 8216// This prototype is deprecated.8217extern __ATTRS_o __vector __bool char8218vec_sld(__vector __bool char __a, __vector __bool char __b, int __c)8219 __constant_range(__c, 0, 15);8220 8221extern __ATTRS_o __vector unsigned char8222vec_sld(__vector unsigned char __a, __vector unsigned char __b, int __c)8223 __constant_range(__c, 0, 15);8224 8225extern __ATTRS_o __vector signed short8226vec_sld(__vector signed short __a, __vector signed short __b, int __c)8227 __constant_range(__c, 0, 15);8228 8229// This prototype is deprecated.8230extern __ATTRS_o __vector __bool short8231vec_sld(__vector __bool short __a, __vector __bool short __b, int __c)8232 __constant_range(__c, 0, 15);8233 8234extern __ATTRS_o __vector unsigned short8235vec_sld(__vector unsigned short __a, __vector unsigned short __b, int __c)8236 __constant_range(__c, 0, 15);8237 8238extern __ATTRS_o __vector signed int8239vec_sld(__vector signed int __a, __vector signed int __b, int __c)8240 __constant_range(__c, 0, 15);8241 8242// This prototype is deprecated.8243extern __ATTRS_o __vector __bool int8244vec_sld(__vector __bool int __a, __vector __bool int __b, int __c)8245 __constant_range(__c, 0, 15);8246 8247extern __ATTRS_o __vector unsigned int8248vec_sld(__vector unsigned int __a, __vector unsigned int __b, int __c)8249 __constant_range(__c, 0, 15);8250 8251extern __ATTRS_o __vector signed long long8252vec_sld(__vector signed long long __a, __vector signed long long __b, int __c)8253 __constant_range(__c, 0, 15);8254 8255// This prototype is deprecated.8256extern __ATTRS_o __vector __bool long long8257vec_sld(__vector __bool long long __a, __vector __bool long long __b, int __c)8258 __constant_range(__c, 0, 15);8259 8260extern __ATTRS_o __vector unsigned long long8261vec_sld(__vector unsigned long long __a, __vector unsigned long long __b,8262 int __c)8263 __constant_range(__c, 0, 15);8264 8265extern __ATTRS_o __vector signed __int1288266vec_sld(__vector signed __int128 __a, __vector signed __int128 __b, int __c)8267 __constant_range(__c, 0, 15);8268 8269extern __ATTRS_o __vector unsigned __int1288270vec_sld(__vector unsigned __int128 __a, __vector unsigned __int128 __b,8271 int __c)8272 __constant_range(__c, 0, 15);8273 8274#if __ARCH__ >= 128275extern __ATTRS_o __vector float8276vec_sld(__vector float __a, __vector float __b, int __c)8277 __constant_range(__c, 0, 15);8278#endif8279 8280extern __ATTRS_o __vector double8281vec_sld(__vector double __a, __vector double __b, int __c)8282 __constant_range(__c, 0, 15);8283 8284#define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \8285 __builtin_s390_vsldb((__vector unsigned char)(X), \8286 (__vector unsigned char)(Y), (Z)))8287 8288/*-- vec_sldw ---------------------------------------------------------------*/8289 8290extern __ATTRS_o __vector signed char8291vec_sldw(__vector signed char __a, __vector signed char __b, int __c)8292 __constant_range(__c, 0, 3);8293 8294extern __ATTRS_o __vector unsigned char8295vec_sldw(__vector unsigned char __a, __vector unsigned char __b, int __c)8296 __constant_range(__c, 0, 3);8297 8298extern __ATTRS_o __vector signed short8299vec_sldw(__vector signed short __a, __vector signed short __b, int __c)8300 __constant_range(__c, 0, 3);8301 8302extern __ATTRS_o __vector unsigned short8303vec_sldw(__vector unsigned short __a, __vector unsigned short __b, int __c)8304 __constant_range(__c, 0, 3);8305 8306extern __ATTRS_o __vector signed int8307vec_sldw(__vector signed int __a, __vector signed int __b, int __c)8308 __constant_range(__c, 0, 3);8309 8310extern __ATTRS_o __vector unsigned int8311vec_sldw(__vector unsigned int __a, __vector unsigned int __b, int __c)8312 __constant_range(__c, 0, 3);8313 8314extern __ATTRS_o __vector signed long long8315vec_sldw(__vector signed long long __a, __vector signed long long __b, int __c)8316 __constant_range(__c, 0, 3);8317 8318extern __ATTRS_o __vector unsigned long long8319vec_sldw(__vector unsigned long long __a, __vector unsigned long long __b,8320 int __c)8321 __constant_range(__c, 0, 3);8322 8323extern __ATTRS_o __vector signed __int1288324vec_sldw(__vector signed __int128 __a, __vector signed __int128 __b, int __c)8325 __constant_range(__c, 0, 3);8326 8327extern __ATTRS_o __vector unsigned __int1288328vec_sldw(__vector unsigned __int128 __a, __vector unsigned __int128 __b,8329 int __c)8330 __constant_range(__c, 0, 3);8331 8332// This prototype is deprecated.8333extern __ATTRS_o __vector double8334vec_sldw(__vector double __a, __vector double __b, int __c)8335 __constant_range(__c, 0, 3);8336 8337#define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \8338 __builtin_s390_vsldb((__vector unsigned char)(X), \8339 (__vector unsigned char)(Y), (Z) * 4))8340 8341/*-- vec_sldb ---------------------------------------------------------------*/8342 8343#if __ARCH__ >= 138344 8345extern __ATTRS_o __vector signed char8346vec_sldb(__vector signed char __a, __vector signed char __b, int __c)8347 __constant_range(__c, 0, 7);8348 8349extern __ATTRS_o __vector unsigned char8350vec_sldb(__vector unsigned char __a, __vector unsigned char __b, int __c)8351 __constant_range(__c, 0, 7);8352 8353extern __ATTRS_o __vector signed short8354vec_sldb(__vector signed short __a, __vector signed short __b, int __c)8355 __constant_range(__c, 0, 7);8356 8357extern __ATTRS_o __vector unsigned short8358vec_sldb(__vector unsigned short __a, __vector unsigned short __b, int __c)8359 __constant_range(__c, 0, 7);8360 8361extern __ATTRS_o __vector signed int8362vec_sldb(__vector signed int __a, __vector signed int __b, int __c)8363 __constant_range(__c, 0, 7);8364 8365extern __ATTRS_o __vector unsigned int8366vec_sldb(__vector unsigned int __a, __vector unsigned int __b, int __c)8367 __constant_range(__c, 0, 7);8368 8369extern __ATTRS_o __vector signed long long8370vec_sldb(__vector signed long long __a, __vector signed long long __b, int __c)8371 __constant_range(__c, 0, 7);8372 8373extern __ATTRS_o __vector unsigned long long8374vec_sldb(__vector unsigned long long __a, __vector unsigned long long __b,8375 int __c)8376 __constant_range(__c, 0, 7);8377 8378extern __ATTRS_o __vector signed __int1288379vec_sldb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)8380 __constant_range(__c, 0, 7);8381 8382extern __ATTRS_o __vector unsigned __int1288383vec_sldb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,8384 int __c)8385 __constant_range(__c, 0, 7);8386 8387extern __ATTRS_o __vector float8388vec_sldb(__vector float __a, __vector float __b, int __c)8389 __constant_range(__c, 0, 7);8390 8391extern __ATTRS_o __vector double8392vec_sldb(__vector double __a, __vector double __b, int __c)8393 __constant_range(__c, 0, 7);8394 8395#define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \8396 __builtin_s390_vsld((__vector unsigned char)(X), \8397 (__vector unsigned char)(Y), (Z)))8398 8399#endif8400 8401/*-- vec_sral ---------------------------------------------------------------*/8402 8403static inline __ATTRS_o_ai __vector signed char8404vec_sral(__vector signed char __a, __vector unsigned char __b) {8405 return (__vector signed char)__builtin_s390_vsra(8406 (__vector unsigned char)__a, __b);8407}8408 8409// This prototype is deprecated.8410static inline __ATTRS_o_ai __vector signed char8411vec_sral(__vector signed char __a, __vector unsigned short __b) {8412 return (__vector signed char)__builtin_s390_vsra(8413 (__vector unsigned char)__a, (__vector unsigned char)__b);8414}8415 8416// This prototype is deprecated.8417static inline __ATTRS_o_ai __vector signed char8418vec_sral(__vector signed char __a, __vector unsigned int __b) {8419 return (__vector signed char)__builtin_s390_vsra(8420 (__vector unsigned char)__a, (__vector unsigned char)__b);8421}8422 8423// This prototype is deprecated.8424static inline __ATTRS_o_ai __vector __bool char8425vec_sral(__vector __bool char __a, __vector unsigned char __b) {8426 return (__vector __bool char)__builtin_s390_vsra(8427 (__vector unsigned char)__a, __b);8428}8429 8430// This prototype is deprecated.8431static inline __ATTRS_o_ai __vector __bool char8432vec_sral(__vector __bool char __a, __vector unsigned short __b) {8433 return (__vector __bool char)__builtin_s390_vsra(8434 (__vector unsigned char)__a, (__vector unsigned char)__b);8435}8436 8437// This prototype is deprecated.8438static inline __ATTRS_o_ai __vector __bool char8439vec_sral(__vector __bool char __a, __vector unsigned int __b) {8440 return (__vector __bool char)__builtin_s390_vsra(8441 (__vector unsigned char)__a, (__vector unsigned char)__b);8442}8443 8444static inline __ATTRS_o_ai __vector unsigned char8445vec_sral(__vector unsigned char __a, __vector unsigned char __b) {8446 return __builtin_s390_vsra(__a, __b);8447}8448 8449// This prototype is deprecated.8450static inline __ATTRS_o_ai __vector unsigned char8451vec_sral(__vector unsigned char __a, __vector unsigned short __b) {8452 return __builtin_s390_vsra(__a, (__vector unsigned char)__b);8453}8454 8455// This prototype is deprecated.8456static inline __ATTRS_o_ai __vector unsigned char8457vec_sral(__vector unsigned char __a, __vector unsigned int __b) {8458 return __builtin_s390_vsra(__a, (__vector unsigned char)__b);8459}8460 8461static inline __ATTRS_o_ai __vector signed short8462vec_sral(__vector signed short __a, __vector unsigned char __b) {8463 return (__vector signed short)__builtin_s390_vsra(8464 (__vector unsigned char)__a, __b);8465}8466 8467// This prototype is deprecated.8468static inline __ATTRS_o_ai __vector signed short8469vec_sral(__vector signed short __a, __vector unsigned short __b) {8470 return (__vector signed short)__builtin_s390_vsra(8471 (__vector unsigned char)__a, (__vector unsigned char)__b);8472}8473 8474// This prototype is deprecated.8475static inline __ATTRS_o_ai __vector signed short8476vec_sral(__vector signed short __a, __vector unsigned int __b) {8477 return (__vector signed short)__builtin_s390_vsra(8478 (__vector unsigned char)__a, (__vector unsigned char)__b);8479}8480 8481// This prototype is deprecated.8482static inline __ATTRS_o_ai __vector __bool short8483vec_sral(__vector __bool short __a, __vector unsigned char __b) {8484 return (__vector __bool short)__builtin_s390_vsra(8485 (__vector unsigned char)__a, __b);8486}8487 8488// This prototype is deprecated.8489static inline __ATTRS_o_ai __vector __bool short8490vec_sral(__vector __bool short __a, __vector unsigned short __b) {8491 return (__vector __bool short)__builtin_s390_vsra(8492 (__vector unsigned char)__a, (__vector unsigned char)__b);8493}8494 8495// This prototype is deprecated.8496static inline __ATTRS_o_ai __vector __bool short8497vec_sral(__vector __bool short __a, __vector unsigned int __b) {8498 return (__vector __bool short)__builtin_s390_vsra(8499 (__vector unsigned char)__a, (__vector unsigned char)__b);8500}8501 8502static inline __ATTRS_o_ai __vector unsigned short8503vec_sral(__vector unsigned short __a, __vector unsigned char __b) {8504 return (__vector unsigned short)__builtin_s390_vsra(8505 (__vector unsigned char)__a, __b);8506}8507 8508// This prototype is deprecated.8509static inline __ATTRS_o_ai __vector unsigned short8510vec_sral(__vector unsigned short __a, __vector unsigned short __b) {8511 return (__vector unsigned short)__builtin_s390_vsra(8512 (__vector unsigned char)__a, (__vector unsigned char)__b);8513}8514 8515// This prototype is deprecated.8516static inline __ATTRS_o_ai __vector unsigned short8517vec_sral(__vector unsigned short __a, __vector unsigned int __b) {8518 return (__vector unsigned short)__builtin_s390_vsra(8519 (__vector unsigned char)__a, (__vector unsigned char)__b);8520}8521 8522static inline __ATTRS_o_ai __vector signed int8523vec_sral(__vector signed int __a, __vector unsigned char __b) {8524 return (__vector signed int)__builtin_s390_vsra(8525 (__vector unsigned char)__a, __b);8526}8527 8528// This prototype is deprecated.8529static inline __ATTRS_o_ai __vector signed int8530vec_sral(__vector signed int __a, __vector unsigned short __b) {8531 return (__vector signed int)__builtin_s390_vsra(8532 (__vector unsigned char)__a, (__vector unsigned char)__b);8533}8534 8535// This prototype is deprecated.8536static inline __ATTRS_o_ai __vector signed int8537vec_sral(__vector signed int __a, __vector unsigned int __b) {8538 return (__vector signed int)__builtin_s390_vsra(8539 (__vector unsigned char)__a, (__vector unsigned char)__b);8540}8541 8542// This prototype is deprecated.8543static inline __ATTRS_o_ai __vector __bool int8544vec_sral(__vector __bool int __a, __vector unsigned char __b) {8545 return (__vector __bool int)__builtin_s390_vsra(8546 (__vector unsigned char)__a, __b);8547}8548 8549// This prototype is deprecated.8550static inline __ATTRS_o_ai __vector __bool int8551vec_sral(__vector __bool int __a, __vector unsigned short __b) {8552 return (__vector __bool int)__builtin_s390_vsra(8553 (__vector unsigned char)__a, (__vector unsigned char)__b);8554}8555 8556// This prototype is deprecated.8557static inline __ATTRS_o_ai __vector __bool int8558vec_sral(__vector __bool int __a, __vector unsigned int __b) {8559 return (__vector __bool int)__builtin_s390_vsra(8560 (__vector unsigned char)__a, (__vector unsigned char)__b);8561}8562 8563static inline __ATTRS_o_ai __vector unsigned int8564vec_sral(__vector unsigned int __a, __vector unsigned char __b) {8565 return (__vector unsigned int)__builtin_s390_vsra(8566 (__vector unsigned char)__a, __b);8567}8568 8569// This prototype is deprecated.8570static inline __ATTRS_o_ai __vector unsigned int8571vec_sral(__vector unsigned int __a, __vector unsigned short __b) {8572 return (__vector unsigned int)__builtin_s390_vsra(8573 (__vector unsigned char)__a, (__vector unsigned char)__b);8574}8575 8576// This prototype is deprecated.8577static inline __ATTRS_o_ai __vector unsigned int8578vec_sral(__vector unsigned int __a, __vector unsigned int __b) {8579 return (__vector unsigned int)__builtin_s390_vsra(8580 (__vector unsigned char)__a, (__vector unsigned char)__b);8581}8582 8583static inline __ATTRS_o_ai __vector signed long long8584vec_sral(__vector signed long long __a, __vector unsigned char __b) {8585 return (__vector signed long long)__builtin_s390_vsra(8586 (__vector unsigned char)__a, __b);8587}8588 8589// This prototype is deprecated.8590static inline __ATTRS_o_ai __vector signed long long8591vec_sral(__vector signed long long __a, __vector unsigned short __b) {8592 return (__vector signed long long)__builtin_s390_vsra(8593 (__vector unsigned char)__a, (__vector unsigned char)__b);8594}8595 8596// This prototype is deprecated.8597static inline __ATTRS_o_ai __vector signed long long8598vec_sral(__vector signed long long __a, __vector unsigned int __b) {8599 return (__vector signed long long)__builtin_s390_vsra(8600 (__vector unsigned char)__a, (__vector unsigned char)__b);8601}8602 8603// This prototype is deprecated.8604static inline __ATTRS_o_ai __vector __bool long long8605vec_sral(__vector __bool long long __a, __vector unsigned char __b) {8606 return (__vector __bool long long)__builtin_s390_vsra(8607 (__vector unsigned char)__a, __b);8608}8609 8610// This prototype is deprecated.8611static inline __ATTRS_o_ai __vector __bool long long8612vec_sral(__vector __bool long long __a, __vector unsigned short __b) {8613 return (__vector __bool long long)__builtin_s390_vsra(8614 (__vector unsigned char)__a, (__vector unsigned char)__b);8615}8616 8617// This prototype is deprecated.8618static inline __ATTRS_o_ai __vector __bool long long8619vec_sral(__vector __bool long long __a, __vector unsigned int __b) {8620 return (__vector __bool long long)__builtin_s390_vsra(8621 (__vector unsigned char)__a, (__vector unsigned char)__b);8622}8623 8624static inline __ATTRS_o_ai __vector unsigned long long8625vec_sral(__vector unsigned long long __a, __vector unsigned char __b) {8626 return (__vector unsigned long long)__builtin_s390_vsra(8627 (__vector unsigned char)__a, __b);8628}8629 8630// This prototype is deprecated.8631static inline __ATTRS_o_ai __vector unsigned long long8632vec_sral(__vector unsigned long long __a, __vector unsigned short __b) {8633 return (__vector unsigned long long)__builtin_s390_vsra(8634 (__vector unsigned char)__a, (__vector unsigned char)__b);8635}8636 8637// This prototype is deprecated.8638static inline __ATTRS_o_ai __vector unsigned long long8639vec_sral(__vector unsigned long long __a, __vector unsigned int __b) {8640 return (__vector unsigned long long)__builtin_s390_vsra(8641 (__vector unsigned char)__a, (__vector unsigned char)__b);8642}8643 8644static inline __ATTRS_o_ai __vector signed __int1288645vec_sral(__vector signed __int128 __a, __vector unsigned char __b) {8646 return (__vector signed __int128)__builtin_s390_vsra(8647 (__vector unsigned char)__a, __b);8648}8649 8650static inline __ATTRS_o_ai __vector unsigned __int1288651vec_sral(__vector unsigned __int128 __a, __vector unsigned char __b) {8652 return (__vector unsigned __int128)__builtin_s390_vsra(8653 (__vector unsigned char)__a, __b);8654}8655 8656/*-- vec_srab ---------------------------------------------------------------*/8657 8658// This prototype is deprecated.8659static inline __ATTRS_o_ai __vector signed char8660vec_srab(__vector signed char __a, __vector signed char __b) {8661 return (__vector signed char)__builtin_s390_vsrab(8662 (__vector unsigned char)__a, (__vector unsigned char)__b);8663}8664 8665static inline __ATTRS_o_ai __vector signed char8666vec_srab(__vector signed char __a, __vector unsigned char __b) {8667 return (__vector signed char)__builtin_s390_vsrab(8668 (__vector unsigned char)__a, __b);8669}8670 8671// This prototype is deprecated.8672static inline __ATTRS_o_ai __vector unsigned char8673vec_srab(__vector unsigned char __a, __vector signed char __b) {8674 return __builtin_s390_vsrab(__a, (__vector unsigned char)__b);8675}8676 8677static inline __ATTRS_o_ai __vector unsigned char8678vec_srab(__vector unsigned char __a, __vector unsigned char __b) {8679 return __builtin_s390_vsrab(__a, __b);8680}8681 8682// This prototype is deprecated.8683static inline __ATTRS_o_ai __vector signed short8684vec_srab(__vector signed short __a, __vector signed short __b) {8685 return (__vector signed short)__builtin_s390_vsrab(8686 (__vector unsigned char)__a, (__vector unsigned char)__b);8687}8688 8689// This prototype is deprecated.8690static inline __ATTRS_o_ai __vector signed short8691vec_srab(__vector signed short __a, __vector unsigned short __b) {8692 return (__vector signed short)__builtin_s390_vsrab(8693 (__vector unsigned char)__a, (__vector unsigned char)__b);8694}8695 8696static inline __ATTRS_o_ai __vector signed short8697vec_srab(__vector signed short __a, __vector unsigned char __b) {8698 return (__vector signed short)__builtin_s390_vsrab(8699 (__vector unsigned char)__a, __b);8700}8701 8702// This prototype is deprecated.8703static inline __ATTRS_o_ai __vector unsigned short8704vec_srab(__vector unsigned short __a, __vector signed short __b) {8705 return (__vector unsigned short)__builtin_s390_vsrab(8706 (__vector unsigned char)__a, (__vector unsigned char)__b);8707}8708 8709// This prototype is deprecated.8710static inline __ATTRS_o_ai __vector unsigned short8711vec_srab(__vector unsigned short __a, __vector unsigned short __b) {8712 return (__vector unsigned short)__builtin_s390_vsrab(8713 (__vector unsigned char)__a, (__vector unsigned char)__b);8714}8715 8716static inline __ATTRS_o_ai __vector unsigned short8717vec_srab(__vector unsigned short __a, __vector unsigned char __b) {8718 return (__vector unsigned short)__builtin_s390_vsrab(8719 (__vector unsigned char)__a, __b);8720}8721 8722// This prototype is deprecated.8723static inline __ATTRS_o_ai __vector signed int8724vec_srab(__vector signed int __a, __vector signed int __b) {8725 return (__vector signed int)__builtin_s390_vsrab(8726 (__vector unsigned char)__a, (__vector unsigned char)__b);8727}8728 8729// This prototype is deprecated.8730static inline __ATTRS_o_ai __vector signed int8731vec_srab(__vector signed int __a, __vector unsigned int __b) {8732 return (__vector signed int)__builtin_s390_vsrab(8733 (__vector unsigned char)__a, (__vector unsigned char)__b);8734}8735 8736static inline __ATTRS_o_ai __vector signed int8737vec_srab(__vector signed int __a, __vector unsigned char __b) {8738 return (__vector signed int)__builtin_s390_vsrab(8739 (__vector unsigned char)__a, __b);8740}8741 8742// This prototype is deprecated.8743static inline __ATTRS_o_ai __vector unsigned int8744vec_srab(__vector unsigned int __a, __vector signed int __b) {8745 return (__vector unsigned int)__builtin_s390_vsrab(8746 (__vector unsigned char)__a, (__vector unsigned char)__b);8747}8748 8749// This prototype is deprecated.8750static inline __ATTRS_o_ai __vector unsigned int8751vec_srab(__vector unsigned int __a, __vector unsigned int __b) {8752 return (__vector unsigned int)__builtin_s390_vsrab(8753 (__vector unsigned char)__a, (__vector unsigned char)__b);8754}8755 8756static inline __ATTRS_o_ai __vector unsigned int8757vec_srab(__vector unsigned int __a, __vector unsigned char __b) {8758 return (__vector unsigned int)__builtin_s390_vsrab(8759 (__vector unsigned char)__a, __b);8760}8761 8762// This prototype is deprecated.8763static inline __ATTRS_o_ai __vector signed long long8764vec_srab(__vector signed long long __a, __vector signed long long __b) {8765 return (__vector signed long long)__builtin_s390_vsrab(8766 (__vector unsigned char)__a, (__vector unsigned char)__b);8767}8768 8769// This prototype is deprecated.8770static inline __ATTRS_o_ai __vector signed long long8771vec_srab(__vector signed long long __a, __vector unsigned long long __b) {8772 return (__vector signed long long)__builtin_s390_vsrab(8773 (__vector unsigned char)__a, (__vector unsigned char)__b);8774}8775 8776static inline __ATTRS_o_ai __vector signed long long8777vec_srab(__vector signed long long __a, __vector unsigned char __b) {8778 return (__vector signed long long)__builtin_s390_vsrab(8779 (__vector unsigned char)__a, __b);8780}8781 8782// This prototype is deprecated.8783static inline __ATTRS_o_ai __vector unsigned long long8784vec_srab(__vector unsigned long long __a, __vector signed long long __b) {8785 return (__vector unsigned long long)__builtin_s390_vsrab(8786 (__vector unsigned char)__a, (__vector unsigned char)__b);8787}8788 8789// This prototype is deprecated.8790static inline __ATTRS_o_ai __vector unsigned long long8791vec_srab(__vector unsigned long long __a, __vector unsigned long long __b) {8792 return (__vector unsigned long long)__builtin_s390_vsrab(8793 (__vector unsigned char)__a, (__vector unsigned char)__b);8794}8795 8796static inline __ATTRS_o_ai __vector unsigned long long8797vec_srab(__vector unsigned long long __a, __vector unsigned char __b) {8798 return (__vector unsigned long long)__builtin_s390_vsrab(8799 (__vector unsigned char)__a, __b);8800}8801 8802static inline __ATTRS_o_ai __vector signed __int1288803vec_srab(__vector signed __int128 __a, __vector unsigned char __b) {8804 return (__vector signed __int128)__builtin_s390_vsrab(8805 (__vector unsigned char)__a, __b);8806}8807 8808static inline __ATTRS_o_ai __vector unsigned __int1288809vec_srab(__vector unsigned __int128 __a, __vector unsigned char __b) {8810 return (__vector unsigned __int128)__builtin_s390_vsrab(8811 (__vector unsigned char)__a, __b);8812}8813 8814#if __ARCH__ >= 128815// This prototype is deprecated.8816static inline __ATTRS_o_ai __vector float8817vec_srab(__vector float __a, __vector signed int __b) {8818 return (__vector float)__builtin_s390_vsrab(8819 (__vector unsigned char)__a, (__vector unsigned char)__b);8820}8821 8822// This prototype is deprecated.8823static inline __ATTRS_o_ai __vector float8824vec_srab(__vector float __a, __vector unsigned int __b) {8825 return (__vector float)__builtin_s390_vsrab(8826 (__vector unsigned char)__a, (__vector unsigned char)__b);8827}8828 8829static inline __ATTRS_o_ai __vector float8830vec_srab(__vector float __a, __vector unsigned char __b) {8831 return (__vector float)__builtin_s390_vsrab(8832 (__vector unsigned char)__a, __b);8833}8834#endif8835 8836// This prototype is deprecated.8837static inline __ATTRS_o_ai __vector double8838vec_srab(__vector double __a, __vector signed long long __b) {8839 return (__vector double)__builtin_s390_vsrab(8840 (__vector unsigned char)__a, (__vector unsigned char)__b);8841}8842 8843// This prototype is deprecated.8844static inline __ATTRS_o_ai __vector double8845vec_srab(__vector double __a, __vector unsigned long long __b) {8846 return (__vector double)__builtin_s390_vsrab(8847 (__vector unsigned char)__a, (__vector unsigned char)__b);8848}8849 8850static inline __ATTRS_o_ai __vector double8851vec_srab(__vector double __a, __vector unsigned char __b) {8852 return (__vector double)__builtin_s390_vsrab(8853 (__vector unsigned char)__a, __b);8854}8855 8856/*-- vec_srl ----------------------------------------------------------------*/8857 8858static inline __ATTRS_o_ai __vector signed char8859vec_srl(__vector signed char __a, __vector unsigned char __b) {8860 return (__vector signed char)__builtin_s390_vsrl(8861 (__vector unsigned char)__a, __b);8862}8863 8864// This prototype is deprecated.8865static inline __ATTRS_o_ai __vector signed char8866vec_srl(__vector signed char __a, __vector unsigned short __b) {8867 return (__vector signed char)__builtin_s390_vsrl(8868 (__vector unsigned char)__a, (__vector unsigned char)__b);8869}8870 8871// This prototype is deprecated.8872static inline __ATTRS_o_ai __vector signed char8873vec_srl(__vector signed char __a, __vector unsigned int __b) {8874 return (__vector signed char)__builtin_s390_vsrl(8875 (__vector unsigned char)__a, (__vector unsigned char)__b);8876}8877 8878// This prototype is deprecated.8879static inline __ATTRS_o_ai __vector __bool char8880vec_srl(__vector __bool char __a, __vector unsigned char __b) {8881 return (__vector __bool char)__builtin_s390_vsrl(8882 (__vector unsigned char)__a, __b);8883}8884 8885// This prototype is deprecated.8886static inline __ATTRS_o_ai __vector __bool char8887vec_srl(__vector __bool char __a, __vector unsigned short __b) {8888 return (__vector __bool char)__builtin_s390_vsrl(8889 (__vector unsigned char)__a, (__vector unsigned char)__b);8890}8891 8892// This prototype is deprecated.8893static inline __ATTRS_o_ai __vector __bool char8894vec_srl(__vector __bool char __a, __vector unsigned int __b) {8895 return (__vector __bool char)__builtin_s390_vsrl(8896 (__vector unsigned char)__a, (__vector unsigned char)__b);8897}8898 8899static inline __ATTRS_o_ai __vector unsigned char8900vec_srl(__vector unsigned char __a, __vector unsigned char __b) {8901 return __builtin_s390_vsrl(__a, __b);8902}8903 8904// This prototype is deprecated.8905static inline __ATTRS_o_ai __vector unsigned char8906vec_srl(__vector unsigned char __a, __vector unsigned short __b) {8907 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);8908}8909 8910// This prototype is deprecated.8911static inline __ATTRS_o_ai __vector unsigned char8912vec_srl(__vector unsigned char __a, __vector unsigned int __b) {8913 return __builtin_s390_vsrl(__a, (__vector unsigned char)__b);8914}8915 8916static inline __ATTRS_o_ai __vector signed short8917vec_srl(__vector signed short __a, __vector unsigned char __b) {8918 return (__vector signed short)__builtin_s390_vsrl(8919 (__vector unsigned char)__a, __b);8920}8921 8922// This prototype is deprecated.8923static inline __ATTRS_o_ai __vector signed short8924vec_srl(__vector signed short __a, __vector unsigned short __b) {8925 return (__vector signed short)__builtin_s390_vsrl(8926 (__vector unsigned char)__a, (__vector unsigned char)__b);8927}8928 8929// This prototype is deprecated.8930static inline __ATTRS_o_ai __vector signed short8931vec_srl(__vector signed short __a, __vector unsigned int __b) {8932 return (__vector signed short)__builtin_s390_vsrl(8933 (__vector unsigned char)__a, (__vector unsigned char)__b);8934}8935 8936// This prototype is deprecated.8937static inline __ATTRS_o_ai __vector __bool short8938vec_srl(__vector __bool short __a, __vector unsigned char __b) {8939 return (__vector __bool short)__builtin_s390_vsrl(8940 (__vector unsigned char)__a, __b);8941}8942 8943// This prototype is deprecated.8944static inline __ATTRS_o_ai __vector __bool short8945vec_srl(__vector __bool short __a, __vector unsigned short __b) {8946 return (__vector __bool short)__builtin_s390_vsrl(8947 (__vector unsigned char)__a, (__vector unsigned char)__b);8948}8949 8950// This prototype is deprecated.8951static inline __ATTRS_o_ai __vector __bool short8952vec_srl(__vector __bool short __a, __vector unsigned int __b) {8953 return (__vector __bool short)__builtin_s390_vsrl(8954 (__vector unsigned char)__a, (__vector unsigned char)__b);8955}8956 8957static inline __ATTRS_o_ai __vector unsigned short8958vec_srl(__vector unsigned short __a, __vector unsigned char __b) {8959 return (__vector unsigned short)__builtin_s390_vsrl(8960 (__vector unsigned char)__a, __b);8961}8962 8963// This prototype is deprecated.8964static inline __ATTRS_o_ai __vector unsigned short8965vec_srl(__vector unsigned short __a, __vector unsigned short __b) {8966 return (__vector unsigned short)__builtin_s390_vsrl(8967 (__vector unsigned char)__a, (__vector unsigned char)__b);8968}8969 8970// This prototype is deprecated.8971static inline __ATTRS_o_ai __vector unsigned short8972vec_srl(__vector unsigned short __a, __vector unsigned int __b) {8973 return (__vector unsigned short)__builtin_s390_vsrl(8974 (__vector unsigned char)__a, (__vector unsigned char)__b);8975}8976 8977static inline __ATTRS_o_ai __vector signed int8978vec_srl(__vector signed int __a, __vector unsigned char __b) {8979 return (__vector signed int)__builtin_s390_vsrl(8980 (__vector unsigned char)__a, __b);8981}8982 8983// This prototype is deprecated.8984static inline __ATTRS_o_ai __vector signed int8985vec_srl(__vector signed int __a, __vector unsigned short __b) {8986 return (__vector signed int)__builtin_s390_vsrl(8987 (__vector unsigned char)__a, (__vector unsigned char)__b);8988}8989 8990// This prototype is deprecated.8991static inline __ATTRS_o_ai __vector signed int8992vec_srl(__vector signed int __a, __vector unsigned int __b) {8993 return (__vector signed int)__builtin_s390_vsrl(8994 (__vector unsigned char)__a, (__vector unsigned char)__b);8995}8996 8997// This prototype is deprecated.8998static inline __ATTRS_o_ai __vector __bool int8999vec_srl(__vector __bool int __a, __vector unsigned char __b) {9000 return (__vector __bool int)__builtin_s390_vsrl(9001 (__vector unsigned char)__a, __b);9002}9003 9004// This prototype is deprecated.9005static inline __ATTRS_o_ai __vector __bool int9006vec_srl(__vector __bool int __a, __vector unsigned short __b) {9007 return (__vector __bool int)__builtin_s390_vsrl(9008 (__vector unsigned char)__a, (__vector unsigned char)__b);9009}9010 9011// This prototype is deprecated.9012static inline __ATTRS_o_ai __vector __bool int9013vec_srl(__vector __bool int __a, __vector unsigned int __b) {9014 return (__vector __bool int)__builtin_s390_vsrl(9015 (__vector unsigned char)__a, (__vector unsigned char)__b);9016}9017 9018static inline __ATTRS_o_ai __vector unsigned int9019vec_srl(__vector unsigned int __a, __vector unsigned char __b) {9020 return (__vector unsigned int)__builtin_s390_vsrl(9021 (__vector unsigned char)__a, __b);9022}9023 9024// This prototype is deprecated.9025static inline __ATTRS_o_ai __vector unsigned int9026vec_srl(__vector unsigned int __a, __vector unsigned short __b) {9027 return (__vector unsigned int)__builtin_s390_vsrl(9028 (__vector unsigned char)__a, (__vector unsigned char)__b);9029}9030 9031// This prototype is deprecated.9032static inline __ATTRS_o_ai __vector unsigned int9033vec_srl(__vector unsigned int __a, __vector unsigned int __b) {9034 return (__vector unsigned int)__builtin_s390_vsrl(9035 (__vector unsigned char)__a, (__vector unsigned char)__b);9036}9037 9038static inline __ATTRS_o_ai __vector signed long long9039vec_srl(__vector signed long long __a, __vector unsigned char __b) {9040 return (__vector signed long long)__builtin_s390_vsrl(9041 (__vector unsigned char)__a, __b);9042}9043 9044// This prototype is deprecated.9045static inline __ATTRS_o_ai __vector signed long long9046vec_srl(__vector signed long long __a, __vector unsigned short __b) {9047 return (__vector signed long long)__builtin_s390_vsrl(9048 (__vector unsigned char)__a, (__vector unsigned char)__b);9049}9050 9051// This prototype is deprecated.9052static inline __ATTRS_o_ai __vector signed long long9053vec_srl(__vector signed long long __a, __vector unsigned int __b) {9054 return (__vector signed long long)__builtin_s390_vsrl(9055 (__vector unsigned char)__a, (__vector unsigned char)__b);9056}9057 9058// This prototype is deprecated.9059static inline __ATTRS_o_ai __vector __bool long long9060vec_srl(__vector __bool long long __a, __vector unsigned char __b) {9061 return (__vector __bool long long)__builtin_s390_vsrl(9062 (__vector unsigned char)__a, __b);9063}9064 9065// This prototype is deprecated.9066static inline __ATTRS_o_ai __vector __bool long long9067vec_srl(__vector __bool long long __a, __vector unsigned short __b) {9068 return (__vector __bool long long)__builtin_s390_vsrl(9069 (__vector unsigned char)__a, (__vector unsigned char)__b);9070}9071 9072// This prototype is deprecated.9073static inline __ATTRS_o_ai __vector __bool long long9074vec_srl(__vector __bool long long __a, __vector unsigned int __b) {9075 return (__vector __bool long long)__builtin_s390_vsrl(9076 (__vector unsigned char)__a, (__vector unsigned char)__b);9077}9078 9079static inline __ATTRS_o_ai __vector unsigned long long9080vec_srl(__vector unsigned long long __a, __vector unsigned char __b) {9081 return (__vector unsigned long long)__builtin_s390_vsrl(9082 (__vector unsigned char)__a, __b);9083}9084 9085// This prototype is deprecated.9086static inline __ATTRS_o_ai __vector unsigned long long9087vec_srl(__vector unsigned long long __a, __vector unsigned short __b) {9088 return (__vector unsigned long long)__builtin_s390_vsrl(9089 (__vector unsigned char)__a, (__vector unsigned char)__b);9090}9091 9092// This prototype is deprecated.9093static inline __ATTRS_o_ai __vector unsigned long long9094vec_srl(__vector unsigned long long __a, __vector unsigned int __b) {9095 return (__vector unsigned long long)__builtin_s390_vsrl(9096 (__vector unsigned char)__a, (__vector unsigned char)__b);9097}9098 9099static inline __ATTRS_o_ai __vector signed __int1289100vec_srl(__vector signed __int128 __a, __vector unsigned char __b) {9101 return (__vector signed __int128)__builtin_s390_vsrl(9102 (__vector unsigned char)__a, __b);9103}9104 9105static inline __ATTRS_o_ai __vector unsigned __int1289106vec_srl(__vector unsigned __int128 __a, __vector unsigned char __b) {9107 return (__vector unsigned __int128)__builtin_s390_vsrl(9108 (__vector unsigned char)__a, __b);9109}9110 9111/*-- vec_srb ----------------------------------------------------------------*/9112 9113// This prototype is deprecated.9114static inline __ATTRS_o_ai __vector signed char9115vec_srb(__vector signed char __a, __vector signed char __b) {9116 return (__vector signed char)__builtin_s390_vsrlb(9117 (__vector unsigned char)__a, (__vector unsigned char)__b);9118}9119 9120static inline __ATTRS_o_ai __vector signed char9121vec_srb(__vector signed char __a, __vector unsigned char __b) {9122 return (__vector signed char)__builtin_s390_vsrlb(9123 (__vector unsigned char)__a, __b);9124}9125 9126// This prototype is deprecated.9127static inline __ATTRS_o_ai __vector unsigned char9128vec_srb(__vector unsigned char __a, __vector signed char __b) {9129 return __builtin_s390_vsrlb(__a, (__vector unsigned char)__b);9130}9131 9132static inline __ATTRS_o_ai __vector unsigned char9133vec_srb(__vector unsigned char __a, __vector unsigned char __b) {9134 return __builtin_s390_vsrlb(__a, __b);9135}9136 9137// This prototype is deprecated.9138static inline __ATTRS_o_ai __vector signed short9139vec_srb(__vector signed short __a, __vector signed short __b) {9140 return (__vector signed short)__builtin_s390_vsrlb(9141 (__vector unsigned char)__a, (__vector unsigned char)__b);9142}9143 9144// This prototype is deprecated.9145static inline __ATTRS_o_ai __vector signed short9146vec_srb(__vector signed short __a, __vector unsigned short __b) {9147 return (__vector signed short)__builtin_s390_vsrlb(9148 (__vector unsigned char)__a, (__vector unsigned char)__b);9149}9150 9151static inline __ATTRS_o_ai __vector signed short9152vec_srb(__vector signed short __a, __vector unsigned char __b) {9153 return (__vector signed short)__builtin_s390_vsrlb(9154 (__vector unsigned char)__a, __b);9155}9156 9157// This prototype is deprecated.9158static inline __ATTRS_o_ai __vector unsigned short9159vec_srb(__vector unsigned short __a, __vector signed short __b) {9160 return (__vector unsigned short)__builtin_s390_vsrlb(9161 (__vector unsigned char)__a, (__vector unsigned char)__b);9162}9163 9164// This prototype is deprecated.9165static inline __ATTRS_o_ai __vector unsigned short9166vec_srb(__vector unsigned short __a, __vector unsigned short __b) {9167 return (__vector unsigned short)__builtin_s390_vsrlb(9168 (__vector unsigned char)__a, (__vector unsigned char)__b);9169}9170 9171static inline __ATTRS_o_ai __vector unsigned short9172vec_srb(__vector unsigned short __a, __vector unsigned char __b) {9173 return (__vector unsigned short)__builtin_s390_vsrlb(9174 (__vector unsigned char)__a, __b);9175}9176 9177// This prototype is deprecated.9178static inline __ATTRS_o_ai __vector signed int9179vec_srb(__vector signed int __a, __vector signed int __b) {9180 return (__vector signed int)__builtin_s390_vsrlb(9181 (__vector unsigned char)__a, (__vector unsigned char)__b);9182}9183 9184// This prototype is deprecated.9185static inline __ATTRS_o_ai __vector signed int9186vec_srb(__vector signed int __a, __vector unsigned int __b) {9187 return (__vector signed int)__builtin_s390_vsrlb(9188 (__vector unsigned char)__a, (__vector unsigned char)__b);9189}9190 9191static inline __ATTRS_o_ai __vector signed int9192vec_srb(__vector signed int __a, __vector unsigned char __b) {9193 return (__vector signed int)__builtin_s390_vsrlb(9194 (__vector unsigned char)__a, __b);9195}9196 9197// This prototype is deprecated.9198static inline __ATTRS_o_ai __vector unsigned int9199vec_srb(__vector unsigned int __a, __vector signed int __b) {9200 return (__vector unsigned int)__builtin_s390_vsrlb(9201 (__vector unsigned char)__a, (__vector unsigned char)__b);9202}9203 9204// This prototype is deprecated.9205static inline __ATTRS_o_ai __vector unsigned int9206vec_srb(__vector unsigned int __a, __vector unsigned int __b) {9207 return (__vector unsigned int)__builtin_s390_vsrlb(9208 (__vector unsigned char)__a, (__vector unsigned char)__b);9209}9210 9211static inline __ATTRS_o_ai __vector unsigned int9212vec_srb(__vector unsigned int __a, __vector unsigned char __b) {9213 return (__vector unsigned int)__builtin_s390_vsrlb(9214 (__vector unsigned char)__a, __b);9215}9216 9217// This prototype is deprecated.9218static inline __ATTRS_o_ai __vector signed long long9219vec_srb(__vector signed long long __a, __vector signed long long __b) {9220 return (__vector signed long long)__builtin_s390_vsrlb(9221 (__vector unsigned char)__a, (__vector unsigned char)__b);9222}9223 9224// This prototype is deprecated.9225static inline __ATTRS_o_ai __vector signed long long9226vec_srb(__vector signed long long __a, __vector unsigned long long __b) {9227 return (__vector signed long long)__builtin_s390_vsrlb(9228 (__vector unsigned char)__a, (__vector unsigned char)__b);9229}9230 9231static inline __ATTRS_o_ai __vector signed long long9232vec_srb(__vector signed long long __a, __vector unsigned char __b) {9233 return (__vector signed long long)__builtin_s390_vsrlb(9234 (__vector unsigned char)__a, __b);9235}9236 9237// This prototype is deprecated.9238static inline __ATTRS_o_ai __vector unsigned long long9239vec_srb(__vector unsigned long long __a, __vector signed long long __b) {9240 return (__vector unsigned long long)__builtin_s390_vsrlb(9241 (__vector unsigned char)__a, (__vector unsigned char)__b);9242}9243 9244// This prototype is deprecated.9245static inline __ATTRS_o_ai __vector unsigned long long9246vec_srb(__vector unsigned long long __a, __vector unsigned long long __b) {9247 return (__vector unsigned long long)__builtin_s390_vsrlb(9248 (__vector unsigned char)__a, (__vector unsigned char)__b);9249}9250 9251static inline __ATTRS_o_ai __vector unsigned long long9252vec_srb(__vector unsigned long long __a, __vector unsigned char __b) {9253 return (__vector unsigned long long)__builtin_s390_vsrlb(9254 (__vector unsigned char)__a, __b);9255}9256 9257static inline __ATTRS_o_ai __vector signed __int1289258vec_srb(__vector signed __int128 __a, __vector unsigned char __b) {9259 return (__vector signed __int128)__builtin_s390_vsrlb(9260 (__vector unsigned char)__a, __b);9261}9262 9263static inline __ATTRS_o_ai __vector unsigned __int1289264vec_srb(__vector unsigned __int128 __a, __vector unsigned char __b) {9265 return (__vector unsigned __int128)__builtin_s390_vsrlb(9266 (__vector unsigned char)__a, __b);9267}9268 9269#if __ARCH__ >= 129270// This prototype is deprecated.9271static inline __ATTRS_o_ai __vector float9272vec_srb(__vector float __a, __vector signed int __b) {9273 return (__vector float)__builtin_s390_vsrlb(9274 (__vector unsigned char)__a, (__vector unsigned char)__b);9275}9276 9277// This prototype is deprecated.9278static inline __ATTRS_o_ai __vector float9279vec_srb(__vector float __a, __vector unsigned int __b) {9280 return (__vector float)__builtin_s390_vsrlb(9281 (__vector unsigned char)__a, (__vector unsigned char)__b);9282}9283 9284static inline __ATTRS_o_ai __vector float9285vec_srb(__vector float __a, __vector unsigned char __b) {9286 return (__vector float)__builtin_s390_vsrlb(9287 (__vector unsigned char)__a, __b);9288}9289#endif9290 9291// This prototype is deprecated.9292static inline __ATTRS_o_ai __vector double9293vec_srb(__vector double __a, __vector signed long long __b) {9294 return (__vector double)__builtin_s390_vsrlb(9295 (__vector unsigned char)__a, (__vector unsigned char)__b);9296}9297 9298// This prototype is deprecated.9299static inline __ATTRS_o_ai __vector double9300vec_srb(__vector double __a, __vector unsigned long long __b) {9301 return (__vector double)__builtin_s390_vsrlb(9302 (__vector unsigned char)__a, (__vector unsigned char)__b);9303}9304 9305static inline __ATTRS_o_ai __vector double9306vec_srb(__vector double __a, __vector unsigned char __b) {9307 return (__vector double)__builtin_s390_vsrlb(9308 (__vector unsigned char)__a, __b);9309}9310 9311/*-- vec_srdb ---------------------------------------------------------------*/9312 9313#if __ARCH__ >= 139314 9315extern __ATTRS_o __vector signed char9316vec_srdb(__vector signed char __a, __vector signed char __b, int __c)9317 __constant_range(__c, 0, 7);9318 9319extern __ATTRS_o __vector unsigned char9320vec_srdb(__vector unsigned char __a, __vector unsigned char __b, int __c)9321 __constant_range(__c, 0, 7);9322 9323extern __ATTRS_o __vector signed short9324vec_srdb(__vector signed short __a, __vector signed short __b, int __c)9325 __constant_range(__c, 0, 7);9326 9327extern __ATTRS_o __vector unsigned short9328vec_srdb(__vector unsigned short __a, __vector unsigned short __b, int __c)9329 __constant_range(__c, 0, 7);9330 9331extern __ATTRS_o __vector signed int9332vec_srdb(__vector signed int __a, __vector signed int __b, int __c)9333 __constant_range(__c, 0, 7);9334 9335extern __ATTRS_o __vector unsigned int9336vec_srdb(__vector unsigned int __a, __vector unsigned int __b, int __c)9337 __constant_range(__c, 0, 7);9338 9339extern __ATTRS_o __vector signed long long9340vec_srdb(__vector signed long long __a, __vector signed long long __b, int __c)9341 __constant_range(__c, 0, 7);9342 9343extern __ATTRS_o __vector unsigned long long9344vec_srdb(__vector unsigned long long __a, __vector unsigned long long __b,9345 int __c)9346 __constant_range(__c, 0, 7);9347 9348extern __ATTRS_o __vector signed __int1289349vec_srdb(__vector signed __int128 __a, __vector signed __int128 __b, int __c)9350 __constant_range(__c, 0, 7);9351 9352extern __ATTRS_o __vector unsigned __int1289353vec_srdb(__vector unsigned __int128 __a, __vector unsigned __int128 __b,9354 int __c)9355 __constant_range(__c, 0, 7);9356 9357extern __ATTRS_o __vector float9358vec_srdb(__vector float __a, __vector float __b, int __c)9359 __constant_range(__c, 0, 7);9360 9361extern __ATTRS_o __vector double9362vec_srdb(__vector double __a, __vector double __b, int __c)9363 __constant_range(__c, 0, 7);9364 9365#define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \9366 __builtin_s390_vsrd((__vector unsigned char)(X), \9367 (__vector unsigned char)(Y), (Z)))9368 9369#endif9370 9371/*-- vec_abs ----------------------------------------------------------------*/9372 9373static inline __ATTRS_o_ai __vector signed char9374vec_abs(__vector signed char __a) {9375 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed char)0));9376}9377 9378static inline __ATTRS_o_ai __vector signed short9379vec_abs(__vector signed short __a) {9380 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed short)0));9381}9382 9383static inline __ATTRS_o_ai __vector signed int9384vec_abs(__vector signed int __a) {9385 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed int)0));9386}9387 9388static inline __ATTRS_o_ai __vector signed long long9389vec_abs(__vector signed long long __a) {9390 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed long long)0));9391}9392 9393static inline __ATTRS_o_ai __vector signed __int1289394vec_abs(__vector signed __int128 __a) {9395 return vec_sel(__a, -__a, vec_cmplt(__a, (__vector signed __int128)0));9396}9397 9398#if __ARCH__ >= 129399static inline __ATTRS_o_ai __vector float9400vec_abs(__vector float __a) {9401 return __builtin_s390_vflpsb(__a);9402}9403#endif9404 9405static inline __ATTRS_o_ai __vector double9406vec_abs(__vector double __a) {9407 return __builtin_s390_vflpdb(__a);9408}9409 9410/*-- vec_nabs ---------------------------------------------------------------*/9411 9412#if __ARCH__ >= 129413static inline __ATTRS_o_ai __vector float9414vec_nabs(__vector float __a) {9415 return __builtin_s390_vflnsb(__a);9416}9417#endif9418 9419static inline __ATTRS_o_ai __vector double9420vec_nabs(__vector double __a) {9421 return __builtin_s390_vflndb(__a);9422}9423 9424/*-- vec_max ----------------------------------------------------------------*/9425 9426static inline __ATTRS_o_ai __vector signed char9427vec_max(__vector signed char __a, __vector signed char __b) {9428 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9429}9430 9431// This prototype is deprecated.9432static inline __ATTRS_o_ai __vector signed char9433vec_max(__vector signed char __a, __vector __bool char __b) {9434 __vector signed char __bc = (__vector signed char)__b;9435 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));9436}9437 9438// This prototype is deprecated.9439static inline __ATTRS_o_ai __vector signed char9440vec_max(__vector __bool char __a, __vector signed char __b) {9441 __vector signed char __ac = (__vector signed char)__a;9442 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));9443}9444 9445static inline __ATTRS_o_ai __vector unsigned char9446vec_max(__vector unsigned char __a, __vector unsigned char __b) {9447 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9448}9449 9450// This prototype is deprecated.9451static inline __ATTRS_o_ai __vector unsigned char9452vec_max(__vector unsigned char __a, __vector __bool char __b) {9453 __vector unsigned char __bc = (__vector unsigned char)__b;9454 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));9455}9456 9457// This prototype is deprecated.9458static inline __ATTRS_o_ai __vector unsigned char9459vec_max(__vector __bool char __a, __vector unsigned char __b) {9460 __vector unsigned char __ac = (__vector unsigned char)__a;9461 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));9462}9463 9464static inline __ATTRS_o_ai __vector signed short9465vec_max(__vector signed short __a, __vector signed short __b) {9466 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9467}9468 9469// This prototype is deprecated.9470static inline __ATTRS_o_ai __vector signed short9471vec_max(__vector signed short __a, __vector __bool short __b) {9472 __vector signed short __bc = (__vector signed short)__b;9473 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));9474}9475 9476// This prototype is deprecated.9477static inline __ATTRS_o_ai __vector signed short9478vec_max(__vector __bool short __a, __vector signed short __b) {9479 __vector signed short __ac = (__vector signed short)__a;9480 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));9481}9482 9483static inline __ATTRS_o_ai __vector unsigned short9484vec_max(__vector unsigned short __a, __vector unsigned short __b) {9485 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9486}9487 9488// This prototype is deprecated.9489static inline __ATTRS_o_ai __vector unsigned short9490vec_max(__vector unsigned short __a, __vector __bool short __b) {9491 __vector unsigned short __bc = (__vector unsigned short)__b;9492 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));9493}9494 9495// This prototype is deprecated.9496static inline __ATTRS_o_ai __vector unsigned short9497vec_max(__vector __bool short __a, __vector unsigned short __b) {9498 __vector unsigned short __ac = (__vector unsigned short)__a;9499 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));9500}9501 9502static inline __ATTRS_o_ai __vector signed int9503vec_max(__vector signed int __a, __vector signed int __b) {9504 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9505}9506 9507// This prototype is deprecated.9508static inline __ATTRS_o_ai __vector signed int9509vec_max(__vector signed int __a, __vector __bool int __b) {9510 __vector signed int __bc = (__vector signed int)__b;9511 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));9512}9513 9514// This prototype is deprecated.9515static inline __ATTRS_o_ai __vector signed int9516vec_max(__vector __bool int __a, __vector signed int __b) {9517 __vector signed int __ac = (__vector signed int)__a;9518 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));9519}9520 9521static inline __ATTRS_o_ai __vector unsigned int9522vec_max(__vector unsigned int __a, __vector unsigned int __b) {9523 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9524}9525 9526// This prototype is deprecated.9527static inline __ATTRS_o_ai __vector unsigned int9528vec_max(__vector unsigned int __a, __vector __bool int __b) {9529 __vector unsigned int __bc = (__vector unsigned int)__b;9530 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));9531}9532 9533// This prototype is deprecated.9534static inline __ATTRS_o_ai __vector unsigned int9535vec_max(__vector __bool int __a, __vector unsigned int __b) {9536 __vector unsigned int __ac = (__vector unsigned int)__a;9537 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));9538}9539 9540static inline __ATTRS_o_ai __vector signed long long9541vec_max(__vector signed long long __a, __vector signed long long __b) {9542 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9543}9544 9545// This prototype is deprecated.9546static inline __ATTRS_o_ai __vector signed long long9547vec_max(__vector signed long long __a, __vector __bool long long __b) {9548 __vector signed long long __bc = (__vector signed long long)__b;9549 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));9550}9551 9552// This prototype is deprecated.9553static inline __ATTRS_o_ai __vector signed long long9554vec_max(__vector __bool long long __a, __vector signed long long __b) {9555 __vector signed long long __ac = (__vector signed long long)__a;9556 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));9557}9558 9559static inline __ATTRS_o_ai __vector unsigned long long9560vec_max(__vector unsigned long long __a, __vector unsigned long long __b) {9561 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9562}9563 9564// This prototype is deprecated.9565static inline __ATTRS_o_ai __vector unsigned long long9566vec_max(__vector unsigned long long __a, __vector __bool long long __b) {9567 __vector unsigned long long __bc = (__vector unsigned long long)__b;9568 return vec_sel(__bc, __a, vec_cmpgt(__a, __bc));9569}9570 9571// This prototype is deprecated.9572static inline __ATTRS_o_ai __vector unsigned long long9573vec_max(__vector __bool long long __a, __vector unsigned long long __b) {9574 __vector unsigned long long __ac = (__vector unsigned long long)__a;9575 return vec_sel(__b, __ac, vec_cmpgt(__ac, __b));9576}9577 9578static inline __ATTRS_o_ai __vector signed __int1289579vec_max(__vector signed __int128 __a, __vector signed __int128 __b) {9580 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9581}9582 9583static inline __ATTRS_o_ai __vector unsigned __int1289584vec_max(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {9585 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9586}9587 9588#if __ARCH__ >= 129589static inline __ATTRS_o_ai __vector float9590vec_max(__vector float __a, __vector float __b) {9591 return __builtin_s390_vfmaxsb(__a, __b, 0);9592}9593#endif9594 9595static inline __ATTRS_o_ai __vector double9596vec_max(__vector double __a, __vector double __b) {9597#if __ARCH__ >= 129598 return __builtin_s390_vfmaxdb(__a, __b, 0);9599#else9600 return vec_sel(__b, __a, vec_cmpgt(__a, __b));9601#endif9602}9603 9604/*-- vec_min ----------------------------------------------------------------*/9605 9606static inline __ATTRS_o_ai __vector signed char9607vec_min(__vector signed char __a, __vector signed char __b) {9608 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9609}9610 9611// This prototype is deprecated.9612static inline __ATTRS_o_ai __vector signed char9613vec_min(__vector signed char __a, __vector __bool char __b) {9614 __vector signed char __bc = (__vector signed char)__b;9615 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));9616}9617 9618// This prototype is deprecated.9619static inline __ATTRS_o_ai __vector signed char9620vec_min(__vector __bool char __a, __vector signed char __b) {9621 __vector signed char __ac = (__vector signed char)__a;9622 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));9623}9624 9625static inline __ATTRS_o_ai __vector unsigned char9626vec_min(__vector unsigned char __a, __vector unsigned char __b) {9627 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9628}9629 9630// This prototype is deprecated.9631static inline __ATTRS_o_ai __vector unsigned char9632vec_min(__vector unsigned char __a, __vector __bool char __b) {9633 __vector unsigned char __bc = (__vector unsigned char)__b;9634 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));9635}9636 9637// This prototype is deprecated.9638static inline __ATTRS_o_ai __vector unsigned char9639vec_min(__vector __bool char __a, __vector unsigned char __b) {9640 __vector unsigned char __ac = (__vector unsigned char)__a;9641 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));9642}9643 9644static inline __ATTRS_o_ai __vector signed short9645vec_min(__vector signed short __a, __vector signed short __b) {9646 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9647}9648 9649// This prototype is deprecated.9650static inline __ATTRS_o_ai __vector signed short9651vec_min(__vector signed short __a, __vector __bool short __b) {9652 __vector signed short __bc = (__vector signed short)__b;9653 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));9654}9655 9656// This prototype is deprecated.9657static inline __ATTRS_o_ai __vector signed short9658vec_min(__vector __bool short __a, __vector signed short __b) {9659 __vector signed short __ac = (__vector signed short)__a;9660 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));9661}9662 9663static inline __ATTRS_o_ai __vector unsigned short9664vec_min(__vector unsigned short __a, __vector unsigned short __b) {9665 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9666}9667 9668// This prototype is deprecated.9669static inline __ATTRS_o_ai __vector unsigned short9670vec_min(__vector unsigned short __a, __vector __bool short __b) {9671 __vector unsigned short __bc = (__vector unsigned short)__b;9672 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));9673}9674 9675// This prototype is deprecated.9676static inline __ATTRS_o_ai __vector unsigned short9677vec_min(__vector __bool short __a, __vector unsigned short __b) {9678 __vector unsigned short __ac = (__vector unsigned short)__a;9679 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));9680}9681 9682static inline __ATTRS_o_ai __vector signed int9683vec_min(__vector signed int __a, __vector signed int __b) {9684 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9685}9686 9687// This prototype is deprecated.9688static inline __ATTRS_o_ai __vector signed int9689vec_min(__vector signed int __a, __vector __bool int __b) {9690 __vector signed int __bc = (__vector signed int)__b;9691 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));9692}9693 9694// This prototype is deprecated.9695static inline __ATTRS_o_ai __vector signed int9696vec_min(__vector __bool int __a, __vector signed int __b) {9697 __vector signed int __ac = (__vector signed int)__a;9698 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));9699}9700 9701static inline __ATTRS_o_ai __vector unsigned int9702vec_min(__vector unsigned int __a, __vector unsigned int __b) {9703 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9704}9705 9706// This prototype is deprecated.9707static inline __ATTRS_o_ai __vector unsigned int9708vec_min(__vector unsigned int __a, __vector __bool int __b) {9709 __vector unsigned int __bc = (__vector unsigned int)__b;9710 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));9711}9712 9713// This prototype is deprecated.9714static inline __ATTRS_o_ai __vector unsigned int9715vec_min(__vector __bool int __a, __vector unsigned int __b) {9716 __vector unsigned int __ac = (__vector unsigned int)__a;9717 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));9718}9719 9720static inline __ATTRS_o_ai __vector signed long long9721vec_min(__vector signed long long __a, __vector signed long long __b) {9722 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9723}9724 9725// This prototype is deprecated.9726static inline __ATTRS_o_ai __vector signed long long9727vec_min(__vector signed long long __a, __vector __bool long long __b) {9728 __vector signed long long __bc = (__vector signed long long)__b;9729 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));9730}9731 9732// This prototype is deprecated.9733static inline __ATTRS_o_ai __vector signed long long9734vec_min(__vector __bool long long __a, __vector signed long long __b) {9735 __vector signed long long __ac = (__vector signed long long)__a;9736 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));9737}9738 9739static inline __ATTRS_o_ai __vector unsigned long long9740vec_min(__vector unsigned long long __a, __vector unsigned long long __b) {9741 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9742}9743 9744// This prototype is deprecated.9745static inline __ATTRS_o_ai __vector unsigned long long9746vec_min(__vector unsigned long long __a, __vector __bool long long __b) {9747 __vector unsigned long long __bc = (__vector unsigned long long)__b;9748 return vec_sel(__a, __bc, vec_cmpgt(__a, __bc));9749}9750 9751// This prototype is deprecated.9752static inline __ATTRS_o_ai __vector unsigned long long9753vec_min(__vector __bool long long __a, __vector unsigned long long __b) {9754 __vector unsigned long long __ac = (__vector unsigned long long)__a;9755 return vec_sel(__ac, __b, vec_cmpgt(__ac, __b));9756}9757 9758static inline __ATTRS_o_ai __vector signed __int1289759vec_min(__vector signed __int128 __a, __vector signed __int128 __b) {9760 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9761}9762 9763static inline __ATTRS_o_ai __vector unsigned __int1289764vec_min(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {9765 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9766}9767 9768#if __ARCH__ >= 129769static inline __ATTRS_o_ai __vector float9770vec_min(__vector float __a, __vector float __b) {9771 return __builtin_s390_vfminsb(__a, __b, 0);9772}9773#endif9774 9775static inline __ATTRS_o_ai __vector double9776vec_min(__vector double __a, __vector double __b) {9777#if __ARCH__ >= 129778 return __builtin_s390_vfmindb(__a, __b, 0);9779#else9780 return vec_sel(__a, __b, vec_cmpgt(__a, __b));9781#endif9782}9783 9784/*-- vec_add_u128 -----------------------------------------------------------*/9785 9786// This prototype is deprecated.9787static inline __ATTRS_ai __vector unsigned char9788vec_add_u128(__vector unsigned char __a, __vector unsigned char __b) {9789 return (__vector unsigned char)(__vector unsigned __int128)9790 ((__int128)__a + (__int128)__b);9791}9792 9793/*-- vec_addc ---------------------------------------------------------------*/9794 9795static inline __ATTRS_o_ai __vector unsigned char9796vec_addc(__vector unsigned char __a, __vector unsigned char __b) {9797 return __builtin_s390_vaccb(__a, __b);9798}9799 9800static inline __ATTRS_o_ai __vector unsigned short9801vec_addc(__vector unsigned short __a, __vector unsigned short __b) {9802 return __builtin_s390_vacch(__a, __b);9803}9804 9805static inline __ATTRS_o_ai __vector unsigned int9806vec_addc(__vector unsigned int __a, __vector unsigned int __b) {9807 return __builtin_s390_vaccf(__a, __b);9808}9809 9810static inline __ATTRS_o_ai __vector unsigned long long9811vec_addc(__vector unsigned long long __a, __vector unsigned long long __b) {9812 return __builtin_s390_vaccg(__a, __b);9813}9814 9815static inline __ATTRS_o_ai __vector unsigned __int1289816vec_addc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {9817 return (__vector unsigned __int128)9818 __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);9819}9820 9821/*-- vec_addc_u128 ----------------------------------------------------------*/9822 9823// This prototype is deprecated.9824static inline __ATTRS_ai __vector unsigned char9825vec_addc_u128(__vector unsigned char __a, __vector unsigned char __b) {9826 return (__vector unsigned char)(__vector unsigned __int128)9827 __builtin_s390_vaccq((unsigned __int128)__a, (unsigned __int128)__b);9828}9829 9830/*-- vec_adde ---------------------------------------------------------------*/9831 9832static inline __ATTRS_ai __vector unsigned __int1289833vec_adde(__vector unsigned __int128 __a, __vector unsigned __int128 __b,9834 __vector unsigned __int128 __c) {9835 return (__vector unsigned __int128)9836 __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,9837 (unsigned __int128)__c);9838}9839 9840/*-- vec_adde_u128 ----------------------------------------------------------*/9841 9842// This prototype is deprecated.9843static inline __ATTRS_ai __vector unsigned char9844vec_adde_u128(__vector unsigned char __a, __vector unsigned char __b,9845 __vector unsigned char __c) {9846 return (__vector unsigned char)(__vector unsigned __int128)9847 __builtin_s390_vacq((unsigned __int128)__a, (unsigned __int128)__b,9848 (unsigned __int128)__c);9849}9850 9851/*-- vec_addec --------------------------------------------------------------*/9852 9853static inline __ATTRS_ai __vector unsigned __int1289854vec_addec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,9855 __vector unsigned __int128 __c) {9856 return (__vector unsigned __int128)9857 __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,9858 (unsigned __int128)__c);9859}9860 9861/*-- vec_addec_u128 ---------------------------------------------------------*/9862 9863// This prototype is deprecated.9864static inline __ATTRS_ai __vector unsigned char9865vec_addec_u128(__vector unsigned char __a, __vector unsigned char __b,9866 __vector unsigned char __c) {9867 return (__vector unsigned char)(__vector unsigned __int128)9868 __builtin_s390_vacccq((unsigned __int128)__a, (unsigned __int128)__b,9869 (unsigned __int128)__c);9870}9871 9872/*-- vec_avg ----------------------------------------------------------------*/9873 9874static inline __ATTRS_o_ai __vector signed char9875vec_avg(__vector signed char __a, __vector signed char __b) {9876 return __builtin_s390_vavgb(__a, __b);9877}9878 9879static inline __ATTRS_o_ai __vector signed short9880vec_avg(__vector signed short __a, __vector signed short __b) {9881 return __builtin_s390_vavgh(__a, __b);9882}9883 9884static inline __ATTRS_o_ai __vector signed int9885vec_avg(__vector signed int __a, __vector signed int __b) {9886 return __builtin_s390_vavgf(__a, __b);9887}9888 9889static inline __ATTRS_o_ai __vector signed long long9890vec_avg(__vector signed long long __a, __vector signed long long __b) {9891 return __builtin_s390_vavgg(__a, __b);9892}9893 9894#if __ARCH__ >= 159895static inline __ATTRS_o_ai __vector signed __int1289896vec_avg(__vector signed __int128 __a, __vector signed __int128 __b) {9897 return (__vector signed __int128)9898 __builtin_s390_vavgq((signed __int128)__a, (signed __int128)__b);9899}9900#endif9901 9902static inline __ATTRS_o_ai __vector unsigned char9903vec_avg(__vector unsigned char __a, __vector unsigned char __b) {9904 return __builtin_s390_vavglb(__a, __b);9905}9906 9907static inline __ATTRS_o_ai __vector unsigned short9908vec_avg(__vector unsigned short __a, __vector unsigned short __b) {9909 return __builtin_s390_vavglh(__a, __b);9910}9911 9912static inline __ATTRS_o_ai __vector unsigned int9913vec_avg(__vector unsigned int __a, __vector unsigned int __b) {9914 return __builtin_s390_vavglf(__a, __b);9915}9916 9917static inline __ATTRS_o_ai __vector unsigned long long9918vec_avg(__vector unsigned long long __a, __vector unsigned long long __b) {9919 return __builtin_s390_vavglg(__a, __b);9920}9921 9922#if __ARCH__ >= 159923static inline __ATTRS_o_ai __vector unsigned __int1289924vec_avg(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {9925 return (__vector unsigned __int128)9926 __builtin_s390_vavglq((unsigned __int128)__a, (unsigned __int128)__b);9927}9928#endif9929 9930/*-- vec_checksum -----------------------------------------------------------*/9931 9932static inline __ATTRS_ai __vector unsigned int9933vec_checksum(__vector unsigned int __a, __vector unsigned int __b) {9934 return __builtin_s390_vcksm(__a, __b);9935}9936 9937/*-- vec_gfmsum -------------------------------------------------------------*/9938 9939static inline __ATTRS_o_ai __vector unsigned short9940vec_gfmsum(__vector unsigned char __a, __vector unsigned char __b) {9941 return __builtin_s390_vgfmb(__a, __b);9942}9943 9944static inline __ATTRS_o_ai __vector unsigned int9945vec_gfmsum(__vector unsigned short __a, __vector unsigned short __b) {9946 return __builtin_s390_vgfmh(__a, __b);9947}9948 9949static inline __ATTRS_o_ai __vector unsigned long long9950vec_gfmsum(__vector unsigned int __a, __vector unsigned int __b) {9951 return __builtin_s390_vgfmf(__a, __b);9952}9953 9954static inline __ATTRS_o_ai __vector unsigned __int1289955vec_gfmsum(__vector unsigned long long __a, __vector unsigned long long __b) {9956 return (__vector unsigned __int128)__builtin_s390_vgfmg(__a, __b);9957}9958 9959/*-- vec_gfmsum_128 ---------------------------------------------------------*/9960 9961// This prototype is deprecated.9962static inline __ATTRS_o_ai __vector unsigned char9963vec_gfmsum_128(__vector unsigned long long __a,9964 __vector unsigned long long __b) {9965 return (__vector unsigned char)(__vector unsigned __int128)9966 __builtin_s390_vgfmg(__a, __b);9967}9968 9969/*-- vec_gfmsum_accum -------------------------------------------------------*/9970 9971static inline __ATTRS_o_ai __vector unsigned short9972vec_gfmsum_accum(__vector unsigned char __a, __vector unsigned char __b,9973 __vector unsigned short __c) {9974 return __builtin_s390_vgfmab(__a, __b, __c);9975}9976 9977static inline __ATTRS_o_ai __vector unsigned int9978vec_gfmsum_accum(__vector unsigned short __a, __vector unsigned short __b,9979 __vector unsigned int __c) {9980 return __builtin_s390_vgfmah(__a, __b, __c);9981}9982 9983static inline __ATTRS_o_ai __vector unsigned long long9984vec_gfmsum_accum(__vector unsigned int __a, __vector unsigned int __b,9985 __vector unsigned long long __c) {9986 return __builtin_s390_vgfmaf(__a, __b, __c);9987}9988 9989static inline __ATTRS_o_ai __vector unsigned __int1289990vec_gfmsum_accum(__vector unsigned long long __a, __vector unsigned long long __b,9991 __vector unsigned __int128 __c) {9992 return (__vector unsigned __int128)9993 __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);9994}9995 9996/*-- vec_gfmsum_accum_128 ---------------------------------------------------*/9997 9998// This prototype is deprecated.9999static inline __ATTRS_o_ai __vector unsigned char10000vec_gfmsum_accum_128(__vector unsigned long long __a,10001 __vector unsigned long long __b,10002 __vector unsigned char __c) {10003 return (__vector unsigned char)(__vector unsigned __int128)10004 __builtin_s390_vgfmag(__a, __b, (unsigned __int128)__c);10005}10006 10007/*-- vec_mladd --------------------------------------------------------------*/10008 10009static inline __ATTRS_o_ai __vector signed char10010vec_mladd(__vector signed char __a, __vector signed char __b,10011 __vector signed char __c) {10012 return __a * __b + __c;10013}10014 10015static inline __ATTRS_o_ai __vector signed char10016vec_mladd(__vector unsigned char __a, __vector signed char __b,10017 __vector signed char __c) {10018 return (__vector signed char)__a * __b + __c;10019}10020 10021static inline __ATTRS_o_ai __vector signed char10022vec_mladd(__vector signed char __a, __vector unsigned char __b,10023 __vector unsigned char __c) {10024 return __a * (__vector signed char)__b + (__vector signed char)__c;10025}10026 10027static inline __ATTRS_o_ai __vector unsigned char10028vec_mladd(__vector unsigned char __a, __vector unsigned char __b,10029 __vector unsigned char __c) {10030 return __a * __b + __c;10031}10032 10033static inline __ATTRS_o_ai __vector signed short10034vec_mladd(__vector signed short __a, __vector signed short __b,10035 __vector signed short __c) {10036 return __a * __b + __c;10037}10038 10039static inline __ATTRS_o_ai __vector signed short10040vec_mladd(__vector unsigned short __a, __vector signed short __b,10041 __vector signed short __c) {10042 return (__vector signed short)__a * __b + __c;10043}10044 10045static inline __ATTRS_o_ai __vector signed short10046vec_mladd(__vector signed short __a, __vector unsigned short __b,10047 __vector unsigned short __c) {10048 return __a * (__vector signed short)__b + (__vector signed short)__c;10049}10050 10051static inline __ATTRS_o_ai __vector unsigned short10052vec_mladd(__vector unsigned short __a, __vector unsigned short __b,10053 __vector unsigned short __c) {10054 return __a * __b + __c;10055}10056 10057static inline __ATTRS_o_ai __vector signed int10058vec_mladd(__vector signed int __a, __vector signed int __b,10059 __vector signed int __c) {10060 return __a * __b + __c;10061}10062 10063static inline __ATTRS_o_ai __vector signed int10064vec_mladd(__vector unsigned int __a, __vector signed int __b,10065 __vector signed int __c) {10066 return (__vector signed int)__a * __b + __c;10067}10068 10069static inline __ATTRS_o_ai __vector signed int10070vec_mladd(__vector signed int __a, __vector unsigned int __b,10071 __vector unsigned int __c) {10072 return __a * (__vector signed int)__b + (__vector signed int)__c;10073}10074 10075static inline __ATTRS_o_ai __vector unsigned int10076vec_mladd(__vector unsigned int __a, __vector unsigned int __b,10077 __vector unsigned int __c) {10078 return __a * __b + __c;10079}10080 10081#if __ARCH__ >= 1510082static inline __ATTRS_o_ai __vector signed long long10083vec_mladd(__vector signed long long __a, __vector signed long long __b,10084 __vector signed long long __c) {10085 return __a * __b + __c;10086}10087 10088static inline __ATTRS_o_ai __vector signed long long10089vec_mladd(__vector unsigned long long __a, __vector signed long long __b,10090 __vector signed long long __c) {10091 return (__vector signed long long)__a * __b + __c;10092}10093 10094static inline __ATTRS_o_ai __vector signed long long10095vec_mladd(__vector signed long long __a, __vector unsigned long long __b,10096 __vector unsigned long long __c) {10097 return __a * (__vector signed long long)__b + (__vector signed long long)__c;10098}10099 10100static inline __ATTRS_o_ai __vector unsigned long long10101vec_mladd(__vector unsigned long long __a, __vector unsigned long long __b,10102 __vector unsigned long long __c) {10103 return __a * __b + __c;10104}10105 10106static inline __ATTRS_o_ai __vector signed __int12810107vec_mladd(__vector signed __int128 __a, __vector signed __int128 __b,10108 __vector signed __int128 __c) {10109 return __a * __b + __c;10110}10111 10112static inline __ATTRS_o_ai __vector signed __int12810113vec_mladd(__vector unsigned __int128 __a, __vector signed __int128 __b,10114 __vector signed __int128 __c) {10115 return (__vector signed __int128)__a * __b + __c;10116}10117 10118static inline __ATTRS_o_ai __vector signed __int12810119vec_mladd(__vector signed __int128 __a, __vector unsigned __int128 __b,10120 __vector unsigned __int128 __c) {10121 return __a * (__vector signed __int128)__b + (__vector signed __int128)__c;10122}10123 10124static inline __ATTRS_o_ai __vector unsigned __int12810125vec_mladd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,10126 __vector unsigned __int128 __c) {10127 return __a * __b + __c;10128}10129#endif10130 10131/*-- vec_mhadd --------------------------------------------------------------*/10132 10133static inline __ATTRS_o_ai __vector signed char10134vec_mhadd(__vector signed char __a, __vector signed char __b,10135 __vector signed char __c) {10136 return __builtin_s390_vmahb(__a, __b, __c);10137}10138 10139static inline __ATTRS_o_ai __vector unsigned char10140vec_mhadd(__vector unsigned char __a, __vector unsigned char __b,10141 __vector unsigned char __c) {10142 return __builtin_s390_vmalhb(__a, __b, __c);10143}10144 10145static inline __ATTRS_o_ai __vector signed short10146vec_mhadd(__vector signed short __a, __vector signed short __b,10147 __vector signed short __c) {10148 return __builtin_s390_vmahh(__a, __b, __c);10149}10150 10151static inline __ATTRS_o_ai __vector unsigned short10152vec_mhadd(__vector unsigned short __a, __vector unsigned short __b,10153 __vector unsigned short __c) {10154 return __builtin_s390_vmalhh(__a, __b, __c);10155}10156 10157static inline __ATTRS_o_ai __vector signed int10158vec_mhadd(__vector signed int __a, __vector signed int __b,10159 __vector signed int __c) {10160 return __builtin_s390_vmahf(__a, __b, __c);10161}10162 10163static inline __ATTRS_o_ai __vector unsigned int10164vec_mhadd(__vector unsigned int __a, __vector unsigned int __b,10165 __vector unsigned int __c) {10166 return __builtin_s390_vmalhf(__a, __b, __c);10167}10168 10169#if __ARCH__ >= 1510170static inline __ATTRS_o_ai __vector signed long long10171vec_mhadd(__vector signed long long __a, __vector signed long long __b,10172 __vector signed long long __c) {10173 return __builtin_s390_vmahg(__a, __b, __c);10174}10175 10176static inline __ATTRS_o_ai __vector unsigned long long10177vec_mhadd(__vector unsigned long long __a, __vector unsigned long long __b,10178 __vector unsigned long long __c) {10179 return __builtin_s390_vmalhg(__a, __b, __c);10180}10181 10182static inline __ATTRS_o_ai __vector signed __int12810183vec_mhadd(__vector signed __int128 __a, __vector signed __int128 __b,10184 __vector signed __int128 __c) {10185 return (__vector signed __int128)10186 __builtin_s390_vmahq((signed __int128)__a, (signed __int128)__b, (signed __int128)__c);10187}10188 10189static inline __ATTRS_o_ai __vector unsigned __int12810190vec_mhadd(__vector unsigned __int128 __a, __vector unsigned __int128 __b,10191 __vector unsigned __int128 __c) {10192 return (__vector unsigned __int128)10193 __builtin_s390_vmalhq((unsigned __int128)__a, (unsigned __int128)__b, (unsigned __int128)__c);10194}10195#endif10196 10197/*-- vec_meadd --------------------------------------------------------------*/10198 10199static inline __ATTRS_o_ai __vector signed short10200vec_meadd(__vector signed char __a, __vector signed char __b,10201 __vector signed short __c) {10202 return __builtin_s390_vmaeb(__a, __b, __c);10203}10204 10205static inline __ATTRS_o_ai __vector unsigned short10206vec_meadd(__vector unsigned char __a, __vector unsigned char __b,10207 __vector unsigned short __c) {10208 return __builtin_s390_vmaleb(__a, __b, __c);10209}10210 10211static inline __ATTRS_o_ai __vector signed int10212vec_meadd(__vector signed short __a, __vector signed short __b,10213 __vector signed int __c) {10214 return __builtin_s390_vmaeh(__a, __b, __c);10215}10216 10217static inline __ATTRS_o_ai __vector unsigned int10218vec_meadd(__vector unsigned short __a, __vector unsigned short __b,10219 __vector unsigned int __c) {10220 return __builtin_s390_vmaleh(__a, __b, __c);10221}10222 10223static inline __ATTRS_o_ai __vector signed long long10224vec_meadd(__vector signed int __a, __vector signed int __b,10225 __vector signed long long __c) {10226 return __builtin_s390_vmaef(__a, __b, __c);10227}10228 10229static inline __ATTRS_o_ai __vector unsigned long long10230vec_meadd(__vector unsigned int __a, __vector unsigned int __b,10231 __vector unsigned long long __c) {10232 return __builtin_s390_vmalef(__a, __b, __c);10233}10234 10235#if __ARCH__ >= 1510236static inline __ATTRS_o_ai __vector signed __int12810237vec_meadd(__vector signed long long __a, __vector signed long long __b,10238 __vector signed __int128 __c) {10239 return (__vector signed __int128)10240 __builtin_s390_vmaeg(__a, __b, (signed __int128)__c);10241}10242 10243static inline __ATTRS_o_ai __vector unsigned __int12810244vec_meadd(__vector unsigned long long __a, __vector unsigned long long __b,10245 __vector unsigned __int128 __c) {10246 return (__vector unsigned __int128)10247 __builtin_s390_vmaleg(__a, __b, (unsigned __int128)__c);10248}10249#endif10250 10251/*-- vec_moadd --------------------------------------------------------------*/10252 10253static inline __ATTRS_o_ai __vector signed short10254vec_moadd(__vector signed char __a, __vector signed char __b,10255 __vector signed short __c) {10256 return __builtin_s390_vmaob(__a, __b, __c);10257}10258 10259static inline __ATTRS_o_ai __vector unsigned short10260vec_moadd(__vector unsigned char __a, __vector unsigned char __b,10261 __vector unsigned short __c) {10262 return __builtin_s390_vmalob(__a, __b, __c);10263}10264 10265static inline __ATTRS_o_ai __vector signed int10266vec_moadd(__vector signed short __a, __vector signed short __b,10267 __vector signed int __c) {10268 return __builtin_s390_vmaoh(__a, __b, __c);10269}10270 10271static inline __ATTRS_o_ai __vector unsigned int10272vec_moadd(__vector unsigned short __a, __vector unsigned short __b,10273 __vector unsigned int __c) {10274 return __builtin_s390_vmaloh(__a, __b, __c);10275}10276 10277static inline __ATTRS_o_ai __vector signed long long10278vec_moadd(__vector signed int __a, __vector signed int __b,10279 __vector signed long long __c) {10280 return __builtin_s390_vmaof(__a, __b, __c);10281}10282 10283static inline __ATTRS_o_ai __vector unsigned long long10284vec_moadd(__vector unsigned int __a, __vector unsigned int __b,10285 __vector unsigned long long __c) {10286 return __builtin_s390_vmalof(__a, __b, __c);10287}10288 10289#if __ARCH__ >= 1510290static inline __ATTRS_o_ai __vector signed __int12810291vec_moadd(__vector signed long long __a, __vector signed long long __b,10292 __vector signed __int128 __c) {10293 return (__vector signed __int128)10294 __builtin_s390_vmaog(__a, __b, (signed __int128)__c);10295}10296 10297static inline __ATTRS_o_ai __vector unsigned __int12810298vec_moadd(__vector unsigned long long __a, __vector unsigned long long __b,10299 __vector unsigned __int128 __c) {10300 return (__vector unsigned __int128)10301 __builtin_s390_vmalog(__a, __b, (unsigned __int128)__c);10302}10303#endif10304 10305/*-- vec_mulh ---------------------------------------------------------------*/10306 10307static inline __ATTRS_o_ai __vector signed char10308vec_mulh(__vector signed char __a, __vector signed char __b) {10309 return __builtin_s390_vmhb(__a, __b);10310}10311 10312static inline __ATTRS_o_ai __vector unsigned char10313vec_mulh(__vector unsigned char __a, __vector unsigned char __b) {10314 return __builtin_s390_vmlhb(__a, __b);10315}10316 10317static inline __ATTRS_o_ai __vector signed short10318vec_mulh(__vector signed short __a, __vector signed short __b) {10319 return __builtin_s390_vmhh(__a, __b);10320}10321 10322static inline __ATTRS_o_ai __vector unsigned short10323vec_mulh(__vector unsigned short __a, __vector unsigned short __b) {10324 return __builtin_s390_vmlhh(__a, __b);10325}10326 10327static inline __ATTRS_o_ai __vector signed int10328vec_mulh(__vector signed int __a, __vector signed int __b) {10329 return __builtin_s390_vmhf(__a, __b);10330}10331 10332static inline __ATTRS_o_ai __vector unsigned int10333vec_mulh(__vector unsigned int __a, __vector unsigned int __b) {10334 return __builtin_s390_vmlhf(__a, __b);10335}10336 10337#if __ARCH__ >= 1510338static inline __ATTRS_o_ai __vector signed long long10339vec_mulh(__vector signed long long __a, __vector signed long long __b) {10340 return __builtin_s390_vmhg(__a, __b);10341}10342 10343static inline __ATTRS_o_ai __vector unsigned long long10344vec_mulh(__vector unsigned long long __a, __vector unsigned long long __b) {10345 return __builtin_s390_vmlhg(__a, __b);10346}10347 10348static inline __ATTRS_o_ai __vector signed __int12810349vec_mulh(__vector signed __int128 __a, __vector signed __int128 __b) {10350 return (__vector signed __int128)10351 __builtin_s390_vmhq((signed __int128)__a, (signed __int128)__b);10352}10353 10354static inline __ATTRS_o_ai __vector unsigned __int12810355vec_mulh(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {10356 return (__vector unsigned __int128)10357 __builtin_s390_vmlhq((unsigned __int128)__a, (unsigned __int128)__b);10358}10359#endif10360 10361/*-- vec_mule ---------------------------------------------------------------*/10362 10363static inline __ATTRS_o_ai __vector signed short10364vec_mule(__vector signed char __a, __vector signed char __b) {10365 return __builtin_s390_vmeb(__a, __b);10366}10367 10368static inline __ATTRS_o_ai __vector unsigned short10369vec_mule(__vector unsigned char __a, __vector unsigned char __b) {10370 return __builtin_s390_vmleb(__a, __b);10371}10372 10373static inline __ATTRS_o_ai __vector signed int10374vec_mule(__vector signed short __a, __vector signed short __b) {10375 return __builtin_s390_vmeh(__a, __b);10376}10377 10378static inline __ATTRS_o_ai __vector unsigned int10379vec_mule(__vector unsigned short __a, __vector unsigned short __b) {10380 return __builtin_s390_vmleh(__a, __b);10381}10382 10383static inline __ATTRS_o_ai __vector signed long long10384vec_mule(__vector signed int __a, __vector signed int __b) {10385 return __builtin_s390_vmef(__a, __b);10386}10387 10388static inline __ATTRS_o_ai __vector unsigned long long10389vec_mule(__vector unsigned int __a, __vector unsigned int __b) {10390 return __builtin_s390_vmlef(__a, __b);10391}10392 10393#if __ARCH__ >= 1510394static inline __ATTRS_o_ai __vector signed __int12810395vec_mule(__vector signed long long __a, __vector signed long long __b) {10396 return (__vector signed __int128)__builtin_s390_vmeg(__a, __b);10397}10398 10399static inline __ATTRS_o_ai __vector unsigned __int12810400vec_mule(__vector unsigned long long __a, __vector unsigned long long __b) {10401 return (__vector unsigned __int128)__builtin_s390_vmleg(__a, __b);10402}10403#endif10404 10405/*-- vec_mulo ---------------------------------------------------------------*/10406 10407static inline __ATTRS_o_ai __vector signed short10408vec_mulo(__vector signed char __a, __vector signed char __b) {10409 return __builtin_s390_vmob(__a, __b);10410}10411 10412static inline __ATTRS_o_ai __vector unsigned short10413vec_mulo(__vector unsigned char __a, __vector unsigned char __b) {10414 return __builtin_s390_vmlob(__a, __b);10415}10416 10417static inline __ATTRS_o_ai __vector signed int10418vec_mulo(__vector signed short __a, __vector signed short __b) {10419 return __builtin_s390_vmoh(__a, __b);10420}10421 10422static inline __ATTRS_o_ai __vector unsigned int10423vec_mulo(__vector unsigned short __a, __vector unsigned short __b) {10424 return __builtin_s390_vmloh(__a, __b);10425}10426 10427static inline __ATTRS_o_ai __vector signed long long10428vec_mulo(__vector signed int __a, __vector signed int __b) {10429 return __builtin_s390_vmof(__a, __b);10430}10431 10432static inline __ATTRS_o_ai __vector unsigned long long10433vec_mulo(__vector unsigned int __a, __vector unsigned int __b) {10434 return __builtin_s390_vmlof(__a, __b);10435}10436 10437#if __ARCH__ >= 1510438static inline __ATTRS_o_ai __vector signed __int12810439vec_mulo(__vector signed long long __a, __vector signed long long __b) {10440 return (__vector signed __int128)__builtin_s390_vmog(__a, __b);10441}10442 10443static inline __ATTRS_o_ai __vector unsigned __int12810444vec_mulo(__vector unsigned long long __a, __vector unsigned long long __b) {10445 return (__vector unsigned __int128)__builtin_s390_vmlog(__a, __b);10446}10447#endif10448 10449/*-- vec_msum ---------------------------------------------------------------*/10450 10451#if __ARCH__ >= 1210452extern __ATTRS_o __vector unsigned __int12810453vec_msum(__vector unsigned long long __a, __vector unsigned long long __b,10454 __vector unsigned __int128 __c, int __d)10455 __constant_range(__d, 0, 15);10456 10457#define vec_msum(X, Y, Z, W) \10458 ((__typeof__((vec_msum)((X), (Y), (Z), (W)))) \10459 __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))10460#endif10461 10462/*-- vec_msum_u128 ----------------------------------------------------------*/10463 10464#if __ARCH__ >= 1210465// This prototype is deprecated.10466extern __ATTRS_o __vector unsigned char10467vec_msum_u128(__vector unsigned long long __a, __vector unsigned long long __b,10468 __vector unsigned char __c, int __d)10469 __constant_range(__d, 0, 15);10470 10471#define vec_msum_u128(X, Y, Z, W) \10472 ((__typeof__((vec_msum_u128)((X), (Y), (Z), (W)))) \10473 (__vector unsigned __int128) \10474 __builtin_s390_vmslg((X), (Y), (unsigned __int128)(Z), (W)))10475#endif10476 10477/*-- vec_sub_u128 -----------------------------------------------------------*/10478 10479// This prototype is deprecated.10480static inline __ATTRS_ai __vector unsigned char10481vec_sub_u128(__vector unsigned char __a, __vector unsigned char __b) {10482 return (__vector unsigned char)(__vector unsigned __int128)10483 ((__int128)__a - (__int128)__b);10484}10485 10486/*-- vec_subc ---------------------------------------------------------------*/10487 10488static inline __ATTRS_o_ai __vector unsigned char10489vec_subc(__vector unsigned char __a, __vector unsigned char __b) {10490 return __builtin_s390_vscbib(__a, __b);10491}10492 10493static inline __ATTRS_o_ai __vector unsigned short10494vec_subc(__vector unsigned short __a, __vector unsigned short __b) {10495 return __builtin_s390_vscbih(__a, __b);10496}10497 10498static inline __ATTRS_o_ai __vector unsigned int10499vec_subc(__vector unsigned int __a, __vector unsigned int __b) {10500 return __builtin_s390_vscbif(__a, __b);10501}10502 10503static inline __ATTRS_o_ai __vector unsigned long long10504vec_subc(__vector unsigned long long __a, __vector unsigned long long __b) {10505 return __builtin_s390_vscbig(__a, __b);10506}10507 10508static inline __ATTRS_o_ai __vector unsigned __int12810509vec_subc(__vector unsigned __int128 __a, __vector unsigned __int128 __b) {10510 return (__vector unsigned __int128)10511 __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);10512}10513 10514/*-- vec_subc_u128 ----------------------------------------------------------*/10515 10516// This prototype is deprecated.10517static inline __ATTRS_ai __vector unsigned char10518vec_subc_u128(__vector unsigned char __a, __vector unsigned char __b) {10519 return (__vector unsigned char)(__vector unsigned __int128)10520 __builtin_s390_vscbiq((unsigned __int128)__a, (unsigned __int128)__b);10521}10522 10523/*-- vec_sube ---------------------------------------------------------------*/10524 10525static inline __ATTRS_ai __vector unsigned __int12810526vec_sube(__vector unsigned __int128 __a, __vector unsigned __int128 __b,10527 __vector unsigned __int128 __c) {10528 return (__vector unsigned __int128)10529 __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,10530 (unsigned __int128)__c);10531}10532 10533/*-- vec_sube_u128 ----------------------------------------------------------*/10534 10535// This prototype is deprecated.10536static inline __ATTRS_ai __vector unsigned char10537vec_sube_u128(__vector unsigned char __a, __vector unsigned char __b,10538 __vector unsigned char __c) {10539 return (__vector unsigned char)(__vector unsigned __int128)10540 __builtin_s390_vsbiq((unsigned __int128)__a, (unsigned __int128)__b,10541 (unsigned __int128)__c);10542}10543 10544/*-- vec_subec --------------------------------------------------------------*/10545 10546static inline __ATTRS_ai __vector unsigned __int12810547vec_subec(__vector unsigned __int128 __a, __vector unsigned __int128 __b,10548 __vector unsigned __int128 __c) {10549 return (__vector unsigned __int128)10550 __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,10551 (unsigned __int128)__c);10552}10553 10554/*-- vec_subec_u128 ---------------------------------------------------------*/10555 10556// This prototype is deprecated.10557static inline __ATTRS_ai __vector unsigned char10558vec_subec_u128(__vector unsigned char __a, __vector unsigned char __b,10559 __vector unsigned char __c) {10560 return (__vector unsigned char)(__vector unsigned __int128)10561 __builtin_s390_vsbcbiq((unsigned __int128)__a, (unsigned __int128)__b,10562 (unsigned __int128)__c);10563}10564 10565/*-- vec_sum2 ---------------------------------------------------------------*/10566 10567static inline __ATTRS_o_ai __vector unsigned long long10568vec_sum2(__vector unsigned short __a, __vector unsigned short __b) {10569 return __builtin_s390_vsumgh(__a, __b);10570}10571 10572static inline __ATTRS_o_ai __vector unsigned long long10573vec_sum2(__vector unsigned int __a, __vector unsigned int __b) {10574 return __builtin_s390_vsumgf(__a, __b);10575}10576 10577/*-- vec_sum ----------------------------------------------------------------*/10578 10579static inline __ATTRS_o_ai __vector unsigned __int12810580vec_sum(__vector unsigned int __a, __vector unsigned int __b) {10581 return (__vector unsigned __int128)__builtin_s390_vsumqf(__a, __b);10582}10583 10584static inline __ATTRS_o_ai __vector unsigned __int12810585vec_sum(__vector unsigned long long __a, __vector unsigned long long __b) {10586 return (__vector unsigned __int128)__builtin_s390_vsumqg(__a, __b);10587}10588 10589/*-- vec_sum_u128 -----------------------------------------------------------*/10590 10591// This prototype is deprecated.10592static inline __ATTRS_o_ai __vector unsigned char10593vec_sum_u128(__vector unsigned int __a, __vector unsigned int __b) {10594 return (__vector unsigned char)(__vector unsigned __int128)10595 __builtin_s390_vsumqf(__a, __b);10596}10597 10598// This prototype is deprecated.10599static inline __ATTRS_o_ai __vector unsigned char10600vec_sum_u128(__vector unsigned long long __a, __vector unsigned long long __b) {10601 return (__vector unsigned char)(__vector unsigned __int128)10602 __builtin_s390_vsumqg(__a, __b);10603}10604 10605/*-- vec_sum4 ---------------------------------------------------------------*/10606 10607static inline __ATTRS_o_ai __vector unsigned int10608vec_sum4(__vector unsigned char __a, __vector unsigned char __b) {10609 return __builtin_s390_vsumb(__a, __b);10610}10611 10612static inline __ATTRS_o_ai __vector unsigned int10613vec_sum4(__vector unsigned short __a, __vector unsigned short __b) {10614 return __builtin_s390_vsumh(__a, __b);10615}10616 10617/*-- vec_test_mask ----------------------------------------------------------*/10618 10619static inline __ATTRS_o_ai int10620vec_test_mask(__vector signed char __a, __vector unsigned char __b) {10621 return __builtin_s390_vtm((__vector unsigned char)__a,10622 (__vector unsigned char)__b);10623}10624 10625static inline __ATTRS_o_ai int10626vec_test_mask(__vector unsigned char __a, __vector unsigned char __b) {10627 return __builtin_s390_vtm(__a, __b);10628}10629 10630static inline __ATTRS_o_ai int10631vec_test_mask(__vector signed short __a, __vector unsigned short __b) {10632 return __builtin_s390_vtm((__vector unsigned char)__a,10633 (__vector unsigned char)__b);10634}10635 10636static inline __ATTRS_o_ai int10637vec_test_mask(__vector unsigned short __a, __vector unsigned short __b) {10638 return __builtin_s390_vtm((__vector unsigned char)__a,10639 (__vector unsigned char)__b);10640}10641 10642static inline __ATTRS_o_ai int10643vec_test_mask(__vector signed int __a, __vector unsigned int __b) {10644 return __builtin_s390_vtm((__vector unsigned char)__a,10645 (__vector unsigned char)__b);10646}10647 10648static inline __ATTRS_o_ai int10649vec_test_mask(__vector unsigned int __a, __vector unsigned int __b) {10650 return __builtin_s390_vtm((__vector unsigned char)__a,10651 (__vector unsigned char)__b);10652}10653 10654static inline __ATTRS_o_ai int10655vec_test_mask(__vector signed long long __a, __vector unsigned long long __b) {10656 return __builtin_s390_vtm((__vector unsigned char)__a,10657 (__vector unsigned char)__b);10658}10659 10660static inline __ATTRS_o_ai int10661vec_test_mask(__vector unsigned long long __a,10662 __vector unsigned long long __b) {10663 return __builtin_s390_vtm((__vector unsigned char)__a,10664 (__vector unsigned char)__b);10665}10666 10667static inline __ATTRS_o_ai int10668vec_test_mask(__vector signed __int128 __a, __vector unsigned __int128 __b) {10669 return __builtin_s390_vtm((__vector unsigned char)__a,10670 (__vector unsigned char)__b);10671}10672 10673static inline __ATTRS_o_ai int10674vec_test_mask(__vector unsigned __int128 __a,10675 __vector unsigned __int128 __b) {10676 return __builtin_s390_vtm((__vector unsigned char)__a,10677 (__vector unsigned char)__b);10678}10679 10680#if __ARCH__ >= 1210681static inline __ATTRS_o_ai int10682vec_test_mask(__vector float __a, __vector unsigned int __b) {10683 return __builtin_s390_vtm((__vector unsigned char)__a,10684 (__vector unsigned char)__b);10685}10686#endif10687 10688static inline __ATTRS_o_ai int10689vec_test_mask(__vector double __a, __vector unsigned long long __b) {10690 return __builtin_s390_vtm((__vector unsigned char)__a,10691 (__vector unsigned char)__b);10692}10693 10694/*-- vec_madd ---------------------------------------------------------------*/10695 10696#if __ARCH__ >= 1210697static inline __ATTRS_o_ai __vector float10698vec_madd(__vector float __a, __vector float __b, __vector float __c) {10699 return __builtin_s390_vfmasb(__a, __b, __c);10700}10701#endif10702 10703static inline __ATTRS_o_ai __vector double10704vec_madd(__vector double __a, __vector double __b, __vector double __c) {10705 return __builtin_s390_vfmadb(__a, __b, __c);10706}10707 10708/*-- vec_msub ---------------------------------------------------------------*/10709 10710#if __ARCH__ >= 1210711static inline __ATTRS_o_ai __vector float10712vec_msub(__vector float __a, __vector float __b, __vector float __c) {10713 return __builtin_s390_vfmssb(__a, __b, __c);10714}10715#endif10716 10717static inline __ATTRS_o_ai __vector double10718vec_msub(__vector double __a, __vector double __b, __vector double __c) {10719 return __builtin_s390_vfmsdb(__a, __b, __c);10720}10721 10722/*-- vec_nmadd ---------------------------------------------------------------*/10723 10724#if __ARCH__ >= 1210725static inline __ATTRS_o_ai __vector float10726vec_nmadd(__vector float __a, __vector float __b, __vector float __c) {10727 return __builtin_s390_vfnmasb(__a, __b, __c);10728}10729 10730static inline __ATTRS_o_ai __vector double10731vec_nmadd(__vector double __a, __vector double __b, __vector double __c) {10732 return __builtin_s390_vfnmadb(__a, __b, __c);10733}10734#endif10735 10736/*-- vec_nmsub ---------------------------------------------------------------*/10737 10738#if __ARCH__ >= 1210739static inline __ATTRS_o_ai __vector float10740vec_nmsub(__vector float __a, __vector float __b, __vector float __c) {10741 return __builtin_s390_vfnmssb(__a, __b, __c);10742}10743 10744static inline __ATTRS_o_ai __vector double10745vec_nmsub(__vector double __a, __vector double __b, __vector double __c) {10746 return __builtin_s390_vfnmsdb(__a, __b, __c);10747}10748#endif10749 10750/*-- vec_sqrt ---------------------------------------------------------------*/10751 10752#if __ARCH__ >= 1210753static inline __ATTRS_o_ai __vector float10754vec_sqrt(__vector float __a) {10755 return __builtin_s390_vfsqsb(__a);10756}10757#endif10758 10759static inline __ATTRS_o_ai __vector double10760vec_sqrt(__vector double __a) {10761 return __builtin_s390_vfsqdb(__a);10762}10763 10764/*-- vec_ld2f ---------------------------------------------------------------*/10765 10766// This prototype is deprecated.10767static inline __ATTRS_ai __vector double10768vec_ld2f(const float *__ptr) {10769 typedef float __v2f32 __attribute__((__vector_size__(8)));10770 return __builtin_convertvector(*(const __v2f32 *)__ptr, __vector double);10771}10772 10773/*-- vec_st2f ---------------------------------------------------------------*/10774 10775// This prototype is deprecated.10776static inline __ATTRS_ai void10777vec_st2f(__vector double __a, float *__ptr) {10778 typedef float __v2f32 __attribute__((__vector_size__(8)));10779 *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32);10780}10781 10782/*-- vec_ctd ----------------------------------------------------------------*/10783 10784// This prototype is deprecated.10785static inline __ATTRS_o_ai __vector double10786vec_ctd(__vector signed long long __a, int __b)10787 __constant_range(__b, 0, 31) {10788 __vector double __conv = __builtin_convertvector(__a, __vector double);10789 __conv *= ((__vector double)(__vector unsigned long long)10790 ((0x3ffULL - __b) << 52));10791 return __conv;10792}10793 10794// This prototype is deprecated.10795static inline __ATTRS_o_ai __vector double10796vec_ctd(__vector unsigned long long __a, int __b)10797 __constant_range(__b, 0, 31) {10798 __vector double __conv = __builtin_convertvector(__a, __vector double);10799 __conv *= ((__vector double)(__vector unsigned long long)10800 ((0x3ffULL - __b) << 52));10801 return __conv;10802}10803 10804/*-- vec_ctsl ---------------------------------------------------------------*/10805 10806// This prototype is deprecated.10807static inline __ATTRS_o_ai __vector signed long long10808vec_ctsl(__vector double __a, int __b)10809 __constant_range(__b, 0, 31) {10810 __a *= ((__vector double)(__vector unsigned long long)10811 ((0x3ffULL + __b) << 52));10812 return __builtin_convertvector(__a, __vector signed long long);10813}10814 10815/*-- vec_ctul ---------------------------------------------------------------*/10816 10817// This prototype is deprecated.10818static inline __ATTRS_o_ai __vector unsigned long long10819vec_ctul(__vector double __a, int __b)10820 __constant_range(__b, 0, 31) {10821 __a *= ((__vector double)(__vector unsigned long long)10822 ((0x3ffULL + __b) << 52));10823 return __builtin_convertvector(__a, __vector unsigned long long);10824}10825 10826/*-- vec_doublee ------------------------------------------------------------*/10827 10828#if __ARCH__ >= 1210829static inline __ATTRS_ai __vector double10830vec_doublee(__vector float __a) {10831 typedef float __v2f32 __attribute__((__vector_size__(8)));10832 __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2);10833 return __builtin_convertvector(__pack, __vector double);10834}10835#endif10836 10837/*-- vec_floate -------------------------------------------------------------*/10838 10839#if __ARCH__ >= 1210840static inline __ATTRS_ai __vector float10841vec_floate(__vector double __a) {10842 typedef float __v2f32 __attribute__((__vector_size__(8)));10843 __v2f32 __pack = __builtin_convertvector(__a, __v2f32);10844 return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1);10845}10846#endif10847 10848/*-- vec_double -------------------------------------------------------------*/10849 10850static inline __ATTRS_o_ai __vector double10851vec_double(__vector signed long long __a) {10852 return __builtin_convertvector(__a, __vector double);10853}10854 10855static inline __ATTRS_o_ai __vector double10856vec_double(__vector unsigned long long __a) {10857 return __builtin_convertvector(__a, __vector double);10858}10859 10860/*-- vec_float --------------------------------------------------------------*/10861 10862#if __ARCH__ >= 1310863 10864static inline __ATTRS_o_ai __vector float10865vec_float(__vector signed int __a) {10866 return __builtin_convertvector(__a, __vector float);10867}10868 10869static inline __ATTRS_o_ai __vector float10870vec_float(__vector unsigned int __a) {10871 return __builtin_convertvector(__a, __vector float);10872}10873 10874#endif10875 10876/*-- vec_signed -------------------------------------------------------------*/10877 10878static inline __ATTRS_o_ai __vector signed long long10879vec_signed(__vector double __a) {10880 return __builtin_convertvector(__a, __vector signed long long);10881}10882 10883#if __ARCH__ >= 1310884static inline __ATTRS_o_ai __vector signed int10885vec_signed(__vector float __a) {10886 return __builtin_convertvector(__a, __vector signed int);10887}10888#endif10889 10890/*-- vec_unsigned -----------------------------------------------------------*/10891 10892static inline __ATTRS_o_ai __vector unsigned long long10893vec_unsigned(__vector double __a) {10894 return __builtin_convertvector(__a, __vector unsigned long long);10895}10896 10897#if __ARCH__ >= 1310898static inline __ATTRS_o_ai __vector unsigned int10899vec_unsigned(__vector float __a) {10900 return __builtin_convertvector(__a, __vector unsigned int);10901}10902#endif10903 10904/*-- vec_roundp -------------------------------------------------------------*/10905 10906#if __ARCH__ >= 1210907static inline __ATTRS_o_ai __vector float10908vec_roundp(__vector float __a) {10909 return __builtin_s390_vfisb(__a, 4, 6);10910}10911#endif10912 10913static inline __ATTRS_o_ai __vector double10914vec_roundp(__vector double __a) {10915 return __builtin_s390_vfidb(__a, 4, 6);10916}10917 10918/*-- vec_ceil ---------------------------------------------------------------*/10919 10920#if __ARCH__ >= 1210921static inline __ATTRS_o_ai __vector float10922vec_ceil(__vector float __a) {10923 // On this platform, vec_ceil never triggers the IEEE-inexact exception.10924 return __builtin_s390_vfisb(__a, 4, 6);10925}10926#endif10927 10928static inline __ATTRS_o_ai __vector double10929vec_ceil(__vector double __a) {10930 // On this platform, vec_ceil never triggers the IEEE-inexact exception.10931 return __builtin_s390_vfidb(__a, 4, 6);10932}10933 10934/*-- vec_roundm -------------------------------------------------------------*/10935 10936#if __ARCH__ >= 1210937static inline __ATTRS_o_ai __vector float10938vec_roundm(__vector float __a) {10939 return __builtin_s390_vfisb(__a, 4, 7);10940}10941#endif10942 10943static inline __ATTRS_o_ai __vector double10944vec_roundm(__vector double __a) {10945 return __builtin_s390_vfidb(__a, 4, 7);10946}10947 10948/*-- vec_floor --------------------------------------------------------------*/10949 10950#if __ARCH__ >= 1210951static inline __ATTRS_o_ai __vector float10952vec_floor(__vector float __a) {10953 // On this platform, vec_floor never triggers the IEEE-inexact exception.10954 return __builtin_s390_vfisb(__a, 4, 7);10955}10956#endif10957 10958static inline __ATTRS_o_ai __vector double10959vec_floor(__vector double __a) {10960 // On this platform, vec_floor never triggers the IEEE-inexact exception.10961 return __builtin_s390_vfidb(__a, 4, 7);10962}10963 10964/*-- vec_roundz -------------------------------------------------------------*/10965 10966#if __ARCH__ >= 1210967static inline __ATTRS_o_ai __vector float10968vec_roundz(__vector float __a) {10969 return __builtin_s390_vfisb(__a, 4, 5);10970}10971#endif10972 10973static inline __ATTRS_o_ai __vector double10974vec_roundz(__vector double __a) {10975 return __builtin_s390_vfidb(__a, 4, 5);10976}10977 10978/*-- vec_trunc --------------------------------------------------------------*/10979 10980#if __ARCH__ >= 1210981static inline __ATTRS_o_ai __vector float10982vec_trunc(__vector float __a) {10983 // On this platform, vec_trunc never triggers the IEEE-inexact exception.10984 return __builtin_s390_vfisb(__a, 4, 5);10985}10986#endif10987 10988static inline __ATTRS_o_ai __vector double10989vec_trunc(__vector double __a) {10990 // On this platform, vec_trunc never triggers the IEEE-inexact exception.10991 return __builtin_s390_vfidb(__a, 4, 5);10992}10993 10994/*-- vec_roundc -------------------------------------------------------------*/10995 10996#if __ARCH__ >= 1210997static inline __ATTRS_o_ai __vector float10998vec_roundc(__vector float __a) {10999 return __builtin_s390_vfisb(__a, 4, 0);11000}11001#endif11002 11003static inline __ATTRS_o_ai __vector double11004vec_roundc(__vector double __a) {11005 return __builtin_s390_vfidb(__a, 4, 0);11006}11007 11008/*-- vec_rint ---------------------------------------------------------------*/11009 11010#if __ARCH__ >= 1211011static inline __ATTRS_o_ai __vector float11012vec_rint(__vector float __a) {11013 // vec_rint may trigger the IEEE-inexact exception.11014 return __builtin_s390_vfisb(__a, 0, 0);11015}11016#endif11017 11018static inline __ATTRS_o_ai __vector double11019vec_rint(__vector double __a) {11020 // vec_rint may trigger the IEEE-inexact exception.11021 return __builtin_s390_vfidb(__a, 0, 0);11022}11023 11024/*-- vec_round --------------------------------------------------------------*/11025 11026#if __ARCH__ >= 1211027static inline __ATTRS_o_ai __vector float11028vec_round(__vector float __a) {11029 return __builtin_s390_vfisb(__a, 4, 4);11030}11031#endif11032 11033static inline __ATTRS_o_ai __vector double11034vec_round(__vector double __a) {11035 return __builtin_s390_vfidb(__a, 4, 4);11036}11037 11038/*-- vec_fp_test_data_class -------------------------------------------------*/11039 11040#if __ARCH__ >= 1211041extern __ATTRS_o __vector __bool int11042vec_fp_test_data_class(__vector float __a, int __b, int *__c)11043 __constant_range(__b, 0, 4095);11044 11045extern __ATTRS_o __vector __bool long long11046vec_fp_test_data_class(__vector double __a, int __b, int *__c)11047 __constant_range(__b, 0, 4095);11048 11049#define vec_fp_test_data_class(X, Y, Z) \11050 ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \11051 __extension__ ({ \11052 __vector unsigned char __res; \11053 __vector unsigned char __x = (__vector unsigned char)(X); \11054 int *__z = (Z); \11055 switch (sizeof ((X)[0])) { \11056 case 4: __res = (__vector unsigned char) \11057 __builtin_s390_vftcisb((__vector float)__x, (Y), __z); \11058 break; \11059 default: __res = (__vector unsigned char) \11060 __builtin_s390_vftcidb((__vector double)__x, (Y), __z); \11061 break; \11062 } __res; }))11063#else11064#define vec_fp_test_data_class(X, Y, Z) \11065 ((__vector __bool long long)__builtin_s390_vftcidb((X), (Y), (Z)))11066#endif11067 11068#define __VEC_CLASS_FP_ZERO_P (1 << 11)11069#define __VEC_CLASS_FP_ZERO_N (1 << 10)11070#define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N)11071#define __VEC_CLASS_FP_NORMAL_P (1 << 9)11072#define __VEC_CLASS_FP_NORMAL_N (1 << 8)11073#define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \11074 __VEC_CLASS_FP_NORMAL_N)11075#define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7)11076#define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6)11077#define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \11078 __VEC_CLASS_FP_SUBNORMAL_N)11079#define __VEC_CLASS_FP_INFINITY_P (1 << 5)11080#define __VEC_CLASS_FP_INFINITY_N (1 << 4)11081#define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \11082 __VEC_CLASS_FP_INFINITY_N)11083#define __VEC_CLASS_FP_QNAN_P (1 << 3)11084#define __VEC_CLASS_FP_QNAN_N (1 << 2)11085#define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N)11086#define __VEC_CLASS_FP_SNAN_P (1 << 1)11087#define __VEC_CLASS_FP_SNAN_N (1 << 0)11088#define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N)11089#define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN)11090#define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \11091 __VEC_CLASS_FP_SUBNORMAL | \11092 __VEC_CLASS_FP_ZERO | \11093 __VEC_CLASS_FP_INFINITY)11094 11095/*-- vec_extend_to_fp32_hi --------------------------------------------------*/11096 11097#if __ARCH__ >= 1411098#define vec_extend_to_fp32_hi(X, W) \11099 ((__vector float)__builtin_s390_vclfnhs((X), (W)));11100#endif11101 11102/*-- vec_extend_to_fp32_hi --------------------------------------------------*/11103 11104#if __ARCH__ >= 1411105#define vec_extend_to_fp32_lo(X, W) \11106 ((__vector float)__builtin_s390_vclfnls((X), (W)));11107#endif11108 11109/*-- vec_round_from_fp32 ----------------------------------------------------*/11110 11111#if __ARCH__ >= 1411112#define vec_round_from_fp32(X, Y, W) \11113 ((__vector unsigned short)__builtin_s390_vcrnfs((X), (Y), (W)));11114#endif11115 11116/*-- vec_convert_to_fp16 ----------------------------------------------------*/11117 11118#if __ARCH__ >= 1411119#define vec_convert_to_fp16(X, W) \11120 ((__vector unsigned short)__builtin_s390_vcfn((X), (W)));11121#endif11122 11123/*-- vec_convert_from_fp16 --------------------------------------------------*/11124 11125#if __ARCH__ >= 1411126#define vec_convert_from_fp16(X, W) \11127 ((__vector unsigned short)__builtin_s390_vcnf((X), (W)));11128#endif11129 11130/*-- vec_cp_until_zero ------------------------------------------------------*/11131 11132static inline __ATTRS_o_ai __vector signed char11133vec_cp_until_zero(__vector signed char __a) {11134 return ((__vector signed char)11135 __builtin_s390_vistrb((__vector unsigned char)__a));11136}11137 11138static inline __ATTRS_o_ai __vector __bool char11139vec_cp_until_zero(__vector __bool char __a) {11140 return ((__vector __bool char)11141 __builtin_s390_vistrb((__vector unsigned char)__a));11142}11143 11144static inline __ATTRS_o_ai __vector unsigned char11145vec_cp_until_zero(__vector unsigned char __a) {11146 return __builtin_s390_vistrb(__a);11147}11148 11149static inline __ATTRS_o_ai __vector signed short11150vec_cp_until_zero(__vector signed short __a) {11151 return ((__vector signed short)11152 __builtin_s390_vistrh((__vector unsigned short)__a));11153}11154 11155static inline __ATTRS_o_ai __vector __bool short11156vec_cp_until_zero(__vector __bool short __a) {11157 return ((__vector __bool short)11158 __builtin_s390_vistrh((__vector unsigned short)__a));11159}11160 11161static inline __ATTRS_o_ai __vector unsigned short11162vec_cp_until_zero(__vector unsigned short __a) {11163 return __builtin_s390_vistrh(__a);11164}11165 11166static inline __ATTRS_o_ai __vector signed int11167vec_cp_until_zero(__vector signed int __a) {11168 return ((__vector signed int)11169 __builtin_s390_vistrf((__vector unsigned int)__a));11170}11171 11172static inline __ATTRS_o_ai __vector __bool int11173vec_cp_until_zero(__vector __bool int __a) {11174 return ((__vector __bool int)11175 __builtin_s390_vistrf((__vector unsigned int)__a));11176}11177 11178static inline __ATTRS_o_ai __vector unsigned int11179vec_cp_until_zero(__vector unsigned int __a) {11180 return __builtin_s390_vistrf(__a);11181}11182 11183/*-- vec_cp_until_zero_cc ---------------------------------------------------*/11184 11185static inline __ATTRS_o_ai __vector signed char11186vec_cp_until_zero_cc(__vector signed char __a, int *__cc) {11187 return (__vector signed char)11188 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);11189}11190 11191static inline __ATTRS_o_ai __vector __bool char11192vec_cp_until_zero_cc(__vector __bool char __a, int *__cc) {11193 return (__vector __bool char)11194 __builtin_s390_vistrbs((__vector unsigned char)__a, __cc);11195}11196 11197static inline __ATTRS_o_ai __vector unsigned char11198vec_cp_until_zero_cc(__vector unsigned char __a, int *__cc) {11199 return __builtin_s390_vistrbs(__a, __cc);11200}11201 11202static inline __ATTRS_o_ai __vector signed short11203vec_cp_until_zero_cc(__vector signed short __a, int *__cc) {11204 return (__vector signed short)11205 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);11206}11207 11208static inline __ATTRS_o_ai __vector __bool short11209vec_cp_until_zero_cc(__vector __bool short __a, int *__cc) {11210 return (__vector __bool short)11211 __builtin_s390_vistrhs((__vector unsigned short)__a, __cc);11212}11213 11214static inline __ATTRS_o_ai __vector unsigned short11215vec_cp_until_zero_cc(__vector unsigned short __a, int *__cc) {11216 return __builtin_s390_vistrhs(__a, __cc);11217}11218 11219static inline __ATTRS_o_ai __vector signed int11220vec_cp_until_zero_cc(__vector signed int __a, int *__cc) {11221 return (__vector signed int)11222 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);11223}11224 11225static inline __ATTRS_o_ai __vector __bool int11226vec_cp_until_zero_cc(__vector __bool int __a, int *__cc) {11227 return (__vector __bool int)11228 __builtin_s390_vistrfs((__vector unsigned int)__a, __cc);11229}11230 11231static inline __ATTRS_o_ai __vector unsigned int11232vec_cp_until_zero_cc(__vector unsigned int __a, int *__cc) {11233 return __builtin_s390_vistrfs(__a, __cc);11234}11235 11236/*-- vec_cmpeq_idx ----------------------------------------------------------*/11237 11238static inline __ATTRS_o_ai __vector signed char11239vec_cmpeq_idx(__vector signed char __a, __vector signed char __b) {11240 return (__vector signed char)11241 __builtin_s390_vfeeb((__vector unsigned char)__a,11242 (__vector unsigned char)__b);11243}11244 11245static inline __ATTRS_o_ai __vector unsigned char11246vec_cmpeq_idx(__vector __bool char __a, __vector __bool char __b) {11247 return __builtin_s390_vfeeb((__vector unsigned char)__a,11248 (__vector unsigned char)__b);11249}11250 11251static inline __ATTRS_o_ai __vector unsigned char11252vec_cmpeq_idx(__vector unsigned char __a, __vector unsigned char __b) {11253 return __builtin_s390_vfeeb(__a, __b);11254}11255 11256static inline __ATTRS_o_ai __vector signed short11257vec_cmpeq_idx(__vector signed short __a, __vector signed short __b) {11258 return (__vector signed short)11259 __builtin_s390_vfeeh((__vector unsigned short)__a,11260 (__vector unsigned short)__b);11261}11262 11263static inline __ATTRS_o_ai __vector unsigned short11264vec_cmpeq_idx(__vector __bool short __a, __vector __bool short __b) {11265 return __builtin_s390_vfeeh((__vector unsigned short)__a,11266 (__vector unsigned short)__b);11267}11268 11269static inline __ATTRS_o_ai __vector unsigned short11270vec_cmpeq_idx(__vector unsigned short __a, __vector unsigned short __b) {11271 return __builtin_s390_vfeeh(__a, __b);11272}11273 11274static inline __ATTRS_o_ai __vector signed int11275vec_cmpeq_idx(__vector signed int __a, __vector signed int __b) {11276 return (__vector signed int)11277 __builtin_s390_vfeef((__vector unsigned int)__a,11278 (__vector unsigned int)__b);11279}11280 11281static inline __ATTRS_o_ai __vector unsigned int11282vec_cmpeq_idx(__vector __bool int __a, __vector __bool int __b) {11283 return __builtin_s390_vfeef((__vector unsigned int)__a,11284 (__vector unsigned int)__b);11285}11286 11287static inline __ATTRS_o_ai __vector unsigned int11288vec_cmpeq_idx(__vector unsigned int __a, __vector unsigned int __b) {11289 return __builtin_s390_vfeef(__a, __b);11290}11291 11292/*-- vec_cmpeq_idx_cc -------------------------------------------------------*/11293 11294static inline __ATTRS_o_ai __vector signed char11295vec_cmpeq_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {11296 return (__vector signed char)11297 __builtin_s390_vfeebs((__vector unsigned char)__a,11298 (__vector unsigned char)__b, __cc);11299}11300 11301static inline __ATTRS_o_ai __vector unsigned char11302vec_cmpeq_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {11303 return __builtin_s390_vfeebs((__vector unsigned char)__a,11304 (__vector unsigned char)__b, __cc);11305}11306 11307static inline __ATTRS_o_ai __vector unsigned char11308vec_cmpeq_idx_cc(__vector unsigned char __a, __vector unsigned char __b,11309 int *__cc) {11310 return __builtin_s390_vfeebs(__a, __b, __cc);11311}11312 11313static inline __ATTRS_o_ai __vector signed short11314vec_cmpeq_idx_cc(__vector signed short __a, __vector signed short __b,11315 int *__cc) {11316 return (__vector signed short)11317 __builtin_s390_vfeehs((__vector unsigned short)__a,11318 (__vector unsigned short)__b, __cc);11319}11320 11321static inline __ATTRS_o_ai __vector unsigned short11322vec_cmpeq_idx_cc(__vector __bool short __a, __vector __bool short __b, int *__cc) {11323 return __builtin_s390_vfeehs((__vector unsigned short)__a,11324 (__vector unsigned short)__b, __cc);11325}11326 11327static inline __ATTRS_o_ai __vector unsigned short11328vec_cmpeq_idx_cc(__vector unsigned short __a, __vector unsigned short __b,11329 int *__cc) {11330 return __builtin_s390_vfeehs(__a, __b, __cc);11331}11332 11333static inline __ATTRS_o_ai __vector signed int11334vec_cmpeq_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {11335 return (__vector signed int)11336 __builtin_s390_vfeefs((__vector unsigned int)__a,11337 (__vector unsigned int)__b, __cc);11338}11339 11340static inline __ATTRS_o_ai __vector unsigned int11341vec_cmpeq_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {11342 return __builtin_s390_vfeefs((__vector unsigned int)__a,11343 (__vector unsigned int)__b, __cc);11344}11345 11346static inline __ATTRS_o_ai __vector unsigned int11347vec_cmpeq_idx_cc(__vector unsigned int __a, __vector unsigned int __b,11348 int *__cc) {11349 return __builtin_s390_vfeefs(__a, __b, __cc);11350}11351 11352/*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/11353 11354static inline __ATTRS_o_ai __vector signed char11355vec_cmpeq_or_0_idx(__vector signed char __a, __vector signed char __b) {11356 return (__vector signed char)11357 __builtin_s390_vfeezb((__vector unsigned char)__a,11358 (__vector unsigned char)__b);11359}11360 11361static inline __ATTRS_o_ai __vector unsigned char11362vec_cmpeq_or_0_idx(__vector __bool char __a, __vector __bool char __b) {11363 return __builtin_s390_vfeezb((__vector unsigned char)__a,11364 (__vector unsigned char)__b);11365}11366 11367static inline __ATTRS_o_ai __vector unsigned char11368vec_cmpeq_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {11369 return __builtin_s390_vfeezb(__a, __b);11370}11371 11372static inline __ATTRS_o_ai __vector signed short11373vec_cmpeq_or_0_idx(__vector signed short __a, __vector signed short __b) {11374 return (__vector signed short)11375 __builtin_s390_vfeezh((__vector unsigned short)__a,11376 (__vector unsigned short)__b);11377}11378 11379static inline __ATTRS_o_ai __vector unsigned short11380vec_cmpeq_or_0_idx(__vector __bool short __a, __vector __bool short __b) {11381 return __builtin_s390_vfeezh((__vector unsigned short)__a,11382 (__vector unsigned short)__b);11383}11384 11385static inline __ATTRS_o_ai __vector unsigned short11386vec_cmpeq_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {11387 return __builtin_s390_vfeezh(__a, __b);11388}11389 11390static inline __ATTRS_o_ai __vector signed int11391vec_cmpeq_or_0_idx(__vector signed int __a, __vector signed int __b) {11392 return (__vector signed int)11393 __builtin_s390_vfeezf((__vector unsigned int)__a,11394 (__vector unsigned int)__b);11395}11396 11397static inline __ATTRS_o_ai __vector unsigned int11398vec_cmpeq_or_0_idx(__vector __bool int __a, __vector __bool int __b) {11399 return __builtin_s390_vfeezf((__vector unsigned int)__a,11400 (__vector unsigned int)__b);11401}11402 11403static inline __ATTRS_o_ai __vector unsigned int11404vec_cmpeq_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {11405 return __builtin_s390_vfeezf(__a, __b);11406}11407 11408/*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/11409 11410static inline __ATTRS_o_ai __vector signed char11411vec_cmpeq_or_0_idx_cc(__vector signed char __a, __vector signed char __b,11412 int *__cc) {11413 return (__vector signed char)11414 __builtin_s390_vfeezbs((__vector unsigned char)__a,11415 (__vector unsigned char)__b, __cc);11416}11417 11418static inline __ATTRS_o_ai __vector unsigned char11419vec_cmpeq_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,11420 int *__cc) {11421 return __builtin_s390_vfeezbs((__vector unsigned char)__a,11422 (__vector unsigned char)__b, __cc);11423}11424 11425static inline __ATTRS_o_ai __vector unsigned char11426vec_cmpeq_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,11427 int *__cc) {11428 return __builtin_s390_vfeezbs(__a, __b, __cc);11429}11430 11431static inline __ATTRS_o_ai __vector signed short11432vec_cmpeq_or_0_idx_cc(__vector signed short __a, __vector signed short __b,11433 int *__cc) {11434 return (__vector signed short)11435 __builtin_s390_vfeezhs((__vector unsigned short)__a,11436 (__vector unsigned short)__b, __cc);11437}11438 11439static inline __ATTRS_o_ai __vector unsigned short11440vec_cmpeq_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,11441 int *__cc) {11442 return __builtin_s390_vfeezhs((__vector unsigned short)__a,11443 (__vector unsigned short)__b, __cc);11444}11445 11446static inline __ATTRS_o_ai __vector unsigned short11447vec_cmpeq_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,11448 int *__cc) {11449 return __builtin_s390_vfeezhs(__a, __b, __cc);11450}11451 11452static inline __ATTRS_o_ai __vector signed int11453vec_cmpeq_or_0_idx_cc(__vector signed int __a, __vector signed int __b,11454 int *__cc) {11455 return (__vector signed int)11456 __builtin_s390_vfeezfs((__vector unsigned int)__a,11457 (__vector unsigned int)__b, __cc);11458}11459 11460static inline __ATTRS_o_ai __vector unsigned int11461vec_cmpeq_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,11462 int *__cc) {11463 return __builtin_s390_vfeezfs((__vector unsigned int)__a,11464 (__vector unsigned int)__b, __cc);11465}11466 11467static inline __ATTRS_o_ai __vector unsigned int11468vec_cmpeq_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,11469 int *__cc) {11470 return __builtin_s390_vfeezfs(__a, __b, __cc);11471}11472 11473/*-- vec_cmpne_idx ----------------------------------------------------------*/11474 11475static inline __ATTRS_o_ai __vector signed char11476vec_cmpne_idx(__vector signed char __a, __vector signed char __b) {11477 return (__vector signed char)11478 __builtin_s390_vfeneb((__vector unsigned char)__a,11479 (__vector unsigned char)__b);11480}11481 11482static inline __ATTRS_o_ai __vector unsigned char11483vec_cmpne_idx(__vector __bool char __a, __vector __bool char __b) {11484 return __builtin_s390_vfeneb((__vector unsigned char)__a,11485 (__vector unsigned char)__b);11486}11487 11488static inline __ATTRS_o_ai __vector unsigned char11489vec_cmpne_idx(__vector unsigned char __a, __vector unsigned char __b) {11490 return __builtin_s390_vfeneb(__a, __b);11491}11492 11493static inline __ATTRS_o_ai __vector signed short11494vec_cmpne_idx(__vector signed short __a, __vector signed short __b) {11495 return (__vector signed short)11496 __builtin_s390_vfeneh((__vector unsigned short)__a,11497 (__vector unsigned short)__b);11498}11499 11500static inline __ATTRS_o_ai __vector unsigned short11501vec_cmpne_idx(__vector __bool short __a, __vector __bool short __b) {11502 return __builtin_s390_vfeneh((__vector unsigned short)__a,11503 (__vector unsigned short)__b);11504}11505 11506static inline __ATTRS_o_ai __vector unsigned short11507vec_cmpne_idx(__vector unsigned short __a, __vector unsigned short __b) {11508 return __builtin_s390_vfeneh(__a, __b);11509}11510 11511static inline __ATTRS_o_ai __vector signed int11512vec_cmpne_idx(__vector signed int __a, __vector signed int __b) {11513 return (__vector signed int)11514 __builtin_s390_vfenef((__vector unsigned int)__a,11515 (__vector unsigned int)__b);11516}11517 11518static inline __ATTRS_o_ai __vector unsigned int11519vec_cmpne_idx(__vector __bool int __a, __vector __bool int __b) {11520 return __builtin_s390_vfenef((__vector unsigned int)__a,11521 (__vector unsigned int)__b);11522}11523 11524static inline __ATTRS_o_ai __vector unsigned int11525vec_cmpne_idx(__vector unsigned int __a, __vector unsigned int __b) {11526 return __builtin_s390_vfenef(__a, __b);11527}11528 11529/*-- vec_cmpne_idx_cc -------------------------------------------------------*/11530 11531static inline __ATTRS_o_ai __vector signed char11532vec_cmpne_idx_cc(__vector signed char __a, __vector signed char __b, int *__cc) {11533 return (__vector signed char)11534 __builtin_s390_vfenebs((__vector unsigned char)__a,11535 (__vector unsigned char)__b, __cc);11536}11537 11538static inline __ATTRS_o_ai __vector unsigned char11539vec_cmpne_idx_cc(__vector __bool char __a, __vector __bool char __b, int *__cc) {11540 return __builtin_s390_vfenebs((__vector unsigned char)__a,11541 (__vector unsigned char)__b, __cc);11542}11543 11544static inline __ATTRS_o_ai __vector unsigned char11545vec_cmpne_idx_cc(__vector unsigned char __a, __vector unsigned char __b,11546 int *__cc) {11547 return __builtin_s390_vfenebs(__a, __b, __cc);11548}11549 11550static inline __ATTRS_o_ai __vector signed short11551vec_cmpne_idx_cc(__vector signed short __a, __vector signed short __b,11552 int *__cc) {11553 return (__vector signed short)11554 __builtin_s390_vfenehs((__vector unsigned short)__a,11555 (__vector unsigned short)__b, __cc);11556}11557 11558static inline __ATTRS_o_ai __vector unsigned short11559vec_cmpne_idx_cc(__vector __bool short __a, __vector __bool short __b,11560 int *__cc) {11561 return __builtin_s390_vfenehs((__vector unsigned short)__a,11562 (__vector unsigned short)__b, __cc);11563}11564 11565static inline __ATTRS_o_ai __vector unsigned short11566vec_cmpne_idx_cc(__vector unsigned short __a, __vector unsigned short __b,11567 int *__cc) {11568 return __builtin_s390_vfenehs(__a, __b, __cc);11569}11570 11571static inline __ATTRS_o_ai __vector signed int11572vec_cmpne_idx_cc(__vector signed int __a, __vector signed int __b, int *__cc) {11573 return (__vector signed int)11574 __builtin_s390_vfenefs((__vector unsigned int)__a,11575 (__vector unsigned int)__b, __cc);11576}11577 11578static inline __ATTRS_o_ai __vector unsigned int11579vec_cmpne_idx_cc(__vector __bool int __a, __vector __bool int __b, int *__cc) {11580 return __builtin_s390_vfenefs((__vector unsigned int)__a,11581 (__vector unsigned int)__b, __cc);11582}11583 11584static inline __ATTRS_o_ai __vector unsigned int11585vec_cmpne_idx_cc(__vector unsigned int __a, __vector unsigned int __b,11586 int *__cc) {11587 return __builtin_s390_vfenefs(__a, __b, __cc);11588}11589 11590/*-- vec_cmpne_or_0_idx -----------------------------------------------------*/11591 11592static inline __ATTRS_o_ai __vector signed char11593vec_cmpne_or_0_idx(__vector signed char __a, __vector signed char __b) {11594 return (__vector signed char)11595 __builtin_s390_vfenezb((__vector unsigned char)__a,11596 (__vector unsigned char)__b);11597}11598 11599static inline __ATTRS_o_ai __vector unsigned char11600vec_cmpne_or_0_idx(__vector __bool char __a, __vector __bool char __b) {11601 return __builtin_s390_vfenezb((__vector unsigned char)__a,11602 (__vector unsigned char)__b);11603}11604 11605static inline __ATTRS_o_ai __vector unsigned char11606vec_cmpne_or_0_idx(__vector unsigned char __a, __vector unsigned char __b) {11607 return __builtin_s390_vfenezb(__a, __b);11608}11609 11610static inline __ATTRS_o_ai __vector signed short11611vec_cmpne_or_0_idx(__vector signed short __a, __vector signed short __b) {11612 return (__vector signed short)11613 __builtin_s390_vfenezh((__vector unsigned short)__a,11614 (__vector unsigned short)__b);11615}11616 11617static inline __ATTRS_o_ai __vector unsigned short11618vec_cmpne_or_0_idx(__vector __bool short __a, __vector __bool short __b) {11619 return __builtin_s390_vfenezh((__vector unsigned short)__a,11620 (__vector unsigned short)__b);11621}11622 11623static inline __ATTRS_o_ai __vector unsigned short11624vec_cmpne_or_0_idx(__vector unsigned short __a, __vector unsigned short __b) {11625 return __builtin_s390_vfenezh(__a, __b);11626}11627 11628static inline __ATTRS_o_ai __vector signed int11629vec_cmpne_or_0_idx(__vector signed int __a, __vector signed int __b) {11630 return (__vector signed int)11631 __builtin_s390_vfenezf((__vector unsigned int)__a,11632 (__vector unsigned int)__b);11633}11634 11635static inline __ATTRS_o_ai __vector unsigned int11636vec_cmpne_or_0_idx(__vector __bool int __a, __vector __bool int __b) {11637 return __builtin_s390_vfenezf((__vector unsigned int)__a,11638 (__vector unsigned int)__b);11639}11640 11641static inline __ATTRS_o_ai __vector unsigned int11642vec_cmpne_or_0_idx(__vector unsigned int __a, __vector unsigned int __b) {11643 return __builtin_s390_vfenezf(__a, __b);11644}11645 11646/*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/11647 11648static inline __ATTRS_o_ai __vector signed char11649vec_cmpne_or_0_idx_cc(__vector signed char __a, __vector signed char __b,11650 int *__cc) {11651 return (__vector signed char)11652 __builtin_s390_vfenezbs((__vector unsigned char)__a,11653 (__vector unsigned char)__b, __cc);11654}11655 11656static inline __ATTRS_o_ai __vector unsigned char11657vec_cmpne_or_0_idx_cc(__vector __bool char __a, __vector __bool char __b,11658 int *__cc) {11659 return __builtin_s390_vfenezbs((__vector unsigned char)__a,11660 (__vector unsigned char)__b, __cc);11661}11662 11663static inline __ATTRS_o_ai __vector unsigned char11664vec_cmpne_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,11665 int *__cc) {11666 return __builtin_s390_vfenezbs(__a, __b, __cc);11667}11668 11669static inline __ATTRS_o_ai __vector signed short11670vec_cmpne_or_0_idx_cc(__vector signed short __a, __vector signed short __b,11671 int *__cc) {11672 return (__vector signed short)11673 __builtin_s390_vfenezhs((__vector unsigned short)__a,11674 (__vector unsigned short)__b, __cc);11675}11676 11677static inline __ATTRS_o_ai __vector unsigned short11678vec_cmpne_or_0_idx_cc(__vector __bool short __a, __vector __bool short __b,11679 int *__cc) {11680 return __builtin_s390_vfenezhs((__vector unsigned short)__a,11681 (__vector unsigned short)__b, __cc);11682}11683 11684static inline __ATTRS_o_ai __vector unsigned short11685vec_cmpne_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,11686 int *__cc) {11687 return __builtin_s390_vfenezhs(__a, __b, __cc);11688}11689 11690static inline __ATTRS_o_ai __vector signed int11691vec_cmpne_or_0_idx_cc(__vector signed int __a, __vector signed int __b,11692 int *__cc) {11693 return (__vector signed int)11694 __builtin_s390_vfenezfs((__vector unsigned int)__a,11695 (__vector unsigned int)__b, __cc);11696}11697 11698static inline __ATTRS_o_ai __vector unsigned int11699vec_cmpne_or_0_idx_cc(__vector __bool int __a, __vector __bool int __b,11700 int *__cc) {11701 return __builtin_s390_vfenezfs((__vector unsigned int)__a,11702 (__vector unsigned int)__b, __cc);11703}11704 11705static inline __ATTRS_o_ai __vector unsigned int11706vec_cmpne_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,11707 int *__cc) {11708 return __builtin_s390_vfenezfs(__a, __b, __cc);11709}11710 11711/*-- vec_cmprg --------------------------------------------------------------*/11712 11713static inline __ATTRS_o_ai __vector __bool char11714vec_cmprg(__vector unsigned char __a, __vector unsigned char __b,11715 __vector unsigned char __c) {11716 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 4);11717}11718 11719static inline __ATTRS_o_ai __vector __bool short11720vec_cmprg(__vector unsigned short __a, __vector unsigned short __b,11721 __vector unsigned short __c) {11722 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 4);11723}11724 11725static inline __ATTRS_o_ai __vector __bool int11726vec_cmprg(__vector unsigned int __a, __vector unsigned int __b,11727 __vector unsigned int __c) {11728 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 4);11729}11730 11731/*-- vec_cmprg_cc -----------------------------------------------------------*/11732 11733static inline __ATTRS_o_ai __vector __bool char11734vec_cmprg_cc(__vector unsigned char __a, __vector unsigned char __b,11735 __vector unsigned char __c, int *__cc) {11736 return (__vector __bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc);11737}11738 11739static inline __ATTRS_o_ai __vector __bool short11740vec_cmprg_cc(__vector unsigned short __a, __vector unsigned short __b,11741 __vector unsigned short __c, int *__cc) {11742 return (__vector __bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc);11743}11744 11745static inline __ATTRS_o_ai __vector __bool int11746vec_cmprg_cc(__vector unsigned int __a, __vector unsigned int __b,11747 __vector unsigned int __c, int *__cc) {11748 return (__vector __bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc);11749}11750 11751/*-- vec_cmprg_idx ----------------------------------------------------------*/11752 11753static inline __ATTRS_o_ai __vector unsigned char11754vec_cmprg_idx(__vector unsigned char __a, __vector unsigned char __b,11755 __vector unsigned char __c) {11756 return __builtin_s390_vstrcb(__a, __b, __c, 0);11757}11758 11759static inline __ATTRS_o_ai __vector unsigned short11760vec_cmprg_idx(__vector unsigned short __a, __vector unsigned short __b,11761 __vector unsigned short __c) {11762 return __builtin_s390_vstrch(__a, __b, __c, 0);11763}11764 11765static inline __ATTRS_o_ai __vector unsigned int11766vec_cmprg_idx(__vector unsigned int __a, __vector unsigned int __b,11767 __vector unsigned int __c) {11768 return __builtin_s390_vstrcf(__a, __b, __c, 0);11769}11770 11771/*-- vec_cmprg_idx_cc -------------------------------------------------------*/11772 11773static inline __ATTRS_o_ai __vector unsigned char11774vec_cmprg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,11775 __vector unsigned char __c, int *__cc) {11776 return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc);11777}11778 11779static inline __ATTRS_o_ai __vector unsigned short11780vec_cmprg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,11781 __vector unsigned short __c, int *__cc) {11782 return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc);11783}11784 11785static inline __ATTRS_o_ai __vector unsigned int11786vec_cmprg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,11787 __vector unsigned int __c, int *__cc) {11788 return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc);11789}11790 11791/*-- vec_cmprg_or_0_idx -----------------------------------------------------*/11792 11793static inline __ATTRS_o_ai __vector unsigned char11794vec_cmprg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,11795 __vector unsigned char __c) {11796 return __builtin_s390_vstrczb(__a, __b, __c, 0);11797}11798 11799static inline __ATTRS_o_ai __vector unsigned short11800vec_cmprg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,11801 __vector unsigned short __c) {11802 return __builtin_s390_vstrczh(__a, __b, __c, 0);11803}11804 11805static inline __ATTRS_o_ai __vector unsigned int11806vec_cmprg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,11807 __vector unsigned int __c) {11808 return __builtin_s390_vstrczf(__a, __b, __c, 0);11809}11810 11811/*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/11812 11813static inline __ATTRS_o_ai __vector unsigned char11814vec_cmprg_or_0_idx_cc(__vector unsigned char __a, __vector unsigned char __b,11815 __vector unsigned char __c, int *__cc) {11816 return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc);11817}11818 11819static inline __ATTRS_o_ai __vector unsigned short11820vec_cmprg_or_0_idx_cc(__vector unsigned short __a, __vector unsigned short __b,11821 __vector unsigned short __c, int *__cc) {11822 return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc);11823}11824 11825static inline __ATTRS_o_ai __vector unsigned int11826vec_cmprg_or_0_idx_cc(__vector unsigned int __a, __vector unsigned int __b,11827 __vector unsigned int __c, int *__cc) {11828 return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc);11829}11830 11831/*-- vec_cmpnrg -------------------------------------------------------------*/11832 11833static inline __ATTRS_o_ai __vector __bool char11834vec_cmpnrg(__vector unsigned char __a, __vector unsigned char __b,11835 __vector unsigned char __c) {11836 return (__vector __bool char)__builtin_s390_vstrcb(__a, __b, __c, 12);11837}11838 11839static inline __ATTRS_o_ai __vector __bool short11840vec_cmpnrg(__vector unsigned short __a, __vector unsigned short __b,11841 __vector unsigned short __c) {11842 return (__vector __bool short)__builtin_s390_vstrch(__a, __b, __c, 12);11843}11844 11845static inline __ATTRS_o_ai __vector __bool int11846vec_cmpnrg(__vector unsigned int __a, __vector unsigned int __b,11847 __vector unsigned int __c) {11848 return (__vector __bool int)__builtin_s390_vstrcf(__a, __b, __c, 12);11849}11850 11851/*-- vec_cmpnrg_cc ----------------------------------------------------------*/11852 11853static inline __ATTRS_o_ai __vector __bool char11854vec_cmpnrg_cc(__vector unsigned char __a, __vector unsigned char __b,11855 __vector unsigned char __c, int *__cc) {11856 return (__vector __bool char)11857 __builtin_s390_vstrcbs(__a, __b, __c, 12, __cc);11858}11859 11860static inline __ATTRS_o_ai __vector __bool short11861vec_cmpnrg_cc(__vector unsigned short __a, __vector unsigned short __b,11862 __vector unsigned short __c, int *__cc) {11863 return (__vector __bool short)11864 __builtin_s390_vstrchs(__a, __b, __c, 12, __cc);11865}11866 11867static inline __ATTRS_o_ai __vector __bool int11868vec_cmpnrg_cc(__vector unsigned int __a, __vector unsigned int __b,11869 __vector unsigned int __c, int *__cc) {11870 return (__vector __bool int)11871 __builtin_s390_vstrcfs(__a, __b, __c, 12, __cc);11872}11873 11874/*-- vec_cmpnrg_idx ---------------------------------------------------------*/11875 11876static inline __ATTRS_o_ai __vector unsigned char11877vec_cmpnrg_idx(__vector unsigned char __a, __vector unsigned char __b,11878 __vector unsigned char __c) {11879 return __builtin_s390_vstrcb(__a, __b, __c, 8);11880}11881 11882static inline __ATTRS_o_ai __vector unsigned short11883vec_cmpnrg_idx(__vector unsigned short __a, __vector unsigned short __b,11884 __vector unsigned short __c) {11885 return __builtin_s390_vstrch(__a, __b, __c, 8);11886}11887 11888static inline __ATTRS_o_ai __vector unsigned int11889vec_cmpnrg_idx(__vector unsigned int __a, __vector unsigned int __b,11890 __vector unsigned int __c) {11891 return __builtin_s390_vstrcf(__a, __b, __c, 8);11892}11893 11894/*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/11895 11896static inline __ATTRS_o_ai __vector unsigned char11897vec_cmpnrg_idx_cc(__vector unsigned char __a, __vector unsigned char __b,11898 __vector unsigned char __c, int *__cc) {11899 return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc);11900}11901 11902static inline __ATTRS_o_ai __vector unsigned short11903vec_cmpnrg_idx_cc(__vector unsigned short __a, __vector unsigned short __b,11904 __vector unsigned short __c, int *__cc) {11905 return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc);11906}11907 11908static inline __ATTRS_o_ai __vector unsigned int11909vec_cmpnrg_idx_cc(__vector unsigned int __a, __vector unsigned int __b,11910 __vector unsigned int __c, int *__cc) {11911 return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc);11912}11913 11914/*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/11915 11916static inline __ATTRS_o_ai __vector unsigned char11917vec_cmpnrg_or_0_idx(__vector unsigned char __a, __vector unsigned char __b,11918 __vector unsigned char __c) {11919 return __builtin_s390_vstrczb(__a, __b, __c, 8);11920}11921 11922static inline __ATTRS_o_ai __vector unsigned short11923vec_cmpnrg_or_0_idx(__vector unsigned short __a, __vector unsigned short __b,11924 __vector unsigned short __c) {11925 return __builtin_s390_vstrczh(__a, __b, __c, 8);11926}11927 11928static inline __ATTRS_o_ai __vector unsigned int11929vec_cmpnrg_or_0_idx(__vector unsigned int __a, __vector unsigned int __b,11930 __vector unsigned int __c) {11931 return __builtin_s390_vstrczf(__a, __b, __c, 8);11932}11933 11934/*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/11935 11936static inline __ATTRS_o_ai __vector unsigned char11937vec_cmpnrg_or_0_idx_cc(__vector unsigned char __a,11938 __vector unsigned char __b,11939 __vector unsigned char __c, int *__cc) {11940 return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc);11941}11942 11943static inline __ATTRS_o_ai __vector unsigned short11944vec_cmpnrg_or_0_idx_cc(__vector unsigned short __a,11945 __vector unsigned short __b,11946 __vector unsigned short __c, int *__cc) {11947 return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc);11948}11949 11950static inline __ATTRS_o_ai __vector unsigned int11951vec_cmpnrg_or_0_idx_cc(__vector unsigned int __a,11952 __vector unsigned int __b,11953 __vector unsigned int __c, int *__cc) {11954 return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc);11955}11956 11957/*-- vec_find_any_eq --------------------------------------------------------*/11958 11959static inline __ATTRS_o_ai __vector __bool char11960vec_find_any_eq(__vector signed char __a, __vector signed char __b) {11961 return (__vector __bool char)11962 __builtin_s390_vfaeb((__vector unsigned char)__a,11963 (__vector unsigned char)__b, 4);11964}11965 11966static inline __ATTRS_o_ai __vector __bool char11967vec_find_any_eq(__vector __bool char __a, __vector __bool char __b) {11968 return (__vector __bool char)11969 __builtin_s390_vfaeb((__vector unsigned char)__a,11970 (__vector unsigned char)__b, 4);11971}11972 11973static inline __ATTRS_o_ai __vector __bool char11974vec_find_any_eq(__vector unsigned char __a, __vector unsigned char __b) {11975 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 4);11976}11977 11978static inline __ATTRS_o_ai __vector __bool short11979vec_find_any_eq(__vector signed short __a, __vector signed short __b) {11980 return (__vector __bool short)11981 __builtin_s390_vfaeh((__vector unsigned short)__a,11982 (__vector unsigned short)__b, 4);11983}11984 11985static inline __ATTRS_o_ai __vector __bool short11986vec_find_any_eq(__vector __bool short __a, __vector __bool short __b) {11987 return (__vector __bool short)11988 __builtin_s390_vfaeh((__vector unsigned short)__a,11989 (__vector unsigned short)__b, 4);11990}11991 11992static inline __ATTRS_o_ai __vector __bool short11993vec_find_any_eq(__vector unsigned short __a, __vector unsigned short __b) {11994 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 4);11995}11996 11997static inline __ATTRS_o_ai __vector __bool int11998vec_find_any_eq(__vector signed int __a, __vector signed int __b) {11999 return (__vector __bool int)12000 __builtin_s390_vfaef((__vector unsigned int)__a,12001 (__vector unsigned int)__b, 4);12002}12003 12004static inline __ATTRS_o_ai __vector __bool int12005vec_find_any_eq(__vector __bool int __a, __vector __bool int __b) {12006 return (__vector __bool int)12007 __builtin_s390_vfaef((__vector unsigned int)__a,12008 (__vector unsigned int)__b, 4);12009}12010 12011static inline __ATTRS_o_ai __vector __bool int12012vec_find_any_eq(__vector unsigned int __a, __vector unsigned int __b) {12013 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 4);12014}12015 12016/*-- vec_find_any_eq_cc -----------------------------------------------------*/12017 12018static inline __ATTRS_o_ai __vector __bool char12019vec_find_any_eq_cc(__vector signed char __a, __vector signed char __b,12020 int *__cc) {12021 return (__vector __bool char)12022 __builtin_s390_vfaebs((__vector unsigned char)__a,12023 (__vector unsigned char)__b, 4, __cc);12024}12025 12026static inline __ATTRS_o_ai __vector __bool char12027vec_find_any_eq_cc(__vector __bool char __a, __vector __bool char __b,12028 int *__cc) {12029 return (__vector __bool char)12030 __builtin_s390_vfaebs((__vector unsigned char)__a,12031 (__vector unsigned char)__b, 4, __cc);12032}12033 12034static inline __ATTRS_o_ai __vector __bool char12035vec_find_any_eq_cc(__vector unsigned char __a, __vector unsigned char __b,12036 int *__cc) {12037 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc);12038}12039 12040static inline __ATTRS_o_ai __vector __bool short12041vec_find_any_eq_cc(__vector signed short __a, __vector signed short __b,12042 int *__cc) {12043 return (__vector __bool short)12044 __builtin_s390_vfaehs((__vector unsigned short)__a,12045 (__vector unsigned short)__b, 4, __cc);12046}12047 12048static inline __ATTRS_o_ai __vector __bool short12049vec_find_any_eq_cc(__vector __bool short __a, __vector __bool short __b,12050 int *__cc) {12051 return (__vector __bool short)12052 __builtin_s390_vfaehs((__vector unsigned short)__a,12053 (__vector unsigned short)__b, 4, __cc);12054}12055 12056static inline __ATTRS_o_ai __vector __bool short12057vec_find_any_eq_cc(__vector unsigned short __a, __vector unsigned short __b,12058 int *__cc) {12059 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc);12060}12061 12062static inline __ATTRS_o_ai __vector __bool int12063vec_find_any_eq_cc(__vector signed int __a, __vector signed int __b,12064 int *__cc) {12065 return (__vector __bool int)12066 __builtin_s390_vfaefs((__vector unsigned int)__a,12067 (__vector unsigned int)__b, 4, __cc);12068}12069 12070static inline __ATTRS_o_ai __vector __bool int12071vec_find_any_eq_cc(__vector __bool int __a, __vector __bool int __b,12072 int *__cc) {12073 return (__vector __bool int)12074 __builtin_s390_vfaefs((__vector unsigned int)__a,12075 (__vector unsigned int)__b, 4, __cc);12076}12077 12078static inline __ATTRS_o_ai __vector __bool int12079vec_find_any_eq_cc(__vector unsigned int __a, __vector unsigned int __b,12080 int *__cc) {12081 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc);12082}12083 12084/*-- vec_find_any_eq_idx ----------------------------------------------------*/12085 12086static inline __ATTRS_o_ai __vector signed char12087vec_find_any_eq_idx(__vector signed char __a, __vector signed char __b) {12088 return (__vector signed char)12089 __builtin_s390_vfaeb((__vector unsigned char)__a,12090 (__vector unsigned char)__b, 0);12091}12092 12093static inline __ATTRS_o_ai __vector unsigned char12094vec_find_any_eq_idx(__vector __bool char __a, __vector __bool char __b) {12095 return __builtin_s390_vfaeb((__vector unsigned char)__a,12096 (__vector unsigned char)__b, 0);12097}12098 12099static inline __ATTRS_o_ai __vector unsigned char12100vec_find_any_eq_idx(__vector unsigned char __a, __vector unsigned char __b) {12101 return __builtin_s390_vfaeb(__a, __b, 0);12102}12103 12104static inline __ATTRS_o_ai __vector signed short12105vec_find_any_eq_idx(__vector signed short __a, __vector signed short __b) {12106 return (__vector signed short)12107 __builtin_s390_vfaeh((__vector unsigned short)__a,12108 (__vector unsigned short)__b, 0);12109}12110 12111static inline __ATTRS_o_ai __vector unsigned short12112vec_find_any_eq_idx(__vector __bool short __a, __vector __bool short __b) {12113 return __builtin_s390_vfaeh((__vector unsigned short)__a,12114 (__vector unsigned short)__b, 0);12115}12116 12117static inline __ATTRS_o_ai __vector unsigned short12118vec_find_any_eq_idx(__vector unsigned short __a, __vector unsigned short __b) {12119 return __builtin_s390_vfaeh(__a, __b, 0);12120}12121 12122static inline __ATTRS_o_ai __vector signed int12123vec_find_any_eq_idx(__vector signed int __a, __vector signed int __b) {12124 return (__vector signed int)12125 __builtin_s390_vfaef((__vector unsigned int)__a,12126 (__vector unsigned int)__b, 0);12127}12128 12129static inline __ATTRS_o_ai __vector unsigned int12130vec_find_any_eq_idx(__vector __bool int __a, __vector __bool int __b) {12131 return __builtin_s390_vfaef((__vector unsigned int)__a,12132 (__vector unsigned int)__b, 0);12133}12134 12135static inline __ATTRS_o_ai __vector unsigned int12136vec_find_any_eq_idx(__vector unsigned int __a, __vector unsigned int __b) {12137 return __builtin_s390_vfaef(__a, __b, 0);12138}12139 12140/*-- vec_find_any_eq_idx_cc -------------------------------------------------*/12141 12142static inline __ATTRS_o_ai __vector signed char12143vec_find_any_eq_idx_cc(__vector signed char __a,12144 __vector signed char __b, int *__cc) {12145 return (__vector signed char)12146 __builtin_s390_vfaebs((__vector unsigned char)__a,12147 (__vector unsigned char)__b, 0, __cc);12148}12149 12150static inline __ATTRS_o_ai __vector unsigned char12151vec_find_any_eq_idx_cc(__vector __bool char __a,12152 __vector __bool char __b, int *__cc) {12153 return __builtin_s390_vfaebs((__vector unsigned char)__a,12154 (__vector unsigned char)__b, 0, __cc);12155}12156 12157static inline __ATTRS_o_ai __vector unsigned char12158vec_find_any_eq_idx_cc(__vector unsigned char __a,12159 __vector unsigned char __b, int *__cc) {12160 return __builtin_s390_vfaebs(__a, __b, 0, __cc);12161}12162 12163static inline __ATTRS_o_ai __vector signed short12164vec_find_any_eq_idx_cc(__vector signed short __a,12165 __vector signed short __b, int *__cc) {12166 return (__vector signed short)12167 __builtin_s390_vfaehs((__vector unsigned short)__a,12168 (__vector unsigned short)__b, 0, __cc);12169}12170 12171static inline __ATTRS_o_ai __vector unsigned short12172vec_find_any_eq_idx_cc(__vector __bool short __a,12173 __vector __bool short __b, int *__cc) {12174 return __builtin_s390_vfaehs((__vector unsigned short)__a,12175 (__vector unsigned short)__b, 0, __cc);12176}12177 12178static inline __ATTRS_o_ai __vector unsigned short12179vec_find_any_eq_idx_cc(__vector unsigned short __a,12180 __vector unsigned short __b, int *__cc) {12181 return __builtin_s390_vfaehs(__a, __b, 0, __cc);12182}12183 12184static inline __ATTRS_o_ai __vector signed int12185vec_find_any_eq_idx_cc(__vector signed int __a,12186 __vector signed int __b, int *__cc) {12187 return (__vector signed int)12188 __builtin_s390_vfaefs((__vector unsigned int)__a,12189 (__vector unsigned int)__b, 0, __cc);12190}12191 12192static inline __ATTRS_o_ai __vector unsigned int12193vec_find_any_eq_idx_cc(__vector __bool int __a,12194 __vector __bool int __b, int *__cc) {12195 return __builtin_s390_vfaefs((__vector unsigned int)__a,12196 (__vector unsigned int)__b, 0, __cc);12197}12198 12199static inline __ATTRS_o_ai __vector unsigned int12200vec_find_any_eq_idx_cc(__vector unsigned int __a,12201 __vector unsigned int __b, int *__cc) {12202 return __builtin_s390_vfaefs(__a, __b, 0, __cc);12203}12204 12205/*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/12206 12207static inline __ATTRS_o_ai __vector signed char12208vec_find_any_eq_or_0_idx(__vector signed char __a,12209 __vector signed char __b) {12210 return (__vector signed char)12211 __builtin_s390_vfaezb((__vector unsigned char)__a,12212 (__vector unsigned char)__b, 0);12213}12214 12215static inline __ATTRS_o_ai __vector unsigned char12216vec_find_any_eq_or_0_idx(__vector __bool char __a,12217 __vector __bool char __b) {12218 return __builtin_s390_vfaezb((__vector unsigned char)__a,12219 (__vector unsigned char)__b, 0);12220}12221 12222static inline __ATTRS_o_ai __vector unsigned char12223vec_find_any_eq_or_0_idx(__vector unsigned char __a,12224 __vector unsigned char __b) {12225 return __builtin_s390_vfaezb(__a, __b, 0);12226}12227 12228static inline __ATTRS_o_ai __vector signed short12229vec_find_any_eq_or_0_idx(__vector signed short __a,12230 __vector signed short __b) {12231 return (__vector signed short)12232 __builtin_s390_vfaezh((__vector unsigned short)__a,12233 (__vector unsigned short)__b, 0);12234}12235 12236static inline __ATTRS_o_ai __vector unsigned short12237vec_find_any_eq_or_0_idx(__vector __bool short __a,12238 __vector __bool short __b) {12239 return __builtin_s390_vfaezh((__vector unsigned short)__a,12240 (__vector unsigned short)__b, 0);12241}12242 12243static inline __ATTRS_o_ai __vector unsigned short12244vec_find_any_eq_or_0_idx(__vector unsigned short __a,12245 __vector unsigned short __b) {12246 return __builtin_s390_vfaezh(__a, __b, 0);12247}12248 12249static inline __ATTRS_o_ai __vector signed int12250vec_find_any_eq_or_0_idx(__vector signed int __a,12251 __vector signed int __b) {12252 return (__vector signed int)12253 __builtin_s390_vfaezf((__vector unsigned int)__a,12254 (__vector unsigned int)__b, 0);12255}12256 12257static inline __ATTRS_o_ai __vector unsigned int12258vec_find_any_eq_or_0_idx(__vector __bool int __a,12259 __vector __bool int __b) {12260 return __builtin_s390_vfaezf((__vector unsigned int)__a,12261 (__vector unsigned int)__b, 0);12262}12263 12264static inline __ATTRS_o_ai __vector unsigned int12265vec_find_any_eq_or_0_idx(__vector unsigned int __a,12266 __vector unsigned int __b) {12267 return __builtin_s390_vfaezf(__a, __b, 0);12268}12269 12270/*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/12271 12272static inline __ATTRS_o_ai __vector signed char12273vec_find_any_eq_or_0_idx_cc(__vector signed char __a,12274 __vector signed char __b, int *__cc) {12275 return (__vector signed char)12276 __builtin_s390_vfaezbs((__vector unsigned char)__a,12277 (__vector unsigned char)__b, 0, __cc);12278}12279 12280static inline __ATTRS_o_ai __vector unsigned char12281vec_find_any_eq_or_0_idx_cc(__vector __bool char __a,12282 __vector __bool char __b, int *__cc) {12283 return __builtin_s390_vfaezbs((__vector unsigned char)__a,12284 (__vector unsigned char)__b, 0, __cc);12285}12286 12287static inline __ATTRS_o_ai __vector unsigned char12288vec_find_any_eq_or_0_idx_cc(__vector unsigned char __a,12289 __vector unsigned char __b, int *__cc) {12290 return __builtin_s390_vfaezbs(__a, __b, 0, __cc);12291}12292 12293static inline __ATTRS_o_ai __vector signed short12294vec_find_any_eq_or_0_idx_cc(__vector signed short __a,12295 __vector signed short __b, int *__cc) {12296 return (__vector signed short)12297 __builtin_s390_vfaezhs((__vector unsigned short)__a,12298 (__vector unsigned short)__b, 0, __cc);12299}12300 12301static inline __ATTRS_o_ai __vector unsigned short12302vec_find_any_eq_or_0_idx_cc(__vector __bool short __a,12303 __vector __bool short __b, int *__cc) {12304 return __builtin_s390_vfaezhs((__vector unsigned short)__a,12305 (__vector unsigned short)__b, 0, __cc);12306}12307 12308static inline __ATTRS_o_ai __vector unsigned short12309vec_find_any_eq_or_0_idx_cc(__vector unsigned short __a,12310 __vector unsigned short __b, int *__cc) {12311 return __builtin_s390_vfaezhs(__a, __b, 0, __cc);12312}12313 12314static inline __ATTRS_o_ai __vector signed int12315vec_find_any_eq_or_0_idx_cc(__vector signed int __a,12316 __vector signed int __b, int *__cc) {12317 return (__vector signed int)12318 __builtin_s390_vfaezfs((__vector unsigned int)__a,12319 (__vector unsigned int)__b, 0, __cc);12320}12321 12322static inline __ATTRS_o_ai __vector unsigned int12323vec_find_any_eq_or_0_idx_cc(__vector __bool int __a,12324 __vector __bool int __b, int *__cc) {12325 return __builtin_s390_vfaezfs((__vector unsigned int)__a,12326 (__vector unsigned int)__b, 0, __cc);12327}12328 12329static inline __ATTRS_o_ai __vector unsigned int12330vec_find_any_eq_or_0_idx_cc(__vector unsigned int __a,12331 __vector unsigned int __b, int *__cc) {12332 return __builtin_s390_vfaezfs(__a, __b, 0, __cc);12333}12334 12335/*-- vec_find_any_ne --------------------------------------------------------*/12336 12337static inline __ATTRS_o_ai __vector __bool char12338vec_find_any_ne(__vector signed char __a, __vector signed char __b) {12339 return (__vector __bool char)12340 __builtin_s390_vfaeb((__vector unsigned char)__a,12341 (__vector unsigned char)__b, 12);12342}12343 12344static inline __ATTRS_o_ai __vector __bool char12345vec_find_any_ne(__vector __bool char __a, __vector __bool char __b) {12346 return (__vector __bool char)12347 __builtin_s390_vfaeb((__vector unsigned char)__a,12348 (__vector unsigned char)__b, 12);12349}12350 12351static inline __ATTRS_o_ai __vector __bool char12352vec_find_any_ne(__vector unsigned char __a, __vector unsigned char __b) {12353 return (__vector __bool char)__builtin_s390_vfaeb(__a, __b, 12);12354}12355 12356static inline __ATTRS_o_ai __vector __bool short12357vec_find_any_ne(__vector signed short __a, __vector signed short __b) {12358 return (__vector __bool short)12359 __builtin_s390_vfaeh((__vector unsigned short)__a,12360 (__vector unsigned short)__b, 12);12361}12362 12363static inline __ATTRS_o_ai __vector __bool short12364vec_find_any_ne(__vector __bool short __a, __vector __bool short __b) {12365 return (__vector __bool short)12366 __builtin_s390_vfaeh((__vector unsigned short)__a,12367 (__vector unsigned short)__b, 12);12368}12369 12370static inline __ATTRS_o_ai __vector __bool short12371vec_find_any_ne(__vector unsigned short __a, __vector unsigned short __b) {12372 return (__vector __bool short)__builtin_s390_vfaeh(__a, __b, 12);12373}12374 12375static inline __ATTRS_o_ai __vector __bool int12376vec_find_any_ne(__vector signed int __a, __vector signed int __b) {12377 return (__vector __bool int)12378 __builtin_s390_vfaef((__vector unsigned int)__a,12379 (__vector unsigned int)__b, 12);12380}12381 12382static inline __ATTRS_o_ai __vector __bool int12383vec_find_any_ne(__vector __bool int __a, __vector __bool int __b) {12384 return (__vector __bool int)12385 __builtin_s390_vfaef((__vector unsigned int)__a,12386 (__vector unsigned int)__b, 12);12387}12388 12389static inline __ATTRS_o_ai __vector __bool int12390vec_find_any_ne(__vector unsigned int __a, __vector unsigned int __b) {12391 return (__vector __bool int)__builtin_s390_vfaef(__a, __b, 12);12392}12393 12394/*-- vec_find_any_ne_cc -----------------------------------------------------*/12395 12396static inline __ATTRS_o_ai __vector __bool char12397vec_find_any_ne_cc(__vector signed char __a,12398 __vector signed char __b, int *__cc) {12399 return (__vector __bool char)12400 __builtin_s390_vfaebs((__vector unsigned char)__a,12401 (__vector unsigned char)__b, 12, __cc);12402}12403 12404static inline __ATTRS_o_ai __vector __bool char12405vec_find_any_ne_cc(__vector __bool char __a,12406 __vector __bool char __b, int *__cc) {12407 return (__vector __bool char)12408 __builtin_s390_vfaebs((__vector unsigned char)__a,12409 (__vector unsigned char)__b, 12, __cc);12410}12411 12412static inline __ATTRS_o_ai __vector __bool char12413vec_find_any_ne_cc(__vector unsigned char __a,12414 __vector unsigned char __b, int *__cc) {12415 return (__vector __bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc);12416}12417 12418static inline __ATTRS_o_ai __vector __bool short12419vec_find_any_ne_cc(__vector signed short __a,12420 __vector signed short __b, int *__cc) {12421 return (__vector __bool short)12422 __builtin_s390_vfaehs((__vector unsigned short)__a,12423 (__vector unsigned short)__b, 12, __cc);12424}12425 12426static inline __ATTRS_o_ai __vector __bool short12427vec_find_any_ne_cc(__vector __bool short __a,12428 __vector __bool short __b, int *__cc) {12429 return (__vector __bool short)12430 __builtin_s390_vfaehs((__vector unsigned short)__a,12431 (__vector unsigned short)__b, 12, __cc);12432}12433 12434static inline __ATTRS_o_ai __vector __bool short12435vec_find_any_ne_cc(__vector unsigned short __a,12436 __vector unsigned short __b, int *__cc) {12437 return (__vector __bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc);12438}12439 12440static inline __ATTRS_o_ai __vector __bool int12441vec_find_any_ne_cc(__vector signed int __a,12442 __vector signed int __b, int *__cc) {12443 return (__vector __bool int)12444 __builtin_s390_vfaefs((__vector unsigned int)__a,12445 (__vector unsigned int)__b, 12, __cc);12446}12447 12448static inline __ATTRS_o_ai __vector __bool int12449vec_find_any_ne_cc(__vector __bool int __a,12450 __vector __bool int __b, int *__cc) {12451 return (__vector __bool int)12452 __builtin_s390_vfaefs((__vector unsigned int)__a,12453 (__vector unsigned int)__b, 12, __cc);12454}12455 12456static inline __ATTRS_o_ai __vector __bool int12457vec_find_any_ne_cc(__vector unsigned int __a,12458 __vector unsigned int __b, int *__cc) {12459 return (__vector __bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc);12460}12461 12462/*-- vec_find_any_ne_idx ----------------------------------------------------*/12463 12464static inline __ATTRS_o_ai __vector signed char12465vec_find_any_ne_idx(__vector signed char __a, __vector signed char __b) {12466 return (__vector signed char)12467 __builtin_s390_vfaeb((__vector unsigned char)__a,12468 (__vector unsigned char)__b, 8);12469}12470 12471static inline __ATTRS_o_ai __vector unsigned char12472vec_find_any_ne_idx(__vector __bool char __a, __vector __bool char __b) {12473 return __builtin_s390_vfaeb((__vector unsigned char)__a,12474 (__vector unsigned char)__b, 8);12475}12476 12477static inline __ATTRS_o_ai __vector unsigned char12478vec_find_any_ne_idx(__vector unsigned char __a, __vector unsigned char __b) {12479 return __builtin_s390_vfaeb(__a, __b, 8);12480}12481 12482static inline __ATTRS_o_ai __vector signed short12483vec_find_any_ne_idx(__vector signed short __a, __vector signed short __b) {12484 return (__vector signed short)12485 __builtin_s390_vfaeh((__vector unsigned short)__a,12486 (__vector unsigned short)__b, 8);12487}12488 12489static inline __ATTRS_o_ai __vector unsigned short12490vec_find_any_ne_idx(__vector __bool short __a, __vector __bool short __b) {12491 return __builtin_s390_vfaeh((__vector unsigned short)__a,12492 (__vector unsigned short)__b, 8);12493}12494 12495static inline __ATTRS_o_ai __vector unsigned short12496vec_find_any_ne_idx(__vector unsigned short __a, __vector unsigned short __b) {12497 return __builtin_s390_vfaeh(__a, __b, 8);12498}12499 12500static inline __ATTRS_o_ai __vector signed int12501vec_find_any_ne_idx(__vector signed int __a, __vector signed int __b) {12502 return (__vector signed int)12503 __builtin_s390_vfaef((__vector unsigned int)__a,12504 (__vector unsigned int)__b, 8);12505}12506 12507static inline __ATTRS_o_ai __vector unsigned int12508vec_find_any_ne_idx(__vector __bool int __a, __vector __bool int __b) {12509 return __builtin_s390_vfaef((__vector unsigned int)__a,12510 (__vector unsigned int)__b, 8);12511}12512 12513static inline __ATTRS_o_ai __vector unsigned int12514vec_find_any_ne_idx(__vector unsigned int __a, __vector unsigned int __b) {12515 return __builtin_s390_vfaef(__a, __b, 8);12516}12517 12518/*-- vec_find_any_ne_idx_cc -------------------------------------------------*/12519 12520static inline __ATTRS_o_ai __vector signed char12521vec_find_any_ne_idx_cc(__vector signed char __a,12522 __vector signed char __b, int *__cc) {12523 return (__vector signed char)12524 __builtin_s390_vfaebs((__vector unsigned char)__a,12525 (__vector unsigned char)__b, 8, __cc);12526}12527 12528static inline __ATTRS_o_ai __vector unsigned char12529vec_find_any_ne_idx_cc(__vector __bool char __a,12530 __vector __bool char __b, int *__cc) {12531 return __builtin_s390_vfaebs((__vector unsigned char)__a,12532 (__vector unsigned char)__b, 8, __cc);12533}12534 12535static inline __ATTRS_o_ai __vector unsigned char12536vec_find_any_ne_idx_cc(__vector unsigned char __a,12537 __vector unsigned char __b,12538 int *__cc) {12539 return __builtin_s390_vfaebs(__a, __b, 8, __cc);12540}12541 12542static inline __ATTRS_o_ai __vector signed short12543vec_find_any_ne_idx_cc(__vector signed short __a,12544 __vector signed short __b, int *__cc) {12545 return (__vector signed short)12546 __builtin_s390_vfaehs((__vector unsigned short)__a,12547 (__vector unsigned short)__b, 8, __cc);12548}12549 12550static inline __ATTRS_o_ai __vector unsigned short12551vec_find_any_ne_idx_cc(__vector __bool short __a,12552 __vector __bool short __b, int *__cc) {12553 return __builtin_s390_vfaehs((__vector unsigned short)__a,12554 (__vector unsigned short)__b, 8, __cc);12555}12556 12557static inline __ATTRS_o_ai __vector unsigned short12558vec_find_any_ne_idx_cc(__vector unsigned short __a,12559 __vector unsigned short __b, int *__cc) {12560 return __builtin_s390_vfaehs(__a, __b, 8, __cc);12561}12562 12563static inline __ATTRS_o_ai __vector signed int12564vec_find_any_ne_idx_cc(__vector signed int __a,12565 __vector signed int __b, int *__cc) {12566 return (__vector signed int)12567 __builtin_s390_vfaefs((__vector unsigned int)__a,12568 (__vector unsigned int)__b, 8, __cc);12569}12570 12571static inline __ATTRS_o_ai __vector unsigned int12572vec_find_any_ne_idx_cc(__vector __bool int __a,12573 __vector __bool int __b, int *__cc) {12574 return __builtin_s390_vfaefs((__vector unsigned int)__a,12575 (__vector unsigned int)__b, 8, __cc);12576}12577 12578static inline __ATTRS_o_ai __vector unsigned int12579vec_find_any_ne_idx_cc(__vector unsigned int __a,12580 __vector unsigned int __b, int *__cc) {12581 return __builtin_s390_vfaefs(__a, __b, 8, __cc);12582}12583 12584/*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/12585 12586static inline __ATTRS_o_ai __vector signed char12587vec_find_any_ne_or_0_idx(__vector signed char __a,12588 __vector signed char __b) {12589 return (__vector signed char)12590 __builtin_s390_vfaezb((__vector unsigned char)__a,12591 (__vector unsigned char)__b, 8);12592}12593 12594static inline __ATTRS_o_ai __vector unsigned char12595vec_find_any_ne_or_0_idx(__vector __bool char __a,12596 __vector __bool char __b) {12597 return __builtin_s390_vfaezb((__vector unsigned char)__a,12598 (__vector unsigned char)__b, 8);12599}12600 12601static inline __ATTRS_o_ai __vector unsigned char12602vec_find_any_ne_or_0_idx(__vector unsigned char __a,12603 __vector unsigned char __b) {12604 return __builtin_s390_vfaezb(__a, __b, 8);12605}12606 12607static inline __ATTRS_o_ai __vector signed short12608vec_find_any_ne_or_0_idx(__vector signed short __a,12609 __vector signed short __b) {12610 return (__vector signed short)12611 __builtin_s390_vfaezh((__vector unsigned short)__a,12612 (__vector unsigned short)__b, 8);12613}12614 12615static inline __ATTRS_o_ai __vector unsigned short12616vec_find_any_ne_or_0_idx(__vector __bool short __a,12617 __vector __bool short __b) {12618 return __builtin_s390_vfaezh((__vector unsigned short)__a,12619 (__vector unsigned short)__b, 8);12620}12621 12622static inline __ATTRS_o_ai __vector unsigned short12623vec_find_any_ne_or_0_idx(__vector unsigned short __a,12624 __vector unsigned short __b) {12625 return __builtin_s390_vfaezh(__a, __b, 8);12626}12627 12628static inline __ATTRS_o_ai __vector signed int12629vec_find_any_ne_or_0_idx(__vector signed int __a,12630 __vector signed int __b) {12631 return (__vector signed int)12632 __builtin_s390_vfaezf((__vector unsigned int)__a,12633 (__vector unsigned int)__b, 8);12634}12635 12636static inline __ATTRS_o_ai __vector unsigned int12637vec_find_any_ne_or_0_idx(__vector __bool int __a,12638 __vector __bool int __b) {12639 return __builtin_s390_vfaezf((__vector unsigned int)__a,12640 (__vector unsigned int)__b, 8);12641}12642 12643static inline __ATTRS_o_ai __vector unsigned int12644vec_find_any_ne_or_0_idx(__vector unsigned int __a,12645 __vector unsigned int __b) {12646 return __builtin_s390_vfaezf(__a, __b, 8);12647}12648 12649/*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/12650 12651static inline __ATTRS_o_ai __vector signed char12652vec_find_any_ne_or_0_idx_cc(__vector signed char __a,12653 __vector signed char __b, int *__cc) {12654 return (__vector signed char)12655 __builtin_s390_vfaezbs((__vector unsigned char)__a,12656 (__vector unsigned char)__b, 8, __cc);12657}12658 12659static inline __ATTRS_o_ai __vector unsigned char12660vec_find_any_ne_or_0_idx_cc(__vector __bool char __a,12661 __vector __bool char __b, int *__cc) {12662 return __builtin_s390_vfaezbs((__vector unsigned char)__a,12663 (__vector unsigned char)__b, 8, __cc);12664}12665 12666static inline __ATTRS_o_ai __vector unsigned char12667vec_find_any_ne_or_0_idx_cc(__vector unsigned char __a,12668 __vector unsigned char __b, int *__cc) {12669 return __builtin_s390_vfaezbs(__a, __b, 8, __cc);12670}12671 12672static inline __ATTRS_o_ai __vector signed short12673vec_find_any_ne_or_0_idx_cc(__vector signed short __a,12674 __vector signed short __b, int *__cc) {12675 return (__vector signed short)12676 __builtin_s390_vfaezhs((__vector unsigned short)__a,12677 (__vector unsigned short)__b, 8, __cc);12678}12679 12680static inline __ATTRS_o_ai __vector unsigned short12681vec_find_any_ne_or_0_idx_cc(__vector __bool short __a,12682 __vector __bool short __b, int *__cc) {12683 return __builtin_s390_vfaezhs((__vector unsigned short)__a,12684 (__vector unsigned short)__b, 8, __cc);12685}12686 12687static inline __ATTRS_o_ai __vector unsigned short12688vec_find_any_ne_or_0_idx_cc(__vector unsigned short __a,12689 __vector unsigned short __b, int *__cc) {12690 return __builtin_s390_vfaezhs(__a, __b, 8, __cc);12691}12692 12693static inline __ATTRS_o_ai __vector signed int12694vec_find_any_ne_or_0_idx_cc(__vector signed int __a,12695 __vector signed int __b, int *__cc) {12696 return (__vector signed int)12697 __builtin_s390_vfaezfs((__vector unsigned int)__a,12698 (__vector unsigned int)__b, 8, __cc);12699}12700 12701static inline __ATTRS_o_ai __vector unsigned int12702vec_find_any_ne_or_0_idx_cc(__vector __bool int __a,12703 __vector __bool int __b, int *__cc) {12704 return __builtin_s390_vfaezfs((__vector unsigned int)__a,12705 (__vector unsigned int)__b, 8, __cc);12706}12707 12708static inline __ATTRS_o_ai __vector unsigned int12709vec_find_any_ne_or_0_idx_cc(__vector unsigned int __a,12710 __vector unsigned int __b, int *__cc) {12711 return __builtin_s390_vfaezfs(__a, __b, 8, __cc);12712}12713 12714/*-- vec_search_string_cc ---------------------------------------------------*/12715 12716#if __ARCH__ >= 1312717 12718static inline __ATTRS_o_ai __vector unsigned char12719vec_search_string_cc(__vector signed char __a, __vector signed char __b,12720 __vector unsigned char __c, int *__cc) {12721 return __builtin_s390_vstrsb((__vector unsigned char)__a,12722 (__vector unsigned char)__b, __c, __cc);12723}12724 12725static inline __ATTRS_o_ai __vector unsigned char12726vec_search_string_cc(__vector __bool char __a, __vector __bool char __b,12727 __vector unsigned char __c, int *__cc) {12728 return __builtin_s390_vstrsb((__vector unsigned char)__a,12729 (__vector unsigned char)__b, __c, __cc);12730}12731 12732static inline __ATTRS_o_ai __vector unsigned char12733vec_search_string_cc(__vector unsigned char __a, __vector unsigned char __b,12734 __vector unsigned char __c, int *__cc) {12735 return __builtin_s390_vstrsb(__a, __b, __c, __cc);12736}12737 12738static inline __ATTRS_o_ai __vector unsigned char12739vec_search_string_cc(__vector signed short __a, __vector signed short __b,12740 __vector unsigned char __c, int *__cc) {12741 return __builtin_s390_vstrsh((__vector unsigned short)__a,12742 (__vector unsigned short)__b, __c, __cc);12743}12744 12745static inline __ATTRS_o_ai __vector unsigned char12746vec_search_string_cc(__vector __bool short __a, __vector __bool short __b,12747 __vector unsigned char __c, int *__cc) {12748 return __builtin_s390_vstrsh((__vector unsigned short)__a,12749 (__vector unsigned short)__b, __c, __cc);12750}12751 12752static inline __ATTRS_o_ai __vector unsigned char12753vec_search_string_cc(__vector unsigned short __a, __vector unsigned short __b,12754 __vector unsigned char __c, int *__cc) {12755 return __builtin_s390_vstrsh(__a, __b, __c, __cc);12756}12757 12758static inline __ATTRS_o_ai __vector unsigned char12759vec_search_string_cc(__vector signed int __a, __vector signed int __b,12760 __vector unsigned char __c, int *__cc) {12761 return __builtin_s390_vstrsf((__vector unsigned int)__a,12762 (__vector unsigned int)__b, __c, __cc);12763}12764 12765static inline __ATTRS_o_ai __vector unsigned char12766vec_search_string_cc(__vector __bool int __a, __vector __bool int __b,12767 __vector unsigned char __c, int *__cc) {12768 return __builtin_s390_vstrsf((__vector unsigned int)__a,12769 (__vector unsigned int)__b, __c, __cc);12770}12771 12772static inline __ATTRS_o_ai __vector unsigned char12773vec_search_string_cc(__vector unsigned int __a, __vector unsigned int __b,12774 __vector unsigned char __c, int *__cc) {12775 return __builtin_s390_vstrsf(__a, __b, __c, __cc);12776}12777 12778#endif12779 12780/*-- vec_search_string_until_zero_cc ----------------------------------------*/12781 12782#if __ARCH__ >= 1312783 12784static inline __ATTRS_o_ai __vector unsigned char12785vec_search_string_until_zero_cc(__vector signed char __a,12786 __vector signed char __b,12787 __vector unsigned char __c, int *__cc) {12788 return __builtin_s390_vstrszb((__vector unsigned char)__a,12789 (__vector unsigned char)__b, __c, __cc);12790}12791 12792static inline __ATTRS_o_ai __vector unsigned char12793vec_search_string_until_zero_cc(__vector __bool char __a,12794 __vector __bool char __b,12795 __vector unsigned char __c, int *__cc) {12796 return __builtin_s390_vstrszb((__vector unsigned char)__a,12797 (__vector unsigned char)__b, __c, __cc);12798}12799 12800static inline __ATTRS_o_ai __vector unsigned char12801vec_search_string_until_zero_cc(__vector unsigned char __a,12802 __vector unsigned char __b,12803 __vector unsigned char __c, int *__cc) {12804 return __builtin_s390_vstrszb(__a, __b, __c, __cc);12805}12806 12807static inline __ATTRS_o_ai __vector unsigned char12808vec_search_string_until_zero_cc(__vector signed short __a,12809 __vector signed short __b,12810 __vector unsigned char __c, int *__cc) {12811 return __builtin_s390_vstrszh((__vector unsigned short)__a,12812 (__vector unsigned short)__b, __c, __cc);12813}12814 12815static inline __ATTRS_o_ai __vector unsigned char12816vec_search_string_until_zero_cc(__vector __bool short __a,12817 __vector __bool short __b,12818 __vector unsigned char __c, int *__cc) {12819 return __builtin_s390_vstrszh((__vector unsigned short)__a,12820 (__vector unsigned short)__b, __c, __cc);12821}12822 12823static inline __ATTRS_o_ai __vector unsigned char12824vec_search_string_until_zero_cc(__vector unsigned short __a,12825 __vector unsigned short __b,12826 __vector unsigned char __c, int *__cc) {12827 return __builtin_s390_vstrszh(__a, __b, __c, __cc);12828}12829 12830static inline __ATTRS_o_ai __vector unsigned char12831vec_search_string_until_zero_cc(__vector signed int __a,12832 __vector signed int __b,12833 __vector unsigned char __c, int *__cc) {12834 return __builtin_s390_vstrszf((__vector unsigned int)__a,12835 (__vector unsigned int)__b, __c, __cc);12836}12837 12838static inline __ATTRS_o_ai __vector unsigned char12839vec_search_string_until_zero_cc(__vector __bool int __a,12840 __vector __bool int __b,12841 __vector unsigned char __c, int *__cc) {12842 return __builtin_s390_vstrszf((__vector unsigned int)__a,12843 (__vector unsigned int)__b, __c, __cc);12844}12845 12846static inline __ATTRS_o_ai __vector unsigned char12847vec_search_string_until_zero_cc(__vector unsigned int __a,12848 __vector unsigned int __b,12849 __vector unsigned char __c, int *__cc) {12850 return __builtin_s390_vstrszf(__a, __b, __c, __cc);12851}12852 12853#endif12854 12855#undef __constant_pow2_range12856#undef __constant_range12857#undef __constant12858#undef __ATTRS_o12859#undef __ATTRS_o_ai12860#undef __ATTRS_ai12861 12862#else12863 12864#error "Use -fzvector to enable vector extensions"12865 12866#endif12867 12868#endif /* _VECINTRIN_H */12869