1287512Sdim/*===---- vecintrin.h - Vector intrinsics ----------------------------------=== 2287512Sdim * 3353358Sdim * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim * See https://llvm.org/LICENSE.txt for license information. 5353358Sdim * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6287512Sdim * 7287512Sdim *===-----------------------------------------------------------------------=== 8287512Sdim */ 9287512Sdim 10287512Sdim#if defined(__s390x__) && defined(__VEC__) 11287512Sdim 12287512Sdim#define __ATTRS_ai __attribute__((__always_inline__)) 13287512Sdim#define __ATTRS_o __attribute__((__overloadable__)) 14287512Sdim#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__)) 15287512Sdim 16287512Sdim#define __constant(PARM) \ 17287512Sdim __attribute__((__enable_if__ ((PARM) == (PARM), \ 18287512Sdim "argument must be a constant integer"))) 19287512Sdim#define __constant_range(PARM, LOW, HIGH) \ 20287512Sdim __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH), \ 21287512Sdim "argument must be a constant integer from " #LOW " to " #HIGH))) 22287512Sdim#define __constant_pow2_range(PARM, LOW, HIGH) \ 23287512Sdim __attribute__((__enable_if__ ((PARM) >= (LOW) && (PARM) <= (HIGH) && \ 24287512Sdim ((PARM) & ((PARM) - 1)) == 0, \ 25287512Sdim "argument must be a constant power of 2 from " #LOW " to " #HIGH))) 26287512Sdim 27287512Sdim/*-- __lcbb -----------------------------------------------------------------*/ 28287512Sdim 29287512Sdimextern __ATTRS_o unsigned int 30287512Sdim__lcbb(const void *__ptr, unsigned short __len) 31287512Sdim __constant_pow2_range(__len, 64, 4096); 32287512Sdim 33287512Sdim#define __lcbb(X, Y) ((__typeof__((__lcbb)((X), (Y)))) \ 34287512Sdim __builtin_s390_lcbb((X), __builtin_constant_p((Y))? \ 35287512Sdim ((Y) == 64 ? 0 : \ 36287512Sdim (Y) == 128 ? 1 : \ 37287512Sdim (Y) == 256 ? 2 : \ 38287512Sdim (Y) == 512 ? 3 : \ 39287512Sdim (Y) == 1024 ? 4 : \ 40287512Sdim (Y) == 2048 ? 5 : \ 41287512Sdim (Y) == 4096 ? 6 : 0) : 0)) 42287512Sdim 43287512Sdim/*-- vec_extract ------------------------------------------------------------*/ 44287512Sdim 45287512Sdimstatic inline __ATTRS_o_ai signed char 46287512Sdimvec_extract(vector signed char __vec, int __index) { 47287512Sdim return __vec[__index & 15]; 48287512Sdim} 49287512Sdim 50287512Sdimstatic inline __ATTRS_o_ai unsigned char 51287512Sdimvec_extract(vector bool char __vec, int __index) { 52287512Sdim return __vec[__index & 15]; 53287512Sdim} 54287512Sdim 55287512Sdimstatic inline __ATTRS_o_ai unsigned char 56287512Sdimvec_extract(vector unsigned char __vec, int __index) { 57287512Sdim return __vec[__index & 15]; 58287512Sdim} 59287512Sdim 60287512Sdimstatic inline __ATTRS_o_ai signed short 61287512Sdimvec_extract(vector signed short __vec, int __index) { 62287512Sdim return __vec[__index & 7]; 63287512Sdim} 64287512Sdim 65287512Sdimstatic inline __ATTRS_o_ai unsigned short 66287512Sdimvec_extract(vector bool short __vec, int __index) { 67287512Sdim return __vec[__index & 7]; 68287512Sdim} 69287512Sdim 70287512Sdimstatic inline __ATTRS_o_ai unsigned short 71287512Sdimvec_extract(vector unsigned short __vec, int __index) { 72287512Sdim return __vec[__index & 7]; 73287512Sdim} 74287512Sdim 75287512Sdimstatic inline __ATTRS_o_ai signed int 76287512Sdimvec_extract(vector signed int __vec, int __index) { 77287512Sdim return __vec[__index & 3]; 78287512Sdim} 79287512Sdim 80287512Sdimstatic inline __ATTRS_o_ai unsigned int 81287512Sdimvec_extract(vector bool int __vec, int __index) { 82287512Sdim return __vec[__index & 3]; 83287512Sdim} 84287512Sdim 85287512Sdimstatic inline __ATTRS_o_ai unsigned int 86287512Sdimvec_extract(vector unsigned int __vec, int __index) { 87287512Sdim return __vec[__index & 3]; 88287512Sdim} 89287512Sdim 90287512Sdimstatic inline __ATTRS_o_ai signed long long 91287512Sdimvec_extract(vector signed long long __vec, int __index) { 92287512Sdim return __vec[__index & 1]; 93287512Sdim} 94287512Sdim 95287512Sdimstatic inline __ATTRS_o_ai unsigned long long 96287512Sdimvec_extract(vector bool long long __vec, int __index) { 97287512Sdim return __vec[__index & 1]; 98287512Sdim} 99287512Sdim 100287512Sdimstatic inline __ATTRS_o_ai unsigned long long 101287512Sdimvec_extract(vector unsigned long long __vec, int __index) { 102287512Sdim return __vec[__index & 1]; 103287512Sdim} 104287512Sdim 105321369Sdim#if __ARCH__ >= 12 106321369Sdimstatic inline __ATTRS_o_ai float 107321369Sdimvec_extract(vector float __vec, int __index) { 108321369Sdim return __vec[__index & 3]; 109321369Sdim} 110321369Sdim#endif 111321369Sdim 112287512Sdimstatic inline __ATTRS_o_ai double 113287512Sdimvec_extract(vector double __vec, int __index) { 114287512Sdim return __vec[__index & 1]; 115287512Sdim} 116287512Sdim 117287512Sdim/*-- vec_insert -------------------------------------------------------------*/ 118287512Sdim 119287512Sdimstatic inline __ATTRS_o_ai vector signed char 120287512Sdimvec_insert(signed char __scalar, vector signed char __vec, int __index) { 121287512Sdim __vec[__index & 15] = __scalar; 122287512Sdim return __vec; 123287512Sdim} 124287512Sdim 125321369Sdim// This prototype is deprecated. 126287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 127287512Sdimvec_insert(unsigned char __scalar, vector bool char __vec, int __index) { 128287512Sdim vector unsigned char __newvec = (vector unsigned char)__vec; 129287512Sdim __newvec[__index & 15] = (unsigned char)__scalar; 130287512Sdim return __newvec; 131287512Sdim} 132287512Sdim 133287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 134287512Sdimvec_insert(unsigned char __scalar, vector unsigned char __vec, int __index) { 135287512Sdim __vec[__index & 15] = __scalar; 136287512Sdim return __vec; 137287512Sdim} 138287512Sdim 139287512Sdimstatic inline __ATTRS_o_ai vector signed short 140287512Sdimvec_insert(signed short __scalar, vector signed short __vec, int __index) { 141287512Sdim __vec[__index & 7] = __scalar; 142287512Sdim return __vec; 143287512Sdim} 144287512Sdim 145321369Sdim// This prototype is deprecated. 146287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 147287512Sdimvec_insert(unsigned short __scalar, vector bool short __vec, int __index) { 148287512Sdim vector unsigned short __newvec = (vector unsigned short)__vec; 149287512Sdim __newvec[__index & 7] = (unsigned short)__scalar; 150287512Sdim return __newvec; 151287512Sdim} 152287512Sdim 153287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 154287512Sdimvec_insert(unsigned short __scalar, vector unsigned short __vec, int __index) { 155287512Sdim __vec[__index & 7] = __scalar; 156287512Sdim return __vec; 157287512Sdim} 158287512Sdim 159287512Sdimstatic inline __ATTRS_o_ai vector signed int 160287512Sdimvec_insert(signed int __scalar, vector signed int __vec, int __index) { 161287512Sdim __vec[__index & 3] = __scalar; 162287512Sdim return __vec; 163287512Sdim} 164287512Sdim 165321369Sdim// This prototype is deprecated. 166287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 167287512Sdimvec_insert(unsigned int __scalar, vector bool int __vec, int __index) { 168287512Sdim vector unsigned int __newvec = (vector unsigned int)__vec; 169287512Sdim __newvec[__index & 3] = __scalar; 170287512Sdim return __newvec; 171287512Sdim} 172287512Sdim 173287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 174287512Sdimvec_insert(unsigned int __scalar, vector unsigned int __vec, int __index) { 175287512Sdim __vec[__index & 3] = __scalar; 176287512Sdim return __vec; 177287512Sdim} 178287512Sdim 179287512Sdimstatic inline __ATTRS_o_ai vector signed long long 180287512Sdimvec_insert(signed long long __scalar, vector signed long long __vec, 181287512Sdim int __index) { 182287512Sdim __vec[__index & 1] = __scalar; 183287512Sdim return __vec; 184287512Sdim} 185287512Sdim 186321369Sdim// This prototype is deprecated. 187287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 188287512Sdimvec_insert(unsigned long long __scalar, vector bool long long __vec, 189287512Sdim int __index) { 190287512Sdim vector unsigned long long __newvec = (vector unsigned long long)__vec; 191287512Sdim __newvec[__index & 1] = __scalar; 192287512Sdim return __newvec; 193287512Sdim} 194287512Sdim 195287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 196287512Sdimvec_insert(unsigned long long __scalar, vector unsigned long long __vec, 197287512Sdim int __index) { 198287512Sdim __vec[__index & 1] = __scalar; 199287512Sdim return __vec; 200287512Sdim} 201287512Sdim 202321369Sdim#if __ARCH__ >= 12 203321369Sdimstatic inline __ATTRS_o_ai vector float 204321369Sdimvec_insert(float __scalar, vector float __vec, int __index) { 205321369Sdim __vec[__index & 1] = __scalar; 206321369Sdim return __vec; 207321369Sdim} 208321369Sdim#endif 209321369Sdim 210287512Sdimstatic inline __ATTRS_o_ai vector double 211287512Sdimvec_insert(double __scalar, vector double __vec, int __index) { 212287512Sdim __vec[__index & 1] = __scalar; 213287512Sdim return __vec; 214287512Sdim} 215287512Sdim 216287512Sdim/*-- vec_promote ------------------------------------------------------------*/ 217287512Sdim 218287512Sdimstatic inline __ATTRS_o_ai vector signed char 219287512Sdimvec_promote(signed char __scalar, int __index) { 220287512Sdim const vector signed char __zero = (vector signed char)0; 221287512Sdim vector signed char __vec = __builtin_shufflevector(__zero, __zero, 222287512Sdim -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); 223287512Sdim __vec[__index & 15] = __scalar; 224287512Sdim return __vec; 225287512Sdim} 226287512Sdim 227287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 228287512Sdimvec_promote(unsigned char __scalar, int __index) { 229287512Sdim const vector unsigned char __zero = (vector unsigned char)0; 230287512Sdim vector unsigned char __vec = __builtin_shufflevector(__zero, __zero, 231287512Sdim -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1); 232287512Sdim __vec[__index & 15] = __scalar; 233287512Sdim return __vec; 234287512Sdim} 235287512Sdim 236287512Sdimstatic inline __ATTRS_o_ai vector signed short 237287512Sdimvec_promote(signed short __scalar, int __index) { 238287512Sdim const vector signed short __zero = (vector signed short)0; 239287512Sdim vector signed short __vec = __builtin_shufflevector(__zero, __zero, 240287512Sdim -1, -1, -1, -1, -1, -1, -1, -1); 241287512Sdim __vec[__index & 7] = __scalar; 242287512Sdim return __vec; 243287512Sdim} 244287512Sdim 245287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 246287512Sdimvec_promote(unsigned short __scalar, int __index) { 247287512Sdim const vector unsigned short __zero = (vector unsigned short)0; 248287512Sdim vector unsigned short __vec = __builtin_shufflevector(__zero, __zero, 249287512Sdim -1, -1, -1, -1, -1, -1, -1, -1); 250287512Sdim __vec[__index & 7] = __scalar; 251287512Sdim return __vec; 252287512Sdim} 253287512Sdim 254287512Sdimstatic inline __ATTRS_o_ai vector signed int 255287512Sdimvec_promote(signed int __scalar, int __index) { 256287512Sdim const vector signed int __zero = (vector signed int)0; 257287512Sdim vector signed int __vec = __builtin_shufflevector(__zero, __zero, 258287512Sdim -1, -1, -1, -1); 259287512Sdim __vec[__index & 3] = __scalar; 260287512Sdim return __vec; 261287512Sdim} 262287512Sdim 263287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 264287512Sdimvec_promote(unsigned int __scalar, int __index) { 265287512Sdim const vector unsigned int __zero = (vector unsigned int)0; 266287512Sdim vector unsigned int __vec = __builtin_shufflevector(__zero, __zero, 267287512Sdim -1, -1, -1, -1); 268287512Sdim __vec[__index & 3] = __scalar; 269287512Sdim return __vec; 270287512Sdim} 271287512Sdim 272287512Sdimstatic inline __ATTRS_o_ai vector signed long long 273287512Sdimvec_promote(signed long long __scalar, int __index) { 274287512Sdim const vector signed long long __zero = (vector signed long long)0; 275287512Sdim vector signed long long __vec = __builtin_shufflevector(__zero, __zero, 276287512Sdim -1, -1); 277287512Sdim __vec[__index & 1] = __scalar; 278287512Sdim return __vec; 279287512Sdim} 280287512Sdim 281287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 282287512Sdimvec_promote(unsigned long long __scalar, int __index) { 283287512Sdim const vector unsigned long long __zero = (vector unsigned long long)0; 284287512Sdim vector unsigned long long __vec = __builtin_shufflevector(__zero, __zero, 285287512Sdim -1, -1); 286287512Sdim __vec[__index & 1] = __scalar; 287287512Sdim return __vec; 288287512Sdim} 289287512Sdim 290321369Sdim#if __ARCH__ >= 12 291321369Sdimstatic inline __ATTRS_o_ai vector float 292321369Sdimvec_promote(float __scalar, int __index) { 293321369Sdim const vector float __zero = (vector float)0; 294321369Sdim vector float __vec = __builtin_shufflevector(__zero, __zero, -1, -1, -1, -1); 295321369Sdim __vec[__index & 3] = __scalar; 296321369Sdim return __vec; 297321369Sdim} 298321369Sdim#endif 299321369Sdim 300287512Sdimstatic inline __ATTRS_o_ai vector double 301287512Sdimvec_promote(double __scalar, int __index) { 302287512Sdim const vector double __zero = (vector double)0; 303287512Sdim vector double __vec = __builtin_shufflevector(__zero, __zero, -1, -1); 304287512Sdim __vec[__index & 1] = __scalar; 305287512Sdim return __vec; 306287512Sdim} 307287512Sdim 308287512Sdim/*-- vec_insert_and_zero ----------------------------------------------------*/ 309287512Sdim 310287512Sdimstatic inline __ATTRS_o_ai vector signed char 311287512Sdimvec_insert_and_zero(const signed char *__ptr) { 312287512Sdim vector signed char __vec = (vector signed char)0; 313287512Sdim __vec[7] = *__ptr; 314287512Sdim return __vec; 315287512Sdim} 316287512Sdim 317287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 318287512Sdimvec_insert_and_zero(const unsigned char *__ptr) { 319287512Sdim vector unsigned char __vec = (vector unsigned char)0; 320287512Sdim __vec[7] = *__ptr; 321287512Sdim return __vec; 322287512Sdim} 323287512Sdim 324287512Sdimstatic inline __ATTRS_o_ai vector signed short 325287512Sdimvec_insert_and_zero(const signed short *__ptr) { 326287512Sdim vector signed short __vec = (vector signed short)0; 327287512Sdim __vec[3] = *__ptr; 328287512Sdim return __vec; 329287512Sdim} 330287512Sdim 331287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 332287512Sdimvec_insert_and_zero(const unsigned short *__ptr) { 333287512Sdim vector unsigned short __vec = (vector unsigned short)0; 334287512Sdim __vec[3] = *__ptr; 335287512Sdim return __vec; 336287512Sdim} 337287512Sdim 338287512Sdimstatic inline __ATTRS_o_ai vector signed int 339287512Sdimvec_insert_and_zero(const signed int *__ptr) { 340287512Sdim vector signed int __vec = (vector signed int)0; 341287512Sdim __vec[1] = *__ptr; 342287512Sdim return __vec; 343287512Sdim} 344287512Sdim 345287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 346287512Sdimvec_insert_and_zero(const unsigned int *__ptr) { 347287512Sdim vector unsigned int __vec = (vector unsigned int)0; 348287512Sdim __vec[1] = *__ptr; 349287512Sdim return __vec; 350287512Sdim} 351287512Sdim 352287512Sdimstatic inline __ATTRS_o_ai vector signed long long 353287512Sdimvec_insert_and_zero(const signed long long *__ptr) { 354287512Sdim vector signed long long __vec = (vector signed long long)0; 355287512Sdim __vec[0] = *__ptr; 356287512Sdim return __vec; 357287512Sdim} 358287512Sdim 359287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 360287512Sdimvec_insert_and_zero(const unsigned long long *__ptr) { 361287512Sdim vector unsigned long long __vec = (vector unsigned long long)0; 362287512Sdim __vec[0] = *__ptr; 363287512Sdim return __vec; 364287512Sdim} 365287512Sdim 366321369Sdim#if __ARCH__ >= 12 367321369Sdimstatic inline __ATTRS_o_ai vector float 368321369Sdimvec_insert_and_zero(const float *__ptr) { 369321369Sdim vector float __vec = (vector float)0; 370344779Sdim __vec[1] = *__ptr; 371321369Sdim return __vec; 372321369Sdim} 373321369Sdim#endif 374321369Sdim 375287512Sdimstatic inline __ATTRS_o_ai vector double 376287512Sdimvec_insert_and_zero(const double *__ptr) { 377287512Sdim vector double __vec = (vector double)0; 378287512Sdim __vec[0] = *__ptr; 379287512Sdim return __vec; 380287512Sdim} 381287512Sdim 382287512Sdim/*-- vec_perm ---------------------------------------------------------------*/ 383287512Sdim 384287512Sdimstatic inline __ATTRS_o_ai vector signed char 385287512Sdimvec_perm(vector signed char __a, vector signed char __b, 386287512Sdim vector unsigned char __c) { 387287512Sdim return (vector signed char)__builtin_s390_vperm( 388287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 389287512Sdim} 390287512Sdim 391287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 392287512Sdimvec_perm(vector unsigned char __a, vector unsigned char __b, 393287512Sdim vector unsigned char __c) { 394287512Sdim return (vector unsigned char)__builtin_s390_vperm( 395287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 396287512Sdim} 397287512Sdim 398287512Sdimstatic inline __ATTRS_o_ai vector bool char 399287512Sdimvec_perm(vector bool char __a, vector bool char __b, 400287512Sdim vector unsigned char __c) { 401287512Sdim return (vector bool char)__builtin_s390_vperm( 402287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 403287512Sdim} 404287512Sdim 405287512Sdimstatic inline __ATTRS_o_ai vector signed short 406287512Sdimvec_perm(vector signed short __a, vector signed short __b, 407287512Sdim vector unsigned char __c) { 408287512Sdim return (vector signed short)__builtin_s390_vperm( 409287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 410287512Sdim} 411287512Sdim 412287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 413287512Sdimvec_perm(vector unsigned short __a, vector unsigned short __b, 414287512Sdim vector unsigned char __c) { 415287512Sdim return (vector unsigned short)__builtin_s390_vperm( 416287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 417287512Sdim} 418287512Sdim 419287512Sdimstatic inline __ATTRS_o_ai vector bool short 420287512Sdimvec_perm(vector bool short __a, vector bool short __b, 421287512Sdim vector unsigned char __c) { 422287512Sdim return (vector bool short)__builtin_s390_vperm( 423287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 424287512Sdim} 425287512Sdim 426287512Sdimstatic inline __ATTRS_o_ai vector signed int 427287512Sdimvec_perm(vector signed int __a, vector signed int __b, 428287512Sdim vector unsigned char __c) { 429287512Sdim return (vector signed int)__builtin_s390_vperm( 430287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 431287512Sdim} 432287512Sdim 433287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 434287512Sdimvec_perm(vector unsigned int __a, vector unsigned int __b, 435287512Sdim vector unsigned char __c) { 436287512Sdim return (vector unsigned int)__builtin_s390_vperm( 437287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 438287512Sdim} 439287512Sdim 440287512Sdimstatic inline __ATTRS_o_ai vector bool int 441287512Sdimvec_perm(vector bool int __a, vector bool int __b, 442287512Sdim vector unsigned char __c) { 443287512Sdim return (vector bool int)__builtin_s390_vperm( 444287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 445287512Sdim} 446287512Sdim 447287512Sdimstatic inline __ATTRS_o_ai vector signed long long 448287512Sdimvec_perm(vector signed long long __a, vector signed long long __b, 449287512Sdim vector unsigned char __c) { 450287512Sdim return (vector signed long long)__builtin_s390_vperm( 451287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 452287512Sdim} 453287512Sdim 454287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 455287512Sdimvec_perm(vector unsigned long long __a, vector unsigned long long __b, 456287512Sdim vector unsigned char __c) { 457287512Sdim return (vector unsigned long long)__builtin_s390_vperm( 458287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 459287512Sdim} 460287512Sdim 461287512Sdimstatic inline __ATTRS_o_ai vector bool long long 462287512Sdimvec_perm(vector bool long long __a, vector bool long long __b, 463287512Sdim vector unsigned char __c) { 464287512Sdim return (vector bool long long)__builtin_s390_vperm( 465287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 466287512Sdim} 467287512Sdim 468321369Sdim#if __ARCH__ >= 12 469321369Sdimstatic inline __ATTRS_o_ai vector float 470321369Sdimvec_perm(vector float __a, vector float __b, 471321369Sdim vector unsigned char __c) { 472321369Sdim return (vector float)__builtin_s390_vperm( 473321369Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 474321369Sdim} 475321369Sdim#endif 476321369Sdim 477287512Sdimstatic inline __ATTRS_o_ai vector double 478287512Sdimvec_perm(vector double __a, vector double __b, 479287512Sdim vector unsigned char __c) { 480287512Sdim return (vector double)__builtin_s390_vperm( 481287512Sdim (vector unsigned char)__a, (vector unsigned char)__b, __c); 482287512Sdim} 483287512Sdim 484287512Sdim/*-- vec_permi --------------------------------------------------------------*/ 485287512Sdim 486321369Sdim// This prototype is deprecated. 487287512Sdimextern __ATTRS_o vector signed long long 488287512Sdimvec_permi(vector signed long long __a, vector signed long long __b, int __c) 489287512Sdim __constant_range(__c, 0, 3); 490287512Sdim 491321369Sdim// This prototype is deprecated. 492287512Sdimextern __ATTRS_o vector unsigned long long 493287512Sdimvec_permi(vector unsigned long long __a, vector unsigned long long __b, int __c) 494287512Sdim __constant_range(__c, 0, 3); 495287512Sdim 496321369Sdim// This prototype is deprecated. 497287512Sdimextern __ATTRS_o vector bool long long 498287512Sdimvec_permi(vector bool long long __a, vector bool long long __b, int __c) 499287512Sdim __constant_range(__c, 0, 3); 500287512Sdim 501321369Sdim// This prototype is deprecated. 502287512Sdimextern __ATTRS_o vector double 503287512Sdimvec_permi(vector double __a, vector double __b, int __c) 504287512Sdim __constant_range(__c, 0, 3); 505287512Sdim 506287512Sdim#define vec_permi(X, Y, Z) ((__typeof__((vec_permi)((X), (Y), (Z)))) \ 507287512Sdim __builtin_s390_vpdi((vector unsigned long long)(X), \ 508287512Sdim (vector unsigned long long)(Y), \ 509287512Sdim (((Z) & 2) << 1) | ((Z) & 1))) 510287512Sdim 511321369Sdim/*-- vec_bperm_u128 ---------------------------------------------------------*/ 512321369Sdim 513321369Sdim#if __ARCH__ >= 12 514321369Sdimstatic inline __ATTRS_ai vector unsigned long long 515321369Sdimvec_bperm_u128(vector unsigned char __a, vector unsigned char __b) { 516321369Sdim return __builtin_s390_vbperm(__a, __b); 517321369Sdim} 518321369Sdim#endif 519321369Sdim 520353358Sdim/*-- vec_revb ---------------------------------------------------------------*/ 521353358Sdim 522353358Sdimstatic inline __ATTRS_o_ai vector signed short 523353358Sdimvec_revb(vector signed short __vec) { 524353358Sdim return (vector signed short) 525353358Sdim __builtin_s390_vlbrh((vector unsigned short)__vec); 526353358Sdim} 527353358Sdim 528353358Sdimstatic inline __ATTRS_o_ai vector unsigned short 529353358Sdimvec_revb(vector unsigned short __vec) { 530353358Sdim return __builtin_s390_vlbrh(__vec); 531353358Sdim} 532353358Sdim 533353358Sdimstatic inline __ATTRS_o_ai vector signed int 534353358Sdimvec_revb(vector signed int __vec) { 535353358Sdim return (vector signed int) 536353358Sdim __builtin_s390_vlbrf((vector unsigned int)__vec); 537353358Sdim} 538353358Sdim 539353358Sdimstatic inline __ATTRS_o_ai vector unsigned int 540353358Sdimvec_revb(vector unsigned int __vec) { 541353358Sdim return __builtin_s390_vlbrf(__vec); 542353358Sdim} 543353358Sdim 544353358Sdimstatic inline __ATTRS_o_ai vector signed long long 545353358Sdimvec_revb(vector signed long long __vec) { 546353358Sdim return (vector signed long long) 547353358Sdim __builtin_s390_vlbrg((vector unsigned long long)__vec); 548353358Sdim} 549353358Sdim 550353358Sdimstatic inline __ATTRS_o_ai vector unsigned long long 551353358Sdimvec_revb(vector unsigned long long __vec) { 552353358Sdim return __builtin_s390_vlbrg(__vec); 553353358Sdim} 554353358Sdim 555353358Sdim#if __ARCH__ >= 12 556353358Sdimstatic inline __ATTRS_o_ai vector float 557353358Sdimvec_revb(vector float __vec) { 558353358Sdim return (vector float) 559353358Sdim __builtin_s390_vlbrf((vector unsigned int)__vec); 560353358Sdim} 561353358Sdim#endif 562353358Sdim 563353358Sdimstatic inline __ATTRS_o_ai vector double 564353358Sdimvec_revb(vector double __vec) { 565353358Sdim return (vector double) 566353358Sdim __builtin_s390_vlbrg((vector unsigned long long)__vec); 567353358Sdim} 568353358Sdim 569353358Sdim/*-- vec_reve ---------------------------------------------------------------*/ 570353358Sdim 571353358Sdimstatic inline __ATTRS_o_ai vector signed char 572353358Sdimvec_reve(vector signed char __vec) { 573353358Sdim return (vector signed char) { __vec[15], __vec[14], __vec[13], __vec[12], 574353358Sdim __vec[11], __vec[10], __vec[9], __vec[8], 575353358Sdim __vec[7], __vec[6], __vec[5], __vec[4], 576353358Sdim __vec[3], __vec[2], __vec[1], __vec[0] }; 577353358Sdim} 578353358Sdim 579353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 580353358Sdimvec_reve(vector unsigned char __vec) { 581353358Sdim return (vector unsigned char) { __vec[15], __vec[14], __vec[13], __vec[12], 582353358Sdim __vec[11], __vec[10], __vec[9], __vec[8], 583353358Sdim __vec[7], __vec[6], __vec[5], __vec[4], 584353358Sdim __vec[3], __vec[2], __vec[1], __vec[0] }; 585353358Sdim} 586353358Sdim 587353358Sdimstatic inline __ATTRS_o_ai vector bool char 588353358Sdimvec_reve(vector bool char __vec) { 589353358Sdim return (vector bool char) { __vec[15], __vec[14], __vec[13], __vec[12], 590353358Sdim __vec[11], __vec[10], __vec[9], __vec[8], 591353358Sdim __vec[7], __vec[6], __vec[5], __vec[4], 592353358Sdim __vec[3], __vec[2], __vec[1], __vec[0] }; 593353358Sdim} 594353358Sdim 595353358Sdimstatic inline __ATTRS_o_ai vector signed short 596353358Sdimvec_reve(vector signed short __vec) { 597353358Sdim return (vector signed short) { __vec[7], __vec[6], __vec[5], __vec[4], 598353358Sdim __vec[3], __vec[2], __vec[1], __vec[0] }; 599353358Sdim} 600353358Sdim 601353358Sdimstatic inline __ATTRS_o_ai vector unsigned short 602353358Sdimvec_reve(vector unsigned short __vec) { 603353358Sdim return (vector unsigned short) { __vec[7], __vec[6], __vec[5], __vec[4], 604353358Sdim __vec[3], __vec[2], __vec[1], __vec[0] }; 605353358Sdim} 606353358Sdim 607353358Sdimstatic inline __ATTRS_o_ai vector bool short 608353358Sdimvec_reve(vector bool short __vec) { 609353358Sdim return (vector bool short) { __vec[7], __vec[6], __vec[5], __vec[4], 610353358Sdim __vec[3], __vec[2], __vec[1], __vec[0] }; 611353358Sdim} 612353358Sdim 613353358Sdimstatic inline __ATTRS_o_ai vector signed int 614353358Sdimvec_reve(vector signed int __vec) { 615353358Sdim return (vector signed int) { __vec[3], __vec[2], __vec[1], __vec[0] }; 616353358Sdim} 617353358Sdim 618353358Sdimstatic inline __ATTRS_o_ai vector unsigned int 619353358Sdimvec_reve(vector unsigned int __vec) { 620353358Sdim return (vector unsigned int) { __vec[3], __vec[2], __vec[1], __vec[0] }; 621353358Sdim} 622353358Sdim 623353358Sdimstatic inline __ATTRS_o_ai vector bool int 624353358Sdimvec_reve(vector bool int __vec) { 625353358Sdim return (vector bool int) { __vec[3], __vec[2], __vec[1], __vec[0] }; 626353358Sdim} 627353358Sdim 628353358Sdimstatic inline __ATTRS_o_ai vector signed long long 629353358Sdimvec_reve(vector signed long long __vec) { 630353358Sdim return (vector signed long long) { __vec[1], __vec[0] }; 631353358Sdim} 632353358Sdim 633353358Sdimstatic inline __ATTRS_o_ai vector unsigned long long 634353358Sdimvec_reve(vector unsigned long long __vec) { 635353358Sdim return (vector unsigned long long) { __vec[1], __vec[0] }; 636353358Sdim} 637353358Sdim 638353358Sdimstatic inline __ATTRS_o_ai vector bool long long 639353358Sdimvec_reve(vector bool long long __vec) { 640353358Sdim return (vector bool long long) { __vec[1], __vec[0] }; 641353358Sdim} 642353358Sdim 643353358Sdim#if __ARCH__ >= 12 644353358Sdimstatic inline __ATTRS_o_ai vector float 645353358Sdimvec_reve(vector float __vec) { 646353358Sdim return (vector float) { __vec[3], __vec[2], __vec[1], __vec[0] }; 647353358Sdim} 648353358Sdim#endif 649353358Sdim 650353358Sdimstatic inline __ATTRS_o_ai vector double 651353358Sdimvec_reve(vector double __vec) { 652353358Sdim return (vector double) { __vec[1], __vec[0] }; 653353358Sdim} 654353358Sdim 655287512Sdim/*-- vec_sel ----------------------------------------------------------------*/ 656287512Sdim 657287512Sdimstatic inline __ATTRS_o_ai vector signed char 658287512Sdimvec_sel(vector signed char __a, vector signed char __b, 659287512Sdim vector unsigned char __c) { 660287512Sdim return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a); 661287512Sdim} 662287512Sdim 663287512Sdimstatic inline __ATTRS_o_ai vector signed char 664287512Sdimvec_sel(vector signed char __a, vector signed char __b, vector bool char __c) { 665287512Sdim return ((vector signed char)__c & __b) | (~(vector signed char)__c & __a); 666287512Sdim} 667287512Sdim 668287512Sdimstatic inline __ATTRS_o_ai vector bool char 669287512Sdimvec_sel(vector bool char __a, vector bool char __b, vector unsigned char __c) { 670287512Sdim return ((vector bool char)__c & __b) | (~(vector bool char)__c & __a); 671287512Sdim} 672287512Sdim 673287512Sdimstatic inline __ATTRS_o_ai vector bool char 674287512Sdimvec_sel(vector bool char __a, vector bool char __b, vector bool char __c) { 675287512Sdim return (__c & __b) | (~__c & __a); 676287512Sdim} 677287512Sdim 678287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 679287512Sdimvec_sel(vector unsigned char __a, vector unsigned char __b, 680287512Sdim vector unsigned char __c) { 681287512Sdim return (__c & __b) | (~__c & __a); 682287512Sdim} 683287512Sdim 684287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 685287512Sdimvec_sel(vector unsigned char __a, vector unsigned char __b, 686287512Sdim vector bool char __c) { 687287512Sdim return ((vector unsigned char)__c & __b) | (~(vector unsigned char)__c & __a); 688287512Sdim} 689287512Sdim 690287512Sdimstatic inline __ATTRS_o_ai vector signed short 691287512Sdimvec_sel(vector signed short __a, vector signed short __b, 692287512Sdim vector unsigned short __c) { 693287512Sdim return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a); 694287512Sdim} 695287512Sdim 696287512Sdimstatic inline __ATTRS_o_ai vector signed short 697287512Sdimvec_sel(vector signed short __a, vector signed short __b, 698287512Sdim vector bool short __c) { 699287512Sdim return ((vector signed short)__c & __b) | (~(vector signed short)__c & __a); 700287512Sdim} 701287512Sdim 702287512Sdimstatic inline __ATTRS_o_ai vector bool short 703287512Sdimvec_sel(vector bool short __a, vector bool short __b, 704287512Sdim vector unsigned short __c) { 705287512Sdim return ((vector bool short)__c & __b) | (~(vector bool short)__c & __a); 706287512Sdim} 707287512Sdim 708287512Sdimstatic inline __ATTRS_o_ai vector bool short 709287512Sdimvec_sel(vector bool short __a, vector bool short __b, vector bool short __c) { 710287512Sdim return (__c & __b) | (~__c & __a); 711287512Sdim} 712287512Sdim 713287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 714287512Sdimvec_sel(vector unsigned short __a, vector unsigned short __b, 715287512Sdim vector unsigned short __c) { 716287512Sdim return (__c & __b) | (~__c & __a); 717287512Sdim} 718287512Sdim 719287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 720287512Sdimvec_sel(vector unsigned short __a, vector unsigned short __b, 721287512Sdim vector bool short __c) { 722287512Sdim return (((vector unsigned short)__c & __b) | 723287512Sdim (~(vector unsigned short)__c & __a)); 724287512Sdim} 725287512Sdim 726287512Sdimstatic inline __ATTRS_o_ai vector signed int 727287512Sdimvec_sel(vector signed int __a, vector signed int __b, 728287512Sdim vector unsigned int __c) { 729287512Sdim return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a); 730287512Sdim} 731287512Sdim 732287512Sdimstatic inline __ATTRS_o_ai vector signed int 733287512Sdimvec_sel(vector signed int __a, vector signed int __b, vector bool int __c) { 734287512Sdim return ((vector signed int)__c & __b) | (~(vector signed int)__c & __a); 735287512Sdim} 736287512Sdim 737287512Sdimstatic inline __ATTRS_o_ai vector bool int 738287512Sdimvec_sel(vector bool int __a, vector bool int __b, vector unsigned int __c) { 739287512Sdim return ((vector bool int)__c & __b) | (~(vector bool int)__c & __a); 740287512Sdim} 741287512Sdim 742287512Sdimstatic inline __ATTRS_o_ai vector bool int 743287512Sdimvec_sel(vector bool int __a, vector bool int __b, vector bool int __c) { 744287512Sdim return (__c & __b) | (~__c & __a); 745287512Sdim} 746287512Sdim 747287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 748287512Sdimvec_sel(vector unsigned int __a, vector unsigned int __b, 749287512Sdim vector unsigned int __c) { 750287512Sdim return (__c & __b) | (~__c & __a); 751287512Sdim} 752287512Sdim 753287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 754287512Sdimvec_sel(vector unsigned int __a, vector unsigned int __b, vector bool int __c) { 755287512Sdim return ((vector unsigned int)__c & __b) | (~(vector unsigned int)__c & __a); 756287512Sdim} 757287512Sdim 758287512Sdimstatic inline __ATTRS_o_ai vector signed long long 759287512Sdimvec_sel(vector signed long long __a, vector signed long long __b, 760287512Sdim vector unsigned long long __c) { 761287512Sdim return (((vector signed long long)__c & __b) | 762287512Sdim (~(vector signed long long)__c & __a)); 763287512Sdim} 764287512Sdim 765287512Sdimstatic inline __ATTRS_o_ai vector signed long long 766287512Sdimvec_sel(vector signed long long __a, vector signed long long __b, 767287512Sdim vector bool long long __c) { 768287512Sdim return (((vector signed long long)__c & __b) | 769287512Sdim (~(vector signed long long)__c & __a)); 770287512Sdim} 771287512Sdim 772287512Sdimstatic inline __ATTRS_o_ai vector bool long long 773287512Sdimvec_sel(vector bool long long __a, vector bool long long __b, 774287512Sdim vector unsigned long long __c) { 775287512Sdim return (((vector bool long long)__c & __b) | 776287512Sdim (~(vector bool long long)__c & __a)); 777287512Sdim} 778287512Sdim 779287512Sdimstatic inline __ATTRS_o_ai vector bool long long 780287512Sdimvec_sel(vector bool long long __a, vector bool long long __b, 781287512Sdim vector bool long long __c) { 782287512Sdim return (__c & __b) | (~__c & __a); 783287512Sdim} 784287512Sdim 785287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 786287512Sdimvec_sel(vector unsigned long long __a, vector unsigned long long __b, 787287512Sdim vector unsigned long long __c) { 788287512Sdim return (__c & __b) | (~__c & __a); 789287512Sdim} 790287512Sdim 791287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 792287512Sdimvec_sel(vector unsigned long long __a, vector unsigned long long __b, 793287512Sdim vector bool long long __c) { 794287512Sdim return (((vector unsigned long long)__c & __b) | 795287512Sdim (~(vector unsigned long long)__c & __a)); 796287512Sdim} 797287512Sdim 798321369Sdim#if __ARCH__ >= 12 799321369Sdimstatic inline __ATTRS_o_ai vector float 800321369Sdimvec_sel(vector float __a, vector float __b, vector unsigned int __c) { 801321369Sdim return (vector float)((__c & (vector unsigned int)__b) | 802321369Sdim (~__c & (vector unsigned int)__a)); 803321369Sdim} 804321369Sdim 805321369Sdimstatic inline __ATTRS_o_ai vector float 806321369Sdimvec_sel(vector float __a, vector float __b, vector bool int __c) { 807321369Sdim vector unsigned int __ac = (vector unsigned int)__a; 808321369Sdim vector unsigned int __bc = (vector unsigned int)__b; 809321369Sdim vector unsigned int __cc = (vector unsigned int)__c; 810321369Sdim return (vector float)((__cc & __bc) | (~__cc & __ac)); 811321369Sdim} 812321369Sdim#endif 813321369Sdim 814287512Sdimstatic inline __ATTRS_o_ai vector double 815287512Sdimvec_sel(vector double __a, vector double __b, vector unsigned long long __c) { 816287512Sdim return (vector double)((__c & (vector unsigned long long)__b) | 817287512Sdim (~__c & (vector unsigned long long)__a)); 818287512Sdim} 819287512Sdim 820287512Sdimstatic inline __ATTRS_o_ai vector double 821287512Sdimvec_sel(vector double __a, vector double __b, vector bool long long __c) { 822287512Sdim vector unsigned long long __ac = (vector unsigned long long)__a; 823287512Sdim vector unsigned long long __bc = (vector unsigned long long)__b; 824287512Sdim vector unsigned long long __cc = (vector unsigned long long)__c; 825287512Sdim return (vector double)((__cc & __bc) | (~__cc & __ac)); 826287512Sdim} 827287512Sdim 828287512Sdim/*-- vec_gather_element -----------------------------------------------------*/ 829287512Sdim 830287512Sdimstatic inline __ATTRS_o_ai vector signed int 831287512Sdimvec_gather_element(vector signed int __vec, vector unsigned int __offset, 832287512Sdim const signed int *__ptr, int __index) 833287512Sdim __constant_range(__index, 0, 3) { 834287512Sdim __vec[__index] = *(const signed int *)( 835287512Sdim (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); 836287512Sdim return __vec; 837287512Sdim} 838287512Sdim 839287512Sdimstatic inline __ATTRS_o_ai vector bool int 840287512Sdimvec_gather_element(vector bool int __vec, vector unsigned int __offset, 841287512Sdim const unsigned int *__ptr, int __index) 842287512Sdim __constant_range(__index, 0, 3) { 843287512Sdim __vec[__index] = *(const unsigned int *)( 844287512Sdim (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); 845287512Sdim return __vec; 846287512Sdim} 847287512Sdim 848287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 849287512Sdimvec_gather_element(vector unsigned int __vec, vector unsigned int __offset, 850287512Sdim const unsigned int *__ptr, int __index) 851287512Sdim __constant_range(__index, 0, 3) { 852287512Sdim __vec[__index] = *(const unsigned int *)( 853287512Sdim (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); 854287512Sdim return __vec; 855287512Sdim} 856287512Sdim 857287512Sdimstatic inline __ATTRS_o_ai vector signed long long 858287512Sdimvec_gather_element(vector signed long long __vec, 859287512Sdim vector unsigned long long __offset, 860287512Sdim const signed long long *__ptr, int __index) 861287512Sdim __constant_range(__index, 0, 1) { 862287512Sdim __vec[__index] = *(const signed long long *)( 863287512Sdim (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); 864287512Sdim return __vec; 865287512Sdim} 866287512Sdim 867287512Sdimstatic inline __ATTRS_o_ai vector bool long long 868287512Sdimvec_gather_element(vector bool long long __vec, 869287512Sdim vector unsigned long long __offset, 870287512Sdim const unsigned long long *__ptr, int __index) 871287512Sdim __constant_range(__index, 0, 1) { 872287512Sdim __vec[__index] = *(const unsigned long long *)( 873287512Sdim (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); 874287512Sdim return __vec; 875287512Sdim} 876287512Sdim 877287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 878287512Sdimvec_gather_element(vector unsigned long long __vec, 879287512Sdim vector unsigned long long __offset, 880287512Sdim const unsigned long long *__ptr, int __index) 881287512Sdim __constant_range(__index, 0, 1) { 882287512Sdim __vec[__index] = *(const unsigned long long *)( 883287512Sdim (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); 884287512Sdim return __vec; 885287512Sdim} 886287512Sdim 887321369Sdim#if __ARCH__ >= 12 888321369Sdimstatic inline __ATTRS_o_ai vector float 889321369Sdimvec_gather_element(vector float __vec, vector unsigned int __offset, 890321369Sdim const float *__ptr, int __index) 891321369Sdim __constant_range(__index, 0, 3) { 892321369Sdim __vec[__index] = *(const float *)( 893321369Sdim (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); 894321369Sdim return __vec; 895321369Sdim} 896321369Sdim#endif 897321369Sdim 898287512Sdimstatic inline __ATTRS_o_ai vector double 899287512Sdimvec_gather_element(vector double __vec, vector unsigned long long __offset, 900287512Sdim const double *__ptr, int __index) 901287512Sdim __constant_range(__index, 0, 1) { 902287512Sdim __vec[__index] = *(const double *)( 903287512Sdim (__INTPTR_TYPE__)__ptr + (__INTPTR_TYPE__)__offset[__index]); 904287512Sdim return __vec; 905287512Sdim} 906287512Sdim 907287512Sdim/*-- vec_scatter_element ----------------------------------------------------*/ 908287512Sdim 909287512Sdimstatic inline __ATTRS_o_ai void 910287512Sdimvec_scatter_element(vector signed int __vec, vector unsigned int __offset, 911287512Sdim signed int *__ptr, int __index) 912287512Sdim __constant_range(__index, 0, 3) { 913287512Sdim *(signed int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = 914287512Sdim __vec[__index]; 915287512Sdim} 916287512Sdim 917287512Sdimstatic inline __ATTRS_o_ai void 918287512Sdimvec_scatter_element(vector bool int __vec, vector unsigned int __offset, 919287512Sdim unsigned int *__ptr, int __index) 920287512Sdim __constant_range(__index, 0, 3) { 921287512Sdim *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = 922287512Sdim __vec[__index]; 923287512Sdim} 924287512Sdim 925287512Sdimstatic inline __ATTRS_o_ai void 926287512Sdimvec_scatter_element(vector unsigned int __vec, vector unsigned int __offset, 927287512Sdim unsigned int *__ptr, int __index) 928287512Sdim __constant_range(__index, 0, 3) { 929287512Sdim *(unsigned int *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = 930287512Sdim __vec[__index]; 931287512Sdim} 932287512Sdim 933287512Sdimstatic inline __ATTRS_o_ai void 934287512Sdimvec_scatter_element(vector signed long long __vec, 935287512Sdim vector unsigned long long __offset, 936287512Sdim signed long long *__ptr, int __index) 937287512Sdim __constant_range(__index, 0, 1) { 938287512Sdim *(signed long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = 939287512Sdim __vec[__index]; 940287512Sdim} 941287512Sdim 942287512Sdimstatic inline __ATTRS_o_ai void 943287512Sdimvec_scatter_element(vector bool long long __vec, 944287512Sdim vector unsigned long long __offset, 945287512Sdim unsigned long long *__ptr, int __index) 946287512Sdim __constant_range(__index, 0, 1) { 947287512Sdim *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = 948287512Sdim __vec[__index]; 949287512Sdim} 950287512Sdim 951287512Sdimstatic inline __ATTRS_o_ai void 952287512Sdimvec_scatter_element(vector unsigned long long __vec, 953287512Sdim vector unsigned long long __offset, 954287512Sdim unsigned long long *__ptr, int __index) 955287512Sdim __constant_range(__index, 0, 1) { 956287512Sdim *(unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = 957287512Sdim __vec[__index]; 958287512Sdim} 959287512Sdim 960321369Sdim#if __ARCH__ >= 12 961287512Sdimstatic inline __ATTRS_o_ai void 962321369Sdimvec_scatter_element(vector float __vec, vector unsigned int __offset, 963321369Sdim float *__ptr, int __index) 964321369Sdim __constant_range(__index, 0, 3) { 965321369Sdim *(float *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = 966321369Sdim __vec[__index]; 967321369Sdim} 968321369Sdim#endif 969321369Sdim 970321369Sdimstatic inline __ATTRS_o_ai void 971287512Sdimvec_scatter_element(vector double __vec, vector unsigned long long __offset, 972287512Sdim double *__ptr, int __index) 973287512Sdim __constant_range(__index, 0, 1) { 974287512Sdim *(double *)((__INTPTR_TYPE__)__ptr + __offset[__index]) = 975287512Sdim __vec[__index]; 976287512Sdim} 977287512Sdim 978321369Sdim/*-- vec_xl -----------------------------------------------------------------*/ 979321369Sdim 980321369Sdimstatic inline __ATTRS_o_ai vector signed char 981321369Sdimvec_xl(long __offset, const signed char *__ptr) { 982321369Sdim return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset); 983321369Sdim} 984321369Sdim 985321369Sdimstatic inline __ATTRS_o_ai vector unsigned char 986321369Sdimvec_xl(long __offset, const unsigned char *__ptr) { 987321369Sdim return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset); 988321369Sdim} 989321369Sdim 990321369Sdimstatic inline __ATTRS_o_ai vector signed short 991321369Sdimvec_xl(long __offset, const signed short *__ptr) { 992321369Sdim return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset); 993321369Sdim} 994321369Sdim 995321369Sdimstatic inline __ATTRS_o_ai vector unsigned short 996321369Sdimvec_xl(long __offset, const unsigned short *__ptr) { 997321369Sdim return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset); 998321369Sdim} 999321369Sdim 1000321369Sdimstatic inline __ATTRS_o_ai vector signed int 1001321369Sdimvec_xl(long __offset, const signed int *__ptr) { 1002321369Sdim return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset); 1003321369Sdim} 1004321369Sdim 1005321369Sdimstatic inline __ATTRS_o_ai vector unsigned int 1006321369Sdimvec_xl(long __offset, const unsigned int *__ptr) { 1007321369Sdim return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset); 1008321369Sdim} 1009321369Sdim 1010321369Sdimstatic inline __ATTRS_o_ai vector signed long long 1011321369Sdimvec_xl(long __offset, const signed long long *__ptr) { 1012321369Sdim return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset); 1013321369Sdim} 1014321369Sdim 1015321369Sdimstatic inline __ATTRS_o_ai vector unsigned long long 1016321369Sdimvec_xl(long __offset, const unsigned long long *__ptr) { 1017321369Sdim return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset); 1018321369Sdim} 1019321369Sdim 1020321369Sdim#if __ARCH__ >= 12 1021321369Sdimstatic inline __ATTRS_o_ai vector float 1022321369Sdimvec_xl(long __offset, const float *__ptr) { 1023321369Sdim return *(const vector float *)((__INTPTR_TYPE__)__ptr + __offset); 1024321369Sdim} 1025321369Sdim#endif 1026321369Sdim 1027321369Sdimstatic inline __ATTRS_o_ai vector double 1028321369Sdimvec_xl(long __offset, const double *__ptr) { 1029321369Sdim return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset); 1030321369Sdim} 1031321369Sdim 1032287512Sdim/*-- vec_xld2 ---------------------------------------------------------------*/ 1033287512Sdim 1034321369Sdim// This prototype is deprecated. 1035287512Sdimstatic inline __ATTRS_o_ai vector signed char 1036287512Sdimvec_xld2(long __offset, const signed char *__ptr) { 1037287512Sdim return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset); 1038287512Sdim} 1039287512Sdim 1040321369Sdim// This prototype is deprecated. 1041287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 1042287512Sdimvec_xld2(long __offset, const unsigned char *__ptr) { 1043287512Sdim return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset); 1044287512Sdim} 1045287512Sdim 1046321369Sdim// This prototype is deprecated. 1047287512Sdimstatic inline __ATTRS_o_ai vector signed short 1048287512Sdimvec_xld2(long __offset, const signed short *__ptr) { 1049287512Sdim return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset); 1050287512Sdim} 1051287512Sdim 1052321369Sdim// This prototype is deprecated. 1053287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 1054287512Sdimvec_xld2(long __offset, const unsigned short *__ptr) { 1055287512Sdim return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset); 1056287512Sdim} 1057287512Sdim 1058321369Sdim// This prototype is deprecated. 1059287512Sdimstatic inline __ATTRS_o_ai vector signed int 1060287512Sdimvec_xld2(long __offset, const signed int *__ptr) { 1061287512Sdim return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset); 1062287512Sdim} 1063287512Sdim 1064321369Sdim// This prototype is deprecated. 1065287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 1066287512Sdimvec_xld2(long __offset, const unsigned int *__ptr) { 1067287512Sdim return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset); 1068287512Sdim} 1069287512Sdim 1070321369Sdim// This prototype is deprecated. 1071287512Sdimstatic inline __ATTRS_o_ai vector signed long long 1072287512Sdimvec_xld2(long __offset, const signed long long *__ptr) { 1073287512Sdim return *(const vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset); 1074287512Sdim} 1075287512Sdim 1076321369Sdim// This prototype is deprecated. 1077287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 1078287512Sdimvec_xld2(long __offset, const unsigned long long *__ptr) { 1079287512Sdim return *(const vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset); 1080287512Sdim} 1081287512Sdim 1082321369Sdim// This prototype is deprecated. 1083287512Sdimstatic inline __ATTRS_o_ai vector double 1084287512Sdimvec_xld2(long __offset, const double *__ptr) { 1085287512Sdim return *(const vector double *)((__INTPTR_TYPE__)__ptr + __offset); 1086287512Sdim} 1087287512Sdim 1088287512Sdim/*-- vec_xlw4 ---------------------------------------------------------------*/ 1089287512Sdim 1090321369Sdim// This prototype is deprecated. 1091287512Sdimstatic inline __ATTRS_o_ai vector signed char 1092287512Sdimvec_xlw4(long __offset, const signed char *__ptr) { 1093287512Sdim return *(const vector signed char *)((__INTPTR_TYPE__)__ptr + __offset); 1094287512Sdim} 1095287512Sdim 1096321369Sdim// This prototype is deprecated. 1097287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 1098287512Sdimvec_xlw4(long __offset, const unsigned char *__ptr) { 1099287512Sdim return *(const vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset); 1100287512Sdim} 1101287512Sdim 1102321369Sdim// This prototype is deprecated. 1103287512Sdimstatic inline __ATTRS_o_ai vector signed short 1104287512Sdimvec_xlw4(long __offset, const signed short *__ptr) { 1105287512Sdim return *(const vector signed short *)((__INTPTR_TYPE__)__ptr + __offset); 1106287512Sdim} 1107287512Sdim 1108321369Sdim// This prototype is deprecated. 1109287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 1110287512Sdimvec_xlw4(long __offset, const unsigned short *__ptr) { 1111287512Sdim return *(const vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset); 1112287512Sdim} 1113287512Sdim 1114321369Sdim// This prototype is deprecated. 1115287512Sdimstatic inline __ATTRS_o_ai vector signed int 1116287512Sdimvec_xlw4(long __offset, const signed int *__ptr) { 1117287512Sdim return *(const vector signed int *)((__INTPTR_TYPE__)__ptr + __offset); 1118287512Sdim} 1119287512Sdim 1120321369Sdim// This prototype is deprecated. 1121287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 1122287512Sdimvec_xlw4(long __offset, const unsigned int *__ptr) { 1123287512Sdim return *(const vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset); 1124287512Sdim} 1125287512Sdim 1126321369Sdim/*-- vec_xst ----------------------------------------------------------------*/ 1127321369Sdim 1128321369Sdimstatic inline __ATTRS_o_ai void 1129321369Sdimvec_xst(vector signed char __vec, long __offset, signed char *__ptr) { 1130321369Sdim *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1131321369Sdim} 1132321369Sdim 1133321369Sdimstatic inline __ATTRS_o_ai void 1134321369Sdimvec_xst(vector unsigned char __vec, long __offset, unsigned char *__ptr) { 1135321369Sdim *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1136321369Sdim} 1137321369Sdim 1138321369Sdimstatic inline __ATTRS_o_ai void 1139321369Sdimvec_xst(vector signed short __vec, long __offset, signed short *__ptr) { 1140321369Sdim *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1141321369Sdim} 1142321369Sdim 1143321369Sdimstatic inline __ATTRS_o_ai void 1144321369Sdimvec_xst(vector unsigned short __vec, long __offset, unsigned short *__ptr) { 1145321369Sdim *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1146321369Sdim} 1147321369Sdim 1148321369Sdimstatic inline __ATTRS_o_ai void 1149321369Sdimvec_xst(vector signed int __vec, long __offset, signed int *__ptr) { 1150321369Sdim *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1151321369Sdim} 1152321369Sdim 1153321369Sdimstatic inline __ATTRS_o_ai void 1154321369Sdimvec_xst(vector unsigned int __vec, long __offset, unsigned int *__ptr) { 1155321369Sdim *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1156321369Sdim} 1157321369Sdim 1158321369Sdimstatic inline __ATTRS_o_ai void 1159321369Sdimvec_xst(vector signed long long __vec, long __offset, 1160321369Sdim signed long long *__ptr) { 1161321369Sdim *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1162321369Sdim} 1163321369Sdim 1164321369Sdimstatic inline __ATTRS_o_ai void 1165321369Sdimvec_xst(vector unsigned long long __vec, long __offset, 1166321369Sdim unsigned long long *__ptr) { 1167321369Sdim *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) = 1168321369Sdim __vec; 1169321369Sdim} 1170321369Sdim 1171321369Sdim#if __ARCH__ >= 12 1172321369Sdimstatic inline __ATTRS_o_ai void 1173321369Sdimvec_xst(vector float __vec, long __offset, float *__ptr) { 1174321369Sdim *(vector float *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1175321369Sdim} 1176321369Sdim#endif 1177321369Sdim 1178321369Sdimstatic inline __ATTRS_o_ai void 1179321369Sdimvec_xst(vector double __vec, long __offset, double *__ptr) { 1180321369Sdim *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1181321369Sdim} 1182321369Sdim 1183287512Sdim/*-- vec_xstd2 --------------------------------------------------------------*/ 1184287512Sdim 1185321369Sdim// This prototype is deprecated. 1186287512Sdimstatic inline __ATTRS_o_ai void 1187287512Sdimvec_xstd2(vector signed char __vec, long __offset, signed char *__ptr) { 1188287512Sdim *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1189287512Sdim} 1190287512Sdim 1191321369Sdim// This prototype is deprecated. 1192287512Sdimstatic inline __ATTRS_o_ai void 1193287512Sdimvec_xstd2(vector unsigned char __vec, long __offset, unsigned char *__ptr) { 1194287512Sdim *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1195287512Sdim} 1196287512Sdim 1197321369Sdim// This prototype is deprecated. 1198287512Sdimstatic inline __ATTRS_o_ai void 1199287512Sdimvec_xstd2(vector signed short __vec, long __offset, signed short *__ptr) { 1200287512Sdim *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1201287512Sdim} 1202287512Sdim 1203321369Sdim// This prototype is deprecated. 1204287512Sdimstatic inline __ATTRS_o_ai void 1205287512Sdimvec_xstd2(vector unsigned short __vec, long __offset, unsigned short *__ptr) { 1206287512Sdim *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1207287512Sdim} 1208287512Sdim 1209321369Sdim// This prototype is deprecated. 1210287512Sdimstatic inline __ATTRS_o_ai void 1211287512Sdimvec_xstd2(vector signed int __vec, long __offset, signed int *__ptr) { 1212287512Sdim *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1213287512Sdim} 1214287512Sdim 1215321369Sdim// This prototype is deprecated. 1216287512Sdimstatic inline __ATTRS_o_ai void 1217287512Sdimvec_xstd2(vector unsigned int __vec, long __offset, unsigned int *__ptr) { 1218287512Sdim *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1219287512Sdim} 1220287512Sdim 1221321369Sdim// This prototype is deprecated. 1222287512Sdimstatic inline __ATTRS_o_ai void 1223287512Sdimvec_xstd2(vector signed long long __vec, long __offset, 1224287512Sdim signed long long *__ptr) { 1225287512Sdim *(vector signed long long *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1226287512Sdim} 1227287512Sdim 1228321369Sdim// This prototype is deprecated. 1229287512Sdimstatic inline __ATTRS_o_ai void 1230287512Sdimvec_xstd2(vector unsigned long long __vec, long __offset, 1231287512Sdim unsigned long long *__ptr) { 1232287512Sdim *(vector unsigned long long *)((__INTPTR_TYPE__)__ptr + __offset) = 1233287512Sdim __vec; 1234287512Sdim} 1235287512Sdim 1236321369Sdim// This prototype is deprecated. 1237287512Sdimstatic inline __ATTRS_o_ai void 1238287512Sdimvec_xstd2(vector double __vec, long __offset, double *__ptr) { 1239287512Sdim *(vector double *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1240287512Sdim} 1241287512Sdim 1242287512Sdim/*-- vec_xstw4 --------------------------------------------------------------*/ 1243287512Sdim 1244321369Sdim// This prototype is deprecated. 1245287512Sdimstatic inline __ATTRS_o_ai void 1246287512Sdimvec_xstw4(vector signed char __vec, long __offset, signed char *__ptr) { 1247287512Sdim *(vector signed char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1248287512Sdim} 1249287512Sdim 1250321369Sdim// This prototype is deprecated. 1251287512Sdimstatic inline __ATTRS_o_ai void 1252287512Sdimvec_xstw4(vector unsigned char __vec, long __offset, unsigned char *__ptr) { 1253287512Sdim *(vector unsigned char *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1254287512Sdim} 1255287512Sdim 1256321369Sdim// This prototype is deprecated. 1257287512Sdimstatic inline __ATTRS_o_ai void 1258287512Sdimvec_xstw4(vector signed short __vec, long __offset, signed short *__ptr) { 1259287512Sdim *(vector signed short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1260287512Sdim} 1261287512Sdim 1262321369Sdim// This prototype is deprecated. 1263287512Sdimstatic inline __ATTRS_o_ai void 1264287512Sdimvec_xstw4(vector unsigned short __vec, long __offset, unsigned short *__ptr) { 1265287512Sdim *(vector unsigned short *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1266287512Sdim} 1267287512Sdim 1268321369Sdim// This prototype is deprecated. 1269287512Sdimstatic inline __ATTRS_o_ai void 1270287512Sdimvec_xstw4(vector signed int __vec, long __offset, signed int *__ptr) { 1271287512Sdim *(vector signed int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1272287512Sdim} 1273287512Sdim 1274321369Sdim// This prototype is deprecated. 1275287512Sdimstatic inline __ATTRS_o_ai void 1276287512Sdimvec_xstw4(vector unsigned int __vec, long __offset, unsigned int *__ptr) { 1277287512Sdim *(vector unsigned int *)((__INTPTR_TYPE__)__ptr + __offset) = __vec; 1278287512Sdim} 1279287512Sdim 1280287512Sdim/*-- vec_load_bndry ---------------------------------------------------------*/ 1281287512Sdim 1282287512Sdimextern __ATTRS_o vector signed char 1283287512Sdimvec_load_bndry(const signed char *__ptr, unsigned short __len) 1284287512Sdim __constant_pow2_range(__len, 64, 4096); 1285287512Sdim 1286287512Sdimextern __ATTRS_o vector unsigned char 1287287512Sdimvec_load_bndry(const unsigned char *__ptr, unsigned short __len) 1288287512Sdim __constant_pow2_range(__len, 64, 4096); 1289287512Sdim 1290287512Sdimextern __ATTRS_o vector signed short 1291287512Sdimvec_load_bndry(const signed short *__ptr, unsigned short __len) 1292287512Sdim __constant_pow2_range(__len, 64, 4096); 1293287512Sdim 1294287512Sdimextern __ATTRS_o vector unsigned short 1295287512Sdimvec_load_bndry(const unsigned short *__ptr, unsigned short __len) 1296287512Sdim __constant_pow2_range(__len, 64, 4096); 1297287512Sdim 1298287512Sdimextern __ATTRS_o vector signed int 1299287512Sdimvec_load_bndry(const signed int *__ptr, unsigned short __len) 1300287512Sdim __constant_pow2_range(__len, 64, 4096); 1301287512Sdim 1302287512Sdimextern __ATTRS_o vector unsigned int 1303287512Sdimvec_load_bndry(const unsigned int *__ptr, unsigned short __len) 1304287512Sdim __constant_pow2_range(__len, 64, 4096); 1305287512Sdim 1306287512Sdimextern __ATTRS_o vector signed long long 1307287512Sdimvec_load_bndry(const signed long long *__ptr, unsigned short __len) 1308287512Sdim __constant_pow2_range(__len, 64, 4096); 1309287512Sdim 1310287512Sdimextern __ATTRS_o vector unsigned long long 1311287512Sdimvec_load_bndry(const unsigned long long *__ptr, unsigned short __len) 1312287512Sdim __constant_pow2_range(__len, 64, 4096); 1313287512Sdim 1314321369Sdim#if __ARCH__ >= 12 1315321369Sdimextern __ATTRS_o vector float 1316321369Sdimvec_load_bndry(const float *__ptr, unsigned short __len) 1317321369Sdim __constant_pow2_range(__len, 64, 4096); 1318321369Sdim#endif 1319321369Sdim 1320287512Sdimextern __ATTRS_o vector double 1321287512Sdimvec_load_bndry(const double *__ptr, unsigned short __len) 1322287512Sdim __constant_pow2_range(__len, 64, 4096); 1323287512Sdim 1324287512Sdim#define vec_load_bndry(X, Y) ((__typeof__((vec_load_bndry)((X), (Y)))) \ 1325287512Sdim __builtin_s390_vlbb((X), ((Y) == 64 ? 0 : \ 1326287512Sdim (Y) == 128 ? 1 : \ 1327287512Sdim (Y) == 256 ? 2 : \ 1328287512Sdim (Y) == 512 ? 3 : \ 1329287512Sdim (Y) == 1024 ? 4 : \ 1330287512Sdim (Y) == 2048 ? 5 : \ 1331287512Sdim (Y) == 4096 ? 6 : -1))) 1332287512Sdim 1333287512Sdim/*-- vec_load_len -----------------------------------------------------------*/ 1334287512Sdim 1335287512Sdimstatic inline __ATTRS_o_ai vector signed char 1336287512Sdimvec_load_len(const signed char *__ptr, unsigned int __len) { 1337287512Sdim return (vector signed char)__builtin_s390_vll(__len, __ptr); 1338287512Sdim} 1339287512Sdim 1340287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 1341287512Sdimvec_load_len(const unsigned char *__ptr, unsigned int __len) { 1342287512Sdim return (vector unsigned char)__builtin_s390_vll(__len, __ptr); 1343287512Sdim} 1344287512Sdim 1345287512Sdimstatic inline __ATTRS_o_ai vector signed short 1346287512Sdimvec_load_len(const signed short *__ptr, unsigned int __len) { 1347287512Sdim return (vector signed short)__builtin_s390_vll(__len, __ptr); 1348287512Sdim} 1349287512Sdim 1350287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 1351287512Sdimvec_load_len(const unsigned short *__ptr, unsigned int __len) { 1352287512Sdim return (vector unsigned short)__builtin_s390_vll(__len, __ptr); 1353287512Sdim} 1354287512Sdim 1355287512Sdimstatic inline __ATTRS_o_ai vector signed int 1356287512Sdimvec_load_len(const signed int *__ptr, unsigned int __len) { 1357287512Sdim return (vector signed int)__builtin_s390_vll(__len, __ptr); 1358287512Sdim} 1359287512Sdim 1360287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 1361287512Sdimvec_load_len(const unsigned int *__ptr, unsigned int __len) { 1362287512Sdim return (vector unsigned int)__builtin_s390_vll(__len, __ptr); 1363287512Sdim} 1364287512Sdim 1365287512Sdimstatic inline __ATTRS_o_ai vector signed long long 1366287512Sdimvec_load_len(const signed long long *__ptr, unsigned int __len) { 1367287512Sdim return (vector signed long long)__builtin_s390_vll(__len, __ptr); 1368287512Sdim} 1369287512Sdim 1370287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 1371287512Sdimvec_load_len(const unsigned long long *__ptr, unsigned int __len) { 1372287512Sdim return (vector unsigned long long)__builtin_s390_vll(__len, __ptr); 1373287512Sdim} 1374287512Sdim 1375321369Sdim#if __ARCH__ >= 12 1376321369Sdimstatic inline __ATTRS_o_ai vector float 1377321369Sdimvec_load_len(const float *__ptr, unsigned int __len) { 1378321369Sdim return (vector float)__builtin_s390_vll(__len, __ptr); 1379321369Sdim} 1380321369Sdim#endif 1381321369Sdim 1382287512Sdimstatic inline __ATTRS_o_ai vector double 1383287512Sdimvec_load_len(const double *__ptr, unsigned int __len) { 1384287512Sdim return (vector double)__builtin_s390_vll(__len, __ptr); 1385287512Sdim} 1386287512Sdim 1387321369Sdim/*-- vec_load_len_r ---------------------------------------------------------*/ 1388321369Sdim 1389321369Sdim#if __ARCH__ >= 12 1390321369Sdimstatic inline __ATTRS_ai vector unsigned char 1391321369Sdimvec_load_len_r(const unsigned char *__ptr, unsigned int __len) { 1392321369Sdim return (vector unsigned char)__builtin_s390_vlrl(__len, __ptr); 1393321369Sdim} 1394321369Sdim#endif 1395321369Sdim 1396287512Sdim/*-- vec_store_len ----------------------------------------------------------*/ 1397287512Sdim 1398287512Sdimstatic inline __ATTRS_o_ai void 1399287512Sdimvec_store_len(vector signed char __vec, signed char *__ptr, 1400287512Sdim unsigned int __len) { 1401287512Sdim __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); 1402287512Sdim} 1403287512Sdim 1404287512Sdimstatic inline __ATTRS_o_ai void 1405287512Sdimvec_store_len(vector unsigned char __vec, unsigned char *__ptr, 1406287512Sdim unsigned int __len) { 1407287512Sdim __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); 1408287512Sdim} 1409287512Sdim 1410287512Sdimstatic inline __ATTRS_o_ai void 1411287512Sdimvec_store_len(vector signed short __vec, signed short *__ptr, 1412287512Sdim unsigned int __len) { 1413287512Sdim __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); 1414287512Sdim} 1415287512Sdim 1416287512Sdimstatic inline __ATTRS_o_ai void 1417287512Sdimvec_store_len(vector unsigned short __vec, unsigned short *__ptr, 1418287512Sdim unsigned int __len) { 1419287512Sdim __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); 1420287512Sdim} 1421287512Sdim 1422287512Sdimstatic inline __ATTRS_o_ai void 1423287512Sdimvec_store_len(vector signed int __vec, signed int *__ptr, 1424287512Sdim unsigned int __len) { 1425287512Sdim __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); 1426287512Sdim} 1427287512Sdim 1428287512Sdimstatic inline __ATTRS_o_ai void 1429287512Sdimvec_store_len(vector unsigned int __vec, unsigned int *__ptr, 1430287512Sdim unsigned int __len) { 1431287512Sdim __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); 1432287512Sdim} 1433287512Sdim 1434287512Sdimstatic inline __ATTRS_o_ai void 1435287512Sdimvec_store_len(vector signed long long __vec, signed long long *__ptr, 1436287512Sdim unsigned int __len) { 1437287512Sdim __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); 1438287512Sdim} 1439287512Sdim 1440287512Sdimstatic inline __ATTRS_o_ai void 1441287512Sdimvec_store_len(vector unsigned long long __vec, unsigned long long *__ptr, 1442287512Sdim unsigned int __len) { 1443287512Sdim __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); 1444287512Sdim} 1445287512Sdim 1446321369Sdim#if __ARCH__ >= 12 1447287512Sdimstatic inline __ATTRS_o_ai void 1448321369Sdimvec_store_len(vector float __vec, float *__ptr, 1449321369Sdim unsigned int __len) { 1450321369Sdim __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); 1451321369Sdim} 1452321369Sdim#endif 1453321369Sdim 1454321369Sdimstatic inline __ATTRS_o_ai void 1455287512Sdimvec_store_len(vector double __vec, double *__ptr, 1456287512Sdim unsigned int __len) { 1457287512Sdim __builtin_s390_vstl((vector signed char)__vec, __len, __ptr); 1458287512Sdim} 1459287512Sdim 1460321369Sdim/*-- vec_store_len_r --------------------------------------------------------*/ 1461321369Sdim 1462321369Sdim#if __ARCH__ >= 12 1463321369Sdimstatic inline __ATTRS_ai void 1464321369Sdimvec_store_len_r(vector unsigned char __vec, unsigned char *__ptr, 1465321369Sdim unsigned int __len) { 1466321369Sdim __builtin_s390_vstrl((vector signed char)__vec, __len, __ptr); 1467321369Sdim} 1468321369Sdim#endif 1469321369Sdim 1470287512Sdim/*-- vec_load_pair ----------------------------------------------------------*/ 1471287512Sdim 1472287512Sdimstatic inline __ATTRS_o_ai vector signed long long 1473287512Sdimvec_load_pair(signed long long __a, signed long long __b) { 1474287512Sdim return (vector signed long long)(__a, __b); 1475287512Sdim} 1476287512Sdim 1477287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 1478287512Sdimvec_load_pair(unsigned long long __a, unsigned long long __b) { 1479287512Sdim return (vector unsigned long long)(__a, __b); 1480287512Sdim} 1481287512Sdim 1482287512Sdim/*-- vec_genmask ------------------------------------------------------------*/ 1483287512Sdim 1484287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 1485287512Sdimvec_genmask(unsigned short __mask) 1486287512Sdim __constant(__mask) { 1487287512Sdim return (vector unsigned char)( 1488287512Sdim __mask & 0x8000 ? 0xff : 0, 1489287512Sdim __mask & 0x4000 ? 0xff : 0, 1490287512Sdim __mask & 0x2000 ? 0xff : 0, 1491287512Sdim __mask & 0x1000 ? 0xff : 0, 1492287512Sdim __mask & 0x0800 ? 0xff : 0, 1493287512Sdim __mask & 0x0400 ? 0xff : 0, 1494287512Sdim __mask & 0x0200 ? 0xff : 0, 1495287512Sdim __mask & 0x0100 ? 0xff : 0, 1496287512Sdim __mask & 0x0080 ? 0xff : 0, 1497287512Sdim __mask & 0x0040 ? 0xff : 0, 1498287512Sdim __mask & 0x0020 ? 0xff : 0, 1499287512Sdim __mask & 0x0010 ? 0xff : 0, 1500287512Sdim __mask & 0x0008 ? 0xff : 0, 1501287512Sdim __mask & 0x0004 ? 0xff : 0, 1502287512Sdim __mask & 0x0002 ? 0xff : 0, 1503287512Sdim __mask & 0x0001 ? 0xff : 0); 1504287512Sdim} 1505287512Sdim 1506287512Sdim/*-- vec_genmasks_* ---------------------------------------------------------*/ 1507287512Sdim 1508287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 1509287512Sdimvec_genmasks_8(unsigned char __first, unsigned char __last) 1510287512Sdim __constant(__first) __constant(__last) { 1511287512Sdim unsigned char __bit1 = __first & 7; 1512287512Sdim unsigned char __bit2 = __last & 7; 1513287512Sdim unsigned char __mask1 = (unsigned char)(1U << (7 - __bit1) << 1) - 1; 1514287512Sdim unsigned char __mask2 = (unsigned char)(1U << (7 - __bit2)) - 1; 1515287512Sdim unsigned char __value = (__bit1 <= __bit2 ? 1516287512Sdim __mask1 & ~__mask2 : 1517287512Sdim __mask1 | ~__mask2); 1518287512Sdim return (vector unsigned char)__value; 1519287512Sdim} 1520287512Sdim 1521287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 1522287512Sdimvec_genmasks_16(unsigned char __first, unsigned char __last) 1523287512Sdim __constant(__first) __constant(__last) { 1524287512Sdim unsigned char __bit1 = __first & 15; 1525287512Sdim unsigned char __bit2 = __last & 15; 1526287512Sdim unsigned short __mask1 = (unsigned short)(1U << (15 - __bit1) << 1) - 1; 1527287512Sdim unsigned short __mask2 = (unsigned short)(1U << (15 - __bit2)) - 1; 1528287512Sdim unsigned short __value = (__bit1 <= __bit2 ? 1529287512Sdim __mask1 & ~__mask2 : 1530287512Sdim __mask1 | ~__mask2); 1531287512Sdim return (vector unsigned short)__value; 1532287512Sdim} 1533287512Sdim 1534287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 1535287512Sdimvec_genmasks_32(unsigned char __first, unsigned char __last) 1536287512Sdim __constant(__first) __constant(__last) { 1537287512Sdim unsigned char __bit1 = __first & 31; 1538287512Sdim unsigned char __bit2 = __last & 31; 1539287512Sdim unsigned int __mask1 = (1U << (31 - __bit1) << 1) - 1; 1540287512Sdim unsigned int __mask2 = (1U << (31 - __bit2)) - 1; 1541287512Sdim unsigned int __value = (__bit1 <= __bit2 ? 1542287512Sdim __mask1 & ~__mask2 : 1543287512Sdim __mask1 | ~__mask2); 1544287512Sdim return (vector unsigned int)__value; 1545287512Sdim} 1546287512Sdim 1547287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 1548287512Sdimvec_genmasks_64(unsigned char __first, unsigned char __last) 1549287512Sdim __constant(__first) __constant(__last) { 1550287512Sdim unsigned char __bit1 = __first & 63; 1551287512Sdim unsigned char __bit2 = __last & 63; 1552287512Sdim unsigned long long __mask1 = (1ULL << (63 - __bit1) << 1) - 1; 1553287512Sdim unsigned long long __mask2 = (1ULL << (63 - __bit2)) - 1; 1554287512Sdim unsigned long long __value = (__bit1 <= __bit2 ? 1555287512Sdim __mask1 & ~__mask2 : 1556287512Sdim __mask1 | ~__mask2); 1557287512Sdim return (vector unsigned long long)__value; 1558287512Sdim} 1559287512Sdim 1560287512Sdim/*-- vec_splat --------------------------------------------------------------*/ 1561287512Sdim 1562287512Sdimstatic inline __ATTRS_o_ai vector signed char 1563287512Sdimvec_splat(vector signed char __vec, int __index) 1564287512Sdim __constant_range(__index, 0, 15) { 1565287512Sdim return (vector signed char)__vec[__index]; 1566287512Sdim} 1567287512Sdim 1568287512Sdimstatic inline __ATTRS_o_ai vector bool char 1569287512Sdimvec_splat(vector bool char __vec, int __index) 1570287512Sdim __constant_range(__index, 0, 15) { 1571287512Sdim return (vector bool char)(vector unsigned char)__vec[__index]; 1572287512Sdim} 1573287512Sdim 1574287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 1575287512Sdimvec_splat(vector unsigned char __vec, int __index) 1576287512Sdim __constant_range(__index, 0, 15) { 1577287512Sdim return (vector unsigned char)__vec[__index]; 1578287512Sdim} 1579287512Sdim 1580287512Sdimstatic inline __ATTRS_o_ai vector signed short 1581287512Sdimvec_splat(vector signed short __vec, int __index) 1582287512Sdim __constant_range(__index, 0, 7) { 1583287512Sdim return (vector signed short)__vec[__index]; 1584287512Sdim} 1585287512Sdim 1586287512Sdimstatic inline __ATTRS_o_ai vector bool short 1587287512Sdimvec_splat(vector bool short __vec, int __index) 1588287512Sdim __constant_range(__index, 0, 7) { 1589287512Sdim return (vector bool short)(vector unsigned short)__vec[__index]; 1590287512Sdim} 1591287512Sdim 1592287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 1593287512Sdimvec_splat(vector unsigned short __vec, int __index) 1594287512Sdim __constant_range(__index, 0, 7) { 1595287512Sdim return (vector unsigned short)__vec[__index]; 1596287512Sdim} 1597287512Sdim 1598287512Sdimstatic inline __ATTRS_o_ai vector signed int 1599287512Sdimvec_splat(vector signed int __vec, int __index) 1600287512Sdim __constant_range(__index, 0, 3) { 1601287512Sdim return (vector signed int)__vec[__index]; 1602287512Sdim} 1603287512Sdim 1604287512Sdimstatic inline __ATTRS_o_ai vector bool int 1605287512Sdimvec_splat(vector bool int __vec, int __index) 1606287512Sdim __constant_range(__index, 0, 3) { 1607287512Sdim return (vector bool int)(vector unsigned int)__vec[__index]; 1608287512Sdim} 1609287512Sdim 1610287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 1611287512Sdimvec_splat(vector unsigned int __vec, int __index) 1612287512Sdim __constant_range(__index, 0, 3) { 1613287512Sdim return (vector unsigned int)__vec[__index]; 1614287512Sdim} 1615287512Sdim 1616287512Sdimstatic inline __ATTRS_o_ai vector signed long long 1617287512Sdimvec_splat(vector signed long long __vec, int __index) 1618287512Sdim __constant_range(__index, 0, 1) { 1619287512Sdim return (vector signed long long)__vec[__index]; 1620287512Sdim} 1621287512Sdim 1622287512Sdimstatic inline __ATTRS_o_ai vector bool long long 1623287512Sdimvec_splat(vector bool long long __vec, int __index) 1624287512Sdim __constant_range(__index, 0, 1) { 1625287512Sdim return (vector bool long long)(vector unsigned long long)__vec[__index]; 1626287512Sdim} 1627287512Sdim 1628287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 1629287512Sdimvec_splat(vector unsigned long long __vec, int __index) 1630287512Sdim __constant_range(__index, 0, 1) { 1631287512Sdim return (vector unsigned long long)__vec[__index]; 1632287512Sdim} 1633287512Sdim 1634321369Sdim#if __ARCH__ >= 12 1635321369Sdimstatic inline __ATTRS_o_ai vector float 1636321369Sdimvec_splat(vector float __vec, int __index) 1637321369Sdim __constant_range(__index, 0, 3) { 1638321369Sdim return (vector float)__vec[__index]; 1639321369Sdim} 1640321369Sdim#endif 1641321369Sdim 1642287512Sdimstatic inline __ATTRS_o_ai vector double 1643287512Sdimvec_splat(vector double __vec, int __index) 1644287512Sdim __constant_range(__index, 0, 1) { 1645287512Sdim return (vector double)__vec[__index]; 1646287512Sdim} 1647287512Sdim 1648287512Sdim/*-- vec_splat_s* -----------------------------------------------------------*/ 1649287512Sdim 1650287512Sdimstatic inline __ATTRS_ai vector signed char 1651287512Sdimvec_splat_s8(signed char __scalar) 1652287512Sdim __constant(__scalar) { 1653287512Sdim return (vector signed char)__scalar; 1654287512Sdim} 1655287512Sdim 1656287512Sdimstatic inline __ATTRS_ai vector signed short 1657287512Sdimvec_splat_s16(signed short __scalar) 1658287512Sdim __constant(__scalar) { 1659287512Sdim return (vector signed short)__scalar; 1660287512Sdim} 1661287512Sdim 1662287512Sdimstatic inline __ATTRS_ai vector signed int 1663287512Sdimvec_splat_s32(signed short __scalar) 1664287512Sdim __constant(__scalar) { 1665287512Sdim return (vector signed int)(signed int)__scalar; 1666287512Sdim} 1667287512Sdim 1668287512Sdimstatic inline __ATTRS_ai vector signed long long 1669287512Sdimvec_splat_s64(signed short __scalar) 1670287512Sdim __constant(__scalar) { 1671287512Sdim return (vector signed long long)(signed long)__scalar; 1672287512Sdim} 1673287512Sdim 1674287512Sdim/*-- vec_splat_u* -----------------------------------------------------------*/ 1675287512Sdim 1676287512Sdimstatic inline __ATTRS_ai vector unsigned char 1677287512Sdimvec_splat_u8(unsigned char __scalar) 1678287512Sdim __constant(__scalar) { 1679287512Sdim return (vector unsigned char)__scalar; 1680287512Sdim} 1681287512Sdim 1682287512Sdimstatic inline __ATTRS_ai vector unsigned short 1683287512Sdimvec_splat_u16(unsigned short __scalar) 1684287512Sdim __constant(__scalar) { 1685287512Sdim return (vector unsigned short)__scalar; 1686287512Sdim} 1687287512Sdim 1688287512Sdimstatic inline __ATTRS_ai vector unsigned int 1689287512Sdimvec_splat_u32(signed short __scalar) 1690287512Sdim __constant(__scalar) { 1691287512Sdim return (vector unsigned int)(signed int)__scalar; 1692287512Sdim} 1693287512Sdim 1694287512Sdimstatic inline __ATTRS_ai vector unsigned long long 1695287512Sdimvec_splat_u64(signed short __scalar) 1696287512Sdim __constant(__scalar) { 1697287512Sdim return (vector unsigned long long)(signed long long)__scalar; 1698287512Sdim} 1699287512Sdim 1700287512Sdim/*-- vec_splats -------------------------------------------------------------*/ 1701287512Sdim 1702287512Sdimstatic inline __ATTRS_o_ai vector signed char 1703287512Sdimvec_splats(signed char __scalar) { 1704287512Sdim return (vector signed char)__scalar; 1705287512Sdim} 1706287512Sdim 1707287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 1708287512Sdimvec_splats(unsigned char __scalar) { 1709287512Sdim return (vector unsigned char)__scalar; 1710287512Sdim} 1711287512Sdim 1712287512Sdimstatic inline __ATTRS_o_ai vector signed short 1713287512Sdimvec_splats(signed short __scalar) { 1714287512Sdim return (vector signed short)__scalar; 1715287512Sdim} 1716287512Sdim 1717287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 1718287512Sdimvec_splats(unsigned short __scalar) { 1719287512Sdim return (vector unsigned short)__scalar; 1720287512Sdim} 1721287512Sdim 1722287512Sdimstatic inline __ATTRS_o_ai vector signed int 1723287512Sdimvec_splats(signed int __scalar) { 1724287512Sdim return (vector signed int)__scalar; 1725287512Sdim} 1726287512Sdim 1727287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 1728287512Sdimvec_splats(unsigned int __scalar) { 1729287512Sdim return (vector unsigned int)__scalar; 1730287512Sdim} 1731287512Sdim 1732287512Sdimstatic inline __ATTRS_o_ai vector signed long long 1733287512Sdimvec_splats(signed long long __scalar) { 1734287512Sdim return (vector signed long long)__scalar; 1735287512Sdim} 1736287512Sdim 1737287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 1738287512Sdimvec_splats(unsigned long long __scalar) { 1739287512Sdim return (vector unsigned long long)__scalar; 1740287512Sdim} 1741287512Sdim 1742321369Sdim#if __ARCH__ >= 12 1743321369Sdimstatic inline __ATTRS_o_ai vector float 1744321369Sdimvec_splats(float __scalar) { 1745321369Sdim return (vector float)__scalar; 1746321369Sdim} 1747321369Sdim#endif 1748321369Sdim 1749287512Sdimstatic inline __ATTRS_o_ai vector double 1750287512Sdimvec_splats(double __scalar) { 1751287512Sdim return (vector double)__scalar; 1752287512Sdim} 1753287512Sdim 1754287512Sdim/*-- vec_extend_s64 ---------------------------------------------------------*/ 1755287512Sdim 1756287512Sdimstatic inline __ATTRS_o_ai vector signed long long 1757287512Sdimvec_extend_s64(vector signed char __a) { 1758287512Sdim return (vector signed long long)(__a[7], __a[15]); 1759287512Sdim} 1760287512Sdim 1761287512Sdimstatic inline __ATTRS_o_ai vector signed long long 1762287512Sdimvec_extend_s64(vector signed short __a) { 1763287512Sdim return (vector signed long long)(__a[3], __a[7]); 1764287512Sdim} 1765287512Sdim 1766287512Sdimstatic inline __ATTRS_o_ai vector signed long long 1767287512Sdimvec_extend_s64(vector signed int __a) { 1768287512Sdim return (vector signed long long)(__a[1], __a[3]); 1769287512Sdim} 1770287512Sdim 1771287512Sdim/*-- vec_mergeh -------------------------------------------------------------*/ 1772287512Sdim 1773287512Sdimstatic inline __ATTRS_o_ai vector signed char 1774287512Sdimvec_mergeh(vector signed char __a, vector signed char __b) { 1775287512Sdim return (vector signed char)( 1776287512Sdim __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3], 1777287512Sdim __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 1778287512Sdim} 1779287512Sdim 1780287512Sdimstatic inline __ATTRS_o_ai vector bool char 1781287512Sdimvec_mergeh(vector bool char __a, vector bool char __b) { 1782287512Sdim return (vector bool char)( 1783287512Sdim __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3], 1784287512Sdim __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 1785287512Sdim} 1786287512Sdim 1787287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 1788287512Sdimvec_mergeh(vector unsigned char __a, vector unsigned char __b) { 1789287512Sdim return (vector unsigned char)( 1790287512Sdim __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3], 1791287512Sdim __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 1792287512Sdim} 1793287512Sdim 1794287512Sdimstatic inline __ATTRS_o_ai vector signed short 1795287512Sdimvec_mergeh(vector signed short __a, vector signed short __b) { 1796287512Sdim return (vector signed short)( 1797287512Sdim __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]); 1798287512Sdim} 1799287512Sdim 1800287512Sdimstatic inline __ATTRS_o_ai vector bool short 1801287512Sdimvec_mergeh(vector bool short __a, vector bool short __b) { 1802287512Sdim return (vector bool short)( 1803287512Sdim __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]); 1804287512Sdim} 1805287512Sdim 1806287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 1807287512Sdimvec_mergeh(vector unsigned short __a, vector unsigned short __b) { 1808287512Sdim return (vector unsigned short)( 1809287512Sdim __a[0], __b[0], __a[1], __b[1], __a[2], __b[2], __a[3], __b[3]); 1810287512Sdim} 1811287512Sdim 1812287512Sdimstatic inline __ATTRS_o_ai vector signed int 1813287512Sdimvec_mergeh(vector signed int __a, vector signed int __b) { 1814287512Sdim return (vector signed int)(__a[0], __b[0], __a[1], __b[1]); 1815287512Sdim} 1816287512Sdim 1817287512Sdimstatic inline __ATTRS_o_ai vector bool int 1818287512Sdimvec_mergeh(vector bool int __a, vector bool int __b) { 1819287512Sdim return (vector bool int)(__a[0], __b[0], __a[1], __b[1]); 1820287512Sdim} 1821287512Sdim 1822287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 1823287512Sdimvec_mergeh(vector unsigned int __a, vector unsigned int __b) { 1824287512Sdim return (vector unsigned int)(__a[0], __b[0], __a[1], __b[1]); 1825287512Sdim} 1826287512Sdim 1827287512Sdimstatic inline __ATTRS_o_ai vector signed long long 1828287512Sdimvec_mergeh(vector signed long long __a, vector signed long long __b) { 1829287512Sdim return (vector signed long long)(__a[0], __b[0]); 1830287512Sdim} 1831287512Sdim 1832287512Sdimstatic inline __ATTRS_o_ai vector bool long long 1833287512Sdimvec_mergeh(vector bool long long __a, vector bool long long __b) { 1834287512Sdim return (vector bool long long)(__a[0], __b[0]); 1835287512Sdim} 1836287512Sdim 1837287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 1838287512Sdimvec_mergeh(vector unsigned long long __a, vector unsigned long long __b) { 1839287512Sdim return (vector unsigned long long)(__a[0], __b[0]); 1840287512Sdim} 1841287512Sdim 1842321369Sdim#if __ARCH__ >= 12 1843321369Sdimstatic inline __ATTRS_o_ai vector float 1844321369Sdimvec_mergeh(vector float __a, vector float __b) { 1845321369Sdim return (vector float)(__a[0], __b[0], __a[1], __b[1]); 1846321369Sdim} 1847321369Sdim#endif 1848321369Sdim 1849287512Sdimstatic inline __ATTRS_o_ai vector double 1850287512Sdimvec_mergeh(vector double __a, vector double __b) { 1851287512Sdim return (vector double)(__a[0], __b[0]); 1852287512Sdim} 1853287512Sdim 1854287512Sdim/*-- vec_mergel -------------------------------------------------------------*/ 1855287512Sdim 1856287512Sdimstatic inline __ATTRS_o_ai vector signed char 1857287512Sdimvec_mergel(vector signed char __a, vector signed char __b) { 1858287512Sdim return (vector signed char)( 1859287512Sdim __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11], 1860287512Sdim __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]); 1861287512Sdim} 1862287512Sdim 1863287512Sdimstatic inline __ATTRS_o_ai vector bool char 1864287512Sdimvec_mergel(vector bool char __a, vector bool char __b) { 1865287512Sdim return (vector bool char)( 1866287512Sdim __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11], 1867287512Sdim __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]); 1868287512Sdim} 1869287512Sdim 1870287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 1871287512Sdimvec_mergel(vector unsigned char __a, vector unsigned char __b) { 1872287512Sdim return (vector unsigned char)( 1873287512Sdim __a[8], __b[8], __a[9], __b[9], __a[10], __b[10], __a[11], __b[11], 1874287512Sdim __a[12], __b[12], __a[13], __b[13], __a[14], __b[14], __a[15], __b[15]); 1875287512Sdim} 1876287512Sdim 1877287512Sdimstatic inline __ATTRS_o_ai vector signed short 1878287512Sdimvec_mergel(vector signed short __a, vector signed short __b) { 1879287512Sdim return (vector signed short)( 1880287512Sdim __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 1881287512Sdim} 1882287512Sdim 1883287512Sdimstatic inline __ATTRS_o_ai vector bool short 1884287512Sdimvec_mergel(vector bool short __a, vector bool short __b) { 1885287512Sdim return (vector bool short)( 1886287512Sdim __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 1887287512Sdim} 1888287512Sdim 1889287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 1890287512Sdimvec_mergel(vector unsigned short __a, vector unsigned short __b) { 1891287512Sdim return (vector unsigned short)( 1892287512Sdim __a[4], __b[4], __a[5], __b[5], __a[6], __b[6], __a[7], __b[7]); 1893287512Sdim} 1894287512Sdim 1895287512Sdimstatic inline __ATTRS_o_ai vector signed int 1896287512Sdimvec_mergel(vector signed int __a, vector signed int __b) { 1897287512Sdim return (vector signed int)(__a[2], __b[2], __a[3], __b[3]); 1898287512Sdim} 1899287512Sdim 1900287512Sdimstatic inline __ATTRS_o_ai vector bool int 1901287512Sdimvec_mergel(vector bool int __a, vector bool int __b) { 1902287512Sdim return (vector bool int)(__a[2], __b[2], __a[3], __b[3]); 1903287512Sdim} 1904287512Sdim 1905287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 1906287512Sdimvec_mergel(vector unsigned int __a, vector unsigned int __b) { 1907287512Sdim return (vector unsigned int)(__a[2], __b[2], __a[3], __b[3]); 1908287512Sdim} 1909287512Sdim 1910287512Sdimstatic inline __ATTRS_o_ai vector signed long long 1911287512Sdimvec_mergel(vector signed long long __a, vector signed long long __b) { 1912287512Sdim return (vector signed long long)(__a[1], __b[1]); 1913287512Sdim} 1914287512Sdim 1915287512Sdimstatic inline __ATTRS_o_ai vector bool long long 1916287512Sdimvec_mergel(vector bool long long __a, vector bool long long __b) { 1917287512Sdim return (vector bool long long)(__a[1], __b[1]); 1918287512Sdim} 1919287512Sdim 1920287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 1921287512Sdimvec_mergel(vector unsigned long long __a, vector unsigned long long __b) { 1922287512Sdim return (vector unsigned long long)(__a[1], __b[1]); 1923287512Sdim} 1924287512Sdim 1925321369Sdim#if __ARCH__ >= 12 1926321369Sdimstatic inline __ATTRS_o_ai vector float 1927321369Sdimvec_mergel(vector float __a, vector float __b) { 1928321369Sdim return (vector float)(__a[2], __b[2], __a[3], __b[3]); 1929321369Sdim} 1930321369Sdim#endif 1931321369Sdim 1932287512Sdimstatic inline __ATTRS_o_ai vector double 1933287512Sdimvec_mergel(vector double __a, vector double __b) { 1934287512Sdim return (vector double)(__a[1], __b[1]); 1935287512Sdim} 1936287512Sdim 1937287512Sdim/*-- vec_pack ---------------------------------------------------------------*/ 1938287512Sdim 1939287512Sdimstatic inline __ATTRS_o_ai vector signed char 1940287512Sdimvec_pack(vector signed short __a, vector signed short __b) { 1941287512Sdim vector signed char __ac = (vector signed char)__a; 1942287512Sdim vector signed char __bc = (vector signed char)__b; 1943287512Sdim return (vector signed char)( 1944287512Sdim __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15], 1945287512Sdim __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]); 1946287512Sdim} 1947287512Sdim 1948287512Sdimstatic inline __ATTRS_o_ai vector bool char 1949287512Sdimvec_pack(vector bool short __a, vector bool short __b) { 1950287512Sdim vector bool char __ac = (vector bool char)__a; 1951287512Sdim vector bool char __bc = (vector bool char)__b; 1952287512Sdim return (vector bool char)( 1953287512Sdim __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15], 1954287512Sdim __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]); 1955287512Sdim} 1956287512Sdim 1957287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 1958287512Sdimvec_pack(vector unsigned short __a, vector unsigned short __b) { 1959287512Sdim vector unsigned char __ac = (vector unsigned char)__a; 1960287512Sdim vector unsigned char __bc = (vector unsigned char)__b; 1961287512Sdim return (vector unsigned char)( 1962287512Sdim __ac[1], __ac[3], __ac[5], __ac[7], __ac[9], __ac[11], __ac[13], __ac[15], 1963287512Sdim __bc[1], __bc[3], __bc[5], __bc[7], __bc[9], __bc[11], __bc[13], __bc[15]); 1964287512Sdim} 1965287512Sdim 1966287512Sdimstatic inline __ATTRS_o_ai vector signed short 1967287512Sdimvec_pack(vector signed int __a, vector signed int __b) { 1968287512Sdim vector signed short __ac = (vector signed short)__a; 1969287512Sdim vector signed short __bc = (vector signed short)__b; 1970287512Sdim return (vector signed short)( 1971287512Sdim __ac[1], __ac[3], __ac[5], __ac[7], 1972287512Sdim __bc[1], __bc[3], __bc[5], __bc[7]); 1973287512Sdim} 1974287512Sdim 1975287512Sdimstatic inline __ATTRS_o_ai vector bool short 1976287512Sdimvec_pack(vector bool int __a, vector bool int __b) { 1977287512Sdim vector bool short __ac = (vector bool short)__a; 1978287512Sdim vector bool short __bc = (vector bool short)__b; 1979287512Sdim return (vector bool short)( 1980287512Sdim __ac[1], __ac[3], __ac[5], __ac[7], 1981287512Sdim __bc[1], __bc[3], __bc[5], __bc[7]); 1982287512Sdim} 1983287512Sdim 1984287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 1985287512Sdimvec_pack(vector unsigned int __a, vector unsigned int __b) { 1986287512Sdim vector unsigned short __ac = (vector unsigned short)__a; 1987287512Sdim vector unsigned short __bc = (vector unsigned short)__b; 1988287512Sdim return (vector unsigned short)( 1989287512Sdim __ac[1], __ac[3], __ac[5], __ac[7], 1990287512Sdim __bc[1], __bc[3], __bc[5], __bc[7]); 1991287512Sdim} 1992287512Sdim 1993287512Sdimstatic inline __ATTRS_o_ai vector signed int 1994287512Sdimvec_pack(vector signed long long __a, vector signed long long __b) { 1995287512Sdim vector signed int __ac = (vector signed int)__a; 1996287512Sdim vector signed int __bc = (vector signed int)__b; 1997287512Sdim return (vector signed int)(__ac[1], __ac[3], __bc[1], __bc[3]); 1998287512Sdim} 1999287512Sdim 2000287512Sdimstatic inline __ATTRS_o_ai vector bool int 2001287512Sdimvec_pack(vector bool long long __a, vector bool long long __b) { 2002287512Sdim vector bool int __ac = (vector bool int)__a; 2003287512Sdim vector bool int __bc = (vector bool int)__b; 2004287512Sdim return (vector bool int)(__ac[1], __ac[3], __bc[1], __bc[3]); 2005287512Sdim} 2006287512Sdim 2007287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 2008287512Sdimvec_pack(vector unsigned long long __a, vector unsigned long long __b) { 2009287512Sdim vector unsigned int __ac = (vector unsigned int)__a; 2010287512Sdim vector unsigned int __bc = (vector unsigned int)__b; 2011287512Sdim return (vector unsigned int)(__ac[1], __ac[3], __bc[1], __bc[3]); 2012287512Sdim} 2013287512Sdim 2014287512Sdim/*-- vec_packs --------------------------------------------------------------*/ 2015287512Sdim 2016287512Sdimstatic inline __ATTRS_o_ai vector signed char 2017287512Sdimvec_packs(vector signed short __a, vector signed short __b) { 2018287512Sdim return __builtin_s390_vpksh(__a, __b); 2019287512Sdim} 2020287512Sdim 2021287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 2022287512Sdimvec_packs(vector unsigned short __a, vector unsigned short __b) { 2023287512Sdim return __builtin_s390_vpklsh(__a, __b); 2024287512Sdim} 2025287512Sdim 2026287512Sdimstatic inline __ATTRS_o_ai vector signed short 2027287512Sdimvec_packs(vector signed int __a, vector signed int __b) { 2028287512Sdim return __builtin_s390_vpksf(__a, __b); 2029287512Sdim} 2030287512Sdim 2031287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 2032287512Sdimvec_packs(vector unsigned int __a, vector unsigned int __b) { 2033287512Sdim return __builtin_s390_vpklsf(__a, __b); 2034287512Sdim} 2035287512Sdim 2036287512Sdimstatic inline __ATTRS_o_ai vector signed int 2037287512Sdimvec_packs(vector signed long long __a, vector signed long long __b) { 2038287512Sdim return __builtin_s390_vpksg(__a, __b); 2039287512Sdim} 2040287512Sdim 2041287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 2042287512Sdimvec_packs(vector unsigned long long __a, vector unsigned long long __b) { 2043287512Sdim return __builtin_s390_vpklsg(__a, __b); 2044287512Sdim} 2045287512Sdim 2046287512Sdim/*-- vec_packs_cc -----------------------------------------------------------*/ 2047287512Sdim 2048287512Sdimstatic inline __ATTRS_o_ai vector signed char 2049287512Sdimvec_packs_cc(vector signed short __a, vector signed short __b, int *__cc) { 2050287512Sdim return __builtin_s390_vpkshs(__a, __b, __cc); 2051287512Sdim} 2052287512Sdim 2053287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 2054287512Sdimvec_packs_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) { 2055287512Sdim return __builtin_s390_vpklshs(__a, __b, __cc); 2056287512Sdim} 2057287512Sdim 2058287512Sdimstatic inline __ATTRS_o_ai vector signed short 2059287512Sdimvec_packs_cc(vector signed int __a, vector signed int __b, int *__cc) { 2060287512Sdim return __builtin_s390_vpksfs(__a, __b, __cc); 2061287512Sdim} 2062287512Sdim 2063287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 2064287512Sdimvec_packs_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) { 2065287512Sdim return __builtin_s390_vpklsfs(__a, __b, __cc); 2066287512Sdim} 2067287512Sdim 2068287512Sdimstatic inline __ATTRS_o_ai vector signed int 2069287512Sdimvec_packs_cc(vector signed long long __a, vector signed long long __b, 2070287512Sdim int *__cc) { 2071287512Sdim return __builtin_s390_vpksgs(__a, __b, __cc); 2072287512Sdim} 2073287512Sdim 2074287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 2075287512Sdimvec_packs_cc(vector unsigned long long __a, vector unsigned long long __b, 2076287512Sdim int *__cc) { 2077287512Sdim return __builtin_s390_vpklsgs(__a, __b, __cc); 2078287512Sdim} 2079287512Sdim 2080287512Sdim/*-- vec_packsu -------------------------------------------------------------*/ 2081287512Sdim 2082287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 2083287512Sdimvec_packsu(vector signed short __a, vector signed short __b) { 2084287512Sdim const vector signed short __zero = (vector signed short)0; 2085287512Sdim return __builtin_s390_vpklsh( 2086287512Sdim (vector unsigned short)(__a >= __zero) & (vector unsigned short)__a, 2087287512Sdim (vector unsigned short)(__b >= __zero) & (vector unsigned short)__b); 2088287512Sdim} 2089287512Sdim 2090287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 2091287512Sdimvec_packsu(vector unsigned short __a, vector unsigned short __b) { 2092287512Sdim return __builtin_s390_vpklsh(__a, __b); 2093287512Sdim} 2094287512Sdim 2095287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 2096287512Sdimvec_packsu(vector signed int __a, vector signed int __b) { 2097287512Sdim const vector signed int __zero = (vector signed int)0; 2098287512Sdim return __builtin_s390_vpklsf( 2099287512Sdim (vector unsigned int)(__a >= __zero) & (vector unsigned int)__a, 2100287512Sdim (vector unsigned int)(__b >= __zero) & (vector unsigned int)__b); 2101287512Sdim} 2102287512Sdim 2103287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 2104287512Sdimvec_packsu(vector unsigned int __a, vector unsigned int __b) { 2105287512Sdim return __builtin_s390_vpklsf(__a, __b); 2106287512Sdim} 2107287512Sdim 2108287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 2109287512Sdimvec_packsu(vector signed long long __a, vector signed long long __b) { 2110287512Sdim const vector signed long long __zero = (vector signed long long)0; 2111287512Sdim return __builtin_s390_vpklsg( 2112287512Sdim (vector unsigned long long)(__a >= __zero) & 2113287512Sdim (vector unsigned long long)__a, 2114287512Sdim (vector unsigned long long)(__b >= __zero) & 2115287512Sdim (vector unsigned long long)__b); 2116287512Sdim} 2117287512Sdim 2118287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 2119287512Sdimvec_packsu(vector unsigned long long __a, vector unsigned long long __b) { 2120287512Sdim return __builtin_s390_vpklsg(__a, __b); 2121287512Sdim} 2122287512Sdim 2123287512Sdim/*-- vec_packsu_cc ----------------------------------------------------------*/ 2124287512Sdim 2125287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 2126287512Sdimvec_packsu_cc(vector unsigned short __a, vector unsigned short __b, int *__cc) { 2127287512Sdim return __builtin_s390_vpklshs(__a, __b, __cc); 2128287512Sdim} 2129287512Sdim 2130287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 2131287512Sdimvec_packsu_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) { 2132287512Sdim return __builtin_s390_vpklsfs(__a, __b, __cc); 2133287512Sdim} 2134287512Sdim 2135287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 2136287512Sdimvec_packsu_cc(vector unsigned long long __a, vector unsigned long long __b, 2137287512Sdim int *__cc) { 2138287512Sdim return __builtin_s390_vpklsgs(__a, __b, __cc); 2139287512Sdim} 2140287512Sdim 2141287512Sdim/*-- vec_unpackh ------------------------------------------------------------*/ 2142287512Sdim 2143287512Sdimstatic inline __ATTRS_o_ai vector signed short 2144287512Sdimvec_unpackh(vector signed char __a) { 2145287512Sdim return __builtin_s390_vuphb(__a); 2146287512Sdim} 2147287512Sdim 2148287512Sdimstatic inline __ATTRS_o_ai vector bool short 2149287512Sdimvec_unpackh(vector bool char __a) { 2150287512Sdim return (vector bool short)__builtin_s390_vuphb((vector signed char)__a); 2151287512Sdim} 2152287512Sdim 2153287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 2154287512Sdimvec_unpackh(vector unsigned char __a) { 2155287512Sdim return __builtin_s390_vuplhb(__a); 2156287512Sdim} 2157287512Sdim 2158287512Sdimstatic inline __ATTRS_o_ai vector signed int 2159287512Sdimvec_unpackh(vector signed short __a) { 2160287512Sdim return __builtin_s390_vuphh(__a); 2161287512Sdim} 2162287512Sdim 2163287512Sdimstatic inline __ATTRS_o_ai vector bool int 2164287512Sdimvec_unpackh(vector bool short __a) { 2165287512Sdim return (vector bool int)__builtin_s390_vuphh((vector signed short)__a); 2166287512Sdim} 2167287512Sdim 2168287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 2169287512Sdimvec_unpackh(vector unsigned short __a) { 2170287512Sdim return __builtin_s390_vuplhh(__a); 2171287512Sdim} 2172287512Sdim 2173287512Sdimstatic inline __ATTRS_o_ai vector signed long long 2174287512Sdimvec_unpackh(vector signed int __a) { 2175287512Sdim return __builtin_s390_vuphf(__a); 2176287512Sdim} 2177287512Sdim 2178287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2179287512Sdimvec_unpackh(vector bool int __a) { 2180287512Sdim return (vector bool long long)__builtin_s390_vuphf((vector signed int)__a); 2181287512Sdim} 2182287512Sdim 2183287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 2184287512Sdimvec_unpackh(vector unsigned int __a) { 2185287512Sdim return __builtin_s390_vuplhf(__a); 2186287512Sdim} 2187287512Sdim 2188287512Sdim/*-- vec_unpackl ------------------------------------------------------------*/ 2189287512Sdim 2190287512Sdimstatic inline __ATTRS_o_ai vector signed short 2191287512Sdimvec_unpackl(vector signed char __a) { 2192287512Sdim return __builtin_s390_vuplb(__a); 2193287512Sdim} 2194287512Sdim 2195287512Sdimstatic inline __ATTRS_o_ai vector bool short 2196287512Sdimvec_unpackl(vector bool char __a) { 2197287512Sdim return (vector bool short)__builtin_s390_vuplb((vector signed char)__a); 2198287512Sdim} 2199287512Sdim 2200287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 2201287512Sdimvec_unpackl(vector unsigned char __a) { 2202287512Sdim return __builtin_s390_vupllb(__a); 2203287512Sdim} 2204287512Sdim 2205287512Sdimstatic inline __ATTRS_o_ai vector signed int 2206287512Sdimvec_unpackl(vector signed short __a) { 2207287512Sdim return __builtin_s390_vuplhw(__a); 2208287512Sdim} 2209287512Sdim 2210287512Sdimstatic inline __ATTRS_o_ai vector bool int 2211287512Sdimvec_unpackl(vector bool short __a) { 2212287512Sdim return (vector bool int)__builtin_s390_vuplhw((vector signed short)__a); 2213287512Sdim} 2214287512Sdim 2215287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 2216287512Sdimvec_unpackl(vector unsigned short __a) { 2217287512Sdim return __builtin_s390_vupllh(__a); 2218287512Sdim} 2219287512Sdim 2220287512Sdimstatic inline __ATTRS_o_ai vector signed long long 2221287512Sdimvec_unpackl(vector signed int __a) { 2222287512Sdim return __builtin_s390_vuplf(__a); 2223287512Sdim} 2224287512Sdim 2225287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2226287512Sdimvec_unpackl(vector bool int __a) { 2227287512Sdim return (vector bool long long)__builtin_s390_vuplf((vector signed int)__a); 2228287512Sdim} 2229287512Sdim 2230287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 2231287512Sdimvec_unpackl(vector unsigned int __a) { 2232287512Sdim return __builtin_s390_vupllf(__a); 2233287512Sdim} 2234287512Sdim 2235287512Sdim/*-- vec_cmpeq --------------------------------------------------------------*/ 2236287512Sdim 2237287512Sdimstatic inline __ATTRS_o_ai vector bool char 2238287512Sdimvec_cmpeq(vector bool char __a, vector bool char __b) { 2239287512Sdim return (vector bool char)(__a == __b); 2240287512Sdim} 2241287512Sdim 2242287512Sdimstatic inline __ATTRS_o_ai vector bool char 2243287512Sdimvec_cmpeq(vector signed char __a, vector signed char __b) { 2244287512Sdim return (vector bool char)(__a == __b); 2245287512Sdim} 2246287512Sdim 2247287512Sdimstatic inline __ATTRS_o_ai vector bool char 2248287512Sdimvec_cmpeq(vector unsigned char __a, vector unsigned char __b) { 2249287512Sdim return (vector bool char)(__a == __b); 2250287512Sdim} 2251287512Sdim 2252287512Sdimstatic inline __ATTRS_o_ai vector bool short 2253287512Sdimvec_cmpeq(vector bool short __a, vector bool short __b) { 2254287512Sdim return (vector bool short)(__a == __b); 2255287512Sdim} 2256287512Sdim 2257287512Sdimstatic inline __ATTRS_o_ai vector bool short 2258287512Sdimvec_cmpeq(vector signed short __a, vector signed short __b) { 2259287512Sdim return (vector bool short)(__a == __b); 2260287512Sdim} 2261287512Sdim 2262287512Sdimstatic inline __ATTRS_o_ai vector bool short 2263287512Sdimvec_cmpeq(vector unsigned short __a, vector unsigned short __b) { 2264287512Sdim return (vector bool short)(__a == __b); 2265287512Sdim} 2266287512Sdim 2267287512Sdimstatic inline __ATTRS_o_ai vector bool int 2268287512Sdimvec_cmpeq(vector bool int __a, vector bool int __b) { 2269287512Sdim return (vector bool int)(__a == __b); 2270287512Sdim} 2271287512Sdim 2272287512Sdimstatic inline __ATTRS_o_ai vector bool int 2273287512Sdimvec_cmpeq(vector signed int __a, vector signed int __b) { 2274287512Sdim return (vector bool int)(__a == __b); 2275287512Sdim} 2276287512Sdim 2277287512Sdimstatic inline __ATTRS_o_ai vector bool int 2278287512Sdimvec_cmpeq(vector unsigned int __a, vector unsigned int __b) { 2279287512Sdim return (vector bool int)(__a == __b); 2280287512Sdim} 2281287512Sdim 2282287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2283287512Sdimvec_cmpeq(vector bool long long __a, vector bool long long __b) { 2284287512Sdim return (vector bool long long)(__a == __b); 2285287512Sdim} 2286287512Sdim 2287287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2288287512Sdimvec_cmpeq(vector signed long long __a, vector signed long long __b) { 2289287512Sdim return (vector bool long long)(__a == __b); 2290287512Sdim} 2291287512Sdim 2292287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2293287512Sdimvec_cmpeq(vector unsigned long long __a, vector unsigned long long __b) { 2294287512Sdim return (vector bool long long)(__a == __b); 2295287512Sdim} 2296287512Sdim 2297321369Sdim#if __ARCH__ >= 12 2298321369Sdimstatic inline __ATTRS_o_ai vector bool int 2299321369Sdimvec_cmpeq(vector float __a, vector float __b) { 2300321369Sdim return (vector bool int)(__a == __b); 2301321369Sdim} 2302321369Sdim#endif 2303321369Sdim 2304287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2305287512Sdimvec_cmpeq(vector double __a, vector double __b) { 2306287512Sdim return (vector bool long long)(__a == __b); 2307287512Sdim} 2308287512Sdim 2309287512Sdim/*-- vec_cmpge --------------------------------------------------------------*/ 2310287512Sdim 2311287512Sdimstatic inline __ATTRS_o_ai vector bool char 2312287512Sdimvec_cmpge(vector signed char __a, vector signed char __b) { 2313287512Sdim return (vector bool char)(__a >= __b); 2314287512Sdim} 2315287512Sdim 2316287512Sdimstatic inline __ATTRS_o_ai vector bool char 2317287512Sdimvec_cmpge(vector unsigned char __a, vector unsigned char __b) { 2318287512Sdim return (vector bool char)(__a >= __b); 2319287512Sdim} 2320287512Sdim 2321287512Sdimstatic inline __ATTRS_o_ai vector bool short 2322287512Sdimvec_cmpge(vector signed short __a, vector signed short __b) { 2323287512Sdim return (vector bool short)(__a >= __b); 2324287512Sdim} 2325287512Sdim 2326287512Sdimstatic inline __ATTRS_o_ai vector bool short 2327287512Sdimvec_cmpge(vector unsigned short __a, vector unsigned short __b) { 2328287512Sdim return (vector bool short)(__a >= __b); 2329287512Sdim} 2330287512Sdim 2331287512Sdimstatic inline __ATTRS_o_ai vector bool int 2332287512Sdimvec_cmpge(vector signed int __a, vector signed int __b) { 2333287512Sdim return (vector bool int)(__a >= __b); 2334287512Sdim} 2335287512Sdim 2336287512Sdimstatic inline __ATTRS_o_ai vector bool int 2337287512Sdimvec_cmpge(vector unsigned int __a, vector unsigned int __b) { 2338287512Sdim return (vector bool int)(__a >= __b); 2339287512Sdim} 2340287512Sdim 2341287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2342287512Sdimvec_cmpge(vector signed long long __a, vector signed long long __b) { 2343287512Sdim return (vector bool long long)(__a >= __b); 2344287512Sdim} 2345287512Sdim 2346287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2347287512Sdimvec_cmpge(vector unsigned long long __a, vector unsigned long long __b) { 2348287512Sdim return (vector bool long long)(__a >= __b); 2349287512Sdim} 2350287512Sdim 2351321369Sdim#if __ARCH__ >= 12 2352321369Sdimstatic inline __ATTRS_o_ai vector bool int 2353321369Sdimvec_cmpge(vector float __a, vector float __b) { 2354321369Sdim return (vector bool int)(__a >= __b); 2355321369Sdim} 2356321369Sdim#endif 2357321369Sdim 2358287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2359287512Sdimvec_cmpge(vector double __a, vector double __b) { 2360287512Sdim return (vector bool long long)(__a >= __b); 2361287512Sdim} 2362287512Sdim 2363287512Sdim/*-- vec_cmpgt --------------------------------------------------------------*/ 2364287512Sdim 2365287512Sdimstatic inline __ATTRS_o_ai vector bool char 2366287512Sdimvec_cmpgt(vector signed char __a, vector signed char __b) { 2367287512Sdim return (vector bool char)(__a > __b); 2368287512Sdim} 2369287512Sdim 2370287512Sdimstatic inline __ATTRS_o_ai vector bool char 2371287512Sdimvec_cmpgt(vector unsigned char __a, vector unsigned char __b) { 2372287512Sdim return (vector bool char)(__a > __b); 2373287512Sdim} 2374287512Sdim 2375287512Sdimstatic inline __ATTRS_o_ai vector bool short 2376287512Sdimvec_cmpgt(vector signed short __a, vector signed short __b) { 2377287512Sdim return (vector bool short)(__a > __b); 2378287512Sdim} 2379287512Sdim 2380287512Sdimstatic inline __ATTRS_o_ai vector bool short 2381287512Sdimvec_cmpgt(vector unsigned short __a, vector unsigned short __b) { 2382287512Sdim return (vector bool short)(__a > __b); 2383287512Sdim} 2384287512Sdim 2385287512Sdimstatic inline __ATTRS_o_ai vector bool int 2386287512Sdimvec_cmpgt(vector signed int __a, vector signed int __b) { 2387287512Sdim return (vector bool int)(__a > __b); 2388287512Sdim} 2389287512Sdim 2390287512Sdimstatic inline __ATTRS_o_ai vector bool int 2391287512Sdimvec_cmpgt(vector unsigned int __a, vector unsigned int __b) { 2392287512Sdim return (vector bool int)(__a > __b); 2393287512Sdim} 2394287512Sdim 2395287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2396287512Sdimvec_cmpgt(vector signed long long __a, vector signed long long __b) { 2397287512Sdim return (vector bool long long)(__a > __b); 2398287512Sdim} 2399287512Sdim 2400287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2401287512Sdimvec_cmpgt(vector unsigned long long __a, vector unsigned long long __b) { 2402287512Sdim return (vector bool long long)(__a > __b); 2403287512Sdim} 2404287512Sdim 2405321369Sdim#if __ARCH__ >= 12 2406321369Sdimstatic inline __ATTRS_o_ai vector bool int 2407321369Sdimvec_cmpgt(vector float __a, vector float __b) { 2408321369Sdim return (vector bool int)(__a > __b); 2409321369Sdim} 2410321369Sdim#endif 2411321369Sdim 2412287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2413287512Sdimvec_cmpgt(vector double __a, vector double __b) { 2414287512Sdim return (vector bool long long)(__a > __b); 2415287512Sdim} 2416287512Sdim 2417287512Sdim/*-- vec_cmple --------------------------------------------------------------*/ 2418287512Sdim 2419287512Sdimstatic inline __ATTRS_o_ai vector bool char 2420287512Sdimvec_cmple(vector signed char __a, vector signed char __b) { 2421287512Sdim return (vector bool char)(__a <= __b); 2422287512Sdim} 2423287512Sdim 2424287512Sdimstatic inline __ATTRS_o_ai vector bool char 2425287512Sdimvec_cmple(vector unsigned char __a, vector unsigned char __b) { 2426287512Sdim return (vector bool char)(__a <= __b); 2427287512Sdim} 2428287512Sdim 2429287512Sdimstatic inline __ATTRS_o_ai vector bool short 2430287512Sdimvec_cmple(vector signed short __a, vector signed short __b) { 2431287512Sdim return (vector bool short)(__a <= __b); 2432287512Sdim} 2433287512Sdim 2434287512Sdimstatic inline __ATTRS_o_ai vector bool short 2435287512Sdimvec_cmple(vector unsigned short __a, vector unsigned short __b) { 2436287512Sdim return (vector bool short)(__a <= __b); 2437287512Sdim} 2438287512Sdim 2439287512Sdimstatic inline __ATTRS_o_ai vector bool int 2440287512Sdimvec_cmple(vector signed int __a, vector signed int __b) { 2441287512Sdim return (vector bool int)(__a <= __b); 2442287512Sdim} 2443287512Sdim 2444287512Sdimstatic inline __ATTRS_o_ai vector bool int 2445287512Sdimvec_cmple(vector unsigned int __a, vector unsigned int __b) { 2446287512Sdim return (vector bool int)(__a <= __b); 2447287512Sdim} 2448287512Sdim 2449287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2450287512Sdimvec_cmple(vector signed long long __a, vector signed long long __b) { 2451287512Sdim return (vector bool long long)(__a <= __b); 2452287512Sdim} 2453287512Sdim 2454287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2455287512Sdimvec_cmple(vector unsigned long long __a, vector unsigned long long __b) { 2456287512Sdim return (vector bool long long)(__a <= __b); 2457287512Sdim} 2458287512Sdim 2459321369Sdim#if __ARCH__ >= 12 2460321369Sdimstatic inline __ATTRS_o_ai vector bool int 2461321369Sdimvec_cmple(vector float __a, vector float __b) { 2462321369Sdim return (vector bool int)(__a <= __b); 2463321369Sdim} 2464321369Sdim#endif 2465321369Sdim 2466287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2467287512Sdimvec_cmple(vector double __a, vector double __b) { 2468287512Sdim return (vector bool long long)(__a <= __b); 2469287512Sdim} 2470287512Sdim 2471287512Sdim/*-- vec_cmplt --------------------------------------------------------------*/ 2472287512Sdim 2473287512Sdimstatic inline __ATTRS_o_ai vector bool char 2474287512Sdimvec_cmplt(vector signed char __a, vector signed char __b) { 2475287512Sdim return (vector bool char)(__a < __b); 2476287512Sdim} 2477287512Sdim 2478287512Sdimstatic inline __ATTRS_o_ai vector bool char 2479287512Sdimvec_cmplt(vector unsigned char __a, vector unsigned char __b) { 2480287512Sdim return (vector bool char)(__a < __b); 2481287512Sdim} 2482287512Sdim 2483287512Sdimstatic inline __ATTRS_o_ai vector bool short 2484287512Sdimvec_cmplt(vector signed short __a, vector signed short __b) { 2485287512Sdim return (vector bool short)(__a < __b); 2486287512Sdim} 2487287512Sdim 2488287512Sdimstatic inline __ATTRS_o_ai vector bool short 2489287512Sdimvec_cmplt(vector unsigned short __a, vector unsigned short __b) { 2490287512Sdim return (vector bool short)(__a < __b); 2491287512Sdim} 2492287512Sdim 2493287512Sdimstatic inline __ATTRS_o_ai vector bool int 2494287512Sdimvec_cmplt(vector signed int __a, vector signed int __b) { 2495287512Sdim return (vector bool int)(__a < __b); 2496287512Sdim} 2497287512Sdim 2498287512Sdimstatic inline __ATTRS_o_ai vector bool int 2499287512Sdimvec_cmplt(vector unsigned int __a, vector unsigned int __b) { 2500287512Sdim return (vector bool int)(__a < __b); 2501287512Sdim} 2502287512Sdim 2503287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2504287512Sdimvec_cmplt(vector signed long long __a, vector signed long long __b) { 2505287512Sdim return (vector bool long long)(__a < __b); 2506287512Sdim} 2507287512Sdim 2508287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2509287512Sdimvec_cmplt(vector unsigned long long __a, vector unsigned long long __b) { 2510287512Sdim return (vector bool long long)(__a < __b); 2511287512Sdim} 2512287512Sdim 2513321369Sdim#if __ARCH__ >= 12 2514321369Sdimstatic inline __ATTRS_o_ai vector bool int 2515321369Sdimvec_cmplt(vector float __a, vector float __b) { 2516321369Sdim return (vector bool int)(__a < __b); 2517321369Sdim} 2518321369Sdim#endif 2519321369Sdim 2520287512Sdimstatic inline __ATTRS_o_ai vector bool long long 2521287512Sdimvec_cmplt(vector double __a, vector double __b) { 2522287512Sdim return (vector bool long long)(__a < __b); 2523287512Sdim} 2524287512Sdim 2525287512Sdim/*-- vec_all_eq -------------------------------------------------------------*/ 2526287512Sdim 2527287512Sdimstatic inline __ATTRS_o_ai int 2528287512Sdimvec_all_eq(vector signed char __a, vector signed char __b) { 2529287512Sdim int __cc; 2530287512Sdim __builtin_s390_vceqbs(__a, __b, &__cc); 2531287512Sdim return __cc == 0; 2532287512Sdim} 2533287512Sdim 2534321369Sdim// This prototype is deprecated. 2535287512Sdimstatic inline __ATTRS_o_ai int 2536287512Sdimvec_all_eq(vector signed char __a, vector bool char __b) { 2537287512Sdim int __cc; 2538287512Sdim __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc); 2539287512Sdim return __cc == 0; 2540287512Sdim} 2541287512Sdim 2542321369Sdim// This prototype is deprecated. 2543287512Sdimstatic inline __ATTRS_o_ai int 2544287512Sdimvec_all_eq(vector bool char __a, vector signed char __b) { 2545287512Sdim int __cc; 2546287512Sdim __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc); 2547287512Sdim return __cc == 0; 2548287512Sdim} 2549287512Sdim 2550287512Sdimstatic inline __ATTRS_o_ai int 2551287512Sdimvec_all_eq(vector unsigned char __a, vector unsigned char __b) { 2552287512Sdim int __cc; 2553287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 2554287512Sdim (vector signed char)__b, &__cc); 2555287512Sdim return __cc == 0; 2556287512Sdim} 2557287512Sdim 2558321369Sdim// This prototype is deprecated. 2559287512Sdimstatic inline __ATTRS_o_ai int 2560287512Sdimvec_all_eq(vector unsigned char __a, vector bool char __b) { 2561287512Sdim int __cc; 2562287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 2563287512Sdim (vector signed char)__b, &__cc); 2564287512Sdim return __cc == 0; 2565287512Sdim} 2566287512Sdim 2567321369Sdim// This prototype is deprecated. 2568287512Sdimstatic inline __ATTRS_o_ai int 2569287512Sdimvec_all_eq(vector bool char __a, vector unsigned char __b) { 2570287512Sdim int __cc; 2571287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 2572287512Sdim (vector signed char)__b, &__cc); 2573287512Sdim return __cc == 0; 2574287512Sdim} 2575287512Sdim 2576287512Sdimstatic inline __ATTRS_o_ai int 2577287512Sdimvec_all_eq(vector bool char __a, vector bool char __b) { 2578287512Sdim int __cc; 2579287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 2580287512Sdim (vector signed char)__b, &__cc); 2581287512Sdim return __cc == 0; 2582287512Sdim} 2583287512Sdim 2584287512Sdimstatic inline __ATTRS_o_ai int 2585287512Sdimvec_all_eq(vector signed short __a, vector signed short __b) { 2586287512Sdim int __cc; 2587287512Sdim __builtin_s390_vceqhs(__a, __b, &__cc); 2588287512Sdim return __cc == 0; 2589287512Sdim} 2590287512Sdim 2591321369Sdim// This prototype is deprecated. 2592287512Sdimstatic inline __ATTRS_o_ai int 2593287512Sdimvec_all_eq(vector signed short __a, vector bool short __b) { 2594287512Sdim int __cc; 2595287512Sdim __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc); 2596287512Sdim return __cc == 0; 2597287512Sdim} 2598287512Sdim 2599321369Sdim// This prototype is deprecated. 2600287512Sdimstatic inline __ATTRS_o_ai int 2601287512Sdimvec_all_eq(vector bool short __a, vector signed short __b) { 2602287512Sdim int __cc; 2603287512Sdim __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc); 2604287512Sdim return __cc == 0; 2605287512Sdim} 2606287512Sdim 2607287512Sdimstatic inline __ATTRS_o_ai int 2608287512Sdimvec_all_eq(vector unsigned short __a, vector unsigned short __b) { 2609287512Sdim int __cc; 2610287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 2611287512Sdim (vector signed short)__b, &__cc); 2612287512Sdim return __cc == 0; 2613287512Sdim} 2614287512Sdim 2615321369Sdim// This prototype is deprecated. 2616287512Sdimstatic inline __ATTRS_o_ai int 2617287512Sdimvec_all_eq(vector unsigned short __a, vector bool short __b) { 2618287512Sdim int __cc; 2619287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 2620287512Sdim (vector signed short)__b, &__cc); 2621287512Sdim return __cc == 0; 2622287512Sdim} 2623287512Sdim 2624321369Sdim// This prototype is deprecated. 2625287512Sdimstatic inline __ATTRS_o_ai int 2626287512Sdimvec_all_eq(vector bool short __a, vector unsigned short __b) { 2627287512Sdim int __cc; 2628287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 2629287512Sdim (vector signed short)__b, &__cc); 2630287512Sdim return __cc == 0; 2631287512Sdim} 2632287512Sdim 2633287512Sdimstatic inline __ATTRS_o_ai int 2634287512Sdimvec_all_eq(vector bool short __a, vector bool short __b) { 2635287512Sdim int __cc; 2636287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 2637287512Sdim (vector signed short)__b, &__cc); 2638287512Sdim return __cc == 0; 2639287512Sdim} 2640287512Sdim 2641287512Sdimstatic inline __ATTRS_o_ai int 2642287512Sdimvec_all_eq(vector signed int __a, vector signed int __b) { 2643287512Sdim int __cc; 2644287512Sdim __builtin_s390_vceqfs(__a, __b, &__cc); 2645287512Sdim return __cc == 0; 2646287512Sdim} 2647287512Sdim 2648321369Sdim// This prototype is deprecated. 2649287512Sdimstatic inline __ATTRS_o_ai int 2650287512Sdimvec_all_eq(vector signed int __a, vector bool int __b) { 2651287512Sdim int __cc; 2652287512Sdim __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc); 2653287512Sdim return __cc == 0; 2654287512Sdim} 2655287512Sdim 2656321369Sdim// This prototype is deprecated. 2657287512Sdimstatic inline __ATTRS_o_ai int 2658287512Sdimvec_all_eq(vector bool int __a, vector signed int __b) { 2659287512Sdim int __cc; 2660287512Sdim __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc); 2661287512Sdim return __cc == 0; 2662287512Sdim} 2663287512Sdim 2664287512Sdimstatic inline __ATTRS_o_ai int 2665287512Sdimvec_all_eq(vector unsigned int __a, vector unsigned int __b) { 2666287512Sdim int __cc; 2667287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 2668287512Sdim (vector signed int)__b, &__cc); 2669287512Sdim return __cc == 0; 2670287512Sdim} 2671287512Sdim 2672321369Sdim// This prototype is deprecated. 2673287512Sdimstatic inline __ATTRS_o_ai int 2674287512Sdimvec_all_eq(vector unsigned int __a, vector bool int __b) { 2675287512Sdim int __cc; 2676287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 2677287512Sdim (vector signed int)__b, &__cc); 2678287512Sdim return __cc == 0; 2679287512Sdim} 2680287512Sdim 2681321369Sdim// This prototype is deprecated. 2682287512Sdimstatic inline __ATTRS_o_ai int 2683287512Sdimvec_all_eq(vector bool int __a, vector unsigned int __b) { 2684287512Sdim int __cc; 2685287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 2686287512Sdim (vector signed int)__b, &__cc); 2687287512Sdim return __cc == 0; 2688287512Sdim} 2689287512Sdim 2690287512Sdimstatic inline __ATTRS_o_ai int 2691287512Sdimvec_all_eq(vector bool int __a, vector bool int __b) { 2692287512Sdim int __cc; 2693287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 2694287512Sdim (vector signed int)__b, &__cc); 2695287512Sdim return __cc == 0; 2696287512Sdim} 2697287512Sdim 2698287512Sdimstatic inline __ATTRS_o_ai int 2699287512Sdimvec_all_eq(vector signed long long __a, vector signed long long __b) { 2700287512Sdim int __cc; 2701287512Sdim __builtin_s390_vceqgs(__a, __b, &__cc); 2702287512Sdim return __cc == 0; 2703287512Sdim} 2704287512Sdim 2705321369Sdim// This prototype is deprecated. 2706287512Sdimstatic inline __ATTRS_o_ai int 2707287512Sdimvec_all_eq(vector signed long long __a, vector bool long long __b) { 2708287512Sdim int __cc; 2709287512Sdim __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc); 2710287512Sdim return __cc == 0; 2711287512Sdim} 2712287512Sdim 2713321369Sdim// This prototype is deprecated. 2714287512Sdimstatic inline __ATTRS_o_ai int 2715287512Sdimvec_all_eq(vector bool long long __a, vector signed long long __b) { 2716287512Sdim int __cc; 2717287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc); 2718287512Sdim return __cc == 0; 2719287512Sdim} 2720287512Sdim 2721287512Sdimstatic inline __ATTRS_o_ai int 2722287512Sdimvec_all_eq(vector unsigned long long __a, vector unsigned long long __b) { 2723287512Sdim int __cc; 2724287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 2725287512Sdim (vector signed long long)__b, &__cc); 2726287512Sdim return __cc == 0; 2727287512Sdim} 2728287512Sdim 2729321369Sdim// This prototype is deprecated. 2730287512Sdimstatic inline __ATTRS_o_ai int 2731287512Sdimvec_all_eq(vector unsigned long long __a, vector bool long long __b) { 2732287512Sdim int __cc; 2733287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 2734287512Sdim (vector signed long long)__b, &__cc); 2735287512Sdim return __cc == 0; 2736287512Sdim} 2737287512Sdim 2738321369Sdim// This prototype is deprecated. 2739287512Sdimstatic inline __ATTRS_o_ai int 2740287512Sdimvec_all_eq(vector bool long long __a, vector unsigned long long __b) { 2741287512Sdim int __cc; 2742287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 2743287512Sdim (vector signed long long)__b, &__cc); 2744287512Sdim return __cc == 0; 2745287512Sdim} 2746287512Sdim 2747287512Sdimstatic inline __ATTRS_o_ai int 2748287512Sdimvec_all_eq(vector bool long long __a, vector bool long long __b) { 2749287512Sdim int __cc; 2750287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 2751287512Sdim (vector signed long long)__b, &__cc); 2752287512Sdim return __cc == 0; 2753287512Sdim} 2754287512Sdim 2755321369Sdim#if __ARCH__ >= 12 2756287512Sdimstatic inline __ATTRS_o_ai int 2757321369Sdimvec_all_eq(vector float __a, vector float __b) { 2758321369Sdim int __cc; 2759321369Sdim __builtin_s390_vfcesbs(__a, __b, &__cc); 2760321369Sdim return __cc == 0; 2761321369Sdim} 2762321369Sdim#endif 2763321369Sdim 2764321369Sdimstatic inline __ATTRS_o_ai int 2765287512Sdimvec_all_eq(vector double __a, vector double __b) { 2766287512Sdim int __cc; 2767287512Sdim __builtin_s390_vfcedbs(__a, __b, &__cc); 2768287512Sdim return __cc == 0; 2769287512Sdim} 2770287512Sdim 2771287512Sdim/*-- vec_all_ne -------------------------------------------------------------*/ 2772287512Sdim 2773287512Sdimstatic inline __ATTRS_o_ai int 2774287512Sdimvec_all_ne(vector signed char __a, vector signed char __b) { 2775287512Sdim int __cc; 2776287512Sdim __builtin_s390_vceqbs(__a, __b, &__cc); 2777287512Sdim return __cc == 3; 2778287512Sdim} 2779287512Sdim 2780321369Sdim// This prototype is deprecated. 2781287512Sdimstatic inline __ATTRS_o_ai int 2782287512Sdimvec_all_ne(vector signed char __a, vector bool char __b) { 2783287512Sdim int __cc; 2784287512Sdim __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc); 2785287512Sdim return __cc == 3; 2786287512Sdim} 2787287512Sdim 2788321369Sdim// This prototype is deprecated. 2789287512Sdimstatic inline __ATTRS_o_ai int 2790287512Sdimvec_all_ne(vector bool char __a, vector signed char __b) { 2791287512Sdim int __cc; 2792287512Sdim __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc); 2793287512Sdim return __cc == 3; 2794287512Sdim} 2795287512Sdim 2796287512Sdimstatic inline __ATTRS_o_ai int 2797287512Sdimvec_all_ne(vector unsigned char __a, vector unsigned char __b) { 2798287512Sdim int __cc; 2799287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 2800287512Sdim (vector signed char)__b, &__cc); 2801287512Sdim return __cc == 3; 2802287512Sdim} 2803287512Sdim 2804321369Sdim// This prototype is deprecated. 2805287512Sdimstatic inline __ATTRS_o_ai int 2806287512Sdimvec_all_ne(vector unsigned char __a, vector bool char __b) { 2807287512Sdim int __cc; 2808287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 2809287512Sdim (vector signed char)__b, &__cc); 2810287512Sdim return __cc == 3; 2811287512Sdim} 2812287512Sdim 2813321369Sdim// This prototype is deprecated. 2814287512Sdimstatic inline __ATTRS_o_ai int 2815287512Sdimvec_all_ne(vector bool char __a, vector unsigned char __b) { 2816287512Sdim int __cc; 2817287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 2818287512Sdim (vector signed char)__b, &__cc); 2819287512Sdim return __cc == 3; 2820287512Sdim} 2821287512Sdim 2822287512Sdimstatic inline __ATTRS_o_ai int 2823287512Sdimvec_all_ne(vector bool char __a, vector bool char __b) { 2824287512Sdim int __cc; 2825287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 2826287512Sdim (vector signed char)__b, &__cc); 2827287512Sdim return __cc == 3; 2828287512Sdim} 2829287512Sdim 2830287512Sdimstatic inline __ATTRS_o_ai int 2831287512Sdimvec_all_ne(vector signed short __a, vector signed short __b) { 2832287512Sdim int __cc; 2833287512Sdim __builtin_s390_vceqhs(__a, __b, &__cc); 2834287512Sdim return __cc == 3; 2835287512Sdim} 2836287512Sdim 2837321369Sdim// This prototype is deprecated. 2838287512Sdimstatic inline __ATTRS_o_ai int 2839287512Sdimvec_all_ne(vector signed short __a, vector bool short __b) { 2840287512Sdim int __cc; 2841287512Sdim __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc); 2842287512Sdim return __cc == 3; 2843287512Sdim} 2844287512Sdim 2845321369Sdim// This prototype is deprecated. 2846287512Sdimstatic inline __ATTRS_o_ai int 2847287512Sdimvec_all_ne(vector bool short __a, vector signed short __b) { 2848287512Sdim int __cc; 2849287512Sdim __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc); 2850287512Sdim return __cc == 3; 2851287512Sdim} 2852287512Sdim 2853287512Sdimstatic inline __ATTRS_o_ai int 2854287512Sdimvec_all_ne(vector unsigned short __a, vector unsigned short __b) { 2855287512Sdim int __cc; 2856287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 2857287512Sdim (vector signed short)__b, &__cc); 2858287512Sdim return __cc == 3; 2859287512Sdim} 2860287512Sdim 2861321369Sdim// This prototype is deprecated. 2862287512Sdimstatic inline __ATTRS_o_ai int 2863287512Sdimvec_all_ne(vector unsigned short __a, vector bool short __b) { 2864287512Sdim int __cc; 2865287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 2866287512Sdim (vector signed short)__b, &__cc); 2867287512Sdim return __cc == 3; 2868287512Sdim} 2869287512Sdim 2870321369Sdim// This prototype is deprecated. 2871287512Sdimstatic inline __ATTRS_o_ai int 2872287512Sdimvec_all_ne(vector bool short __a, vector unsigned short __b) { 2873287512Sdim int __cc; 2874287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 2875287512Sdim (vector signed short)__b, &__cc); 2876287512Sdim return __cc == 3; 2877287512Sdim} 2878287512Sdim 2879287512Sdimstatic inline __ATTRS_o_ai int 2880287512Sdimvec_all_ne(vector bool short __a, vector bool short __b) { 2881287512Sdim int __cc; 2882287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 2883287512Sdim (vector signed short)__b, &__cc); 2884287512Sdim return __cc == 3; 2885287512Sdim} 2886287512Sdim 2887287512Sdimstatic inline __ATTRS_o_ai int 2888287512Sdimvec_all_ne(vector signed int __a, vector signed int __b) { 2889287512Sdim int __cc; 2890287512Sdim __builtin_s390_vceqfs(__a, __b, &__cc); 2891287512Sdim return __cc == 3; 2892287512Sdim} 2893287512Sdim 2894321369Sdim// This prototype is deprecated. 2895287512Sdimstatic inline __ATTRS_o_ai int 2896287512Sdimvec_all_ne(vector signed int __a, vector bool int __b) { 2897287512Sdim int __cc; 2898287512Sdim __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc); 2899287512Sdim return __cc == 3; 2900287512Sdim} 2901287512Sdim 2902321369Sdim// This prototype is deprecated. 2903287512Sdimstatic inline __ATTRS_o_ai int 2904287512Sdimvec_all_ne(vector bool int __a, vector signed int __b) { 2905287512Sdim int __cc; 2906287512Sdim __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc); 2907287512Sdim return __cc == 3; 2908287512Sdim} 2909287512Sdim 2910287512Sdimstatic inline __ATTRS_o_ai int 2911287512Sdimvec_all_ne(vector unsigned int __a, vector unsigned int __b) { 2912287512Sdim int __cc; 2913287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 2914287512Sdim (vector signed int)__b, &__cc); 2915287512Sdim return __cc == 3; 2916287512Sdim} 2917287512Sdim 2918321369Sdim// This prototype is deprecated. 2919287512Sdimstatic inline __ATTRS_o_ai int 2920287512Sdimvec_all_ne(vector unsigned int __a, vector bool int __b) { 2921287512Sdim int __cc; 2922287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 2923287512Sdim (vector signed int)__b, &__cc); 2924287512Sdim return __cc == 3; 2925287512Sdim} 2926287512Sdim 2927321369Sdim// This prototype is deprecated. 2928287512Sdimstatic inline __ATTRS_o_ai int 2929287512Sdimvec_all_ne(vector bool int __a, vector unsigned int __b) { 2930287512Sdim int __cc; 2931287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 2932287512Sdim (vector signed int)__b, &__cc); 2933287512Sdim return __cc == 3; 2934287512Sdim} 2935287512Sdim 2936287512Sdimstatic inline __ATTRS_o_ai int 2937287512Sdimvec_all_ne(vector bool int __a, vector bool int __b) { 2938287512Sdim int __cc; 2939287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 2940287512Sdim (vector signed int)__b, &__cc); 2941287512Sdim return __cc == 3; 2942287512Sdim} 2943287512Sdim 2944287512Sdimstatic inline __ATTRS_o_ai int 2945287512Sdimvec_all_ne(vector signed long long __a, vector signed long long __b) { 2946287512Sdim int __cc; 2947287512Sdim __builtin_s390_vceqgs(__a, __b, &__cc); 2948287512Sdim return __cc == 3; 2949287512Sdim} 2950287512Sdim 2951321369Sdim// This prototype is deprecated. 2952287512Sdimstatic inline __ATTRS_o_ai int 2953287512Sdimvec_all_ne(vector signed long long __a, vector bool long long __b) { 2954287512Sdim int __cc; 2955287512Sdim __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc); 2956287512Sdim return __cc == 3; 2957287512Sdim} 2958287512Sdim 2959321369Sdim// This prototype is deprecated. 2960287512Sdimstatic inline __ATTRS_o_ai int 2961287512Sdimvec_all_ne(vector bool long long __a, vector signed long long __b) { 2962287512Sdim int __cc; 2963287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc); 2964287512Sdim return __cc == 3; 2965287512Sdim} 2966287512Sdim 2967287512Sdimstatic inline __ATTRS_o_ai int 2968287512Sdimvec_all_ne(vector unsigned long long __a, vector unsigned long long __b) { 2969287512Sdim int __cc; 2970287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 2971287512Sdim (vector signed long long)__b, &__cc); 2972287512Sdim return __cc == 3; 2973287512Sdim} 2974287512Sdim 2975321369Sdim// This prototype is deprecated. 2976287512Sdimstatic inline __ATTRS_o_ai int 2977287512Sdimvec_all_ne(vector unsigned long long __a, vector bool long long __b) { 2978287512Sdim int __cc; 2979287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 2980287512Sdim (vector signed long long)__b, &__cc); 2981287512Sdim return __cc == 3; 2982287512Sdim} 2983287512Sdim 2984321369Sdim// This prototype is deprecated. 2985287512Sdimstatic inline __ATTRS_o_ai int 2986287512Sdimvec_all_ne(vector bool long long __a, vector unsigned long long __b) { 2987287512Sdim int __cc; 2988287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 2989287512Sdim (vector signed long long)__b, &__cc); 2990287512Sdim return __cc == 3; 2991287512Sdim} 2992287512Sdim 2993287512Sdimstatic inline __ATTRS_o_ai int 2994287512Sdimvec_all_ne(vector bool long long __a, vector bool long long __b) { 2995287512Sdim int __cc; 2996287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 2997287512Sdim (vector signed long long)__b, &__cc); 2998287512Sdim return __cc == 3; 2999287512Sdim} 3000287512Sdim 3001321369Sdim#if __ARCH__ >= 12 3002287512Sdimstatic inline __ATTRS_o_ai int 3003321369Sdimvec_all_ne(vector float __a, vector float __b) { 3004321369Sdim int __cc; 3005321369Sdim __builtin_s390_vfcesbs(__a, __b, &__cc); 3006321369Sdim return __cc == 3; 3007321369Sdim} 3008321369Sdim#endif 3009321369Sdim 3010321369Sdimstatic inline __ATTRS_o_ai int 3011287512Sdimvec_all_ne(vector double __a, vector double __b) { 3012287512Sdim int __cc; 3013287512Sdim __builtin_s390_vfcedbs(__a, __b, &__cc); 3014287512Sdim return __cc == 3; 3015287512Sdim} 3016287512Sdim 3017287512Sdim/*-- vec_all_ge -------------------------------------------------------------*/ 3018287512Sdim 3019287512Sdimstatic inline __ATTRS_o_ai int 3020287512Sdimvec_all_ge(vector signed char __a, vector signed char __b) { 3021287512Sdim int __cc; 3022287512Sdim __builtin_s390_vchbs(__b, __a, &__cc); 3023287512Sdim return __cc == 3; 3024287512Sdim} 3025287512Sdim 3026321369Sdim// This prototype is deprecated. 3027287512Sdimstatic inline __ATTRS_o_ai int 3028287512Sdimvec_all_ge(vector signed char __a, vector bool char __b) { 3029287512Sdim int __cc; 3030287512Sdim __builtin_s390_vchbs((vector signed char)__b, __a, &__cc); 3031287512Sdim return __cc == 3; 3032287512Sdim} 3033287512Sdim 3034321369Sdim// This prototype is deprecated. 3035287512Sdimstatic inline __ATTRS_o_ai int 3036287512Sdimvec_all_ge(vector bool char __a, vector signed char __b) { 3037287512Sdim int __cc; 3038287512Sdim __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc); 3039287512Sdim return __cc == 3; 3040287512Sdim} 3041287512Sdim 3042287512Sdimstatic inline __ATTRS_o_ai int 3043287512Sdimvec_all_ge(vector unsigned char __a, vector unsigned char __b) { 3044287512Sdim int __cc; 3045287512Sdim __builtin_s390_vchlbs(__b, __a, &__cc); 3046287512Sdim return __cc == 3; 3047287512Sdim} 3048287512Sdim 3049321369Sdim// This prototype is deprecated. 3050287512Sdimstatic inline __ATTRS_o_ai int 3051287512Sdimvec_all_ge(vector unsigned char __a, vector bool char __b) { 3052287512Sdim int __cc; 3053287512Sdim __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc); 3054287512Sdim return __cc == 3; 3055287512Sdim} 3056287512Sdim 3057321369Sdim// This prototype is deprecated. 3058287512Sdimstatic inline __ATTRS_o_ai int 3059287512Sdimvec_all_ge(vector bool char __a, vector unsigned char __b) { 3060287512Sdim int __cc; 3061287512Sdim __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc); 3062287512Sdim return __cc == 3; 3063287512Sdim} 3064287512Sdim 3065321369Sdim// This prototype is deprecated. 3066287512Sdimstatic inline __ATTRS_o_ai int 3067287512Sdimvec_all_ge(vector bool char __a, vector bool char __b) { 3068287512Sdim int __cc; 3069287512Sdim __builtin_s390_vchlbs((vector unsigned char)__b, 3070287512Sdim (vector unsigned char)__a, &__cc); 3071287512Sdim return __cc == 3; 3072287512Sdim} 3073287512Sdim 3074287512Sdimstatic inline __ATTRS_o_ai int 3075287512Sdimvec_all_ge(vector signed short __a, vector signed short __b) { 3076287512Sdim int __cc; 3077287512Sdim __builtin_s390_vchhs(__b, __a, &__cc); 3078287512Sdim return __cc == 3; 3079287512Sdim} 3080287512Sdim 3081321369Sdim// This prototype is deprecated. 3082287512Sdimstatic inline __ATTRS_o_ai int 3083287512Sdimvec_all_ge(vector signed short __a, vector bool short __b) { 3084287512Sdim int __cc; 3085287512Sdim __builtin_s390_vchhs((vector signed short)__b, __a, &__cc); 3086287512Sdim return __cc == 3; 3087287512Sdim} 3088287512Sdim 3089321369Sdim// This prototype is deprecated. 3090287512Sdimstatic inline __ATTRS_o_ai int 3091287512Sdimvec_all_ge(vector bool short __a, vector signed short __b) { 3092287512Sdim int __cc; 3093287512Sdim __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc); 3094287512Sdim return __cc == 3; 3095287512Sdim} 3096287512Sdim 3097287512Sdimstatic inline __ATTRS_o_ai int 3098287512Sdimvec_all_ge(vector unsigned short __a, vector unsigned short __b) { 3099287512Sdim int __cc; 3100287512Sdim __builtin_s390_vchlhs(__b, __a, &__cc); 3101287512Sdim return __cc == 3; 3102287512Sdim} 3103287512Sdim 3104321369Sdim// This prototype is deprecated. 3105287512Sdimstatic inline __ATTRS_o_ai int 3106287512Sdimvec_all_ge(vector unsigned short __a, vector bool short __b) { 3107287512Sdim int __cc; 3108287512Sdim __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc); 3109287512Sdim return __cc == 3; 3110287512Sdim} 3111287512Sdim 3112321369Sdim// This prototype is deprecated. 3113287512Sdimstatic inline __ATTRS_o_ai int 3114287512Sdimvec_all_ge(vector bool short __a, vector unsigned short __b) { 3115287512Sdim int __cc; 3116287512Sdim __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc); 3117287512Sdim return __cc == 3; 3118287512Sdim} 3119287512Sdim 3120321369Sdim// This prototype is deprecated. 3121287512Sdimstatic inline __ATTRS_o_ai int 3122287512Sdimvec_all_ge(vector bool short __a, vector bool short __b) { 3123287512Sdim int __cc; 3124287512Sdim __builtin_s390_vchlhs((vector unsigned short)__b, 3125287512Sdim (vector unsigned short)__a, &__cc); 3126287512Sdim return __cc == 3; 3127287512Sdim} 3128287512Sdim 3129287512Sdimstatic inline __ATTRS_o_ai int 3130287512Sdimvec_all_ge(vector signed int __a, vector signed int __b) { 3131287512Sdim int __cc; 3132287512Sdim __builtin_s390_vchfs(__b, __a, &__cc); 3133287512Sdim return __cc == 3; 3134287512Sdim} 3135287512Sdim 3136321369Sdim// This prototype is deprecated. 3137287512Sdimstatic inline __ATTRS_o_ai int 3138287512Sdimvec_all_ge(vector signed int __a, vector bool int __b) { 3139287512Sdim int __cc; 3140287512Sdim __builtin_s390_vchfs((vector signed int)__b, __a, &__cc); 3141287512Sdim return __cc == 3; 3142287512Sdim} 3143287512Sdim 3144321369Sdim// This prototype is deprecated. 3145287512Sdimstatic inline __ATTRS_o_ai int 3146287512Sdimvec_all_ge(vector bool int __a, vector signed int __b) { 3147287512Sdim int __cc; 3148287512Sdim __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc); 3149287512Sdim return __cc == 3; 3150287512Sdim} 3151287512Sdim 3152287512Sdimstatic inline __ATTRS_o_ai int 3153287512Sdimvec_all_ge(vector unsigned int __a, vector unsigned int __b) { 3154287512Sdim int __cc; 3155287512Sdim __builtin_s390_vchlfs(__b, __a, &__cc); 3156287512Sdim return __cc == 3; 3157287512Sdim} 3158287512Sdim 3159321369Sdim// This prototype is deprecated. 3160287512Sdimstatic inline __ATTRS_o_ai int 3161287512Sdimvec_all_ge(vector unsigned int __a, vector bool int __b) { 3162287512Sdim int __cc; 3163287512Sdim __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc); 3164287512Sdim return __cc == 3; 3165287512Sdim} 3166287512Sdim 3167321369Sdim// This prototype is deprecated. 3168287512Sdimstatic inline __ATTRS_o_ai int 3169287512Sdimvec_all_ge(vector bool int __a, vector unsigned int __b) { 3170287512Sdim int __cc; 3171287512Sdim __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc); 3172287512Sdim return __cc == 3; 3173287512Sdim} 3174287512Sdim 3175321369Sdim// This prototype is deprecated. 3176287512Sdimstatic inline __ATTRS_o_ai int 3177287512Sdimvec_all_ge(vector bool int __a, vector bool int __b) { 3178287512Sdim int __cc; 3179287512Sdim __builtin_s390_vchlfs((vector unsigned int)__b, 3180287512Sdim (vector unsigned int)__a, &__cc); 3181287512Sdim return __cc == 3; 3182287512Sdim} 3183287512Sdim 3184287512Sdimstatic inline __ATTRS_o_ai int 3185287512Sdimvec_all_ge(vector signed long long __a, vector signed long long __b) { 3186287512Sdim int __cc; 3187287512Sdim __builtin_s390_vchgs(__b, __a, &__cc); 3188287512Sdim return __cc == 3; 3189287512Sdim} 3190287512Sdim 3191321369Sdim// This prototype is deprecated. 3192287512Sdimstatic inline __ATTRS_o_ai int 3193287512Sdimvec_all_ge(vector signed long long __a, vector bool long long __b) { 3194287512Sdim int __cc; 3195287512Sdim __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc); 3196287512Sdim return __cc == 3; 3197287512Sdim} 3198287512Sdim 3199321369Sdim// This prototype is deprecated. 3200287512Sdimstatic inline __ATTRS_o_ai int 3201287512Sdimvec_all_ge(vector bool long long __a, vector signed long long __b) { 3202287512Sdim int __cc; 3203287512Sdim __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc); 3204287512Sdim return __cc == 3; 3205287512Sdim} 3206287512Sdim 3207287512Sdimstatic inline __ATTRS_o_ai int 3208287512Sdimvec_all_ge(vector unsigned long long __a, vector unsigned long long __b) { 3209287512Sdim int __cc; 3210287512Sdim __builtin_s390_vchlgs(__b, __a, &__cc); 3211287512Sdim return __cc == 3; 3212287512Sdim} 3213287512Sdim 3214321369Sdim// This prototype is deprecated. 3215287512Sdimstatic inline __ATTRS_o_ai int 3216287512Sdimvec_all_ge(vector unsigned long long __a, vector bool long long __b) { 3217287512Sdim int __cc; 3218287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc); 3219287512Sdim return __cc == 3; 3220287512Sdim} 3221287512Sdim 3222321369Sdim// This prototype is deprecated. 3223287512Sdimstatic inline __ATTRS_o_ai int 3224287512Sdimvec_all_ge(vector bool long long __a, vector unsigned long long __b) { 3225287512Sdim int __cc; 3226287512Sdim __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc); 3227287512Sdim return __cc == 3; 3228287512Sdim} 3229287512Sdim 3230321369Sdim// This prototype is deprecated. 3231287512Sdimstatic inline __ATTRS_o_ai int 3232287512Sdimvec_all_ge(vector bool long long __a, vector bool long long __b) { 3233287512Sdim int __cc; 3234287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__b, 3235287512Sdim (vector unsigned long long)__a, &__cc); 3236287512Sdim return __cc == 3; 3237287512Sdim} 3238287512Sdim 3239321369Sdim#if __ARCH__ >= 12 3240287512Sdimstatic inline __ATTRS_o_ai int 3241321369Sdimvec_all_ge(vector float __a, vector float __b) { 3242321369Sdim int __cc; 3243321369Sdim __builtin_s390_vfchesbs(__a, __b, &__cc); 3244321369Sdim return __cc == 0; 3245321369Sdim} 3246321369Sdim#endif 3247321369Sdim 3248321369Sdimstatic inline __ATTRS_o_ai int 3249287512Sdimvec_all_ge(vector double __a, vector double __b) { 3250287512Sdim int __cc; 3251287512Sdim __builtin_s390_vfchedbs(__a, __b, &__cc); 3252287512Sdim return __cc == 0; 3253287512Sdim} 3254287512Sdim 3255287512Sdim/*-- vec_all_gt -------------------------------------------------------------*/ 3256287512Sdim 3257287512Sdimstatic inline __ATTRS_o_ai int 3258287512Sdimvec_all_gt(vector signed char __a, vector signed char __b) { 3259287512Sdim int __cc; 3260287512Sdim __builtin_s390_vchbs(__a, __b, &__cc); 3261287512Sdim return __cc == 0; 3262287512Sdim} 3263287512Sdim 3264321369Sdim// This prototype is deprecated. 3265287512Sdimstatic inline __ATTRS_o_ai int 3266287512Sdimvec_all_gt(vector signed char __a, vector bool char __b) { 3267287512Sdim int __cc; 3268287512Sdim __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc); 3269287512Sdim return __cc == 0; 3270287512Sdim} 3271287512Sdim 3272321369Sdim// This prototype is deprecated. 3273287512Sdimstatic inline __ATTRS_o_ai int 3274287512Sdimvec_all_gt(vector bool char __a, vector signed char __b) { 3275287512Sdim int __cc; 3276287512Sdim __builtin_s390_vchbs((vector signed char)__a, __b, &__cc); 3277287512Sdim return __cc == 0; 3278287512Sdim} 3279287512Sdim 3280287512Sdimstatic inline __ATTRS_o_ai int 3281287512Sdimvec_all_gt(vector unsigned char __a, vector unsigned char __b) { 3282287512Sdim int __cc; 3283287512Sdim __builtin_s390_vchlbs(__a, __b, &__cc); 3284287512Sdim return __cc == 0; 3285287512Sdim} 3286287512Sdim 3287321369Sdim// This prototype is deprecated. 3288287512Sdimstatic inline __ATTRS_o_ai int 3289287512Sdimvec_all_gt(vector unsigned char __a, vector bool char __b) { 3290287512Sdim int __cc; 3291287512Sdim __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc); 3292287512Sdim return __cc == 0; 3293287512Sdim} 3294287512Sdim 3295321369Sdim// This prototype is deprecated. 3296287512Sdimstatic inline __ATTRS_o_ai int 3297287512Sdimvec_all_gt(vector bool char __a, vector unsigned char __b) { 3298287512Sdim int __cc; 3299287512Sdim __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc); 3300287512Sdim return __cc == 0; 3301287512Sdim} 3302287512Sdim 3303321369Sdim// This prototype is deprecated. 3304287512Sdimstatic inline __ATTRS_o_ai int 3305287512Sdimvec_all_gt(vector bool char __a, vector bool char __b) { 3306287512Sdim int __cc; 3307287512Sdim __builtin_s390_vchlbs((vector unsigned char)__a, 3308287512Sdim (vector unsigned char)__b, &__cc); 3309287512Sdim return __cc == 0; 3310287512Sdim} 3311287512Sdim 3312287512Sdimstatic inline __ATTRS_o_ai int 3313287512Sdimvec_all_gt(vector signed short __a, vector signed short __b) { 3314287512Sdim int __cc; 3315287512Sdim __builtin_s390_vchhs(__a, __b, &__cc); 3316287512Sdim return __cc == 0; 3317287512Sdim} 3318287512Sdim 3319321369Sdim// This prototype is deprecated. 3320287512Sdimstatic inline __ATTRS_o_ai int 3321287512Sdimvec_all_gt(vector signed short __a, vector bool short __b) { 3322287512Sdim int __cc; 3323287512Sdim __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc); 3324287512Sdim return __cc == 0; 3325287512Sdim} 3326287512Sdim 3327321369Sdim// This prototype is deprecated. 3328287512Sdimstatic inline __ATTRS_o_ai int 3329287512Sdimvec_all_gt(vector bool short __a, vector signed short __b) { 3330287512Sdim int __cc; 3331287512Sdim __builtin_s390_vchhs((vector signed short)__a, __b, &__cc); 3332287512Sdim return __cc == 0; 3333287512Sdim} 3334287512Sdim 3335287512Sdimstatic inline __ATTRS_o_ai int 3336287512Sdimvec_all_gt(vector unsigned short __a, vector unsigned short __b) { 3337287512Sdim int __cc; 3338287512Sdim __builtin_s390_vchlhs(__a, __b, &__cc); 3339287512Sdim return __cc == 0; 3340287512Sdim} 3341287512Sdim 3342321369Sdim// This prototype is deprecated. 3343287512Sdimstatic inline __ATTRS_o_ai int 3344287512Sdimvec_all_gt(vector unsigned short __a, vector bool short __b) { 3345287512Sdim int __cc; 3346287512Sdim __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc); 3347287512Sdim return __cc == 0; 3348287512Sdim} 3349287512Sdim 3350321369Sdim// This prototype is deprecated. 3351287512Sdimstatic inline __ATTRS_o_ai int 3352287512Sdimvec_all_gt(vector bool short __a, vector unsigned short __b) { 3353287512Sdim int __cc; 3354287512Sdim __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc); 3355287512Sdim return __cc == 0; 3356287512Sdim} 3357287512Sdim 3358321369Sdim// This prototype is deprecated. 3359287512Sdimstatic inline __ATTRS_o_ai int 3360287512Sdimvec_all_gt(vector bool short __a, vector bool short __b) { 3361287512Sdim int __cc; 3362287512Sdim __builtin_s390_vchlhs((vector unsigned short)__a, 3363287512Sdim (vector unsigned short)__b, &__cc); 3364287512Sdim return __cc == 0; 3365287512Sdim} 3366287512Sdim 3367287512Sdimstatic inline __ATTRS_o_ai int 3368287512Sdimvec_all_gt(vector signed int __a, vector signed int __b) { 3369287512Sdim int __cc; 3370287512Sdim __builtin_s390_vchfs(__a, __b, &__cc); 3371287512Sdim return __cc == 0; 3372287512Sdim} 3373287512Sdim 3374321369Sdim// This prototype is deprecated. 3375287512Sdimstatic inline __ATTRS_o_ai int 3376287512Sdimvec_all_gt(vector signed int __a, vector bool int __b) { 3377287512Sdim int __cc; 3378287512Sdim __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc); 3379287512Sdim return __cc == 0; 3380287512Sdim} 3381287512Sdim 3382321369Sdim// This prototype is deprecated. 3383287512Sdimstatic inline __ATTRS_o_ai int 3384287512Sdimvec_all_gt(vector bool int __a, vector signed int __b) { 3385287512Sdim int __cc; 3386287512Sdim __builtin_s390_vchfs((vector signed int)__a, __b, &__cc); 3387287512Sdim return __cc == 0; 3388287512Sdim} 3389287512Sdim 3390287512Sdimstatic inline __ATTRS_o_ai int 3391287512Sdimvec_all_gt(vector unsigned int __a, vector unsigned int __b) { 3392287512Sdim int __cc; 3393287512Sdim __builtin_s390_vchlfs(__a, __b, &__cc); 3394287512Sdim return __cc == 0; 3395287512Sdim} 3396287512Sdim 3397321369Sdim// This prototype is deprecated. 3398287512Sdimstatic inline __ATTRS_o_ai int 3399287512Sdimvec_all_gt(vector unsigned int __a, vector bool int __b) { 3400287512Sdim int __cc; 3401287512Sdim __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc); 3402287512Sdim return __cc == 0; 3403287512Sdim} 3404287512Sdim 3405321369Sdim// This prototype is deprecated. 3406287512Sdimstatic inline __ATTRS_o_ai int 3407287512Sdimvec_all_gt(vector bool int __a, vector unsigned int __b) { 3408287512Sdim int __cc; 3409287512Sdim __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc); 3410287512Sdim return __cc == 0; 3411287512Sdim} 3412287512Sdim 3413321369Sdim// This prototype is deprecated. 3414287512Sdimstatic inline __ATTRS_o_ai int 3415287512Sdimvec_all_gt(vector bool int __a, vector bool int __b) { 3416287512Sdim int __cc; 3417287512Sdim __builtin_s390_vchlfs((vector unsigned int)__a, 3418287512Sdim (vector unsigned int)__b, &__cc); 3419287512Sdim return __cc == 0; 3420287512Sdim} 3421287512Sdim 3422287512Sdimstatic inline __ATTRS_o_ai int 3423287512Sdimvec_all_gt(vector signed long long __a, vector signed long long __b) { 3424287512Sdim int __cc; 3425287512Sdim __builtin_s390_vchgs(__a, __b, &__cc); 3426287512Sdim return __cc == 0; 3427287512Sdim} 3428287512Sdim 3429321369Sdim// This prototype is deprecated. 3430287512Sdimstatic inline __ATTRS_o_ai int 3431287512Sdimvec_all_gt(vector signed long long __a, vector bool long long __b) { 3432287512Sdim int __cc; 3433287512Sdim __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc); 3434287512Sdim return __cc == 0; 3435287512Sdim} 3436287512Sdim 3437321369Sdim// This prototype is deprecated. 3438287512Sdimstatic inline __ATTRS_o_ai int 3439287512Sdimvec_all_gt(vector bool long long __a, vector signed long long __b) { 3440287512Sdim int __cc; 3441287512Sdim __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc); 3442287512Sdim return __cc == 0; 3443287512Sdim} 3444287512Sdim 3445287512Sdimstatic inline __ATTRS_o_ai int 3446287512Sdimvec_all_gt(vector unsigned long long __a, vector unsigned long long __b) { 3447287512Sdim int __cc; 3448287512Sdim __builtin_s390_vchlgs(__a, __b, &__cc); 3449287512Sdim return __cc == 0; 3450287512Sdim} 3451287512Sdim 3452321369Sdim// This prototype is deprecated. 3453287512Sdimstatic inline __ATTRS_o_ai int 3454287512Sdimvec_all_gt(vector unsigned long long __a, vector bool long long __b) { 3455287512Sdim int __cc; 3456287512Sdim __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc); 3457287512Sdim return __cc == 0; 3458287512Sdim} 3459287512Sdim 3460321369Sdim// This prototype is deprecated. 3461287512Sdimstatic inline __ATTRS_o_ai int 3462287512Sdimvec_all_gt(vector bool long long __a, vector unsigned long long __b) { 3463287512Sdim int __cc; 3464287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc); 3465287512Sdim return __cc == 0; 3466287512Sdim} 3467287512Sdim 3468321369Sdim// This prototype is deprecated. 3469287512Sdimstatic inline __ATTRS_o_ai int 3470287512Sdimvec_all_gt(vector bool long long __a, vector bool long long __b) { 3471287512Sdim int __cc; 3472287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__a, 3473287512Sdim (vector unsigned long long)__b, &__cc); 3474287512Sdim return __cc == 0; 3475287512Sdim} 3476287512Sdim 3477321369Sdim#if __ARCH__ >= 12 3478287512Sdimstatic inline __ATTRS_o_ai int 3479321369Sdimvec_all_gt(vector float __a, vector float __b) { 3480321369Sdim int __cc; 3481321369Sdim __builtin_s390_vfchsbs(__a, __b, &__cc); 3482321369Sdim return __cc == 0; 3483321369Sdim} 3484321369Sdim#endif 3485321369Sdim 3486321369Sdimstatic inline __ATTRS_o_ai int 3487287512Sdimvec_all_gt(vector double __a, vector double __b) { 3488287512Sdim int __cc; 3489287512Sdim __builtin_s390_vfchdbs(__a, __b, &__cc); 3490287512Sdim return __cc == 0; 3491287512Sdim} 3492287512Sdim 3493287512Sdim/*-- vec_all_le -------------------------------------------------------------*/ 3494287512Sdim 3495287512Sdimstatic inline __ATTRS_o_ai int 3496287512Sdimvec_all_le(vector signed char __a, vector signed char __b) { 3497287512Sdim int __cc; 3498287512Sdim __builtin_s390_vchbs(__a, __b, &__cc); 3499287512Sdim return __cc == 3; 3500287512Sdim} 3501287512Sdim 3502321369Sdim// This prototype is deprecated. 3503287512Sdimstatic inline __ATTRS_o_ai int 3504287512Sdimvec_all_le(vector signed char __a, vector bool char __b) { 3505287512Sdim int __cc; 3506287512Sdim __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc); 3507287512Sdim return __cc == 3; 3508287512Sdim} 3509287512Sdim 3510321369Sdim// This prototype is deprecated. 3511287512Sdimstatic inline __ATTRS_o_ai int 3512287512Sdimvec_all_le(vector bool char __a, vector signed char __b) { 3513287512Sdim int __cc; 3514287512Sdim __builtin_s390_vchbs((vector signed char)__a, __b, &__cc); 3515287512Sdim return __cc == 3; 3516287512Sdim} 3517287512Sdim 3518287512Sdimstatic inline __ATTRS_o_ai int 3519287512Sdimvec_all_le(vector unsigned char __a, vector unsigned char __b) { 3520287512Sdim int __cc; 3521287512Sdim __builtin_s390_vchlbs(__a, __b, &__cc); 3522287512Sdim return __cc == 3; 3523287512Sdim} 3524287512Sdim 3525321369Sdim// This prototype is deprecated. 3526287512Sdimstatic inline __ATTRS_o_ai int 3527287512Sdimvec_all_le(vector unsigned char __a, vector bool char __b) { 3528287512Sdim int __cc; 3529287512Sdim __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc); 3530287512Sdim return __cc == 3; 3531287512Sdim} 3532287512Sdim 3533321369Sdim// This prototype is deprecated. 3534287512Sdimstatic inline __ATTRS_o_ai int 3535287512Sdimvec_all_le(vector bool char __a, vector unsigned char __b) { 3536287512Sdim int __cc; 3537287512Sdim __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc); 3538287512Sdim return __cc == 3; 3539287512Sdim} 3540287512Sdim 3541321369Sdim// This prototype is deprecated. 3542287512Sdimstatic inline __ATTRS_o_ai int 3543287512Sdimvec_all_le(vector bool char __a, vector bool char __b) { 3544287512Sdim int __cc; 3545287512Sdim __builtin_s390_vchlbs((vector unsigned char)__a, 3546287512Sdim (vector unsigned char)__b, &__cc); 3547287512Sdim return __cc == 3; 3548287512Sdim} 3549287512Sdim 3550287512Sdimstatic inline __ATTRS_o_ai int 3551287512Sdimvec_all_le(vector signed short __a, vector signed short __b) { 3552287512Sdim int __cc; 3553287512Sdim __builtin_s390_vchhs(__a, __b, &__cc); 3554287512Sdim return __cc == 3; 3555287512Sdim} 3556287512Sdim 3557321369Sdim// This prototype is deprecated. 3558287512Sdimstatic inline __ATTRS_o_ai int 3559287512Sdimvec_all_le(vector signed short __a, vector bool short __b) { 3560287512Sdim int __cc; 3561287512Sdim __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc); 3562287512Sdim return __cc == 3; 3563287512Sdim} 3564287512Sdim 3565321369Sdim// This prototype is deprecated. 3566287512Sdimstatic inline __ATTRS_o_ai int 3567287512Sdimvec_all_le(vector bool short __a, vector signed short __b) { 3568287512Sdim int __cc; 3569287512Sdim __builtin_s390_vchhs((vector signed short)__a, __b, &__cc); 3570287512Sdim return __cc == 3; 3571287512Sdim} 3572287512Sdim 3573287512Sdimstatic inline __ATTRS_o_ai int 3574287512Sdimvec_all_le(vector unsigned short __a, vector unsigned short __b) { 3575287512Sdim int __cc; 3576287512Sdim __builtin_s390_vchlhs(__a, __b, &__cc); 3577287512Sdim return __cc == 3; 3578287512Sdim} 3579287512Sdim 3580321369Sdim// This prototype is deprecated. 3581287512Sdimstatic inline __ATTRS_o_ai int 3582287512Sdimvec_all_le(vector unsigned short __a, vector bool short __b) { 3583287512Sdim int __cc; 3584287512Sdim __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc); 3585287512Sdim return __cc == 3; 3586287512Sdim} 3587287512Sdim 3588321369Sdim// This prototype is deprecated. 3589287512Sdimstatic inline __ATTRS_o_ai int 3590287512Sdimvec_all_le(vector bool short __a, vector unsigned short __b) { 3591287512Sdim int __cc; 3592287512Sdim __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc); 3593287512Sdim return __cc == 3; 3594287512Sdim} 3595287512Sdim 3596321369Sdim// This prototype is deprecated. 3597287512Sdimstatic inline __ATTRS_o_ai int 3598287512Sdimvec_all_le(vector bool short __a, vector bool short __b) { 3599287512Sdim int __cc; 3600287512Sdim __builtin_s390_vchlhs((vector unsigned short)__a, 3601287512Sdim (vector unsigned short)__b, &__cc); 3602287512Sdim return __cc == 3; 3603287512Sdim} 3604287512Sdim 3605287512Sdimstatic inline __ATTRS_o_ai int 3606287512Sdimvec_all_le(vector signed int __a, vector signed int __b) { 3607287512Sdim int __cc; 3608287512Sdim __builtin_s390_vchfs(__a, __b, &__cc); 3609287512Sdim return __cc == 3; 3610287512Sdim} 3611287512Sdim 3612321369Sdim// This prototype is deprecated. 3613287512Sdimstatic inline __ATTRS_o_ai int 3614287512Sdimvec_all_le(vector signed int __a, vector bool int __b) { 3615287512Sdim int __cc; 3616287512Sdim __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc); 3617287512Sdim return __cc == 3; 3618287512Sdim} 3619287512Sdim 3620321369Sdim// This prototype is deprecated. 3621287512Sdimstatic inline __ATTRS_o_ai int 3622287512Sdimvec_all_le(vector bool int __a, vector signed int __b) { 3623287512Sdim int __cc; 3624287512Sdim __builtin_s390_vchfs((vector signed int)__a, __b, &__cc); 3625287512Sdim return __cc == 3; 3626287512Sdim} 3627287512Sdim 3628287512Sdimstatic inline __ATTRS_o_ai int 3629287512Sdimvec_all_le(vector unsigned int __a, vector unsigned int __b) { 3630287512Sdim int __cc; 3631287512Sdim __builtin_s390_vchlfs(__a, __b, &__cc); 3632287512Sdim return __cc == 3; 3633287512Sdim} 3634287512Sdim 3635321369Sdim// This prototype is deprecated. 3636287512Sdimstatic inline __ATTRS_o_ai int 3637287512Sdimvec_all_le(vector unsigned int __a, vector bool int __b) { 3638287512Sdim int __cc; 3639287512Sdim __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc); 3640287512Sdim return __cc == 3; 3641287512Sdim} 3642287512Sdim 3643321369Sdim// This prototype is deprecated. 3644287512Sdimstatic inline __ATTRS_o_ai int 3645287512Sdimvec_all_le(vector bool int __a, vector unsigned int __b) { 3646287512Sdim int __cc; 3647287512Sdim __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc); 3648287512Sdim return __cc == 3; 3649287512Sdim} 3650287512Sdim 3651321369Sdim// This prototype is deprecated. 3652287512Sdimstatic inline __ATTRS_o_ai int 3653287512Sdimvec_all_le(vector bool int __a, vector bool int __b) { 3654287512Sdim int __cc; 3655287512Sdim __builtin_s390_vchlfs((vector unsigned int)__a, 3656287512Sdim (vector unsigned int)__b, &__cc); 3657287512Sdim return __cc == 3; 3658287512Sdim} 3659287512Sdim 3660287512Sdimstatic inline __ATTRS_o_ai int 3661287512Sdimvec_all_le(vector signed long long __a, vector signed long long __b) { 3662287512Sdim int __cc; 3663287512Sdim __builtin_s390_vchgs(__a, __b, &__cc); 3664287512Sdim return __cc == 3; 3665287512Sdim} 3666287512Sdim 3667321369Sdim// This prototype is deprecated. 3668287512Sdimstatic inline __ATTRS_o_ai int 3669287512Sdimvec_all_le(vector signed long long __a, vector bool long long __b) { 3670287512Sdim int __cc; 3671287512Sdim __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc); 3672287512Sdim return __cc == 3; 3673287512Sdim} 3674287512Sdim 3675321369Sdim// This prototype is deprecated. 3676287512Sdimstatic inline __ATTRS_o_ai int 3677287512Sdimvec_all_le(vector bool long long __a, vector signed long long __b) { 3678287512Sdim int __cc; 3679287512Sdim __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc); 3680287512Sdim return __cc == 3; 3681287512Sdim} 3682287512Sdim 3683287512Sdimstatic inline __ATTRS_o_ai int 3684287512Sdimvec_all_le(vector unsigned long long __a, vector unsigned long long __b) { 3685287512Sdim int __cc; 3686287512Sdim __builtin_s390_vchlgs(__a, __b, &__cc); 3687287512Sdim return __cc == 3; 3688287512Sdim} 3689287512Sdim 3690321369Sdim// This prototype is deprecated. 3691287512Sdimstatic inline __ATTRS_o_ai int 3692287512Sdimvec_all_le(vector unsigned long long __a, vector bool long long __b) { 3693287512Sdim int __cc; 3694287512Sdim __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc); 3695287512Sdim return __cc == 3; 3696287512Sdim} 3697287512Sdim 3698321369Sdim// This prototype is deprecated. 3699287512Sdimstatic inline __ATTRS_o_ai int 3700287512Sdimvec_all_le(vector bool long long __a, vector unsigned long long __b) { 3701287512Sdim int __cc; 3702287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc); 3703287512Sdim return __cc == 3; 3704287512Sdim} 3705287512Sdim 3706321369Sdim// This prototype is deprecated. 3707287512Sdimstatic inline __ATTRS_o_ai int 3708287512Sdimvec_all_le(vector bool long long __a, vector bool long long __b) { 3709287512Sdim int __cc; 3710287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__a, 3711287512Sdim (vector unsigned long long)__b, &__cc); 3712287512Sdim return __cc == 3; 3713287512Sdim} 3714287512Sdim 3715321369Sdim#if __ARCH__ >= 12 3716287512Sdimstatic inline __ATTRS_o_ai int 3717321369Sdimvec_all_le(vector float __a, vector float __b) { 3718321369Sdim int __cc; 3719321369Sdim __builtin_s390_vfchesbs(__b, __a, &__cc); 3720321369Sdim return __cc == 0; 3721321369Sdim} 3722321369Sdim#endif 3723321369Sdim 3724321369Sdimstatic inline __ATTRS_o_ai int 3725287512Sdimvec_all_le(vector double __a, vector double __b) { 3726287512Sdim int __cc; 3727287512Sdim __builtin_s390_vfchedbs(__b, __a, &__cc); 3728287512Sdim return __cc == 0; 3729287512Sdim} 3730287512Sdim 3731287512Sdim/*-- vec_all_lt -------------------------------------------------------------*/ 3732287512Sdim 3733287512Sdimstatic inline __ATTRS_o_ai int 3734287512Sdimvec_all_lt(vector signed char __a, vector signed char __b) { 3735287512Sdim int __cc; 3736287512Sdim __builtin_s390_vchbs(__b, __a, &__cc); 3737287512Sdim return __cc == 0; 3738287512Sdim} 3739287512Sdim 3740321369Sdim// This prototype is deprecated. 3741287512Sdimstatic inline __ATTRS_o_ai int 3742287512Sdimvec_all_lt(vector signed char __a, vector bool char __b) { 3743287512Sdim int __cc; 3744287512Sdim __builtin_s390_vchbs((vector signed char)__b, __a, &__cc); 3745287512Sdim return __cc == 0; 3746287512Sdim} 3747287512Sdim 3748321369Sdim// This prototype is deprecated. 3749287512Sdimstatic inline __ATTRS_o_ai int 3750287512Sdimvec_all_lt(vector bool char __a, vector signed char __b) { 3751287512Sdim int __cc; 3752287512Sdim __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc); 3753287512Sdim return __cc == 0; 3754287512Sdim} 3755287512Sdim 3756287512Sdimstatic inline __ATTRS_o_ai int 3757287512Sdimvec_all_lt(vector unsigned char __a, vector unsigned char __b) { 3758287512Sdim int __cc; 3759287512Sdim __builtin_s390_vchlbs(__b, __a, &__cc); 3760287512Sdim return __cc == 0; 3761287512Sdim} 3762287512Sdim 3763321369Sdim// This prototype is deprecated. 3764287512Sdimstatic inline __ATTRS_o_ai int 3765287512Sdimvec_all_lt(vector unsigned char __a, vector bool char __b) { 3766287512Sdim int __cc; 3767287512Sdim __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc); 3768287512Sdim return __cc == 0; 3769287512Sdim} 3770287512Sdim 3771321369Sdim// This prototype is deprecated. 3772287512Sdimstatic inline __ATTRS_o_ai int 3773287512Sdimvec_all_lt(vector bool char __a, vector unsigned char __b) { 3774287512Sdim int __cc; 3775287512Sdim __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc); 3776287512Sdim return __cc == 0; 3777287512Sdim} 3778287512Sdim 3779321369Sdim// This prototype is deprecated. 3780287512Sdimstatic inline __ATTRS_o_ai int 3781287512Sdimvec_all_lt(vector bool char __a, vector bool char __b) { 3782287512Sdim int __cc; 3783287512Sdim __builtin_s390_vchlbs((vector unsigned char)__b, 3784287512Sdim (vector unsigned char)__a, &__cc); 3785287512Sdim return __cc == 0; 3786287512Sdim} 3787287512Sdim 3788287512Sdimstatic inline __ATTRS_o_ai int 3789287512Sdimvec_all_lt(vector signed short __a, vector signed short __b) { 3790287512Sdim int __cc; 3791287512Sdim __builtin_s390_vchhs(__b, __a, &__cc); 3792287512Sdim return __cc == 0; 3793287512Sdim} 3794287512Sdim 3795321369Sdim// This prototype is deprecated. 3796287512Sdimstatic inline __ATTRS_o_ai int 3797287512Sdimvec_all_lt(vector signed short __a, vector bool short __b) { 3798287512Sdim int __cc; 3799287512Sdim __builtin_s390_vchhs((vector signed short)__b, __a, &__cc); 3800287512Sdim return __cc == 0; 3801287512Sdim} 3802287512Sdim 3803321369Sdim// This prototype is deprecated. 3804287512Sdimstatic inline __ATTRS_o_ai int 3805287512Sdimvec_all_lt(vector bool short __a, vector signed short __b) { 3806287512Sdim int __cc; 3807287512Sdim __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc); 3808287512Sdim return __cc == 0; 3809287512Sdim} 3810287512Sdim 3811287512Sdimstatic inline __ATTRS_o_ai int 3812287512Sdimvec_all_lt(vector unsigned short __a, vector unsigned short __b) { 3813287512Sdim int __cc; 3814287512Sdim __builtin_s390_vchlhs(__b, __a, &__cc); 3815287512Sdim return __cc == 0; 3816287512Sdim} 3817287512Sdim 3818321369Sdim// This prototype is deprecated. 3819287512Sdimstatic inline __ATTRS_o_ai int 3820287512Sdimvec_all_lt(vector unsigned short __a, vector bool short __b) { 3821287512Sdim int __cc; 3822287512Sdim __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc); 3823287512Sdim return __cc == 0; 3824287512Sdim} 3825287512Sdim 3826321369Sdim// This prototype is deprecated. 3827287512Sdimstatic inline __ATTRS_o_ai int 3828287512Sdimvec_all_lt(vector bool short __a, vector unsigned short __b) { 3829287512Sdim int __cc; 3830287512Sdim __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc); 3831287512Sdim return __cc == 0; 3832287512Sdim} 3833287512Sdim 3834321369Sdim// This prototype is deprecated. 3835287512Sdimstatic inline __ATTRS_o_ai int 3836287512Sdimvec_all_lt(vector bool short __a, vector bool short __b) { 3837287512Sdim int __cc; 3838287512Sdim __builtin_s390_vchlhs((vector unsigned short)__b, 3839287512Sdim (vector unsigned short)__a, &__cc); 3840287512Sdim return __cc == 0; 3841287512Sdim} 3842287512Sdim 3843287512Sdimstatic inline __ATTRS_o_ai int 3844287512Sdimvec_all_lt(vector signed int __a, vector signed int __b) { 3845287512Sdim int __cc; 3846287512Sdim __builtin_s390_vchfs(__b, __a, &__cc); 3847287512Sdim return __cc == 0; 3848287512Sdim} 3849287512Sdim 3850321369Sdim// This prototype is deprecated. 3851287512Sdimstatic inline __ATTRS_o_ai int 3852287512Sdimvec_all_lt(vector signed int __a, vector bool int __b) { 3853287512Sdim int __cc; 3854287512Sdim __builtin_s390_vchfs((vector signed int)__b, __a, &__cc); 3855287512Sdim return __cc == 0; 3856287512Sdim} 3857287512Sdim 3858321369Sdim// This prototype is deprecated. 3859287512Sdimstatic inline __ATTRS_o_ai int 3860287512Sdimvec_all_lt(vector bool int __a, vector signed int __b) { 3861287512Sdim int __cc; 3862287512Sdim __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc); 3863287512Sdim return __cc == 0; 3864287512Sdim} 3865287512Sdim 3866287512Sdimstatic inline __ATTRS_o_ai int 3867287512Sdimvec_all_lt(vector unsigned int __a, vector unsigned int __b) { 3868287512Sdim int __cc; 3869287512Sdim __builtin_s390_vchlfs(__b, __a, &__cc); 3870287512Sdim return __cc == 0; 3871287512Sdim} 3872287512Sdim 3873321369Sdim// This prototype is deprecated. 3874287512Sdimstatic inline __ATTRS_o_ai int 3875287512Sdimvec_all_lt(vector unsigned int __a, vector bool int __b) { 3876287512Sdim int __cc; 3877287512Sdim __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc); 3878287512Sdim return __cc == 0; 3879287512Sdim} 3880287512Sdim 3881321369Sdim// This prototype is deprecated. 3882287512Sdimstatic inline __ATTRS_o_ai int 3883287512Sdimvec_all_lt(vector bool int __a, vector unsigned int __b) { 3884287512Sdim int __cc; 3885287512Sdim __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc); 3886287512Sdim return __cc == 0; 3887287512Sdim} 3888287512Sdim 3889321369Sdim// This prototype is deprecated. 3890287512Sdimstatic inline __ATTRS_o_ai int 3891287512Sdimvec_all_lt(vector bool int __a, vector bool int __b) { 3892287512Sdim int __cc; 3893287512Sdim __builtin_s390_vchlfs((vector unsigned int)__b, 3894287512Sdim (vector unsigned int)__a, &__cc); 3895287512Sdim return __cc == 0; 3896287512Sdim} 3897287512Sdim 3898287512Sdimstatic inline __ATTRS_o_ai int 3899287512Sdimvec_all_lt(vector signed long long __a, vector signed long long __b) { 3900287512Sdim int __cc; 3901287512Sdim __builtin_s390_vchgs(__b, __a, &__cc); 3902287512Sdim return __cc == 0; 3903287512Sdim} 3904287512Sdim 3905321369Sdim// This prototype is deprecated. 3906287512Sdimstatic inline __ATTRS_o_ai int 3907287512Sdimvec_all_lt(vector signed long long __a, vector bool long long __b) { 3908287512Sdim int __cc; 3909287512Sdim __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc); 3910287512Sdim return __cc == 0; 3911287512Sdim} 3912287512Sdim 3913321369Sdim// This prototype is deprecated. 3914287512Sdimstatic inline __ATTRS_o_ai int 3915287512Sdimvec_all_lt(vector bool long long __a, vector signed long long __b) { 3916287512Sdim int __cc; 3917287512Sdim __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc); 3918287512Sdim return __cc == 0; 3919287512Sdim} 3920287512Sdim 3921287512Sdimstatic inline __ATTRS_o_ai int 3922287512Sdimvec_all_lt(vector unsigned long long __a, vector unsigned long long __b) { 3923287512Sdim int __cc; 3924287512Sdim __builtin_s390_vchlgs(__b, __a, &__cc); 3925287512Sdim return __cc == 0; 3926287512Sdim} 3927287512Sdim 3928321369Sdim// This prototype is deprecated. 3929287512Sdimstatic inline __ATTRS_o_ai int 3930287512Sdimvec_all_lt(vector unsigned long long __a, vector bool long long __b) { 3931287512Sdim int __cc; 3932287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc); 3933287512Sdim return __cc == 0; 3934287512Sdim} 3935287512Sdim 3936321369Sdim// This prototype is deprecated. 3937287512Sdimstatic inline __ATTRS_o_ai int 3938287512Sdimvec_all_lt(vector bool long long __a, vector unsigned long long __b) { 3939287512Sdim int __cc; 3940287512Sdim __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc); 3941287512Sdim return __cc == 0; 3942287512Sdim} 3943287512Sdim 3944321369Sdim// This prototype is deprecated. 3945287512Sdimstatic inline __ATTRS_o_ai int 3946287512Sdimvec_all_lt(vector bool long long __a, vector bool long long __b) { 3947287512Sdim int __cc; 3948287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__b, 3949287512Sdim (vector unsigned long long)__a, &__cc); 3950287512Sdim return __cc == 0; 3951287512Sdim} 3952287512Sdim 3953321369Sdim#if __ARCH__ >= 12 3954287512Sdimstatic inline __ATTRS_o_ai int 3955321369Sdimvec_all_lt(vector float __a, vector float __b) { 3956321369Sdim int __cc; 3957321369Sdim __builtin_s390_vfchsbs(__b, __a, &__cc); 3958321369Sdim return __cc == 0; 3959321369Sdim} 3960321369Sdim#endif 3961321369Sdim 3962321369Sdimstatic inline __ATTRS_o_ai int 3963287512Sdimvec_all_lt(vector double __a, vector double __b) { 3964287512Sdim int __cc; 3965287512Sdim __builtin_s390_vfchdbs(__b, __a, &__cc); 3966287512Sdim return __cc == 0; 3967287512Sdim} 3968287512Sdim 3969287512Sdim/*-- vec_all_nge ------------------------------------------------------------*/ 3970287512Sdim 3971321369Sdim#if __ARCH__ >= 12 3972321369Sdimstatic inline __ATTRS_o_ai int 3973321369Sdimvec_all_nge(vector float __a, vector float __b) { 3974321369Sdim int __cc; 3975321369Sdim __builtin_s390_vfchesbs(__a, __b, &__cc); 3976321369Sdim return __cc == 3; 3977321369Sdim} 3978321369Sdim#endif 3979321369Sdim 3980321369Sdimstatic inline __ATTRS_o_ai int 3981287512Sdimvec_all_nge(vector double __a, vector double __b) { 3982287512Sdim int __cc; 3983287512Sdim __builtin_s390_vfchedbs(__a, __b, &__cc); 3984287512Sdim return __cc == 3; 3985287512Sdim} 3986287512Sdim 3987287512Sdim/*-- vec_all_ngt ------------------------------------------------------------*/ 3988287512Sdim 3989321369Sdim#if __ARCH__ >= 12 3990321369Sdimstatic inline __ATTRS_o_ai int 3991321369Sdimvec_all_ngt(vector float __a, vector float __b) { 3992321369Sdim int __cc; 3993321369Sdim __builtin_s390_vfchsbs(__a, __b, &__cc); 3994321369Sdim return __cc == 3; 3995321369Sdim} 3996321369Sdim#endif 3997321369Sdim 3998321369Sdimstatic inline __ATTRS_o_ai int 3999287512Sdimvec_all_ngt(vector double __a, vector double __b) { 4000287512Sdim int __cc; 4001287512Sdim __builtin_s390_vfchdbs(__a, __b, &__cc); 4002287512Sdim return __cc == 3; 4003287512Sdim} 4004287512Sdim 4005287512Sdim/*-- vec_all_nle ------------------------------------------------------------*/ 4006287512Sdim 4007321369Sdim#if __ARCH__ >= 12 4008321369Sdimstatic inline __ATTRS_o_ai int 4009321369Sdimvec_all_nle(vector float __a, vector float __b) { 4010321369Sdim int __cc; 4011321369Sdim __builtin_s390_vfchesbs(__b, __a, &__cc); 4012321369Sdim return __cc == 3; 4013321369Sdim} 4014321369Sdim#endif 4015321369Sdim 4016321369Sdimstatic inline __ATTRS_o_ai int 4017287512Sdimvec_all_nle(vector double __a, vector double __b) { 4018287512Sdim int __cc; 4019287512Sdim __builtin_s390_vfchedbs(__b, __a, &__cc); 4020287512Sdim return __cc == 3; 4021287512Sdim} 4022287512Sdim 4023287512Sdim/*-- vec_all_nlt ------------------------------------------------------------*/ 4024287512Sdim 4025321369Sdim#if __ARCH__ >= 12 4026321369Sdimstatic inline __ATTRS_o_ai int 4027321369Sdimvec_all_nlt(vector float __a, vector float __b) { 4028321369Sdim int __cc; 4029321369Sdim __builtin_s390_vfchsbs(__b, __a, &__cc); 4030321369Sdim return __cc == 3; 4031321369Sdim} 4032321369Sdim#endif 4033321369Sdim 4034321369Sdimstatic inline __ATTRS_o_ai int 4035287512Sdimvec_all_nlt(vector double __a, vector double __b) { 4036287512Sdim int __cc; 4037287512Sdim __builtin_s390_vfchdbs(__b, __a, &__cc); 4038287512Sdim return __cc == 3; 4039287512Sdim} 4040287512Sdim 4041287512Sdim/*-- vec_all_nan ------------------------------------------------------------*/ 4042287512Sdim 4043321369Sdim#if __ARCH__ >= 12 4044321369Sdimstatic inline __ATTRS_o_ai int 4045321369Sdimvec_all_nan(vector float __a) { 4046321369Sdim int __cc; 4047321369Sdim __builtin_s390_vftcisb(__a, 15, &__cc); 4048321369Sdim return __cc == 0; 4049321369Sdim} 4050321369Sdim#endif 4051321369Sdim 4052321369Sdimstatic inline __ATTRS_o_ai int 4053287512Sdimvec_all_nan(vector double __a) { 4054287512Sdim int __cc; 4055287512Sdim __builtin_s390_vftcidb(__a, 15, &__cc); 4056287512Sdim return __cc == 0; 4057287512Sdim} 4058287512Sdim 4059287512Sdim/*-- vec_all_numeric --------------------------------------------------------*/ 4060287512Sdim 4061321369Sdim#if __ARCH__ >= 12 4062321369Sdimstatic inline __ATTRS_o_ai int 4063321369Sdimvec_all_numeric(vector float __a) { 4064321369Sdim int __cc; 4065321369Sdim __builtin_s390_vftcisb(__a, 15, &__cc); 4066321369Sdim return __cc == 3; 4067321369Sdim} 4068321369Sdim#endif 4069321369Sdim 4070321369Sdimstatic inline __ATTRS_o_ai int 4071287512Sdimvec_all_numeric(vector double __a) { 4072287512Sdim int __cc; 4073287512Sdim __builtin_s390_vftcidb(__a, 15, &__cc); 4074287512Sdim return __cc == 3; 4075287512Sdim} 4076287512Sdim 4077287512Sdim/*-- vec_any_eq -------------------------------------------------------------*/ 4078287512Sdim 4079287512Sdimstatic inline __ATTRS_o_ai int 4080287512Sdimvec_any_eq(vector signed char __a, vector signed char __b) { 4081287512Sdim int __cc; 4082287512Sdim __builtin_s390_vceqbs(__a, __b, &__cc); 4083287512Sdim return __cc <= 1; 4084287512Sdim} 4085287512Sdim 4086321369Sdim// This prototype is deprecated. 4087287512Sdimstatic inline __ATTRS_o_ai int 4088287512Sdimvec_any_eq(vector signed char __a, vector bool char __b) { 4089287512Sdim int __cc; 4090287512Sdim __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc); 4091287512Sdim return __cc <= 1; 4092287512Sdim} 4093287512Sdim 4094321369Sdim// This prototype is deprecated. 4095287512Sdimstatic inline __ATTRS_o_ai int 4096287512Sdimvec_any_eq(vector bool char __a, vector signed char __b) { 4097287512Sdim int __cc; 4098287512Sdim __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc); 4099287512Sdim return __cc <= 1; 4100287512Sdim} 4101287512Sdim 4102287512Sdimstatic inline __ATTRS_o_ai int 4103287512Sdimvec_any_eq(vector unsigned char __a, vector unsigned char __b) { 4104287512Sdim int __cc; 4105287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 4106287512Sdim (vector signed char)__b, &__cc); 4107287512Sdim return __cc <= 1; 4108287512Sdim} 4109287512Sdim 4110321369Sdim// This prototype is deprecated. 4111287512Sdimstatic inline __ATTRS_o_ai int 4112287512Sdimvec_any_eq(vector unsigned char __a, vector bool char __b) { 4113287512Sdim int __cc; 4114287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 4115287512Sdim (vector signed char)__b, &__cc); 4116287512Sdim return __cc <= 1; 4117287512Sdim} 4118287512Sdim 4119321369Sdim// This prototype is deprecated. 4120287512Sdimstatic inline __ATTRS_o_ai int 4121287512Sdimvec_any_eq(vector bool char __a, vector unsigned char __b) { 4122287512Sdim int __cc; 4123287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 4124287512Sdim (vector signed char)__b, &__cc); 4125287512Sdim return __cc <= 1; 4126287512Sdim} 4127287512Sdim 4128287512Sdimstatic inline __ATTRS_o_ai int 4129287512Sdimvec_any_eq(vector bool char __a, vector bool char __b) { 4130287512Sdim int __cc; 4131287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 4132287512Sdim (vector signed char)__b, &__cc); 4133287512Sdim return __cc <= 1; 4134287512Sdim} 4135287512Sdim 4136287512Sdimstatic inline __ATTRS_o_ai int 4137287512Sdimvec_any_eq(vector signed short __a, vector signed short __b) { 4138287512Sdim int __cc; 4139287512Sdim __builtin_s390_vceqhs(__a, __b, &__cc); 4140287512Sdim return __cc <= 1; 4141287512Sdim} 4142287512Sdim 4143321369Sdim// This prototype is deprecated. 4144287512Sdimstatic inline __ATTRS_o_ai int 4145287512Sdimvec_any_eq(vector signed short __a, vector bool short __b) { 4146287512Sdim int __cc; 4147287512Sdim __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc); 4148287512Sdim return __cc <= 1; 4149287512Sdim} 4150287512Sdim 4151321369Sdim// This prototype is deprecated. 4152287512Sdimstatic inline __ATTRS_o_ai int 4153287512Sdimvec_any_eq(vector bool short __a, vector signed short __b) { 4154287512Sdim int __cc; 4155287512Sdim __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc); 4156287512Sdim return __cc <= 1; 4157287512Sdim} 4158287512Sdim 4159287512Sdimstatic inline __ATTRS_o_ai int 4160287512Sdimvec_any_eq(vector unsigned short __a, vector unsigned short __b) { 4161287512Sdim int __cc; 4162287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 4163287512Sdim (vector signed short)__b, &__cc); 4164287512Sdim return __cc <= 1; 4165287512Sdim} 4166287512Sdim 4167321369Sdim// This prototype is deprecated. 4168287512Sdimstatic inline __ATTRS_o_ai int 4169287512Sdimvec_any_eq(vector unsigned short __a, vector bool short __b) { 4170287512Sdim int __cc; 4171287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 4172287512Sdim (vector signed short)__b, &__cc); 4173287512Sdim return __cc <= 1; 4174287512Sdim} 4175287512Sdim 4176321369Sdim// This prototype is deprecated. 4177287512Sdimstatic inline __ATTRS_o_ai int 4178287512Sdimvec_any_eq(vector bool short __a, vector unsigned short __b) { 4179287512Sdim int __cc; 4180287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 4181287512Sdim (vector signed short)__b, &__cc); 4182287512Sdim return __cc <= 1; 4183287512Sdim} 4184287512Sdim 4185287512Sdimstatic inline __ATTRS_o_ai int 4186287512Sdimvec_any_eq(vector bool short __a, vector bool short __b) { 4187287512Sdim int __cc; 4188287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 4189287512Sdim (vector signed short)__b, &__cc); 4190287512Sdim return __cc <= 1; 4191287512Sdim} 4192287512Sdim 4193287512Sdimstatic inline __ATTRS_o_ai int 4194287512Sdimvec_any_eq(vector signed int __a, vector signed int __b) { 4195287512Sdim int __cc; 4196287512Sdim __builtin_s390_vceqfs(__a, __b, &__cc); 4197287512Sdim return __cc <= 1; 4198287512Sdim} 4199287512Sdim 4200321369Sdim// This prototype is deprecated. 4201287512Sdimstatic inline __ATTRS_o_ai int 4202287512Sdimvec_any_eq(vector signed int __a, vector bool int __b) { 4203287512Sdim int __cc; 4204287512Sdim __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc); 4205287512Sdim return __cc <= 1; 4206287512Sdim} 4207287512Sdim 4208321369Sdim// This prototype is deprecated. 4209287512Sdimstatic inline __ATTRS_o_ai int 4210287512Sdimvec_any_eq(vector bool int __a, vector signed int __b) { 4211287512Sdim int __cc; 4212287512Sdim __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc); 4213287512Sdim return __cc <= 1; 4214287512Sdim} 4215287512Sdim 4216287512Sdimstatic inline __ATTRS_o_ai int 4217287512Sdimvec_any_eq(vector unsigned int __a, vector unsigned int __b) { 4218287512Sdim int __cc; 4219287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 4220287512Sdim (vector signed int)__b, &__cc); 4221287512Sdim return __cc <= 1; 4222287512Sdim} 4223287512Sdim 4224321369Sdim// This prototype is deprecated. 4225287512Sdimstatic inline __ATTRS_o_ai int 4226287512Sdimvec_any_eq(vector unsigned int __a, vector bool int __b) { 4227287512Sdim int __cc; 4228287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 4229287512Sdim (vector signed int)__b, &__cc); 4230287512Sdim return __cc <= 1; 4231287512Sdim} 4232287512Sdim 4233321369Sdim// This prototype is deprecated. 4234287512Sdimstatic inline __ATTRS_o_ai int 4235287512Sdimvec_any_eq(vector bool int __a, vector unsigned int __b) { 4236287512Sdim int __cc; 4237287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 4238287512Sdim (vector signed int)__b, &__cc); 4239287512Sdim return __cc <= 1; 4240287512Sdim} 4241287512Sdim 4242287512Sdimstatic inline __ATTRS_o_ai int 4243287512Sdimvec_any_eq(vector bool int __a, vector bool int __b) { 4244287512Sdim int __cc; 4245287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 4246287512Sdim (vector signed int)__b, &__cc); 4247287512Sdim return __cc <= 1; 4248287512Sdim} 4249287512Sdim 4250287512Sdimstatic inline __ATTRS_o_ai int 4251287512Sdimvec_any_eq(vector signed long long __a, vector signed long long __b) { 4252287512Sdim int __cc; 4253287512Sdim __builtin_s390_vceqgs(__a, __b, &__cc); 4254287512Sdim return __cc <= 1; 4255287512Sdim} 4256287512Sdim 4257321369Sdim// This prototype is deprecated. 4258287512Sdimstatic inline __ATTRS_o_ai int 4259287512Sdimvec_any_eq(vector signed long long __a, vector bool long long __b) { 4260287512Sdim int __cc; 4261287512Sdim __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc); 4262287512Sdim return __cc <= 1; 4263287512Sdim} 4264287512Sdim 4265321369Sdim// This prototype is deprecated. 4266287512Sdimstatic inline __ATTRS_o_ai int 4267287512Sdimvec_any_eq(vector bool long long __a, vector signed long long __b) { 4268287512Sdim int __cc; 4269287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc); 4270287512Sdim return __cc <= 1; 4271287512Sdim} 4272287512Sdim 4273287512Sdimstatic inline __ATTRS_o_ai int 4274287512Sdimvec_any_eq(vector unsigned long long __a, vector unsigned long long __b) { 4275287512Sdim int __cc; 4276287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 4277287512Sdim (vector signed long long)__b, &__cc); 4278287512Sdim return __cc <= 1; 4279287512Sdim} 4280287512Sdim 4281321369Sdim// This prototype is deprecated. 4282287512Sdimstatic inline __ATTRS_o_ai int 4283287512Sdimvec_any_eq(vector unsigned long long __a, vector bool long long __b) { 4284287512Sdim int __cc; 4285287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 4286287512Sdim (vector signed long long)__b, &__cc); 4287287512Sdim return __cc <= 1; 4288287512Sdim} 4289287512Sdim 4290321369Sdim// This prototype is deprecated. 4291287512Sdimstatic inline __ATTRS_o_ai int 4292287512Sdimvec_any_eq(vector bool long long __a, vector unsigned long long __b) { 4293287512Sdim int __cc; 4294287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 4295287512Sdim (vector signed long long)__b, &__cc); 4296287512Sdim return __cc <= 1; 4297287512Sdim} 4298287512Sdim 4299287512Sdimstatic inline __ATTRS_o_ai int 4300287512Sdimvec_any_eq(vector bool long long __a, vector bool long long __b) { 4301287512Sdim int __cc; 4302287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 4303287512Sdim (vector signed long long)__b, &__cc); 4304287512Sdim return __cc <= 1; 4305287512Sdim} 4306287512Sdim 4307321369Sdim#if __ARCH__ >= 12 4308287512Sdimstatic inline __ATTRS_o_ai int 4309321369Sdimvec_any_eq(vector float __a, vector float __b) { 4310321369Sdim int __cc; 4311321369Sdim __builtin_s390_vfcesbs(__a, __b, &__cc); 4312321369Sdim return __cc <= 1; 4313321369Sdim} 4314321369Sdim#endif 4315321369Sdim 4316321369Sdimstatic inline __ATTRS_o_ai int 4317287512Sdimvec_any_eq(vector double __a, vector double __b) { 4318287512Sdim int __cc; 4319287512Sdim __builtin_s390_vfcedbs(__a, __b, &__cc); 4320287512Sdim return __cc <= 1; 4321287512Sdim} 4322287512Sdim 4323287512Sdim/*-- vec_any_ne -------------------------------------------------------------*/ 4324287512Sdim 4325287512Sdimstatic inline __ATTRS_o_ai int 4326287512Sdimvec_any_ne(vector signed char __a, vector signed char __b) { 4327287512Sdim int __cc; 4328287512Sdim __builtin_s390_vceqbs(__a, __b, &__cc); 4329287512Sdim return __cc != 0; 4330287512Sdim} 4331287512Sdim 4332321369Sdim// This prototype is deprecated. 4333287512Sdimstatic inline __ATTRS_o_ai int 4334287512Sdimvec_any_ne(vector signed char __a, vector bool char __b) { 4335287512Sdim int __cc; 4336287512Sdim __builtin_s390_vceqbs(__a, (vector signed char)__b, &__cc); 4337287512Sdim return __cc != 0; 4338287512Sdim} 4339287512Sdim 4340321369Sdim// This prototype is deprecated. 4341287512Sdimstatic inline __ATTRS_o_ai int 4342287512Sdimvec_any_ne(vector bool char __a, vector signed char __b) { 4343287512Sdim int __cc; 4344287512Sdim __builtin_s390_vceqbs((vector signed char)__a, __b, &__cc); 4345287512Sdim return __cc != 0; 4346287512Sdim} 4347287512Sdim 4348287512Sdimstatic inline __ATTRS_o_ai int 4349287512Sdimvec_any_ne(vector unsigned char __a, vector unsigned char __b) { 4350287512Sdim int __cc; 4351287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 4352287512Sdim (vector signed char)__b, &__cc); 4353287512Sdim return __cc != 0; 4354287512Sdim} 4355287512Sdim 4356321369Sdim// This prototype is deprecated. 4357287512Sdimstatic inline __ATTRS_o_ai int 4358287512Sdimvec_any_ne(vector unsigned char __a, vector bool char __b) { 4359287512Sdim int __cc; 4360287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 4361287512Sdim (vector signed char)__b, &__cc); 4362287512Sdim return __cc != 0; 4363287512Sdim} 4364287512Sdim 4365321369Sdim// This prototype is deprecated. 4366287512Sdimstatic inline __ATTRS_o_ai int 4367287512Sdimvec_any_ne(vector bool char __a, vector unsigned char __b) { 4368287512Sdim int __cc; 4369287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 4370287512Sdim (vector signed char)__b, &__cc); 4371287512Sdim return __cc != 0; 4372287512Sdim} 4373287512Sdim 4374287512Sdimstatic inline __ATTRS_o_ai int 4375287512Sdimvec_any_ne(vector bool char __a, vector bool char __b) { 4376287512Sdim int __cc; 4377287512Sdim __builtin_s390_vceqbs((vector signed char)__a, 4378287512Sdim (vector signed char)__b, &__cc); 4379287512Sdim return __cc != 0; 4380287512Sdim} 4381287512Sdim 4382287512Sdimstatic inline __ATTRS_o_ai int 4383287512Sdimvec_any_ne(vector signed short __a, vector signed short __b) { 4384287512Sdim int __cc; 4385287512Sdim __builtin_s390_vceqhs(__a, __b, &__cc); 4386287512Sdim return __cc != 0; 4387287512Sdim} 4388287512Sdim 4389321369Sdim// This prototype is deprecated. 4390287512Sdimstatic inline __ATTRS_o_ai int 4391287512Sdimvec_any_ne(vector signed short __a, vector bool short __b) { 4392287512Sdim int __cc; 4393287512Sdim __builtin_s390_vceqhs(__a, (vector signed short)__b, &__cc); 4394287512Sdim return __cc != 0; 4395287512Sdim} 4396287512Sdim 4397321369Sdim// This prototype is deprecated. 4398287512Sdimstatic inline __ATTRS_o_ai int 4399287512Sdimvec_any_ne(vector bool short __a, vector signed short __b) { 4400287512Sdim int __cc; 4401287512Sdim __builtin_s390_vceqhs((vector signed short)__a, __b, &__cc); 4402287512Sdim return __cc != 0; 4403287512Sdim} 4404287512Sdim 4405287512Sdimstatic inline __ATTRS_o_ai int 4406287512Sdimvec_any_ne(vector unsigned short __a, vector unsigned short __b) { 4407287512Sdim int __cc; 4408287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 4409287512Sdim (vector signed short)__b, &__cc); 4410287512Sdim return __cc != 0; 4411287512Sdim} 4412287512Sdim 4413321369Sdim// This prototype is deprecated. 4414287512Sdimstatic inline __ATTRS_o_ai int 4415287512Sdimvec_any_ne(vector unsigned short __a, vector bool short __b) { 4416287512Sdim int __cc; 4417287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 4418287512Sdim (vector signed short)__b, &__cc); 4419287512Sdim return __cc != 0; 4420287512Sdim} 4421287512Sdim 4422321369Sdim// This prototype is deprecated. 4423287512Sdimstatic inline __ATTRS_o_ai int 4424287512Sdimvec_any_ne(vector bool short __a, vector unsigned short __b) { 4425287512Sdim int __cc; 4426287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 4427287512Sdim (vector signed short)__b, &__cc); 4428287512Sdim return __cc != 0; 4429287512Sdim} 4430287512Sdim 4431287512Sdimstatic inline __ATTRS_o_ai int 4432287512Sdimvec_any_ne(vector bool short __a, vector bool short __b) { 4433287512Sdim int __cc; 4434287512Sdim __builtin_s390_vceqhs((vector signed short)__a, 4435287512Sdim (vector signed short)__b, &__cc); 4436287512Sdim return __cc != 0; 4437287512Sdim} 4438287512Sdim 4439287512Sdimstatic inline __ATTRS_o_ai int 4440287512Sdimvec_any_ne(vector signed int __a, vector signed int __b) { 4441287512Sdim int __cc; 4442287512Sdim __builtin_s390_vceqfs(__a, __b, &__cc); 4443287512Sdim return __cc != 0; 4444287512Sdim} 4445287512Sdim 4446321369Sdim// This prototype is deprecated. 4447287512Sdimstatic inline __ATTRS_o_ai int 4448287512Sdimvec_any_ne(vector signed int __a, vector bool int __b) { 4449287512Sdim int __cc; 4450287512Sdim __builtin_s390_vceqfs(__a, (vector signed int)__b, &__cc); 4451287512Sdim return __cc != 0; 4452287512Sdim} 4453287512Sdim 4454321369Sdim// This prototype is deprecated. 4455287512Sdimstatic inline __ATTRS_o_ai int 4456287512Sdimvec_any_ne(vector bool int __a, vector signed int __b) { 4457287512Sdim int __cc; 4458287512Sdim __builtin_s390_vceqfs((vector signed int)__a, __b, &__cc); 4459287512Sdim return __cc != 0; 4460287512Sdim} 4461287512Sdim 4462287512Sdimstatic inline __ATTRS_o_ai int 4463287512Sdimvec_any_ne(vector unsigned int __a, vector unsigned int __b) { 4464287512Sdim int __cc; 4465287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 4466287512Sdim (vector signed int)__b, &__cc); 4467287512Sdim return __cc != 0; 4468287512Sdim} 4469287512Sdim 4470321369Sdim// This prototype is deprecated. 4471287512Sdimstatic inline __ATTRS_o_ai int 4472287512Sdimvec_any_ne(vector unsigned int __a, vector bool int __b) { 4473287512Sdim int __cc; 4474287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 4475287512Sdim (vector signed int)__b, &__cc); 4476287512Sdim return __cc != 0; 4477287512Sdim} 4478287512Sdim 4479321369Sdim// This prototype is deprecated. 4480287512Sdimstatic inline __ATTRS_o_ai int 4481287512Sdimvec_any_ne(vector bool int __a, vector unsigned int __b) { 4482287512Sdim int __cc; 4483287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 4484287512Sdim (vector signed int)__b, &__cc); 4485287512Sdim return __cc != 0; 4486287512Sdim} 4487287512Sdim 4488287512Sdimstatic inline __ATTRS_o_ai int 4489287512Sdimvec_any_ne(vector bool int __a, vector bool int __b) { 4490287512Sdim int __cc; 4491287512Sdim __builtin_s390_vceqfs((vector signed int)__a, 4492287512Sdim (vector signed int)__b, &__cc); 4493287512Sdim return __cc != 0; 4494287512Sdim} 4495287512Sdim 4496287512Sdimstatic inline __ATTRS_o_ai int 4497287512Sdimvec_any_ne(vector signed long long __a, vector signed long long __b) { 4498287512Sdim int __cc; 4499287512Sdim __builtin_s390_vceqgs(__a, __b, &__cc); 4500287512Sdim return __cc != 0; 4501287512Sdim} 4502287512Sdim 4503321369Sdim// This prototype is deprecated. 4504287512Sdimstatic inline __ATTRS_o_ai int 4505287512Sdimvec_any_ne(vector signed long long __a, vector bool long long __b) { 4506287512Sdim int __cc; 4507287512Sdim __builtin_s390_vceqgs(__a, (vector signed long long)__b, &__cc); 4508287512Sdim return __cc != 0; 4509287512Sdim} 4510287512Sdim 4511321369Sdim// This prototype is deprecated. 4512287512Sdimstatic inline __ATTRS_o_ai int 4513287512Sdimvec_any_ne(vector bool long long __a, vector signed long long __b) { 4514287512Sdim int __cc; 4515287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, __b, &__cc); 4516287512Sdim return __cc != 0; 4517287512Sdim} 4518287512Sdim 4519287512Sdimstatic inline __ATTRS_o_ai int 4520287512Sdimvec_any_ne(vector unsigned long long __a, vector unsigned long long __b) { 4521287512Sdim int __cc; 4522287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 4523287512Sdim (vector signed long long)__b, &__cc); 4524287512Sdim return __cc != 0; 4525287512Sdim} 4526287512Sdim 4527321369Sdim// This prototype is deprecated. 4528287512Sdimstatic inline __ATTRS_o_ai int 4529287512Sdimvec_any_ne(vector unsigned long long __a, vector bool long long __b) { 4530287512Sdim int __cc; 4531287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 4532287512Sdim (vector signed long long)__b, &__cc); 4533287512Sdim return __cc != 0; 4534287512Sdim} 4535287512Sdim 4536321369Sdim// This prototype is deprecated. 4537287512Sdimstatic inline __ATTRS_o_ai int 4538287512Sdimvec_any_ne(vector bool long long __a, vector unsigned long long __b) { 4539287512Sdim int __cc; 4540287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 4541287512Sdim (vector signed long long)__b, &__cc); 4542287512Sdim return __cc != 0; 4543287512Sdim} 4544287512Sdim 4545287512Sdimstatic inline __ATTRS_o_ai int 4546287512Sdimvec_any_ne(vector bool long long __a, vector bool long long __b) { 4547287512Sdim int __cc; 4548287512Sdim __builtin_s390_vceqgs((vector signed long long)__a, 4549287512Sdim (vector signed long long)__b, &__cc); 4550287512Sdim return __cc != 0; 4551287512Sdim} 4552287512Sdim 4553321369Sdim#if __ARCH__ >= 12 4554287512Sdimstatic inline __ATTRS_o_ai int 4555321369Sdimvec_any_ne(vector float __a, vector float __b) { 4556321369Sdim int __cc; 4557321369Sdim __builtin_s390_vfcesbs(__a, __b, &__cc); 4558321369Sdim return __cc != 0; 4559321369Sdim} 4560321369Sdim#endif 4561321369Sdim 4562321369Sdimstatic inline __ATTRS_o_ai int 4563287512Sdimvec_any_ne(vector double __a, vector double __b) { 4564287512Sdim int __cc; 4565287512Sdim __builtin_s390_vfcedbs(__a, __b, &__cc); 4566287512Sdim return __cc != 0; 4567287512Sdim} 4568287512Sdim 4569287512Sdim/*-- vec_any_ge -------------------------------------------------------------*/ 4570287512Sdim 4571287512Sdimstatic inline __ATTRS_o_ai int 4572287512Sdimvec_any_ge(vector signed char __a, vector signed char __b) { 4573287512Sdim int __cc; 4574287512Sdim __builtin_s390_vchbs(__b, __a, &__cc); 4575287512Sdim return __cc != 0; 4576287512Sdim} 4577287512Sdim 4578321369Sdim// This prototype is deprecated. 4579287512Sdimstatic inline __ATTRS_o_ai int 4580287512Sdimvec_any_ge(vector signed char __a, vector bool char __b) { 4581287512Sdim int __cc; 4582287512Sdim __builtin_s390_vchbs((vector signed char)__b, __a, &__cc); 4583287512Sdim return __cc != 0; 4584287512Sdim} 4585287512Sdim 4586321369Sdim// This prototype is deprecated. 4587287512Sdimstatic inline __ATTRS_o_ai int 4588287512Sdimvec_any_ge(vector bool char __a, vector signed char __b) { 4589287512Sdim int __cc; 4590287512Sdim __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc); 4591287512Sdim return __cc != 0; 4592287512Sdim} 4593287512Sdim 4594287512Sdimstatic inline __ATTRS_o_ai int 4595287512Sdimvec_any_ge(vector unsigned char __a, vector unsigned char __b) { 4596287512Sdim int __cc; 4597287512Sdim __builtin_s390_vchlbs(__b, __a, &__cc); 4598287512Sdim return __cc != 0; 4599287512Sdim} 4600287512Sdim 4601321369Sdim// This prototype is deprecated. 4602287512Sdimstatic inline __ATTRS_o_ai int 4603287512Sdimvec_any_ge(vector unsigned char __a, vector bool char __b) { 4604287512Sdim int __cc; 4605287512Sdim __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc); 4606287512Sdim return __cc != 0; 4607287512Sdim} 4608287512Sdim 4609321369Sdim// This prototype is deprecated. 4610287512Sdimstatic inline __ATTRS_o_ai int 4611287512Sdimvec_any_ge(vector bool char __a, vector unsigned char __b) { 4612287512Sdim int __cc; 4613287512Sdim __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc); 4614287512Sdim return __cc != 0; 4615287512Sdim} 4616287512Sdim 4617321369Sdim// This prototype is deprecated. 4618287512Sdimstatic inline __ATTRS_o_ai int 4619287512Sdimvec_any_ge(vector bool char __a, vector bool char __b) { 4620287512Sdim int __cc; 4621287512Sdim __builtin_s390_vchlbs((vector unsigned char)__b, 4622287512Sdim (vector unsigned char)__a, &__cc); 4623287512Sdim return __cc != 0; 4624287512Sdim} 4625287512Sdim 4626287512Sdimstatic inline __ATTRS_o_ai int 4627287512Sdimvec_any_ge(vector signed short __a, vector signed short __b) { 4628287512Sdim int __cc; 4629287512Sdim __builtin_s390_vchhs(__b, __a, &__cc); 4630287512Sdim return __cc != 0; 4631287512Sdim} 4632287512Sdim 4633321369Sdim// This prototype is deprecated. 4634287512Sdimstatic inline __ATTRS_o_ai int 4635287512Sdimvec_any_ge(vector signed short __a, vector bool short __b) { 4636287512Sdim int __cc; 4637287512Sdim __builtin_s390_vchhs((vector signed short)__b, __a, &__cc); 4638287512Sdim return __cc != 0; 4639287512Sdim} 4640287512Sdim 4641321369Sdim// This prototype is deprecated. 4642287512Sdimstatic inline __ATTRS_o_ai int 4643287512Sdimvec_any_ge(vector bool short __a, vector signed short __b) { 4644287512Sdim int __cc; 4645287512Sdim __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc); 4646287512Sdim return __cc != 0; 4647287512Sdim} 4648287512Sdim 4649287512Sdimstatic inline __ATTRS_o_ai int 4650287512Sdimvec_any_ge(vector unsigned short __a, vector unsigned short __b) { 4651287512Sdim int __cc; 4652287512Sdim __builtin_s390_vchlhs(__b, __a, &__cc); 4653287512Sdim return __cc != 0; 4654287512Sdim} 4655287512Sdim 4656321369Sdim// This prototype is deprecated. 4657287512Sdimstatic inline __ATTRS_o_ai int 4658287512Sdimvec_any_ge(vector unsigned short __a, vector bool short __b) { 4659287512Sdim int __cc; 4660287512Sdim __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc); 4661287512Sdim return __cc != 0; 4662287512Sdim} 4663287512Sdim 4664321369Sdim// This prototype is deprecated. 4665287512Sdimstatic inline __ATTRS_o_ai int 4666287512Sdimvec_any_ge(vector bool short __a, vector unsigned short __b) { 4667287512Sdim int __cc; 4668287512Sdim __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc); 4669287512Sdim return __cc != 0; 4670287512Sdim} 4671287512Sdim 4672321369Sdim// This prototype is deprecated. 4673287512Sdimstatic inline __ATTRS_o_ai int 4674287512Sdimvec_any_ge(vector bool short __a, vector bool short __b) { 4675287512Sdim int __cc; 4676287512Sdim __builtin_s390_vchlhs((vector unsigned short)__b, 4677287512Sdim (vector unsigned short)__a, &__cc); 4678287512Sdim return __cc != 0; 4679287512Sdim} 4680287512Sdim 4681287512Sdimstatic inline __ATTRS_o_ai int 4682287512Sdimvec_any_ge(vector signed int __a, vector signed int __b) { 4683287512Sdim int __cc; 4684287512Sdim __builtin_s390_vchfs(__b, __a, &__cc); 4685287512Sdim return __cc != 0; 4686287512Sdim} 4687287512Sdim 4688321369Sdim// This prototype is deprecated. 4689287512Sdimstatic inline __ATTRS_o_ai int 4690287512Sdimvec_any_ge(vector signed int __a, vector bool int __b) { 4691287512Sdim int __cc; 4692287512Sdim __builtin_s390_vchfs((vector signed int)__b, __a, &__cc); 4693287512Sdim return __cc != 0; 4694287512Sdim} 4695287512Sdim 4696321369Sdim// This prototype is deprecated. 4697287512Sdimstatic inline __ATTRS_o_ai int 4698287512Sdimvec_any_ge(vector bool int __a, vector signed int __b) { 4699287512Sdim int __cc; 4700287512Sdim __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc); 4701287512Sdim return __cc != 0; 4702287512Sdim} 4703287512Sdim 4704287512Sdimstatic inline __ATTRS_o_ai int 4705287512Sdimvec_any_ge(vector unsigned int __a, vector unsigned int __b) { 4706287512Sdim int __cc; 4707287512Sdim __builtin_s390_vchlfs(__b, __a, &__cc); 4708287512Sdim return __cc != 0; 4709287512Sdim} 4710287512Sdim 4711321369Sdim// This prototype is deprecated. 4712287512Sdimstatic inline __ATTRS_o_ai int 4713287512Sdimvec_any_ge(vector unsigned int __a, vector bool int __b) { 4714287512Sdim int __cc; 4715287512Sdim __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc); 4716287512Sdim return __cc != 0; 4717287512Sdim} 4718287512Sdim 4719321369Sdim// This prototype is deprecated. 4720287512Sdimstatic inline __ATTRS_o_ai int 4721287512Sdimvec_any_ge(vector bool int __a, vector unsigned int __b) { 4722287512Sdim int __cc; 4723287512Sdim __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc); 4724287512Sdim return __cc != 0; 4725287512Sdim} 4726287512Sdim 4727321369Sdim// This prototype is deprecated. 4728287512Sdimstatic inline __ATTRS_o_ai int 4729287512Sdimvec_any_ge(vector bool int __a, vector bool int __b) { 4730287512Sdim int __cc; 4731287512Sdim __builtin_s390_vchlfs((vector unsigned int)__b, 4732287512Sdim (vector unsigned int)__a, &__cc); 4733287512Sdim return __cc != 0; 4734287512Sdim} 4735287512Sdim 4736287512Sdimstatic inline __ATTRS_o_ai int 4737287512Sdimvec_any_ge(vector signed long long __a, vector signed long long __b) { 4738287512Sdim int __cc; 4739287512Sdim __builtin_s390_vchgs(__b, __a, &__cc); 4740287512Sdim return __cc != 0; 4741287512Sdim} 4742287512Sdim 4743321369Sdim// This prototype is deprecated. 4744287512Sdimstatic inline __ATTRS_o_ai int 4745287512Sdimvec_any_ge(vector signed long long __a, vector bool long long __b) { 4746287512Sdim int __cc; 4747287512Sdim __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc); 4748287512Sdim return __cc != 0; 4749287512Sdim} 4750287512Sdim 4751321369Sdim// This prototype is deprecated. 4752287512Sdimstatic inline __ATTRS_o_ai int 4753287512Sdimvec_any_ge(vector bool long long __a, vector signed long long __b) { 4754287512Sdim int __cc; 4755287512Sdim __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc); 4756287512Sdim return __cc != 0; 4757287512Sdim} 4758287512Sdim 4759287512Sdimstatic inline __ATTRS_o_ai int 4760287512Sdimvec_any_ge(vector unsigned long long __a, vector unsigned long long __b) { 4761287512Sdim int __cc; 4762287512Sdim __builtin_s390_vchlgs(__b, __a, &__cc); 4763287512Sdim return __cc != 0; 4764287512Sdim} 4765287512Sdim 4766321369Sdim// This prototype is deprecated. 4767287512Sdimstatic inline __ATTRS_o_ai int 4768287512Sdimvec_any_ge(vector unsigned long long __a, vector bool long long __b) { 4769287512Sdim int __cc; 4770287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc); 4771287512Sdim return __cc != 0; 4772287512Sdim} 4773287512Sdim 4774321369Sdim// This prototype is deprecated. 4775287512Sdimstatic inline __ATTRS_o_ai int 4776287512Sdimvec_any_ge(vector bool long long __a, vector unsigned long long __b) { 4777287512Sdim int __cc; 4778287512Sdim __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc); 4779287512Sdim return __cc != 0; 4780287512Sdim} 4781287512Sdim 4782321369Sdim// This prototype is deprecated. 4783287512Sdimstatic inline __ATTRS_o_ai int 4784287512Sdimvec_any_ge(vector bool long long __a, vector bool long long __b) { 4785287512Sdim int __cc; 4786287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__b, 4787287512Sdim (vector unsigned long long)__a, &__cc); 4788287512Sdim return __cc != 0; 4789287512Sdim} 4790287512Sdim 4791321369Sdim#if __ARCH__ >= 12 4792287512Sdimstatic inline __ATTRS_o_ai int 4793321369Sdimvec_any_ge(vector float __a, vector float __b) { 4794321369Sdim int __cc; 4795321369Sdim __builtin_s390_vfchesbs(__a, __b, &__cc); 4796321369Sdim return __cc <= 1; 4797321369Sdim} 4798321369Sdim#endif 4799321369Sdim 4800321369Sdimstatic inline __ATTRS_o_ai int 4801287512Sdimvec_any_ge(vector double __a, vector double __b) { 4802287512Sdim int __cc; 4803287512Sdim __builtin_s390_vfchedbs(__a, __b, &__cc); 4804287512Sdim return __cc <= 1; 4805287512Sdim} 4806287512Sdim 4807287512Sdim/*-- vec_any_gt -------------------------------------------------------------*/ 4808287512Sdim 4809287512Sdimstatic inline __ATTRS_o_ai int 4810287512Sdimvec_any_gt(vector signed char __a, vector signed char __b) { 4811287512Sdim int __cc; 4812287512Sdim __builtin_s390_vchbs(__a, __b, &__cc); 4813287512Sdim return __cc <= 1; 4814287512Sdim} 4815287512Sdim 4816321369Sdim// This prototype is deprecated. 4817287512Sdimstatic inline __ATTRS_o_ai int 4818287512Sdimvec_any_gt(vector signed char __a, vector bool char __b) { 4819287512Sdim int __cc; 4820287512Sdim __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc); 4821287512Sdim return __cc <= 1; 4822287512Sdim} 4823287512Sdim 4824321369Sdim// This prototype is deprecated. 4825287512Sdimstatic inline __ATTRS_o_ai int 4826287512Sdimvec_any_gt(vector bool char __a, vector signed char __b) { 4827287512Sdim int __cc; 4828287512Sdim __builtin_s390_vchbs((vector signed char)__a, __b, &__cc); 4829287512Sdim return __cc <= 1; 4830287512Sdim} 4831287512Sdim 4832287512Sdimstatic inline __ATTRS_o_ai int 4833287512Sdimvec_any_gt(vector unsigned char __a, vector unsigned char __b) { 4834287512Sdim int __cc; 4835287512Sdim __builtin_s390_vchlbs(__a, __b, &__cc); 4836287512Sdim return __cc <= 1; 4837287512Sdim} 4838287512Sdim 4839321369Sdim// This prototype is deprecated. 4840287512Sdimstatic inline __ATTRS_o_ai int 4841287512Sdimvec_any_gt(vector unsigned char __a, vector bool char __b) { 4842287512Sdim int __cc; 4843287512Sdim __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc); 4844287512Sdim return __cc <= 1; 4845287512Sdim} 4846287512Sdim 4847321369Sdim// This prototype is deprecated. 4848287512Sdimstatic inline __ATTRS_o_ai int 4849287512Sdimvec_any_gt(vector bool char __a, vector unsigned char __b) { 4850287512Sdim int __cc; 4851287512Sdim __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc); 4852287512Sdim return __cc <= 1; 4853287512Sdim} 4854287512Sdim 4855321369Sdim// This prototype is deprecated. 4856287512Sdimstatic inline __ATTRS_o_ai int 4857287512Sdimvec_any_gt(vector bool char __a, vector bool char __b) { 4858287512Sdim int __cc; 4859287512Sdim __builtin_s390_vchlbs((vector unsigned char)__a, 4860287512Sdim (vector unsigned char)__b, &__cc); 4861287512Sdim return __cc <= 1; 4862287512Sdim} 4863287512Sdim 4864287512Sdimstatic inline __ATTRS_o_ai int 4865287512Sdimvec_any_gt(vector signed short __a, vector signed short __b) { 4866287512Sdim int __cc; 4867287512Sdim __builtin_s390_vchhs(__a, __b, &__cc); 4868287512Sdim return __cc <= 1; 4869287512Sdim} 4870287512Sdim 4871321369Sdim// This prototype is deprecated. 4872287512Sdimstatic inline __ATTRS_o_ai int 4873287512Sdimvec_any_gt(vector signed short __a, vector bool short __b) { 4874287512Sdim int __cc; 4875287512Sdim __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc); 4876287512Sdim return __cc <= 1; 4877287512Sdim} 4878287512Sdim 4879321369Sdim// This prototype is deprecated. 4880287512Sdimstatic inline __ATTRS_o_ai int 4881287512Sdimvec_any_gt(vector bool short __a, vector signed short __b) { 4882287512Sdim int __cc; 4883287512Sdim __builtin_s390_vchhs((vector signed short)__a, __b, &__cc); 4884287512Sdim return __cc <= 1; 4885287512Sdim} 4886287512Sdim 4887287512Sdimstatic inline __ATTRS_o_ai int 4888287512Sdimvec_any_gt(vector unsigned short __a, vector unsigned short __b) { 4889287512Sdim int __cc; 4890287512Sdim __builtin_s390_vchlhs(__a, __b, &__cc); 4891287512Sdim return __cc <= 1; 4892287512Sdim} 4893287512Sdim 4894321369Sdim// This prototype is deprecated. 4895287512Sdimstatic inline __ATTRS_o_ai int 4896287512Sdimvec_any_gt(vector unsigned short __a, vector bool short __b) { 4897287512Sdim int __cc; 4898287512Sdim __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc); 4899287512Sdim return __cc <= 1; 4900287512Sdim} 4901287512Sdim 4902321369Sdim// This prototype is deprecated. 4903287512Sdimstatic inline __ATTRS_o_ai int 4904287512Sdimvec_any_gt(vector bool short __a, vector unsigned short __b) { 4905287512Sdim int __cc; 4906287512Sdim __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc); 4907287512Sdim return __cc <= 1; 4908287512Sdim} 4909287512Sdim 4910321369Sdim// This prototype is deprecated. 4911287512Sdimstatic inline __ATTRS_o_ai int 4912287512Sdimvec_any_gt(vector bool short __a, vector bool short __b) { 4913287512Sdim int __cc; 4914287512Sdim __builtin_s390_vchlhs((vector unsigned short)__a, 4915287512Sdim (vector unsigned short)__b, &__cc); 4916287512Sdim return __cc <= 1; 4917287512Sdim} 4918287512Sdim 4919287512Sdimstatic inline __ATTRS_o_ai int 4920287512Sdimvec_any_gt(vector signed int __a, vector signed int __b) { 4921287512Sdim int __cc; 4922287512Sdim __builtin_s390_vchfs(__a, __b, &__cc); 4923287512Sdim return __cc <= 1; 4924287512Sdim} 4925287512Sdim 4926321369Sdim// This prototype is deprecated. 4927287512Sdimstatic inline __ATTRS_o_ai int 4928287512Sdimvec_any_gt(vector signed int __a, vector bool int __b) { 4929287512Sdim int __cc; 4930287512Sdim __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc); 4931287512Sdim return __cc <= 1; 4932287512Sdim} 4933287512Sdim 4934321369Sdim// This prototype is deprecated. 4935287512Sdimstatic inline __ATTRS_o_ai int 4936287512Sdimvec_any_gt(vector bool int __a, vector signed int __b) { 4937287512Sdim int __cc; 4938287512Sdim __builtin_s390_vchfs((vector signed int)__a, __b, &__cc); 4939287512Sdim return __cc <= 1; 4940287512Sdim} 4941287512Sdim 4942287512Sdimstatic inline __ATTRS_o_ai int 4943287512Sdimvec_any_gt(vector unsigned int __a, vector unsigned int __b) { 4944287512Sdim int __cc; 4945287512Sdim __builtin_s390_vchlfs(__a, __b, &__cc); 4946287512Sdim return __cc <= 1; 4947287512Sdim} 4948287512Sdim 4949321369Sdim// This prototype is deprecated. 4950287512Sdimstatic inline __ATTRS_o_ai int 4951287512Sdimvec_any_gt(vector unsigned int __a, vector bool int __b) { 4952287512Sdim int __cc; 4953287512Sdim __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc); 4954287512Sdim return __cc <= 1; 4955287512Sdim} 4956287512Sdim 4957321369Sdim// This prototype is deprecated. 4958287512Sdimstatic inline __ATTRS_o_ai int 4959287512Sdimvec_any_gt(vector bool int __a, vector unsigned int __b) { 4960287512Sdim int __cc; 4961287512Sdim __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc); 4962287512Sdim return __cc <= 1; 4963287512Sdim} 4964287512Sdim 4965321369Sdim// This prototype is deprecated. 4966287512Sdimstatic inline __ATTRS_o_ai int 4967287512Sdimvec_any_gt(vector bool int __a, vector bool int __b) { 4968287512Sdim int __cc; 4969287512Sdim __builtin_s390_vchlfs((vector unsigned int)__a, 4970287512Sdim (vector unsigned int)__b, &__cc); 4971287512Sdim return __cc <= 1; 4972287512Sdim} 4973287512Sdim 4974287512Sdimstatic inline __ATTRS_o_ai int 4975287512Sdimvec_any_gt(vector signed long long __a, vector signed long long __b) { 4976287512Sdim int __cc; 4977287512Sdim __builtin_s390_vchgs(__a, __b, &__cc); 4978287512Sdim return __cc <= 1; 4979287512Sdim} 4980287512Sdim 4981321369Sdim// This prototype is deprecated. 4982287512Sdimstatic inline __ATTRS_o_ai int 4983287512Sdimvec_any_gt(vector signed long long __a, vector bool long long __b) { 4984287512Sdim int __cc; 4985287512Sdim __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc); 4986287512Sdim return __cc <= 1; 4987287512Sdim} 4988287512Sdim 4989321369Sdim// This prototype is deprecated. 4990287512Sdimstatic inline __ATTRS_o_ai int 4991287512Sdimvec_any_gt(vector bool long long __a, vector signed long long __b) { 4992287512Sdim int __cc; 4993287512Sdim __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc); 4994287512Sdim return __cc <= 1; 4995287512Sdim} 4996287512Sdim 4997287512Sdimstatic inline __ATTRS_o_ai int 4998287512Sdimvec_any_gt(vector unsigned long long __a, vector unsigned long long __b) { 4999287512Sdim int __cc; 5000287512Sdim __builtin_s390_vchlgs(__a, __b, &__cc); 5001287512Sdim return __cc <= 1; 5002287512Sdim} 5003287512Sdim 5004321369Sdim// This prototype is deprecated. 5005287512Sdimstatic inline __ATTRS_o_ai int 5006287512Sdimvec_any_gt(vector unsigned long long __a, vector bool long long __b) { 5007287512Sdim int __cc; 5008287512Sdim __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc); 5009287512Sdim return __cc <= 1; 5010287512Sdim} 5011287512Sdim 5012321369Sdim// This prototype is deprecated. 5013287512Sdimstatic inline __ATTRS_o_ai int 5014287512Sdimvec_any_gt(vector bool long long __a, vector unsigned long long __b) { 5015287512Sdim int __cc; 5016287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc); 5017287512Sdim return __cc <= 1; 5018287512Sdim} 5019287512Sdim 5020321369Sdim// This prototype is deprecated. 5021287512Sdimstatic inline __ATTRS_o_ai int 5022287512Sdimvec_any_gt(vector bool long long __a, vector bool long long __b) { 5023287512Sdim int __cc; 5024287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__a, 5025287512Sdim (vector unsigned long long)__b, &__cc); 5026287512Sdim return __cc <= 1; 5027287512Sdim} 5028287512Sdim 5029321369Sdim#if __ARCH__ >= 12 5030287512Sdimstatic inline __ATTRS_o_ai int 5031321369Sdimvec_any_gt(vector float __a, vector float __b) { 5032321369Sdim int __cc; 5033321369Sdim __builtin_s390_vfchsbs(__a, __b, &__cc); 5034321369Sdim return __cc <= 1; 5035321369Sdim} 5036321369Sdim#endif 5037321369Sdim 5038321369Sdimstatic inline __ATTRS_o_ai int 5039287512Sdimvec_any_gt(vector double __a, vector double __b) { 5040287512Sdim int __cc; 5041287512Sdim __builtin_s390_vfchdbs(__a, __b, &__cc); 5042287512Sdim return __cc <= 1; 5043287512Sdim} 5044287512Sdim 5045287512Sdim/*-- vec_any_le -------------------------------------------------------------*/ 5046287512Sdim 5047287512Sdimstatic inline __ATTRS_o_ai int 5048287512Sdimvec_any_le(vector signed char __a, vector signed char __b) { 5049287512Sdim int __cc; 5050287512Sdim __builtin_s390_vchbs(__a, __b, &__cc); 5051287512Sdim return __cc != 0; 5052287512Sdim} 5053287512Sdim 5054321369Sdim// This prototype is deprecated. 5055287512Sdimstatic inline __ATTRS_o_ai int 5056287512Sdimvec_any_le(vector signed char __a, vector bool char __b) { 5057287512Sdim int __cc; 5058287512Sdim __builtin_s390_vchbs(__a, (vector signed char)__b, &__cc); 5059287512Sdim return __cc != 0; 5060287512Sdim} 5061287512Sdim 5062321369Sdim// This prototype is deprecated. 5063287512Sdimstatic inline __ATTRS_o_ai int 5064287512Sdimvec_any_le(vector bool char __a, vector signed char __b) { 5065287512Sdim int __cc; 5066287512Sdim __builtin_s390_vchbs((vector signed char)__a, __b, &__cc); 5067287512Sdim return __cc != 0; 5068287512Sdim} 5069287512Sdim 5070287512Sdimstatic inline __ATTRS_o_ai int 5071287512Sdimvec_any_le(vector unsigned char __a, vector unsigned char __b) { 5072287512Sdim int __cc; 5073287512Sdim __builtin_s390_vchlbs(__a, __b, &__cc); 5074287512Sdim return __cc != 0; 5075287512Sdim} 5076287512Sdim 5077321369Sdim// This prototype is deprecated. 5078287512Sdimstatic inline __ATTRS_o_ai int 5079287512Sdimvec_any_le(vector unsigned char __a, vector bool char __b) { 5080287512Sdim int __cc; 5081287512Sdim __builtin_s390_vchlbs(__a, (vector unsigned char)__b, &__cc); 5082287512Sdim return __cc != 0; 5083287512Sdim} 5084287512Sdim 5085321369Sdim// This prototype is deprecated. 5086287512Sdimstatic inline __ATTRS_o_ai int 5087287512Sdimvec_any_le(vector bool char __a, vector unsigned char __b) { 5088287512Sdim int __cc; 5089287512Sdim __builtin_s390_vchlbs((vector unsigned char)__a, __b, &__cc); 5090287512Sdim return __cc != 0; 5091287512Sdim} 5092287512Sdim 5093321369Sdim// This prototype is deprecated. 5094287512Sdimstatic inline __ATTRS_o_ai int 5095287512Sdimvec_any_le(vector bool char __a, vector bool char __b) { 5096287512Sdim int __cc; 5097287512Sdim __builtin_s390_vchlbs((vector unsigned char)__a, 5098287512Sdim (vector unsigned char)__b, &__cc); 5099287512Sdim return __cc != 0; 5100287512Sdim} 5101287512Sdim 5102287512Sdimstatic inline __ATTRS_o_ai int 5103287512Sdimvec_any_le(vector signed short __a, vector signed short __b) { 5104287512Sdim int __cc; 5105287512Sdim __builtin_s390_vchhs(__a, __b, &__cc); 5106287512Sdim return __cc != 0; 5107287512Sdim} 5108287512Sdim 5109321369Sdim// This prototype is deprecated. 5110287512Sdimstatic inline __ATTRS_o_ai int 5111287512Sdimvec_any_le(vector signed short __a, vector bool short __b) { 5112287512Sdim int __cc; 5113287512Sdim __builtin_s390_vchhs(__a, (vector signed short)__b, &__cc); 5114287512Sdim return __cc != 0; 5115287512Sdim} 5116287512Sdim 5117321369Sdim// This prototype is deprecated. 5118287512Sdimstatic inline __ATTRS_o_ai int 5119287512Sdimvec_any_le(vector bool short __a, vector signed short __b) { 5120287512Sdim int __cc; 5121287512Sdim __builtin_s390_vchhs((vector signed short)__a, __b, &__cc); 5122287512Sdim return __cc != 0; 5123287512Sdim} 5124287512Sdim 5125287512Sdimstatic inline __ATTRS_o_ai int 5126287512Sdimvec_any_le(vector unsigned short __a, vector unsigned short __b) { 5127287512Sdim int __cc; 5128287512Sdim __builtin_s390_vchlhs(__a, __b, &__cc); 5129287512Sdim return __cc != 0; 5130287512Sdim} 5131287512Sdim 5132321369Sdim// This prototype is deprecated. 5133287512Sdimstatic inline __ATTRS_o_ai int 5134287512Sdimvec_any_le(vector unsigned short __a, vector bool short __b) { 5135287512Sdim int __cc; 5136287512Sdim __builtin_s390_vchlhs(__a, (vector unsigned short)__b, &__cc); 5137287512Sdim return __cc != 0; 5138287512Sdim} 5139287512Sdim 5140321369Sdim// This prototype is deprecated. 5141287512Sdimstatic inline __ATTRS_o_ai int 5142287512Sdimvec_any_le(vector bool short __a, vector unsigned short __b) { 5143287512Sdim int __cc; 5144287512Sdim __builtin_s390_vchlhs((vector unsigned short)__a, __b, &__cc); 5145287512Sdim return __cc != 0; 5146287512Sdim} 5147287512Sdim 5148321369Sdim// This prototype is deprecated. 5149287512Sdimstatic inline __ATTRS_o_ai int 5150287512Sdimvec_any_le(vector bool short __a, vector bool short __b) { 5151287512Sdim int __cc; 5152287512Sdim __builtin_s390_vchlhs((vector unsigned short)__a, 5153287512Sdim (vector unsigned short)__b, &__cc); 5154287512Sdim return __cc != 0; 5155287512Sdim} 5156287512Sdim 5157287512Sdimstatic inline __ATTRS_o_ai int 5158287512Sdimvec_any_le(vector signed int __a, vector signed int __b) { 5159287512Sdim int __cc; 5160287512Sdim __builtin_s390_vchfs(__a, __b, &__cc); 5161287512Sdim return __cc != 0; 5162287512Sdim} 5163287512Sdim 5164321369Sdim// This prototype is deprecated. 5165287512Sdimstatic inline __ATTRS_o_ai int 5166287512Sdimvec_any_le(vector signed int __a, vector bool int __b) { 5167287512Sdim int __cc; 5168287512Sdim __builtin_s390_vchfs(__a, (vector signed int)__b, &__cc); 5169287512Sdim return __cc != 0; 5170287512Sdim} 5171287512Sdim 5172321369Sdim// This prototype is deprecated. 5173287512Sdimstatic inline __ATTRS_o_ai int 5174287512Sdimvec_any_le(vector bool int __a, vector signed int __b) { 5175287512Sdim int __cc; 5176287512Sdim __builtin_s390_vchfs((vector signed int)__a, __b, &__cc); 5177287512Sdim return __cc != 0; 5178287512Sdim} 5179287512Sdim 5180287512Sdimstatic inline __ATTRS_o_ai int 5181287512Sdimvec_any_le(vector unsigned int __a, vector unsigned int __b) { 5182287512Sdim int __cc; 5183287512Sdim __builtin_s390_vchlfs(__a, __b, &__cc); 5184287512Sdim return __cc != 0; 5185287512Sdim} 5186287512Sdim 5187321369Sdim// This prototype is deprecated. 5188287512Sdimstatic inline __ATTRS_o_ai int 5189287512Sdimvec_any_le(vector unsigned int __a, vector bool int __b) { 5190287512Sdim int __cc; 5191287512Sdim __builtin_s390_vchlfs(__a, (vector unsigned int)__b, &__cc); 5192287512Sdim return __cc != 0; 5193287512Sdim} 5194287512Sdim 5195321369Sdim// This prototype is deprecated. 5196287512Sdimstatic inline __ATTRS_o_ai int 5197287512Sdimvec_any_le(vector bool int __a, vector unsigned int __b) { 5198287512Sdim int __cc; 5199287512Sdim __builtin_s390_vchlfs((vector unsigned int)__a, __b, &__cc); 5200287512Sdim return __cc != 0; 5201287512Sdim} 5202287512Sdim 5203321369Sdim// This prototype is deprecated. 5204287512Sdimstatic inline __ATTRS_o_ai int 5205287512Sdimvec_any_le(vector bool int __a, vector bool int __b) { 5206287512Sdim int __cc; 5207287512Sdim __builtin_s390_vchlfs((vector unsigned int)__a, 5208287512Sdim (vector unsigned int)__b, &__cc); 5209287512Sdim return __cc != 0; 5210287512Sdim} 5211287512Sdim 5212287512Sdimstatic inline __ATTRS_o_ai int 5213287512Sdimvec_any_le(vector signed long long __a, vector signed long long __b) { 5214287512Sdim int __cc; 5215287512Sdim __builtin_s390_vchgs(__a, __b, &__cc); 5216287512Sdim return __cc != 0; 5217287512Sdim} 5218287512Sdim 5219321369Sdim// This prototype is deprecated. 5220287512Sdimstatic inline __ATTRS_o_ai int 5221287512Sdimvec_any_le(vector signed long long __a, vector bool long long __b) { 5222287512Sdim int __cc; 5223287512Sdim __builtin_s390_vchgs(__a, (vector signed long long)__b, &__cc); 5224287512Sdim return __cc != 0; 5225287512Sdim} 5226287512Sdim 5227321369Sdim// This prototype is deprecated. 5228287512Sdimstatic inline __ATTRS_o_ai int 5229287512Sdimvec_any_le(vector bool long long __a, vector signed long long __b) { 5230287512Sdim int __cc; 5231287512Sdim __builtin_s390_vchgs((vector signed long long)__a, __b, &__cc); 5232287512Sdim return __cc != 0; 5233287512Sdim} 5234287512Sdim 5235287512Sdimstatic inline __ATTRS_o_ai int 5236287512Sdimvec_any_le(vector unsigned long long __a, vector unsigned long long __b) { 5237287512Sdim int __cc; 5238287512Sdim __builtin_s390_vchlgs(__a, __b, &__cc); 5239287512Sdim return __cc != 0; 5240287512Sdim} 5241287512Sdim 5242321369Sdim// This prototype is deprecated. 5243287512Sdimstatic inline __ATTRS_o_ai int 5244287512Sdimvec_any_le(vector unsigned long long __a, vector bool long long __b) { 5245287512Sdim int __cc; 5246287512Sdim __builtin_s390_vchlgs(__a, (vector unsigned long long)__b, &__cc); 5247287512Sdim return __cc != 0; 5248287512Sdim} 5249287512Sdim 5250321369Sdim// This prototype is deprecated. 5251287512Sdimstatic inline __ATTRS_o_ai int 5252287512Sdimvec_any_le(vector bool long long __a, vector unsigned long long __b) { 5253287512Sdim int __cc; 5254287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__a, __b, &__cc); 5255287512Sdim return __cc != 0; 5256287512Sdim} 5257287512Sdim 5258321369Sdim// This prototype is deprecated. 5259287512Sdimstatic inline __ATTRS_o_ai int 5260287512Sdimvec_any_le(vector bool long long __a, vector bool long long __b) { 5261287512Sdim int __cc; 5262287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__a, 5263287512Sdim (vector unsigned long long)__b, &__cc); 5264287512Sdim return __cc != 0; 5265287512Sdim} 5266287512Sdim 5267321369Sdim#if __ARCH__ >= 12 5268287512Sdimstatic inline __ATTRS_o_ai int 5269321369Sdimvec_any_le(vector float __a, vector float __b) { 5270321369Sdim int __cc; 5271321369Sdim __builtin_s390_vfchesbs(__b, __a, &__cc); 5272321369Sdim return __cc <= 1; 5273321369Sdim} 5274321369Sdim#endif 5275321369Sdim 5276321369Sdimstatic inline __ATTRS_o_ai int 5277287512Sdimvec_any_le(vector double __a, vector double __b) { 5278287512Sdim int __cc; 5279287512Sdim __builtin_s390_vfchedbs(__b, __a, &__cc); 5280287512Sdim return __cc <= 1; 5281287512Sdim} 5282287512Sdim 5283287512Sdim/*-- vec_any_lt -------------------------------------------------------------*/ 5284287512Sdim 5285287512Sdimstatic inline __ATTRS_o_ai int 5286287512Sdimvec_any_lt(vector signed char __a, vector signed char __b) { 5287287512Sdim int __cc; 5288287512Sdim __builtin_s390_vchbs(__b, __a, &__cc); 5289287512Sdim return __cc <= 1; 5290287512Sdim} 5291287512Sdim 5292321369Sdim// This prototype is deprecated. 5293287512Sdimstatic inline __ATTRS_o_ai int 5294287512Sdimvec_any_lt(vector signed char __a, vector bool char __b) { 5295287512Sdim int __cc; 5296287512Sdim __builtin_s390_vchbs((vector signed char)__b, __a, &__cc); 5297287512Sdim return __cc <= 1; 5298287512Sdim} 5299287512Sdim 5300321369Sdim// This prototype is deprecated. 5301287512Sdimstatic inline __ATTRS_o_ai int 5302287512Sdimvec_any_lt(vector bool char __a, vector signed char __b) { 5303287512Sdim int __cc; 5304287512Sdim __builtin_s390_vchbs(__b, (vector signed char)__a, &__cc); 5305287512Sdim return __cc <= 1; 5306287512Sdim} 5307287512Sdim 5308287512Sdimstatic inline __ATTRS_o_ai int 5309287512Sdimvec_any_lt(vector unsigned char __a, vector unsigned char __b) { 5310287512Sdim int __cc; 5311287512Sdim __builtin_s390_vchlbs(__b, __a, &__cc); 5312287512Sdim return __cc <= 1; 5313287512Sdim} 5314287512Sdim 5315321369Sdim// This prototype is deprecated. 5316287512Sdimstatic inline __ATTRS_o_ai int 5317287512Sdimvec_any_lt(vector unsigned char __a, vector bool char __b) { 5318287512Sdim int __cc; 5319287512Sdim __builtin_s390_vchlbs((vector unsigned char)__b, __a, &__cc); 5320287512Sdim return __cc <= 1; 5321287512Sdim} 5322287512Sdim 5323321369Sdim// This prototype is deprecated. 5324287512Sdimstatic inline __ATTRS_o_ai int 5325287512Sdimvec_any_lt(vector bool char __a, vector unsigned char __b) { 5326287512Sdim int __cc; 5327287512Sdim __builtin_s390_vchlbs(__b, (vector unsigned char)__a, &__cc); 5328287512Sdim return __cc <= 1; 5329287512Sdim} 5330287512Sdim 5331321369Sdim// This prototype is deprecated. 5332287512Sdimstatic inline __ATTRS_o_ai int 5333287512Sdimvec_any_lt(vector bool char __a, vector bool char __b) { 5334287512Sdim int __cc; 5335287512Sdim __builtin_s390_vchlbs((vector unsigned char)__b, 5336287512Sdim (vector unsigned char)__a, &__cc); 5337287512Sdim return __cc <= 1; 5338287512Sdim} 5339287512Sdim 5340287512Sdimstatic inline __ATTRS_o_ai int 5341287512Sdimvec_any_lt(vector signed short __a, vector signed short __b) { 5342287512Sdim int __cc; 5343287512Sdim __builtin_s390_vchhs(__b, __a, &__cc); 5344287512Sdim return __cc <= 1; 5345287512Sdim} 5346287512Sdim 5347321369Sdim// This prototype is deprecated. 5348287512Sdimstatic inline __ATTRS_o_ai int 5349287512Sdimvec_any_lt(vector signed short __a, vector bool short __b) { 5350287512Sdim int __cc; 5351287512Sdim __builtin_s390_vchhs((vector signed short)__b, __a, &__cc); 5352287512Sdim return __cc <= 1; 5353287512Sdim} 5354287512Sdim 5355321369Sdim// This prototype is deprecated. 5356287512Sdimstatic inline __ATTRS_o_ai int 5357287512Sdimvec_any_lt(vector bool short __a, vector signed short __b) { 5358287512Sdim int __cc; 5359287512Sdim __builtin_s390_vchhs(__b, (vector signed short)__a, &__cc); 5360287512Sdim return __cc <= 1; 5361287512Sdim} 5362287512Sdim 5363287512Sdimstatic inline __ATTRS_o_ai int 5364287512Sdimvec_any_lt(vector unsigned short __a, vector unsigned short __b) { 5365287512Sdim int __cc; 5366287512Sdim __builtin_s390_vchlhs(__b, __a, &__cc); 5367287512Sdim return __cc <= 1; 5368287512Sdim} 5369287512Sdim 5370321369Sdim// This prototype is deprecated. 5371287512Sdimstatic inline __ATTRS_o_ai int 5372287512Sdimvec_any_lt(vector unsigned short __a, vector bool short __b) { 5373287512Sdim int __cc; 5374287512Sdim __builtin_s390_vchlhs((vector unsigned short)__b, __a, &__cc); 5375287512Sdim return __cc <= 1; 5376287512Sdim} 5377287512Sdim 5378321369Sdim// This prototype is deprecated. 5379287512Sdimstatic inline __ATTRS_o_ai int 5380287512Sdimvec_any_lt(vector bool short __a, vector unsigned short __b) { 5381287512Sdim int __cc; 5382287512Sdim __builtin_s390_vchlhs(__b, (vector unsigned short)__a, &__cc); 5383287512Sdim return __cc <= 1; 5384287512Sdim} 5385287512Sdim 5386321369Sdim// This prototype is deprecated. 5387287512Sdimstatic inline __ATTRS_o_ai int 5388287512Sdimvec_any_lt(vector bool short __a, vector bool short __b) { 5389287512Sdim int __cc; 5390287512Sdim __builtin_s390_vchlhs((vector unsigned short)__b, 5391287512Sdim (vector unsigned short)__a, &__cc); 5392287512Sdim return __cc <= 1; 5393287512Sdim} 5394287512Sdim 5395287512Sdimstatic inline __ATTRS_o_ai int 5396287512Sdimvec_any_lt(vector signed int __a, vector signed int __b) { 5397287512Sdim int __cc; 5398287512Sdim __builtin_s390_vchfs(__b, __a, &__cc); 5399287512Sdim return __cc <= 1; 5400287512Sdim} 5401287512Sdim 5402321369Sdim// This prototype is deprecated. 5403287512Sdimstatic inline __ATTRS_o_ai int 5404287512Sdimvec_any_lt(vector signed int __a, vector bool int __b) { 5405287512Sdim int __cc; 5406287512Sdim __builtin_s390_vchfs((vector signed int)__b, __a, &__cc); 5407287512Sdim return __cc <= 1; 5408287512Sdim} 5409287512Sdim 5410321369Sdim// This prototype is deprecated. 5411287512Sdimstatic inline __ATTRS_o_ai int 5412287512Sdimvec_any_lt(vector bool int __a, vector signed int __b) { 5413287512Sdim int __cc; 5414287512Sdim __builtin_s390_vchfs(__b, (vector signed int)__a, &__cc); 5415287512Sdim return __cc <= 1; 5416287512Sdim} 5417287512Sdim 5418287512Sdimstatic inline __ATTRS_o_ai int 5419287512Sdimvec_any_lt(vector unsigned int __a, vector unsigned int __b) { 5420287512Sdim int __cc; 5421287512Sdim __builtin_s390_vchlfs(__b, __a, &__cc); 5422287512Sdim return __cc <= 1; 5423287512Sdim} 5424287512Sdim 5425321369Sdim// This prototype is deprecated. 5426287512Sdimstatic inline __ATTRS_o_ai int 5427287512Sdimvec_any_lt(vector unsigned int __a, vector bool int __b) { 5428287512Sdim int __cc; 5429287512Sdim __builtin_s390_vchlfs((vector unsigned int)__b, __a, &__cc); 5430287512Sdim return __cc <= 1; 5431287512Sdim} 5432287512Sdim 5433321369Sdim// This prototype is deprecated. 5434287512Sdimstatic inline __ATTRS_o_ai int 5435287512Sdimvec_any_lt(vector bool int __a, vector unsigned int __b) { 5436287512Sdim int __cc; 5437287512Sdim __builtin_s390_vchlfs(__b, (vector unsigned int)__a, &__cc); 5438287512Sdim return __cc <= 1; 5439287512Sdim} 5440287512Sdim 5441321369Sdim// This prototype is deprecated. 5442287512Sdimstatic inline __ATTRS_o_ai int 5443287512Sdimvec_any_lt(vector bool int __a, vector bool int __b) { 5444287512Sdim int __cc; 5445287512Sdim __builtin_s390_vchlfs((vector unsigned int)__b, 5446287512Sdim (vector unsigned int)__a, &__cc); 5447287512Sdim return __cc <= 1; 5448287512Sdim} 5449287512Sdim 5450287512Sdimstatic inline __ATTRS_o_ai int 5451287512Sdimvec_any_lt(vector signed long long __a, vector signed long long __b) { 5452287512Sdim int __cc; 5453287512Sdim __builtin_s390_vchgs(__b, __a, &__cc); 5454287512Sdim return __cc <= 1; 5455287512Sdim} 5456287512Sdim 5457321369Sdim// This prototype is deprecated. 5458287512Sdimstatic inline __ATTRS_o_ai int 5459287512Sdimvec_any_lt(vector signed long long __a, vector bool long long __b) { 5460287512Sdim int __cc; 5461287512Sdim __builtin_s390_vchgs((vector signed long long)__b, __a, &__cc); 5462287512Sdim return __cc <= 1; 5463287512Sdim} 5464287512Sdim 5465321369Sdim// This prototype is deprecated. 5466287512Sdimstatic inline __ATTRS_o_ai int 5467287512Sdimvec_any_lt(vector bool long long __a, vector signed long long __b) { 5468287512Sdim int __cc; 5469287512Sdim __builtin_s390_vchgs(__b, (vector signed long long)__a, &__cc); 5470287512Sdim return __cc <= 1; 5471287512Sdim} 5472287512Sdim 5473287512Sdimstatic inline __ATTRS_o_ai int 5474287512Sdimvec_any_lt(vector unsigned long long __a, vector unsigned long long __b) { 5475287512Sdim int __cc; 5476287512Sdim __builtin_s390_vchlgs(__b, __a, &__cc); 5477287512Sdim return __cc <= 1; 5478287512Sdim} 5479287512Sdim 5480321369Sdim// This prototype is deprecated. 5481287512Sdimstatic inline __ATTRS_o_ai int 5482287512Sdimvec_any_lt(vector unsigned long long __a, vector bool long long __b) { 5483287512Sdim int __cc; 5484287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__b, __a, &__cc); 5485287512Sdim return __cc <= 1; 5486287512Sdim} 5487287512Sdim 5488321369Sdim// This prototype is deprecated. 5489287512Sdimstatic inline __ATTRS_o_ai int 5490287512Sdimvec_any_lt(vector bool long long __a, vector unsigned long long __b) { 5491287512Sdim int __cc; 5492287512Sdim __builtin_s390_vchlgs(__b, (vector unsigned long long)__a, &__cc); 5493287512Sdim return __cc <= 1; 5494287512Sdim} 5495287512Sdim 5496321369Sdim// This prototype is deprecated. 5497287512Sdimstatic inline __ATTRS_o_ai int 5498287512Sdimvec_any_lt(vector bool long long __a, vector bool long long __b) { 5499287512Sdim int __cc; 5500287512Sdim __builtin_s390_vchlgs((vector unsigned long long)__b, 5501287512Sdim (vector unsigned long long)__a, &__cc); 5502287512Sdim return __cc <= 1; 5503287512Sdim} 5504287512Sdim 5505321369Sdim#if __ARCH__ >= 12 5506287512Sdimstatic inline __ATTRS_o_ai int 5507321369Sdimvec_any_lt(vector float __a, vector float __b) { 5508321369Sdim int __cc; 5509321369Sdim __builtin_s390_vfchsbs(__b, __a, &__cc); 5510321369Sdim return __cc <= 1; 5511321369Sdim} 5512321369Sdim#endif 5513321369Sdim 5514321369Sdimstatic inline __ATTRS_o_ai int 5515287512Sdimvec_any_lt(vector double __a, vector double __b) { 5516287512Sdim int __cc; 5517287512Sdim __builtin_s390_vfchdbs(__b, __a, &__cc); 5518287512Sdim return __cc <= 1; 5519287512Sdim} 5520287512Sdim 5521287512Sdim/*-- vec_any_nge ------------------------------------------------------------*/ 5522287512Sdim 5523321369Sdim#if __ARCH__ >= 12 5524321369Sdimstatic inline __ATTRS_o_ai int 5525321369Sdimvec_any_nge(vector float __a, vector float __b) { 5526321369Sdim int __cc; 5527321369Sdim __builtin_s390_vfchesbs(__a, __b, &__cc); 5528321369Sdim return __cc != 0; 5529321369Sdim} 5530321369Sdim#endif 5531321369Sdim 5532321369Sdimstatic inline __ATTRS_o_ai int 5533287512Sdimvec_any_nge(vector double __a, vector double __b) { 5534287512Sdim int __cc; 5535287512Sdim __builtin_s390_vfchedbs(__a, __b, &__cc); 5536287512Sdim return __cc != 0; 5537287512Sdim} 5538287512Sdim 5539287512Sdim/*-- vec_any_ngt ------------------------------------------------------------*/ 5540287512Sdim 5541321369Sdim#if __ARCH__ >= 12 5542321369Sdimstatic inline __ATTRS_o_ai int 5543321369Sdimvec_any_ngt(vector float __a, vector float __b) { 5544321369Sdim int __cc; 5545321369Sdim __builtin_s390_vfchsbs(__a, __b, &__cc); 5546321369Sdim return __cc != 0; 5547321369Sdim} 5548321369Sdim#endif 5549321369Sdim 5550321369Sdimstatic inline __ATTRS_o_ai int 5551287512Sdimvec_any_ngt(vector double __a, vector double __b) { 5552287512Sdim int __cc; 5553287512Sdim __builtin_s390_vfchdbs(__a, __b, &__cc); 5554287512Sdim return __cc != 0; 5555287512Sdim} 5556287512Sdim 5557287512Sdim/*-- vec_any_nle ------------------------------------------------------------*/ 5558287512Sdim 5559321369Sdim#if __ARCH__ >= 12 5560321369Sdimstatic inline __ATTRS_o_ai int 5561321369Sdimvec_any_nle(vector float __a, vector float __b) { 5562321369Sdim int __cc; 5563321369Sdim __builtin_s390_vfchesbs(__b, __a, &__cc); 5564321369Sdim return __cc != 0; 5565321369Sdim} 5566321369Sdim#endif 5567321369Sdim 5568321369Sdimstatic inline __ATTRS_o_ai int 5569287512Sdimvec_any_nle(vector double __a, vector double __b) { 5570287512Sdim int __cc; 5571287512Sdim __builtin_s390_vfchedbs(__b, __a, &__cc); 5572287512Sdim return __cc != 0; 5573287512Sdim} 5574287512Sdim 5575287512Sdim/*-- vec_any_nlt ------------------------------------------------------------*/ 5576287512Sdim 5577321369Sdim#if __ARCH__ >= 12 5578321369Sdimstatic inline __ATTRS_o_ai int 5579321369Sdimvec_any_nlt(vector float __a, vector float __b) { 5580321369Sdim int __cc; 5581321369Sdim __builtin_s390_vfchsbs(__b, __a, &__cc); 5582321369Sdim return __cc != 0; 5583321369Sdim} 5584321369Sdim#endif 5585321369Sdim 5586321369Sdimstatic inline __ATTRS_o_ai int 5587287512Sdimvec_any_nlt(vector double __a, vector double __b) { 5588287512Sdim int __cc; 5589287512Sdim __builtin_s390_vfchdbs(__b, __a, &__cc); 5590287512Sdim return __cc != 0; 5591287512Sdim} 5592287512Sdim 5593287512Sdim/*-- vec_any_nan ------------------------------------------------------------*/ 5594287512Sdim 5595321369Sdim#if __ARCH__ >= 12 5596321369Sdimstatic inline __ATTRS_o_ai int 5597321369Sdimvec_any_nan(vector float __a) { 5598321369Sdim int __cc; 5599321369Sdim __builtin_s390_vftcisb(__a, 15, &__cc); 5600321369Sdim return __cc != 3; 5601321369Sdim} 5602321369Sdim#endif 5603321369Sdim 5604321369Sdimstatic inline __ATTRS_o_ai int 5605287512Sdimvec_any_nan(vector double __a) { 5606287512Sdim int __cc; 5607287512Sdim __builtin_s390_vftcidb(__a, 15, &__cc); 5608287512Sdim return __cc != 3; 5609287512Sdim} 5610287512Sdim 5611287512Sdim/*-- vec_any_numeric --------------------------------------------------------*/ 5612287512Sdim 5613321369Sdim#if __ARCH__ >= 12 5614321369Sdimstatic inline __ATTRS_o_ai int 5615321369Sdimvec_any_numeric(vector float __a) { 5616321369Sdim int __cc; 5617321369Sdim __builtin_s390_vftcisb(__a, 15, &__cc); 5618321369Sdim return __cc != 0; 5619321369Sdim} 5620321369Sdim#endif 5621321369Sdim 5622321369Sdimstatic inline __ATTRS_o_ai int 5623287512Sdimvec_any_numeric(vector double __a) { 5624287512Sdim int __cc; 5625287512Sdim __builtin_s390_vftcidb(__a, 15, &__cc); 5626287512Sdim return __cc != 0; 5627287512Sdim} 5628287512Sdim 5629287512Sdim/*-- vec_andc ---------------------------------------------------------------*/ 5630287512Sdim 5631287512Sdimstatic inline __ATTRS_o_ai vector bool char 5632287512Sdimvec_andc(vector bool char __a, vector bool char __b) { 5633287512Sdim return __a & ~__b; 5634287512Sdim} 5635287512Sdim 5636287512Sdimstatic inline __ATTRS_o_ai vector signed char 5637287512Sdimvec_andc(vector signed char __a, vector signed char __b) { 5638287512Sdim return __a & ~__b; 5639287512Sdim} 5640287512Sdim 5641321369Sdim// This prototype is deprecated. 5642287512Sdimstatic inline __ATTRS_o_ai vector signed char 5643287512Sdimvec_andc(vector bool char __a, vector signed char __b) { 5644287512Sdim return __a & ~__b; 5645287512Sdim} 5646287512Sdim 5647321369Sdim// This prototype is deprecated. 5648287512Sdimstatic inline __ATTRS_o_ai vector signed char 5649287512Sdimvec_andc(vector signed char __a, vector bool char __b) { 5650287512Sdim return __a & ~__b; 5651287512Sdim} 5652287512Sdim 5653287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 5654287512Sdimvec_andc(vector unsigned char __a, vector unsigned char __b) { 5655287512Sdim return __a & ~__b; 5656287512Sdim} 5657287512Sdim 5658321369Sdim// This prototype is deprecated. 5659287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 5660287512Sdimvec_andc(vector bool char __a, vector unsigned char __b) { 5661287512Sdim return __a & ~__b; 5662287512Sdim} 5663287512Sdim 5664321369Sdim// This prototype is deprecated. 5665287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 5666287512Sdimvec_andc(vector unsigned char __a, vector bool char __b) { 5667287512Sdim return __a & ~__b; 5668287512Sdim} 5669287512Sdim 5670287512Sdimstatic inline __ATTRS_o_ai vector bool short 5671287512Sdimvec_andc(vector bool short __a, vector bool short __b) { 5672287512Sdim return __a & ~__b; 5673287512Sdim} 5674287512Sdim 5675287512Sdimstatic inline __ATTRS_o_ai vector signed short 5676287512Sdimvec_andc(vector signed short __a, vector signed short __b) { 5677287512Sdim return __a & ~__b; 5678287512Sdim} 5679287512Sdim 5680321369Sdim// This prototype is deprecated. 5681287512Sdimstatic inline __ATTRS_o_ai vector signed short 5682287512Sdimvec_andc(vector bool short __a, vector signed short __b) { 5683287512Sdim return __a & ~__b; 5684287512Sdim} 5685287512Sdim 5686321369Sdim// This prototype is deprecated. 5687287512Sdimstatic inline __ATTRS_o_ai vector signed short 5688287512Sdimvec_andc(vector signed short __a, vector bool short __b) { 5689287512Sdim return __a & ~__b; 5690287512Sdim} 5691287512Sdim 5692287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 5693287512Sdimvec_andc(vector unsigned short __a, vector unsigned short __b) { 5694287512Sdim return __a & ~__b; 5695287512Sdim} 5696287512Sdim 5697321369Sdim// This prototype is deprecated. 5698287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 5699287512Sdimvec_andc(vector bool short __a, vector unsigned short __b) { 5700287512Sdim return __a & ~__b; 5701287512Sdim} 5702287512Sdim 5703321369Sdim// This prototype is deprecated. 5704287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 5705287512Sdimvec_andc(vector unsigned short __a, vector bool short __b) { 5706287512Sdim return __a & ~__b; 5707287512Sdim} 5708287512Sdim 5709287512Sdimstatic inline __ATTRS_o_ai vector bool int 5710287512Sdimvec_andc(vector bool int __a, vector bool int __b) { 5711287512Sdim return __a & ~__b; 5712287512Sdim} 5713287512Sdim 5714287512Sdimstatic inline __ATTRS_o_ai vector signed int 5715287512Sdimvec_andc(vector signed int __a, vector signed int __b) { 5716287512Sdim return __a & ~__b; 5717287512Sdim} 5718287512Sdim 5719321369Sdim// This prototype is deprecated. 5720287512Sdimstatic inline __ATTRS_o_ai vector signed int 5721287512Sdimvec_andc(vector bool int __a, vector signed int __b) { 5722287512Sdim return __a & ~__b; 5723287512Sdim} 5724287512Sdim 5725321369Sdim// This prototype is deprecated. 5726287512Sdimstatic inline __ATTRS_o_ai vector signed int 5727287512Sdimvec_andc(vector signed int __a, vector bool int __b) { 5728287512Sdim return __a & ~__b; 5729287512Sdim} 5730287512Sdim 5731287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 5732287512Sdimvec_andc(vector unsigned int __a, vector unsigned int __b) { 5733287512Sdim return __a & ~__b; 5734287512Sdim} 5735287512Sdim 5736321369Sdim// This prototype is deprecated. 5737287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 5738287512Sdimvec_andc(vector bool int __a, vector unsigned int __b) { 5739287512Sdim return __a & ~__b; 5740287512Sdim} 5741287512Sdim 5742321369Sdim// This prototype is deprecated. 5743287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 5744287512Sdimvec_andc(vector unsigned int __a, vector bool int __b) { 5745287512Sdim return __a & ~__b; 5746287512Sdim} 5747287512Sdim 5748287512Sdimstatic inline __ATTRS_o_ai vector bool long long 5749287512Sdimvec_andc(vector bool long long __a, vector bool long long __b) { 5750287512Sdim return __a & ~__b; 5751287512Sdim} 5752287512Sdim 5753287512Sdimstatic inline __ATTRS_o_ai vector signed long long 5754287512Sdimvec_andc(vector signed long long __a, vector signed long long __b) { 5755287512Sdim return __a & ~__b; 5756287512Sdim} 5757287512Sdim 5758321369Sdim// This prototype is deprecated. 5759287512Sdimstatic inline __ATTRS_o_ai vector signed long long 5760287512Sdimvec_andc(vector bool long long __a, vector signed long long __b) { 5761287512Sdim return __a & ~__b; 5762287512Sdim} 5763287512Sdim 5764321369Sdim// This prototype is deprecated. 5765287512Sdimstatic inline __ATTRS_o_ai vector signed long long 5766287512Sdimvec_andc(vector signed long long __a, vector bool long long __b) { 5767287512Sdim return __a & ~__b; 5768287512Sdim} 5769287512Sdim 5770287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 5771287512Sdimvec_andc(vector unsigned long long __a, vector unsigned long long __b) { 5772287512Sdim return __a & ~__b; 5773287512Sdim} 5774287512Sdim 5775321369Sdim// This prototype is deprecated. 5776287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 5777287512Sdimvec_andc(vector bool long long __a, vector unsigned long long __b) { 5778287512Sdim return __a & ~__b; 5779287512Sdim} 5780287512Sdim 5781321369Sdim// This prototype is deprecated. 5782287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 5783287512Sdimvec_andc(vector unsigned long long __a, vector bool long long __b) { 5784287512Sdim return __a & ~__b; 5785287512Sdim} 5786287512Sdim 5787321369Sdim#if __ARCH__ >= 12 5788321369Sdimstatic inline __ATTRS_o_ai vector float 5789321369Sdimvec_andc(vector float __a, vector float __b) { 5790321369Sdim return (vector float)((vector unsigned int)__a & 5791321369Sdim ~(vector unsigned int)__b); 5792321369Sdim} 5793321369Sdim#endif 5794321369Sdim 5795287512Sdimstatic inline __ATTRS_o_ai vector double 5796287512Sdimvec_andc(vector double __a, vector double __b) { 5797287512Sdim return (vector double)((vector unsigned long long)__a & 5798287512Sdim ~(vector unsigned long long)__b); 5799287512Sdim} 5800287512Sdim 5801321369Sdim// This prototype is deprecated. 5802287512Sdimstatic inline __ATTRS_o_ai vector double 5803287512Sdimvec_andc(vector bool long long __a, vector double __b) { 5804287512Sdim return (vector double)((vector unsigned long long)__a & 5805287512Sdim ~(vector unsigned long long)__b); 5806287512Sdim} 5807287512Sdim 5808321369Sdim// This prototype is deprecated. 5809287512Sdimstatic inline __ATTRS_o_ai vector double 5810287512Sdimvec_andc(vector double __a, vector bool long long __b) { 5811287512Sdim return (vector double)((vector unsigned long long)__a & 5812287512Sdim ~(vector unsigned long long)__b); 5813287512Sdim} 5814287512Sdim 5815287512Sdim/*-- vec_nor ----------------------------------------------------------------*/ 5816287512Sdim 5817287512Sdimstatic inline __ATTRS_o_ai vector bool char 5818287512Sdimvec_nor(vector bool char __a, vector bool char __b) { 5819287512Sdim return ~(__a | __b); 5820287512Sdim} 5821287512Sdim 5822287512Sdimstatic inline __ATTRS_o_ai vector signed char 5823287512Sdimvec_nor(vector signed char __a, vector signed char __b) { 5824287512Sdim return ~(__a | __b); 5825287512Sdim} 5826287512Sdim 5827321369Sdim// This prototype is deprecated. 5828287512Sdimstatic inline __ATTRS_o_ai vector signed char 5829287512Sdimvec_nor(vector bool char __a, vector signed char __b) { 5830287512Sdim return ~(__a | __b); 5831287512Sdim} 5832287512Sdim 5833321369Sdim// This prototype is deprecated. 5834287512Sdimstatic inline __ATTRS_o_ai vector signed char 5835287512Sdimvec_nor(vector signed char __a, vector bool char __b) { 5836287512Sdim return ~(__a | __b); 5837287512Sdim} 5838287512Sdim 5839287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 5840287512Sdimvec_nor(vector unsigned char __a, vector unsigned char __b) { 5841287512Sdim return ~(__a | __b); 5842287512Sdim} 5843287512Sdim 5844321369Sdim// This prototype is deprecated. 5845287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 5846287512Sdimvec_nor(vector bool char __a, vector unsigned char __b) { 5847287512Sdim return ~(__a | __b); 5848287512Sdim} 5849287512Sdim 5850321369Sdim// This prototype is deprecated. 5851287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 5852287512Sdimvec_nor(vector unsigned char __a, vector bool char __b) { 5853287512Sdim return ~(__a | __b); 5854287512Sdim} 5855287512Sdim 5856287512Sdimstatic inline __ATTRS_o_ai vector bool short 5857287512Sdimvec_nor(vector bool short __a, vector bool short __b) { 5858287512Sdim return ~(__a | __b); 5859287512Sdim} 5860287512Sdim 5861287512Sdimstatic inline __ATTRS_o_ai vector signed short 5862287512Sdimvec_nor(vector signed short __a, vector signed short __b) { 5863287512Sdim return ~(__a | __b); 5864287512Sdim} 5865287512Sdim 5866321369Sdim// This prototype is deprecated. 5867287512Sdimstatic inline __ATTRS_o_ai vector signed short 5868287512Sdimvec_nor(vector bool short __a, vector signed short __b) { 5869287512Sdim return ~(__a | __b); 5870287512Sdim} 5871287512Sdim 5872321369Sdim// This prototype is deprecated. 5873287512Sdimstatic inline __ATTRS_o_ai vector signed short 5874287512Sdimvec_nor(vector signed short __a, vector bool short __b) { 5875287512Sdim return ~(__a | __b); 5876287512Sdim} 5877287512Sdim 5878287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 5879287512Sdimvec_nor(vector unsigned short __a, vector unsigned short __b) { 5880287512Sdim return ~(__a | __b); 5881287512Sdim} 5882287512Sdim 5883321369Sdim// This prototype is deprecated. 5884287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 5885287512Sdimvec_nor(vector bool short __a, vector unsigned short __b) { 5886287512Sdim return ~(__a | __b); 5887287512Sdim} 5888287512Sdim 5889321369Sdim// This prototype is deprecated. 5890287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 5891287512Sdimvec_nor(vector unsigned short __a, vector bool short __b) { 5892287512Sdim return ~(__a | __b); 5893287512Sdim} 5894287512Sdim 5895287512Sdimstatic inline __ATTRS_o_ai vector bool int 5896287512Sdimvec_nor(vector bool int __a, vector bool int __b) { 5897287512Sdim return ~(__a | __b); 5898287512Sdim} 5899287512Sdim 5900287512Sdimstatic inline __ATTRS_o_ai vector signed int 5901287512Sdimvec_nor(vector signed int __a, vector signed int __b) { 5902287512Sdim return ~(__a | __b); 5903287512Sdim} 5904287512Sdim 5905321369Sdim// This prototype is deprecated. 5906287512Sdimstatic inline __ATTRS_o_ai vector signed int 5907287512Sdimvec_nor(vector bool int __a, vector signed int __b) { 5908287512Sdim return ~(__a | __b); 5909287512Sdim} 5910287512Sdim 5911321369Sdim// This prototype is deprecated. 5912287512Sdimstatic inline __ATTRS_o_ai vector signed int 5913287512Sdimvec_nor(vector signed int __a, vector bool int __b) { 5914287512Sdim return ~(__a | __b); 5915287512Sdim} 5916287512Sdim 5917287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 5918287512Sdimvec_nor(vector unsigned int __a, vector unsigned int __b) { 5919287512Sdim return ~(__a | __b); 5920287512Sdim} 5921287512Sdim 5922321369Sdim// This prototype is deprecated. 5923287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 5924287512Sdimvec_nor(vector bool int __a, vector unsigned int __b) { 5925287512Sdim return ~(__a | __b); 5926287512Sdim} 5927287512Sdim 5928321369Sdim// This prototype is deprecated. 5929287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 5930287512Sdimvec_nor(vector unsigned int __a, vector bool int __b) { 5931287512Sdim return ~(__a | __b); 5932287512Sdim} 5933287512Sdim 5934287512Sdimstatic inline __ATTRS_o_ai vector bool long long 5935287512Sdimvec_nor(vector bool long long __a, vector bool long long __b) { 5936287512Sdim return ~(__a | __b); 5937287512Sdim} 5938287512Sdim 5939287512Sdimstatic inline __ATTRS_o_ai vector signed long long 5940287512Sdimvec_nor(vector signed long long __a, vector signed long long __b) { 5941287512Sdim return ~(__a | __b); 5942287512Sdim} 5943287512Sdim 5944321369Sdim// This prototype is deprecated. 5945287512Sdimstatic inline __ATTRS_o_ai vector signed long long 5946287512Sdimvec_nor(vector bool long long __a, vector signed long long __b) { 5947287512Sdim return ~(__a | __b); 5948287512Sdim} 5949287512Sdim 5950321369Sdim// This prototype is deprecated. 5951287512Sdimstatic inline __ATTRS_o_ai vector signed long long 5952287512Sdimvec_nor(vector signed long long __a, vector bool long long __b) { 5953287512Sdim return ~(__a | __b); 5954287512Sdim} 5955287512Sdim 5956287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 5957287512Sdimvec_nor(vector unsigned long long __a, vector unsigned long long __b) { 5958287512Sdim return ~(__a | __b); 5959287512Sdim} 5960287512Sdim 5961321369Sdim// This prototype is deprecated. 5962287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 5963287512Sdimvec_nor(vector bool long long __a, vector unsigned long long __b) { 5964287512Sdim return ~(__a | __b); 5965287512Sdim} 5966287512Sdim 5967321369Sdim// This prototype is deprecated. 5968287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 5969287512Sdimvec_nor(vector unsigned long long __a, vector bool long long __b) { 5970287512Sdim return ~(__a | __b); 5971287512Sdim} 5972287512Sdim 5973321369Sdim#if __ARCH__ >= 12 5974321369Sdimstatic inline __ATTRS_o_ai vector float 5975321369Sdimvec_nor(vector float __a, vector float __b) { 5976321369Sdim return (vector float)~((vector unsigned int)__a | 5977321369Sdim (vector unsigned int)__b); 5978321369Sdim} 5979321369Sdim#endif 5980321369Sdim 5981287512Sdimstatic inline __ATTRS_o_ai vector double 5982287512Sdimvec_nor(vector double __a, vector double __b) { 5983287512Sdim return (vector double)~((vector unsigned long long)__a | 5984287512Sdim (vector unsigned long long)__b); 5985287512Sdim} 5986287512Sdim 5987321369Sdim// This prototype is deprecated. 5988287512Sdimstatic inline __ATTRS_o_ai vector double 5989287512Sdimvec_nor(vector bool long long __a, vector double __b) { 5990287512Sdim return (vector double)~((vector unsigned long long)__a | 5991287512Sdim (vector unsigned long long)__b); 5992287512Sdim} 5993287512Sdim 5994321369Sdim// This prototype is deprecated. 5995287512Sdimstatic inline __ATTRS_o_ai vector double 5996287512Sdimvec_nor(vector double __a, vector bool long long __b) { 5997287512Sdim return (vector double)~((vector unsigned long long)__a | 5998287512Sdim (vector unsigned long long)__b); 5999287512Sdim} 6000287512Sdim 6001321369Sdim/*-- vec_orc ----------------------------------------------------------------*/ 6002321369Sdim 6003321369Sdim#if __ARCH__ >= 12 6004321369Sdimstatic inline __ATTRS_o_ai vector bool char 6005321369Sdimvec_orc(vector bool char __a, vector bool char __b) { 6006321369Sdim return __a | ~__b; 6007321369Sdim} 6008321369Sdim 6009321369Sdimstatic inline __ATTRS_o_ai vector signed char 6010321369Sdimvec_orc(vector signed char __a, vector signed char __b) { 6011321369Sdim return __a | ~__b; 6012321369Sdim} 6013321369Sdim 6014321369Sdimstatic inline __ATTRS_o_ai vector unsigned char 6015321369Sdimvec_orc(vector unsigned char __a, vector unsigned char __b) { 6016321369Sdim return __a | ~__b; 6017321369Sdim} 6018321369Sdim 6019321369Sdimstatic inline __ATTRS_o_ai vector bool short 6020321369Sdimvec_orc(vector bool short __a, vector bool short __b) { 6021321369Sdim return __a | ~__b; 6022321369Sdim} 6023321369Sdim 6024321369Sdimstatic inline __ATTRS_o_ai vector signed short 6025321369Sdimvec_orc(vector signed short __a, vector signed short __b) { 6026321369Sdim return __a | ~__b; 6027321369Sdim} 6028321369Sdim 6029321369Sdimstatic inline __ATTRS_o_ai vector unsigned short 6030321369Sdimvec_orc(vector unsigned short __a, vector unsigned short __b) { 6031321369Sdim return __a | ~__b; 6032321369Sdim} 6033321369Sdim 6034321369Sdimstatic inline __ATTRS_o_ai vector bool int 6035321369Sdimvec_orc(vector bool int __a, vector bool int __b) { 6036321369Sdim return __a | ~__b; 6037321369Sdim} 6038321369Sdim 6039321369Sdimstatic inline __ATTRS_o_ai vector signed int 6040321369Sdimvec_orc(vector signed int __a, vector signed int __b) { 6041321369Sdim return __a | ~__b; 6042321369Sdim} 6043321369Sdim 6044321369Sdimstatic inline __ATTRS_o_ai vector unsigned int 6045321369Sdimvec_orc(vector unsigned int __a, vector unsigned int __b) { 6046321369Sdim return __a | ~__b; 6047321369Sdim} 6048321369Sdim 6049321369Sdimstatic inline __ATTRS_o_ai vector bool long long 6050321369Sdimvec_orc(vector bool long long __a, vector bool long long __b) { 6051321369Sdim return __a | ~__b; 6052321369Sdim} 6053321369Sdim 6054321369Sdimstatic inline __ATTRS_o_ai vector signed long long 6055321369Sdimvec_orc(vector signed long long __a, vector signed long long __b) { 6056321369Sdim return __a | ~__b; 6057321369Sdim} 6058321369Sdim 6059321369Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6060321369Sdimvec_orc(vector unsigned long long __a, vector unsigned long long __b) { 6061321369Sdim return __a | ~__b; 6062321369Sdim} 6063321369Sdim 6064321369Sdimstatic inline __ATTRS_o_ai vector float 6065321369Sdimvec_orc(vector float __a, vector float __b) { 6066344779Sdim return (vector float)((vector unsigned int)__a | 6067321369Sdim ~(vector unsigned int)__b); 6068321369Sdim} 6069321369Sdim 6070321369Sdimstatic inline __ATTRS_o_ai vector double 6071321369Sdimvec_orc(vector double __a, vector double __b) { 6072344779Sdim return (vector double)((vector unsigned long long)__a | 6073321369Sdim ~(vector unsigned long long)__b); 6074321369Sdim} 6075321369Sdim#endif 6076321369Sdim 6077321369Sdim/*-- vec_nand ---------------------------------------------------------------*/ 6078321369Sdim 6079321369Sdim#if __ARCH__ >= 12 6080321369Sdimstatic inline __ATTRS_o_ai vector bool char 6081321369Sdimvec_nand(vector bool char __a, vector bool char __b) { 6082321369Sdim return ~(__a & __b); 6083321369Sdim} 6084321369Sdim 6085321369Sdimstatic inline __ATTRS_o_ai vector signed char 6086321369Sdimvec_nand(vector signed char __a, vector signed char __b) { 6087321369Sdim return ~(__a & __b); 6088321369Sdim} 6089321369Sdim 6090321369Sdimstatic inline __ATTRS_o_ai vector unsigned char 6091321369Sdimvec_nand(vector unsigned char __a, vector unsigned char __b) { 6092321369Sdim return ~(__a & __b); 6093321369Sdim} 6094321369Sdim 6095321369Sdimstatic inline __ATTRS_o_ai vector bool short 6096321369Sdimvec_nand(vector bool short __a, vector bool short __b) { 6097321369Sdim return ~(__a & __b); 6098321369Sdim} 6099321369Sdim 6100321369Sdimstatic inline __ATTRS_o_ai vector signed short 6101321369Sdimvec_nand(vector signed short __a, vector signed short __b) { 6102321369Sdim return ~(__a & __b); 6103321369Sdim} 6104321369Sdim 6105321369Sdimstatic inline __ATTRS_o_ai vector unsigned short 6106321369Sdimvec_nand(vector unsigned short __a, vector unsigned short __b) { 6107321369Sdim return ~(__a & __b); 6108321369Sdim} 6109321369Sdim 6110321369Sdimstatic inline __ATTRS_o_ai vector bool int 6111321369Sdimvec_nand(vector bool int __a, vector bool int __b) { 6112321369Sdim return ~(__a & __b); 6113321369Sdim} 6114321369Sdim 6115321369Sdimstatic inline __ATTRS_o_ai vector signed int 6116321369Sdimvec_nand(vector signed int __a, vector signed int __b) { 6117321369Sdim return ~(__a & __b); 6118321369Sdim} 6119321369Sdim 6120321369Sdimstatic inline __ATTRS_o_ai vector unsigned int 6121321369Sdimvec_nand(vector unsigned int __a, vector unsigned int __b) { 6122321369Sdim return ~(__a & __b); 6123321369Sdim} 6124321369Sdim 6125321369Sdimstatic inline __ATTRS_o_ai vector bool long long 6126321369Sdimvec_nand(vector bool long long __a, vector bool long long __b) { 6127321369Sdim return ~(__a & __b); 6128321369Sdim} 6129321369Sdim 6130321369Sdimstatic inline __ATTRS_o_ai vector signed long long 6131321369Sdimvec_nand(vector signed long long __a, vector signed long long __b) { 6132321369Sdim return ~(__a & __b); 6133321369Sdim} 6134321369Sdim 6135321369Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6136321369Sdimvec_nand(vector unsigned long long __a, vector unsigned long long __b) { 6137321369Sdim return ~(__a & __b); 6138321369Sdim} 6139321369Sdim 6140321369Sdimstatic inline __ATTRS_o_ai vector float 6141321369Sdimvec_nand(vector float __a, vector float __b) { 6142321369Sdim return (vector float)~((vector unsigned int)__a & 6143321369Sdim (vector unsigned int)__b); 6144321369Sdim} 6145321369Sdim 6146321369Sdimstatic inline __ATTRS_o_ai vector double 6147321369Sdimvec_nand(vector double __a, vector double __b) { 6148321369Sdim return (vector double)~((vector unsigned long long)__a & 6149321369Sdim (vector unsigned long long)__b); 6150321369Sdim} 6151321369Sdim#endif 6152321369Sdim 6153321369Sdim/*-- vec_eqv ----------------------------------------------------------------*/ 6154321369Sdim 6155321369Sdim#if __ARCH__ >= 12 6156321369Sdimstatic inline __ATTRS_o_ai vector bool char 6157321369Sdimvec_eqv(vector bool char __a, vector bool char __b) { 6158321369Sdim return ~(__a ^ __b); 6159321369Sdim} 6160321369Sdim 6161321369Sdimstatic inline __ATTRS_o_ai vector signed char 6162321369Sdimvec_eqv(vector signed char __a, vector signed char __b) { 6163321369Sdim return ~(__a ^ __b); 6164321369Sdim} 6165321369Sdim 6166321369Sdimstatic inline __ATTRS_o_ai vector unsigned char 6167321369Sdimvec_eqv(vector unsigned char __a, vector unsigned char __b) { 6168321369Sdim return ~(__a ^ __b); 6169321369Sdim} 6170321369Sdim 6171321369Sdimstatic inline __ATTRS_o_ai vector bool short 6172321369Sdimvec_eqv(vector bool short __a, vector bool short __b) { 6173321369Sdim return ~(__a ^ __b); 6174321369Sdim} 6175321369Sdim 6176321369Sdimstatic inline __ATTRS_o_ai vector signed short 6177321369Sdimvec_eqv(vector signed short __a, vector signed short __b) { 6178321369Sdim return ~(__a ^ __b); 6179321369Sdim} 6180321369Sdim 6181321369Sdimstatic inline __ATTRS_o_ai vector unsigned short 6182321369Sdimvec_eqv(vector unsigned short __a, vector unsigned short __b) { 6183321369Sdim return ~(__a ^ __b); 6184321369Sdim} 6185321369Sdim 6186321369Sdimstatic inline __ATTRS_o_ai vector bool int 6187321369Sdimvec_eqv(vector bool int __a, vector bool int __b) { 6188321369Sdim return ~(__a ^ __b); 6189321369Sdim} 6190321369Sdim 6191321369Sdimstatic inline __ATTRS_o_ai vector signed int 6192321369Sdimvec_eqv(vector signed int __a, vector signed int __b) { 6193321369Sdim return ~(__a ^ __b); 6194321369Sdim} 6195321369Sdim 6196321369Sdimstatic inline __ATTRS_o_ai vector unsigned int 6197321369Sdimvec_eqv(vector unsigned int __a, vector unsigned int __b) { 6198321369Sdim return ~(__a ^ __b); 6199321369Sdim} 6200321369Sdim 6201321369Sdimstatic inline __ATTRS_o_ai vector bool long long 6202321369Sdimvec_eqv(vector bool long long __a, vector bool long long __b) { 6203321369Sdim return ~(__a ^ __b); 6204321369Sdim} 6205321369Sdim 6206321369Sdimstatic inline __ATTRS_o_ai vector signed long long 6207321369Sdimvec_eqv(vector signed long long __a, vector signed long long __b) { 6208321369Sdim return ~(__a ^ __b); 6209321369Sdim} 6210321369Sdim 6211321369Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6212321369Sdimvec_eqv(vector unsigned long long __a, vector unsigned long long __b) { 6213321369Sdim return ~(__a ^ __b); 6214321369Sdim} 6215321369Sdim 6216321369Sdimstatic inline __ATTRS_o_ai vector float 6217321369Sdimvec_eqv(vector float __a, vector float __b) { 6218321369Sdim return (vector float)~((vector unsigned int)__a ^ 6219321369Sdim (vector unsigned int)__b); 6220321369Sdim} 6221321369Sdim 6222321369Sdimstatic inline __ATTRS_o_ai vector double 6223321369Sdimvec_eqv(vector double __a, vector double __b) { 6224321369Sdim return (vector double)~((vector unsigned long long)__a ^ 6225321369Sdim (vector unsigned long long)__b); 6226321369Sdim} 6227321369Sdim#endif 6228321369Sdim 6229287512Sdim/*-- vec_cntlz --------------------------------------------------------------*/ 6230287512Sdim 6231287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6232287512Sdimvec_cntlz(vector signed char __a) { 6233287512Sdim return __builtin_s390_vclzb((vector unsigned char)__a); 6234287512Sdim} 6235287512Sdim 6236287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6237287512Sdimvec_cntlz(vector unsigned char __a) { 6238287512Sdim return __builtin_s390_vclzb(__a); 6239287512Sdim} 6240287512Sdim 6241287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6242287512Sdimvec_cntlz(vector signed short __a) { 6243287512Sdim return __builtin_s390_vclzh((vector unsigned short)__a); 6244287512Sdim} 6245287512Sdim 6246287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6247287512Sdimvec_cntlz(vector unsigned short __a) { 6248287512Sdim return __builtin_s390_vclzh(__a); 6249287512Sdim} 6250287512Sdim 6251287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6252287512Sdimvec_cntlz(vector signed int __a) { 6253287512Sdim return __builtin_s390_vclzf((vector unsigned int)__a); 6254287512Sdim} 6255287512Sdim 6256287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6257287512Sdimvec_cntlz(vector unsigned int __a) { 6258287512Sdim return __builtin_s390_vclzf(__a); 6259287512Sdim} 6260287512Sdim 6261287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6262287512Sdimvec_cntlz(vector signed long long __a) { 6263287512Sdim return __builtin_s390_vclzg((vector unsigned long long)__a); 6264287512Sdim} 6265287512Sdim 6266287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6267287512Sdimvec_cntlz(vector unsigned long long __a) { 6268287512Sdim return __builtin_s390_vclzg(__a); 6269287512Sdim} 6270287512Sdim 6271287512Sdim/*-- vec_cnttz --------------------------------------------------------------*/ 6272287512Sdim 6273287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6274287512Sdimvec_cnttz(vector signed char __a) { 6275287512Sdim return __builtin_s390_vctzb((vector unsigned char)__a); 6276287512Sdim} 6277287512Sdim 6278287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6279287512Sdimvec_cnttz(vector unsigned char __a) { 6280287512Sdim return __builtin_s390_vctzb(__a); 6281287512Sdim} 6282287512Sdim 6283287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6284287512Sdimvec_cnttz(vector signed short __a) { 6285287512Sdim return __builtin_s390_vctzh((vector unsigned short)__a); 6286287512Sdim} 6287287512Sdim 6288287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6289287512Sdimvec_cnttz(vector unsigned short __a) { 6290287512Sdim return __builtin_s390_vctzh(__a); 6291287512Sdim} 6292287512Sdim 6293287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6294287512Sdimvec_cnttz(vector signed int __a) { 6295287512Sdim return __builtin_s390_vctzf((vector unsigned int)__a); 6296287512Sdim} 6297287512Sdim 6298287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6299287512Sdimvec_cnttz(vector unsigned int __a) { 6300287512Sdim return __builtin_s390_vctzf(__a); 6301287512Sdim} 6302287512Sdim 6303287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6304287512Sdimvec_cnttz(vector signed long long __a) { 6305287512Sdim return __builtin_s390_vctzg((vector unsigned long long)__a); 6306287512Sdim} 6307287512Sdim 6308287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6309287512Sdimvec_cnttz(vector unsigned long long __a) { 6310287512Sdim return __builtin_s390_vctzg(__a); 6311287512Sdim} 6312287512Sdim 6313287512Sdim/*-- vec_popcnt -------------------------------------------------------------*/ 6314287512Sdim 6315287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6316287512Sdimvec_popcnt(vector signed char __a) { 6317287512Sdim return __builtin_s390_vpopctb((vector unsigned char)__a); 6318287512Sdim} 6319287512Sdim 6320287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6321287512Sdimvec_popcnt(vector unsigned char __a) { 6322287512Sdim return __builtin_s390_vpopctb(__a); 6323287512Sdim} 6324287512Sdim 6325287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6326287512Sdimvec_popcnt(vector signed short __a) { 6327287512Sdim return __builtin_s390_vpopcth((vector unsigned short)__a); 6328287512Sdim} 6329287512Sdim 6330287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6331287512Sdimvec_popcnt(vector unsigned short __a) { 6332287512Sdim return __builtin_s390_vpopcth(__a); 6333287512Sdim} 6334287512Sdim 6335287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6336287512Sdimvec_popcnt(vector signed int __a) { 6337287512Sdim return __builtin_s390_vpopctf((vector unsigned int)__a); 6338287512Sdim} 6339287512Sdim 6340287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6341287512Sdimvec_popcnt(vector unsigned int __a) { 6342287512Sdim return __builtin_s390_vpopctf(__a); 6343287512Sdim} 6344287512Sdim 6345287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6346287512Sdimvec_popcnt(vector signed long long __a) { 6347287512Sdim return __builtin_s390_vpopctg((vector unsigned long long)__a); 6348287512Sdim} 6349287512Sdim 6350287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6351287512Sdimvec_popcnt(vector unsigned long long __a) { 6352287512Sdim return __builtin_s390_vpopctg(__a); 6353287512Sdim} 6354287512Sdim 6355287512Sdim/*-- vec_rl -----------------------------------------------------------------*/ 6356287512Sdim 6357287512Sdimstatic inline __ATTRS_o_ai vector signed char 6358287512Sdimvec_rl(vector signed char __a, vector unsigned char __b) { 6359287512Sdim return (vector signed char)__builtin_s390_verllvb( 6360287512Sdim (vector unsigned char)__a, __b); 6361287512Sdim} 6362287512Sdim 6363287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6364287512Sdimvec_rl(vector unsigned char __a, vector unsigned char __b) { 6365287512Sdim return __builtin_s390_verllvb(__a, __b); 6366287512Sdim} 6367287512Sdim 6368287512Sdimstatic inline __ATTRS_o_ai vector signed short 6369287512Sdimvec_rl(vector signed short __a, vector unsigned short __b) { 6370287512Sdim return (vector signed short)__builtin_s390_verllvh( 6371287512Sdim (vector unsigned short)__a, __b); 6372287512Sdim} 6373287512Sdim 6374287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6375287512Sdimvec_rl(vector unsigned short __a, vector unsigned short __b) { 6376287512Sdim return __builtin_s390_verllvh(__a, __b); 6377287512Sdim} 6378287512Sdim 6379287512Sdimstatic inline __ATTRS_o_ai vector signed int 6380287512Sdimvec_rl(vector signed int __a, vector unsigned int __b) { 6381287512Sdim return (vector signed int)__builtin_s390_verllvf( 6382287512Sdim (vector unsigned int)__a, __b); 6383287512Sdim} 6384287512Sdim 6385287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6386287512Sdimvec_rl(vector unsigned int __a, vector unsigned int __b) { 6387287512Sdim return __builtin_s390_verllvf(__a, __b); 6388287512Sdim} 6389287512Sdim 6390287512Sdimstatic inline __ATTRS_o_ai vector signed long long 6391287512Sdimvec_rl(vector signed long long __a, vector unsigned long long __b) { 6392287512Sdim return (vector signed long long)__builtin_s390_verllvg( 6393287512Sdim (vector unsigned long long)__a, __b); 6394287512Sdim} 6395287512Sdim 6396287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6397287512Sdimvec_rl(vector unsigned long long __a, vector unsigned long long __b) { 6398287512Sdim return __builtin_s390_verllvg(__a, __b); 6399287512Sdim} 6400287512Sdim 6401287512Sdim/*-- vec_rli ----------------------------------------------------------------*/ 6402287512Sdim 6403287512Sdimstatic inline __ATTRS_o_ai vector signed char 6404287512Sdimvec_rli(vector signed char __a, unsigned long __b) { 6405287512Sdim return (vector signed char)__builtin_s390_verllb( 6406287512Sdim (vector unsigned char)__a, (int)__b); 6407287512Sdim} 6408287512Sdim 6409287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6410287512Sdimvec_rli(vector unsigned char __a, unsigned long __b) { 6411287512Sdim return __builtin_s390_verllb(__a, (int)__b); 6412287512Sdim} 6413287512Sdim 6414287512Sdimstatic inline __ATTRS_o_ai vector signed short 6415287512Sdimvec_rli(vector signed short __a, unsigned long __b) { 6416287512Sdim return (vector signed short)__builtin_s390_verllh( 6417287512Sdim (vector unsigned short)__a, (int)__b); 6418287512Sdim} 6419287512Sdim 6420287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6421287512Sdimvec_rli(vector unsigned short __a, unsigned long __b) { 6422287512Sdim return __builtin_s390_verllh(__a, (int)__b); 6423287512Sdim} 6424287512Sdim 6425287512Sdimstatic inline __ATTRS_o_ai vector signed int 6426287512Sdimvec_rli(vector signed int __a, unsigned long __b) { 6427287512Sdim return (vector signed int)__builtin_s390_verllf( 6428287512Sdim (vector unsigned int)__a, (int)__b); 6429287512Sdim} 6430287512Sdim 6431287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6432287512Sdimvec_rli(vector unsigned int __a, unsigned long __b) { 6433287512Sdim return __builtin_s390_verllf(__a, (int)__b); 6434287512Sdim} 6435287512Sdim 6436287512Sdimstatic inline __ATTRS_o_ai vector signed long long 6437287512Sdimvec_rli(vector signed long long __a, unsigned long __b) { 6438287512Sdim return (vector signed long long)__builtin_s390_verllg( 6439287512Sdim (vector unsigned long long)__a, (int)__b); 6440287512Sdim} 6441287512Sdim 6442287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6443287512Sdimvec_rli(vector unsigned long long __a, unsigned long __b) { 6444287512Sdim return __builtin_s390_verllg(__a, (int)__b); 6445287512Sdim} 6446287512Sdim 6447287512Sdim/*-- vec_rl_mask ------------------------------------------------------------*/ 6448287512Sdim 6449287512Sdimextern __ATTRS_o vector signed char 6450287512Sdimvec_rl_mask(vector signed char __a, vector unsigned char __b, 6451287512Sdim unsigned char __c) __constant(__c); 6452287512Sdim 6453287512Sdimextern __ATTRS_o vector unsigned char 6454287512Sdimvec_rl_mask(vector unsigned char __a, vector unsigned char __b, 6455287512Sdim unsigned char __c) __constant(__c); 6456287512Sdim 6457287512Sdimextern __ATTRS_o vector signed short 6458287512Sdimvec_rl_mask(vector signed short __a, vector unsigned short __b, 6459287512Sdim unsigned char __c) __constant(__c); 6460287512Sdim 6461287512Sdimextern __ATTRS_o vector unsigned short 6462287512Sdimvec_rl_mask(vector unsigned short __a, vector unsigned short __b, 6463287512Sdim unsigned char __c) __constant(__c); 6464287512Sdim 6465287512Sdimextern __ATTRS_o vector signed int 6466287512Sdimvec_rl_mask(vector signed int __a, vector unsigned int __b, 6467287512Sdim unsigned char __c) __constant(__c); 6468287512Sdim 6469287512Sdimextern __ATTRS_o vector unsigned int 6470287512Sdimvec_rl_mask(vector unsigned int __a, vector unsigned int __b, 6471287512Sdim unsigned char __c) __constant(__c); 6472287512Sdim 6473287512Sdimextern __ATTRS_o vector signed long long 6474287512Sdimvec_rl_mask(vector signed long long __a, vector unsigned long long __b, 6475287512Sdim unsigned char __c) __constant(__c); 6476287512Sdim 6477287512Sdimextern __ATTRS_o vector unsigned long long 6478287512Sdimvec_rl_mask(vector unsigned long long __a, vector unsigned long long __b, 6479287512Sdim unsigned char __c) __constant(__c); 6480287512Sdim 6481287512Sdim#define vec_rl_mask(X, Y, Z) ((__typeof__((vec_rl_mask)((X), (Y), (Z)))) \ 6482287512Sdim __extension__ ({ \ 6483287512Sdim vector unsigned char __res; \ 6484287512Sdim vector unsigned char __x = (vector unsigned char)(X); \ 6485287512Sdim vector unsigned char __y = (vector unsigned char)(Y); \ 6486287512Sdim switch (sizeof ((X)[0])) { \ 6487287512Sdim case 1: __res = (vector unsigned char) __builtin_s390_verimb( \ 6488287512Sdim (vector unsigned char)__x, (vector unsigned char)__x, \ 6489287512Sdim (vector unsigned char)__y, (Z)); break; \ 6490287512Sdim case 2: __res = (vector unsigned char) __builtin_s390_verimh( \ 6491287512Sdim (vector unsigned short)__x, (vector unsigned short)__x, \ 6492287512Sdim (vector unsigned short)__y, (Z)); break; \ 6493287512Sdim case 4: __res = (vector unsigned char) __builtin_s390_verimf( \ 6494287512Sdim (vector unsigned int)__x, (vector unsigned int)__x, \ 6495287512Sdim (vector unsigned int)__y, (Z)); break; \ 6496287512Sdim default: __res = (vector unsigned char) __builtin_s390_verimg( \ 6497287512Sdim (vector unsigned long long)__x, (vector unsigned long long)__x, \ 6498287512Sdim (vector unsigned long long)__y, (Z)); break; \ 6499287512Sdim } __res; })) 6500287512Sdim 6501287512Sdim/*-- vec_sll ----------------------------------------------------------------*/ 6502287512Sdim 6503287512Sdimstatic inline __ATTRS_o_ai vector signed char 6504287512Sdimvec_sll(vector signed char __a, vector unsigned char __b) { 6505287512Sdim return (vector signed char)__builtin_s390_vsl( 6506287512Sdim (vector unsigned char)__a, __b); 6507287512Sdim} 6508287512Sdim 6509321369Sdim// This prototype is deprecated. 6510287512Sdimstatic inline __ATTRS_o_ai vector signed char 6511287512Sdimvec_sll(vector signed char __a, vector unsigned short __b) { 6512287512Sdim return (vector signed char)__builtin_s390_vsl( 6513287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6514287512Sdim} 6515287512Sdim 6516321369Sdim// This prototype is deprecated. 6517287512Sdimstatic inline __ATTRS_o_ai vector signed char 6518287512Sdimvec_sll(vector signed char __a, vector unsigned int __b) { 6519287512Sdim return (vector signed char)__builtin_s390_vsl( 6520287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6521287512Sdim} 6522287512Sdim 6523321369Sdim// This prototype is deprecated. 6524287512Sdimstatic inline __ATTRS_o_ai vector bool char 6525287512Sdimvec_sll(vector bool char __a, vector unsigned char __b) { 6526287512Sdim return (vector bool char)__builtin_s390_vsl( 6527287512Sdim (vector unsigned char)__a, __b); 6528287512Sdim} 6529287512Sdim 6530321369Sdim// This prototype is deprecated. 6531287512Sdimstatic inline __ATTRS_o_ai vector bool char 6532287512Sdimvec_sll(vector bool char __a, vector unsigned short __b) { 6533287512Sdim return (vector bool char)__builtin_s390_vsl( 6534287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6535287512Sdim} 6536287512Sdim 6537321369Sdim// This prototype is deprecated. 6538287512Sdimstatic inline __ATTRS_o_ai vector bool char 6539287512Sdimvec_sll(vector bool char __a, vector unsigned int __b) { 6540287512Sdim return (vector bool char)__builtin_s390_vsl( 6541287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6542287512Sdim} 6543287512Sdim 6544287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6545287512Sdimvec_sll(vector unsigned char __a, vector unsigned char __b) { 6546287512Sdim return __builtin_s390_vsl(__a, __b); 6547287512Sdim} 6548287512Sdim 6549321369Sdim// This prototype is deprecated. 6550287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6551287512Sdimvec_sll(vector unsigned char __a, vector unsigned short __b) { 6552287512Sdim return __builtin_s390_vsl(__a, (vector unsigned char)__b); 6553287512Sdim} 6554287512Sdim 6555321369Sdim// This prototype is deprecated. 6556287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6557287512Sdimvec_sll(vector unsigned char __a, vector unsigned int __b) { 6558287512Sdim return __builtin_s390_vsl(__a, (vector unsigned char)__b); 6559287512Sdim} 6560287512Sdim 6561287512Sdimstatic inline __ATTRS_o_ai vector signed short 6562287512Sdimvec_sll(vector signed short __a, vector unsigned char __b) { 6563287512Sdim return (vector signed short)__builtin_s390_vsl( 6564287512Sdim (vector unsigned char)__a, __b); 6565287512Sdim} 6566287512Sdim 6567321369Sdim// This prototype is deprecated. 6568287512Sdimstatic inline __ATTRS_o_ai vector signed short 6569287512Sdimvec_sll(vector signed short __a, vector unsigned short __b) { 6570287512Sdim return (vector signed short)__builtin_s390_vsl( 6571287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6572287512Sdim} 6573287512Sdim 6574321369Sdim// This prototype is deprecated. 6575287512Sdimstatic inline __ATTRS_o_ai vector signed short 6576287512Sdimvec_sll(vector signed short __a, vector unsigned int __b) { 6577287512Sdim return (vector signed short)__builtin_s390_vsl( 6578287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6579287512Sdim} 6580287512Sdim 6581321369Sdim// This prototype is deprecated. 6582287512Sdimstatic inline __ATTRS_o_ai vector bool short 6583287512Sdimvec_sll(vector bool short __a, vector unsigned char __b) { 6584287512Sdim return (vector bool short)__builtin_s390_vsl( 6585287512Sdim (vector unsigned char)__a, __b); 6586287512Sdim} 6587287512Sdim 6588321369Sdim// This prototype is deprecated. 6589287512Sdimstatic inline __ATTRS_o_ai vector bool short 6590287512Sdimvec_sll(vector bool short __a, vector unsigned short __b) { 6591287512Sdim return (vector bool short)__builtin_s390_vsl( 6592287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6593287512Sdim} 6594287512Sdim 6595321369Sdim// This prototype is deprecated. 6596287512Sdimstatic inline __ATTRS_o_ai vector bool short 6597287512Sdimvec_sll(vector bool short __a, vector unsigned int __b) { 6598287512Sdim return (vector bool short)__builtin_s390_vsl( 6599287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6600287512Sdim} 6601287512Sdim 6602287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6603287512Sdimvec_sll(vector unsigned short __a, vector unsigned char __b) { 6604287512Sdim return (vector unsigned short)__builtin_s390_vsl( 6605287512Sdim (vector unsigned char)__a, __b); 6606287512Sdim} 6607287512Sdim 6608321369Sdim// This prototype is deprecated. 6609287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6610287512Sdimvec_sll(vector unsigned short __a, vector unsigned short __b) { 6611287512Sdim return (vector unsigned short)__builtin_s390_vsl( 6612287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6613287512Sdim} 6614287512Sdim 6615321369Sdim// This prototype is deprecated. 6616287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6617287512Sdimvec_sll(vector unsigned short __a, vector unsigned int __b) { 6618287512Sdim return (vector unsigned short)__builtin_s390_vsl( 6619287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6620287512Sdim} 6621287512Sdim 6622287512Sdimstatic inline __ATTRS_o_ai vector signed int 6623287512Sdimvec_sll(vector signed int __a, vector unsigned char __b) { 6624287512Sdim return (vector signed int)__builtin_s390_vsl( 6625287512Sdim (vector unsigned char)__a, __b); 6626287512Sdim} 6627287512Sdim 6628321369Sdim// This prototype is deprecated. 6629287512Sdimstatic inline __ATTRS_o_ai vector signed int 6630287512Sdimvec_sll(vector signed int __a, vector unsigned short __b) { 6631287512Sdim return (vector signed int)__builtin_s390_vsl( 6632287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6633287512Sdim} 6634287512Sdim 6635321369Sdim// This prototype is deprecated. 6636287512Sdimstatic inline __ATTRS_o_ai vector signed int 6637287512Sdimvec_sll(vector signed int __a, vector unsigned int __b) { 6638287512Sdim return (vector signed int)__builtin_s390_vsl( 6639287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6640287512Sdim} 6641287512Sdim 6642321369Sdim// This prototype is deprecated. 6643287512Sdimstatic inline __ATTRS_o_ai vector bool int 6644287512Sdimvec_sll(vector bool int __a, vector unsigned char __b) { 6645287512Sdim return (vector bool int)__builtin_s390_vsl( 6646287512Sdim (vector unsigned char)__a, __b); 6647287512Sdim} 6648287512Sdim 6649321369Sdim// This prototype is deprecated. 6650287512Sdimstatic inline __ATTRS_o_ai vector bool int 6651287512Sdimvec_sll(vector bool int __a, vector unsigned short __b) { 6652287512Sdim return (vector bool int)__builtin_s390_vsl( 6653287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6654287512Sdim} 6655287512Sdim 6656321369Sdim// This prototype is deprecated. 6657287512Sdimstatic inline __ATTRS_o_ai vector bool int 6658287512Sdimvec_sll(vector bool int __a, vector unsigned int __b) { 6659287512Sdim return (vector bool int)__builtin_s390_vsl( 6660287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6661287512Sdim} 6662287512Sdim 6663287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6664287512Sdimvec_sll(vector unsigned int __a, vector unsigned char __b) { 6665287512Sdim return (vector unsigned int)__builtin_s390_vsl( 6666287512Sdim (vector unsigned char)__a, __b); 6667287512Sdim} 6668287512Sdim 6669321369Sdim// This prototype is deprecated. 6670287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6671287512Sdimvec_sll(vector unsigned int __a, vector unsigned short __b) { 6672287512Sdim return (vector unsigned int)__builtin_s390_vsl( 6673287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6674287512Sdim} 6675287512Sdim 6676321369Sdim// This prototype is deprecated. 6677287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6678287512Sdimvec_sll(vector unsigned int __a, vector unsigned int __b) { 6679287512Sdim return (vector unsigned int)__builtin_s390_vsl( 6680287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6681287512Sdim} 6682287512Sdim 6683287512Sdimstatic inline __ATTRS_o_ai vector signed long long 6684287512Sdimvec_sll(vector signed long long __a, vector unsigned char __b) { 6685287512Sdim return (vector signed long long)__builtin_s390_vsl( 6686287512Sdim (vector unsigned char)__a, __b); 6687287512Sdim} 6688287512Sdim 6689321369Sdim// This prototype is deprecated. 6690287512Sdimstatic inline __ATTRS_o_ai vector signed long long 6691287512Sdimvec_sll(vector signed long long __a, vector unsigned short __b) { 6692287512Sdim return (vector signed long long)__builtin_s390_vsl( 6693287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6694287512Sdim} 6695287512Sdim 6696321369Sdim// This prototype is deprecated. 6697287512Sdimstatic inline __ATTRS_o_ai vector signed long long 6698287512Sdimvec_sll(vector signed long long __a, vector unsigned int __b) { 6699287512Sdim return (vector signed long long)__builtin_s390_vsl( 6700287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6701287512Sdim} 6702287512Sdim 6703321369Sdim// This prototype is deprecated. 6704287512Sdimstatic inline __ATTRS_o_ai vector bool long long 6705287512Sdimvec_sll(vector bool long long __a, vector unsigned char __b) { 6706287512Sdim return (vector bool long long)__builtin_s390_vsl( 6707287512Sdim (vector unsigned char)__a, __b); 6708287512Sdim} 6709287512Sdim 6710321369Sdim// This prototype is deprecated. 6711287512Sdimstatic inline __ATTRS_o_ai vector bool long long 6712287512Sdimvec_sll(vector bool long long __a, vector unsigned short __b) { 6713287512Sdim return (vector bool long long)__builtin_s390_vsl( 6714287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6715287512Sdim} 6716287512Sdim 6717321369Sdim// This prototype is deprecated. 6718287512Sdimstatic inline __ATTRS_o_ai vector bool long long 6719287512Sdimvec_sll(vector bool long long __a, vector unsigned int __b) { 6720287512Sdim return (vector bool long long)__builtin_s390_vsl( 6721287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6722287512Sdim} 6723287512Sdim 6724287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6725287512Sdimvec_sll(vector unsigned long long __a, vector unsigned char __b) { 6726287512Sdim return (vector unsigned long long)__builtin_s390_vsl( 6727287512Sdim (vector unsigned char)__a, __b); 6728287512Sdim} 6729287512Sdim 6730321369Sdim// This prototype is deprecated. 6731287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6732287512Sdimvec_sll(vector unsigned long long __a, vector unsigned short __b) { 6733287512Sdim return (vector unsigned long long)__builtin_s390_vsl( 6734287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6735287512Sdim} 6736287512Sdim 6737321369Sdim// This prototype is deprecated. 6738287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6739287512Sdimvec_sll(vector unsigned long long __a, vector unsigned int __b) { 6740287512Sdim return (vector unsigned long long)__builtin_s390_vsl( 6741287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6742287512Sdim} 6743287512Sdim 6744287512Sdim/*-- vec_slb ----------------------------------------------------------------*/ 6745287512Sdim 6746287512Sdimstatic inline __ATTRS_o_ai vector signed char 6747287512Sdimvec_slb(vector signed char __a, vector signed char __b) { 6748287512Sdim return (vector signed char)__builtin_s390_vslb( 6749287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6750287512Sdim} 6751287512Sdim 6752287512Sdimstatic inline __ATTRS_o_ai vector signed char 6753287512Sdimvec_slb(vector signed char __a, vector unsigned char __b) { 6754287512Sdim return (vector signed char)__builtin_s390_vslb( 6755287512Sdim (vector unsigned char)__a, __b); 6756287512Sdim} 6757287512Sdim 6758287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6759287512Sdimvec_slb(vector unsigned char __a, vector signed char __b) { 6760287512Sdim return __builtin_s390_vslb(__a, (vector unsigned char)__b); 6761287512Sdim} 6762287512Sdim 6763287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 6764287512Sdimvec_slb(vector unsigned char __a, vector unsigned char __b) { 6765287512Sdim return __builtin_s390_vslb(__a, __b); 6766287512Sdim} 6767287512Sdim 6768287512Sdimstatic inline __ATTRS_o_ai vector signed short 6769287512Sdimvec_slb(vector signed short __a, vector signed short __b) { 6770287512Sdim return (vector signed short)__builtin_s390_vslb( 6771287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6772287512Sdim} 6773287512Sdim 6774287512Sdimstatic inline __ATTRS_o_ai vector signed short 6775287512Sdimvec_slb(vector signed short __a, vector unsigned short __b) { 6776287512Sdim return (vector signed short)__builtin_s390_vslb( 6777287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6778287512Sdim} 6779287512Sdim 6780287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6781287512Sdimvec_slb(vector unsigned short __a, vector signed short __b) { 6782287512Sdim return (vector unsigned short)__builtin_s390_vslb( 6783287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6784287512Sdim} 6785287512Sdim 6786287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 6787287512Sdimvec_slb(vector unsigned short __a, vector unsigned short __b) { 6788287512Sdim return (vector unsigned short)__builtin_s390_vslb( 6789287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6790287512Sdim} 6791287512Sdim 6792287512Sdimstatic inline __ATTRS_o_ai vector signed int 6793287512Sdimvec_slb(vector signed int __a, vector signed int __b) { 6794287512Sdim return (vector signed int)__builtin_s390_vslb( 6795287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6796287512Sdim} 6797287512Sdim 6798287512Sdimstatic inline __ATTRS_o_ai vector signed int 6799287512Sdimvec_slb(vector signed int __a, vector unsigned int __b) { 6800287512Sdim return (vector signed int)__builtin_s390_vslb( 6801287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6802287512Sdim} 6803287512Sdim 6804287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6805287512Sdimvec_slb(vector unsigned int __a, vector signed int __b) { 6806287512Sdim return (vector unsigned int)__builtin_s390_vslb( 6807287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6808287512Sdim} 6809287512Sdim 6810287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 6811287512Sdimvec_slb(vector unsigned int __a, vector unsigned int __b) { 6812287512Sdim return (vector unsigned int)__builtin_s390_vslb( 6813287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6814287512Sdim} 6815287512Sdim 6816287512Sdimstatic inline __ATTRS_o_ai vector signed long long 6817287512Sdimvec_slb(vector signed long long __a, vector signed long long __b) { 6818287512Sdim return (vector signed long long)__builtin_s390_vslb( 6819287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6820287512Sdim} 6821287512Sdim 6822287512Sdimstatic inline __ATTRS_o_ai vector signed long long 6823287512Sdimvec_slb(vector signed long long __a, vector unsigned long long __b) { 6824287512Sdim return (vector signed long long)__builtin_s390_vslb( 6825287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6826287512Sdim} 6827287512Sdim 6828287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6829287512Sdimvec_slb(vector unsigned long long __a, vector signed long long __b) { 6830287512Sdim return (vector unsigned long long)__builtin_s390_vslb( 6831287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6832287512Sdim} 6833287512Sdim 6834287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 6835287512Sdimvec_slb(vector unsigned long long __a, vector unsigned long long __b) { 6836287512Sdim return (vector unsigned long long)__builtin_s390_vslb( 6837287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6838287512Sdim} 6839287512Sdim 6840321369Sdim#if __ARCH__ >= 12 6841321369Sdimstatic inline __ATTRS_o_ai vector float 6842321369Sdimvec_slb(vector float __a, vector signed int __b) { 6843321369Sdim return (vector float)__builtin_s390_vslb( 6844321369Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6845321369Sdim} 6846321369Sdim 6847321369Sdimstatic inline __ATTRS_o_ai vector float 6848321369Sdimvec_slb(vector float __a, vector unsigned int __b) { 6849321369Sdim return (vector float)__builtin_s390_vslb( 6850321369Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6851321369Sdim} 6852321369Sdim#endif 6853321369Sdim 6854287512Sdimstatic inline __ATTRS_o_ai vector double 6855287512Sdimvec_slb(vector double __a, vector signed long long __b) { 6856287512Sdim return (vector double)__builtin_s390_vslb( 6857287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6858287512Sdim} 6859287512Sdim 6860287512Sdimstatic inline __ATTRS_o_ai vector double 6861287512Sdimvec_slb(vector double __a, vector unsigned long long __b) { 6862287512Sdim return (vector double)__builtin_s390_vslb( 6863287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 6864287512Sdim} 6865287512Sdim 6866287512Sdim/*-- vec_sld ----------------------------------------------------------------*/ 6867287512Sdim 6868287512Sdimextern __ATTRS_o vector signed char 6869287512Sdimvec_sld(vector signed char __a, vector signed char __b, int __c) 6870287512Sdim __constant_range(__c, 0, 15); 6871287512Sdim 6872321369Sdimextern __ATTRS_o vector bool char 6873321369Sdimvec_sld(vector bool char __a, vector bool char __b, int __c) 6874321369Sdim __constant_range(__c, 0, 15); 6875321369Sdim 6876287512Sdimextern __ATTRS_o vector unsigned char 6877287512Sdimvec_sld(vector unsigned char __a, vector unsigned char __b, int __c) 6878287512Sdim __constant_range(__c, 0, 15); 6879287512Sdim 6880287512Sdimextern __ATTRS_o vector signed short 6881287512Sdimvec_sld(vector signed short __a, vector signed short __b, int __c) 6882287512Sdim __constant_range(__c, 0, 15); 6883287512Sdim 6884321369Sdimextern __ATTRS_o vector bool short 6885321369Sdimvec_sld(vector bool short __a, vector bool short __b, int __c) 6886321369Sdim __constant_range(__c, 0, 15); 6887321369Sdim 6888287512Sdimextern __ATTRS_o vector unsigned short 6889287512Sdimvec_sld(vector unsigned short __a, vector unsigned short __b, int __c) 6890287512Sdim __constant_range(__c, 0, 15); 6891287512Sdim 6892287512Sdimextern __ATTRS_o vector signed int 6893287512Sdimvec_sld(vector signed int __a, vector signed int __b, int __c) 6894287512Sdim __constant_range(__c, 0, 15); 6895287512Sdim 6896321369Sdimextern __ATTRS_o vector bool int 6897321369Sdimvec_sld(vector bool int __a, vector bool int __b, int __c) 6898321369Sdim __constant_range(__c, 0, 15); 6899321369Sdim 6900287512Sdimextern __ATTRS_o vector unsigned int 6901287512Sdimvec_sld(vector unsigned int __a, vector unsigned int __b, int __c) 6902287512Sdim __constant_range(__c, 0, 15); 6903287512Sdim 6904287512Sdimextern __ATTRS_o vector signed long long 6905287512Sdimvec_sld(vector signed long long __a, vector signed long long __b, int __c) 6906287512Sdim __constant_range(__c, 0, 15); 6907287512Sdim 6908321369Sdimextern __ATTRS_o vector bool long long 6909321369Sdimvec_sld(vector bool long long __a, vector bool long long __b, int __c) 6910321369Sdim __constant_range(__c, 0, 15); 6911321369Sdim 6912287512Sdimextern __ATTRS_o vector unsigned long long 6913287512Sdimvec_sld(vector unsigned long long __a, vector unsigned long long __b, int __c) 6914287512Sdim __constant_range(__c, 0, 15); 6915287512Sdim 6916321369Sdim#if __ARCH__ >= 12 6917321369Sdimextern __ATTRS_o vector float 6918321369Sdimvec_sld(vector float __a, vector float __b, int __c) 6919321369Sdim __constant_range(__c, 0, 15); 6920321369Sdim#endif 6921321369Sdim 6922287512Sdimextern __ATTRS_o vector double 6923287512Sdimvec_sld(vector double __a, vector double __b, int __c) 6924287512Sdim __constant_range(__c, 0, 15); 6925287512Sdim 6926287512Sdim#define vec_sld(X, Y, Z) ((__typeof__((vec_sld)((X), (Y), (Z)))) \ 6927287512Sdim __builtin_s390_vsldb((vector unsigned char)(X), \ 6928287512Sdim (vector unsigned char)(Y), (Z))) 6929287512Sdim 6930287512Sdim/*-- vec_sldw ---------------------------------------------------------------*/ 6931287512Sdim 6932287512Sdimextern __ATTRS_o vector signed char 6933287512Sdimvec_sldw(vector signed char __a, vector signed char __b, int __c) 6934287512Sdim __constant_range(__c, 0, 3); 6935287512Sdim 6936287512Sdimextern __ATTRS_o vector unsigned char 6937287512Sdimvec_sldw(vector unsigned char __a, vector unsigned char __b, int __c) 6938287512Sdim __constant_range(__c, 0, 3); 6939287512Sdim 6940287512Sdimextern __ATTRS_o vector signed short 6941287512Sdimvec_sldw(vector signed short __a, vector signed short __b, int __c) 6942287512Sdim __constant_range(__c, 0, 3); 6943287512Sdim 6944287512Sdimextern __ATTRS_o vector unsigned short 6945287512Sdimvec_sldw(vector unsigned short __a, vector unsigned short __b, int __c) 6946287512Sdim __constant_range(__c, 0, 3); 6947287512Sdim 6948287512Sdimextern __ATTRS_o vector signed int 6949287512Sdimvec_sldw(vector signed int __a, vector signed int __b, int __c) 6950287512Sdim __constant_range(__c, 0, 3); 6951287512Sdim 6952287512Sdimextern __ATTRS_o vector unsigned int 6953287512Sdimvec_sldw(vector unsigned int __a, vector unsigned int __b, int __c) 6954287512Sdim __constant_range(__c, 0, 3); 6955287512Sdim 6956287512Sdimextern __ATTRS_o vector signed long long 6957287512Sdimvec_sldw(vector signed long long __a, vector signed long long __b, int __c) 6958287512Sdim __constant_range(__c, 0, 3); 6959287512Sdim 6960287512Sdimextern __ATTRS_o vector unsigned long long 6961287512Sdimvec_sldw(vector unsigned long long __a, vector unsigned long long __b, int __c) 6962287512Sdim __constant_range(__c, 0, 3); 6963287512Sdim 6964321369Sdim// This prototype is deprecated. 6965287512Sdimextern __ATTRS_o vector double 6966287512Sdimvec_sldw(vector double __a, vector double __b, int __c) 6967287512Sdim __constant_range(__c, 0, 3); 6968287512Sdim 6969287512Sdim#define vec_sldw(X, Y, Z) ((__typeof__((vec_sldw)((X), (Y), (Z)))) \ 6970287512Sdim __builtin_s390_vsldb((vector unsigned char)(X), \ 6971287512Sdim (vector unsigned char)(Y), (Z) * 4)) 6972287512Sdim 6973353358Sdim/*-- vec_sldb ---------------------------------------------------------------*/ 6974353358Sdim 6975353358Sdim#if __ARCH__ >= 13 6976353358Sdim 6977353358Sdimextern __ATTRS_o vector signed char 6978353358Sdimvec_sldb(vector signed char __a, vector signed char __b, int __c) 6979353358Sdim __constant_range(__c, 0, 7); 6980353358Sdim 6981353358Sdimextern __ATTRS_o vector unsigned char 6982353358Sdimvec_sldb(vector unsigned char __a, vector unsigned char __b, int __c) 6983353358Sdim __constant_range(__c, 0, 7); 6984353358Sdim 6985353358Sdimextern __ATTRS_o vector signed short 6986353358Sdimvec_sldb(vector signed short __a, vector signed short __b, int __c) 6987353358Sdim __constant_range(__c, 0, 7); 6988353358Sdim 6989353358Sdimextern __ATTRS_o vector unsigned short 6990353358Sdimvec_sldb(vector unsigned short __a, vector unsigned short __b, int __c) 6991353358Sdim __constant_range(__c, 0, 7); 6992353358Sdim 6993353358Sdimextern __ATTRS_o vector signed int 6994353358Sdimvec_sldb(vector signed int __a, vector signed int __b, int __c) 6995353358Sdim __constant_range(__c, 0, 7); 6996353358Sdim 6997353358Sdimextern __ATTRS_o vector unsigned int 6998353358Sdimvec_sldb(vector unsigned int __a, vector unsigned int __b, int __c) 6999353358Sdim __constant_range(__c, 0, 7); 7000353358Sdim 7001353358Sdimextern __ATTRS_o vector signed long long 7002353358Sdimvec_sldb(vector signed long long __a, vector signed long long __b, int __c) 7003353358Sdim __constant_range(__c, 0, 7); 7004353358Sdim 7005353358Sdimextern __ATTRS_o vector unsigned long long 7006353358Sdimvec_sldb(vector unsigned long long __a, vector unsigned long long __b, int __c) 7007353358Sdim __constant_range(__c, 0, 7); 7008353358Sdim 7009353358Sdimextern __ATTRS_o vector float 7010353358Sdimvec_sldb(vector float __a, vector float __b, int __c) 7011353358Sdim __constant_range(__c, 0, 7); 7012353358Sdim 7013353358Sdimextern __ATTRS_o vector double 7014353358Sdimvec_sldb(vector double __a, vector double __b, int __c) 7015353358Sdim __constant_range(__c, 0, 7); 7016353358Sdim 7017353358Sdim#define vec_sldb(X, Y, Z) ((__typeof__((vec_sldb)((X), (Y), (Z)))) \ 7018353358Sdim __builtin_s390_vsld((vector unsigned char)(X), \ 7019353358Sdim (vector unsigned char)(Y), (Z))) 7020353358Sdim 7021353358Sdim#endif 7022353358Sdim 7023287512Sdim/*-- vec_sral ---------------------------------------------------------------*/ 7024287512Sdim 7025287512Sdimstatic inline __ATTRS_o_ai vector signed char 7026287512Sdimvec_sral(vector signed char __a, vector unsigned char __b) { 7027287512Sdim return (vector signed char)__builtin_s390_vsra( 7028287512Sdim (vector unsigned char)__a, __b); 7029287512Sdim} 7030287512Sdim 7031321369Sdim// This prototype is deprecated. 7032287512Sdimstatic inline __ATTRS_o_ai vector signed char 7033287512Sdimvec_sral(vector signed char __a, vector unsigned short __b) { 7034287512Sdim return (vector signed char)__builtin_s390_vsra( 7035287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7036287512Sdim} 7037287512Sdim 7038321369Sdim// This prototype is deprecated. 7039287512Sdimstatic inline __ATTRS_o_ai vector signed char 7040287512Sdimvec_sral(vector signed char __a, vector unsigned int __b) { 7041287512Sdim return (vector signed char)__builtin_s390_vsra( 7042287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7043287512Sdim} 7044287512Sdim 7045321369Sdim// This prototype is deprecated. 7046287512Sdimstatic inline __ATTRS_o_ai vector bool char 7047287512Sdimvec_sral(vector bool char __a, vector unsigned char __b) { 7048287512Sdim return (vector bool char)__builtin_s390_vsra( 7049287512Sdim (vector unsigned char)__a, __b); 7050287512Sdim} 7051287512Sdim 7052321369Sdim// This prototype is deprecated. 7053287512Sdimstatic inline __ATTRS_o_ai vector bool char 7054287512Sdimvec_sral(vector bool char __a, vector unsigned short __b) { 7055287512Sdim return (vector bool char)__builtin_s390_vsra( 7056287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7057287512Sdim} 7058287512Sdim 7059321369Sdim// This prototype is deprecated. 7060287512Sdimstatic inline __ATTRS_o_ai vector bool char 7061287512Sdimvec_sral(vector bool char __a, vector unsigned int __b) { 7062287512Sdim return (vector bool char)__builtin_s390_vsra( 7063287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7064287512Sdim} 7065287512Sdim 7066287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7067287512Sdimvec_sral(vector unsigned char __a, vector unsigned char __b) { 7068287512Sdim return __builtin_s390_vsra(__a, __b); 7069287512Sdim} 7070287512Sdim 7071321369Sdim// This prototype is deprecated. 7072287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7073287512Sdimvec_sral(vector unsigned char __a, vector unsigned short __b) { 7074287512Sdim return __builtin_s390_vsra(__a, (vector unsigned char)__b); 7075287512Sdim} 7076287512Sdim 7077321369Sdim// This prototype is deprecated. 7078287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7079287512Sdimvec_sral(vector unsigned char __a, vector unsigned int __b) { 7080287512Sdim return __builtin_s390_vsra(__a, (vector unsigned char)__b); 7081287512Sdim} 7082287512Sdim 7083287512Sdimstatic inline __ATTRS_o_ai vector signed short 7084287512Sdimvec_sral(vector signed short __a, vector unsigned char __b) { 7085287512Sdim return (vector signed short)__builtin_s390_vsra( 7086287512Sdim (vector unsigned char)__a, __b); 7087287512Sdim} 7088287512Sdim 7089321369Sdim// This prototype is deprecated. 7090287512Sdimstatic inline __ATTRS_o_ai vector signed short 7091287512Sdimvec_sral(vector signed short __a, vector unsigned short __b) { 7092287512Sdim return (vector signed short)__builtin_s390_vsra( 7093287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7094287512Sdim} 7095287512Sdim 7096321369Sdim// This prototype is deprecated. 7097287512Sdimstatic inline __ATTRS_o_ai vector signed short 7098287512Sdimvec_sral(vector signed short __a, vector unsigned int __b) { 7099287512Sdim return (vector signed short)__builtin_s390_vsra( 7100287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7101287512Sdim} 7102287512Sdim 7103321369Sdim// This prototype is deprecated. 7104287512Sdimstatic inline __ATTRS_o_ai vector bool short 7105287512Sdimvec_sral(vector bool short __a, vector unsigned char __b) { 7106287512Sdim return (vector bool short)__builtin_s390_vsra( 7107287512Sdim (vector unsigned char)__a, __b); 7108287512Sdim} 7109287512Sdim 7110321369Sdim// This prototype is deprecated. 7111287512Sdimstatic inline __ATTRS_o_ai vector bool short 7112287512Sdimvec_sral(vector bool short __a, vector unsigned short __b) { 7113287512Sdim return (vector bool short)__builtin_s390_vsra( 7114287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7115287512Sdim} 7116287512Sdim 7117321369Sdim// This prototype is deprecated. 7118287512Sdimstatic inline __ATTRS_o_ai vector bool short 7119287512Sdimvec_sral(vector bool short __a, vector unsigned int __b) { 7120287512Sdim return (vector bool short)__builtin_s390_vsra( 7121287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7122287512Sdim} 7123287512Sdim 7124287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7125287512Sdimvec_sral(vector unsigned short __a, vector unsigned char __b) { 7126287512Sdim return (vector unsigned short)__builtin_s390_vsra( 7127287512Sdim (vector unsigned char)__a, __b); 7128287512Sdim} 7129287512Sdim 7130321369Sdim// This prototype is deprecated. 7131287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7132287512Sdimvec_sral(vector unsigned short __a, vector unsigned short __b) { 7133287512Sdim return (vector unsigned short)__builtin_s390_vsra( 7134287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7135287512Sdim} 7136287512Sdim 7137321369Sdim// This prototype is deprecated. 7138287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7139287512Sdimvec_sral(vector unsigned short __a, vector unsigned int __b) { 7140287512Sdim return (vector unsigned short)__builtin_s390_vsra( 7141287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7142287512Sdim} 7143287512Sdim 7144287512Sdimstatic inline __ATTRS_o_ai vector signed int 7145287512Sdimvec_sral(vector signed int __a, vector unsigned char __b) { 7146287512Sdim return (vector signed int)__builtin_s390_vsra( 7147287512Sdim (vector unsigned char)__a, __b); 7148287512Sdim} 7149287512Sdim 7150321369Sdim// This prototype is deprecated. 7151287512Sdimstatic inline __ATTRS_o_ai vector signed int 7152287512Sdimvec_sral(vector signed int __a, vector unsigned short __b) { 7153287512Sdim return (vector signed int)__builtin_s390_vsra( 7154287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7155287512Sdim} 7156287512Sdim 7157321369Sdim// This prototype is deprecated. 7158287512Sdimstatic inline __ATTRS_o_ai vector signed int 7159287512Sdimvec_sral(vector signed int __a, vector unsigned int __b) { 7160287512Sdim return (vector signed int)__builtin_s390_vsra( 7161287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7162287512Sdim} 7163287512Sdim 7164321369Sdim// This prototype is deprecated. 7165287512Sdimstatic inline __ATTRS_o_ai vector bool int 7166287512Sdimvec_sral(vector bool int __a, vector unsigned char __b) { 7167287512Sdim return (vector bool int)__builtin_s390_vsra( 7168287512Sdim (vector unsigned char)__a, __b); 7169287512Sdim} 7170287512Sdim 7171321369Sdim// This prototype is deprecated. 7172287512Sdimstatic inline __ATTRS_o_ai vector bool int 7173287512Sdimvec_sral(vector bool int __a, vector unsigned short __b) { 7174287512Sdim return (vector bool int)__builtin_s390_vsra( 7175287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7176287512Sdim} 7177287512Sdim 7178321369Sdim// This prototype is deprecated. 7179287512Sdimstatic inline __ATTRS_o_ai vector bool int 7180287512Sdimvec_sral(vector bool int __a, vector unsigned int __b) { 7181287512Sdim return (vector bool int)__builtin_s390_vsra( 7182287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7183287512Sdim} 7184287512Sdim 7185287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7186287512Sdimvec_sral(vector unsigned int __a, vector unsigned char __b) { 7187287512Sdim return (vector unsigned int)__builtin_s390_vsra( 7188287512Sdim (vector unsigned char)__a, __b); 7189287512Sdim} 7190287512Sdim 7191321369Sdim// This prototype is deprecated. 7192287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7193287512Sdimvec_sral(vector unsigned int __a, vector unsigned short __b) { 7194287512Sdim return (vector unsigned int)__builtin_s390_vsra( 7195287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7196287512Sdim} 7197287512Sdim 7198321369Sdim// This prototype is deprecated. 7199287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7200287512Sdimvec_sral(vector unsigned int __a, vector unsigned int __b) { 7201287512Sdim return (vector unsigned int)__builtin_s390_vsra( 7202287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7203287512Sdim} 7204287512Sdim 7205287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7206287512Sdimvec_sral(vector signed long long __a, vector unsigned char __b) { 7207287512Sdim return (vector signed long long)__builtin_s390_vsra( 7208287512Sdim (vector unsigned char)__a, __b); 7209287512Sdim} 7210287512Sdim 7211321369Sdim// This prototype is deprecated. 7212287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7213287512Sdimvec_sral(vector signed long long __a, vector unsigned short __b) { 7214287512Sdim return (vector signed long long)__builtin_s390_vsra( 7215287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7216287512Sdim} 7217287512Sdim 7218321369Sdim// This prototype is deprecated. 7219287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7220287512Sdimvec_sral(vector signed long long __a, vector unsigned int __b) { 7221287512Sdim return (vector signed long long)__builtin_s390_vsra( 7222287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7223287512Sdim} 7224287512Sdim 7225321369Sdim// This prototype is deprecated. 7226287512Sdimstatic inline __ATTRS_o_ai vector bool long long 7227287512Sdimvec_sral(vector bool long long __a, vector unsigned char __b) { 7228287512Sdim return (vector bool long long)__builtin_s390_vsra( 7229287512Sdim (vector unsigned char)__a, __b); 7230287512Sdim} 7231287512Sdim 7232321369Sdim// This prototype is deprecated. 7233287512Sdimstatic inline __ATTRS_o_ai vector bool long long 7234287512Sdimvec_sral(vector bool long long __a, vector unsigned short __b) { 7235287512Sdim return (vector bool long long)__builtin_s390_vsra( 7236287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7237287512Sdim} 7238287512Sdim 7239321369Sdim// This prototype is deprecated. 7240287512Sdimstatic inline __ATTRS_o_ai vector bool long long 7241287512Sdimvec_sral(vector bool long long __a, vector unsigned int __b) { 7242287512Sdim return (vector bool long long)__builtin_s390_vsra( 7243287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7244287512Sdim} 7245287512Sdim 7246287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7247287512Sdimvec_sral(vector unsigned long long __a, vector unsigned char __b) { 7248287512Sdim return (vector unsigned long long)__builtin_s390_vsra( 7249287512Sdim (vector unsigned char)__a, __b); 7250287512Sdim} 7251287512Sdim 7252321369Sdim// This prototype is deprecated. 7253287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7254287512Sdimvec_sral(vector unsigned long long __a, vector unsigned short __b) { 7255287512Sdim return (vector unsigned long long)__builtin_s390_vsra( 7256287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7257287512Sdim} 7258287512Sdim 7259321369Sdim// This prototype is deprecated. 7260287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7261287512Sdimvec_sral(vector unsigned long long __a, vector unsigned int __b) { 7262287512Sdim return (vector unsigned long long)__builtin_s390_vsra( 7263287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7264287512Sdim} 7265287512Sdim 7266287512Sdim/*-- vec_srab ---------------------------------------------------------------*/ 7267287512Sdim 7268287512Sdimstatic inline __ATTRS_o_ai vector signed char 7269287512Sdimvec_srab(vector signed char __a, vector signed char __b) { 7270287512Sdim return (vector signed char)__builtin_s390_vsrab( 7271287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7272287512Sdim} 7273287512Sdim 7274287512Sdimstatic inline __ATTRS_o_ai vector signed char 7275287512Sdimvec_srab(vector signed char __a, vector unsigned char __b) { 7276287512Sdim return (vector signed char)__builtin_s390_vsrab( 7277287512Sdim (vector unsigned char)__a, __b); 7278287512Sdim} 7279287512Sdim 7280287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7281287512Sdimvec_srab(vector unsigned char __a, vector signed char __b) { 7282287512Sdim return __builtin_s390_vsrab(__a, (vector unsigned char)__b); 7283287512Sdim} 7284287512Sdim 7285287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7286287512Sdimvec_srab(vector unsigned char __a, vector unsigned char __b) { 7287287512Sdim return __builtin_s390_vsrab(__a, __b); 7288287512Sdim} 7289287512Sdim 7290287512Sdimstatic inline __ATTRS_o_ai vector signed short 7291287512Sdimvec_srab(vector signed short __a, vector signed short __b) { 7292287512Sdim return (vector signed short)__builtin_s390_vsrab( 7293287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7294287512Sdim} 7295287512Sdim 7296287512Sdimstatic inline __ATTRS_o_ai vector signed short 7297287512Sdimvec_srab(vector signed short __a, vector unsigned short __b) { 7298287512Sdim return (vector signed short)__builtin_s390_vsrab( 7299287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7300287512Sdim} 7301287512Sdim 7302287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7303287512Sdimvec_srab(vector unsigned short __a, vector signed short __b) { 7304287512Sdim return (vector unsigned short)__builtin_s390_vsrab( 7305287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7306287512Sdim} 7307287512Sdim 7308287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7309287512Sdimvec_srab(vector unsigned short __a, vector unsigned short __b) { 7310287512Sdim return (vector unsigned short)__builtin_s390_vsrab( 7311287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7312287512Sdim} 7313287512Sdim 7314287512Sdimstatic inline __ATTRS_o_ai vector signed int 7315287512Sdimvec_srab(vector signed int __a, vector signed int __b) { 7316287512Sdim return (vector signed int)__builtin_s390_vsrab( 7317287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7318287512Sdim} 7319287512Sdim 7320287512Sdimstatic inline __ATTRS_o_ai vector signed int 7321287512Sdimvec_srab(vector signed int __a, vector unsigned int __b) { 7322287512Sdim return (vector signed int)__builtin_s390_vsrab( 7323287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7324287512Sdim} 7325287512Sdim 7326287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7327287512Sdimvec_srab(vector unsigned int __a, vector signed int __b) { 7328287512Sdim return (vector unsigned int)__builtin_s390_vsrab( 7329287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7330287512Sdim} 7331287512Sdim 7332287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7333287512Sdimvec_srab(vector unsigned int __a, vector unsigned int __b) { 7334287512Sdim return (vector unsigned int)__builtin_s390_vsrab( 7335287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7336287512Sdim} 7337287512Sdim 7338287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7339287512Sdimvec_srab(vector signed long long __a, vector signed long long __b) { 7340287512Sdim return (vector signed long long)__builtin_s390_vsrab( 7341287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7342287512Sdim} 7343287512Sdim 7344287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7345287512Sdimvec_srab(vector signed long long __a, vector unsigned long long __b) { 7346287512Sdim return (vector signed long long)__builtin_s390_vsrab( 7347287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7348287512Sdim} 7349287512Sdim 7350287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7351287512Sdimvec_srab(vector unsigned long long __a, vector signed long long __b) { 7352287512Sdim return (vector unsigned long long)__builtin_s390_vsrab( 7353287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7354287512Sdim} 7355287512Sdim 7356287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7357287512Sdimvec_srab(vector unsigned long long __a, vector unsigned long long __b) { 7358287512Sdim return (vector unsigned long long)__builtin_s390_vsrab( 7359287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7360287512Sdim} 7361287512Sdim 7362321369Sdim#if __ARCH__ >= 12 7363321369Sdimstatic inline __ATTRS_o_ai vector float 7364321369Sdimvec_srab(vector float __a, vector signed int __b) { 7365321369Sdim return (vector float)__builtin_s390_vsrab( 7366321369Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7367321369Sdim} 7368321369Sdim 7369321369Sdimstatic inline __ATTRS_o_ai vector float 7370321369Sdimvec_srab(vector float __a, vector unsigned int __b) { 7371321369Sdim return (vector float)__builtin_s390_vsrab( 7372321369Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7373321369Sdim} 7374321369Sdim#endif 7375321369Sdim 7376287512Sdimstatic inline __ATTRS_o_ai vector double 7377287512Sdimvec_srab(vector double __a, vector signed long long __b) { 7378287512Sdim return (vector double)__builtin_s390_vsrab( 7379287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7380287512Sdim} 7381287512Sdim 7382287512Sdimstatic inline __ATTRS_o_ai vector double 7383287512Sdimvec_srab(vector double __a, vector unsigned long long __b) { 7384287512Sdim return (vector double)__builtin_s390_vsrab( 7385287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7386287512Sdim} 7387287512Sdim 7388287512Sdim/*-- vec_srl ----------------------------------------------------------------*/ 7389287512Sdim 7390287512Sdimstatic inline __ATTRS_o_ai vector signed char 7391287512Sdimvec_srl(vector signed char __a, vector unsigned char __b) { 7392287512Sdim return (vector signed char)__builtin_s390_vsrl( 7393287512Sdim (vector unsigned char)__a, __b); 7394287512Sdim} 7395287512Sdim 7396321369Sdim// This prototype is deprecated. 7397287512Sdimstatic inline __ATTRS_o_ai vector signed char 7398287512Sdimvec_srl(vector signed char __a, vector unsigned short __b) { 7399287512Sdim return (vector signed char)__builtin_s390_vsrl( 7400287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7401287512Sdim} 7402287512Sdim 7403321369Sdim// This prototype is deprecated. 7404287512Sdimstatic inline __ATTRS_o_ai vector signed char 7405287512Sdimvec_srl(vector signed char __a, vector unsigned int __b) { 7406287512Sdim return (vector signed char)__builtin_s390_vsrl( 7407287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7408287512Sdim} 7409287512Sdim 7410321369Sdim// This prototype is deprecated. 7411287512Sdimstatic inline __ATTRS_o_ai vector bool char 7412287512Sdimvec_srl(vector bool char __a, vector unsigned char __b) { 7413287512Sdim return (vector bool char)__builtin_s390_vsrl( 7414287512Sdim (vector unsigned char)__a, __b); 7415287512Sdim} 7416287512Sdim 7417321369Sdim// This prototype is deprecated. 7418287512Sdimstatic inline __ATTRS_o_ai vector bool char 7419287512Sdimvec_srl(vector bool char __a, vector unsigned short __b) { 7420287512Sdim return (vector bool char)__builtin_s390_vsrl( 7421287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7422287512Sdim} 7423287512Sdim 7424321369Sdim// This prototype is deprecated. 7425287512Sdimstatic inline __ATTRS_o_ai vector bool char 7426287512Sdimvec_srl(vector bool char __a, vector unsigned int __b) { 7427287512Sdim return (vector bool char)__builtin_s390_vsrl( 7428287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7429287512Sdim} 7430287512Sdim 7431287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7432287512Sdimvec_srl(vector unsigned char __a, vector unsigned char __b) { 7433287512Sdim return __builtin_s390_vsrl(__a, __b); 7434287512Sdim} 7435287512Sdim 7436321369Sdim// This prototype is deprecated. 7437287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7438287512Sdimvec_srl(vector unsigned char __a, vector unsigned short __b) { 7439287512Sdim return __builtin_s390_vsrl(__a, (vector unsigned char)__b); 7440287512Sdim} 7441287512Sdim 7442321369Sdim// This prototype is deprecated. 7443287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7444287512Sdimvec_srl(vector unsigned char __a, vector unsigned int __b) { 7445287512Sdim return __builtin_s390_vsrl(__a, (vector unsigned char)__b); 7446287512Sdim} 7447287512Sdim 7448287512Sdimstatic inline __ATTRS_o_ai vector signed short 7449287512Sdimvec_srl(vector signed short __a, vector unsigned char __b) { 7450287512Sdim return (vector signed short)__builtin_s390_vsrl( 7451287512Sdim (vector unsigned char)__a, __b); 7452287512Sdim} 7453287512Sdim 7454321369Sdim// This prototype is deprecated. 7455287512Sdimstatic inline __ATTRS_o_ai vector signed short 7456287512Sdimvec_srl(vector signed short __a, vector unsigned short __b) { 7457287512Sdim return (vector signed short)__builtin_s390_vsrl( 7458287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7459287512Sdim} 7460287512Sdim 7461321369Sdim// This prototype is deprecated. 7462287512Sdimstatic inline __ATTRS_o_ai vector signed short 7463287512Sdimvec_srl(vector signed short __a, vector unsigned int __b) { 7464287512Sdim return (vector signed short)__builtin_s390_vsrl( 7465287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7466287512Sdim} 7467287512Sdim 7468321369Sdim// This prototype is deprecated. 7469287512Sdimstatic inline __ATTRS_o_ai vector bool short 7470287512Sdimvec_srl(vector bool short __a, vector unsigned char __b) { 7471287512Sdim return (vector bool short)__builtin_s390_vsrl( 7472287512Sdim (vector unsigned char)__a, __b); 7473287512Sdim} 7474287512Sdim 7475321369Sdim// This prototype is deprecated. 7476287512Sdimstatic inline __ATTRS_o_ai vector bool short 7477287512Sdimvec_srl(vector bool short __a, vector unsigned short __b) { 7478287512Sdim return (vector bool short)__builtin_s390_vsrl( 7479287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7480287512Sdim} 7481287512Sdim 7482321369Sdim// This prototype is deprecated. 7483287512Sdimstatic inline __ATTRS_o_ai vector bool short 7484287512Sdimvec_srl(vector bool short __a, vector unsigned int __b) { 7485287512Sdim return (vector bool short)__builtin_s390_vsrl( 7486287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7487287512Sdim} 7488287512Sdim 7489287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7490287512Sdimvec_srl(vector unsigned short __a, vector unsigned char __b) { 7491287512Sdim return (vector unsigned short)__builtin_s390_vsrl( 7492287512Sdim (vector unsigned char)__a, __b); 7493287512Sdim} 7494287512Sdim 7495321369Sdim// This prototype is deprecated. 7496287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7497287512Sdimvec_srl(vector unsigned short __a, vector unsigned short __b) { 7498287512Sdim return (vector unsigned short)__builtin_s390_vsrl( 7499287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7500287512Sdim} 7501287512Sdim 7502321369Sdim// This prototype is deprecated. 7503287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7504287512Sdimvec_srl(vector unsigned short __a, vector unsigned int __b) { 7505287512Sdim return (vector unsigned short)__builtin_s390_vsrl( 7506287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7507287512Sdim} 7508287512Sdim 7509287512Sdimstatic inline __ATTRS_o_ai vector signed int 7510287512Sdimvec_srl(vector signed int __a, vector unsigned char __b) { 7511287512Sdim return (vector signed int)__builtin_s390_vsrl( 7512287512Sdim (vector unsigned char)__a, __b); 7513287512Sdim} 7514287512Sdim 7515321369Sdim// This prototype is deprecated. 7516287512Sdimstatic inline __ATTRS_o_ai vector signed int 7517287512Sdimvec_srl(vector signed int __a, vector unsigned short __b) { 7518287512Sdim return (vector signed int)__builtin_s390_vsrl( 7519287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7520287512Sdim} 7521287512Sdim 7522321369Sdim// This prototype is deprecated. 7523287512Sdimstatic inline __ATTRS_o_ai vector signed int 7524287512Sdimvec_srl(vector signed int __a, vector unsigned int __b) { 7525287512Sdim return (vector signed int)__builtin_s390_vsrl( 7526287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7527287512Sdim} 7528287512Sdim 7529321369Sdim// This prototype is deprecated. 7530287512Sdimstatic inline __ATTRS_o_ai vector bool int 7531287512Sdimvec_srl(vector bool int __a, vector unsigned char __b) { 7532287512Sdim return (vector bool int)__builtin_s390_vsrl( 7533287512Sdim (vector unsigned char)__a, __b); 7534287512Sdim} 7535287512Sdim 7536321369Sdim// This prototype is deprecated. 7537287512Sdimstatic inline __ATTRS_o_ai vector bool int 7538287512Sdimvec_srl(vector bool int __a, vector unsigned short __b) { 7539287512Sdim return (vector bool int)__builtin_s390_vsrl( 7540287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7541287512Sdim} 7542287512Sdim 7543321369Sdim// This prototype is deprecated. 7544287512Sdimstatic inline __ATTRS_o_ai vector bool int 7545287512Sdimvec_srl(vector bool int __a, vector unsigned int __b) { 7546287512Sdim return (vector bool int)__builtin_s390_vsrl( 7547287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7548287512Sdim} 7549287512Sdim 7550287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7551287512Sdimvec_srl(vector unsigned int __a, vector unsigned char __b) { 7552287512Sdim return (vector unsigned int)__builtin_s390_vsrl( 7553287512Sdim (vector unsigned char)__a, __b); 7554287512Sdim} 7555287512Sdim 7556321369Sdim// This prototype is deprecated. 7557287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7558287512Sdimvec_srl(vector unsigned int __a, vector unsigned short __b) { 7559287512Sdim return (vector unsigned int)__builtin_s390_vsrl( 7560287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7561287512Sdim} 7562287512Sdim 7563321369Sdim// This prototype is deprecated. 7564287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7565287512Sdimvec_srl(vector unsigned int __a, vector unsigned int __b) { 7566287512Sdim return (vector unsigned int)__builtin_s390_vsrl( 7567287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7568287512Sdim} 7569287512Sdim 7570287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7571287512Sdimvec_srl(vector signed long long __a, vector unsigned char __b) { 7572287512Sdim return (vector signed long long)__builtin_s390_vsrl( 7573287512Sdim (vector unsigned char)__a, __b); 7574287512Sdim} 7575287512Sdim 7576321369Sdim// This prototype is deprecated. 7577287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7578287512Sdimvec_srl(vector signed long long __a, vector unsigned short __b) { 7579287512Sdim return (vector signed long long)__builtin_s390_vsrl( 7580287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7581287512Sdim} 7582287512Sdim 7583321369Sdim// This prototype is deprecated. 7584287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7585287512Sdimvec_srl(vector signed long long __a, vector unsigned int __b) { 7586287512Sdim return (vector signed long long)__builtin_s390_vsrl( 7587287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7588287512Sdim} 7589287512Sdim 7590321369Sdim// This prototype is deprecated. 7591287512Sdimstatic inline __ATTRS_o_ai vector bool long long 7592287512Sdimvec_srl(vector bool long long __a, vector unsigned char __b) { 7593287512Sdim return (vector bool long long)__builtin_s390_vsrl( 7594287512Sdim (vector unsigned char)__a, __b); 7595287512Sdim} 7596287512Sdim 7597321369Sdim// This prototype is deprecated. 7598287512Sdimstatic inline __ATTRS_o_ai vector bool long long 7599287512Sdimvec_srl(vector bool long long __a, vector unsigned short __b) { 7600287512Sdim return (vector bool long long)__builtin_s390_vsrl( 7601287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7602287512Sdim} 7603287512Sdim 7604321369Sdim// This prototype is deprecated. 7605287512Sdimstatic inline __ATTRS_o_ai vector bool long long 7606287512Sdimvec_srl(vector bool long long __a, vector unsigned int __b) { 7607287512Sdim return (vector bool long long)__builtin_s390_vsrl( 7608287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7609287512Sdim} 7610287512Sdim 7611287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7612287512Sdimvec_srl(vector unsigned long long __a, vector unsigned char __b) { 7613287512Sdim return (vector unsigned long long)__builtin_s390_vsrl( 7614287512Sdim (vector unsigned char)__a, __b); 7615287512Sdim} 7616287512Sdim 7617321369Sdim// This prototype is deprecated. 7618287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7619287512Sdimvec_srl(vector unsigned long long __a, vector unsigned short __b) { 7620287512Sdim return (vector unsigned long long)__builtin_s390_vsrl( 7621287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7622287512Sdim} 7623287512Sdim 7624321369Sdim// This prototype is deprecated. 7625287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7626287512Sdimvec_srl(vector unsigned long long __a, vector unsigned int __b) { 7627287512Sdim return (vector unsigned long long)__builtin_s390_vsrl( 7628287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7629287512Sdim} 7630287512Sdim 7631287512Sdim/*-- vec_srb ----------------------------------------------------------------*/ 7632287512Sdim 7633287512Sdimstatic inline __ATTRS_o_ai vector signed char 7634287512Sdimvec_srb(vector signed char __a, vector signed char __b) { 7635287512Sdim return (vector signed char)__builtin_s390_vsrlb( 7636287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7637287512Sdim} 7638287512Sdim 7639287512Sdimstatic inline __ATTRS_o_ai vector signed char 7640287512Sdimvec_srb(vector signed char __a, vector unsigned char __b) { 7641287512Sdim return (vector signed char)__builtin_s390_vsrlb( 7642287512Sdim (vector unsigned char)__a, __b); 7643287512Sdim} 7644287512Sdim 7645287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7646287512Sdimvec_srb(vector unsigned char __a, vector signed char __b) { 7647287512Sdim return __builtin_s390_vsrlb(__a, (vector unsigned char)__b); 7648287512Sdim} 7649287512Sdim 7650287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7651287512Sdimvec_srb(vector unsigned char __a, vector unsigned char __b) { 7652287512Sdim return __builtin_s390_vsrlb(__a, __b); 7653287512Sdim} 7654287512Sdim 7655287512Sdimstatic inline __ATTRS_o_ai vector signed short 7656287512Sdimvec_srb(vector signed short __a, vector signed short __b) { 7657287512Sdim return (vector signed short)__builtin_s390_vsrlb( 7658287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7659287512Sdim} 7660287512Sdim 7661287512Sdimstatic inline __ATTRS_o_ai vector signed short 7662287512Sdimvec_srb(vector signed short __a, vector unsigned short __b) { 7663287512Sdim return (vector signed short)__builtin_s390_vsrlb( 7664287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7665287512Sdim} 7666287512Sdim 7667287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7668287512Sdimvec_srb(vector unsigned short __a, vector signed short __b) { 7669287512Sdim return (vector unsigned short)__builtin_s390_vsrlb( 7670287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7671287512Sdim} 7672287512Sdim 7673287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7674287512Sdimvec_srb(vector unsigned short __a, vector unsigned short __b) { 7675287512Sdim return (vector unsigned short)__builtin_s390_vsrlb( 7676287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7677287512Sdim} 7678287512Sdim 7679287512Sdimstatic inline __ATTRS_o_ai vector signed int 7680287512Sdimvec_srb(vector signed int __a, vector signed int __b) { 7681287512Sdim return (vector signed int)__builtin_s390_vsrlb( 7682287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7683287512Sdim} 7684287512Sdim 7685287512Sdimstatic inline __ATTRS_o_ai vector signed int 7686287512Sdimvec_srb(vector signed int __a, vector unsigned int __b) { 7687287512Sdim return (vector signed int)__builtin_s390_vsrlb( 7688287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7689287512Sdim} 7690287512Sdim 7691287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7692287512Sdimvec_srb(vector unsigned int __a, vector signed int __b) { 7693287512Sdim return (vector unsigned int)__builtin_s390_vsrlb( 7694287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7695287512Sdim} 7696287512Sdim 7697287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7698287512Sdimvec_srb(vector unsigned int __a, vector unsigned int __b) { 7699287512Sdim return (vector unsigned int)__builtin_s390_vsrlb( 7700287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7701287512Sdim} 7702287512Sdim 7703287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7704287512Sdimvec_srb(vector signed long long __a, vector signed long long __b) { 7705287512Sdim return (vector signed long long)__builtin_s390_vsrlb( 7706287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7707287512Sdim} 7708287512Sdim 7709287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7710287512Sdimvec_srb(vector signed long long __a, vector unsigned long long __b) { 7711287512Sdim return (vector signed long long)__builtin_s390_vsrlb( 7712287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7713287512Sdim} 7714287512Sdim 7715287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7716287512Sdimvec_srb(vector unsigned long long __a, vector signed long long __b) { 7717287512Sdim return (vector unsigned long long)__builtin_s390_vsrlb( 7718287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7719287512Sdim} 7720287512Sdim 7721287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7722287512Sdimvec_srb(vector unsigned long long __a, vector unsigned long long __b) { 7723287512Sdim return (vector unsigned long long)__builtin_s390_vsrlb( 7724287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7725287512Sdim} 7726287512Sdim 7727321369Sdim#if __ARCH__ >= 12 7728321369Sdimstatic inline __ATTRS_o_ai vector float 7729321369Sdimvec_srb(vector float __a, vector signed int __b) { 7730321369Sdim return (vector float)__builtin_s390_vsrlb( 7731321369Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7732321369Sdim} 7733321369Sdim 7734321369Sdimstatic inline __ATTRS_o_ai vector float 7735321369Sdimvec_srb(vector float __a, vector unsigned int __b) { 7736321369Sdim return (vector float)__builtin_s390_vsrlb( 7737321369Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7738321369Sdim} 7739321369Sdim#endif 7740321369Sdim 7741287512Sdimstatic inline __ATTRS_o_ai vector double 7742287512Sdimvec_srb(vector double __a, vector signed long long __b) { 7743287512Sdim return (vector double)__builtin_s390_vsrlb( 7744287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7745287512Sdim} 7746287512Sdim 7747287512Sdimstatic inline __ATTRS_o_ai vector double 7748287512Sdimvec_srb(vector double __a, vector unsigned long long __b) { 7749287512Sdim return (vector double)__builtin_s390_vsrlb( 7750287512Sdim (vector unsigned char)__a, (vector unsigned char)__b); 7751287512Sdim} 7752287512Sdim 7753353358Sdim/*-- vec_srdb ---------------------------------------------------------------*/ 7754353358Sdim 7755353358Sdim#if __ARCH__ >= 13 7756353358Sdim 7757353358Sdimextern __ATTRS_o vector signed char 7758353358Sdimvec_srdb(vector signed char __a, vector signed char __b, int __c) 7759353358Sdim __constant_range(__c, 0, 7); 7760353358Sdim 7761353358Sdimextern __ATTRS_o vector unsigned char 7762353358Sdimvec_srdb(vector unsigned char __a, vector unsigned char __b, int __c) 7763353358Sdim __constant_range(__c, 0, 7); 7764353358Sdim 7765353358Sdimextern __ATTRS_o vector signed short 7766353358Sdimvec_srdb(vector signed short __a, vector signed short __b, int __c) 7767353358Sdim __constant_range(__c, 0, 7); 7768353358Sdim 7769353358Sdimextern __ATTRS_o vector unsigned short 7770353358Sdimvec_srdb(vector unsigned short __a, vector unsigned short __b, int __c) 7771353358Sdim __constant_range(__c, 0, 7); 7772353358Sdim 7773353358Sdimextern __ATTRS_o vector signed int 7774353358Sdimvec_srdb(vector signed int __a, vector signed int __b, int __c) 7775353358Sdim __constant_range(__c, 0, 7); 7776353358Sdim 7777353358Sdimextern __ATTRS_o vector unsigned int 7778353358Sdimvec_srdb(vector unsigned int __a, vector unsigned int __b, int __c) 7779353358Sdim __constant_range(__c, 0, 7); 7780353358Sdim 7781353358Sdimextern __ATTRS_o vector signed long long 7782353358Sdimvec_srdb(vector signed long long __a, vector signed long long __b, int __c) 7783353358Sdim __constant_range(__c, 0, 7); 7784353358Sdim 7785353358Sdimextern __ATTRS_o vector unsigned long long 7786353358Sdimvec_srdb(vector unsigned long long __a, vector unsigned long long __b, int __c) 7787353358Sdim __constant_range(__c, 0, 7); 7788353358Sdim 7789353358Sdimextern __ATTRS_o vector float 7790353358Sdimvec_srdb(vector float __a, vector float __b, int __c) 7791353358Sdim __constant_range(__c, 0, 7); 7792353358Sdim 7793353358Sdimextern __ATTRS_o vector double 7794353358Sdimvec_srdb(vector double __a, vector double __b, int __c) 7795353358Sdim __constant_range(__c, 0, 7); 7796353358Sdim 7797353358Sdim#define vec_srdb(X, Y, Z) ((__typeof__((vec_srdb)((X), (Y), (Z)))) \ 7798353358Sdim __builtin_s390_vsrd((vector unsigned char)(X), \ 7799353358Sdim (vector unsigned char)(Y), (Z))) 7800353358Sdim 7801353358Sdim#endif 7802353358Sdim 7803287512Sdim/*-- vec_abs ----------------------------------------------------------------*/ 7804287512Sdim 7805287512Sdimstatic inline __ATTRS_o_ai vector signed char 7806287512Sdimvec_abs(vector signed char __a) { 7807287512Sdim return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed char)0)); 7808287512Sdim} 7809287512Sdim 7810287512Sdimstatic inline __ATTRS_o_ai vector signed short 7811287512Sdimvec_abs(vector signed short __a) { 7812287512Sdim return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed short)0)); 7813287512Sdim} 7814287512Sdim 7815287512Sdimstatic inline __ATTRS_o_ai vector signed int 7816287512Sdimvec_abs(vector signed int __a) { 7817287512Sdim return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed int)0)); 7818287512Sdim} 7819287512Sdim 7820287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7821287512Sdimvec_abs(vector signed long long __a) { 7822287512Sdim return vec_sel(__a, -__a, vec_cmplt(__a, (vector signed long long)0)); 7823287512Sdim} 7824287512Sdim 7825321369Sdim#if __ARCH__ >= 12 7826321369Sdimstatic inline __ATTRS_o_ai vector float 7827321369Sdimvec_abs(vector float __a) { 7828321369Sdim return __builtin_s390_vflpsb(__a); 7829321369Sdim} 7830321369Sdim#endif 7831321369Sdim 7832287512Sdimstatic inline __ATTRS_o_ai vector double 7833287512Sdimvec_abs(vector double __a) { 7834287512Sdim return __builtin_s390_vflpdb(__a); 7835287512Sdim} 7836287512Sdim 7837287512Sdim/*-- vec_nabs ---------------------------------------------------------------*/ 7838287512Sdim 7839321369Sdim#if __ARCH__ >= 12 7840321369Sdimstatic inline __ATTRS_o_ai vector float 7841321369Sdimvec_nabs(vector float __a) { 7842321369Sdim return __builtin_s390_vflnsb(__a); 7843321369Sdim} 7844321369Sdim#endif 7845321369Sdim 7846321369Sdimstatic inline __ATTRS_o_ai vector double 7847287512Sdimvec_nabs(vector double __a) { 7848287512Sdim return __builtin_s390_vflndb(__a); 7849287512Sdim} 7850287512Sdim 7851287512Sdim/*-- vec_max ----------------------------------------------------------------*/ 7852287512Sdim 7853287512Sdimstatic inline __ATTRS_o_ai vector signed char 7854287512Sdimvec_max(vector signed char __a, vector signed char __b) { 7855287512Sdim return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 7856287512Sdim} 7857287512Sdim 7858321369Sdim// This prototype is deprecated. 7859287512Sdimstatic inline __ATTRS_o_ai vector signed char 7860287512Sdimvec_max(vector signed char __a, vector bool char __b) { 7861287512Sdim vector signed char __bc = (vector signed char)__b; 7862287512Sdim return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 7863287512Sdim} 7864287512Sdim 7865321369Sdim// This prototype is deprecated. 7866287512Sdimstatic inline __ATTRS_o_ai vector signed char 7867287512Sdimvec_max(vector bool char __a, vector signed char __b) { 7868287512Sdim vector signed char __ac = (vector signed char)__a; 7869287512Sdim return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 7870287512Sdim} 7871287512Sdim 7872287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7873287512Sdimvec_max(vector unsigned char __a, vector unsigned char __b) { 7874287512Sdim return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 7875287512Sdim} 7876287512Sdim 7877321369Sdim// This prototype is deprecated. 7878287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7879287512Sdimvec_max(vector unsigned char __a, vector bool char __b) { 7880287512Sdim vector unsigned char __bc = (vector unsigned char)__b; 7881287512Sdim return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 7882287512Sdim} 7883287512Sdim 7884321369Sdim// This prototype is deprecated. 7885287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 7886287512Sdimvec_max(vector bool char __a, vector unsigned char __b) { 7887287512Sdim vector unsigned char __ac = (vector unsigned char)__a; 7888287512Sdim return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 7889287512Sdim} 7890287512Sdim 7891287512Sdimstatic inline __ATTRS_o_ai vector signed short 7892287512Sdimvec_max(vector signed short __a, vector signed short __b) { 7893287512Sdim return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 7894287512Sdim} 7895287512Sdim 7896321369Sdim// This prototype is deprecated. 7897287512Sdimstatic inline __ATTRS_o_ai vector signed short 7898287512Sdimvec_max(vector signed short __a, vector bool short __b) { 7899287512Sdim vector signed short __bc = (vector signed short)__b; 7900287512Sdim return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 7901287512Sdim} 7902287512Sdim 7903321369Sdim// This prototype is deprecated. 7904287512Sdimstatic inline __ATTRS_o_ai vector signed short 7905287512Sdimvec_max(vector bool short __a, vector signed short __b) { 7906287512Sdim vector signed short __ac = (vector signed short)__a; 7907287512Sdim return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 7908287512Sdim} 7909287512Sdim 7910287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7911287512Sdimvec_max(vector unsigned short __a, vector unsigned short __b) { 7912287512Sdim return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 7913287512Sdim} 7914287512Sdim 7915321369Sdim// This prototype is deprecated. 7916287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7917287512Sdimvec_max(vector unsigned short __a, vector bool short __b) { 7918287512Sdim vector unsigned short __bc = (vector unsigned short)__b; 7919287512Sdim return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 7920287512Sdim} 7921287512Sdim 7922321369Sdim// This prototype is deprecated. 7923287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 7924287512Sdimvec_max(vector bool short __a, vector unsigned short __b) { 7925287512Sdim vector unsigned short __ac = (vector unsigned short)__a; 7926287512Sdim return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 7927287512Sdim} 7928287512Sdim 7929287512Sdimstatic inline __ATTRS_o_ai vector signed int 7930287512Sdimvec_max(vector signed int __a, vector signed int __b) { 7931287512Sdim return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 7932287512Sdim} 7933287512Sdim 7934321369Sdim// This prototype is deprecated. 7935287512Sdimstatic inline __ATTRS_o_ai vector signed int 7936287512Sdimvec_max(vector signed int __a, vector bool int __b) { 7937287512Sdim vector signed int __bc = (vector signed int)__b; 7938287512Sdim return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 7939287512Sdim} 7940287512Sdim 7941321369Sdim// This prototype is deprecated. 7942287512Sdimstatic inline __ATTRS_o_ai vector signed int 7943287512Sdimvec_max(vector bool int __a, vector signed int __b) { 7944287512Sdim vector signed int __ac = (vector signed int)__a; 7945287512Sdim return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 7946287512Sdim} 7947287512Sdim 7948287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7949287512Sdimvec_max(vector unsigned int __a, vector unsigned int __b) { 7950287512Sdim return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 7951287512Sdim} 7952287512Sdim 7953321369Sdim// This prototype is deprecated. 7954287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7955287512Sdimvec_max(vector unsigned int __a, vector bool int __b) { 7956287512Sdim vector unsigned int __bc = (vector unsigned int)__b; 7957287512Sdim return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 7958287512Sdim} 7959287512Sdim 7960321369Sdim// This prototype is deprecated. 7961287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 7962287512Sdimvec_max(vector bool int __a, vector unsigned int __b) { 7963287512Sdim vector unsigned int __ac = (vector unsigned int)__a; 7964287512Sdim return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 7965287512Sdim} 7966287512Sdim 7967287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7968287512Sdimvec_max(vector signed long long __a, vector signed long long __b) { 7969287512Sdim return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 7970287512Sdim} 7971287512Sdim 7972321369Sdim// This prototype is deprecated. 7973287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7974287512Sdimvec_max(vector signed long long __a, vector bool long long __b) { 7975287512Sdim vector signed long long __bc = (vector signed long long)__b; 7976287512Sdim return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 7977287512Sdim} 7978287512Sdim 7979321369Sdim// This prototype is deprecated. 7980287512Sdimstatic inline __ATTRS_o_ai vector signed long long 7981287512Sdimvec_max(vector bool long long __a, vector signed long long __b) { 7982287512Sdim vector signed long long __ac = (vector signed long long)__a; 7983287512Sdim return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 7984287512Sdim} 7985287512Sdim 7986287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7987287512Sdimvec_max(vector unsigned long long __a, vector unsigned long long __b) { 7988287512Sdim return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 7989287512Sdim} 7990287512Sdim 7991321369Sdim// This prototype is deprecated. 7992287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 7993287512Sdimvec_max(vector unsigned long long __a, vector bool long long __b) { 7994287512Sdim vector unsigned long long __bc = (vector unsigned long long)__b; 7995287512Sdim return vec_sel(__bc, __a, vec_cmpgt(__a, __bc)); 7996287512Sdim} 7997287512Sdim 7998321369Sdim// This prototype is deprecated. 7999287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8000287512Sdimvec_max(vector bool long long __a, vector unsigned long long __b) { 8001287512Sdim vector unsigned long long __ac = (vector unsigned long long)__a; 8002287512Sdim return vec_sel(__b, __ac, vec_cmpgt(__ac, __b)); 8003287512Sdim} 8004287512Sdim 8005321369Sdim#if __ARCH__ >= 12 8006321369Sdimstatic inline __ATTRS_o_ai vector float 8007321369Sdimvec_max(vector float __a, vector float __b) { 8008321369Sdim return __builtin_s390_vfmaxsb(__a, __b, 0); 8009321369Sdim} 8010321369Sdim#endif 8011321369Sdim 8012287512Sdimstatic inline __ATTRS_o_ai vector double 8013287512Sdimvec_max(vector double __a, vector double __b) { 8014321369Sdim#if __ARCH__ >= 12 8015321369Sdim return __builtin_s390_vfmaxdb(__a, __b, 0); 8016321369Sdim#else 8017287512Sdim return vec_sel(__b, __a, vec_cmpgt(__a, __b)); 8018321369Sdim#endif 8019287512Sdim} 8020287512Sdim 8021287512Sdim/*-- vec_min ----------------------------------------------------------------*/ 8022287512Sdim 8023287512Sdimstatic inline __ATTRS_o_ai vector signed char 8024287512Sdimvec_min(vector signed char __a, vector signed char __b) { 8025287512Sdim return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 8026287512Sdim} 8027287512Sdim 8028321369Sdim// This prototype is deprecated. 8029287512Sdimstatic inline __ATTRS_o_ai vector signed char 8030287512Sdimvec_min(vector signed char __a, vector bool char __b) { 8031287512Sdim vector signed char __bc = (vector signed char)__b; 8032287512Sdim return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 8033287512Sdim} 8034287512Sdim 8035321369Sdim// This prototype is deprecated. 8036287512Sdimstatic inline __ATTRS_o_ai vector signed char 8037287512Sdimvec_min(vector bool char __a, vector signed char __b) { 8038287512Sdim vector signed char __ac = (vector signed char)__a; 8039287512Sdim return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 8040287512Sdim} 8041287512Sdim 8042287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8043287512Sdimvec_min(vector unsigned char __a, vector unsigned char __b) { 8044287512Sdim return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 8045287512Sdim} 8046287512Sdim 8047321369Sdim// This prototype is deprecated. 8048287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8049287512Sdimvec_min(vector unsigned char __a, vector bool char __b) { 8050287512Sdim vector unsigned char __bc = (vector unsigned char)__b; 8051287512Sdim return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 8052287512Sdim} 8053287512Sdim 8054321369Sdim// This prototype is deprecated. 8055287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8056287512Sdimvec_min(vector bool char __a, vector unsigned char __b) { 8057287512Sdim vector unsigned char __ac = (vector unsigned char)__a; 8058287512Sdim return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 8059287512Sdim} 8060287512Sdim 8061287512Sdimstatic inline __ATTRS_o_ai vector signed short 8062287512Sdimvec_min(vector signed short __a, vector signed short __b) { 8063287512Sdim return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 8064287512Sdim} 8065287512Sdim 8066321369Sdim// This prototype is deprecated. 8067287512Sdimstatic inline __ATTRS_o_ai vector signed short 8068287512Sdimvec_min(vector signed short __a, vector bool short __b) { 8069287512Sdim vector signed short __bc = (vector signed short)__b; 8070287512Sdim return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 8071287512Sdim} 8072287512Sdim 8073321369Sdim// This prototype is deprecated. 8074287512Sdimstatic inline __ATTRS_o_ai vector signed short 8075287512Sdimvec_min(vector bool short __a, vector signed short __b) { 8076287512Sdim vector signed short __ac = (vector signed short)__a; 8077287512Sdim return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 8078287512Sdim} 8079287512Sdim 8080287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8081287512Sdimvec_min(vector unsigned short __a, vector unsigned short __b) { 8082287512Sdim return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 8083287512Sdim} 8084287512Sdim 8085321369Sdim// This prototype is deprecated. 8086287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8087287512Sdimvec_min(vector unsigned short __a, vector bool short __b) { 8088287512Sdim vector unsigned short __bc = (vector unsigned short)__b; 8089287512Sdim return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 8090287512Sdim} 8091287512Sdim 8092321369Sdim// This prototype is deprecated. 8093287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8094287512Sdimvec_min(vector bool short __a, vector unsigned short __b) { 8095287512Sdim vector unsigned short __ac = (vector unsigned short)__a; 8096287512Sdim return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 8097287512Sdim} 8098287512Sdim 8099287512Sdimstatic inline __ATTRS_o_ai vector signed int 8100287512Sdimvec_min(vector signed int __a, vector signed int __b) { 8101287512Sdim return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 8102287512Sdim} 8103287512Sdim 8104321369Sdim// This prototype is deprecated. 8105287512Sdimstatic inline __ATTRS_o_ai vector signed int 8106287512Sdimvec_min(vector signed int __a, vector bool int __b) { 8107287512Sdim vector signed int __bc = (vector signed int)__b; 8108287512Sdim return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 8109287512Sdim} 8110287512Sdim 8111321369Sdim// This prototype is deprecated. 8112287512Sdimstatic inline __ATTRS_o_ai vector signed int 8113287512Sdimvec_min(vector bool int __a, vector signed int __b) { 8114287512Sdim vector signed int __ac = (vector signed int)__a; 8115287512Sdim return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 8116287512Sdim} 8117287512Sdim 8118287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8119287512Sdimvec_min(vector unsigned int __a, vector unsigned int __b) { 8120287512Sdim return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 8121287512Sdim} 8122287512Sdim 8123321369Sdim// This prototype is deprecated. 8124287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8125287512Sdimvec_min(vector unsigned int __a, vector bool int __b) { 8126287512Sdim vector unsigned int __bc = (vector unsigned int)__b; 8127287512Sdim return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 8128287512Sdim} 8129287512Sdim 8130321369Sdim// This prototype is deprecated. 8131287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8132287512Sdimvec_min(vector bool int __a, vector unsigned int __b) { 8133287512Sdim vector unsigned int __ac = (vector unsigned int)__a; 8134287512Sdim return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 8135287512Sdim} 8136287512Sdim 8137287512Sdimstatic inline __ATTRS_o_ai vector signed long long 8138287512Sdimvec_min(vector signed long long __a, vector signed long long __b) { 8139287512Sdim return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 8140287512Sdim} 8141287512Sdim 8142321369Sdim// This prototype is deprecated. 8143287512Sdimstatic inline __ATTRS_o_ai vector signed long long 8144287512Sdimvec_min(vector signed long long __a, vector bool long long __b) { 8145287512Sdim vector signed long long __bc = (vector signed long long)__b; 8146287512Sdim return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 8147287512Sdim} 8148287512Sdim 8149321369Sdim// This prototype is deprecated. 8150287512Sdimstatic inline __ATTRS_o_ai vector signed long long 8151287512Sdimvec_min(vector bool long long __a, vector signed long long __b) { 8152287512Sdim vector signed long long __ac = (vector signed long long)__a; 8153287512Sdim return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 8154287512Sdim} 8155287512Sdim 8156287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8157287512Sdimvec_min(vector unsigned long long __a, vector unsigned long long __b) { 8158287512Sdim return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 8159287512Sdim} 8160287512Sdim 8161321369Sdim// This prototype is deprecated. 8162287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8163287512Sdimvec_min(vector unsigned long long __a, vector bool long long __b) { 8164287512Sdim vector unsigned long long __bc = (vector unsigned long long)__b; 8165287512Sdim return vec_sel(__a, __bc, vec_cmpgt(__a, __bc)); 8166287512Sdim} 8167287512Sdim 8168321369Sdim// This prototype is deprecated. 8169287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8170287512Sdimvec_min(vector bool long long __a, vector unsigned long long __b) { 8171287512Sdim vector unsigned long long __ac = (vector unsigned long long)__a; 8172287512Sdim return vec_sel(__ac, __b, vec_cmpgt(__ac, __b)); 8173287512Sdim} 8174287512Sdim 8175321369Sdim#if __ARCH__ >= 12 8176321369Sdimstatic inline __ATTRS_o_ai vector float 8177321369Sdimvec_min(vector float __a, vector float __b) { 8178321369Sdim return __builtin_s390_vfminsb(__a, __b, 0); 8179321369Sdim} 8180321369Sdim#endif 8181321369Sdim 8182287512Sdimstatic inline __ATTRS_o_ai vector double 8183287512Sdimvec_min(vector double __a, vector double __b) { 8184321369Sdim#if __ARCH__ >= 12 8185321369Sdim return __builtin_s390_vfmindb(__a, __b, 0); 8186321369Sdim#else 8187287512Sdim return vec_sel(__a, __b, vec_cmpgt(__a, __b)); 8188321369Sdim#endif 8189287512Sdim} 8190287512Sdim 8191287512Sdim/*-- vec_add_u128 -----------------------------------------------------------*/ 8192287512Sdim 8193287512Sdimstatic inline __ATTRS_ai vector unsigned char 8194287512Sdimvec_add_u128(vector unsigned char __a, vector unsigned char __b) { 8195287512Sdim return __builtin_s390_vaq(__a, __b); 8196287512Sdim} 8197287512Sdim 8198287512Sdim/*-- vec_addc ---------------------------------------------------------------*/ 8199287512Sdim 8200287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8201287512Sdimvec_addc(vector unsigned char __a, vector unsigned char __b) { 8202287512Sdim return __builtin_s390_vaccb(__a, __b); 8203287512Sdim} 8204287512Sdim 8205287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8206287512Sdimvec_addc(vector unsigned short __a, vector unsigned short __b) { 8207287512Sdim return __builtin_s390_vacch(__a, __b); 8208287512Sdim} 8209287512Sdim 8210287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8211287512Sdimvec_addc(vector unsigned int __a, vector unsigned int __b) { 8212287512Sdim return __builtin_s390_vaccf(__a, __b); 8213287512Sdim} 8214287512Sdim 8215287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8216287512Sdimvec_addc(vector unsigned long long __a, vector unsigned long long __b) { 8217287512Sdim return __builtin_s390_vaccg(__a, __b); 8218287512Sdim} 8219287512Sdim 8220287512Sdim/*-- vec_addc_u128 ----------------------------------------------------------*/ 8221287512Sdim 8222287512Sdimstatic inline __ATTRS_ai vector unsigned char 8223287512Sdimvec_addc_u128(vector unsigned char __a, vector unsigned char __b) { 8224287512Sdim return __builtin_s390_vaccq(__a, __b); 8225287512Sdim} 8226287512Sdim 8227287512Sdim/*-- vec_adde_u128 ----------------------------------------------------------*/ 8228287512Sdim 8229287512Sdimstatic inline __ATTRS_ai vector unsigned char 8230287512Sdimvec_adde_u128(vector unsigned char __a, vector unsigned char __b, 8231287512Sdim vector unsigned char __c) { 8232287512Sdim return __builtin_s390_vacq(__a, __b, __c); 8233287512Sdim} 8234287512Sdim 8235287512Sdim/*-- vec_addec_u128 ---------------------------------------------------------*/ 8236287512Sdim 8237287512Sdimstatic inline __ATTRS_ai vector unsigned char 8238287512Sdimvec_addec_u128(vector unsigned char __a, vector unsigned char __b, 8239287512Sdim vector unsigned char __c) { 8240287512Sdim return __builtin_s390_vacccq(__a, __b, __c); 8241287512Sdim} 8242287512Sdim 8243287512Sdim/*-- vec_avg ----------------------------------------------------------------*/ 8244287512Sdim 8245287512Sdimstatic inline __ATTRS_o_ai vector signed char 8246287512Sdimvec_avg(vector signed char __a, vector signed char __b) { 8247287512Sdim return __builtin_s390_vavgb(__a, __b); 8248287512Sdim} 8249287512Sdim 8250287512Sdimstatic inline __ATTRS_o_ai vector signed short 8251287512Sdimvec_avg(vector signed short __a, vector signed short __b) { 8252287512Sdim return __builtin_s390_vavgh(__a, __b); 8253287512Sdim} 8254287512Sdim 8255287512Sdimstatic inline __ATTRS_o_ai vector signed int 8256287512Sdimvec_avg(vector signed int __a, vector signed int __b) { 8257287512Sdim return __builtin_s390_vavgf(__a, __b); 8258287512Sdim} 8259287512Sdim 8260287512Sdimstatic inline __ATTRS_o_ai vector signed long long 8261287512Sdimvec_avg(vector signed long long __a, vector signed long long __b) { 8262287512Sdim return __builtin_s390_vavgg(__a, __b); 8263287512Sdim} 8264287512Sdim 8265287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8266287512Sdimvec_avg(vector unsigned char __a, vector unsigned char __b) { 8267287512Sdim return __builtin_s390_vavglb(__a, __b); 8268287512Sdim} 8269287512Sdim 8270287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8271287512Sdimvec_avg(vector unsigned short __a, vector unsigned short __b) { 8272287512Sdim return __builtin_s390_vavglh(__a, __b); 8273287512Sdim} 8274287512Sdim 8275287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8276287512Sdimvec_avg(vector unsigned int __a, vector unsigned int __b) { 8277287512Sdim return __builtin_s390_vavglf(__a, __b); 8278287512Sdim} 8279287512Sdim 8280287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8281287512Sdimvec_avg(vector unsigned long long __a, vector unsigned long long __b) { 8282287512Sdim return __builtin_s390_vavglg(__a, __b); 8283287512Sdim} 8284287512Sdim 8285287512Sdim/*-- vec_checksum -----------------------------------------------------------*/ 8286287512Sdim 8287287512Sdimstatic inline __ATTRS_ai vector unsigned int 8288287512Sdimvec_checksum(vector unsigned int __a, vector unsigned int __b) { 8289287512Sdim return __builtin_s390_vcksm(__a, __b); 8290287512Sdim} 8291287512Sdim 8292287512Sdim/*-- vec_gfmsum -------------------------------------------------------------*/ 8293287512Sdim 8294287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8295287512Sdimvec_gfmsum(vector unsigned char __a, vector unsigned char __b) { 8296287512Sdim return __builtin_s390_vgfmb(__a, __b); 8297287512Sdim} 8298287512Sdim 8299287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8300287512Sdimvec_gfmsum(vector unsigned short __a, vector unsigned short __b) { 8301287512Sdim return __builtin_s390_vgfmh(__a, __b); 8302287512Sdim} 8303287512Sdim 8304287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8305287512Sdimvec_gfmsum(vector unsigned int __a, vector unsigned int __b) { 8306287512Sdim return __builtin_s390_vgfmf(__a, __b); 8307287512Sdim} 8308287512Sdim 8309287512Sdim/*-- vec_gfmsum_128 ---------------------------------------------------------*/ 8310287512Sdim 8311287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8312287512Sdimvec_gfmsum_128(vector unsigned long long __a, vector unsigned long long __b) { 8313287512Sdim return __builtin_s390_vgfmg(__a, __b); 8314287512Sdim} 8315287512Sdim 8316287512Sdim/*-- vec_gfmsum_accum -------------------------------------------------------*/ 8317287512Sdim 8318287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8319287512Sdimvec_gfmsum_accum(vector unsigned char __a, vector unsigned char __b, 8320287512Sdim vector unsigned short __c) { 8321287512Sdim return __builtin_s390_vgfmab(__a, __b, __c); 8322287512Sdim} 8323287512Sdim 8324287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8325287512Sdimvec_gfmsum_accum(vector unsigned short __a, vector unsigned short __b, 8326287512Sdim vector unsigned int __c) { 8327287512Sdim return __builtin_s390_vgfmah(__a, __b, __c); 8328287512Sdim} 8329287512Sdim 8330287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8331287512Sdimvec_gfmsum_accum(vector unsigned int __a, vector unsigned int __b, 8332287512Sdim vector unsigned long long __c) { 8333287512Sdim return __builtin_s390_vgfmaf(__a, __b, __c); 8334287512Sdim} 8335287512Sdim 8336287512Sdim/*-- vec_gfmsum_accum_128 ---------------------------------------------------*/ 8337287512Sdim 8338287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8339287512Sdimvec_gfmsum_accum_128(vector unsigned long long __a, 8340287512Sdim vector unsigned long long __b, 8341287512Sdim vector unsigned char __c) { 8342287512Sdim return __builtin_s390_vgfmag(__a, __b, __c); 8343287512Sdim} 8344287512Sdim 8345287512Sdim/*-- vec_mladd --------------------------------------------------------------*/ 8346287512Sdim 8347287512Sdimstatic inline __ATTRS_o_ai vector signed char 8348287512Sdimvec_mladd(vector signed char __a, vector signed char __b, 8349287512Sdim vector signed char __c) { 8350287512Sdim return __a * __b + __c; 8351287512Sdim} 8352287512Sdim 8353287512Sdimstatic inline __ATTRS_o_ai vector signed char 8354287512Sdimvec_mladd(vector unsigned char __a, vector signed char __b, 8355287512Sdim vector signed char __c) { 8356287512Sdim return (vector signed char)__a * __b + __c; 8357287512Sdim} 8358287512Sdim 8359287512Sdimstatic inline __ATTRS_o_ai vector signed char 8360287512Sdimvec_mladd(vector signed char __a, vector unsigned char __b, 8361287512Sdim vector unsigned char __c) { 8362287512Sdim return __a * (vector signed char)__b + (vector signed char)__c; 8363287512Sdim} 8364287512Sdim 8365287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8366287512Sdimvec_mladd(vector unsigned char __a, vector unsigned char __b, 8367287512Sdim vector unsigned char __c) { 8368287512Sdim return __a * __b + __c; 8369287512Sdim} 8370287512Sdim 8371287512Sdimstatic inline __ATTRS_o_ai vector signed short 8372287512Sdimvec_mladd(vector signed short __a, vector signed short __b, 8373287512Sdim vector signed short __c) { 8374287512Sdim return __a * __b + __c; 8375287512Sdim} 8376287512Sdim 8377287512Sdimstatic inline __ATTRS_o_ai vector signed short 8378287512Sdimvec_mladd(vector unsigned short __a, vector signed short __b, 8379287512Sdim vector signed short __c) { 8380287512Sdim return (vector signed short)__a * __b + __c; 8381287512Sdim} 8382287512Sdim 8383287512Sdimstatic inline __ATTRS_o_ai vector signed short 8384287512Sdimvec_mladd(vector signed short __a, vector unsigned short __b, 8385287512Sdim vector unsigned short __c) { 8386287512Sdim return __a * (vector signed short)__b + (vector signed short)__c; 8387287512Sdim} 8388287512Sdim 8389287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8390287512Sdimvec_mladd(vector unsigned short __a, vector unsigned short __b, 8391287512Sdim vector unsigned short __c) { 8392287512Sdim return __a * __b + __c; 8393287512Sdim} 8394287512Sdim 8395287512Sdimstatic inline __ATTRS_o_ai vector signed int 8396287512Sdimvec_mladd(vector signed int __a, vector signed int __b, 8397287512Sdim vector signed int __c) { 8398287512Sdim return __a * __b + __c; 8399287512Sdim} 8400287512Sdim 8401287512Sdimstatic inline __ATTRS_o_ai vector signed int 8402287512Sdimvec_mladd(vector unsigned int __a, vector signed int __b, 8403287512Sdim vector signed int __c) { 8404287512Sdim return (vector signed int)__a * __b + __c; 8405287512Sdim} 8406287512Sdim 8407287512Sdimstatic inline __ATTRS_o_ai vector signed int 8408287512Sdimvec_mladd(vector signed int __a, vector unsigned int __b, 8409287512Sdim vector unsigned int __c) { 8410287512Sdim return __a * (vector signed int)__b + (vector signed int)__c; 8411287512Sdim} 8412287512Sdim 8413287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8414287512Sdimvec_mladd(vector unsigned int __a, vector unsigned int __b, 8415287512Sdim vector unsigned int __c) { 8416287512Sdim return __a * __b + __c; 8417287512Sdim} 8418287512Sdim 8419287512Sdim/*-- vec_mhadd --------------------------------------------------------------*/ 8420287512Sdim 8421287512Sdimstatic inline __ATTRS_o_ai vector signed char 8422287512Sdimvec_mhadd(vector signed char __a, vector signed char __b, 8423287512Sdim vector signed char __c) { 8424287512Sdim return __builtin_s390_vmahb(__a, __b, __c); 8425287512Sdim} 8426287512Sdim 8427287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8428287512Sdimvec_mhadd(vector unsigned char __a, vector unsigned char __b, 8429287512Sdim vector unsigned char __c) { 8430287512Sdim return __builtin_s390_vmalhb(__a, __b, __c); 8431287512Sdim} 8432287512Sdim 8433287512Sdimstatic inline __ATTRS_o_ai vector signed short 8434287512Sdimvec_mhadd(vector signed short __a, vector signed short __b, 8435287512Sdim vector signed short __c) { 8436287512Sdim return __builtin_s390_vmahh(__a, __b, __c); 8437287512Sdim} 8438287512Sdim 8439287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8440287512Sdimvec_mhadd(vector unsigned short __a, vector unsigned short __b, 8441287512Sdim vector unsigned short __c) { 8442287512Sdim return __builtin_s390_vmalhh(__a, __b, __c); 8443287512Sdim} 8444287512Sdim 8445287512Sdimstatic inline __ATTRS_o_ai vector signed int 8446287512Sdimvec_mhadd(vector signed int __a, vector signed int __b, 8447287512Sdim vector signed int __c) { 8448287512Sdim return __builtin_s390_vmahf(__a, __b, __c); 8449287512Sdim} 8450287512Sdim 8451287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8452287512Sdimvec_mhadd(vector unsigned int __a, vector unsigned int __b, 8453287512Sdim vector unsigned int __c) { 8454287512Sdim return __builtin_s390_vmalhf(__a, __b, __c); 8455287512Sdim} 8456287512Sdim 8457287512Sdim/*-- vec_meadd --------------------------------------------------------------*/ 8458287512Sdim 8459287512Sdimstatic inline __ATTRS_o_ai vector signed short 8460287512Sdimvec_meadd(vector signed char __a, vector signed char __b, 8461287512Sdim vector signed short __c) { 8462287512Sdim return __builtin_s390_vmaeb(__a, __b, __c); 8463287512Sdim} 8464287512Sdim 8465287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8466287512Sdimvec_meadd(vector unsigned char __a, vector unsigned char __b, 8467287512Sdim vector unsigned short __c) { 8468287512Sdim return __builtin_s390_vmaleb(__a, __b, __c); 8469287512Sdim} 8470287512Sdim 8471287512Sdimstatic inline __ATTRS_o_ai vector signed int 8472287512Sdimvec_meadd(vector signed short __a, vector signed short __b, 8473287512Sdim vector signed int __c) { 8474287512Sdim return __builtin_s390_vmaeh(__a, __b, __c); 8475287512Sdim} 8476287512Sdim 8477287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8478287512Sdimvec_meadd(vector unsigned short __a, vector unsigned short __b, 8479287512Sdim vector unsigned int __c) { 8480287512Sdim return __builtin_s390_vmaleh(__a, __b, __c); 8481287512Sdim} 8482287512Sdim 8483287512Sdimstatic inline __ATTRS_o_ai vector signed long long 8484287512Sdimvec_meadd(vector signed int __a, vector signed int __b, 8485287512Sdim vector signed long long __c) { 8486287512Sdim return __builtin_s390_vmaef(__a, __b, __c); 8487287512Sdim} 8488287512Sdim 8489287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8490287512Sdimvec_meadd(vector unsigned int __a, vector unsigned int __b, 8491287512Sdim vector unsigned long long __c) { 8492287512Sdim return __builtin_s390_vmalef(__a, __b, __c); 8493287512Sdim} 8494287512Sdim 8495287512Sdim/*-- vec_moadd --------------------------------------------------------------*/ 8496287512Sdim 8497287512Sdimstatic inline __ATTRS_o_ai vector signed short 8498287512Sdimvec_moadd(vector signed char __a, vector signed char __b, 8499287512Sdim vector signed short __c) { 8500287512Sdim return __builtin_s390_vmaob(__a, __b, __c); 8501287512Sdim} 8502287512Sdim 8503287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8504287512Sdimvec_moadd(vector unsigned char __a, vector unsigned char __b, 8505287512Sdim vector unsigned short __c) { 8506287512Sdim return __builtin_s390_vmalob(__a, __b, __c); 8507287512Sdim} 8508287512Sdim 8509287512Sdimstatic inline __ATTRS_o_ai vector signed int 8510287512Sdimvec_moadd(vector signed short __a, vector signed short __b, 8511287512Sdim vector signed int __c) { 8512287512Sdim return __builtin_s390_vmaoh(__a, __b, __c); 8513287512Sdim} 8514287512Sdim 8515287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8516287512Sdimvec_moadd(vector unsigned short __a, vector unsigned short __b, 8517287512Sdim vector unsigned int __c) { 8518287512Sdim return __builtin_s390_vmaloh(__a, __b, __c); 8519287512Sdim} 8520287512Sdim 8521287512Sdimstatic inline __ATTRS_o_ai vector signed long long 8522287512Sdimvec_moadd(vector signed int __a, vector signed int __b, 8523287512Sdim vector signed long long __c) { 8524287512Sdim return __builtin_s390_vmaof(__a, __b, __c); 8525287512Sdim} 8526287512Sdim 8527287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8528287512Sdimvec_moadd(vector unsigned int __a, vector unsigned int __b, 8529287512Sdim vector unsigned long long __c) { 8530287512Sdim return __builtin_s390_vmalof(__a, __b, __c); 8531287512Sdim} 8532287512Sdim 8533287512Sdim/*-- vec_mulh ---------------------------------------------------------------*/ 8534287512Sdim 8535287512Sdimstatic inline __ATTRS_o_ai vector signed char 8536287512Sdimvec_mulh(vector signed char __a, vector signed char __b) { 8537287512Sdim return __builtin_s390_vmhb(__a, __b); 8538287512Sdim} 8539287512Sdim 8540287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8541287512Sdimvec_mulh(vector unsigned char __a, vector unsigned char __b) { 8542287512Sdim return __builtin_s390_vmlhb(__a, __b); 8543287512Sdim} 8544287512Sdim 8545287512Sdimstatic inline __ATTRS_o_ai vector signed short 8546287512Sdimvec_mulh(vector signed short __a, vector signed short __b) { 8547287512Sdim return __builtin_s390_vmhh(__a, __b); 8548287512Sdim} 8549287512Sdim 8550287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8551287512Sdimvec_mulh(vector unsigned short __a, vector unsigned short __b) { 8552287512Sdim return __builtin_s390_vmlhh(__a, __b); 8553287512Sdim} 8554287512Sdim 8555287512Sdimstatic inline __ATTRS_o_ai vector signed int 8556287512Sdimvec_mulh(vector signed int __a, vector signed int __b) { 8557287512Sdim return __builtin_s390_vmhf(__a, __b); 8558287512Sdim} 8559287512Sdim 8560287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8561287512Sdimvec_mulh(vector unsigned int __a, vector unsigned int __b) { 8562287512Sdim return __builtin_s390_vmlhf(__a, __b); 8563287512Sdim} 8564287512Sdim 8565287512Sdim/*-- vec_mule ---------------------------------------------------------------*/ 8566287512Sdim 8567287512Sdimstatic inline __ATTRS_o_ai vector signed short 8568287512Sdimvec_mule(vector signed char __a, vector signed char __b) { 8569287512Sdim return __builtin_s390_vmeb(__a, __b); 8570287512Sdim} 8571287512Sdim 8572287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8573287512Sdimvec_mule(vector unsigned char __a, vector unsigned char __b) { 8574287512Sdim return __builtin_s390_vmleb(__a, __b); 8575287512Sdim} 8576287512Sdim 8577287512Sdimstatic inline __ATTRS_o_ai vector signed int 8578287512Sdimvec_mule(vector signed short __a, vector signed short __b) { 8579287512Sdim return __builtin_s390_vmeh(__a, __b); 8580287512Sdim} 8581287512Sdim 8582287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8583287512Sdimvec_mule(vector unsigned short __a, vector unsigned short __b) { 8584287512Sdim return __builtin_s390_vmleh(__a, __b); 8585287512Sdim} 8586287512Sdim 8587287512Sdimstatic inline __ATTRS_o_ai vector signed long long 8588287512Sdimvec_mule(vector signed int __a, vector signed int __b) { 8589287512Sdim return __builtin_s390_vmef(__a, __b); 8590287512Sdim} 8591287512Sdim 8592287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8593287512Sdimvec_mule(vector unsigned int __a, vector unsigned int __b) { 8594287512Sdim return __builtin_s390_vmlef(__a, __b); 8595287512Sdim} 8596287512Sdim 8597287512Sdim/*-- vec_mulo ---------------------------------------------------------------*/ 8598287512Sdim 8599287512Sdimstatic inline __ATTRS_o_ai vector signed short 8600287512Sdimvec_mulo(vector signed char __a, vector signed char __b) { 8601287512Sdim return __builtin_s390_vmob(__a, __b); 8602287512Sdim} 8603287512Sdim 8604287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8605287512Sdimvec_mulo(vector unsigned char __a, vector unsigned char __b) { 8606287512Sdim return __builtin_s390_vmlob(__a, __b); 8607287512Sdim} 8608287512Sdim 8609287512Sdimstatic inline __ATTRS_o_ai vector signed int 8610287512Sdimvec_mulo(vector signed short __a, vector signed short __b) { 8611287512Sdim return __builtin_s390_vmoh(__a, __b); 8612287512Sdim} 8613287512Sdim 8614287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8615287512Sdimvec_mulo(vector unsigned short __a, vector unsigned short __b) { 8616287512Sdim return __builtin_s390_vmloh(__a, __b); 8617287512Sdim} 8618287512Sdim 8619287512Sdimstatic inline __ATTRS_o_ai vector signed long long 8620287512Sdimvec_mulo(vector signed int __a, vector signed int __b) { 8621287512Sdim return __builtin_s390_vmof(__a, __b); 8622287512Sdim} 8623287512Sdim 8624287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8625287512Sdimvec_mulo(vector unsigned int __a, vector unsigned int __b) { 8626287512Sdim return __builtin_s390_vmlof(__a, __b); 8627287512Sdim} 8628287512Sdim 8629321369Sdim/*-- vec_msum_u128 ----------------------------------------------------------*/ 8630321369Sdim 8631321369Sdim#if __ARCH__ >= 12 8632321369Sdim#define vec_msum_u128(X, Y, Z, W) \ 8633321369Sdim ((vector unsigned char)__builtin_s390_vmslg((X), (Y), (Z), (W))); 8634321369Sdim#endif 8635321369Sdim 8636287512Sdim/*-- vec_sub_u128 -----------------------------------------------------------*/ 8637287512Sdim 8638287512Sdimstatic inline __ATTRS_ai vector unsigned char 8639287512Sdimvec_sub_u128(vector unsigned char __a, vector unsigned char __b) { 8640287512Sdim return __builtin_s390_vsq(__a, __b); 8641287512Sdim} 8642287512Sdim 8643287512Sdim/*-- vec_subc ---------------------------------------------------------------*/ 8644287512Sdim 8645287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8646287512Sdimvec_subc(vector unsigned char __a, vector unsigned char __b) { 8647287512Sdim return __builtin_s390_vscbib(__a, __b); 8648287512Sdim} 8649287512Sdim 8650287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 8651287512Sdimvec_subc(vector unsigned short __a, vector unsigned short __b) { 8652287512Sdim return __builtin_s390_vscbih(__a, __b); 8653287512Sdim} 8654287512Sdim 8655287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8656287512Sdimvec_subc(vector unsigned int __a, vector unsigned int __b) { 8657287512Sdim return __builtin_s390_vscbif(__a, __b); 8658287512Sdim} 8659287512Sdim 8660287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8661287512Sdimvec_subc(vector unsigned long long __a, vector unsigned long long __b) { 8662287512Sdim return __builtin_s390_vscbig(__a, __b); 8663287512Sdim} 8664287512Sdim 8665287512Sdim/*-- vec_subc_u128 ----------------------------------------------------------*/ 8666287512Sdim 8667287512Sdimstatic inline __ATTRS_ai vector unsigned char 8668287512Sdimvec_subc_u128(vector unsigned char __a, vector unsigned char __b) { 8669287512Sdim return __builtin_s390_vscbiq(__a, __b); 8670287512Sdim} 8671287512Sdim 8672287512Sdim/*-- vec_sube_u128 ----------------------------------------------------------*/ 8673287512Sdim 8674287512Sdimstatic inline __ATTRS_ai vector unsigned char 8675287512Sdimvec_sube_u128(vector unsigned char __a, vector unsigned char __b, 8676287512Sdim vector unsigned char __c) { 8677287512Sdim return __builtin_s390_vsbiq(__a, __b, __c); 8678287512Sdim} 8679287512Sdim 8680287512Sdim/*-- vec_subec_u128 ---------------------------------------------------------*/ 8681287512Sdim 8682287512Sdimstatic inline __ATTRS_ai vector unsigned char 8683287512Sdimvec_subec_u128(vector unsigned char __a, vector unsigned char __b, 8684287512Sdim vector unsigned char __c) { 8685287512Sdim return __builtin_s390_vsbcbiq(__a, __b, __c); 8686287512Sdim} 8687287512Sdim 8688287512Sdim/*-- vec_sum2 ---------------------------------------------------------------*/ 8689287512Sdim 8690287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8691287512Sdimvec_sum2(vector unsigned short __a, vector unsigned short __b) { 8692287512Sdim return __builtin_s390_vsumgh(__a, __b); 8693287512Sdim} 8694287512Sdim 8695287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8696287512Sdimvec_sum2(vector unsigned int __a, vector unsigned int __b) { 8697287512Sdim return __builtin_s390_vsumgf(__a, __b); 8698287512Sdim} 8699287512Sdim 8700287512Sdim/*-- vec_sum_u128 -----------------------------------------------------------*/ 8701287512Sdim 8702287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8703287512Sdimvec_sum_u128(vector unsigned int __a, vector unsigned int __b) { 8704287512Sdim return __builtin_s390_vsumqf(__a, __b); 8705287512Sdim} 8706287512Sdim 8707287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 8708287512Sdimvec_sum_u128(vector unsigned long long __a, vector unsigned long long __b) { 8709287512Sdim return __builtin_s390_vsumqg(__a, __b); 8710287512Sdim} 8711287512Sdim 8712287512Sdim/*-- vec_sum4 ---------------------------------------------------------------*/ 8713287512Sdim 8714287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8715287512Sdimvec_sum4(vector unsigned char __a, vector unsigned char __b) { 8716287512Sdim return __builtin_s390_vsumb(__a, __b); 8717287512Sdim} 8718287512Sdim 8719287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 8720287512Sdimvec_sum4(vector unsigned short __a, vector unsigned short __b) { 8721287512Sdim return __builtin_s390_vsumh(__a, __b); 8722287512Sdim} 8723287512Sdim 8724287512Sdim/*-- vec_test_mask ----------------------------------------------------------*/ 8725287512Sdim 8726287512Sdimstatic inline __ATTRS_o_ai int 8727287512Sdimvec_test_mask(vector signed char __a, vector unsigned char __b) { 8728287512Sdim return __builtin_s390_vtm((vector unsigned char)__a, 8729287512Sdim (vector unsigned char)__b); 8730287512Sdim} 8731287512Sdim 8732287512Sdimstatic inline __ATTRS_o_ai int 8733287512Sdimvec_test_mask(vector unsigned char __a, vector unsigned char __b) { 8734287512Sdim return __builtin_s390_vtm(__a, __b); 8735287512Sdim} 8736287512Sdim 8737287512Sdimstatic inline __ATTRS_o_ai int 8738287512Sdimvec_test_mask(vector signed short __a, vector unsigned short __b) { 8739287512Sdim return __builtin_s390_vtm((vector unsigned char)__a, 8740287512Sdim (vector unsigned char)__b); 8741287512Sdim} 8742287512Sdim 8743287512Sdimstatic inline __ATTRS_o_ai int 8744287512Sdimvec_test_mask(vector unsigned short __a, vector unsigned short __b) { 8745287512Sdim return __builtin_s390_vtm((vector unsigned char)__a, 8746287512Sdim (vector unsigned char)__b); 8747287512Sdim} 8748287512Sdim 8749287512Sdimstatic inline __ATTRS_o_ai int 8750287512Sdimvec_test_mask(vector signed int __a, vector unsigned int __b) { 8751287512Sdim return __builtin_s390_vtm((vector unsigned char)__a, 8752287512Sdim (vector unsigned char)__b); 8753287512Sdim} 8754287512Sdim 8755287512Sdimstatic inline __ATTRS_o_ai int 8756287512Sdimvec_test_mask(vector unsigned int __a, vector unsigned int __b) { 8757287512Sdim return __builtin_s390_vtm((vector unsigned char)__a, 8758287512Sdim (vector unsigned char)__b); 8759287512Sdim} 8760287512Sdim 8761287512Sdimstatic inline __ATTRS_o_ai int 8762287512Sdimvec_test_mask(vector signed long long __a, vector unsigned long long __b) { 8763287512Sdim return __builtin_s390_vtm((vector unsigned char)__a, 8764287512Sdim (vector unsigned char)__b); 8765287512Sdim} 8766287512Sdim 8767287512Sdimstatic inline __ATTRS_o_ai int 8768287512Sdimvec_test_mask(vector unsigned long long __a, vector unsigned long long __b) { 8769287512Sdim return __builtin_s390_vtm((vector unsigned char)__a, 8770287512Sdim (vector unsigned char)__b); 8771287512Sdim} 8772287512Sdim 8773321369Sdim#if __ARCH__ >= 12 8774287512Sdimstatic inline __ATTRS_o_ai int 8775321369Sdimvec_test_mask(vector float __a, vector unsigned int __b) { 8776321369Sdim return __builtin_s390_vtm((vector unsigned char)__a, 8777321369Sdim (vector unsigned char)__b); 8778321369Sdim} 8779321369Sdim#endif 8780321369Sdim 8781321369Sdimstatic inline __ATTRS_o_ai int 8782287512Sdimvec_test_mask(vector double __a, vector unsigned long long __b) { 8783287512Sdim return __builtin_s390_vtm((vector unsigned char)__a, 8784287512Sdim (vector unsigned char)__b); 8785287512Sdim} 8786287512Sdim 8787287512Sdim/*-- vec_madd ---------------------------------------------------------------*/ 8788287512Sdim 8789321369Sdim#if __ARCH__ >= 12 8790321369Sdimstatic inline __ATTRS_o_ai vector float 8791321369Sdimvec_madd(vector float __a, vector float __b, vector float __c) { 8792321369Sdim return __builtin_s390_vfmasb(__a, __b, __c); 8793321369Sdim} 8794321369Sdim#endif 8795321369Sdim 8796321369Sdimstatic inline __ATTRS_o_ai vector double 8797287512Sdimvec_madd(vector double __a, vector double __b, vector double __c) { 8798287512Sdim return __builtin_s390_vfmadb(__a, __b, __c); 8799287512Sdim} 8800287512Sdim 8801287512Sdim/*-- vec_msub ---------------------------------------------------------------*/ 8802287512Sdim 8803321369Sdim#if __ARCH__ >= 12 8804321369Sdimstatic inline __ATTRS_o_ai vector float 8805321369Sdimvec_msub(vector float __a, vector float __b, vector float __c) { 8806321369Sdim return __builtin_s390_vfmssb(__a, __b, __c); 8807321369Sdim} 8808321369Sdim#endif 8809321369Sdim 8810321369Sdimstatic inline __ATTRS_o_ai vector double 8811287512Sdimvec_msub(vector double __a, vector double __b, vector double __c) { 8812287512Sdim return __builtin_s390_vfmsdb(__a, __b, __c); 8813287512Sdim} 8814287512Sdim 8815321369Sdim/*-- vec_nmadd ---------------------------------------------------------------*/ 8816321369Sdim 8817321369Sdim#if __ARCH__ >= 12 8818321369Sdimstatic inline __ATTRS_o_ai vector float 8819321369Sdimvec_nmadd(vector float __a, vector float __b, vector float __c) { 8820321369Sdim return __builtin_s390_vfnmasb(__a, __b, __c); 8821321369Sdim} 8822321369Sdim 8823321369Sdimstatic inline __ATTRS_o_ai vector double 8824321369Sdimvec_nmadd(vector double __a, vector double __b, vector double __c) { 8825321369Sdim return __builtin_s390_vfnmadb(__a, __b, __c); 8826321369Sdim} 8827321369Sdim#endif 8828321369Sdim 8829321369Sdim/*-- vec_nmsub ---------------------------------------------------------------*/ 8830321369Sdim 8831321369Sdim#if __ARCH__ >= 12 8832321369Sdimstatic inline __ATTRS_o_ai vector float 8833321369Sdimvec_nmsub(vector float __a, vector float __b, vector float __c) { 8834321369Sdim return __builtin_s390_vfnmssb(__a, __b, __c); 8835321369Sdim} 8836321369Sdim 8837321369Sdimstatic inline __ATTRS_o_ai vector double 8838321369Sdimvec_nmsub(vector double __a, vector double __b, vector double __c) { 8839321369Sdim return __builtin_s390_vfnmsdb(__a, __b, __c); 8840321369Sdim} 8841321369Sdim#endif 8842321369Sdim 8843287512Sdim/*-- vec_sqrt ---------------------------------------------------------------*/ 8844287512Sdim 8845321369Sdim#if __ARCH__ >= 12 8846321369Sdimstatic inline __ATTRS_o_ai vector float 8847321369Sdimvec_sqrt(vector float __a) { 8848321369Sdim return __builtin_s390_vfsqsb(__a); 8849321369Sdim} 8850321369Sdim#endif 8851321369Sdim 8852321369Sdimstatic inline __ATTRS_o_ai vector double 8853287512Sdimvec_sqrt(vector double __a) { 8854287512Sdim return __builtin_s390_vfsqdb(__a); 8855287512Sdim} 8856287512Sdim 8857287512Sdim/*-- vec_ld2f ---------------------------------------------------------------*/ 8858287512Sdim 8859321369Sdim// This prototype is deprecated. 8860287512Sdimstatic inline __ATTRS_ai vector double 8861287512Sdimvec_ld2f(const float *__ptr) { 8862287512Sdim typedef float __v2f32 __attribute__((__vector_size__(8))); 8863287512Sdim return __builtin_convertvector(*(const __v2f32 *)__ptr, vector double); 8864287512Sdim} 8865287512Sdim 8866287512Sdim/*-- vec_st2f ---------------------------------------------------------------*/ 8867287512Sdim 8868321369Sdim// This prototype is deprecated. 8869287512Sdimstatic inline __ATTRS_ai void 8870287512Sdimvec_st2f(vector double __a, float *__ptr) { 8871287512Sdim typedef float __v2f32 __attribute__((__vector_size__(8))); 8872287512Sdim *(__v2f32 *)__ptr = __builtin_convertvector(__a, __v2f32); 8873287512Sdim} 8874287512Sdim 8875287512Sdim/*-- vec_ctd ----------------------------------------------------------------*/ 8876287512Sdim 8877321369Sdim// This prototype is deprecated. 8878287512Sdimstatic inline __ATTRS_o_ai vector double 8879287512Sdimvec_ctd(vector signed long long __a, int __b) 8880287512Sdim __constant_range(__b, 0, 31) { 8881287512Sdim vector double __conv = __builtin_convertvector(__a, vector double); 8882287512Sdim __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52); 8883287512Sdim return __conv; 8884287512Sdim} 8885287512Sdim 8886321369Sdim// This prototype is deprecated. 8887287512Sdimstatic inline __ATTRS_o_ai vector double 8888287512Sdimvec_ctd(vector unsigned long long __a, int __b) 8889287512Sdim __constant_range(__b, 0, 31) { 8890287512Sdim vector double __conv = __builtin_convertvector(__a, vector double); 8891287512Sdim __conv *= (vector double)(vector unsigned long long)((0x3ffULL - __b) << 52); 8892287512Sdim return __conv; 8893287512Sdim} 8894287512Sdim 8895287512Sdim/*-- vec_ctsl ---------------------------------------------------------------*/ 8896287512Sdim 8897321369Sdim// This prototype is deprecated. 8898287512Sdimstatic inline __ATTRS_o_ai vector signed long long 8899287512Sdimvec_ctsl(vector double __a, int __b) 8900287512Sdim __constant_range(__b, 0, 31) { 8901287512Sdim __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52); 8902287512Sdim return __builtin_convertvector(__a, vector signed long long); 8903287512Sdim} 8904287512Sdim 8905287512Sdim/*-- vec_ctul ---------------------------------------------------------------*/ 8906287512Sdim 8907321369Sdim// This prototype is deprecated. 8908287512Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8909287512Sdimvec_ctul(vector double __a, int __b) 8910287512Sdim __constant_range(__b, 0, 31) { 8911287512Sdim __a *= (vector double)(vector unsigned long long)((0x3ffULL + __b) << 52); 8912287512Sdim return __builtin_convertvector(__a, vector unsigned long long); 8913287512Sdim} 8914287512Sdim 8915321369Sdim/*-- vec_doublee ------------------------------------------------------------*/ 8916321369Sdim 8917321369Sdim#if __ARCH__ >= 12 8918321369Sdimstatic inline __ATTRS_ai vector double 8919321369Sdimvec_doublee(vector float __a) { 8920321369Sdim typedef float __v2f32 __attribute__((__vector_size__(8))); 8921321369Sdim __v2f32 __pack = __builtin_shufflevector(__a, __a, 0, 2); 8922321369Sdim return __builtin_convertvector(__pack, vector double); 8923321369Sdim} 8924321369Sdim#endif 8925321369Sdim 8926321369Sdim/*-- vec_floate -------------------------------------------------------------*/ 8927321369Sdim 8928321369Sdim#if __ARCH__ >= 12 8929321369Sdimstatic inline __ATTRS_ai vector float 8930321369Sdimvec_floate(vector double __a) { 8931321369Sdim typedef float __v2f32 __attribute__((__vector_size__(8))); 8932321369Sdim __v2f32 __pack = __builtin_convertvector(__a, __v2f32); 8933321369Sdim return __builtin_shufflevector(__pack, __pack, 0, -1, 1, -1); 8934321369Sdim} 8935321369Sdim#endif 8936321369Sdim 8937321369Sdim/*-- vec_double -------------------------------------------------------------*/ 8938321369Sdim 8939321369Sdimstatic inline __ATTRS_o_ai vector double 8940321369Sdimvec_double(vector signed long long __a) { 8941321369Sdim return __builtin_convertvector(__a, vector double); 8942321369Sdim} 8943321369Sdim 8944321369Sdimstatic inline __ATTRS_o_ai vector double 8945321369Sdimvec_double(vector unsigned long long __a) { 8946321369Sdim return __builtin_convertvector(__a, vector double); 8947321369Sdim} 8948321369Sdim 8949353358Sdim/*-- vec_float --------------------------------------------------------------*/ 8950353358Sdim 8951353358Sdim#if __ARCH__ >= 13 8952353358Sdim 8953353358Sdimstatic inline __ATTRS_o_ai vector float 8954353358Sdimvec_float(vector signed int __a) { 8955353358Sdim return __builtin_convertvector(__a, vector float); 8956353358Sdim} 8957353358Sdim 8958353358Sdimstatic inline __ATTRS_o_ai vector float 8959353358Sdimvec_float(vector unsigned int __a) { 8960353358Sdim return __builtin_convertvector(__a, vector float); 8961353358Sdim} 8962353358Sdim 8963353358Sdim#endif 8964353358Sdim 8965321369Sdim/*-- vec_signed -------------------------------------------------------------*/ 8966321369Sdim 8967321369Sdimstatic inline __ATTRS_o_ai vector signed long long 8968321369Sdimvec_signed(vector double __a) { 8969321369Sdim return __builtin_convertvector(__a, vector signed long long); 8970321369Sdim} 8971321369Sdim 8972353358Sdim#if __ARCH__ >= 13 8973353358Sdimstatic inline __ATTRS_o_ai vector signed int 8974353358Sdimvec_signed(vector float __a) { 8975353358Sdim return __builtin_convertvector(__a, vector signed int); 8976353358Sdim} 8977353358Sdim#endif 8978353358Sdim 8979321369Sdim/*-- vec_unsigned -----------------------------------------------------------*/ 8980321369Sdim 8981321369Sdimstatic inline __ATTRS_o_ai vector unsigned long long 8982321369Sdimvec_unsigned(vector double __a) { 8983321369Sdim return __builtin_convertvector(__a, vector unsigned long long); 8984321369Sdim} 8985321369Sdim 8986353358Sdim#if __ARCH__ >= 13 8987353358Sdimstatic inline __ATTRS_o_ai vector unsigned int 8988353358Sdimvec_unsigned(vector float __a) { 8989353358Sdim return __builtin_convertvector(__a, vector unsigned int); 8990353358Sdim} 8991353358Sdim#endif 8992353358Sdim 8993287512Sdim/*-- vec_roundp -------------------------------------------------------------*/ 8994287512Sdim 8995321369Sdim#if __ARCH__ >= 12 8996321369Sdimstatic inline __ATTRS_o_ai vector float 8997321369Sdimvec_roundp(vector float __a) { 8998321369Sdim return __builtin_s390_vfisb(__a, 4, 6); 8999321369Sdim} 9000321369Sdim#endif 9001321369Sdim 9002321369Sdimstatic inline __ATTRS_o_ai vector double 9003287512Sdimvec_roundp(vector double __a) { 9004287512Sdim return __builtin_s390_vfidb(__a, 4, 6); 9005287512Sdim} 9006287512Sdim 9007287512Sdim/*-- vec_ceil ---------------------------------------------------------------*/ 9008287512Sdim 9009321369Sdim#if __ARCH__ >= 12 9010321369Sdimstatic inline __ATTRS_o_ai vector float 9011321369Sdimvec_ceil(vector float __a) { 9012321369Sdim // On this platform, vec_ceil never triggers the IEEE-inexact exception. 9013321369Sdim return __builtin_s390_vfisb(__a, 4, 6); 9014321369Sdim} 9015321369Sdim#endif 9016321369Sdim 9017321369Sdimstatic inline __ATTRS_o_ai vector double 9018287512Sdimvec_ceil(vector double __a) { 9019287512Sdim // On this platform, vec_ceil never triggers the IEEE-inexact exception. 9020287512Sdim return __builtin_s390_vfidb(__a, 4, 6); 9021287512Sdim} 9022287512Sdim 9023287512Sdim/*-- vec_roundm -------------------------------------------------------------*/ 9024287512Sdim 9025321369Sdim#if __ARCH__ >= 12 9026321369Sdimstatic inline __ATTRS_o_ai vector float 9027321369Sdimvec_roundm(vector float __a) { 9028321369Sdim return __builtin_s390_vfisb(__a, 4, 7); 9029321369Sdim} 9030321369Sdim#endif 9031321369Sdim 9032321369Sdimstatic inline __ATTRS_o_ai vector double 9033287512Sdimvec_roundm(vector double __a) { 9034287512Sdim return __builtin_s390_vfidb(__a, 4, 7); 9035287512Sdim} 9036287512Sdim 9037287512Sdim/*-- vec_floor --------------------------------------------------------------*/ 9038287512Sdim 9039321369Sdim#if __ARCH__ >= 12 9040321369Sdimstatic inline __ATTRS_o_ai vector float 9041321369Sdimvec_floor(vector float __a) { 9042321369Sdim // On this platform, vec_floor never triggers the IEEE-inexact exception. 9043321369Sdim return __builtin_s390_vfisb(__a, 4, 7); 9044321369Sdim} 9045321369Sdim#endif 9046321369Sdim 9047321369Sdimstatic inline __ATTRS_o_ai vector double 9048287512Sdimvec_floor(vector double __a) { 9049287512Sdim // On this platform, vec_floor never triggers the IEEE-inexact exception. 9050287512Sdim return __builtin_s390_vfidb(__a, 4, 7); 9051287512Sdim} 9052287512Sdim 9053287512Sdim/*-- vec_roundz -------------------------------------------------------------*/ 9054287512Sdim 9055321369Sdim#if __ARCH__ >= 12 9056321369Sdimstatic inline __ATTRS_o_ai vector float 9057321369Sdimvec_roundz(vector float __a) { 9058321369Sdim return __builtin_s390_vfisb(__a, 4, 5); 9059321369Sdim} 9060321369Sdim#endif 9061321369Sdim 9062321369Sdimstatic inline __ATTRS_o_ai vector double 9063287512Sdimvec_roundz(vector double __a) { 9064287512Sdim return __builtin_s390_vfidb(__a, 4, 5); 9065287512Sdim} 9066287512Sdim 9067287512Sdim/*-- vec_trunc --------------------------------------------------------------*/ 9068287512Sdim 9069321369Sdim#if __ARCH__ >= 12 9070321369Sdimstatic inline __ATTRS_o_ai vector float 9071321369Sdimvec_trunc(vector float __a) { 9072321369Sdim // On this platform, vec_trunc never triggers the IEEE-inexact exception. 9073321369Sdim return __builtin_s390_vfisb(__a, 4, 5); 9074321369Sdim} 9075321369Sdim#endif 9076321369Sdim 9077321369Sdimstatic inline __ATTRS_o_ai vector double 9078287512Sdimvec_trunc(vector double __a) { 9079287512Sdim // On this platform, vec_trunc never triggers the IEEE-inexact exception. 9080287512Sdim return __builtin_s390_vfidb(__a, 4, 5); 9081287512Sdim} 9082287512Sdim 9083287512Sdim/*-- vec_roundc -------------------------------------------------------------*/ 9084287512Sdim 9085321369Sdim#if __ARCH__ >= 12 9086321369Sdimstatic inline __ATTRS_o_ai vector float 9087321369Sdimvec_roundc(vector float __a) { 9088321369Sdim return __builtin_s390_vfisb(__a, 4, 0); 9089321369Sdim} 9090321369Sdim#endif 9091321369Sdim 9092321369Sdimstatic inline __ATTRS_o_ai vector double 9093287512Sdimvec_roundc(vector double __a) { 9094287512Sdim return __builtin_s390_vfidb(__a, 4, 0); 9095287512Sdim} 9096287512Sdim 9097321369Sdim/*-- vec_rint ---------------------------------------------------------------*/ 9098321369Sdim 9099321369Sdim#if __ARCH__ >= 12 9100321369Sdimstatic inline __ATTRS_o_ai vector float 9101321369Sdimvec_rint(vector float __a) { 9102321369Sdim // vec_rint may trigger the IEEE-inexact exception. 9103321369Sdim return __builtin_s390_vfisb(__a, 0, 0); 9104321369Sdim} 9105321369Sdim#endif 9106321369Sdim 9107321369Sdimstatic inline __ATTRS_o_ai vector double 9108321369Sdimvec_rint(vector double __a) { 9109321369Sdim // vec_rint may trigger the IEEE-inexact exception. 9110321369Sdim return __builtin_s390_vfidb(__a, 0, 0); 9111321369Sdim} 9112321369Sdim 9113287512Sdim/*-- vec_round --------------------------------------------------------------*/ 9114287512Sdim 9115321369Sdim#if __ARCH__ >= 12 9116321369Sdimstatic inline __ATTRS_o_ai vector float 9117321369Sdimvec_round(vector float __a) { 9118321369Sdim return __builtin_s390_vfisb(__a, 4, 4); 9119321369Sdim} 9120321369Sdim#endif 9121321369Sdim 9122321369Sdimstatic inline __ATTRS_o_ai vector double 9123287512Sdimvec_round(vector double __a) { 9124287512Sdim return __builtin_s390_vfidb(__a, 4, 4); 9125287512Sdim} 9126287512Sdim 9127287512Sdim/*-- vec_fp_test_data_class -------------------------------------------------*/ 9128287512Sdim 9129321369Sdim#if __ARCH__ >= 12 9130321369Sdimextern __ATTRS_o vector bool int 9131321369Sdimvec_fp_test_data_class(vector float __a, int __b, int *__c) 9132321369Sdim __constant_range(__b, 0, 4095); 9133321369Sdim 9134321369Sdimextern __ATTRS_o vector bool long long 9135321369Sdimvec_fp_test_data_class(vector double __a, int __b, int *__c) 9136321369Sdim __constant_range(__b, 0, 4095); 9137321369Sdim 9138287512Sdim#define vec_fp_test_data_class(X, Y, Z) \ 9139321369Sdim ((__typeof__((vec_fp_test_data_class)((X), (Y), (Z)))) \ 9140321369Sdim __extension__ ({ \ 9141321369Sdim vector unsigned char __res; \ 9142321369Sdim vector unsigned char __x = (vector unsigned char)(X); \ 9143321369Sdim int *__z = (Z); \ 9144321369Sdim switch (sizeof ((X)[0])) { \ 9145321369Sdim case 4: __res = (vector unsigned char) \ 9146321369Sdim __builtin_s390_vftcisb((vector float)__x, (Y), __z); \ 9147321369Sdim break; \ 9148321369Sdim default: __res = (vector unsigned char) \ 9149321369Sdim __builtin_s390_vftcidb((vector double)__x, (Y), __z); \ 9150321369Sdim break; \ 9151321369Sdim } __res; })) 9152321369Sdim#else 9153321369Sdim#define vec_fp_test_data_class(X, Y, Z) \ 9154287512Sdim ((vector bool long long)__builtin_s390_vftcidb((X), (Y), (Z))) 9155321369Sdim#endif 9156287512Sdim 9157321369Sdim#define __VEC_CLASS_FP_ZERO_P (1 << 11) 9158321369Sdim#define __VEC_CLASS_FP_ZERO_N (1 << 10) 9159321369Sdim#define __VEC_CLASS_FP_ZERO (__VEC_CLASS_FP_ZERO_P | __VEC_CLASS_FP_ZERO_N) 9160321369Sdim#define __VEC_CLASS_FP_NORMAL_P (1 << 9) 9161321369Sdim#define __VEC_CLASS_FP_NORMAL_N (1 << 8) 9162321369Sdim#define __VEC_CLASS_FP_NORMAL (__VEC_CLASS_FP_NORMAL_P | \ 9163321369Sdim __VEC_CLASS_FP_NORMAL_N) 9164321369Sdim#define __VEC_CLASS_FP_SUBNORMAL_P (1 << 7) 9165321369Sdim#define __VEC_CLASS_FP_SUBNORMAL_N (1 << 6) 9166321369Sdim#define __VEC_CLASS_FP_SUBNORMAL (__VEC_CLASS_FP_SUBNORMAL_P | \ 9167321369Sdim __VEC_CLASS_FP_SUBNORMAL_N) 9168321369Sdim#define __VEC_CLASS_FP_INFINITY_P (1 << 5) 9169321369Sdim#define __VEC_CLASS_FP_INFINITY_N (1 << 4) 9170321369Sdim#define __VEC_CLASS_FP_INFINITY (__VEC_CLASS_FP_INFINITY_P | \ 9171321369Sdim __VEC_CLASS_FP_INFINITY_N) 9172321369Sdim#define __VEC_CLASS_FP_QNAN_P (1 << 3) 9173321369Sdim#define __VEC_CLASS_FP_QNAN_N (1 << 2) 9174321369Sdim#define __VEC_CLASS_FP_QNAN (__VEC_CLASS_FP_QNAN_P | __VEC_CLASS_FP_QNAN_N) 9175321369Sdim#define __VEC_CLASS_FP_SNAN_P (1 << 1) 9176321369Sdim#define __VEC_CLASS_FP_SNAN_N (1 << 0) 9177321369Sdim#define __VEC_CLASS_FP_SNAN (__VEC_CLASS_FP_SNAN_P | __VEC_CLASS_FP_SNAN_N) 9178321369Sdim#define __VEC_CLASS_FP_NAN (__VEC_CLASS_FP_QNAN | __VEC_CLASS_FP_SNAN) 9179321369Sdim#define __VEC_CLASS_FP_NOT_NORMAL (__VEC_CLASS_FP_NAN | \ 9180321369Sdim __VEC_CLASS_FP_SUBNORMAL | \ 9181321369Sdim __VEC_CLASS_FP_ZERO | \ 9182321369Sdim __VEC_CLASS_FP_INFINITY) 9183321369Sdim 9184287512Sdim/*-- vec_cp_until_zero ------------------------------------------------------*/ 9185287512Sdim 9186287512Sdimstatic inline __ATTRS_o_ai vector signed char 9187287512Sdimvec_cp_until_zero(vector signed char __a) { 9188287512Sdim return (vector signed char)__builtin_s390_vistrb((vector unsigned char)__a); 9189287512Sdim} 9190287512Sdim 9191287512Sdimstatic inline __ATTRS_o_ai vector bool char 9192287512Sdimvec_cp_until_zero(vector bool char __a) { 9193287512Sdim return (vector bool char)__builtin_s390_vistrb((vector unsigned char)__a); 9194287512Sdim} 9195287512Sdim 9196287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9197287512Sdimvec_cp_until_zero(vector unsigned char __a) { 9198287512Sdim return __builtin_s390_vistrb(__a); 9199287512Sdim} 9200287512Sdim 9201287512Sdimstatic inline __ATTRS_o_ai vector signed short 9202287512Sdimvec_cp_until_zero(vector signed short __a) { 9203287512Sdim return (vector signed short)__builtin_s390_vistrh((vector unsigned short)__a); 9204287512Sdim} 9205287512Sdim 9206287512Sdimstatic inline __ATTRS_o_ai vector bool short 9207287512Sdimvec_cp_until_zero(vector bool short __a) { 9208287512Sdim return (vector bool short)__builtin_s390_vistrh((vector unsigned short)__a); 9209287512Sdim} 9210287512Sdim 9211287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9212287512Sdimvec_cp_until_zero(vector unsigned short __a) { 9213287512Sdim return __builtin_s390_vistrh(__a); 9214287512Sdim} 9215287512Sdim 9216287512Sdimstatic inline __ATTRS_o_ai vector signed int 9217287512Sdimvec_cp_until_zero(vector signed int __a) { 9218287512Sdim return (vector signed int)__builtin_s390_vistrf((vector unsigned int)__a); 9219287512Sdim} 9220287512Sdim 9221287512Sdimstatic inline __ATTRS_o_ai vector bool int 9222287512Sdimvec_cp_until_zero(vector bool int __a) { 9223287512Sdim return (vector bool int)__builtin_s390_vistrf((vector unsigned int)__a); 9224287512Sdim} 9225287512Sdim 9226287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9227287512Sdimvec_cp_until_zero(vector unsigned int __a) { 9228287512Sdim return __builtin_s390_vistrf(__a); 9229287512Sdim} 9230287512Sdim 9231287512Sdim/*-- vec_cp_until_zero_cc ---------------------------------------------------*/ 9232287512Sdim 9233287512Sdimstatic inline __ATTRS_o_ai vector signed char 9234287512Sdimvec_cp_until_zero_cc(vector signed char __a, int *__cc) { 9235287512Sdim return (vector signed char) 9236287512Sdim __builtin_s390_vistrbs((vector unsigned char)__a, __cc); 9237287512Sdim} 9238287512Sdim 9239287512Sdimstatic inline __ATTRS_o_ai vector bool char 9240287512Sdimvec_cp_until_zero_cc(vector bool char __a, int *__cc) { 9241287512Sdim return (vector bool char) 9242287512Sdim __builtin_s390_vistrbs((vector unsigned char)__a, __cc); 9243287512Sdim} 9244287512Sdim 9245287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9246287512Sdimvec_cp_until_zero_cc(vector unsigned char __a, int *__cc) { 9247287512Sdim return __builtin_s390_vistrbs(__a, __cc); 9248287512Sdim} 9249287512Sdim 9250287512Sdimstatic inline __ATTRS_o_ai vector signed short 9251287512Sdimvec_cp_until_zero_cc(vector signed short __a, int *__cc) { 9252287512Sdim return (vector signed short) 9253287512Sdim __builtin_s390_vistrhs((vector unsigned short)__a, __cc); 9254287512Sdim} 9255287512Sdim 9256287512Sdimstatic inline __ATTRS_o_ai vector bool short 9257287512Sdimvec_cp_until_zero_cc(vector bool short __a, int *__cc) { 9258287512Sdim return (vector bool short) 9259287512Sdim __builtin_s390_vistrhs((vector unsigned short)__a, __cc); 9260287512Sdim} 9261287512Sdim 9262287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9263287512Sdimvec_cp_until_zero_cc(vector unsigned short __a, int *__cc) { 9264287512Sdim return __builtin_s390_vistrhs(__a, __cc); 9265287512Sdim} 9266287512Sdim 9267287512Sdimstatic inline __ATTRS_o_ai vector signed int 9268287512Sdimvec_cp_until_zero_cc(vector signed int __a, int *__cc) { 9269287512Sdim return (vector signed int) 9270287512Sdim __builtin_s390_vistrfs((vector unsigned int)__a, __cc); 9271287512Sdim} 9272287512Sdim 9273287512Sdimstatic inline __ATTRS_o_ai vector bool int 9274287512Sdimvec_cp_until_zero_cc(vector bool int __a, int *__cc) { 9275287512Sdim return (vector bool int)__builtin_s390_vistrfs((vector unsigned int)__a, 9276287512Sdim __cc); 9277287512Sdim} 9278287512Sdim 9279287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9280287512Sdimvec_cp_until_zero_cc(vector unsigned int __a, int *__cc) { 9281287512Sdim return __builtin_s390_vistrfs(__a, __cc); 9282287512Sdim} 9283287512Sdim 9284287512Sdim/*-- vec_cmpeq_idx ----------------------------------------------------------*/ 9285287512Sdim 9286287512Sdimstatic inline __ATTRS_o_ai vector signed char 9287287512Sdimvec_cmpeq_idx(vector signed char __a, vector signed char __b) { 9288287512Sdim return (vector signed char) 9289287512Sdim __builtin_s390_vfeeb((vector unsigned char)__a, 9290287512Sdim (vector unsigned char)__b); 9291287512Sdim} 9292287512Sdim 9293287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9294287512Sdimvec_cmpeq_idx(vector bool char __a, vector bool char __b) { 9295287512Sdim return __builtin_s390_vfeeb((vector unsigned char)__a, 9296287512Sdim (vector unsigned char)__b); 9297287512Sdim} 9298287512Sdim 9299287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9300287512Sdimvec_cmpeq_idx(vector unsigned char __a, vector unsigned char __b) { 9301287512Sdim return __builtin_s390_vfeeb(__a, __b); 9302287512Sdim} 9303287512Sdim 9304287512Sdimstatic inline __ATTRS_o_ai vector signed short 9305287512Sdimvec_cmpeq_idx(vector signed short __a, vector signed short __b) { 9306287512Sdim return (vector signed short) 9307287512Sdim __builtin_s390_vfeeh((vector unsigned short)__a, 9308287512Sdim (vector unsigned short)__b); 9309287512Sdim} 9310287512Sdim 9311287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9312287512Sdimvec_cmpeq_idx(vector bool short __a, vector bool short __b) { 9313287512Sdim return __builtin_s390_vfeeh((vector unsigned short)__a, 9314287512Sdim (vector unsigned short)__b); 9315287512Sdim} 9316287512Sdim 9317287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9318287512Sdimvec_cmpeq_idx(vector unsigned short __a, vector unsigned short __b) { 9319287512Sdim return __builtin_s390_vfeeh(__a, __b); 9320287512Sdim} 9321287512Sdim 9322287512Sdimstatic inline __ATTRS_o_ai vector signed int 9323287512Sdimvec_cmpeq_idx(vector signed int __a, vector signed int __b) { 9324287512Sdim return (vector signed int) 9325287512Sdim __builtin_s390_vfeef((vector unsigned int)__a, 9326287512Sdim (vector unsigned int)__b); 9327287512Sdim} 9328287512Sdim 9329287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9330287512Sdimvec_cmpeq_idx(vector bool int __a, vector bool int __b) { 9331287512Sdim return __builtin_s390_vfeef((vector unsigned int)__a, 9332287512Sdim (vector unsigned int)__b); 9333287512Sdim} 9334287512Sdim 9335287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9336287512Sdimvec_cmpeq_idx(vector unsigned int __a, vector unsigned int __b) { 9337287512Sdim return __builtin_s390_vfeef(__a, __b); 9338287512Sdim} 9339287512Sdim 9340287512Sdim/*-- vec_cmpeq_idx_cc -------------------------------------------------------*/ 9341287512Sdim 9342287512Sdimstatic inline __ATTRS_o_ai vector signed char 9343287512Sdimvec_cmpeq_idx_cc(vector signed char __a, vector signed char __b, int *__cc) { 9344287512Sdim return (vector signed char) 9345287512Sdim __builtin_s390_vfeebs((vector unsigned char)__a, 9346287512Sdim (vector unsigned char)__b, __cc); 9347287512Sdim} 9348287512Sdim 9349287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9350287512Sdimvec_cmpeq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { 9351287512Sdim return __builtin_s390_vfeebs((vector unsigned char)__a, 9352287512Sdim (vector unsigned char)__b, __cc); 9353287512Sdim} 9354287512Sdim 9355287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9356287512Sdimvec_cmpeq_idx_cc(vector unsigned char __a, vector unsigned char __b, 9357287512Sdim int *__cc) { 9358287512Sdim return __builtin_s390_vfeebs(__a, __b, __cc); 9359287512Sdim} 9360287512Sdim 9361287512Sdimstatic inline __ATTRS_o_ai vector signed short 9362287512Sdimvec_cmpeq_idx_cc(vector signed short __a, vector signed short __b, int *__cc) { 9363287512Sdim return (vector signed short) 9364287512Sdim __builtin_s390_vfeehs((vector unsigned short)__a, 9365287512Sdim (vector unsigned short)__b, __cc); 9366287512Sdim} 9367287512Sdim 9368287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9369287512Sdimvec_cmpeq_idx_cc(vector bool short __a, vector bool short __b, int *__cc) { 9370287512Sdim return __builtin_s390_vfeehs((vector unsigned short)__a, 9371287512Sdim (vector unsigned short)__b, __cc); 9372287512Sdim} 9373287512Sdim 9374287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9375287512Sdimvec_cmpeq_idx_cc(vector unsigned short __a, vector unsigned short __b, 9376287512Sdim int *__cc) { 9377287512Sdim return __builtin_s390_vfeehs(__a, __b, __cc); 9378287512Sdim} 9379287512Sdim 9380287512Sdimstatic inline __ATTRS_o_ai vector signed int 9381287512Sdimvec_cmpeq_idx_cc(vector signed int __a, vector signed int __b, int *__cc) { 9382287512Sdim return (vector signed int) 9383287512Sdim __builtin_s390_vfeefs((vector unsigned int)__a, 9384287512Sdim (vector unsigned int)__b, __cc); 9385287512Sdim} 9386287512Sdim 9387287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9388287512Sdimvec_cmpeq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { 9389287512Sdim return __builtin_s390_vfeefs((vector unsigned int)__a, 9390287512Sdim (vector unsigned int)__b, __cc); 9391287512Sdim} 9392287512Sdim 9393287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9394287512Sdimvec_cmpeq_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) { 9395287512Sdim return __builtin_s390_vfeefs(__a, __b, __cc); 9396287512Sdim} 9397287512Sdim 9398287512Sdim/*-- vec_cmpeq_or_0_idx -----------------------------------------------------*/ 9399287512Sdim 9400287512Sdimstatic inline __ATTRS_o_ai vector signed char 9401287512Sdimvec_cmpeq_or_0_idx(vector signed char __a, vector signed char __b) { 9402287512Sdim return (vector signed char) 9403287512Sdim __builtin_s390_vfeezb((vector unsigned char)__a, 9404287512Sdim (vector unsigned char)__b); 9405287512Sdim} 9406287512Sdim 9407287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9408287512Sdimvec_cmpeq_or_0_idx(vector bool char __a, vector bool char __b) { 9409287512Sdim return __builtin_s390_vfeezb((vector unsigned char)__a, 9410287512Sdim (vector unsigned char)__b); 9411287512Sdim} 9412287512Sdim 9413287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9414287512Sdimvec_cmpeq_or_0_idx(vector unsigned char __a, vector unsigned char __b) { 9415287512Sdim return __builtin_s390_vfeezb(__a, __b); 9416287512Sdim} 9417287512Sdim 9418287512Sdimstatic inline __ATTRS_o_ai vector signed short 9419287512Sdimvec_cmpeq_or_0_idx(vector signed short __a, vector signed short __b) { 9420287512Sdim return (vector signed short) 9421287512Sdim __builtin_s390_vfeezh((vector unsigned short)__a, 9422287512Sdim (vector unsigned short)__b); 9423287512Sdim} 9424287512Sdim 9425287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9426287512Sdimvec_cmpeq_or_0_idx(vector bool short __a, vector bool short __b) { 9427287512Sdim return __builtin_s390_vfeezh((vector unsigned short)__a, 9428287512Sdim (vector unsigned short)__b); 9429287512Sdim} 9430287512Sdim 9431287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9432287512Sdimvec_cmpeq_or_0_idx(vector unsigned short __a, vector unsigned short __b) { 9433287512Sdim return __builtin_s390_vfeezh(__a, __b); 9434287512Sdim} 9435287512Sdim 9436287512Sdimstatic inline __ATTRS_o_ai vector signed int 9437287512Sdimvec_cmpeq_or_0_idx(vector signed int __a, vector signed int __b) { 9438287512Sdim return (vector signed int) 9439287512Sdim __builtin_s390_vfeezf((vector unsigned int)__a, 9440287512Sdim (vector unsigned int)__b); 9441287512Sdim} 9442287512Sdim 9443287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9444287512Sdimvec_cmpeq_or_0_idx(vector bool int __a, vector bool int __b) { 9445287512Sdim return __builtin_s390_vfeezf((vector unsigned int)__a, 9446287512Sdim (vector unsigned int)__b); 9447287512Sdim} 9448287512Sdim 9449287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9450287512Sdimvec_cmpeq_or_0_idx(vector unsigned int __a, vector unsigned int __b) { 9451287512Sdim return __builtin_s390_vfeezf(__a, __b); 9452287512Sdim} 9453287512Sdim 9454287512Sdim/*-- vec_cmpeq_or_0_idx_cc --------------------------------------------------*/ 9455287512Sdim 9456287512Sdimstatic inline __ATTRS_o_ai vector signed char 9457287512Sdimvec_cmpeq_or_0_idx_cc(vector signed char __a, vector signed char __b, 9458287512Sdim int *__cc) { 9459287512Sdim return (vector signed char) 9460287512Sdim __builtin_s390_vfeezbs((vector unsigned char)__a, 9461287512Sdim (vector unsigned char)__b, __cc); 9462287512Sdim} 9463287512Sdim 9464287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9465287512Sdimvec_cmpeq_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { 9466287512Sdim return __builtin_s390_vfeezbs((vector unsigned char)__a, 9467287512Sdim (vector unsigned char)__b, __cc); 9468287512Sdim} 9469287512Sdim 9470287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9471287512Sdimvec_cmpeq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, 9472287512Sdim int *__cc) { 9473287512Sdim return __builtin_s390_vfeezbs(__a, __b, __cc); 9474287512Sdim} 9475287512Sdim 9476287512Sdimstatic inline __ATTRS_o_ai vector signed short 9477287512Sdimvec_cmpeq_or_0_idx_cc(vector signed short __a, vector signed short __b, 9478287512Sdim int *__cc) { 9479287512Sdim return (vector signed short) 9480287512Sdim __builtin_s390_vfeezhs((vector unsigned short)__a, 9481287512Sdim (vector unsigned short)__b, __cc); 9482287512Sdim} 9483287512Sdim 9484287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9485287512Sdimvec_cmpeq_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) { 9486287512Sdim return __builtin_s390_vfeezhs((vector unsigned short)__a, 9487287512Sdim (vector unsigned short)__b, __cc); 9488287512Sdim} 9489287512Sdim 9490287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9491287512Sdimvec_cmpeq_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b, 9492287512Sdim int *__cc) { 9493287512Sdim return __builtin_s390_vfeezhs(__a, __b, __cc); 9494287512Sdim} 9495287512Sdim 9496287512Sdimstatic inline __ATTRS_o_ai vector signed int 9497287512Sdimvec_cmpeq_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) { 9498287512Sdim return (vector signed int) 9499287512Sdim __builtin_s390_vfeezfs((vector unsigned int)__a, 9500287512Sdim (vector unsigned int)__b, __cc); 9501287512Sdim} 9502287512Sdim 9503287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9504287512Sdimvec_cmpeq_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { 9505287512Sdim return __builtin_s390_vfeezfs((vector unsigned int)__a, 9506287512Sdim (vector unsigned int)__b, __cc); 9507287512Sdim} 9508287512Sdim 9509287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9510287512Sdimvec_cmpeq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, 9511287512Sdim int *__cc) { 9512287512Sdim return __builtin_s390_vfeezfs(__a, __b, __cc); 9513287512Sdim} 9514287512Sdim 9515287512Sdim/*-- vec_cmpne_idx ----------------------------------------------------------*/ 9516287512Sdim 9517287512Sdimstatic inline __ATTRS_o_ai vector signed char 9518287512Sdimvec_cmpne_idx(vector signed char __a, vector signed char __b) { 9519287512Sdim return (vector signed char) 9520287512Sdim __builtin_s390_vfeneb((vector unsigned char)__a, 9521287512Sdim (vector unsigned char)__b); 9522287512Sdim} 9523287512Sdim 9524287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9525287512Sdimvec_cmpne_idx(vector bool char __a, vector bool char __b) { 9526287512Sdim return __builtin_s390_vfeneb((vector unsigned char)__a, 9527287512Sdim (vector unsigned char)__b); 9528287512Sdim} 9529287512Sdim 9530287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9531287512Sdimvec_cmpne_idx(vector unsigned char __a, vector unsigned char __b) { 9532287512Sdim return __builtin_s390_vfeneb(__a, __b); 9533287512Sdim} 9534287512Sdim 9535287512Sdimstatic inline __ATTRS_o_ai vector signed short 9536287512Sdimvec_cmpne_idx(vector signed short __a, vector signed short __b) { 9537287512Sdim return (vector signed short) 9538287512Sdim __builtin_s390_vfeneh((vector unsigned short)__a, 9539287512Sdim (vector unsigned short)__b); 9540287512Sdim} 9541287512Sdim 9542287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9543287512Sdimvec_cmpne_idx(vector bool short __a, vector bool short __b) { 9544287512Sdim return __builtin_s390_vfeneh((vector unsigned short)__a, 9545287512Sdim (vector unsigned short)__b); 9546287512Sdim} 9547287512Sdim 9548287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9549287512Sdimvec_cmpne_idx(vector unsigned short __a, vector unsigned short __b) { 9550287512Sdim return __builtin_s390_vfeneh(__a, __b); 9551287512Sdim} 9552287512Sdim 9553287512Sdimstatic inline __ATTRS_o_ai vector signed int 9554287512Sdimvec_cmpne_idx(vector signed int __a, vector signed int __b) { 9555287512Sdim return (vector signed int) 9556287512Sdim __builtin_s390_vfenef((vector unsigned int)__a, 9557287512Sdim (vector unsigned int)__b); 9558287512Sdim} 9559287512Sdim 9560287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9561287512Sdimvec_cmpne_idx(vector bool int __a, vector bool int __b) { 9562287512Sdim return __builtin_s390_vfenef((vector unsigned int)__a, 9563287512Sdim (vector unsigned int)__b); 9564287512Sdim} 9565287512Sdim 9566287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9567287512Sdimvec_cmpne_idx(vector unsigned int __a, vector unsigned int __b) { 9568287512Sdim return __builtin_s390_vfenef(__a, __b); 9569287512Sdim} 9570287512Sdim 9571287512Sdim/*-- vec_cmpne_idx_cc -------------------------------------------------------*/ 9572287512Sdim 9573287512Sdimstatic inline __ATTRS_o_ai vector signed char 9574287512Sdimvec_cmpne_idx_cc(vector signed char __a, vector signed char __b, int *__cc) { 9575287512Sdim return (vector signed char) 9576287512Sdim __builtin_s390_vfenebs((vector unsigned char)__a, 9577287512Sdim (vector unsigned char)__b, __cc); 9578287512Sdim} 9579287512Sdim 9580287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9581287512Sdimvec_cmpne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { 9582287512Sdim return __builtin_s390_vfenebs((vector unsigned char)__a, 9583287512Sdim (vector unsigned char)__b, __cc); 9584287512Sdim} 9585287512Sdim 9586287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9587287512Sdimvec_cmpne_idx_cc(vector unsigned char __a, vector unsigned char __b, 9588287512Sdim int *__cc) { 9589287512Sdim return __builtin_s390_vfenebs(__a, __b, __cc); 9590287512Sdim} 9591287512Sdim 9592287512Sdimstatic inline __ATTRS_o_ai vector signed short 9593287512Sdimvec_cmpne_idx_cc(vector signed short __a, vector signed short __b, int *__cc) { 9594287512Sdim return (vector signed short) 9595287512Sdim __builtin_s390_vfenehs((vector unsigned short)__a, 9596287512Sdim (vector unsigned short)__b, __cc); 9597287512Sdim} 9598287512Sdim 9599287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9600287512Sdimvec_cmpne_idx_cc(vector bool short __a, vector bool short __b, int *__cc) { 9601287512Sdim return __builtin_s390_vfenehs((vector unsigned short)__a, 9602287512Sdim (vector unsigned short)__b, __cc); 9603287512Sdim} 9604287512Sdim 9605287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9606287512Sdimvec_cmpne_idx_cc(vector unsigned short __a, vector unsigned short __b, 9607287512Sdim int *__cc) { 9608287512Sdim return __builtin_s390_vfenehs(__a, __b, __cc); 9609287512Sdim} 9610287512Sdim 9611287512Sdimstatic inline __ATTRS_o_ai vector signed int 9612287512Sdimvec_cmpne_idx_cc(vector signed int __a, vector signed int __b, int *__cc) { 9613287512Sdim return (vector signed int) 9614287512Sdim __builtin_s390_vfenefs((vector unsigned int)__a, 9615287512Sdim (vector unsigned int)__b, __cc); 9616287512Sdim} 9617287512Sdim 9618287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9619287512Sdimvec_cmpne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { 9620287512Sdim return __builtin_s390_vfenefs((vector unsigned int)__a, 9621287512Sdim (vector unsigned int)__b, __cc); 9622287512Sdim} 9623287512Sdim 9624287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9625287512Sdimvec_cmpne_idx_cc(vector unsigned int __a, vector unsigned int __b, int *__cc) { 9626287512Sdim return __builtin_s390_vfenefs(__a, __b, __cc); 9627287512Sdim} 9628287512Sdim 9629287512Sdim/*-- vec_cmpne_or_0_idx -----------------------------------------------------*/ 9630287512Sdim 9631287512Sdimstatic inline __ATTRS_o_ai vector signed char 9632287512Sdimvec_cmpne_or_0_idx(vector signed char __a, vector signed char __b) { 9633287512Sdim return (vector signed char) 9634287512Sdim __builtin_s390_vfenezb((vector unsigned char)__a, 9635287512Sdim (vector unsigned char)__b); 9636287512Sdim} 9637287512Sdim 9638287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9639287512Sdimvec_cmpne_or_0_idx(vector bool char __a, vector bool char __b) { 9640287512Sdim return __builtin_s390_vfenezb((vector unsigned char)__a, 9641287512Sdim (vector unsigned char)__b); 9642287512Sdim} 9643287512Sdim 9644287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9645287512Sdimvec_cmpne_or_0_idx(vector unsigned char __a, vector unsigned char __b) { 9646287512Sdim return __builtin_s390_vfenezb(__a, __b); 9647287512Sdim} 9648287512Sdim 9649287512Sdimstatic inline __ATTRS_o_ai vector signed short 9650287512Sdimvec_cmpne_or_0_idx(vector signed short __a, vector signed short __b) { 9651287512Sdim return (vector signed short) 9652287512Sdim __builtin_s390_vfenezh((vector unsigned short)__a, 9653287512Sdim (vector unsigned short)__b); 9654287512Sdim} 9655287512Sdim 9656287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9657287512Sdimvec_cmpne_or_0_idx(vector bool short __a, vector bool short __b) { 9658287512Sdim return __builtin_s390_vfenezh((vector unsigned short)__a, 9659287512Sdim (vector unsigned short)__b); 9660287512Sdim} 9661287512Sdim 9662287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9663287512Sdimvec_cmpne_or_0_idx(vector unsigned short __a, vector unsigned short __b) { 9664287512Sdim return __builtin_s390_vfenezh(__a, __b); 9665287512Sdim} 9666287512Sdim 9667287512Sdimstatic inline __ATTRS_o_ai vector signed int 9668287512Sdimvec_cmpne_or_0_idx(vector signed int __a, vector signed int __b) { 9669287512Sdim return (vector signed int) 9670287512Sdim __builtin_s390_vfenezf((vector unsigned int)__a, 9671287512Sdim (vector unsigned int)__b); 9672287512Sdim} 9673287512Sdim 9674287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9675287512Sdimvec_cmpne_or_0_idx(vector bool int __a, vector bool int __b) { 9676287512Sdim return __builtin_s390_vfenezf((vector unsigned int)__a, 9677287512Sdim (vector unsigned int)__b); 9678287512Sdim} 9679287512Sdim 9680287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9681287512Sdimvec_cmpne_or_0_idx(vector unsigned int __a, vector unsigned int __b) { 9682287512Sdim return __builtin_s390_vfenezf(__a, __b); 9683287512Sdim} 9684287512Sdim 9685287512Sdim/*-- vec_cmpne_or_0_idx_cc --------------------------------------------------*/ 9686287512Sdim 9687287512Sdimstatic inline __ATTRS_o_ai vector signed char 9688287512Sdimvec_cmpne_or_0_idx_cc(vector signed char __a, vector signed char __b, 9689287512Sdim int *__cc) { 9690287512Sdim return (vector signed char) 9691287512Sdim __builtin_s390_vfenezbs((vector unsigned char)__a, 9692287512Sdim (vector unsigned char)__b, __cc); 9693287512Sdim} 9694287512Sdim 9695287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9696287512Sdimvec_cmpne_or_0_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { 9697287512Sdim return __builtin_s390_vfenezbs((vector unsigned char)__a, 9698287512Sdim (vector unsigned char)__b, __cc); 9699287512Sdim} 9700287512Sdim 9701287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9702287512Sdimvec_cmpne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, 9703287512Sdim int *__cc) { 9704287512Sdim return __builtin_s390_vfenezbs(__a, __b, __cc); 9705287512Sdim} 9706287512Sdim 9707287512Sdimstatic inline __ATTRS_o_ai vector signed short 9708287512Sdimvec_cmpne_or_0_idx_cc(vector signed short __a, vector signed short __b, 9709287512Sdim int *__cc) { 9710287512Sdim return (vector signed short) 9711287512Sdim __builtin_s390_vfenezhs((vector unsigned short)__a, 9712287512Sdim (vector unsigned short)__b, __cc); 9713287512Sdim} 9714287512Sdim 9715287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9716287512Sdimvec_cmpne_or_0_idx_cc(vector bool short __a, vector bool short __b, int *__cc) { 9717287512Sdim return __builtin_s390_vfenezhs((vector unsigned short)__a, 9718287512Sdim (vector unsigned short)__b, __cc); 9719287512Sdim} 9720287512Sdim 9721287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9722287512Sdimvec_cmpne_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b, 9723287512Sdim int *__cc) { 9724287512Sdim return __builtin_s390_vfenezhs(__a, __b, __cc); 9725287512Sdim} 9726287512Sdim 9727287512Sdimstatic inline __ATTRS_o_ai vector signed int 9728287512Sdimvec_cmpne_or_0_idx_cc(vector signed int __a, vector signed int __b, int *__cc) { 9729287512Sdim return (vector signed int) 9730287512Sdim __builtin_s390_vfenezfs((vector unsigned int)__a, 9731287512Sdim (vector unsigned int)__b, __cc); 9732287512Sdim} 9733287512Sdim 9734287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9735287512Sdimvec_cmpne_or_0_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { 9736287512Sdim return __builtin_s390_vfenezfs((vector unsigned int)__a, 9737287512Sdim (vector unsigned int)__b, __cc); 9738287512Sdim} 9739287512Sdim 9740287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9741287512Sdimvec_cmpne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, 9742287512Sdim int *__cc) { 9743287512Sdim return __builtin_s390_vfenezfs(__a, __b, __cc); 9744287512Sdim} 9745287512Sdim 9746287512Sdim/*-- vec_cmprg --------------------------------------------------------------*/ 9747287512Sdim 9748287512Sdimstatic inline __ATTRS_o_ai vector bool char 9749287512Sdimvec_cmprg(vector unsigned char __a, vector unsigned char __b, 9750287512Sdim vector unsigned char __c) { 9751287512Sdim return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 4); 9752287512Sdim} 9753287512Sdim 9754287512Sdimstatic inline __ATTRS_o_ai vector bool short 9755287512Sdimvec_cmprg(vector unsigned short __a, vector unsigned short __b, 9756287512Sdim vector unsigned short __c) { 9757287512Sdim return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 4); 9758287512Sdim} 9759287512Sdim 9760287512Sdimstatic inline __ATTRS_o_ai vector bool int 9761287512Sdimvec_cmprg(vector unsigned int __a, vector unsigned int __b, 9762287512Sdim vector unsigned int __c) { 9763287512Sdim return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 4); 9764287512Sdim} 9765287512Sdim 9766287512Sdim/*-- vec_cmprg_cc -----------------------------------------------------------*/ 9767287512Sdim 9768287512Sdimstatic inline __ATTRS_o_ai vector bool char 9769287512Sdimvec_cmprg_cc(vector unsigned char __a, vector unsigned char __b, 9770287512Sdim vector unsigned char __c, int *__cc) { 9771287512Sdim return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 4, __cc); 9772287512Sdim} 9773287512Sdim 9774287512Sdimstatic inline __ATTRS_o_ai vector bool short 9775287512Sdimvec_cmprg_cc(vector unsigned short __a, vector unsigned short __b, 9776287512Sdim vector unsigned short __c, int *__cc) { 9777287512Sdim return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 4, __cc); 9778287512Sdim} 9779287512Sdim 9780287512Sdimstatic inline __ATTRS_o_ai vector bool int 9781287512Sdimvec_cmprg_cc(vector unsigned int __a, vector unsigned int __b, 9782287512Sdim vector unsigned int __c, int *__cc) { 9783287512Sdim return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 4, __cc); 9784287512Sdim} 9785287512Sdim 9786287512Sdim/*-- vec_cmprg_idx ----------------------------------------------------------*/ 9787287512Sdim 9788287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9789287512Sdimvec_cmprg_idx(vector unsigned char __a, vector unsigned char __b, 9790287512Sdim vector unsigned char __c) { 9791287512Sdim return __builtin_s390_vstrcb(__a, __b, __c, 0); 9792287512Sdim} 9793287512Sdim 9794287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9795287512Sdimvec_cmprg_idx(vector unsigned short __a, vector unsigned short __b, 9796287512Sdim vector unsigned short __c) { 9797287512Sdim return __builtin_s390_vstrch(__a, __b, __c, 0); 9798287512Sdim} 9799287512Sdim 9800287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9801287512Sdimvec_cmprg_idx(vector unsigned int __a, vector unsigned int __b, 9802287512Sdim vector unsigned int __c) { 9803287512Sdim return __builtin_s390_vstrcf(__a, __b, __c, 0); 9804287512Sdim} 9805287512Sdim 9806287512Sdim/*-- vec_cmprg_idx_cc -------------------------------------------------------*/ 9807287512Sdim 9808287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9809287512Sdimvec_cmprg_idx_cc(vector unsigned char __a, vector unsigned char __b, 9810287512Sdim vector unsigned char __c, int *__cc) { 9811287512Sdim return __builtin_s390_vstrcbs(__a, __b, __c, 0, __cc); 9812287512Sdim} 9813287512Sdim 9814287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9815287512Sdimvec_cmprg_idx_cc(vector unsigned short __a, vector unsigned short __b, 9816287512Sdim vector unsigned short __c, int *__cc) { 9817287512Sdim return __builtin_s390_vstrchs(__a, __b, __c, 0, __cc); 9818287512Sdim} 9819287512Sdim 9820287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9821287512Sdimvec_cmprg_idx_cc(vector unsigned int __a, vector unsigned int __b, 9822287512Sdim vector unsigned int __c, int *__cc) { 9823287512Sdim return __builtin_s390_vstrcfs(__a, __b, __c, 0, __cc); 9824287512Sdim} 9825287512Sdim 9826287512Sdim/*-- vec_cmprg_or_0_idx -----------------------------------------------------*/ 9827287512Sdim 9828287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9829287512Sdimvec_cmprg_or_0_idx(vector unsigned char __a, vector unsigned char __b, 9830287512Sdim vector unsigned char __c) { 9831287512Sdim return __builtin_s390_vstrczb(__a, __b, __c, 0); 9832287512Sdim} 9833287512Sdim 9834287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9835287512Sdimvec_cmprg_or_0_idx(vector unsigned short __a, vector unsigned short __b, 9836287512Sdim vector unsigned short __c) { 9837287512Sdim return __builtin_s390_vstrczh(__a, __b, __c, 0); 9838287512Sdim} 9839287512Sdim 9840287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9841287512Sdimvec_cmprg_or_0_idx(vector unsigned int __a, vector unsigned int __b, 9842287512Sdim vector unsigned int __c) { 9843287512Sdim return __builtin_s390_vstrczf(__a, __b, __c, 0); 9844287512Sdim} 9845287512Sdim 9846287512Sdim/*-- vec_cmprg_or_0_idx_cc --------------------------------------------------*/ 9847287512Sdim 9848287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9849287512Sdimvec_cmprg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, 9850287512Sdim vector unsigned char __c, int *__cc) { 9851287512Sdim return __builtin_s390_vstrczbs(__a, __b, __c, 0, __cc); 9852287512Sdim} 9853287512Sdim 9854287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9855287512Sdimvec_cmprg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b, 9856287512Sdim vector unsigned short __c, int *__cc) { 9857287512Sdim return __builtin_s390_vstrczhs(__a, __b, __c, 0, __cc); 9858287512Sdim} 9859287512Sdim 9860287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9861287512Sdimvec_cmprg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, 9862287512Sdim vector unsigned int __c, int *__cc) { 9863287512Sdim return __builtin_s390_vstrczfs(__a, __b, __c, 0, __cc); 9864287512Sdim} 9865287512Sdim 9866287512Sdim/*-- vec_cmpnrg -------------------------------------------------------------*/ 9867287512Sdim 9868287512Sdimstatic inline __ATTRS_o_ai vector bool char 9869287512Sdimvec_cmpnrg(vector unsigned char __a, vector unsigned char __b, 9870287512Sdim vector unsigned char __c) { 9871287512Sdim return (vector bool char)__builtin_s390_vstrcb(__a, __b, __c, 12); 9872287512Sdim} 9873287512Sdim 9874287512Sdimstatic inline __ATTRS_o_ai vector bool short 9875287512Sdimvec_cmpnrg(vector unsigned short __a, vector unsigned short __b, 9876287512Sdim vector unsigned short __c) { 9877287512Sdim return (vector bool short)__builtin_s390_vstrch(__a, __b, __c, 12); 9878287512Sdim} 9879287512Sdim 9880287512Sdimstatic inline __ATTRS_o_ai vector bool int 9881287512Sdimvec_cmpnrg(vector unsigned int __a, vector unsigned int __b, 9882287512Sdim vector unsigned int __c) { 9883287512Sdim return (vector bool int)__builtin_s390_vstrcf(__a, __b, __c, 12); 9884287512Sdim} 9885287512Sdim 9886287512Sdim/*-- vec_cmpnrg_cc ----------------------------------------------------------*/ 9887287512Sdim 9888287512Sdimstatic inline __ATTRS_o_ai vector bool char 9889287512Sdimvec_cmpnrg_cc(vector unsigned char __a, vector unsigned char __b, 9890287512Sdim vector unsigned char __c, int *__cc) { 9891287512Sdim return (vector bool char)__builtin_s390_vstrcbs(__a, __b, __c, 12, __cc); 9892287512Sdim} 9893287512Sdim 9894287512Sdimstatic inline __ATTRS_o_ai vector bool short 9895287512Sdimvec_cmpnrg_cc(vector unsigned short __a, vector unsigned short __b, 9896287512Sdim vector unsigned short __c, int *__cc) { 9897287512Sdim return (vector bool short)__builtin_s390_vstrchs(__a, __b, __c, 12, __cc); 9898287512Sdim} 9899287512Sdim 9900287512Sdimstatic inline __ATTRS_o_ai vector bool int 9901287512Sdimvec_cmpnrg_cc(vector unsigned int __a, vector unsigned int __b, 9902287512Sdim vector unsigned int __c, int *__cc) { 9903287512Sdim return (vector bool int)__builtin_s390_vstrcfs(__a, __b, __c, 12, __cc); 9904287512Sdim} 9905287512Sdim 9906287512Sdim/*-- vec_cmpnrg_idx ---------------------------------------------------------*/ 9907287512Sdim 9908287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9909287512Sdimvec_cmpnrg_idx(vector unsigned char __a, vector unsigned char __b, 9910287512Sdim vector unsigned char __c) { 9911287512Sdim return __builtin_s390_vstrcb(__a, __b, __c, 8); 9912287512Sdim} 9913287512Sdim 9914287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9915287512Sdimvec_cmpnrg_idx(vector unsigned short __a, vector unsigned short __b, 9916287512Sdim vector unsigned short __c) { 9917287512Sdim return __builtin_s390_vstrch(__a, __b, __c, 8); 9918287512Sdim} 9919287512Sdim 9920287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9921287512Sdimvec_cmpnrg_idx(vector unsigned int __a, vector unsigned int __b, 9922287512Sdim vector unsigned int __c) { 9923287512Sdim return __builtin_s390_vstrcf(__a, __b, __c, 8); 9924287512Sdim} 9925287512Sdim 9926287512Sdim/*-- vec_cmpnrg_idx_cc ------------------------------------------------------*/ 9927287512Sdim 9928287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9929287512Sdimvec_cmpnrg_idx_cc(vector unsigned char __a, vector unsigned char __b, 9930287512Sdim vector unsigned char __c, int *__cc) { 9931287512Sdim return __builtin_s390_vstrcbs(__a, __b, __c, 8, __cc); 9932287512Sdim} 9933287512Sdim 9934287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9935287512Sdimvec_cmpnrg_idx_cc(vector unsigned short __a, vector unsigned short __b, 9936287512Sdim vector unsigned short __c, int *__cc) { 9937287512Sdim return __builtin_s390_vstrchs(__a, __b, __c, 8, __cc); 9938287512Sdim} 9939287512Sdim 9940287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9941287512Sdimvec_cmpnrg_idx_cc(vector unsigned int __a, vector unsigned int __b, 9942287512Sdim vector unsigned int __c, int *__cc) { 9943287512Sdim return __builtin_s390_vstrcfs(__a, __b, __c, 8, __cc); 9944287512Sdim} 9945287512Sdim 9946287512Sdim/*-- vec_cmpnrg_or_0_idx ----------------------------------------------------*/ 9947287512Sdim 9948287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9949287512Sdimvec_cmpnrg_or_0_idx(vector unsigned char __a, vector unsigned char __b, 9950287512Sdim vector unsigned char __c) { 9951287512Sdim return __builtin_s390_vstrczb(__a, __b, __c, 8); 9952287512Sdim} 9953287512Sdim 9954287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9955287512Sdimvec_cmpnrg_or_0_idx(vector unsigned short __a, vector unsigned short __b, 9956287512Sdim vector unsigned short __c) { 9957287512Sdim return __builtin_s390_vstrczh(__a, __b, __c, 8); 9958287512Sdim} 9959287512Sdim 9960287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9961287512Sdimvec_cmpnrg_or_0_idx(vector unsigned int __a, vector unsigned int __b, 9962287512Sdim vector unsigned int __c) { 9963287512Sdim return __builtin_s390_vstrczf(__a, __b, __c, 8); 9964287512Sdim} 9965287512Sdim 9966287512Sdim/*-- vec_cmpnrg_or_0_idx_cc -------------------------------------------------*/ 9967287512Sdim 9968287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 9969287512Sdimvec_cmpnrg_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, 9970287512Sdim vector unsigned char __c, int *__cc) { 9971287512Sdim return __builtin_s390_vstrczbs(__a, __b, __c, 8, __cc); 9972287512Sdim} 9973287512Sdim 9974287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 9975287512Sdimvec_cmpnrg_or_0_idx_cc(vector unsigned short __a, vector unsigned short __b, 9976287512Sdim vector unsigned short __c, int *__cc) { 9977287512Sdim return __builtin_s390_vstrczhs(__a, __b, __c, 8, __cc); 9978287512Sdim} 9979287512Sdim 9980287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 9981287512Sdimvec_cmpnrg_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, 9982287512Sdim vector unsigned int __c, int *__cc) { 9983287512Sdim return __builtin_s390_vstrczfs(__a, __b, __c, 8, __cc); 9984287512Sdim} 9985287512Sdim 9986287512Sdim/*-- vec_find_any_eq --------------------------------------------------------*/ 9987287512Sdim 9988287512Sdimstatic inline __ATTRS_o_ai vector bool char 9989287512Sdimvec_find_any_eq(vector signed char __a, vector signed char __b) { 9990287512Sdim return (vector bool char) 9991287512Sdim __builtin_s390_vfaeb((vector unsigned char)__a, 9992287512Sdim (vector unsigned char)__b, 4); 9993287512Sdim} 9994287512Sdim 9995287512Sdimstatic inline __ATTRS_o_ai vector bool char 9996287512Sdimvec_find_any_eq(vector bool char __a, vector bool char __b) { 9997287512Sdim return (vector bool char) 9998287512Sdim __builtin_s390_vfaeb((vector unsigned char)__a, 9999287512Sdim (vector unsigned char)__b, 4); 10000287512Sdim} 10001287512Sdim 10002287512Sdimstatic inline __ATTRS_o_ai vector bool char 10003287512Sdimvec_find_any_eq(vector unsigned char __a, vector unsigned char __b) { 10004287512Sdim return (vector bool char)__builtin_s390_vfaeb(__a, __b, 4); 10005287512Sdim} 10006287512Sdim 10007287512Sdimstatic inline __ATTRS_o_ai vector bool short 10008287512Sdimvec_find_any_eq(vector signed short __a, vector signed short __b) { 10009287512Sdim return (vector bool short) 10010287512Sdim __builtin_s390_vfaeh((vector unsigned short)__a, 10011287512Sdim (vector unsigned short)__b, 4); 10012287512Sdim} 10013287512Sdim 10014287512Sdimstatic inline __ATTRS_o_ai vector bool short 10015287512Sdimvec_find_any_eq(vector bool short __a, vector bool short __b) { 10016287512Sdim return (vector bool short) 10017287512Sdim __builtin_s390_vfaeh((vector unsigned short)__a, 10018287512Sdim (vector unsigned short)__b, 4); 10019287512Sdim} 10020287512Sdim 10021287512Sdimstatic inline __ATTRS_o_ai vector bool short 10022287512Sdimvec_find_any_eq(vector unsigned short __a, vector unsigned short __b) { 10023287512Sdim return (vector bool short)__builtin_s390_vfaeh(__a, __b, 4); 10024287512Sdim} 10025287512Sdim 10026287512Sdimstatic inline __ATTRS_o_ai vector bool int 10027287512Sdimvec_find_any_eq(vector signed int __a, vector signed int __b) { 10028287512Sdim return (vector bool int) 10029287512Sdim __builtin_s390_vfaef((vector unsigned int)__a, 10030287512Sdim (vector unsigned int)__b, 4); 10031287512Sdim} 10032287512Sdim 10033287512Sdimstatic inline __ATTRS_o_ai vector bool int 10034287512Sdimvec_find_any_eq(vector bool int __a, vector bool int __b) { 10035287512Sdim return (vector bool int) 10036287512Sdim __builtin_s390_vfaef((vector unsigned int)__a, 10037287512Sdim (vector unsigned int)__b, 4); 10038287512Sdim} 10039287512Sdim 10040287512Sdimstatic inline __ATTRS_o_ai vector bool int 10041287512Sdimvec_find_any_eq(vector unsigned int __a, vector unsigned int __b) { 10042287512Sdim return (vector bool int)__builtin_s390_vfaef(__a, __b, 4); 10043287512Sdim} 10044287512Sdim 10045287512Sdim/*-- vec_find_any_eq_cc -----------------------------------------------------*/ 10046287512Sdim 10047287512Sdimstatic inline __ATTRS_o_ai vector bool char 10048287512Sdimvec_find_any_eq_cc(vector signed char __a, vector signed char __b, int *__cc) { 10049287512Sdim return (vector bool char) 10050287512Sdim __builtin_s390_vfaebs((vector unsigned char)__a, 10051287512Sdim (vector unsigned char)__b, 4, __cc); 10052287512Sdim} 10053287512Sdim 10054287512Sdimstatic inline __ATTRS_o_ai vector bool char 10055287512Sdimvec_find_any_eq_cc(vector bool char __a, vector bool char __b, int *__cc) { 10056287512Sdim return (vector bool char) 10057287512Sdim __builtin_s390_vfaebs((vector unsigned char)__a, 10058287512Sdim (vector unsigned char)__b, 4, __cc); 10059287512Sdim} 10060287512Sdim 10061287512Sdimstatic inline __ATTRS_o_ai vector bool char 10062287512Sdimvec_find_any_eq_cc(vector unsigned char __a, vector unsigned char __b, 10063287512Sdim int *__cc) { 10064287512Sdim return (vector bool char)__builtin_s390_vfaebs(__a, __b, 4, __cc); 10065287512Sdim} 10066287512Sdim 10067287512Sdimstatic inline __ATTRS_o_ai vector bool short 10068287512Sdimvec_find_any_eq_cc(vector signed short __a, vector signed short __b, 10069287512Sdim int *__cc) { 10070287512Sdim return (vector bool short) 10071287512Sdim __builtin_s390_vfaehs((vector unsigned short)__a, 10072287512Sdim (vector unsigned short)__b, 4, __cc); 10073287512Sdim} 10074287512Sdim 10075287512Sdimstatic inline __ATTRS_o_ai vector bool short 10076287512Sdimvec_find_any_eq_cc(vector bool short __a, vector bool short __b, int *__cc) { 10077287512Sdim return (vector bool short) 10078287512Sdim __builtin_s390_vfaehs((vector unsigned short)__a, 10079287512Sdim (vector unsigned short)__b, 4, __cc); 10080287512Sdim} 10081287512Sdim 10082287512Sdimstatic inline __ATTRS_o_ai vector bool short 10083287512Sdimvec_find_any_eq_cc(vector unsigned short __a, vector unsigned short __b, 10084287512Sdim int *__cc) { 10085287512Sdim return (vector bool short)__builtin_s390_vfaehs(__a, __b, 4, __cc); 10086287512Sdim} 10087287512Sdim 10088287512Sdimstatic inline __ATTRS_o_ai vector bool int 10089287512Sdimvec_find_any_eq_cc(vector signed int __a, vector signed int __b, int *__cc) { 10090287512Sdim return (vector bool int) 10091287512Sdim __builtin_s390_vfaefs((vector unsigned int)__a, 10092287512Sdim (vector unsigned int)__b, 4, __cc); 10093287512Sdim} 10094287512Sdim 10095287512Sdimstatic inline __ATTRS_o_ai vector bool int 10096287512Sdimvec_find_any_eq_cc(vector bool int __a, vector bool int __b, int *__cc) { 10097287512Sdim return (vector bool int) 10098287512Sdim __builtin_s390_vfaefs((vector unsigned int)__a, 10099287512Sdim (vector unsigned int)__b, 4, __cc); 10100287512Sdim} 10101287512Sdim 10102287512Sdimstatic inline __ATTRS_o_ai vector bool int 10103287512Sdimvec_find_any_eq_cc(vector unsigned int __a, vector unsigned int __b, 10104287512Sdim int *__cc) { 10105287512Sdim return (vector bool int)__builtin_s390_vfaefs(__a, __b, 4, __cc); 10106287512Sdim} 10107287512Sdim 10108287512Sdim/*-- vec_find_any_eq_idx ----------------------------------------------------*/ 10109287512Sdim 10110287512Sdimstatic inline __ATTRS_o_ai vector signed char 10111287512Sdimvec_find_any_eq_idx(vector signed char __a, vector signed char __b) { 10112287512Sdim return (vector signed char) 10113287512Sdim __builtin_s390_vfaeb((vector unsigned char)__a, 10114287512Sdim (vector unsigned char)__b, 0); 10115287512Sdim} 10116287512Sdim 10117287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10118287512Sdimvec_find_any_eq_idx(vector bool char __a, vector bool char __b) { 10119287512Sdim return __builtin_s390_vfaeb((vector unsigned char)__a, 10120287512Sdim (vector unsigned char)__b, 0); 10121287512Sdim} 10122287512Sdim 10123287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10124287512Sdimvec_find_any_eq_idx(vector unsigned char __a, vector unsigned char __b) { 10125287512Sdim return __builtin_s390_vfaeb(__a, __b, 0); 10126287512Sdim} 10127287512Sdim 10128287512Sdimstatic inline __ATTRS_o_ai vector signed short 10129287512Sdimvec_find_any_eq_idx(vector signed short __a, vector signed short __b) { 10130287512Sdim return (vector signed short) 10131287512Sdim __builtin_s390_vfaeh((vector unsigned short)__a, 10132287512Sdim (vector unsigned short)__b, 0); 10133287512Sdim} 10134287512Sdim 10135287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10136287512Sdimvec_find_any_eq_idx(vector bool short __a, vector bool short __b) { 10137287512Sdim return __builtin_s390_vfaeh((vector unsigned short)__a, 10138287512Sdim (vector unsigned short)__b, 0); 10139287512Sdim} 10140287512Sdim 10141287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10142287512Sdimvec_find_any_eq_idx(vector unsigned short __a, vector unsigned short __b) { 10143287512Sdim return __builtin_s390_vfaeh(__a, __b, 0); 10144287512Sdim} 10145287512Sdim 10146287512Sdimstatic inline __ATTRS_o_ai vector signed int 10147287512Sdimvec_find_any_eq_idx(vector signed int __a, vector signed int __b) { 10148287512Sdim return (vector signed int) 10149287512Sdim __builtin_s390_vfaef((vector unsigned int)__a, 10150287512Sdim (vector unsigned int)__b, 0); 10151287512Sdim} 10152287512Sdim 10153287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10154287512Sdimvec_find_any_eq_idx(vector bool int __a, vector bool int __b) { 10155287512Sdim return __builtin_s390_vfaef((vector unsigned int)__a, 10156287512Sdim (vector unsigned int)__b, 0); 10157287512Sdim} 10158287512Sdim 10159287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10160287512Sdimvec_find_any_eq_idx(vector unsigned int __a, vector unsigned int __b) { 10161287512Sdim return __builtin_s390_vfaef(__a, __b, 0); 10162287512Sdim} 10163287512Sdim 10164287512Sdim/*-- vec_find_any_eq_idx_cc -------------------------------------------------*/ 10165287512Sdim 10166287512Sdimstatic inline __ATTRS_o_ai vector signed char 10167287512Sdimvec_find_any_eq_idx_cc(vector signed char __a, vector signed char __b, 10168287512Sdim int *__cc) { 10169287512Sdim return (vector signed char) 10170287512Sdim __builtin_s390_vfaebs((vector unsigned char)__a, 10171287512Sdim (vector unsigned char)__b, 0, __cc); 10172287512Sdim} 10173287512Sdim 10174287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10175287512Sdimvec_find_any_eq_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { 10176287512Sdim return __builtin_s390_vfaebs((vector unsigned char)__a, 10177287512Sdim (vector unsigned char)__b, 0, __cc); 10178287512Sdim} 10179287512Sdim 10180287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10181287512Sdimvec_find_any_eq_idx_cc(vector unsigned char __a, vector unsigned char __b, 10182287512Sdim int *__cc) { 10183287512Sdim return __builtin_s390_vfaebs(__a, __b, 0, __cc); 10184287512Sdim} 10185287512Sdim 10186287512Sdimstatic inline __ATTRS_o_ai vector signed short 10187287512Sdimvec_find_any_eq_idx_cc(vector signed short __a, vector signed short __b, 10188287512Sdim int *__cc) { 10189287512Sdim return (vector signed short) 10190287512Sdim __builtin_s390_vfaehs((vector unsigned short)__a, 10191287512Sdim (vector unsigned short)__b, 0, __cc); 10192287512Sdim} 10193287512Sdim 10194287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10195287512Sdimvec_find_any_eq_idx_cc(vector bool short __a, vector bool short __b, 10196287512Sdim int *__cc) { 10197287512Sdim return __builtin_s390_vfaehs((vector unsigned short)__a, 10198287512Sdim (vector unsigned short)__b, 0, __cc); 10199287512Sdim} 10200287512Sdim 10201287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10202287512Sdimvec_find_any_eq_idx_cc(vector unsigned short __a, vector unsigned short __b, 10203287512Sdim int *__cc) { 10204287512Sdim return __builtin_s390_vfaehs(__a, __b, 0, __cc); 10205287512Sdim} 10206287512Sdim 10207287512Sdimstatic inline __ATTRS_o_ai vector signed int 10208287512Sdimvec_find_any_eq_idx_cc(vector signed int __a, vector signed int __b, 10209287512Sdim int *__cc) { 10210287512Sdim return (vector signed int) 10211287512Sdim __builtin_s390_vfaefs((vector unsigned int)__a, 10212287512Sdim (vector unsigned int)__b, 0, __cc); 10213287512Sdim} 10214287512Sdim 10215287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10216287512Sdimvec_find_any_eq_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { 10217287512Sdim return __builtin_s390_vfaefs((vector unsigned int)__a, 10218287512Sdim (vector unsigned int)__b, 0, __cc); 10219287512Sdim} 10220287512Sdim 10221287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10222287512Sdimvec_find_any_eq_idx_cc(vector unsigned int __a, vector unsigned int __b, 10223287512Sdim int *__cc) { 10224287512Sdim return __builtin_s390_vfaefs(__a, __b, 0, __cc); 10225287512Sdim} 10226287512Sdim 10227287512Sdim/*-- vec_find_any_eq_or_0_idx -----------------------------------------------*/ 10228287512Sdim 10229287512Sdimstatic inline __ATTRS_o_ai vector signed char 10230287512Sdimvec_find_any_eq_or_0_idx(vector signed char __a, vector signed char __b) { 10231287512Sdim return (vector signed char) 10232287512Sdim __builtin_s390_vfaezb((vector unsigned char)__a, 10233287512Sdim (vector unsigned char)__b, 0); 10234287512Sdim} 10235287512Sdim 10236287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10237287512Sdimvec_find_any_eq_or_0_idx(vector bool char __a, vector bool char __b) { 10238287512Sdim return __builtin_s390_vfaezb((vector unsigned char)__a, 10239287512Sdim (vector unsigned char)__b, 0); 10240287512Sdim} 10241287512Sdim 10242287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10243287512Sdimvec_find_any_eq_or_0_idx(vector unsigned char __a, vector unsigned char __b) { 10244287512Sdim return __builtin_s390_vfaezb(__a, __b, 0); 10245287512Sdim} 10246287512Sdim 10247287512Sdimstatic inline __ATTRS_o_ai vector signed short 10248287512Sdimvec_find_any_eq_or_0_idx(vector signed short __a, vector signed short __b) { 10249287512Sdim return (vector signed short) 10250287512Sdim __builtin_s390_vfaezh((vector unsigned short)__a, 10251287512Sdim (vector unsigned short)__b, 0); 10252287512Sdim} 10253287512Sdim 10254287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10255287512Sdimvec_find_any_eq_or_0_idx(vector bool short __a, vector bool short __b) { 10256287512Sdim return __builtin_s390_vfaezh((vector unsigned short)__a, 10257287512Sdim (vector unsigned short)__b, 0); 10258287512Sdim} 10259287512Sdim 10260287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10261287512Sdimvec_find_any_eq_or_0_idx(vector unsigned short __a, vector unsigned short __b) { 10262287512Sdim return __builtin_s390_vfaezh(__a, __b, 0); 10263287512Sdim} 10264287512Sdim 10265287512Sdimstatic inline __ATTRS_o_ai vector signed int 10266287512Sdimvec_find_any_eq_or_0_idx(vector signed int __a, vector signed int __b) { 10267287512Sdim return (vector signed int) 10268287512Sdim __builtin_s390_vfaezf((vector unsigned int)__a, 10269287512Sdim (vector unsigned int)__b, 0); 10270287512Sdim} 10271287512Sdim 10272287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10273287512Sdimvec_find_any_eq_or_0_idx(vector bool int __a, vector bool int __b) { 10274287512Sdim return __builtin_s390_vfaezf((vector unsigned int)__a, 10275287512Sdim (vector unsigned int)__b, 0); 10276287512Sdim} 10277287512Sdim 10278287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10279287512Sdimvec_find_any_eq_or_0_idx(vector unsigned int __a, vector unsigned int __b) { 10280287512Sdim return __builtin_s390_vfaezf(__a, __b, 0); 10281287512Sdim} 10282287512Sdim 10283287512Sdim/*-- vec_find_any_eq_or_0_idx_cc --------------------------------------------*/ 10284287512Sdim 10285287512Sdimstatic inline __ATTRS_o_ai vector signed char 10286287512Sdimvec_find_any_eq_or_0_idx_cc(vector signed char __a, vector signed char __b, 10287287512Sdim int *__cc) { 10288287512Sdim return (vector signed char) 10289287512Sdim __builtin_s390_vfaezbs((vector unsigned char)__a, 10290287512Sdim (vector unsigned char)__b, 0, __cc); 10291287512Sdim} 10292287512Sdim 10293287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10294287512Sdimvec_find_any_eq_or_0_idx_cc(vector bool char __a, vector bool char __b, 10295287512Sdim int *__cc) { 10296287512Sdim return __builtin_s390_vfaezbs((vector unsigned char)__a, 10297287512Sdim (vector unsigned char)__b, 0, __cc); 10298287512Sdim} 10299287512Sdim 10300287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10301287512Sdimvec_find_any_eq_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, 10302287512Sdim int *__cc) { 10303287512Sdim return __builtin_s390_vfaezbs(__a, __b, 0, __cc); 10304287512Sdim} 10305287512Sdim 10306287512Sdimstatic inline __ATTRS_o_ai vector signed short 10307287512Sdimvec_find_any_eq_or_0_idx_cc(vector signed short __a, vector signed short __b, 10308287512Sdim int *__cc) { 10309287512Sdim return (vector signed short) 10310287512Sdim __builtin_s390_vfaezhs((vector unsigned short)__a, 10311287512Sdim (vector unsigned short)__b, 0, __cc); 10312287512Sdim} 10313287512Sdim 10314287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10315287512Sdimvec_find_any_eq_or_0_idx_cc(vector bool short __a, vector bool short __b, 10316287512Sdim int *__cc) { 10317287512Sdim return __builtin_s390_vfaezhs((vector unsigned short)__a, 10318287512Sdim (vector unsigned short)__b, 0, __cc); 10319287512Sdim} 10320287512Sdim 10321287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10322287512Sdimvec_find_any_eq_or_0_idx_cc(vector unsigned short __a, 10323287512Sdim vector unsigned short __b, int *__cc) { 10324287512Sdim return __builtin_s390_vfaezhs(__a, __b, 0, __cc); 10325287512Sdim} 10326287512Sdim 10327287512Sdimstatic inline __ATTRS_o_ai vector signed int 10328287512Sdimvec_find_any_eq_or_0_idx_cc(vector signed int __a, vector signed int __b, 10329287512Sdim int *__cc) { 10330287512Sdim return (vector signed int) 10331287512Sdim __builtin_s390_vfaezfs((vector unsigned int)__a, 10332287512Sdim (vector unsigned int)__b, 0, __cc); 10333287512Sdim} 10334287512Sdim 10335287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10336287512Sdimvec_find_any_eq_or_0_idx_cc(vector bool int __a, vector bool int __b, 10337287512Sdim int *__cc) { 10338287512Sdim return __builtin_s390_vfaezfs((vector unsigned int)__a, 10339287512Sdim (vector unsigned int)__b, 0, __cc); 10340287512Sdim} 10341287512Sdim 10342287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10343287512Sdimvec_find_any_eq_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, 10344287512Sdim int *__cc) { 10345287512Sdim return __builtin_s390_vfaezfs(__a, __b, 0, __cc); 10346287512Sdim} 10347287512Sdim 10348287512Sdim/*-- vec_find_any_ne --------------------------------------------------------*/ 10349287512Sdim 10350287512Sdimstatic inline __ATTRS_o_ai vector bool char 10351287512Sdimvec_find_any_ne(vector signed char __a, vector signed char __b) { 10352287512Sdim return (vector bool char) 10353287512Sdim __builtin_s390_vfaeb((vector unsigned char)__a, 10354287512Sdim (vector unsigned char)__b, 12); 10355287512Sdim} 10356287512Sdim 10357287512Sdimstatic inline __ATTRS_o_ai vector bool char 10358287512Sdimvec_find_any_ne(vector bool char __a, vector bool char __b) { 10359287512Sdim return (vector bool char) 10360287512Sdim __builtin_s390_vfaeb((vector unsigned char)__a, 10361287512Sdim (vector unsigned char)__b, 12); 10362287512Sdim} 10363287512Sdim 10364287512Sdimstatic inline __ATTRS_o_ai vector bool char 10365287512Sdimvec_find_any_ne(vector unsigned char __a, vector unsigned char __b) { 10366287512Sdim return (vector bool char)__builtin_s390_vfaeb(__a, __b, 12); 10367287512Sdim} 10368287512Sdim 10369287512Sdimstatic inline __ATTRS_o_ai vector bool short 10370287512Sdimvec_find_any_ne(vector signed short __a, vector signed short __b) { 10371287512Sdim return (vector bool short) 10372287512Sdim __builtin_s390_vfaeh((vector unsigned short)__a, 10373287512Sdim (vector unsigned short)__b, 12); 10374287512Sdim} 10375287512Sdim 10376287512Sdimstatic inline __ATTRS_o_ai vector bool short 10377287512Sdimvec_find_any_ne(vector bool short __a, vector bool short __b) { 10378287512Sdim return (vector bool short) 10379287512Sdim __builtin_s390_vfaeh((vector unsigned short)__a, 10380287512Sdim (vector unsigned short)__b, 12); 10381287512Sdim} 10382287512Sdim 10383287512Sdimstatic inline __ATTRS_o_ai vector bool short 10384287512Sdimvec_find_any_ne(vector unsigned short __a, vector unsigned short __b) { 10385287512Sdim return (vector bool short)__builtin_s390_vfaeh(__a, __b, 12); 10386287512Sdim} 10387287512Sdim 10388287512Sdimstatic inline __ATTRS_o_ai vector bool int 10389287512Sdimvec_find_any_ne(vector signed int __a, vector signed int __b) { 10390287512Sdim return (vector bool int) 10391287512Sdim __builtin_s390_vfaef((vector unsigned int)__a, 10392287512Sdim (vector unsigned int)__b, 12); 10393287512Sdim} 10394287512Sdim 10395287512Sdimstatic inline __ATTRS_o_ai vector bool int 10396287512Sdimvec_find_any_ne(vector bool int __a, vector bool int __b) { 10397287512Sdim return (vector bool int) 10398287512Sdim __builtin_s390_vfaef((vector unsigned int)__a, 10399287512Sdim (vector unsigned int)__b, 12); 10400287512Sdim} 10401287512Sdim 10402287512Sdimstatic inline __ATTRS_o_ai vector bool int 10403287512Sdimvec_find_any_ne(vector unsigned int __a, vector unsigned int __b) { 10404287512Sdim return (vector bool int)__builtin_s390_vfaef(__a, __b, 12); 10405287512Sdim} 10406287512Sdim 10407287512Sdim/*-- vec_find_any_ne_cc -----------------------------------------------------*/ 10408287512Sdim 10409287512Sdimstatic inline __ATTRS_o_ai vector bool char 10410287512Sdimvec_find_any_ne_cc(vector signed char __a, vector signed char __b, int *__cc) { 10411287512Sdim return (vector bool char) 10412287512Sdim __builtin_s390_vfaebs((vector unsigned char)__a, 10413287512Sdim (vector unsigned char)__b, 12, __cc); 10414287512Sdim} 10415287512Sdim 10416287512Sdimstatic inline __ATTRS_o_ai vector bool char 10417287512Sdimvec_find_any_ne_cc(vector bool char __a, vector bool char __b, int *__cc) { 10418287512Sdim return (vector bool char) 10419287512Sdim __builtin_s390_vfaebs((vector unsigned char)__a, 10420287512Sdim (vector unsigned char)__b, 12, __cc); 10421287512Sdim} 10422287512Sdim 10423287512Sdimstatic inline __ATTRS_o_ai vector bool char 10424287512Sdimvec_find_any_ne_cc(vector unsigned char __a, vector unsigned char __b, 10425287512Sdim int *__cc) { 10426287512Sdim return (vector bool char)__builtin_s390_vfaebs(__a, __b, 12, __cc); 10427287512Sdim} 10428287512Sdim 10429287512Sdimstatic inline __ATTRS_o_ai vector bool short 10430287512Sdimvec_find_any_ne_cc(vector signed short __a, vector signed short __b, 10431287512Sdim int *__cc) { 10432287512Sdim return (vector bool short) 10433287512Sdim __builtin_s390_vfaehs((vector unsigned short)__a, 10434287512Sdim (vector unsigned short)__b, 12, __cc); 10435287512Sdim} 10436287512Sdim 10437287512Sdimstatic inline __ATTRS_o_ai vector bool short 10438287512Sdimvec_find_any_ne_cc(vector bool short __a, vector bool short __b, int *__cc) { 10439287512Sdim return (vector bool short) 10440287512Sdim __builtin_s390_vfaehs((vector unsigned short)__a, 10441287512Sdim (vector unsigned short)__b, 12, __cc); 10442287512Sdim} 10443287512Sdim 10444287512Sdimstatic inline __ATTRS_o_ai vector bool short 10445287512Sdimvec_find_any_ne_cc(vector unsigned short __a, vector unsigned short __b, 10446287512Sdim int *__cc) { 10447287512Sdim return (vector bool short)__builtin_s390_vfaehs(__a, __b, 12, __cc); 10448287512Sdim} 10449287512Sdim 10450287512Sdimstatic inline __ATTRS_o_ai vector bool int 10451287512Sdimvec_find_any_ne_cc(vector signed int __a, vector signed int __b, int *__cc) { 10452287512Sdim return (vector bool int) 10453287512Sdim __builtin_s390_vfaefs((vector unsigned int)__a, 10454287512Sdim (vector unsigned int)__b, 12, __cc); 10455287512Sdim} 10456287512Sdim 10457287512Sdimstatic inline __ATTRS_o_ai vector bool int 10458287512Sdimvec_find_any_ne_cc(vector bool int __a, vector bool int __b, int *__cc) { 10459287512Sdim return (vector bool int) 10460287512Sdim __builtin_s390_vfaefs((vector unsigned int)__a, 10461287512Sdim (vector unsigned int)__b, 12, __cc); 10462287512Sdim} 10463287512Sdim 10464287512Sdimstatic inline __ATTRS_o_ai vector bool int 10465287512Sdimvec_find_any_ne_cc(vector unsigned int __a, vector unsigned int __b, 10466287512Sdim int *__cc) { 10467287512Sdim return (vector bool int)__builtin_s390_vfaefs(__a, __b, 12, __cc); 10468287512Sdim} 10469287512Sdim 10470287512Sdim/*-- vec_find_any_ne_idx ----------------------------------------------------*/ 10471287512Sdim 10472287512Sdimstatic inline __ATTRS_o_ai vector signed char 10473287512Sdimvec_find_any_ne_idx(vector signed char __a, vector signed char __b) { 10474287512Sdim return (vector signed char) 10475287512Sdim __builtin_s390_vfaeb((vector unsigned char)__a, 10476287512Sdim (vector unsigned char)__b, 8); 10477287512Sdim} 10478287512Sdim 10479287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10480287512Sdimvec_find_any_ne_idx(vector bool char __a, vector bool char __b) { 10481287512Sdim return __builtin_s390_vfaeb((vector unsigned char)__a, 10482287512Sdim (vector unsigned char)__b, 8); 10483287512Sdim} 10484287512Sdim 10485287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10486287512Sdimvec_find_any_ne_idx(vector unsigned char __a, vector unsigned char __b) { 10487287512Sdim return __builtin_s390_vfaeb(__a, __b, 8); 10488287512Sdim} 10489287512Sdim 10490287512Sdimstatic inline __ATTRS_o_ai vector signed short 10491287512Sdimvec_find_any_ne_idx(vector signed short __a, vector signed short __b) { 10492287512Sdim return (vector signed short) 10493287512Sdim __builtin_s390_vfaeh((vector unsigned short)__a, 10494287512Sdim (vector unsigned short)__b, 8); 10495287512Sdim} 10496287512Sdim 10497287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10498287512Sdimvec_find_any_ne_idx(vector bool short __a, vector bool short __b) { 10499287512Sdim return __builtin_s390_vfaeh((vector unsigned short)__a, 10500287512Sdim (vector unsigned short)__b, 8); 10501287512Sdim} 10502287512Sdim 10503287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10504287512Sdimvec_find_any_ne_idx(vector unsigned short __a, vector unsigned short __b) { 10505287512Sdim return __builtin_s390_vfaeh(__a, __b, 8); 10506287512Sdim} 10507287512Sdim 10508287512Sdimstatic inline __ATTRS_o_ai vector signed int 10509287512Sdimvec_find_any_ne_idx(vector signed int __a, vector signed int __b) { 10510287512Sdim return (vector signed int) 10511287512Sdim __builtin_s390_vfaef((vector unsigned int)__a, 10512287512Sdim (vector unsigned int)__b, 8); 10513287512Sdim} 10514287512Sdim 10515287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10516287512Sdimvec_find_any_ne_idx(vector bool int __a, vector bool int __b) { 10517287512Sdim return __builtin_s390_vfaef((vector unsigned int)__a, 10518287512Sdim (vector unsigned int)__b, 8); 10519287512Sdim} 10520287512Sdim 10521287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10522287512Sdimvec_find_any_ne_idx(vector unsigned int __a, vector unsigned int __b) { 10523287512Sdim return __builtin_s390_vfaef(__a, __b, 8); 10524287512Sdim} 10525287512Sdim 10526287512Sdim/*-- vec_find_any_ne_idx_cc -------------------------------------------------*/ 10527287512Sdim 10528287512Sdimstatic inline __ATTRS_o_ai vector signed char 10529287512Sdimvec_find_any_ne_idx_cc(vector signed char __a, vector signed char __b, 10530287512Sdim int *__cc) { 10531287512Sdim return (vector signed char) 10532287512Sdim __builtin_s390_vfaebs((vector unsigned char)__a, 10533287512Sdim (vector unsigned char)__b, 8, __cc); 10534287512Sdim} 10535287512Sdim 10536287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10537287512Sdimvec_find_any_ne_idx_cc(vector bool char __a, vector bool char __b, int *__cc) { 10538287512Sdim return __builtin_s390_vfaebs((vector unsigned char)__a, 10539287512Sdim (vector unsigned char)__b, 8, __cc); 10540287512Sdim} 10541287512Sdim 10542287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10543287512Sdimvec_find_any_ne_idx_cc(vector unsigned char __a, vector unsigned char __b, 10544287512Sdim int *__cc) { 10545287512Sdim return __builtin_s390_vfaebs(__a, __b, 8, __cc); 10546287512Sdim} 10547287512Sdim 10548287512Sdimstatic inline __ATTRS_o_ai vector signed short 10549287512Sdimvec_find_any_ne_idx_cc(vector signed short __a, vector signed short __b, 10550287512Sdim int *__cc) { 10551287512Sdim return (vector signed short) 10552287512Sdim __builtin_s390_vfaehs((vector unsigned short)__a, 10553287512Sdim (vector unsigned short)__b, 8, __cc); 10554287512Sdim} 10555287512Sdim 10556287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10557287512Sdimvec_find_any_ne_idx_cc(vector bool short __a, vector bool short __b, 10558287512Sdim int *__cc) { 10559287512Sdim return __builtin_s390_vfaehs((vector unsigned short)__a, 10560287512Sdim (vector unsigned short)__b, 8, __cc); 10561287512Sdim} 10562287512Sdim 10563287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10564287512Sdimvec_find_any_ne_idx_cc(vector unsigned short __a, vector unsigned short __b, 10565287512Sdim int *__cc) { 10566287512Sdim return __builtin_s390_vfaehs(__a, __b, 8, __cc); 10567287512Sdim} 10568287512Sdim 10569287512Sdimstatic inline __ATTRS_o_ai vector signed int 10570287512Sdimvec_find_any_ne_idx_cc(vector signed int __a, vector signed int __b, 10571287512Sdim int *__cc) { 10572287512Sdim return (vector signed int) 10573287512Sdim __builtin_s390_vfaefs((vector unsigned int)__a, 10574287512Sdim (vector unsigned int)__b, 8, __cc); 10575287512Sdim} 10576287512Sdim 10577287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10578287512Sdimvec_find_any_ne_idx_cc(vector bool int __a, vector bool int __b, int *__cc) { 10579287512Sdim return __builtin_s390_vfaefs((vector unsigned int)__a, 10580287512Sdim (vector unsigned int)__b, 8, __cc); 10581287512Sdim} 10582287512Sdim 10583287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10584287512Sdimvec_find_any_ne_idx_cc(vector unsigned int __a, vector unsigned int __b, 10585287512Sdim int *__cc) { 10586287512Sdim return __builtin_s390_vfaefs(__a, __b, 8, __cc); 10587287512Sdim} 10588287512Sdim 10589287512Sdim/*-- vec_find_any_ne_or_0_idx -----------------------------------------------*/ 10590287512Sdim 10591287512Sdimstatic inline __ATTRS_o_ai vector signed char 10592287512Sdimvec_find_any_ne_or_0_idx(vector signed char __a, vector signed char __b) { 10593287512Sdim return (vector signed char) 10594287512Sdim __builtin_s390_vfaezb((vector unsigned char)__a, 10595287512Sdim (vector unsigned char)__b, 8); 10596287512Sdim} 10597287512Sdim 10598287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10599287512Sdimvec_find_any_ne_or_0_idx(vector bool char __a, vector bool char __b) { 10600287512Sdim return __builtin_s390_vfaezb((vector unsigned char)__a, 10601287512Sdim (vector unsigned char)__b, 8); 10602287512Sdim} 10603287512Sdim 10604287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10605287512Sdimvec_find_any_ne_or_0_idx(vector unsigned char __a, vector unsigned char __b) { 10606287512Sdim return __builtin_s390_vfaezb(__a, __b, 8); 10607287512Sdim} 10608287512Sdim 10609287512Sdimstatic inline __ATTRS_o_ai vector signed short 10610287512Sdimvec_find_any_ne_or_0_idx(vector signed short __a, vector signed short __b) { 10611287512Sdim return (vector signed short) 10612287512Sdim __builtin_s390_vfaezh((vector unsigned short)__a, 10613287512Sdim (vector unsigned short)__b, 8); 10614287512Sdim} 10615287512Sdim 10616287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10617287512Sdimvec_find_any_ne_or_0_idx(vector bool short __a, vector bool short __b) { 10618287512Sdim return __builtin_s390_vfaezh((vector unsigned short)__a, 10619287512Sdim (vector unsigned short)__b, 8); 10620287512Sdim} 10621287512Sdim 10622287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10623287512Sdimvec_find_any_ne_or_0_idx(vector unsigned short __a, vector unsigned short __b) { 10624287512Sdim return __builtin_s390_vfaezh(__a, __b, 8); 10625287512Sdim} 10626287512Sdim 10627287512Sdimstatic inline __ATTRS_o_ai vector signed int 10628287512Sdimvec_find_any_ne_or_0_idx(vector signed int __a, vector signed int __b) { 10629287512Sdim return (vector signed int) 10630287512Sdim __builtin_s390_vfaezf((vector unsigned int)__a, 10631287512Sdim (vector unsigned int)__b, 8); 10632287512Sdim} 10633287512Sdim 10634287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10635287512Sdimvec_find_any_ne_or_0_idx(vector bool int __a, vector bool int __b) { 10636287512Sdim return __builtin_s390_vfaezf((vector unsigned int)__a, 10637287512Sdim (vector unsigned int)__b, 8); 10638287512Sdim} 10639287512Sdim 10640287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10641287512Sdimvec_find_any_ne_or_0_idx(vector unsigned int __a, vector unsigned int __b) { 10642287512Sdim return __builtin_s390_vfaezf(__a, __b, 8); 10643287512Sdim} 10644287512Sdim 10645287512Sdim/*-- vec_find_any_ne_or_0_idx_cc --------------------------------------------*/ 10646287512Sdim 10647287512Sdimstatic inline __ATTRS_o_ai vector signed char 10648287512Sdimvec_find_any_ne_or_0_idx_cc(vector signed char __a, vector signed char __b, 10649287512Sdim int *__cc) { 10650287512Sdim return (vector signed char) 10651287512Sdim __builtin_s390_vfaezbs((vector unsigned char)__a, 10652287512Sdim (vector unsigned char)__b, 8, __cc); 10653287512Sdim} 10654287512Sdim 10655287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10656287512Sdimvec_find_any_ne_or_0_idx_cc(vector bool char __a, vector bool char __b, 10657287512Sdim int *__cc) { 10658287512Sdim return __builtin_s390_vfaezbs((vector unsigned char)__a, 10659287512Sdim (vector unsigned char)__b, 8, __cc); 10660287512Sdim} 10661287512Sdim 10662287512Sdimstatic inline __ATTRS_o_ai vector unsigned char 10663287512Sdimvec_find_any_ne_or_0_idx_cc(vector unsigned char __a, vector unsigned char __b, 10664287512Sdim int *__cc) { 10665287512Sdim return __builtin_s390_vfaezbs(__a, __b, 8, __cc); 10666287512Sdim} 10667287512Sdim 10668287512Sdimstatic inline __ATTRS_o_ai vector signed short 10669287512Sdimvec_find_any_ne_or_0_idx_cc(vector signed short __a, vector signed short __b, 10670287512Sdim int *__cc) { 10671287512Sdim return (vector signed short) 10672287512Sdim __builtin_s390_vfaezhs((vector unsigned short)__a, 10673287512Sdim (vector unsigned short)__b, 8, __cc); 10674287512Sdim} 10675287512Sdim 10676287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10677287512Sdimvec_find_any_ne_or_0_idx_cc(vector bool short __a, vector bool short __b, 10678287512Sdim int *__cc) { 10679287512Sdim return __builtin_s390_vfaezhs((vector unsigned short)__a, 10680287512Sdim (vector unsigned short)__b, 8, __cc); 10681287512Sdim} 10682287512Sdim 10683287512Sdimstatic inline __ATTRS_o_ai vector unsigned short 10684287512Sdimvec_find_any_ne_or_0_idx_cc(vector unsigned short __a, 10685287512Sdim vector unsigned short __b, int *__cc) { 10686287512Sdim return __builtin_s390_vfaezhs(__a, __b, 8, __cc); 10687287512Sdim} 10688287512Sdim 10689287512Sdimstatic inline __ATTRS_o_ai vector signed int 10690287512Sdimvec_find_any_ne_or_0_idx_cc(vector signed int __a, vector signed int __b, 10691287512Sdim int *__cc) { 10692287512Sdim return (vector signed int) 10693287512Sdim __builtin_s390_vfaezfs((vector unsigned int)__a, 10694287512Sdim (vector unsigned int)__b, 8, __cc); 10695287512Sdim} 10696287512Sdim 10697287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10698287512Sdimvec_find_any_ne_or_0_idx_cc(vector bool int __a, vector bool int __b, 10699287512Sdim int *__cc) { 10700287512Sdim return __builtin_s390_vfaezfs((vector unsigned int)__a, 10701287512Sdim (vector unsigned int)__b, 8, __cc); 10702287512Sdim} 10703287512Sdim 10704287512Sdimstatic inline __ATTRS_o_ai vector unsigned int 10705287512Sdimvec_find_any_ne_or_0_idx_cc(vector unsigned int __a, vector unsigned int __b, 10706287512Sdim int *__cc) { 10707287512Sdim return __builtin_s390_vfaezfs(__a, __b, 8, __cc); 10708287512Sdim} 10709287512Sdim 10710353358Sdim/*-- vec_search_string_cc ---------------------------------------------------*/ 10711353358Sdim 10712353358Sdim#if __ARCH__ >= 13 10713353358Sdim 10714353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10715353358Sdimvec_search_string_cc(vector signed char __a, vector signed char __b, 10716353358Sdim vector unsigned char __c, int *__cc) { 10717353358Sdim return __builtin_s390_vstrsb((vector unsigned char)__a, 10718353358Sdim (vector unsigned char)__b, __c, __cc); 10719353358Sdim} 10720353358Sdim 10721353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10722353358Sdimvec_search_string_cc(vector bool char __a, vector bool char __b, 10723353358Sdim vector unsigned char __c, int *__cc) { 10724353358Sdim return __builtin_s390_vstrsb((vector unsigned char)__a, 10725353358Sdim (vector unsigned char)__b, __c, __cc); 10726353358Sdim} 10727353358Sdim 10728353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10729353358Sdimvec_search_string_cc(vector unsigned char __a, vector unsigned char __b, 10730353358Sdim vector unsigned char __c, int *__cc) { 10731353358Sdim return __builtin_s390_vstrsb(__a, __b, __c, __cc); 10732353358Sdim} 10733353358Sdim 10734353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10735353358Sdimvec_search_string_cc(vector signed short __a, vector signed short __b, 10736353358Sdim vector unsigned char __c, int *__cc) { 10737353358Sdim return __builtin_s390_vstrsh((vector unsigned short)__a, 10738353358Sdim (vector unsigned short)__b, __c, __cc); 10739353358Sdim} 10740353358Sdim 10741353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10742353358Sdimvec_search_string_cc(vector bool short __a, vector bool short __b, 10743353358Sdim vector unsigned char __c, int *__cc) { 10744353358Sdim return __builtin_s390_vstrsh((vector unsigned short)__a, 10745353358Sdim (vector unsigned short)__b, __c, __cc); 10746353358Sdim} 10747353358Sdim 10748353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10749353358Sdimvec_search_string_cc(vector unsigned short __a, vector unsigned short __b, 10750353358Sdim vector unsigned char __c, int *__cc) { 10751353358Sdim return __builtin_s390_vstrsh(__a, __b, __c, __cc); 10752353358Sdim} 10753353358Sdim 10754353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10755353358Sdimvec_search_string_cc(vector signed int __a, vector signed int __b, 10756353358Sdim vector unsigned char __c, int *__cc) { 10757353358Sdim return __builtin_s390_vstrsf((vector unsigned int)__a, 10758353358Sdim (vector unsigned int)__b, __c, __cc); 10759353358Sdim} 10760353358Sdim 10761353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10762353358Sdimvec_search_string_cc(vector bool int __a, vector bool int __b, 10763353358Sdim vector unsigned char __c, int *__cc) { 10764353358Sdim return __builtin_s390_vstrsf((vector unsigned int)__a, 10765353358Sdim (vector unsigned int)__b, __c, __cc); 10766353358Sdim} 10767353358Sdim 10768353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10769353358Sdimvec_search_string_cc(vector unsigned int __a, vector unsigned int __b, 10770353358Sdim vector unsigned char __c, int *__cc) { 10771353358Sdim return __builtin_s390_vstrsf(__a, __b, __c, __cc); 10772353358Sdim} 10773353358Sdim 10774353358Sdim#endif 10775353358Sdim 10776353358Sdim/*-- vec_search_string_until_zero_cc ----------------------------------------*/ 10777353358Sdim 10778353358Sdim#if __ARCH__ >= 13 10779353358Sdim 10780353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10781353358Sdimvec_search_string_until_zero_cc(vector signed char __a, 10782353358Sdim vector signed char __b, 10783353358Sdim vector unsigned char __c, int *__cc) { 10784353358Sdim return __builtin_s390_vstrszb((vector unsigned char)__a, 10785353358Sdim (vector unsigned char)__b, __c, __cc); 10786353358Sdim} 10787353358Sdim 10788353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10789353358Sdimvec_search_string_until_zero_cc(vector bool char __a, 10790353358Sdim vector bool char __b, 10791353358Sdim vector unsigned char __c, int *__cc) { 10792353358Sdim return __builtin_s390_vstrszb((vector unsigned char)__a, 10793353358Sdim (vector unsigned char)__b, __c, __cc); 10794353358Sdim} 10795353358Sdim 10796353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10797353358Sdimvec_search_string_until_zero_cc(vector unsigned char __a, 10798353358Sdim vector unsigned char __b, 10799353358Sdim vector unsigned char __c, int *__cc) { 10800353358Sdim return __builtin_s390_vstrszb(__a, __b, __c, __cc); 10801353358Sdim} 10802353358Sdim 10803353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10804353358Sdimvec_search_string_until_zero_cc(vector signed short __a, 10805353358Sdim vector signed short __b, 10806353358Sdim vector unsigned char __c, int *__cc) { 10807353358Sdim return __builtin_s390_vstrszh((vector unsigned short)__a, 10808353358Sdim (vector unsigned short)__b, __c, __cc); 10809353358Sdim} 10810353358Sdim 10811353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10812353358Sdimvec_search_string_until_zero_cc(vector bool short __a, 10813353358Sdim vector bool short __b, 10814353358Sdim vector unsigned char __c, int *__cc) { 10815353358Sdim return __builtin_s390_vstrszh((vector unsigned short)__a, 10816353358Sdim (vector unsigned short)__b, __c, __cc); 10817353358Sdim} 10818353358Sdim 10819353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10820353358Sdimvec_search_string_until_zero_cc(vector unsigned short __a, 10821353358Sdim vector unsigned short __b, 10822353358Sdim vector unsigned char __c, int *__cc) { 10823353358Sdim return __builtin_s390_vstrszh(__a, __b, __c, __cc); 10824353358Sdim} 10825353358Sdim 10826353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10827353358Sdimvec_search_string_until_zero_cc(vector signed int __a, 10828353358Sdim vector signed int __b, 10829353358Sdim vector unsigned char __c, int *__cc) { 10830353358Sdim return __builtin_s390_vstrszf((vector unsigned int)__a, 10831353358Sdim (vector unsigned int)__b, __c, __cc); 10832353358Sdim} 10833353358Sdim 10834353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10835353358Sdimvec_search_string_until_zero_cc(vector bool int __a, 10836353358Sdim vector bool int __b, 10837353358Sdim vector unsigned char __c, int *__cc) { 10838353358Sdim return __builtin_s390_vstrszf((vector unsigned int)__a, 10839353358Sdim (vector unsigned int)__b, __c, __cc); 10840353358Sdim} 10841353358Sdim 10842353358Sdimstatic inline __ATTRS_o_ai vector unsigned char 10843353358Sdimvec_search_string_until_zero_cc(vector unsigned int __a, 10844353358Sdim vector unsigned int __b, 10845353358Sdim vector unsigned char __c, int *__cc) { 10846353358Sdim return __builtin_s390_vstrszf(__a, __b, __c, __cc); 10847353358Sdim} 10848353358Sdim 10849353358Sdim#endif 10850353358Sdim 10851287512Sdim#undef __constant_pow2_range 10852287512Sdim#undef __constant_range 10853287512Sdim#undef __constant 10854287512Sdim#undef __ATTRS_o 10855287512Sdim#undef __ATTRS_o_ai 10856287512Sdim#undef __ATTRS_ai 10857287512Sdim 10858287512Sdim#else 10859287512Sdim 10860287512Sdim#error "Use -fzvector to enable vector extensions" 10861287512Sdim 10862287512Sdim#endif 10863